From 599d8da562918d9af058cd1129940fa7e5c1854a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Stach?= Date: Tue, 3 Feb 2026 15:56:53 +0100 Subject: [PATCH] iLO-manager first main commitgit status --- .gitignore | 1 + backend/__pycache__/database.cpython-310.pyc | Bin 0 -> 2448 bytes backend/app.py | 162 + backend/database.py | 86 + backend/requirements.txt | 4 + backend/servers.db | Bin 0 -> 36864 bytes frontend/index.html | 55 + frontend/script.js | 128 + frontend/styles.css | 107 + get_info.py | 6 + venv/bin/Activate.ps1 | 247 + venv/bin/activate | 69 + venv/bin/activate.csh | 26 + venv/bin/activate.fish | 69 + venv/bin/flask | 8 + venv/bin/futurize | 8 + venv/bin/ilorest | 8 + venv/bin/jdiff | 8 + venv/bin/jsondiff | 41 + venv/bin/jsonpatch | 107 + venv/bin/jsonpath.py | 8 + venv/bin/jsonpointer | 67 + venv/bin/normalizer | 8 + venv/bin/pasteurize | 8 + venv/bin/pip | 8 + venv/bin/pip3 | 8 + venv/bin/pip3.10 | 8 + venv/bin/python | 1 + venv/bin/python3 | 1 + venv/bin/python3.10 | 1 + venv/bin/tabulate | 8 + .../__pycache__/decorator.cpython-310.pyc | Bin 0 -> 13799 bytes .../__pycache__/jsonpatch.cpython-310.pyc | Bin 0 -> 22457 bytes .../__pycache__/jsonpointer.cpython-310.pyc | Bin 0 -> 9830 bytes .../__pycache__/six.cpython-310.pyc | Bin 0 -> 27645 bytes .../site-packages/_distutils_hack/__init__.py | 132 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 5113 bytes .../__pycache__/override.cpython-310.pyc | Bin 0 -> 238 bytes .../site-packages/_distutils_hack/override.py | 1 + .../site-packages/_yaml/__init__.py | 33 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 739 bytes .../bcrypt-5.0.0.dist-info/INSTALLER | 1 + .../bcrypt-5.0.0.dist-info/METADATA | 343 + .../bcrypt-5.0.0.dist-info/RECORD | 12 + .../bcrypt-5.0.0.dist-info/REQUESTED | 0 .../bcrypt-5.0.0.dist-info/WHEEL | 5 + .../bcrypt-5.0.0.dist-info/licenses/LICENSE | 201 + .../bcrypt-5.0.0.dist-info/top_level.txt | 1 + .../site-packages/bcrypt/__init__.py | 43 + .../site-packages/bcrypt/__init__.pyi | 10 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 544 bytes .../site-packages/bcrypt/_bcrypt.abi3.so | Bin 0 -> 631768 bytes .../python3.10/site-packages/bcrypt/py.typed | 0 .../blinker-1.9.0.dist-info/INSTALLER | 1 + .../blinker-1.9.0.dist-info/LICENSE.txt | 20 + .../blinker-1.9.0.dist-info/METADATA | 60 + .../blinker-1.9.0.dist-info/RECORD | 12 + .../blinker-1.9.0.dist-info/WHEEL | 4 + .../site-packages/blinker/__init__.py | 17 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 477 bytes .../__pycache__/_utilities.cpython-310.pyc | Bin 0 -> 2175 bytes .../blinker/__pycache__/base.cpython-310.pyc | Bin 0 -> 17610 bytes .../site-packages/blinker/_utilities.py | 64 + .../python3.10/site-packages/blinker/base.py | 512 + .../python3.10/site-packages/blinker/py.typed | 0 .../certifi-2026.1.4.dist-info/INSTALLER | 1 + .../certifi-2026.1.4.dist-info/METADATA | 78 + .../certifi-2026.1.4.dist-info/RECORD | 14 + .../certifi-2026.1.4.dist-info/WHEEL | 5 + .../licenses/LICENSE | 20 + .../certifi-2026.1.4.dist-info/top_level.txt | 1 + .../site-packages/certifi/__init__.py | 4 + .../site-packages/certifi/__main__.py | 12 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 292 bytes .../__pycache__/__main__.cpython-310.pyc | Bin 0 -> 430 bytes .../certifi/__pycache__/core.cpython-310.pyc | Bin 0 -> 1405 bytes .../site-packages/certifi/cacert.pem | 4468 +++++++++ .../python3.10/site-packages/certifi/core.py | 83 + .../python3.10/site-packages/certifi/py.typed | 0 .../INSTALLER | 1 + .../METADATA | 764 ++ .../charset_normalizer-3.4.4.dist-info/RECORD | 35 + .../charset_normalizer-3.4.4.dist-info/WHEEL | 7 + .../entry_points.txt | 2 + .../licenses/LICENSE | 21 + .../top_level.txt | 1 + .../charset_normalizer/__init__.py | 48 + .../charset_normalizer/__main__.py | 6 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1634 bytes .../__pycache__/__main__.cpython-310.pyc | Bin 0 -> 323 bytes .../__pycache__/api.cpython-310.pyc | Bin 0 -> 11809 bytes .../__pycache__/cd.cpython-310.pyc | Bin 0 -> 9732 bytes .../__pycache__/constant.cpython-310.pyc | Bin 0 -> 32541 bytes .../__pycache__/legacy.cpython-310.pyc | Bin 0 -> 2294 bytes .../__pycache__/md.cpython-310.pyc | Bin 0 -> 16049 bytes .../__pycache__/models.cpython-310.pyc | Bin 0 -> 12202 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 8999 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 325 bytes .../site-packages/charset_normalizer/api.py | 669 ++ .../site-packages/charset_normalizer/cd.py | 395 + .../charset_normalizer/cli/__init__.py | 8 + .../charset_normalizer/cli/__main__.py | 381 + .../cli/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 326 bytes .../cli/__pycache__/__main__.cpython-310.pyc | Bin 0 -> 9335 bytes .../charset_normalizer/constant.py | 2015 ++++ .../charset_normalizer/legacy.py | 80 + .../md.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 15912 bytes .../site-packages/charset_normalizer/md.py | 635 ++ .../md__mypyc.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 286264 bytes .../charset_normalizer/models.py | 360 + .../site-packages/charset_normalizer/py.typed | 0 .../site-packages/charset_normalizer/utils.py | 414 + .../charset_normalizer/version.py | 8 + .../click-8.3.1.dist-info/INSTALLER | 1 + .../click-8.3.1.dist-info/METADATA | 84 + .../click-8.3.1.dist-info/RECORD | 40 + .../site-packages/click-8.3.1.dist-info/WHEEL | 4 + .../licenses/LICENSE.txt | 28 + .../site-packages/click/__init__.py | 123 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3659 bytes .../click/__pycache__/_compat.cpython-310.pyc | Bin 0 -> 16034 bytes .../__pycache__/_termui_impl.cpython-310.pyc | Bin 0 -> 18068 bytes .../__pycache__/_textwrap.cpython-310.pyc | Bin 0 -> 1661 bytes .../click/__pycache__/_utils.cpython-310.pyc | Bin 0 -> 910 bytes .../__pycache__/_winconsole.cpython-310.pyc | Bin 0 -> 8274 bytes .../click/__pycache__/core.cpython-310.pyc | Bin 0 -> 98620 bytes .../__pycache__/decorators.cpython-310.pyc | Bin 0 -> 17565 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 11031 bytes .../__pycache__/formatting.cpython-310.pyc | Bin 0 -> 9701 bytes .../click/__pycache__/globals.cpython-310.pyc | Bin 0 -> 2481 bytes .../click/__pycache__/parser.cpython-310.pyc | Bin 0 -> 14155 bytes .../shell_completion.cpython-310.pyc | Bin 0 -> 18302 bytes .../click/__pycache__/termui.cpython-310.pyc | Bin 0 -> 29037 bytes .../click/__pycache__/testing.cpython-310.pyc | Bin 0 -> 19212 bytes .../click/__pycache__/types.cpython-310.pyc | Bin 0 -> 37286 bytes .../click/__pycache__/utils.cpython-310.pyc | Bin 0 -> 19108 bytes .../python3.10/site-packages/click/_compat.py | 622 ++ .../site-packages/click/_termui_impl.py | 852 ++ .../site-packages/click/_textwrap.py | 51 + .../python3.10/site-packages/click/_utils.py | 36 + .../site-packages/click/_winconsole.py | 296 + .../python3.10/site-packages/click/core.py | 3415 +++++++ .../site-packages/click/decorators.py | 551 + .../site-packages/click/exceptions.py | 308 + .../site-packages/click/formatting.py | 301 + .../python3.10/site-packages/click/globals.py | 67 + .../python3.10/site-packages/click/parser.py | 532 + .../python3.10/site-packages/click/py.typed | 0 .../site-packages/click/shell_completion.py | 667 ++ .../python3.10/site-packages/click/termui.py | 883 ++ .../python3.10/site-packages/click/testing.py | 577 ++ .../python3.10/site-packages/click/types.py | 1209 +++ .../python3.10/site-packages/click/utils.py | 627 ++ .../colorama-0.4.6.dist-info/INSTALLER | 1 + .../colorama-0.4.6.dist-info/METADATA | 441 + .../colorama-0.4.6.dist-info/RECORD | 31 + .../colorama-0.4.6.dist-info/WHEEL | 5 + .../licenses/LICENSE.txt | 27 + .../site-packages/colorama/__init__.py | 7 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 466 bytes .../colorama/__pycache__/ansi.cpython-310.pyc | Bin 0 -> 2992 bytes .../__pycache__/ansitowin32.cpython-310.pyc | Bin 0 -> 8504 bytes .../__pycache__/initialise.cpython-310.pyc | Bin 0 -> 2249 bytes .../__pycache__/win32.cpython-310.pyc | Bin 0 -> 4459 bytes .../__pycache__/winterm.cpython-310.pyc | Bin 0 -> 5155 bytes .../python3.10/site-packages/colorama/ansi.py | 102 + .../site-packages/colorama/ansitowin32.py | 277 + .../site-packages/colorama/initialise.py | 121 + .../site-packages/colorama/tests/__init__.py | 1 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 186 bytes .../__pycache__/ansi_test.cpython-310.pyc | Bin 0 -> 2278 bytes .../ansitowin32_test.cpython-310.pyc | Bin 0 -> 11589 bytes .../initialise_test.cpython-310.pyc | Bin 0 -> 6886 bytes .../__pycache__/isatty_test.cpython-310.pyc | Bin 0 -> 2677 bytes .../tests/__pycache__/utils.cpython-310.pyc | Bin 0 -> 1586 bytes .../__pycache__/winterm_test.cpython-310.pyc | Bin 0 -> 3179 bytes .../site-packages/colorama/tests/ansi_test.py | 76 + .../colorama/tests/ansitowin32_test.py | 294 + .../colorama/tests/initialise_test.py | 189 + .../colorama/tests/isatty_test.py | 57 + .../site-packages/colorama/tests/utils.py | 49 + .../colorama/tests/winterm_test.py | 131 + .../site-packages/colorama/win32.py | 180 + .../site-packages/colorama/winterm.py | 195 + .../decorator-5.2.1.dist-info/INSTALLER | 1 + .../decorator-5.2.1.dist-info/LICENSE.txt | 27 + .../decorator-5.2.1.dist-info/METADATA | 124 + .../decorator-5.2.1.dist-info/RECORD | 9 + .../decorator-5.2.1.dist-info/WHEEL | 5 + .../decorator-5.2.1.dist-info/pbr.json | 1 + .../decorator-5.2.1.dist-info/top_level.txt | 1 + .../lib/python3.10/site-packages/decorator.py | 459 + .../site-packages/distutils-precedence.pth | 1 + .../flask-3.1.2.dist-info/INSTALLER | 1 + .../flask-3.1.2.dist-info/METADATA | 91 + .../flask-3.1.2.dist-info/RECORD | 58 + .../flask-3.1.2.dist-info/REQUESTED | 0 .../site-packages/flask-3.1.2.dist-info/WHEEL | 4 + .../flask-3.1.2.dist-info/entry_points.txt | 3 + .../licenses/LICENSE.txt | 28 + .../site-packages/flask/__init__.py | 61 + .../site-packages/flask/__main__.py | 3 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2321 bytes .../__pycache__/__main__.cpython-310.pyc | Bin 0 -> 217 bytes .../flask/__pycache__/app.cpython-310.pyc | Bin 0 -> 50880 bytes .../__pycache__/blueprints.cpython-310.pyc | Bin 0 -> 4172 bytes .../flask/__pycache__/cli.cpython-310.pyc | Bin 0 -> 29985 bytes .../flask/__pycache__/config.cpython-310.pyc | Bin 0 -> 13410 bytes .../flask/__pycache__/ctx.cpython-310.pyc | Bin 0 -> 14858 bytes .../__pycache__/debughelpers.cpython-310.pyc | Bin 0 -> 6596 bytes .../flask/__pycache__/globals.cpython-310.pyc | Bin 0 -> 1585 bytes .../flask/__pycache__/helpers.cpython-310.pyc | Bin 0 -> 22132 bytes .../flask/__pycache__/logging.cpython-310.pyc | Bin 0 -> 2552 bytes .../__pycache__/sessions.cpython-310.pyc | Bin 0 -> 14266 bytes .../flask/__pycache__/signals.cpython-310.pyc | Bin 0 -> 815 bytes .../__pycache__/templating.cpython-310.pyc | Bin 0 -> 7088 bytes .../flask/__pycache__/testing.cpython-310.pyc | Bin 0 -> 9839 bytes .../flask/__pycache__/typing.cpython-310.pyc | Bin 0 -> 1892 bytes .../flask/__pycache__/views.cpython-310.pyc | Bin 0 -> 5553 bytes .../__pycache__/wrappers.cpython-310.pyc | Bin 0 -> 8395 bytes .../lib/python3.10/site-packages/flask/app.py | 1536 +++ .../site-packages/flask/blueprints.py | 128 + .../lib/python3.10/site-packages/flask/cli.py | 1135 +++ .../python3.10/site-packages/flask/config.py | 367 + .../lib/python3.10/site-packages/flask/ctx.py | 449 + .../site-packages/flask/debughelpers.py | 178 + .../python3.10/site-packages/flask/globals.py | 51 + .../python3.10/site-packages/flask/helpers.py | 641 ++ .../site-packages/flask/json/__init__.py | 170 + .../json/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 5999 bytes .../json/__pycache__/provider.cpython-310.pyc | Bin 0 -> 7691 bytes .../json/__pycache__/tag.cpython-310.pyc | Bin 0 -> 11649 bytes .../site-packages/flask/json/provider.py | 215 + .../site-packages/flask/json/tag.py | 327 + .../python3.10/site-packages/flask/logging.py | 79 + .../python3.10/site-packages/flask/py.typed | 0 .../site-packages/flask/sansio/README.md | 6 + .../sansio/__pycache__/app.cpython-310.pyc | Bin 0 -> 28645 bytes .../__pycache__/blueprints.cpython-310.pyc | Bin 0 -> 22938 bytes .../__pycache__/scaffold.cpython-310.pyc | Bin 0 -> 23855 bytes .../site-packages/flask/sansio/app.py | 964 ++ .../site-packages/flask/sansio/blueprints.py | 632 ++ .../site-packages/flask/sansio/scaffold.py | 792 ++ .../site-packages/flask/sessions.py | 399 + .../python3.10/site-packages/flask/signals.py | 17 + .../site-packages/flask/templating.py | 219 + .../python3.10/site-packages/flask/testing.py | 298 + .../python3.10/site-packages/flask/typing.py | 93 + .../python3.10/site-packages/flask/views.py | 191 + .../site-packages/flask/wrappers.py | 257 + .../flask_cors-6.0.2.dist-info/INSTALLER | 1 + .../flask_cors-6.0.2.dist-info/METADATA | 144 + .../flask_cors-6.0.2.dist-info/RECORD | 16 + .../flask_cors-6.0.2.dist-info/REQUESTED | 0 .../flask_cors-6.0.2.dist-info/WHEEL | 5 + .../flask_cors-6.0.2.dist-info/top_level.txt | 1 + .../site-packages/flask_cors/__init__.py | 17 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 539 bytes .../__pycache__/core.cpython-310.pyc | Bin 0 -> 10947 bytes .../__pycache__/decorator.cpython-310.pyc | Bin 0 -> 4469 bytes .../__pycache__/extension.cpython-310.pyc | Bin 0 -> 7959 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 202 bytes .../site-packages/flask_cors/core.py | 399 + .../site-packages/flask_cors/decorator.py | 129 + .../site-packages/flask_cors/extension.py | 206 + .../site-packages/flask_cors/version.py | 1 + .../future-1.0.0.dist-info/INSTALLER | 1 + .../future-1.0.0.dist-info/LICENSE.txt | 19 + .../future-1.0.0.dist-info/METADATA | 112 + .../future-1.0.0.dist-info/RECORD | 417 + .../future-1.0.0.dist-info/WHEEL | 5 + .../future-1.0.0.dist-info/entry_points.txt | 3 + .../future-1.0.0.dist-info/top_level.txt | 4 + .../site-packages/future/__init__.py | 92 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3091 bytes .../future/backports/__init__.py | 26 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 645 bytes .../__pycache__/_markupbase.cpython-310.pyc | Bin 0 -> 9487 bytes .../__pycache__/datetime.cpython-310.pyc | Bin 0 -> 48664 bytes .../__pycache__/misc.cpython-310.pyc | Bin 0 -> 28818 bytes .../__pycache__/socket.cpython-310.pyc | Bin 0 -> 14248 bytes .../__pycache__/socketserver.cpython-310.pyc | Bin 0 -> 22220 bytes .../total_ordering.cpython-310.pyc | Bin 0 -> 2288 bytes .../future/backports/_markupbase.py | 422 + .../future/backports/datetime.py | 2152 ++++ .../future/backports/email/__init__.py | 78 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1943 bytes .../_encoded_words.cpython-310.pyc | Bin 0 -> 6198 bytes .../_header_value_parser.cpython-310.pyc | Bin 0 -> 77910 bytes .../__pycache__/_parseaddr.cpython-310.pyc | Bin 0 -> 12681 bytes .../__pycache__/_policybase.cpython-310.pyc | Bin 0 -> 14624 bytes .../__pycache__/base64mime.cpython-310.pyc | Bin 0 -> 3514 bytes .../email/__pycache__/charset.cpython-310.pyc | Bin 0 -> 12015 bytes .../__pycache__/encoders.cpython-310.pyc | Bin 0 -> 2204 bytes .../email/__pycache__/errors.cpython-310.pyc | Bin 0 -> 5595 bytes .../__pycache__/feedparser.cpython-310.pyc | Bin 0 -> 10694 bytes .../__pycache__/generator.cpython-310.pyc | Bin 0 -> 11800 bytes .../email/__pycache__/header.cpython-310.pyc | Bin 0 -> 17055 bytes .../headerregistry.cpython-310.pyc | Bin 0 -> 21198 bytes .../__pycache__/iterators.cpython-310.pyc | Bin 0 -> 2225 bytes .../email/__pycache__/message.cpython-310.pyc | Bin 0 -> 28658 bytes .../email/__pycache__/parser.cpython-310.pyc | Bin 0 -> 6029 bytes .../email/__pycache__/policy.cpython-310.pyc | Bin 0 -> 8382 bytes .../__pycache__/quoprimime.cpython-310.pyc | Bin 0 -> 9290 bytes .../email/__pycache__/utils.cpython-310.pyc | Bin 0 -> 10396 bytes .../future/backports/email/_encoded_words.py | 232 + .../backports/email/_header_value_parser.py | 2965 ++++++ .../future/backports/email/_parseaddr.py | 546 + .../future/backports/email/_policybase.py | 365 + .../future/backports/email/base64mime.py | 121 + .../future/backports/email/charset.py | 409 + .../future/backports/email/encoders.py | 90 + .../future/backports/email/errors.py | 111 + .../future/backports/email/feedparser.py | 525 + .../future/backports/email/generator.py | 498 + .../future/backports/email/header.py | 581 ++ .../future/backports/email/headerregistry.py | 592 ++ .../future/backports/email/iterators.py | 74 + .../future/backports/email/message.py | 882 ++ .../future/backports/email/mime/__init__.py | 0 .../mime/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 199 bytes .../__pycache__/application.cpython-310.pyc | Bin 0 -> 1644 bytes .../mime/__pycache__/audio.cpython-310.pyc | Bin 0 -> 2811 bytes .../mime/__pycache__/base.cpython-310.pyc | Bin 0 -> 1133 bytes .../mime/__pycache__/image.cpython-310.pyc | Bin 0 -> 2089 bytes .../mime/__pycache__/message.cpython-310.pyc | Bin 0 -> 1475 bytes .../__pycache__/multipart.cpython-310.pyc | Bin 0 -> 1680 bytes .../__pycache__/nonmultipart.cpython-310.pyc | Bin 0 -> 981 bytes .../mime/__pycache__/text.cpython-310.pyc | Bin 0 -> 1503 bytes .../backports/email/mime/application.py | 39 + .../future/backports/email/mime/audio.py | 74 + .../future/backports/email/mime/base.py | 25 + .../future/backports/email/mime/image.py | 48 + .../future/backports/email/mime/message.py | 36 + .../future/backports/email/mime/multipart.py | 49 + .../backports/email/mime/nonmultipart.py | 24 + .../future/backports/email/mime/text.py | 44 + .../future/backports/email/parser.py | 135 + .../future/backports/email/policy.py | 193 + .../future/backports/email/quoprimime.py | 326 + .../future/backports/email/utils.py | 400 + .../future/backports/html/__init__.py | 27 + .../html/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1051 bytes .../html/__pycache__/entities.cpython-310.pyc | Bin 0 -> 144664 bytes .../html/__pycache__/parser.cpython-310.pyc | Bin 0 -> 13554 bytes .../future/backports/html/entities.py | 2514 +++++ .../future/backports/html/parser.py | 536 + .../future/backports/http/__init__.py | 0 .../http/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 193 bytes .../http/__pycache__/client.cpython-310.pyc | Bin 0 -> 30745 bytes .../__pycache__/cookiejar.cpython-310.pyc | Bin 0 -> 53643 bytes .../http/__pycache__/cookies.cpython-310.pyc | Bin 0 -> 17814 bytes .../http/__pycache__/server.cpython-310.pyc | Bin 0 -> 34805 bytes .../future/backports/http/client.py | 1346 +++ .../future/backports/http/cookiejar.py | 2116 ++++ .../future/backports/http/cookies.py | 598 ++ .../future/backports/http/server.py | 1226 +++ .../site-packages/future/backports/misc.py | 958 ++ .../site-packages/future/backports/socket.py | 454 + .../future/backports/socketserver.py | 747 ++ .../future/backports/test/__init__.py | 9 + .../test/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 465 bytes .../test/__pycache__/pystone.cpython-310.pyc | Bin 0 -> 6823 bytes .../__pycache__/ssl_servers.cpython-310.pyc | Bin 0 -> 7117 bytes .../test/__pycache__/support.cpython-310.pyc | Bin 0 -> 54514 bytes .../future/backports/test/badcert.pem | 36 + .../future/backports/test/badkey.pem | 40 + .../future/backports/test/dh512.pem | 9 + .../test/https_svn_python_org_root.pem | 41 + .../future/backports/test/keycert.passwd.pem | 33 + .../future/backports/test/keycert.pem | 31 + .../future/backports/test/keycert2.pem | 31 + .../future/backports/test/nokia.pem | 31 + .../future/backports/test/nullbytecert.pem | 90 + .../future/backports/test/nullcert.pem | 0 .../future/backports/test/pystone.py | 272 + .../future/backports/test/sha256.pem | 128 + .../future/backports/test/ssl_cert.pem | 15 + .../future/backports/test/ssl_key.passwd.pem | 18 + .../future/backports/test/ssl_key.pem | 16 + .../future/backports/test/ssl_servers.py | 207 + .../future/backports/test/support.py | 2016 ++++ .../future/backports/total_ordering.py | 38 + .../future/backports/urllib/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 195 bytes .../urllib/__pycache__/error.cpython-310.pyc | Bin 0 -> 2705 bytes .../urllib/__pycache__/parse.cpython-310.pyc | Bin 0 -> 28065 bytes .../__pycache__/request.cpython-310.pyc | Bin 0 -> 68513 bytes .../__pycache__/response.cpython-310.pyc | Bin 0 -> 3892 bytes .../__pycache__/robotparser.cpython-310.pyc | Bin 0 -> 6199 bytes .../future/backports/urllib/error.py | 75 + .../future/backports/urllib/parse.py | 991 ++ .../future/backports/urllib/request.py | 2647 +++++ .../future/backports/urllib/response.py | 103 + .../future/backports/urllib/robotparser.py | 211 + .../future/backports/xmlrpc/__init__.py | 1 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 195 bytes .../xmlrpc/__pycache__/client.cpython-310.pyc | Bin 0 -> 33496 bytes .../xmlrpc/__pycache__/server.cpython-310.pyc | Bin 0 -> 29925 bytes .../future/backports/xmlrpc/client.py | 1497 +++ .../future/backports/xmlrpc/server.py | 999 ++ .../site-packages/future/builtins/__init__.py | 51 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1258 bytes .../__pycache__/disabled.cpython-310.pyc | Bin 0 -> 2348 bytes .../__pycache__/iterators.cpython-310.pyc | Bin 0 -> 1530 bytes .../builtins/__pycache__/misc.cpython-310.pyc | Bin 0 -> 3070 bytes .../__pycache__/new_min_max.cpython-310.pyc | Bin 0 -> 1566 bytes .../__pycache__/newnext.cpython-310.pyc | Bin 0 -> 2024 bytes .../__pycache__/newround.cpython-310.pyc | Bin 0 -> 2808 bytes .../__pycache__/newsuper.cpython-310.pyc | Bin 0 -> 3080 bytes .../site-packages/future/builtins/disabled.py | 66 + .../future/builtins/iterators.py | 52 + .../site-packages/future/builtins/misc.py | 135 + .../future/builtins/new_min_max.py | 59 + .../site-packages/future/builtins/newnext.py | 70 + .../site-packages/future/builtins/newround.py | 105 + .../site-packages/future/builtins/newsuper.py | 113 + .../site-packages/future/moves/__init__.py | 8 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 396 bytes .../__pycache__/_dummy_thread.cpython-310.pyc | Bin 0 -> 418 bytes .../__pycache__/_markupbase.cpython-310.pyc | Bin 0 -> 363 bytes .../moves/__pycache__/_thread.cpython-310.pyc | Bin 0 -> 351 bytes .../__pycache__/builtins.cpython-310.pyc | Bin 0 -> 385 bytes .../__pycache__/collections.cpython-310.pyc | Bin 0 -> 644 bytes .../__pycache__/configparser.cpython-310.pyc | Bin 0 -> 341 bytes .../moves/__pycache__/copyreg.cpython-310.pyc | Bin 0 -> 409 bytes .../__pycache__/itertools.cpython-310.pyc | Bin 0 -> 370 bytes .../multiprocessing.cpython-310.pyc | Bin 0 -> 409 bytes .../moves/__pycache__/pickle.cpython-310.pyc | Bin 0 -> 403 bytes .../moves/__pycache__/queue.cpython-310.pyc | Bin 0 -> 346 bytes .../moves/__pycache__/reprlib.cpython-310.pyc | Bin 0 -> 349 bytes .../__pycache__/socketserver.cpython-310.pyc | Bin 0 -> 367 bytes .../__pycache__/subprocess.cpython-310.pyc | Bin 0 -> 488 bytes .../moves/__pycache__/sys.cpython-310.pyc | Bin 0 -> 343 bytes .../moves/__pycache__/winreg.cpython-310.pyc | Bin 0 -> 350 bytes .../future/moves/_dummy_thread.py | 13 + .../site-packages/future/moves/_markupbase.py | 8 + .../site-packages/future/moves/_thread.py | 8 + .../site-packages/future/moves/builtins.py | 10 + .../site-packages/future/moves/collections.py | 18 + .../future/moves/configparser.py | 8 + .../site-packages/future/moves/copyreg.py | 12 + .../future/moves/dbm/__init__.py | 20 + .../dbm/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 487 bytes .../dbm/__pycache__/dumb.cpython-310.pyc | Bin 0 -> 354 bytes .../moves/dbm/__pycache__/gnu.cpython-310.pyc | Bin 0 -> 349 bytes .../dbm/__pycache__/ndbm.cpython-310.pyc | Bin 0 -> 350 bytes .../site-packages/future/moves/dbm/dumb.py | 9 + .../site-packages/future/moves/dbm/gnu.py | 9 + .../site-packages/future/moves/dbm/ndbm.py | 9 + .../future/moves/html/__init__.py | 31 + .../html/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 871 bytes .../html/__pycache__/entities.cpython-310.pyc | Bin 0 -> 371 bytes .../html/__pycache__/parser.cpython-310.pyc | Bin 0 -> 363 bytes .../future/moves/html/entities.py | 8 + .../site-packages/future/moves/html/parser.py | 8 + .../future/moves/http/__init__.py | 4 + .../http/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 267 bytes .../http/__pycache__/client.cpython-310.pyc | Bin 0 -> 344 bytes .../__pycache__/cookiejar.cpython-310.pyc | Bin 0 -> 368 bytes .../http/__pycache__/cookies.cpython-310.pyc | Bin 0 -> 390 bytes .../http/__pycache__/server.cpython-310.pyc | Bin 0 -> 585 bytes .../site-packages/future/moves/http/client.py | 8 + .../future/moves/http/cookiejar.py | 8 + .../future/moves/http/cookies.py | 9 + .../site-packages/future/moves/http/server.py | 20 + .../site-packages/future/moves/itertools.py | 8 + .../future/moves/multiprocessing.py | 7 + .../site-packages/future/moves/pickle.py | 11 + .../site-packages/future/moves/queue.py | 8 + .../site-packages/future/moves/reprlib.py | 8 + .../future/moves/socketserver.py | 8 + .../site-packages/future/moves/subprocess.py | 11 + .../site-packages/future/moves/sys.py | 8 + .../future/moves/test/__init__.py | 5 + .../test/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 317 bytes .../test/__pycache__/support.cpython-310.pyc | Bin 0 -> 699 bytes .../future/moves/test/support.py | 19 + .../future/moves/tkinter/__init__.py | 27 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 723 bytes .../__pycache__/colorchooser.cpython-310.pyc | Bin 0 -> 489 bytes .../__pycache__/commondialog.cpython-310.pyc | Bin 0 -> 489 bytes .../__pycache__/constants.cpython-310.pyc | Bin 0 -> 477 bytes .../__pycache__/dialog.cpython-310.pyc | Bin 0 -> 461 bytes .../tkinter/__pycache__/dnd.cpython-310.pyc | Bin 0 -> 453 bytes .../__pycache__/filedialog.cpython-310.pyc | Bin 0 -> 618 bytes .../tkinter/__pycache__/font.cpython-310.pyc | Bin 0 -> 457 bytes .../__pycache__/messagebox.cpython-310.pyc | Bin 0 -> 481 bytes .../__pycache__/scrolledtext.cpython-310.pyc | Bin 0 -> 485 bytes .../__pycache__/simpledialog.cpython-310.pyc | Bin 0 -> 485 bytes .../tkinter/__pycache__/tix.cpython-310.pyc | Bin 0 -> 449 bytes .../tkinter/__pycache__/ttk.cpython-310.pyc | Bin 0 -> 449 bytes .../future/moves/tkinter/colorchooser.py | 12 + .../future/moves/tkinter/commondialog.py | 12 + .../future/moves/tkinter/constants.py | 12 + .../future/moves/tkinter/dialog.py | 12 + .../site-packages/future/moves/tkinter/dnd.py | 12 + .../future/moves/tkinter/filedialog.py | 18 + .../future/moves/tkinter/font.py | 12 + .../future/moves/tkinter/messagebox.py | 12 + .../future/moves/tkinter/scrolledtext.py | 12 + .../future/moves/tkinter/simpledialog.py | 12 + .../site-packages/future/moves/tkinter/tix.py | 12 + .../site-packages/future/moves/tkinter/ttk.py | 12 + .../future/moves/urllib/__init__.py | 5 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 319 bytes .../urllib/__pycache__/error.cpython-310.pyc | Bin 0 -> 559 bytes .../urllib/__pycache__/parse.cpython-310.pyc | Bin 0 -> 800 bytes .../__pycache__/request.cpython-310.pyc | Bin 0 -> 1096 bytes .../__pycache__/response.cpython-310.pyc | Bin 0 -> 507 bytes .../__pycache__/robotparser.cpython-310.pyc | Bin 0 -> 378 bytes .../future/moves/urllib/error.py | 16 + .../future/moves/urllib/parse.py | 28 + .../future/moves/urllib/request.py | 94 + .../future/moves/urllib/response.py | 12 + .../future/moves/urllib/robotparser.py | 8 + .../site-packages/future/moves/winreg.py | 8 + .../future/moves/xmlrpc/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 191 bytes .../xmlrpc/__pycache__/client.cpython-310.pyc | Bin 0 -> 340 bytes .../xmlrpc/__pycache__/server.cpython-310.pyc | Bin 0 -> 340 bytes .../future/moves/xmlrpc/client.py | 7 + .../future/moves/xmlrpc/server.py | 7 + .../future/standard_library/__init__.py | 821 ++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 18617 bytes .../site-packages/future/tests/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 184 bytes .../tests/__pycache__/base.cpython-310.pyc | Bin 0 -> 16552 bytes .../site-packages/future/tests/base.py | 539 + .../site-packages/future/types/__init__.py | 257 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 6018 bytes .../__pycache__/newbytes.cpython-310.pyc | Bin 0 -> 13779 bytes .../types/__pycache__/newdict.cpython-310.pyc | Bin 0 -> 2501 bytes .../types/__pycache__/newint.cpython-310.pyc | Bin 0 -> 12122 bytes .../types/__pycache__/newlist.cpython-310.pyc | Bin 0 -> 3088 bytes .../__pycache__/newmemoryview.cpython-310.pyc | Bin 0 -> 1005 bytes .../__pycache__/newobject.cpython-310.pyc | Bin 0 -> 2664 bytes .../types/__pycache__/newopen.cpython-310.pyc | Bin 0 -> 1607 bytes .../__pycache__/newrange.cpython-310.pyc | Bin 0 -> 6096 bytes .../types/__pycache__/newstr.cpython-310.pyc | Bin 0 -> 13941 bytes .../site-packages/future/types/newbytes.py | 460 + .../site-packages/future/types/newdict.py | 76 + .../site-packages/future/types/newint.py | 386 + .../site-packages/future/types/newlist.py | 95 + .../future/types/newmemoryview.py | 29 + .../site-packages/future/types/newobject.py | 117 + .../site-packages/future/types/newopen.py | 32 + .../site-packages/future/types/newrange.py | 170 + .../site-packages/future/types/newstr.py | 426 + .../site-packages/future/utils/__init__.py | 770 ++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 19996 bytes .../surrogateescape.cpython-310.pyc | Bin 0 -> 3844 bytes .../future/utils/surrogateescape.py | 198 + .../idna-3.11.dist-info/INSTALLER | 1 + .../idna-3.11.dist-info/METADATA | 209 + .../site-packages/idna-3.11.dist-info/RECORD | 22 + .../site-packages/idna-3.11.dist-info/WHEEL | 4 + .../idna-3.11.dist-info/licenses/LICENSE.md | 31 + .../python3.10/site-packages/idna/__init__.py | 45 + .../idna/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 840 bytes .../idna/__pycache__/codec.cpython-310.pyc | Bin 0 -> 3261 bytes .../idna/__pycache__/compat.cpython-310.pyc | Bin 0 -> 743 bytes .../idna/__pycache__/core.cpython-310.pyc | Bin 0 -> 9663 bytes .../idna/__pycache__/idnadata.cpython-310.pyc | Bin 0 -> 198639 bytes .../__pycache__/intranges.cpython-310.pyc | Bin 0 -> 1972 bytes .../__pycache__/package_data.cpython-310.pyc | Bin 0 -> 200 bytes .../__pycache__/uts46data.cpython-310.pyc | Bin 0 -> 155208 bytes .../python3.10/site-packages/idna/codec.py | 122 + .../python3.10/site-packages/idna/compat.py | 15 + .../lib/python3.10/site-packages/idna/core.py | 437 + .../python3.10/site-packages/idna/idnadata.py | 4309 ++++++++ .../site-packages/idna/intranges.py | 57 + .../site-packages/idna/package_data.py | 1 + .../python3.10/site-packages/idna/py.typed | 0 .../site-packages/idna/uts46data.py | 8841 +++++++++++++++++ .../ilorest-7.0.0.0.dist-info/INSTALLER | 1 + .../ilorest-7.0.0.0.dist-info/METADATA | 40 + .../ilorest-7.0.0.0.dist-info/RECORD | 326 + .../ilorest-7.0.0.0.dist-info/REQUESTED | 0 .../ilorest-7.0.0.0.dist-info/WHEEL | 6 + .../entry_points.txt | 2 + .../ilorest-7.0.0.0.dist-info/top_level.txt | 2 + .../site-packages/ilorest/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 179 bytes .../__pycache__/cliutils.cpython-310.pyc | Bin 0 -> 6213 bytes .../__pycache__/debug_utils.cpython-310.pyc | Bin 0 -> 10918 bytes .../logging_config_path.cpython-310.pyc | Bin 0 -> 1140 bytes .../ilorest/__pycache__/rdmc.cpython-310.pyc | Bin 0 -> 35789 bytes .../rdmc_base_classes.cpython-310.pyc | Bin 0 -> 13848 bytes .../__pycache__/rdmc_helper.cpython-310.pyc | Bin 0 -> 40369 bytes .../security_masking.cpython-310.pyc | Bin 0 -> 16491 bytes .../__pycache__/versioning.cpython-310.pyc | Bin 0 -> 418 bytes .../ilorest/chiflibrary/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 191 bytes .../ilorest/chiflibrary/arm/__init__.py | 0 .../arm/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 195 bytes .../ilorest/chiflibrary/arm/ilorest_chif.so | Bin 0 -> 9423008 bytes .../ilorest/chiflibrary/ilorest_chif.dll | Bin 0 -> 3580048 bytes .../ilorest/chiflibrary/ilorest_chif.so | Bin 0 -> 9918784 bytes .../site-packages/ilorest/cliutils.py | 246 + .../site-packages/ilorest/config/__init__.py | 1 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 221 bytes .../config/__pycache__/config.cpython-310.pyc | Bin 0 -> 3712 bytes .../__pycache__/rdmc_config.cpython-310.pyc | Bin 0 -> 7893 bytes .../site-packages/ilorest/config/config.py | 159 + .../ilorest/config/rdmc_config.py | 288 + .../site-packages/ilorest/debug_utils.py | 475 + .../BIOS_COMMANDS/BiosDefaultsCommand.py | 156 + .../BIOS_COMMANDS/BootOrderCommand.py | 746 ++ .../BIOS_COMMANDS/IscsiConfigCommand.py | 978 ++ .../BIOS_COMMANDS/SetPasswordCommand.py | 225 + .../extensions/BIOS_COMMANDS/__init__.py | 0 .../BiosDefaultsCommand.cpython-310.pyc | Bin 0 -> 4228 bytes .../BootOrderCommand.cpython-310.pyc | Bin 0 -> 17666 bytes .../IscsiConfigCommand.cpython-310.pyc | Bin 0 -> 24768 bytes .../SetPasswordCommand.cpython-310.pyc | Bin 0 -> 5011 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 204 bytes .../extensions/COMMANDS/CommitCommand.py | 140 + .../extensions/COMMANDS/DetectiLOCommand.py | 212 + .../ilorest/extensions/COMMANDS/GetCommand.py | 512 + .../extensions/COMMANDS/InfoCommand.py | 183 + .../extensions/COMMANDS/ListCommand.py | 180 + .../extensions/COMMANDS/LoadCommand.py | 569 ++ .../extensions/COMMANDS/LoginCommand.py | 582 ++ .../extensions/COMMANDS/LogoutCommand.py | 79 + .../COMMANDS/PendingChangesCommand.py | 201 + .../COMMANDS/REQUIREDCOMMANDS/ExitCommand.py | 80 + .../COMMANDS/REQUIREDCOMMANDS/HelpCommand.py | 113 + .../COMMANDS/REQUIREDCOMMANDS/__init__.py | 0 .../__pycache__/ExitCommand.cpython-310.pyc | Bin 0 -> 2012 bytes .../__pycache__/HelpCommand.cpython-310.pyc | Bin 0 -> 2642 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 216 bytes .../extensions/COMMANDS/ResultsCommand.py | 156 + .../extensions/COMMANDS/SaveCommand.py | 424 + .../extensions/COMMANDS/SelectCommand.py | 143 + .../ilorest/extensions/COMMANDS/SetCommand.py | 472 + .../extensions/COMMANDS/StatusCommand.py | 203 + .../extensions/COMMANDS/TypesCommand.py | 125 + .../ilorest/extensions/COMMANDS/__init__.py | 0 .../__pycache__/CommitCommand.cpython-310.pyc | Bin 0 -> 3610 bytes .../DetectiLOCommand.cpython-310.pyc | Bin 0 -> 5695 bytes .../__pycache__/GetCommand.cpython-310.pyc | Bin 0 -> 14195 bytes .../__pycache__/InfoCommand.cpython-310.pyc | Bin 0 -> 4660 bytes .../__pycache__/ListCommand.cpython-310.pyc | Bin 0 -> 4796 bytes .../__pycache__/LoadCommand.cpython-310.pyc | Bin 0 -> 13033 bytes .../__pycache__/LoginCommand.cpython-310.pyc | Bin 0 -> 14175 bytes .../__pycache__/LogoutCommand.cpython-310.pyc | Bin 0 -> 2117 bytes .../PendingChangesCommand.cpython-310.pyc | Bin 0 -> 5335 bytes .../ResultsCommand.cpython-310.pyc | Bin 0 -> 4306 bytes .../__pycache__/SaveCommand.cpython-310.pyc | Bin 0 -> 10278 bytes .../__pycache__/SelectCommand.cpython-310.pyc | Bin 0 -> 4013 bytes .../__pycache__/SetCommand.cpython-310.pyc | Bin 0 -> 12122 bytes .../__pycache__/StatusCommand.cpython-310.pyc | Bin 0 -> 5190 bytes .../__pycache__/TypesCommand.cpython-310.pyc | Bin 0 -> 3119 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 199 bytes .../AdvancedPmmConfigCommand.py | 453 + .../ApplyPmemConfigCommand.py | 357 + .../ClearPendingConfigCommand.py | 134 + .../DisplaySecurityStateCommand.py | 123 + .../ShowPmemCommand.py | 455 + .../ShowPmemPendingConfigCommand.py | 170 + .../ShowRecommendedConfigCommand.py | 193 + .../PERSISTENT_MEMORY_COMMANDS/__init__.py | 0 .../AdvancedPmmConfigCommand.cpython-310.pyc | Bin 0 -> 13306 bytes .../ApplyPmemConfigCommand.cpython-310.pyc | Bin 0 -> 10819 bytes .../ClearPendingConfigCommand.cpython-310.pyc | Bin 0 -> 3835 bytes ...isplaySecurityStateCommand.cpython-310.pyc | Bin 0 -> 3149 bytes .../ShowPmemCommand.cpython-310.pyc | Bin 0 -> 12671 bytes ...owPmemPendingConfigCommand.cpython-310.pyc | Bin 0 -> 4573 bytes ...owRecommendedConfigCommand.cpython-310.pyc | Bin 0 -> 4866 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 217 bytes .../lib/DisplayHelpers.py | 187 + .../PERSISTENT_MEMORY_COMMANDS/lib/Mapper.py | 96 + .../lib/MapperRenderers.py | 478 + .../lib/PmemHelpers.py | 132 + .../lib/RestHelpers.py | 268 + .../lib/__init__.py | 0 .../DisplayHelpers.cpython-310.pyc | Bin 0 -> 6984 bytes .../lib/__pycache__/Mapper.cpython-310.pyc | Bin 0 -> 2622 bytes .../MapperRenderers.cpython-310.pyc | Bin 0 -> 12211 bytes .../__pycache__/PmemHelpers.cpython-310.pyc | Bin 0 -> 4272 bytes .../__pycache__/RestHelpers.cpython-310.pyc | Bin 0 -> 7355 bytes .../lib/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 221 bytes .../RAW_COMMANDS/RawDeleteCommand.py | 219 + .../extensions/RAW_COMMANDS/RawGetCommand.py | 322 + .../extensions/RAW_COMMANDS/RawHeadCommand.py | 148 + .../RAW_COMMANDS/RawPatchCommand.py | 264 + .../extensions/RAW_COMMANDS/RawPostCommand.py | 276 + .../extensions/RAW_COMMANDS/RawPutCommand.py | 268 + .../extensions/RAW_COMMANDS/__init__.py | 0 .../RawDeleteCommand.cpython-310.pyc | Bin 0 -> 4689 bytes .../__pycache__/RawGetCommand.cpython-310.pyc | Bin 0 -> 6568 bytes .../RawHeadCommand.cpython-310.pyc | Bin 0 -> 3473 bytes .../RawPatchCommand.cpython-310.pyc | Bin 0 -> 5917 bytes .../RawPostCommand.cpython-310.pyc | Bin 0 -> 6145 bytes .../__pycache__/RawPutCommand.cpython-310.pyc | Bin 0 -> 5904 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 203 bytes .../ClearControllerConfigCommand.py | 166 + .../CreateVolumeCommand.py | 1167 +++ .../DeleteVolumeCommand.py | 441 + .../DriveSanitizeCommand.py | 537 + .../FactoryResetControllerCommand.py | 223 + .../StorageControllerCommand.py | 2200 ++++ .../SMART_ARRAY_COMMANDS/__init__.py | 0 ...earControllerConfigCommand.cpython-310.pyc | Bin 0 -> 4598 bytes .../CreateVolumeCommand.cpython-310.pyc | Bin 0 -> 23612 bytes .../DeleteVolumeCommand.cpython-310.pyc | Bin 0 -> 10767 bytes .../DriveSanitizeCommand.cpython-310.pyc | Bin 0 -> 12879 bytes ...toryResetControllerCommand.cpython-310.pyc | Bin 0 -> 5662 bytes .../StorageControllerCommand.cpython-310.pyc | Bin 0 -> 51965 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 211 bytes .../SMART_NIC_COMMANDS/SmartNicCommand.py | 720 ++ .../extensions/SMART_NIC_COMMANDS/__init__.py | 0 .../SmartNicCommand.cpython-310.pyc | Bin 0 -> 17418 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 209 bytes .../ilorest/extensions/__init__.py | 32 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1019 bytes .../_hidden_commands/AHSdiagCommand.py | 519 + .../AutomaticTestingCommand.py | 2782 ++++++ .../ExportAllConfigCommand.py | 106 + .../_hidden_commands/GetInventoryCommand.py | 315 + .../_hidden_commands/HpGooeyCommand.py | 1071 ++ .../_hidden_commands/ISToolCommand.py | 186 + .../_hidden_commands/MonolithCommand.py | 120 + .../_hidden_commands/SMBiosCommand.py | 221 + .../_hidden_commands/SecurityStatusCommand.py | 179 + .../extensions/_hidden_commands/__init__.py | 0 .../AHSdiagCommand.cpython-310.pyc | Bin 0 -> 11851 bytes .../AutomaticTestingCommand.cpython-310.pyc | Bin 0 -> 68293 bytes .../ExportAllConfigCommand.cpython-310.pyc | Bin 0 -> 2810 bytes .../GetInventoryCommand.cpython-310.pyc | Bin 0 -> 6824 bytes .../HpGooeyCommand.cpython-310.pyc | Bin 0 -> 23687 bytes .../__pycache__/ISToolCommand.cpython-310.pyc | Bin 0 -> 4192 bytes .../MonolithCommand.cpython-310.pyc | Bin 0 -> 3050 bytes .../__pycache__/SMBiosCommand.cpython-310.pyc | Bin 0 -> 4768 bytes .../SecurityStatusCommand.cpython-310.pyc | Bin 0 -> 4524 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 207 bytes .../iLO_COMMANDS/AppAccountCommand.py | 693 ++ .../iLO_COMMANDS/CertificateCommand.py | 1481 +++ .../iLO_COMMANDS/ChannelInterfaceCommand.py | 130 + .../iLO_COMMANDS/ClearRestApiStateCommand.py | 130 + .../ComputeOpsManagementCommand.py | 3092 ++++++ .../iLO_COMMANDS/DirectoryCommand.py | 876 ++ .../DisableIloFunctionalityCommand.py | 204 + .../extensions/iLO_COMMANDS/ESKMCommand.py | 134 + .../iLO_COMMANDS/EthernetCommand.py | 1242 +++ .../iLO_COMMANDS/FactoryDefaultsCommand.py | 135 + .../FirmwareIntegrityCheckCommand.py | 170 + .../iLO_COMMANDS/FirmwareUpdateCommand.py | 325 + .../iLO_COMMANDS/IPProfilesCommand.py | 701 ++ .../iLO_COMMANDS/IloAccountsCommand.py | 780 ++ .../iLO_COMMANDS/IloBackupRestoreCommand.py | 310 + .../iLO_COMMANDS/IloFederationCommand.py | 537 + .../iLO_COMMANDS/IloLicenseCommand.py | 317 + .../iLO_COMMANDS/IloResetCommand.py | 137 + .../iLO_COMMANDS/LogconfigCommand.py | 809 ++ .../iLO_COMMANDS/OneButtonEraseCommand.py | 298 + .../extensions/iLO_COMMANDS/RebootCommand.py | 271 + .../iLO_COMMANDS/SendTestCommand.py | 155 + .../iLO_COMMANDS/ServerCloneCommand.py | 2696 +++++ .../ServerConfigurationLockCommand.py | 279 + .../iLO_COMMANDS/ServerInfoCommand.py | 1158 +++ .../iLO_COMMANDS/ServerStateCommand.py | 106 + .../iLO_COMMANDS/ServerlogsCommand.py | 1480 +++ .../SetTwoFactorAuthenticationCommand.py | 378 + .../iLO_COMMANDS/SigRecomputeCommand.py | 107 + .../iLO_COMMANDS/SingleSignOnCommand.py | 210 + .../iLO_COMMANDS/VirtualMediaCommand.py | 450 + .../extensions/iLO_COMMANDS/__init__.py | 0 .../AppAccountCommand.cpython-310.pyc | Bin 0 -> 15268 bytes .../CertificateCommand.cpython-310.pyc | Bin 0 -> 32617 bytes .../ChannelInterfaceCommand.cpython-310.pyc | Bin 0 -> 3586 bytes .../ClearRestApiStateCommand.cpython-310.pyc | Bin 0 -> 3306 bytes ...omputeOpsManagementCommand.cpython-310.pyc | Bin 0 -> 82093 bytes .../DirectoryCommand.cpython-310.pyc | Bin 0 -> 23180 bytes ...bleIloFunctionalityCommand.cpython-310.pyc | Bin 0 -> 5384 bytes .../__pycache__/ESKMCommand.cpython-310.pyc | Bin 0 -> 3052 bytes .../EthernetCommand.cpython-310.pyc | Bin 0 -> 30752 bytes .../FactoryDefaultsCommand.cpython-310.pyc | Bin 0 -> 3282 bytes ...mwareIntegrityCheckCommand.cpython-310.pyc | Bin 0 -> 4369 bytes .../FirmwareUpdateCommand.cpython-310.pyc | Bin 0 -> 7782 bytes .../IPProfilesCommand.cpython-310.pyc | Bin 0 -> 17667 bytes .../IloAccountsCommand.cpython-310.pyc | Bin 0 -> 19077 bytes .../IloBackupRestoreCommand.cpython-310.pyc | Bin 0 -> 7817 bytes .../IloFederationCommand.cpython-310.pyc | Bin 0 -> 14434 bytes .../IloLicenseCommand.cpython-310.pyc | Bin 0 -> 8125 bytes .../IloResetCommand.cpython-310.pyc | Bin 0 -> 3298 bytes .../LogconfigCommand.cpython-310.pyc | Bin 0 -> 18788 bytes .../OneButtonEraseCommand.cpython-310.pyc | Bin 0 -> 7769 bytes .../__pycache__/RebootCommand.cpython-310.pyc | Bin 0 -> 7614 bytes .../SendTestCommand.cpython-310.pyc | Bin 0 -> 3605 bytes .../ServerCloneCommand.cpython-310.pyc | Bin 0 -> 68013 bytes ...erConfigurationLockCommand.cpython-310.pyc | Bin 0 -> 8197 bytes .../ServerInfoCommand.cpython-310.pyc | Bin 0 -> 24074 bytes .../ServerStateCommand.cpython-310.pyc | Bin 0 -> 2774 bytes .../ServerlogsCommand.cpython-310.pyc | Bin 0 -> 37447 bytes ...actorAuthenticationCommand.cpython-310.pyc | Bin 0 -> 10114 bytes .../SigRecomputeCommand.cpython-310.pyc | Bin 0 -> 2853 bytes .../SingleSignOnCommand.cpython-310.pyc | Bin 0 -> 4687 bytes .../VirtualMediaCommand.cpython-310.pyc | Bin 0 -> 11279 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 203 bytes .../iLO_COMMANDS/com_helpers/__init__.py | 16 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 544 bytes .../config_resolver.cpython-310.pyc | Bin 0 -> 3966 bytes .../__pycache__/ilo_connector.cpython-310.pyc | Bin 0 -> 6519 bytes .../network_configurator.cpython-310.pyc | Bin 0 -> 6397 bytes .../progress_tracker.cpython-310.pyc | Bin 0 -> 4180 bytes .../com_helpers/config_resolver.py | 142 + .../iLO_COMMANDS/com_helpers/ilo_connector.py | 210 + .../com_helpers/network_configurator.py | 218 + .../com_helpers/progress_tracker.py | 112 + .../iLO_COMMANDS/data/InputTemplate.py | 31 + .../extensions/iLO_COMMANDS/data/__init__.py | 2 + .../__pycache__/InputTemplate.cpython-310.pyc | Bin 0 -> 1378 bytes .../data/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 248 bytes .../DeleteComponentCommand.py | 180 + .../DownloadComponentCommand.py | 229 + .../iLO_REPOSITORY_COMMANDS/FwpkgCommand.py | 766 ++ .../InstallSetCommand.py | 576 ++ .../ListComponentCommand.py | 140 + .../MaintenanceWindowCommand.py | 326 + .../MakeInstallSetCommand.py | 340 + .../UpdateTaskQueueCommand.py | 412 + .../UploadComponentCommand.py | 857 ++ .../iLO_REPOSITORY_COMMANDS/__init__.py | 0 .../DeleteComponentCommand.cpython-310.pyc | Bin 0 -> 4324 bytes .../DownloadComponentCommand.cpython-310.pyc | Bin 0 -> 6176 bytes .../__pycache__/FwpkgCommand.cpython-310.pyc | Bin 0 -> 18889 bytes .../InstallSetCommand.cpython-310.pyc | Bin 0 -> 14604 bytes .../ListComponentCommand.cpython-310.pyc | Bin 0 -> 3597 bytes .../MaintenanceWindowCommand.cpython-310.pyc | Bin 0 -> 9167 bytes .../MakeInstallSetCommand.cpython-310.pyc | Bin 0 -> 8823 bytes .../UpdateTaskQueueCommand.cpython-310.pyc | Bin 0 -> 10707 bytes .../UploadComponentCommand.cpython-310.pyc | Bin 0 -> 19657 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 214 bytes .../ilorest/logging_config_path.py | 27 + .../python3.10/site-packages/ilorest/rdmc.py | 1295 +++ .../ilorest/rdmc_base_classes.py | 537 + .../site-packages/ilorest/rdmc_helper.py | 1429 +++ .../site-packages/ilorest/security_masking.py | 678 ++ .../site-packages/ilorest/versioning.py | 23 + .../itsdangerous-2.2.0.dist-info/INSTALLER | 1 + .../itsdangerous-2.2.0.dist-info/LICENSE.txt | 28 + .../itsdangerous-2.2.0.dist-info/METADATA | 60 + .../itsdangerous-2.2.0.dist-info/RECORD | 22 + .../itsdangerous-2.2.0.dist-info/WHEEL | 4 + .../site-packages/itsdangerous/__init__.py | 38 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1466 bytes .../__pycache__/_json.cpython-310.pyc | Bin 0 -> 984 bytes .../__pycache__/encoding.cpython-310.pyc | Bin 0 -> 1935 bytes .../__pycache__/exc.cpython-310.pyc | Bin 0 -> 3400 bytes .../__pycache__/serializer.cpython-310.pyc | Bin 0 -> 11732 bytes .../__pycache__/signer.cpython-310.pyc | Bin 0 -> 9011 bytes .../__pycache__/timed.cpython-310.pyc | Bin 0 -> 6571 bytes .../__pycache__/url_safe.cpython-310.pyc | Bin 0 -> 2865 bytes .../site-packages/itsdangerous/_json.py | 18 + .../site-packages/itsdangerous/encoding.py | 54 + .../site-packages/itsdangerous/exc.py | 106 + .../site-packages/itsdangerous/py.typed | 0 .../site-packages/itsdangerous/serializer.py | 406 + .../site-packages/itsdangerous/signer.py | 266 + .../site-packages/itsdangerous/timed.py | 228 + .../site-packages/itsdangerous/url_safe.py | 83 + .../jinja2-3.1.6.dist-info/INSTALLER | 1 + .../jinja2-3.1.6.dist-info/METADATA | 84 + .../jinja2-3.1.6.dist-info/RECORD | 57 + .../jinja2-3.1.6.dist-info/WHEEL | 4 + .../jinja2-3.1.6.dist-info/entry_points.txt | 3 + .../licenses/LICENSE.txt | 28 + .../site-packages/jinja2/__init__.py | 38 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1606 bytes .../__pycache__/_identifier.cpython-310.pyc | Bin 0 -> 2081 bytes .../__pycache__/async_utils.cpython-310.pyc | Bin 0 -> 3458 bytes .../__pycache__/bccache.cpython-310.pyc | Bin 0 -> 13972 bytes .../__pycache__/compiler.cpython-310.pyc | Bin 0 -> 55252 bytes .../__pycache__/constants.cpython-310.pyc | Bin 0 -> 1542 bytes .../jinja2/__pycache__/debug.cpython-310.pyc | Bin 0 -> 3998 bytes .../__pycache__/defaults.cpython-310.pyc | Bin 0 -> 1342 bytes .../__pycache__/environment.cpython-310.pyc | Bin 0 -> 53450 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 5541 bytes .../jinja2/__pycache__/ext.cpython-310.pyc | Bin 0 -> 25880 bytes .../__pycache__/filters.cpython-310.pyc | Bin 0 -> 52124 bytes .../__pycache__/idtracking.cpython-310.pyc | Bin 0 -> 11093 bytes .../jinja2/__pycache__/lexer.cpython-310.pyc | Bin 0 -> 20449 bytes .../__pycache__/loaders.cpython-310.pyc | Bin 0 -> 21259 bytes .../jinja2/__pycache__/meta.cpython-310.pyc | Bin 0 -> 3822 bytes .../__pycache__/nativetypes.cpython-310.pyc | Bin 0 -> 5017 bytes .../jinja2/__pycache__/nodes.cpython-310.pyc | Bin 0 -> 40308 bytes .../__pycache__/optimizer.cpython-310.pyc | Bin 0 -> 1962 bytes .../jinja2/__pycache__/parser.cpython-310.pyc | Bin 0 -> 28115 bytes .../__pycache__/runtime.cpython-310.pyc | Bin 0 -> 32360 bytes .../__pycache__/sandbox.cpython-310.pyc | Bin 0 -> 12242 bytes .../jinja2/__pycache__/tests.cpython-310.pyc | Bin 0 -> 6702 bytes .../jinja2/__pycache__/utils.cpython-310.pyc | Bin 0 -> 24829 bytes .../__pycache__/visitor.cpython-310.pyc | Bin 0 -> 3981 bytes .../site-packages/jinja2/_identifier.py | 6 + .../site-packages/jinja2/async_utils.py | 99 + .../site-packages/jinja2/bccache.py | 408 + .../site-packages/jinja2/compiler.py | 1998 ++++ .../site-packages/jinja2/constants.py | 20 + .../python3.10/site-packages/jinja2/debug.py | 191 + .../site-packages/jinja2/defaults.py | 48 + .../site-packages/jinja2/environment.py | 1672 ++++ .../site-packages/jinja2/exceptions.py | 166 + .../python3.10/site-packages/jinja2/ext.py | 870 ++ .../site-packages/jinja2/filters.py | 1873 ++++ .../site-packages/jinja2/idtracking.py | 318 + .../python3.10/site-packages/jinja2/lexer.py | 868 ++ .../site-packages/jinja2/loaders.py | 693 ++ .../python3.10/site-packages/jinja2/meta.py | 112 + .../site-packages/jinja2/nativetypes.py | 130 + .../python3.10/site-packages/jinja2/nodes.py | 1206 +++ .../site-packages/jinja2/optimizer.py | 48 + .../python3.10/site-packages/jinja2/parser.py | 1049 ++ .../python3.10/site-packages/jinja2/py.typed | 0 .../site-packages/jinja2/runtime.py | 1062 ++ .../site-packages/jinja2/sandbox.py | 436 + .../python3.10/site-packages/jinja2/tests.py | 256 + .../python3.10/site-packages/jinja2/utils.py | 766 ++ .../site-packages/jinja2/visitor.py | 92 + .../jsondiff-2.2.1.dist-info/INSTALLER | 1 + .../jsondiff-2.2.1.dist-info/LICENSE | 22 + .../jsondiff-2.2.1.dist-info/METADATA | 168 + .../jsondiff-2.2.1.dist-info/RECORD | 16 + .../jsondiff-2.2.1.dist-info/WHEEL | 5 + .../jsondiff-2.2.1.dist-info/entry_points.txt | 2 + .../jsondiff-2.2.1.dist-info/top_level.txt | 1 + .../site-packages/jsondiff/__init__.py | 1132 +++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 36993 bytes .../__pycache__/_version.cpython-310.pyc | Bin 0 -> 503 bytes .../jsondiff/__pycache__/cli.cpython-310.pyc | Bin 0 -> 1775 bytes .../__pycache__/symbols.cpython-310.pyc | Bin 0 -> 2786 bytes .../site-packages/jsondiff/_version.py | 16 + .../python3.10/site-packages/jsondiff/cli.py | 60 + .../site-packages/jsondiff/symbols.py | 83 + .../jsonpatch-1.33.dist-info/AUTHORS | 4 + .../jsonpatch-1.33.dist-info/INSTALLER | 1 + .../jsonpatch-1.33.dist-info/LICENSE | 11 + .../jsonpatch-1.33.dist-info/METADATA | 66 + .../jsonpatch-1.33.dist-info/RECORD | 11 + .../jsonpatch-1.33.dist-info/WHEEL | 6 + .../jsonpatch-1.33.dist-info/top_level.txt | 1 + .../lib/python3.10/site-packages/jsonpatch.py | 931 ++ .../jsonpath_rw-1.4.0.dist-info/INSTALLER | 1 + .../jsonpath_rw-1.4.0.dist-info/METADATA | 248 + .../jsonpath_rw-1.4.0.dist-info/RECORD | 19 + .../jsonpath_rw-1.4.0.dist-info/WHEEL | 5 + .../entry_points.txt | 3 + .../jsonpath_rw-1.4.0.dist-info/top_level.txt | 1 + .../site-packages/jsonpath_rw/__init__.py | 4 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 270 bytes .../__pycache__/jsonpath.cpython-310.pyc | Bin 0 -> 19766 bytes .../__pycache__/lexer.cpython-310.pyc | Bin 0 -> 5619 bytes .../__pycache__/parser.cpython-310.pyc | Bin 0 -> 7193 bytes .../site-packages/jsonpath_rw/bin/__init__.py | 0 .../bin/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 187 bytes .../bin/__pycache__/jsonpath.cpython-310.pyc | Bin 0 -> 2298 bytes .../site-packages/jsonpath_rw/bin/jsonpath.py | 71 + .../site-packages/jsonpath_rw/jsonpath.py | 510 + .../site-packages/jsonpath_rw/lexer.py | 171 + .../site-packages/jsonpath_rw/parser.py | 187 + .../jsonpointer-3.0.0.dist-info/AUTHORS | 3 + .../jsonpointer-3.0.0.dist-info/INSTALLER | 1 + .../jsonpointer-3.0.0.dist-info/LICENSE.txt | 26 + .../jsonpointer-3.0.0.dist-info/METADATA | 51 + .../jsonpointer-3.0.0.dist-info/RECORD | 10 + .../jsonpointer-3.0.0.dist-info/WHEEL | 6 + .../jsonpointer-3.0.0.dist-info/top_level.txt | 1 + .../python3.10/site-packages/jsonpointer.py | 348 + .../site-packages/libfuturize/__init__.py | 1 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 183 bytes .../__pycache__/fixer_util.cpython-310.pyc | Bin 0 -> 11896 bytes .../__pycache__/main.cpython-310.pyc | Bin 0 -> 9477 bytes .../site-packages/libfuturize/fixer_util.py | 518 + .../libfuturize/fixes/__init__.py | 97 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1991 bytes .../__pycache__/fix_UserDict.cpython-310.pyc | Bin 0 -> 2260 bytes .../fix_absolute_import.cpython-310.pyc | Bin 0 -> 2520 bytes ...ts_except_unicode_literals.cpython-310.pyc | Bin 0 -> 1097 bytes .../fix_basestring.cpython-310.pyc | Bin 0 -> 822 bytes .../__pycache__/fix_bytes.cpython-310.pyc | Bin 0 -> 1070 bytes .../fixes/__pycache__/fix_cmp.cpython-310.pyc | Bin 0 -> 1107 bytes .../__pycache__/fix_division.cpython-310.pyc | Bin 0 -> 441 bytes .../fix_division_safe.cpython-310.pyc | Bin 0 -> 3098 bytes .../__pycache__/fix_execfile.cpython-310.pyc | Bin 0 -> 1340 bytes .../fix_future_builtins.cpython-310.pyc | Bin 0 -> 1760 bytes ...ix_future_standard_library.cpython-310.pyc | Bin 0 -> 1096 bytes ...re_standard_library_urllib.cpython-310.pyc | Bin 0 -> 1162 bytes .../__pycache__/fix_input.cpython-310.pyc | Bin 0 -> 1100 bytes .../__pycache__/fix_metaclass.cpython-310.pyc | Bin 0 -> 5894 bytes .../__pycache__/fix_next_call.cpython-310.pyc | Bin 0 -> 3083 bytes .../__pycache__/fix_object.cpython-310.pyc | Bin 0 -> 829 bytes .../fix_oldstr_wrap.cpython-310.pyc | Bin 0 -> 1418 bytes ...ix_order___future__imports.cpython-310.pyc | Bin 0 -> 1057 bytes .../__pycache__/fix_print.cpython-310.pyc | Bin 0 -> 2673 bytes .../fix_print_with_import.cpython-310.pyc | Bin 0 -> 976 bytes .../__pycache__/fix_raise.cpython-310.pyc | Bin 0 -> 2526 bytes ...emove_old__future__imports.cpython-310.pyc | Bin 0 -> 1262 bytes .../fix_unicode_keep_u.cpython-310.pyc | Bin 0 -> 1187 bytes ...ix_unicode_literals_import.cpython-310.pyc | Bin 0 -> 828 bytes .../fix_xrange_with_import.cpython-310.pyc | Bin 0 -> 907 bytes .../libfuturize/fixes/fix_UserDict.py | 102 + .../libfuturize/fixes/fix_absolute_import.py | 91 + ...future__imports_except_unicode_literals.py | 26 + .../libfuturize/fixes/fix_basestring.py | 17 + .../libfuturize/fixes/fix_bytes.py | 24 + .../libfuturize/fixes/fix_cmp.py | 33 + .../libfuturize/fixes/fix_division.py | 12 + .../libfuturize/fixes/fix_division_safe.py | 109 + .../libfuturize/fixes/fix_execfile.py | 37 + .../libfuturize/fixes/fix_future_builtins.py | 59 + .../fixes/fix_future_standard_library.py | 24 + .../fix_future_standard_library_urllib.py | 28 + .../libfuturize/fixes/fix_input.py | 32 + .../libfuturize/fixes/fix_metaclass.py | 262 + .../libfuturize/fixes/fix_next_call.py | 104 + .../libfuturize/fixes/fix_object.py | 17 + .../libfuturize/fixes/fix_oldstr_wrap.py | 39 + .../fixes/fix_order___future__imports.py | 36 + .../libfuturize/fixes/fix_print.py | 104 + .../fixes/fix_print_with_import.py | 22 + .../libfuturize/fixes/fix_raise.py | 107 + .../fixes/fix_remove_old__future__imports.py | 26 + .../libfuturize/fixes/fix_unicode_keep_u.py | 24 + .../fixes/fix_unicode_literals_import.py | 18 + .../fixes/fix_xrange_with_import.py | 20 + .../site-packages/libfuturize/main.py | 322 + .../site-packages/libpasteurize/__init__.py | 1 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 185 bytes .../__pycache__/main.cpython-310.pyc | Bin 0 -> 5818 bytes .../libpasteurize/fixes/__init__.py | 54 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 854 bytes .../__pycache__/feature_base.cpython-310.pyc | Bin 0 -> 2662 bytes ...x_add_all__future__imports.cpython-310.pyc | Bin 0 -> 1082 bytes ...ix_add_all_future_builtins.cpython-310.pyc | Bin 0 -> 1210 bytes ...re_standard_library_import.cpython-310.pyc | Bin 0 -> 1011 bytes .../fix_annotations.cpython-310.pyc | Bin 0 -> 1721 bytes .../__pycache__/fix_division.cpython-310.pyc | Bin 0 -> 1369 bytes .../__pycache__/fix_features.cpython-310.pyc | Bin 0 -> 2282 bytes .../fix_fullargspec.cpython-310.pyc | Bin 0 -> 874 bytes .../fix_future_builtins.cpython-310.pyc | Bin 0 -> 1557 bytes .../__pycache__/fix_getcwd.cpython-310.pyc | Bin 0 -> 1134 bytes .../__pycache__/fix_imports.cpython-310.pyc | Bin 0 -> 3887 bytes .../__pycache__/fix_imports2.cpython-310.pyc | Bin 0 -> 6045 bytes .../__pycache__/fix_kwargs.cpython-310.pyc | Bin 0 -> 3803 bytes .../fix_memoryview.cpython-310.pyc | Bin 0 -> 943 bytes .../__pycache__/fix_metaclass.cpython-310.pyc | Bin 0 -> 2043 bytes .../__pycache__/fix_newstyle.cpython-310.pyc | Bin 0 -> 1226 bytes .../__pycache__/fix_next.cpython-310.pyc | Bin 0 -> 1565 bytes .../fix_printfunction.cpython-310.pyc | Bin 0 -> 816 bytes .../__pycache__/fix_raise.cpython-310.pyc | Bin 0 -> 1364 bytes .../__pycache__/fix_raise_.cpython-310.pyc | Bin 0 -> 1490 bytes .../__pycache__/fix_throw.cpython-310.pyc | Bin 0 -> 1217 bytes .../__pycache__/fix_unpacking.cpython-310.pyc | Bin 0 -> 5619 bytes .../libpasteurize/fixes/feature_base.py | 57 + .../fixes/fix_add_all__future__imports.py | 24 + .../fixes/fix_add_all_future_builtins.py | 37 + .../fix_add_future_standard_library_import.py | 23 + .../libpasteurize/fixes/fix_annotations.py | 48 + .../libpasteurize/fixes/fix_division.py | 28 + .../libpasteurize/fixes/fix_features.py | 86 + .../libpasteurize/fixes/fix_fullargspec.py | 16 + .../fixes/fix_future_builtins.py | 46 + .../libpasteurize/fixes/fix_getcwd.py | 26 + .../libpasteurize/fixes/fix_imports.py | 113 + .../libpasteurize/fixes/fix_imports2.py | 174 + .../libpasteurize/fixes/fix_kwargs.py | 147 + .../libpasteurize/fixes/fix_memoryview.py | 21 + .../libpasteurize/fixes/fix_metaclass.py | 78 + .../libpasteurize/fixes/fix_newstyle.py | 33 + .../libpasteurize/fixes/fix_next.py | 43 + .../libpasteurize/fixes/fix_printfunction.py | 17 + .../libpasteurize/fixes/fix_raise.py | 25 + .../libpasteurize/fixes/fix_raise_.py | 35 + .../libpasteurize/fixes/fix_throw.py | 23 + .../libpasteurize/fixes/fix_unpacking.py | 124 + .../site-packages/libpasteurize/main.py | 204 + .../markupsafe-3.0.3.dist-info/INSTALLER | 1 + .../markupsafe-3.0.3.dist-info/METADATA | 74 + .../markupsafe-3.0.3.dist-info/RECORD | 14 + .../markupsafe-3.0.3.dist-info/WHEEL | 7 + .../licenses/LICENSE.txt | 28 + .../markupsafe-3.0.3.dist-info/top_level.txt | 1 + .../site-packages/markupsafe/__init__.py | 396 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 15435 bytes .../__pycache__/_native.cpython-310.pyc | Bin 0 -> 416 bytes .../site-packages/markupsafe/_native.py | 8 + .../site-packages/markupsafe/_speedups.c | 200 + .../_speedups.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 35816 bytes .../site-packages/markupsafe/_speedups.pyi | 1 + .../site-packages/markupsafe/py.typed | 0 .../python3.10/site-packages/past/__init__.py | 90 + .../past/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3093 bytes .../site-packages/past/builtins/__init__.py | 72 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1636 bytes .../builtins/__pycache__/misc.cpython-310.pyc | Bin 0 -> 4019 bytes .../__pycache__/noniterators.cpython-310.pyc | Bin 0 -> 3268 bytes .../site-packages/past/builtins/misc.py | 162 + .../past/builtins/noniterators.py | 272 + .../past/translation/__init__.py | 453 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 11211 bytes .../site-packages/past/types/__init__.py | 29 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 899 bytes .../__pycache__/basestring.cpython-310.pyc | Bin 0 -> 1410 bytes .../types/__pycache__/olddict.cpython-310.pyc | Bin 0 -> 2347 bytes .../types/__pycache__/oldstr.cpython-310.pyc | Bin 0 -> 2930 bytes .../site-packages/past/types/basestring.py | 38 + .../site-packages/past/types/olddict.py | 96 + .../site-packages/past/types/oldstr.py | 135 + .../site-packages/past/utils/__init__.py | 97 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3056 bytes .../pip-22.0.2.dist-info/INSTALLER | 1 + .../pip-22.0.2.dist-info/LICENSE.txt | 20 + .../pip-22.0.2.dist-info/METADATA | 92 + .../site-packages/pip-22.0.2.dist-info/RECORD | 1037 ++ .../pip-22.0.2.dist-info/REQUESTED | 0 .../site-packages/pip-22.0.2.dist-info/WHEEL | 5 + .../pip-22.0.2.dist-info/entry_points.txt | 5 + .../pip-22.0.2.dist-info/top_level.txt | 1 + .../python3.10/site-packages/pip/__init__.py | 13 + .../python3.10/site-packages/pip/__main__.py | 31 + .../pip/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 631 bytes .../pip/__pycache__/__main__.cpython-310.pyc | Bin 0 -> 593 bytes .../site-packages/pip/_internal/__init__.py | 19 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 752 bytes .../__pycache__/build_env.cpython-310.pyc | Bin 0 -> 9596 bytes .../__pycache__/cache.cpython-310.pyc | Bin 0 -> 8379 bytes .../__pycache__/configuration.cpython-310.pyc | Bin 0 -> 11125 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 23122 bytes .../__pycache__/main.cpython-310.pyc | Bin 0 -> 617 bytes .../__pycache__/pyproject.cpython-310.pyc | Bin 0 -> 3536 bytes .../self_outdated_check.cpython-310.pyc | Bin 0 -> 4576 bytes .../__pycache__/wheel_builder.cpython-310.pyc | Bin 0 -> 9138 bytes .../site-packages/pip/_internal/build_env.py | 296 + .../site-packages/pip/_internal/cache.py | 264 + .../pip/_internal/cli/__init__.py | 4 + .../cli/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 272 bytes .../autocompletion.cpython-310.pyc | Bin 0 -> 5305 bytes .../__pycache__/base_command.cpython-310.pyc | Bin 0 -> 6248 bytes .../__pycache__/cmdoptions.cpython-310.pyc | Bin 0 -> 22547 bytes .../command_context.cpython-310.pyc | Bin 0 -> 1306 bytes .../cli/__pycache__/main.cpython-310.pyc | Bin 0 -> 1370 bytes .../__pycache__/main_parser.cpython-310.pyc | Bin 0 -> 2156 bytes .../cli/__pycache__/parser.cpython-310.pyc | Bin 0 -> 9943 bytes .../__pycache__/progress_bars.cpython-310.pyc | Bin 0 -> 9232 bytes .../__pycache__/req_command.cpython-310.pyc | Bin 0 -> 13533 bytes .../cli/__pycache__/spinners.cpython-310.pyc | Bin 0 -> 4946 bytes .../__pycache__/status_codes.cpython-310.pyc | Bin 0 -> 351 bytes .../pip/_internal/cli/autocompletion.py | 171 + .../pip/_internal/cli/base_command.py | 220 + .../pip/_internal/cli/cmdoptions.py | 1018 ++ .../pip/_internal/cli/command_context.py | 27 + .../site-packages/pip/_internal/cli/main.py | 70 + .../pip/_internal/cli/main_parser.py | 87 + .../site-packages/pip/_internal/cli/parser.py | 292 + .../pip/_internal/cli/progress_bars.py | 321 + .../pip/_internal/cli/req_command.py | 506 + .../pip/_internal/cli/spinners.py | 157 + .../pip/_internal/cli/status_codes.py | 6 + .../pip/_internal/commands/__init__.py | 127 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3135 bytes .../__pycache__/cache.cpython-310.pyc | Bin 0 -> 6176 bytes .../__pycache__/check.cpython-310.pyc | Bin 0 -> 1569 bytes .../__pycache__/completion.cpython-310.pyc | Bin 0 -> 3136 bytes .../__pycache__/configuration.cpython-310.pyc | Bin 0 -> 8318 bytes .../__pycache__/debug.cpython-310.pyc | Bin 0 -> 6673 bytes .../__pycache__/download.cpython-310.pyc | Bin 0 -> 3983 bytes .../__pycache__/freeze.cpython-310.pyc | Bin 0 -> 2649 bytes .../commands/__pycache__/hash.cpython-310.pyc | Bin 0 -> 2148 bytes .../commands/__pycache__/help.cpython-310.pyc | Bin 0 -> 1309 bytes .../__pycache__/index.cpython-310.pyc | Bin 0 -> 4632 bytes .../__pycache__/install.cpython-310.pyc | Bin 0 -> 17791 bytes .../commands/__pycache__/list.cpython-310.pyc | Bin 0 -> 10358 bytes .../__pycache__/search.cpython-310.pyc | Bin 0 -> 5362 bytes .../commands/__pycache__/show.cpython-310.pyc | Bin 0 -> 6115 bytes .../__pycache__/uninstall.cpython-310.pyc | Bin 0 -> 3106 bytes .../__pycache__/wheel.cpython-310.pyc | Bin 0 -> 4838 bytes .../pip/_internal/commands/cache.py | 223 + .../pip/_internal/commands/check.py | 53 + .../pip/_internal/commands/completion.py | 96 + .../pip/_internal/commands/configuration.py | 266 + .../pip/_internal/commands/debug.py | 202 + .../pip/_internal/commands/download.py | 140 + .../pip/_internal/commands/freeze.py | 97 + .../pip/_internal/commands/hash.py | 59 + .../pip/_internal/commands/help.py | 41 + .../pip/_internal/commands/index.py | 139 + .../pip/_internal/commands/install.py | 771 ++ .../pip/_internal/commands/list.py | 363 + .../pip/_internal/commands/search.py | 174 + .../pip/_internal/commands/show.py | 178 + .../pip/_internal/commands/uninstall.py | 105 + .../pip/_internal/commands/wheel.py | 178 + .../pip/_internal/configuration.py | 366 + .../pip/_internal/distributions/__init__.py | 21 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 799 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 1856 bytes .../__pycache__/installed.cpython-310.pyc | Bin 0 -> 1233 bytes .../__pycache__/sdist.cpython-310.pyc | Bin 0 -> 4445 bytes .../__pycache__/wheel.cpython-310.pyc | Bin 0 -> 1600 bytes .../pip/_internal/distributions/base.py | 36 + .../pip/_internal/distributions/installed.py | 20 + .../pip/_internal/distributions/sdist.py | 127 + .../pip/_internal/distributions/wheel.py | 31 + .../site-packages/pip/_internal/exceptions.py | 658 ++ .../pip/_internal/index/__init__.py | 2 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 226 bytes .../__pycache__/collector.cpython-310.pyc | Bin 0 -> 19305 bytes .../package_finder.cpython-310.pyc | Bin 0 -> 28114 bytes .../index/__pycache__/sources.cpython-310.pyc | Bin 0 -> 7119 bytes .../pip/_internal/index/collector.py | 648 ++ .../pip/_internal/index/package_finder.py | 1004 ++ .../pip/_internal/index/sources.py | 224 + .../pip/_internal/locations/__init__.py | 520 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 12386 bytes .../__pycache__/_distutils.cpython-310.pyc | Bin 0 -> 4654 bytes .../__pycache__/_sysconfig.cpython-310.pyc | Bin 0 -> 6237 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 1536 bytes .../pip/_internal/locations/_distutils.py | 169 + .../pip/_internal/locations/_sysconfig.py | 219 + .../pip/_internal/locations/base.py | 52 + .../site-packages/pip/_internal/main.py | 12 + .../pip/_internal/metadata/__init__.py | 62 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2292 bytes .../metadata/__pycache__/base.cpython-310.pyc | Bin 0 -> 20846 bytes .../__pycache__/pkg_resources.cpython-310.pyc | Bin 0 -> 9862 bytes .../pip/_internal/metadata/base.py | 546 + .../pip/_internal/metadata/pkg_resources.py | 256 + .../pip/_internal/models/__init__.py | 2 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 260 bytes .../__pycache__/candidate.cpython-310.pyc | Bin 0 -> 1412 bytes .../__pycache__/direct_url.cpython-310.pyc | Bin 0 -> 7285 bytes .../format_control.cpython-310.pyc | Bin 0 -> 2737 bytes .../models/__pycache__/index.cpython-310.pyc | Bin 0 -> 1229 bytes .../models/__pycache__/link.cpython-310.pyc | Bin 0 -> 10161 bytes .../models/__pycache__/scheme.cpython-310.pyc | Bin 0 -> 1028 bytes .../__pycache__/search_scope.cpython-310.pyc | Bin 0 -> 3483 bytes .../selection_prefs.cpython-310.pyc | Bin 0 -> 1690 bytes .../__pycache__/target_python.cpython-310.pyc | Bin 0 -> 3441 bytes .../models/__pycache__/wheel.cpython-310.pyc | Bin 0 -> 4357 bytes .../pip/_internal/models/candidate.py | 34 + .../pip/_internal/models/direct_url.py | 220 + .../pip/_internal/models/format_control.py | 80 + .../pip/_internal/models/index.py | 28 + .../pip/_internal/models/link.py | 288 + .../pip/_internal/models/scheme.py | 31 + .../pip/_internal/models/search_scope.py | 129 + .../pip/_internal/models/selection_prefs.py | 51 + .../pip/_internal/models/target_python.py | 110 + .../pip/_internal/models/wheel.py | 89 + .../pip/_internal/network/__init__.py | 2 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 248 bytes .../network/__pycache__/auth.cpython-310.pyc | Bin 0 -> 7516 bytes .../network/__pycache__/cache.cpython-310.pyc | Bin 0 -> 2929 bytes .../__pycache__/download.cpython-310.pyc | Bin 0 -> 5495 bytes .../__pycache__/lazy_wheel.cpython-310.pyc | Bin 0 -> 8403 bytes .../__pycache__/session.cpython-310.pyc | Bin 0 -> 10724 bytes .../network/__pycache__/utils.cpython-310.pyc | Bin 0 -> 1444 bytes .../__pycache__/xmlrpc.cpython-310.pyc | Bin 0 -> 2061 bytes .../pip/_internal/network/auth.py | 323 + .../pip/_internal/network/cache.py | 69 + .../pip/_internal/network/download.py | 185 + .../pip/_internal/network/lazy_wheel.py | 210 + .../pip/_internal/network/session.py | 454 + .../pip/_internal/network/utils.py | 96 + .../pip/_internal/network/xmlrpc.py | 60 + .../pip/_internal/operations/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 196 bytes .../__pycache__/check.cpython-310.pyc | Bin 0 -> 4009 bytes .../__pycache__/freeze.cpython-310.pyc | Bin 0 -> 6194 bytes .../__pycache__/prepare.cpython-310.pyc | Bin 0 -> 14892 bytes .../_internal/operations/build/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 202 bytes .../__pycache__/metadata.cpython-310.pyc | Bin 0 -> 1429 bytes .../metadata_editable.cpython-310.pyc | Bin 0 -> 1463 bytes .../metadata_legacy.cpython-310.pyc | Bin 0 -> 2374 bytes .../build/__pycache__/wheel.cpython-310.pyc | Bin 0 -> 1219 bytes .../wheel_editable.cpython-310.pyc | Bin 0 -> 1443 bytes .../__pycache__/wheel_legacy.cpython-310.pyc | Bin 0 -> 2759 bytes .../_internal/operations/build/metadata.py | 39 + .../operations/build/metadata_editable.py | 41 + .../operations/build/metadata_legacy.py | 74 + .../pip/_internal/operations/build/wheel.py | 37 + .../operations/build/wheel_editable.py | 46 + .../operations/build/wheel_legacy.py | 102 + .../pip/_internal/operations/check.py | 149 + .../pip/_internal/operations/freeze.py | 254 + .../_internal/operations/install/__init__.py | 2 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 260 bytes .../editable_legacy.cpython-310.pyc | Bin 0 -> 1547 bytes .../__pycache__/legacy.cpython-310.pyc | Bin 0 -> 3331 bytes .../install/__pycache__/wheel.cpython-310.pyc | Bin 0 -> 21089 bytes .../operations/install/editable_legacy.py | 47 + .../_internal/operations/install/legacy.py | 120 + .../pip/_internal/operations/install/wheel.py | 738 ++ .../pip/_internal/operations/prepare.py | 642 ++ .../site-packages/pip/_internal/pyproject.py | 168 + .../pip/_internal/req/__init__.py | 94 + .../req/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2596 bytes .../__pycache__/constructors.cpython-310.pyc | Bin 0 -> 12159 bytes .../req/__pycache__/req_file.cpython-310.pyc | Bin 0 -> 13487 bytes .../__pycache__/req_install.cpython-310.pyc | Bin 0 -> 22176 bytes .../req/__pycache__/req_set.cpython-310.pyc | Bin 0 -> 5836 bytes .../__pycache__/req_tracker.cpython-310.pyc | Bin 0 -> 4304 bytes .../__pycache__/req_uninstall.cpython-310.pyc | Bin 0 -> 18942 bytes .../pip/_internal/req/constructors.py | 490 + .../pip/_internal/req/req_file.py | 536 + .../pip/_internal/req/req_install.py | 858 ++ .../pip/_internal/req/req_set.py | 189 + .../pip/_internal/req/req_tracker.py | 124 + .../pip/_internal/req/req_uninstall.py | 633 ++ .../pip/_internal/resolution/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 196 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 1048 bytes .../pip/_internal/resolution/base.py | 20 + .../_internal/resolution/legacy/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 203 bytes .../__pycache__/resolver.cpython-310.pyc | Bin 0 -> 12290 bytes .../_internal/resolution/legacy/resolver.py | 467 + .../resolution/resolvelib/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 207 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 6450 bytes .../__pycache__/candidates.cpython-310.pyc | Bin 0 -> 18357 bytes .../__pycache__/factory.cpython-310.pyc | Bin 0 -> 19215 bytes .../found_candidates.cpython-310.pyc | Bin 0 -> 4867 bytes .../__pycache__/provider.cpython-310.pyc | Bin 0 -> 7709 bytes .../__pycache__/reporter.cpython-310.pyc | Bin 0 -> 3176 bytes .../__pycache__/requirements.cpython-310.pyc | Bin 0 -> 7465 bytes .../__pycache__/resolver.cpython-310.pyc | Bin 0 -> 8102 bytes .../_internal/resolution/resolvelib/base.py | 141 + .../resolution/resolvelib/candidates.py | 547 + .../resolution/resolvelib/factory.py | 739 ++ .../resolution/resolvelib/found_candidates.py | 155 + .../resolution/resolvelib/provider.py | 248 + .../resolution/resolvelib/reporter.py | 68 + .../resolution/resolvelib/requirements.py | 166 + .../resolution/resolvelib/resolver.py | 292 + .../pip/_internal/self_outdated_check.py | 189 + .../pip/_internal/utils/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 191 bytes .../utils/__pycache__/_log.cpython-310.pyc | Bin 0 -> 1519 bytes .../utils/__pycache__/appdirs.cpython-310.pyc | Bin 0 -> 1617 bytes .../utils/__pycache__/compat.cpython-310.pyc | Bin 0 -> 1507 bytes .../compatibility_tags.cpython-310.pyc | Bin 0 -> 4076 bytes .../__pycache__/datetime.cpython-310.pyc | Bin 0 -> 514 bytes .../__pycache__/deprecation.cpython-310.pyc | Bin 0 -> 3312 bytes .../direct_url_helpers.cpython-310.pyc | Bin 0 -> 2082 bytes .../distutils_args.cpython-310.pyc | Bin 0 -> 1098 bytes .../__pycache__/egg_link.cpython-310.pyc | Bin 0 -> 2147 bytes .../__pycache__/encoding.cpython-310.pyc | Bin 0 -> 1304 bytes .../__pycache__/entrypoints.cpython-310.pyc | Bin 0 -> 1301 bytes .../__pycache__/filesystem.cpython-310.pyc | Bin 0 -> 5159 bytes .../__pycache__/filetypes.cpython-310.pyc | Bin 0 -> 941 bytes .../utils/__pycache__/glibc.cpython-310.pyc | Bin 0 -> 1670 bytes .../utils/__pycache__/hashes.cpython-310.pyc | Bin 0 -> 5193 bytes .../inject_securetransport.cpython-310.pyc | Bin 0 -> 986 bytes .../utils/__pycache__/logging.cpython-310.pyc | Bin 0 -> 9630 bytes .../utils/__pycache__/misc.cpython-310.pyc | Bin 0 -> 19396 bytes .../utils/__pycache__/models.cpython-310.pyc | Bin 0 -> 1987 bytes .../__pycache__/packaging.cpython-310.pyc | Bin 0 -> 2079 bytes .../setuptools_build.cpython-310.pyc | Bin 0 -> 4594 bytes .../__pycache__/subprocess.cpython-310.pyc | Bin 0 -> 5773 bytes .../__pycache__/temp_dir.cpython-310.pyc | Bin 0 -> 7296 bytes .../__pycache__/unpacking.cpython-310.pyc | Bin 0 -> 6651 bytes .../utils/__pycache__/urls.cpython-310.pyc | Bin 0 -> 1584 bytes .../__pycache__/virtualenv.cpython-310.pyc | Bin 0 -> 3287 bytes .../utils/__pycache__/wheel.cpython-310.pyc | Bin 0 -> 4412 bytes .../site-packages/pip/_internal/utils/_log.py | 38 + .../pip/_internal/utils/appdirs.py | 52 + .../pip/_internal/utils/compat.py | 63 + .../pip/_internal/utils/compatibility_tags.py | 165 + .../pip/_internal/utils/datetime.py | 11 + .../pip/_internal/utils/deprecation.py | 120 + .../pip/_internal/utils/direct_url_helpers.py | 87 + .../pip/_internal/utils/distutils_args.py | 42 + .../pip/_internal/utils/egg_link.py | 75 + .../pip/_internal/utils/encoding.py | 36 + .../pip/_internal/utils/entrypoints.py | 27 + .../pip/_internal/utils/filesystem.py | 182 + .../pip/_internal/utils/filetypes.py | 27 + .../pip/_internal/utils/glibc.py | 88 + .../pip/_internal/utils/hashes.py | 144 + .../_internal/utils/inject_securetransport.py | 35 + .../pip/_internal/utils/logging.py | 343 + .../site-packages/pip/_internal/utils/misc.py | 653 ++ .../pip/_internal/utils/models.py | 39 + .../pip/_internal/utils/packaging.py | 57 + .../pip/_internal/utils/setuptools_build.py | 195 + .../pip/_internal/utils/subprocess.py | 260 + .../pip/_internal/utils/temp_dir.py | 246 + .../pip/_internal/utils/unpacking.py | 258 + .../site-packages/pip/_internal/utils/urls.py | 62 + .../pip/_internal/utils/virtualenv.py | 104 + .../pip/_internal/utils/wheel.py | 136 + .../pip/_internal/vcs/__init__.py | 15 + .../vcs/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 514 bytes .../vcs/__pycache__/bazaar.cpython-310.pyc | Bin 0 -> 3341 bytes .../vcs/__pycache__/git.cpython-310.pyc | Bin 0 -> 12544 bytes .../vcs/__pycache__/mercurial.cpython-310.pyc | Bin 0 -> 5060 bytes .../__pycache__/subversion.cpython-310.pyc | Bin 0 -> 8448 bytes .../versioncontrol.cpython-310.pyc | Bin 0 -> 21143 bytes .../site-packages/pip/_internal/vcs/bazaar.py | 101 + .../site-packages/pip/_internal/vcs/git.py | 526 + .../pip/_internal/vcs/mercurial.py | 163 + .../pip/_internal/vcs/subversion.py | 324 + .../pip/_internal/vcs/versioncontrol.py | 705 ++ .../pip/_internal/wheel_builder.py | 377 + .../site-packages/pip/_vendor/__init__.py | 111 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2914 bytes .../__pycache__/distro.cpython-310.pyc | Bin 0 -> 38232 bytes .../_vendor/__pycache__/six.cpython-310.pyc | Bin 0 -> 27581 bytes .../typing_extensions.cpython-310.pyc | Bin 0 -> 66577 bytes .../pip/_vendor/cachecontrol/__init__.py | 18 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 642 bytes .../__pycache__/_cmd.cpython-310.pyc | Bin 0 -> 1580 bytes .../__pycache__/adapter.cpython-310.pyc | Bin 0 -> 3156 bytes .../__pycache__/cache.cpython-310.pyc | Bin 0 -> 1846 bytes .../__pycache__/compat.cpython-310.pyc | Bin 0 -> 756 bytes .../__pycache__/controller.cpython-310.pyc | Bin 0 -> 8210 bytes .../__pycache__/filewrapper.cpython-310.pyc | Bin 0 -> 2792 bytes .../__pycache__/heuristics.cpython-310.pyc | Bin 0 -> 4716 bytes .../__pycache__/serialize.cpython-310.pyc | Bin 0 -> 4251 bytes .../__pycache__/wrapper.cpython-310.pyc | Bin 0 -> 687 bytes .../pip/_vendor/cachecontrol/_cmd.py | 61 + .../pip/_vendor/cachecontrol/adapter.py | 137 + .../pip/_vendor/cachecontrol/cache.py | 43 + .../_vendor/cachecontrol/caches/__init__.py | 6 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 293 bytes .../__pycache__/file_cache.cpython-310.pyc | Bin 0 -> 3367 bytes .../__pycache__/redis_cache.cpython-310.pyc | Bin 0 -> 1573 bytes .../_vendor/cachecontrol/caches/file_cache.py | 150 + .../cachecontrol/caches/redis_cache.py | 37 + .../pip/_vendor/cachecontrol/compat.py | 32 + .../pip/_vendor/cachecontrol/controller.py | 415 + .../pip/_vendor/cachecontrol/filewrapper.py | 111 + .../pip/_vendor/cachecontrol/heuristics.py | 139 + .../pip/_vendor/cachecontrol/serialize.py | 186 + .../pip/_vendor/cachecontrol/wrapper.py | 33 + .../pip/_vendor/certifi/__init__.py | 3 + .../pip/_vendor/certifi/__main__.py | 12 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 275 bytes .../__pycache__/__main__.cpython-310.pyc | Bin 0 -> 454 bytes .../certifi/__pycache__/core.cpython-310.pyc | Bin 0 -> 1513 bytes .../pip/_vendor/certifi/cacert.pem | 4362 ++++++++ .../site-packages/pip/_vendor/certifi/core.py | 76 + .../pip/_vendor/chardet/__init__.py | 83 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1899 bytes .../__pycache__/big5freq.cpython-310.pyc | Bin 0 -> 27178 bytes .../__pycache__/big5prober.cpython-310.pyc | Bin 0 -> 1129 bytes .../chardistribution.cpython-310.pyc | Bin 0 -> 5739 bytes .../charsetgroupprober.cpython-310.pyc | Bin 0 -> 2228 bytes .../__pycache__/charsetprober.cpython-310.pyc | Bin 0 -> 3482 bytes .../codingstatemachine.cpython-310.pyc | Bin 0 -> 2901 bytes .../__pycache__/compat.cpython-310.pyc | Bin 0 -> 400 bytes .../__pycache__/cp949prober.cpython-310.pyc | Bin 0 -> 1136 bytes .../chardet/__pycache__/enums.cpython-310.pyc | Bin 0 -> 2583 bytes .../__pycache__/escprober.cpython-310.pyc | Bin 0 -> 2630 bytes .../chardet/__pycache__/escsm.cpython-310.pyc | Bin 0 -> 8377 bytes .../__pycache__/eucjpprober.cpython-310.pyc | Bin 0 -> 2432 bytes .../__pycache__/euckrfreq.cpython-310.pyc | Bin 0 -> 12062 bytes .../__pycache__/euckrprober.cpython-310.pyc | Bin 0 -> 1137 bytes .../__pycache__/euctwfreq.cpython-310.pyc | Bin 0 -> 27182 bytes .../__pycache__/euctwprober.cpython-310.pyc | Bin 0 -> 1137 bytes .../__pycache__/gb2312freq.cpython-310.pyc | Bin 0 -> 19106 bytes .../__pycache__/gb2312prober.cpython-310.pyc | Bin 0 -> 1145 bytes .../__pycache__/hebrewprober.cpython-310.pyc | Bin 0 -> 3018 bytes .../__pycache__/jisfreq.cpython-310.pyc | Bin 0 -> 22134 bytes .../__pycache__/jpcntx.cpython-310.pyc | Bin 0 -> 37641 bytes .../langbulgarianmodel.cpython-310.pyc | Bin 0 -> 47922 bytes .../langgreekmodel.cpython-310.pyc | Bin 0 -> 46112 bytes .../langhebrewmodel.cpython-310.pyc | Bin 0 -> 44561 bytes .../langhungarianmodel.cpython-310.pyc | Bin 0 -> 47882 bytes .../langrussianmodel.cpython-310.pyc | Bin 0 -> 61015 bytes .../__pycache__/langthaimodel.cpython-310.pyc | Bin 0 -> 44737 bytes .../langturkishmodel.cpython-310.pyc | Bin 0 -> 44578 bytes .../__pycache__/latin1prober.cpython-310.pyc | Bin 0 -> 4428 bytes .../mbcharsetprober.cpython-310.pyc | Bin 0 -> 2247 bytes .../mbcsgroupprober.cpython-310.pyc | Bin 0 -> 1132 bytes .../__pycache__/mbcssm.cpython-310.pyc | Bin 0 -> 18759 bytes .../sbcharsetprober.cpython-310.pyc | Bin 0 -> 3078 bytes .../sbcsgroupprober.cpython-310.pyc | Bin 0 -> 1701 bytes .../__pycache__/sjisprober.cpython-310.pyc | Bin 0 -> 2470 bytes .../universaldetector.cpython-310.pyc | Bin 0 -> 5824 bytes .../__pycache__/utf8prober.cpython-310.pyc | Bin 0 -> 1981 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 438 bytes .../pip/_vendor/chardet/big5freq.py | 386 + .../pip/_vendor/chardet/big5prober.py | 47 + .../pip/_vendor/chardet/chardistribution.py | 233 + .../pip/_vendor/chardet/charsetgroupprober.py | 107 + .../pip/_vendor/chardet/charsetprober.py | 145 + .../pip/_vendor/chardet/cli/__init__.py | 1 + .../cli/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 195 bytes .../__pycache__/chardetect.cpython-310.pyc | Bin 0 -> 2694 bytes .../pip/_vendor/chardet/cli/chardetect.py | 84 + .../pip/_vendor/chardet/codingstatemachine.py | 88 + .../pip/_vendor/chardet/compat.py | 36 + .../pip/_vendor/chardet/cp949prober.py | 49 + .../pip/_vendor/chardet/enums.py | 76 + .../pip/_vendor/chardet/escprober.py | 101 + .../pip/_vendor/chardet/escsm.py | 246 + .../pip/_vendor/chardet/eucjpprober.py | 92 + .../pip/_vendor/chardet/euckrfreq.py | 195 + .../pip/_vendor/chardet/euckrprober.py | 47 + .../pip/_vendor/chardet/euctwfreq.py | 387 + .../pip/_vendor/chardet/euctwprober.py | 46 + .../pip/_vendor/chardet/gb2312freq.py | 283 + .../pip/_vendor/chardet/gb2312prober.py | 46 + .../pip/_vendor/chardet/hebrewprober.py | 292 + .../pip/_vendor/chardet/jisfreq.py | 325 + .../pip/_vendor/chardet/jpcntx.py | 233 + .../pip/_vendor/chardet/langbulgarianmodel.py | 4650 +++++++++ .../pip/_vendor/chardet/langgreekmodel.py | 4398 ++++++++ .../pip/_vendor/chardet/langhebrewmodel.py | 4383 ++++++++ .../pip/_vendor/chardet/langhungarianmodel.py | 4650 +++++++++ .../pip/_vendor/chardet/langrussianmodel.py | 5718 +++++++++++ .../pip/_vendor/chardet/langthaimodel.py | 4383 ++++++++ .../pip/_vendor/chardet/langturkishmodel.py | 4383 ++++++++ .../pip/_vendor/chardet/latin1prober.py | 145 + .../pip/_vendor/chardet/mbcharsetprober.py | 91 + .../pip/_vendor/chardet/mbcsgroupprober.py | 54 + .../pip/_vendor/chardet/mbcssm.py | 572 ++ .../pip/_vendor/chardet/metadata/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 200 bytes .../__pycache__/languages.cpython-310.pyc | Bin 0 -> 7962 bytes .../pip/_vendor/chardet/metadata/languages.py | 310 + .../pip/_vendor/chardet/sbcharsetprober.py | 145 + .../pip/_vendor/chardet/sbcsgroupprober.py | 83 + .../pip/_vendor/chardet/sjisprober.py | 92 + .../pip/_vendor/chardet/universaldetector.py | 286 + .../pip/_vendor/chardet/utf8prober.py | 82 + .../pip/_vendor/chardet/version.py | 9 + .../pip/_vendor/colorama/__init__.py | 6 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 443 bytes .../colorama/__pycache__/ansi.cpython-310.pyc | Bin 0 -> 3004 bytes .../__pycache__/ansitowin32.cpython-310.pyc | Bin 0 -> 7902 bytes .../__pycache__/initialise.cpython-310.pyc | Bin 0 -> 1690 bytes .../__pycache__/win32.cpython-310.pyc | Bin 0 -> 3950 bytes .../__pycache__/winterm.cpython-310.pyc | Bin 0 -> 4567 bytes .../pip/_vendor/colorama/ansi.py | 102 + .../pip/_vendor/colorama/ansitowin32.py | 258 + .../pip/_vendor/colorama/initialise.py | 80 + .../pip/_vendor/colorama/win32.py | 152 + .../pip/_vendor/colorama/winterm.py | 169 + .../pip/_vendor/distlib/__init__.py | 23 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1062 bytes .../__pycache__/compat.cpython-310.pyc | Bin 0 -> 31408 bytes .../__pycache__/database.cpython-310.pyc | Bin 0 -> 42863 bytes .../distlib/__pycache__/index.cpython-310.pyc | Bin 0 -> 17317 bytes .../__pycache__/locators.cpython-310.pyc | Bin 0 -> 38376 bytes .../__pycache__/manifest.cpython-310.pyc | Bin 0 -> 10230 bytes .../__pycache__/markers.cpython-310.pyc | Bin 0 -> 5034 bytes .../__pycache__/metadata.cpython-310.pyc | Bin 0 -> 26562 bytes .../__pycache__/resources.cpython-310.pyc | Bin 0 -> 11036 bytes .../__pycache__/scripts.cpython-310.pyc | Bin 0 -> 11252 bytes .../distlib/__pycache__/util.cpython-310.pyc | Bin 0 -> 51695 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 20149 bytes .../distlib/__pycache__/wheel.cpython-310.pyc | Bin 0 -> 27309 bytes .../pip/_vendor/distlib/compat.py | 1116 +++ .../pip/_vendor/distlib/database.py | 1345 +++ .../pip/_vendor/distlib/index.py | 509 + .../pip/_vendor/distlib/locators.py | 1300 +++ .../pip/_vendor/distlib/manifest.py | 393 + .../pip/_vendor/distlib/markers.py | 152 + .../pip/_vendor/distlib/metadata.py | 1058 ++ .../pip/_vendor/distlib/resources.py | 358 + .../pip/_vendor/distlib/scripts.py | 429 + .../site-packages/pip/_vendor/distlib/util.py | 1932 ++++ .../pip/_vendor/distlib/version.py | 739 ++ .../pip/_vendor/distlib/wheel.py | 1053 ++ .../site-packages/pip/_vendor/distro.py | 1386 +++ .../pip/_vendor/html5lib/__init__.py | 35 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1302 bytes .../__pycache__/_ihatexml.cpython-310.pyc | Bin 0 -> 13857 bytes .../__pycache__/_inputstream.cpython-310.pyc | Bin 0 -> 21674 bytes .../__pycache__/_tokenizer.cpython-310.pyc | Bin 0 -> 37320 bytes .../__pycache__/_utils.cpython-310.pyc | Bin 0 -> 4796 bytes .../__pycache__/constants.cpython-310.pyc | Bin 0 -> 161261 bytes .../__pycache__/html5parser.cpython-310.pyc | Bin 0 -> 88471 bytes .../__pycache__/serializer.cpython-310.pyc | Bin 0 -> 10737 bytes .../pip/_vendor/html5lib/_ihatexml.py | 289 + .../pip/_vendor/html5lib/_inputstream.py | 918 ++ .../pip/_vendor/html5lib/_tokenizer.py | 1735 ++++ .../pip/_vendor/html5lib/_trie/__init__.py | 5 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 352 bytes .../_trie/__pycache__/_base.cpython-310.pyc | Bin 0 -> 1604 bytes .../_trie/__pycache__/py.cpython-310.pyc | Bin 0 -> 2267 bytes .../pip/_vendor/html5lib/_trie/_base.py | 40 + .../pip/_vendor/html5lib/_trie/py.py | 67 + .../pip/_vendor/html5lib/_utils.py | 159 + .../pip/_vendor/html5lib/constants.py | 2946 ++++++ .../pip/_vendor/html5lib/filters/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 200 bytes .../alphabeticalattributes.cpython-310.pyc | Bin 0 -> 1330 bytes .../filters/__pycache__/base.cpython-310.pyc | Bin 0 -> 870 bytes .../inject_meta_charset.cpython-310.pyc | Bin 0 -> 1868 bytes .../filters/__pycache__/lint.cpython-310.pyc | Bin 0 -> 2576 bytes .../__pycache__/optionaltags.cpython-310.pyc | Bin 0 -> 2727 bytes .../__pycache__/sanitizer.cpython-310.pyc | Bin 0 -> 20024 bytes .../__pycache__/whitespace.cpython-310.pyc | Bin 0 -> 1374 bytes .../filters/alphabeticalattributes.py | 29 + .../pip/_vendor/html5lib/filters/base.py | 12 + .../html5lib/filters/inject_meta_charset.py | 73 + .../pip/_vendor/html5lib/filters/lint.py | 93 + .../_vendor/html5lib/filters/optionaltags.py | 207 + .../pip/_vendor/html5lib/filters/sanitizer.py | 916 ++ .../_vendor/html5lib/filters/whitespace.py | 38 + .../pip/_vendor/html5lib/html5parser.py | 2795 ++++++ .../pip/_vendor/html5lib/serializer.py | 409 + .../_vendor/html5lib/treeadapters/__init__.py | 30 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 941 bytes .../__pycache__/genshi.cpython-310.pyc | Bin 0 -> 1553 bytes .../__pycache__/sax.cpython-310.pyc | Bin 0 -> 1460 bytes .../_vendor/html5lib/treeadapters/genshi.py | 54 + .../pip/_vendor/html5lib/treeadapters/sax.py | 50 + .../_vendor/html5lib/treebuilders/__init__.py | 88 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3332 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 11323 bytes .../__pycache__/dom.cpython-310.pyc | Bin 0 -> 9410 bytes .../__pycache__/etree.cpython-310.pyc | Bin 0 -> 11712 bytes .../__pycache__/etree_lxml.cpython-310.pyc | Bin 0 -> 13027 bytes .../pip/_vendor/html5lib/treebuilders/base.py | 417 + .../pip/_vendor/html5lib/treebuilders/dom.py | 239 + .../_vendor/html5lib/treebuilders/etree.py | 343 + .../html5lib/treebuilders/etree_lxml.py | 392 + .../_vendor/html5lib/treewalkers/__init__.py | 154 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3982 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 6943 bytes .../__pycache__/dom.cpython-310.pyc | Bin 0 -> 1714 bytes .../__pycache__/etree.cpython-310.pyc | Bin 0 -> 3472 bytes .../__pycache__/etree_lxml.cpython-310.pyc | Bin 0 -> 6559 bytes .../__pycache__/genshi.cpython-310.pyc | Bin 0 -> 1920 bytes .../pip/_vendor/html5lib/treewalkers/base.py | 252 + .../pip/_vendor/html5lib/treewalkers/dom.py | 43 + .../pip/_vendor/html5lib/treewalkers/etree.py | 131 + .../html5lib/treewalkers/etree_lxml.py | 215 + .../_vendor/html5lib/treewalkers/genshi.py | 69 + .../pip/_vendor/idna/__init__.py | 44 + .../idna/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 847 bytes .../idna/__pycache__/codec.cpython-310.pyc | Bin 0 -> 2818 bytes .../idna/__pycache__/compat.cpython-310.pyc | Bin 0 -> 747 bytes .../idna/__pycache__/core.cpython-310.pyc | Bin 0 -> 9439 bytes .../idna/__pycache__/idnadata.cpython-310.pyc | Bin 0 -> 194324 bytes .../__pycache__/intranges.cpython-310.pyc | Bin 0 -> 1984 bytes .../__pycache__/package_data.cpython-310.pyc | Bin 0 -> 211 bytes .../__pycache__/uts46data.cpython-310.pyc | Bin 0 -> 150946 bytes .../site-packages/pip/_vendor/idna/codec.py | 112 + .../site-packages/pip/_vendor/idna/compat.py | 13 + .../site-packages/pip/_vendor/idna/core.py | 397 + .../pip/_vendor/idna/idnadata.py | 4233 ++++++++ .../pip/_vendor/idna/intranges.py | 54 + .../pip/_vendor/idna/package_data.py | 2 + .../pip/_vendor/idna/uts46data.py | 8512 ++++++++++++++++ .../pip/_vendor/msgpack/__init__.py | 54 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1427 bytes .../__pycache__/_version.cpython-310.pyc | Bin 0 -> 218 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 1808 bytes .../msgpack/__pycache__/ext.cpython-310.pyc | Bin 0 -> 6316 bytes .../__pycache__/fallback.cpython-310.pyc | Bin 0 -> 25445 bytes .../pip/_vendor/msgpack/_version.py | 1 + .../pip/_vendor/msgpack/exceptions.py | 48 + .../site-packages/pip/_vendor/msgpack/ext.py | 193 + .../pip/_vendor/msgpack/fallback.py | 1012 ++ .../pip/_vendor/packaging/__about__.py | 26 + .../pip/_vendor/packaging/__init__.py | 25 + .../__pycache__/__about__.cpython-310.pyc | Bin 0 -> 590 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 446 bytes .../__pycache__/_manylinux.cpython-310.pyc | Bin 0 -> 7300 bytes .../__pycache__/_musllinux.cpython-310.pyc | Bin 0 -> 4612 bytes .../__pycache__/_structures.cpython-310.pyc | Bin 0 -> 2705 bytes .../__pycache__/markers.cpython-310.pyc | Bin 0 -> 9287 bytes .../__pycache__/requirements.cpython-310.pyc | Bin 0 -> 3975 bytes .../__pycache__/specifiers.cpython-310.pyc | Bin 0 -> 21527 bytes .../__pycache__/tags.cpython-310.pyc | Bin 0 -> 12190 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 3575 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 12925 bytes .../pip/_vendor/packaging/_manylinux.py | 301 + .../pip/_vendor/packaging/_musllinux.py | 136 + .../pip/_vendor/packaging/_structures.py | 61 + .../pip/_vendor/packaging/markers.py | 304 + .../pip/_vendor/packaging/requirements.py | 146 + .../pip/_vendor/packaging/specifiers.py | 802 ++ .../pip/_vendor/packaging/tags.py | 487 + .../pip/_vendor/packaging/utils.py | 136 + .../pip/_vendor/packaging/version.py | 504 + .../pip/_vendor/pep517/__init__.py | 6 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 313 bytes .../pep517/__pycache__/build.cpython-310.pyc | Bin 0 -> 3596 bytes .../pep517/__pycache__/check.cpython-310.pyc | Bin 0 -> 4560 bytes .../__pycache__/colorlog.cpython-310.pyc | Bin 0 -> 2964 bytes .../pep517/__pycache__/compat.cpython-310.pyc | Bin 0 -> 1537 bytes .../__pycache__/dirtools.cpython-310.pyc | Bin 0 -> 1355 bytes .../__pycache__/envbuild.cpython-310.pyc | Bin 0 -> 4378 bytes .../pep517/__pycache__/meta.cpython-310.pyc | Bin 0 -> 2960 bytes .../__pycache__/wrappers.cpython-310.pyc | Bin 0 -> 12306 bytes .../site-packages/pip/_vendor/pep517/build.py | 127 + .../site-packages/pip/_vendor/pep517/check.py | 207 + .../pip/_vendor/pep517/colorlog.py | 115 + .../pip/_vendor/pep517/compat.py | 51 + .../pip/_vendor/pep517/dirtools.py | 44 + .../pip/_vendor/pep517/envbuild.py | 171 + .../pip/_vendor/pep517/in_process/__init__.py | 17 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 921 bytes .../__pycache__/_in_process.cpython-310.pyc | Bin 0 -> 10068 bytes .../_vendor/pep517/in_process/_in_process.py | 363 + .../site-packages/pip/_vendor/pep517/meta.py | 92 + .../pip/_vendor/pep517/wrappers.py | 375 + .../pip/_vendor/pkg_resources/__init__.py | 3296 ++++++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 99876 bytes .../__pycache__/py31compat.cpython-310.pyc | Bin 0 -> 660 bytes .../pip/_vendor/pkg_resources/py31compat.py | 23 + .../pip/_vendor/platformdirs/__init__.py | 331 + .../pip/_vendor/platformdirs/__main__.py | 46 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 10476 bytes .../__pycache__/__main__.cpython-310.pyc | Bin 0 -> 1236 bytes .../__pycache__/android.cpython-310.pyc | Bin 0 -> 4268 bytes .../__pycache__/api.cpython-310.pyc | Bin 0 -> 5202 bytes .../__pycache__/macos.cpython-310.pyc | Bin 0 -> 3190 bytes .../__pycache__/unix.cpython-310.pyc | Bin 0 -> 6891 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 295 bytes .../__pycache__/windows.cpython-310.pyc | Bin 0 -> 6434 bytes .../pip/_vendor/platformdirs/android.py | 119 + .../pip/_vendor/platformdirs/api.py | 156 + .../pip/_vendor/platformdirs/macos.py | 64 + .../pip/_vendor/platformdirs/unix.py | 181 + .../pip/_vendor/platformdirs/version.py | 4 + .../pip/_vendor/platformdirs/windows.py | 182 + .../pip/_vendor/progress/__init__.py | 189 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 5730 bytes .../progress/__pycache__/bar.cpython-310.pyc | Bin 0 -> 2695 bytes .../__pycache__/colors.cpython-310.pyc | Bin 0 -> 1488 bytes .../__pycache__/counter.cpython-310.pyc | Bin 0 -> 1559 bytes .../__pycache__/spinner.cpython-310.pyc | Bin 0 -> 1389 bytes .../site-packages/pip/_vendor/progress/bar.py | 93 + .../pip/_vendor/progress/colors.py | 79 + .../pip/_vendor/progress/counter.py | 47 + .../pip/_vendor/progress/spinner.py | 45 + .../pip/_vendor/pygments/__init__.py | 83 + .../pip/_vendor/pygments/__main__.py | 17 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2992 bytes .../__pycache__/__main__.cpython-310.pyc | Bin 0 -> 588 bytes .../__pycache__/cmdline.cpython-310.pyc | Bin 0 -> 15451 bytes .../__pycache__/console.cpython-310.pyc | Bin 0 -> 1883 bytes .../__pycache__/filter.cpython-310.pyc | Bin 0 -> 2654 bytes .../__pycache__/formatter.cpython-310.pyc | Bin 0 -> 3010 bytes .../__pycache__/lexer.cpython-310.pyc | Bin 0 -> 24364 bytes .../__pycache__/modeline.cpython-310.pyc | Bin 0 -> 1192 bytes .../__pycache__/plugin.cpython-310.pyc | Bin 0 -> 2044 bytes .../__pycache__/regexopt.cpython-310.pyc | Bin 0 -> 2956 bytes .../__pycache__/scanner.cpython-310.pyc | Bin 0 -> 3557 bytes .../__pycache__/sphinxext.cpython-310.pyc | Bin 0 -> 4542 bytes .../__pycache__/style.cpython-310.pyc | Bin 0 -> 4579 bytes .../__pycache__/token.cpython-310.pyc | Bin 0 -> 4651 bytes .../__pycache__/unistring.cpython-310.pyc | Bin 0 -> 31205 bytes .../pygments/__pycache__/util.cpython-310.pyc | Bin 0 -> 9162 bytes .../pip/_vendor/pygments/cmdline.py | 663 ++ .../pip/_vendor/pygments/console.py | 70 + .../pip/_vendor/pygments/filter.py | 71 + .../pip/_vendor/pygments/filters/__init__.py | 937 ++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 29513 bytes .../pip/_vendor/pygments/formatter.py | 94 + .../_vendor/pygments/formatters/__init__.py | 153 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 4668 bytes .../__pycache__/_mapping.cpython-310.pyc | Bin 0 -> 5535 bytes .../__pycache__/bbcode.cpython-310.pyc | Bin 0 -> 3085 bytes .../__pycache__/groff.cpython-310.pyc | Bin 0 -> 4358 bytes .../__pycache__/html.cpython-310.pyc | Bin 0 -> 29069 bytes .../__pycache__/img.cpython-310.pyc | Bin 0 -> 17497 bytes .../__pycache__/irc.cpython-310.pyc | Bin 0 -> 4588 bytes .../__pycache__/latex.cpython-310.pyc | Bin 0 -> 13494 bytes .../__pycache__/other.cpython-310.pyc | Bin 0 -> 4804 bytes .../__pycache__/pangomarkup.cpython-310.pyc | Bin 0 -> 2104 bytes .../__pycache__/rtf.cpython-310.pyc | Bin 0 -> 4134 bytes .../__pycache__/svg.cpython-310.pyc | Bin 0 -> 6332 bytes .../__pycache__/terminal.cpython-310.pyc | Bin 0 -> 3999 bytes .../__pycache__/terminal256.cpython-310.pyc | Bin 0 -> 9249 bytes .../_vendor/pygments/formatters/_mapping.py | 84 + .../pip/_vendor/pygments/formatters/bbcode.py | 108 + .../pip/_vendor/pygments/formatters/groff.py | 168 + .../pip/_vendor/pygments/formatters/html.py | 983 ++ .../pip/_vendor/pygments/formatters/img.py | 641 ++ .../pip/_vendor/pygments/formatters/irc.py | 179 + .../pip/_vendor/pygments/formatters/latex.py | 511 + .../pip/_vendor/pygments/formatters/other.py | 161 + .../pygments/formatters/pangomarkup.py | 83 + .../pip/_vendor/pygments/formatters/rtf.py | 146 + .../pip/_vendor/pygments/formatters/svg.py | 188 + .../_vendor/pygments/formatters/terminal.py | 127 + .../pygments/formatters/terminal256.py | 338 + .../pip/_vendor/pygments/lexer.py | 879 ++ .../pip/_vendor/pygments/lexers/__init__.py | 341 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 9184 bytes .../__pycache__/_mapping.cpython-310.pyc | Bin 0 -> 58122 bytes .../lexers/__pycache__/python.cpython-310.pyc | Bin 0 -> 29383 bytes .../pip/_vendor/pygments/lexers/_mapping.py | 580 ++ .../pip/_vendor/pygments/lexers/python.py | 1188 +++ .../pip/_vendor/pygments/modeline.py | 43 + .../pip/_vendor/pygments/plugin.py | 69 + .../pip/_vendor/pygments/regexopt.py | 91 + .../pip/_vendor/pygments/scanner.py | 104 + .../pip/_vendor/pygments/sphinxext.py | 155 + .../pip/_vendor/pygments/style.py | 197 + .../pip/_vendor/pygments/styles/__init__.py | 93 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3220 bytes .../pip/_vendor/pygments/token.py | 212 + .../pip/_vendor/pygments/unistring.py | 153 + .../pip/_vendor/pygments/util.py | 308 + .../pip/_vendor/pyparsing/__init__.py | 328 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 7125 bytes .../__pycache__/actions.cpython-310.pyc | Bin 0 -> 7182 bytes .../__pycache__/common.cpython-310.pyc | Bin 0 -> 10105 bytes .../__pycache__/core.cpython-310.pyc | Bin 0 -> 175235 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 9072 bytes .../__pycache__/helpers.cpython-310.pyc | Bin 0 -> 34767 bytes .../__pycache__/results.cpython-310.pyc | Bin 0 -> 24779 bytes .../__pycache__/testing.cpython-310.pyc | Bin 0 -> 12100 bytes .../__pycache__/unicode.cpython-310.pyc | Bin 0 -> 9814 bytes .../__pycache__/util.cpython-310.pyc | Bin 0 -> 8605 bytes .../pip/_vendor/pyparsing/actions.py | 207 + .../pip/_vendor/pyparsing/common.py | 424 + .../pip/_vendor/pyparsing/core.py | 5789 +++++++++++ .../pip/_vendor/pyparsing/diagram/__init__.py | 593 ++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 15645 bytes .../pip/_vendor/pyparsing/exceptions.py | 267 + .../pip/_vendor/pyparsing/helpers.py | 1069 ++ .../pip/_vendor/pyparsing/results.py | 760 ++ .../pip/_vendor/pyparsing/testing.py | 331 + .../pip/_vendor/pyparsing/unicode.py | 332 + .../pip/_vendor/pyparsing/util.py | 235 + .../pip/_vendor/requests/__init__.py | 154 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 4038 bytes .../__pycache__/__version__.cpython-310.pyc | Bin 0 -> 555 bytes .../_internal_utils.cpython-310.pyc | Bin 0 -> 1307 bytes .../__pycache__/adapters.cpython-310.pyc | Bin 0 -> 17043 bytes .../requests/__pycache__/api.cpython-310.pyc | Bin 0 -> 6654 bytes .../requests/__pycache__/auth.cpython-310.pyc | Bin 0 -> 8097 bytes .../__pycache__/certs.cpython-310.pyc | Bin 0 -> 639 bytes .../__pycache__/compat.cpython-310.pyc | Bin 0 -> 1674 bytes .../__pycache__/cookies.cpython-310.pyc | Bin 0 -> 18687 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 5248 bytes .../requests/__pycache__/help.cpython-310.pyc | Bin 0 -> 2907 bytes .../__pycache__/hooks.cpython-310.pyc | Bin 0 -> 994 bytes .../__pycache__/models.cpython-310.pyc | Bin 0 -> 24313 bytes .../__pycache__/packages.cpython-310.pyc | Bin 0 -> 508 bytes .../__pycache__/sessions.cpython-310.pyc | Bin 0 -> 19641 bytes .../__pycache__/status_codes.cpython-310.pyc | Bin 0 -> 4671 bytes .../__pycache__/structures.cpython-310.pyc | Bin 0 -> 4453 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 24315 bytes .../pip/_vendor/requests/__version__.py | 14 + .../pip/_vendor/requests/_internal_utils.py | 42 + .../pip/_vendor/requests/adapters.py | 538 + .../site-packages/pip/_vendor/requests/api.py | 159 + .../pip/_vendor/requests/auth.py | 305 + .../pip/_vendor/requests/certs.py | 18 + .../pip/_vendor/requests/compat.py | 77 + .../pip/_vendor/requests/cookies.py | 549 + .../pip/_vendor/requests/exceptions.py | 133 + .../pip/_vendor/requests/help.py | 132 + .../pip/_vendor/requests/hooks.py | 34 + .../pip/_vendor/requests/models.py | 973 ++ .../pip/_vendor/requests/packages.py | 16 + .../pip/_vendor/requests/sessions.py | 773 ++ .../pip/_vendor/requests/status_codes.py | 123 + .../pip/_vendor/requests/structures.py | 105 + .../pip/_vendor/requests/utils.py | 1054 ++ .../pip/_vendor/resolvelib/__init__.py | 26 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 606 bytes .../__pycache__/providers.cpython-310.pyc | Bin 0 -> 6657 bytes .../__pycache__/reporters.cpython-310.pyc | Bin 0 -> 2577 bytes .../__pycache__/resolvers.cpython-310.pyc | Bin 0 -> 15130 bytes .../__pycache__/structs.cpython-310.pyc | Bin 0 -> 7163 bytes .../pip/_vendor/resolvelib/compat/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 201 bytes .../collections_abc.cpython-310.pyc | Bin 0 -> 377 bytes .../resolvelib/compat/collections_abc.py | 6 + .../pip/_vendor/resolvelib/providers.py | 133 + .../pip/_vendor/resolvelib/reporters.py | 43 + .../pip/_vendor/resolvelib/resolvers.py | 482 + .../pip/_vendor/resolvelib/structs.py | 165 + .../pip/_vendor/rich/__init__.py | 172 + .../pip/_vendor/rich/__main__.py | 280 + .../rich/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 5891 bytes .../rich/__pycache__/__main__.cpython-310.pyc | Bin 0 -> 7325 bytes .../__pycache__/_cell_widths.cpython-310.pyc | Bin 0 -> 7814 bytes .../__pycache__/_emoji_codes.cpython-310.pyc | Bin 0 -> 360054 bytes .../_emoji_replace.cpython-310.pyc | Bin 0 -> 1194 bytes .../__pycache__/_extension.cpython-310.pyc | Bin 0 -> 495 bytes .../rich/__pycache__/_inspect.cpython-310.pyc | Bin 0 -> 6612 bytes .../__pycache__/_log_render.cpython-310.pyc | Bin 0 -> 2640 bytes .../rich/__pycache__/_loop.cpython-310.pyc | Bin 0 -> 1292 bytes .../__pycache__/_lru_cache.cpython-310.pyc | Bin 0 -> 1575 bytes .../__pycache__/_palettes.cpython-310.pyc | Bin 0 -> 5097 bytes .../rich/__pycache__/_pick.cpython-310.pyc | Bin 0 -> 640 bytes .../rich/__pycache__/_ratio.cpython-310.pyc | Bin 0 -> 5157 bytes .../__pycache__/_spinners.cpython-310.pyc | Bin 0 -> 15213 bytes .../rich/__pycache__/_stack.cpython-310.pyc | Bin 0 -> 838 bytes .../rich/__pycache__/_timer.cpython-310.pyc | Bin 0 -> 687 bytes .../rich/__pycache__/_windows.cpython-310.pyc | Bin 0 -> 1878 bytes .../rich/__pycache__/_wrap.cpython-310.pyc | Bin 0 -> 1516 bytes .../rich/__pycache__/abc.cpython-310.pyc | Bin 0 -> 1314 bytes .../rich/__pycache__/align.cpython-310.pyc | Bin 0 -> 7968 bytes .../rich/__pycache__/ansi.cpython-310.pyc | Bin 0 -> 6017 bytes .../rich/__pycache__/bar.cpython-310.pyc | Bin 0 -> 2983 bytes .../rich/__pycache__/box.cpython-310.pyc | Bin 0 -> 7757 bytes .../rich/__pycache__/cells.cpython-310.pyc | Bin 0 -> 3499 bytes .../rich/__pycache__/color.cpython-310.pyc | Bin 0 -> 16755 bytes .../__pycache__/color_triplet.cpython-310.pyc | Bin 0 -> 1437 bytes .../rich/__pycache__/columns.cpython-310.pyc | Bin 0 -> 6197 bytes .../rich/__pycache__/console.cpython-310.pyc | Bin 0 -> 70442 bytes .../__pycache__/constrain.cpython-310.pyc | Bin 0 -> 1754 bytes .../__pycache__/containers.cpython-310.pyc | Bin 0 -> 6486 bytes .../rich/__pycache__/control.cpython-310.pyc | Bin 0 -> 6829 bytes .../default_styles.cpython-310.pyc | Bin 0 -> 6029 bytes .../rich/__pycache__/diagnose.cpython-310.pyc | Bin 0 -> 355 bytes .../rich/__pycache__/emoji.cpython-310.pyc | Bin 0 -> 3267 bytes .../rich/__pycache__/errors.cpython-310.pyc | Bin 0 -> 1527 bytes .../__pycache__/file_proxy.cpython-310.pyc | Bin 0 -> 2264 bytes .../rich/__pycache__/filesize.cpython-310.pyc | Bin 0 -> 2616 bytes .../__pycache__/highlighter.cpython-310.pyc | Bin 0 -> 5343 bytes .../rich/__pycache__/json.cpython-310.pyc | Bin 0 -> 4747 bytes .../rich/__pycache__/jupyter.cpython-310.pyc | Bin 0 -> 3826 bytes .../rich/__pycache__/layout.cpython-310.pyc | Bin 0 -> 14678 bytes .../rich/__pycache__/live.cpython-310.pyc | Bin 0 -> 11568 bytes .../__pycache__/live_render.cpython-310.pyc | Bin 0 -> 3402 bytes .../rich/__pycache__/logging.cpython-310.pyc | Bin 0 -> 9294 bytes .../rich/__pycache__/markup.cpython-310.pyc | Bin 0 -> 5913 bytes .../rich/__pycache__/measure.cpython-310.pyc | Bin 0 -> 5058 bytes .../rich/__pycache__/padding.cpython-310.pyc | Bin 0 -> 4482 bytes .../rich/__pycache__/pager.cpython-310.pyc | Bin 0 -> 1495 bytes .../rich/__pycache__/palette.cpython-310.pyc | Bin 0 -> 3708 bytes .../rich/__pycache__/panel.cpython-310.pyc | Bin 0 -> 6391 bytes .../rich/__pycache__/pretty.cpython-310.pyc | Bin 0 -> 25103 bytes .../rich/__pycache__/progress.cpython-310.pyc | Bin 0 -> 33331 bytes .../__pycache__/progress_bar.cpython-310.pyc | Bin 0 -> 6707 bytes .../rich/__pycache__/prompt.cpython-310.pyc | Bin 0 -> 11299 bytes .../rich/__pycache__/protocol.cpython-310.pyc | Bin 0 -> 1371 bytes .../rich/__pycache__/region.cpython-310.pyc | Bin 0 -> 527 bytes .../rich/__pycache__/repr.cpython-310.pyc | Bin 0 -> 4040 bytes .../rich/__pycache__/rule.cpython-310.pyc | Bin 0 -> 3737 bytes .../rich/__pycache__/scope.cpython-310.pyc | Bin 0 -> 2988 bytes .../rich/__pycache__/screen.cpython-310.pyc | Bin 0 -> 1879 bytes .../rich/__pycache__/segment.cpython-310.pyc | Bin 0 -> 20569 bytes .../rich/__pycache__/spinner.cpython-310.pyc | Bin 0 -> 4399 bytes .../rich/__pycache__/status.cpython-310.pyc | Bin 0 -> 4593 bytes .../rich/__pycache__/style.cpython-310.pyc | Bin 0 -> 20522 bytes .../rich/__pycache__/styled.cpython-310.pyc | Bin 0 -> 1763 bytes .../rich/__pycache__/syntax.cpython-310.pyc | Bin 0 -> 19036 bytes .../rich/__pycache__/table.cpython-310.pyc | Bin 0 -> 26974 bytes .../rich/__pycache__/tabulate.cpython-310.pyc | Bin 0 -> 1756 bytes .../terminal_theme.cpython-310.pyc | Bin 0 -> 1720 bytes .../rich/__pycache__/text.cpython-310.pyc | Bin 0 -> 39284 bytes .../rich/__pycache__/theme.cpython-310.pyc | Bin 0 -> 4700 bytes .../rich/__pycache__/themes.cpython-310.pyc | Bin 0 -> 293 bytes .../__pycache__/traceback.cpython-310.pyc | Bin 0 -> 19537 bytes .../rich/__pycache__/tree.cpython-310.pyc | Bin 0 -> 7317 bytes .../pip/_vendor/rich/_cell_widths.py | 451 + .../pip/_vendor/rich/_emoji_codes.py | 3610 +++++++ .../pip/_vendor/rich/_emoji_replace.py | 32 + .../pip/_vendor/rich/_extension.py | 10 + .../pip/_vendor/rich/_inspect.py | 210 + .../pip/_vendor/rich/_log_render.py | 94 + .../site-packages/pip/_vendor/rich/_loop.py | 43 + .../pip/_vendor/rich/_lru_cache.py | 34 + .../pip/_vendor/rich/_palettes.py | 309 + .../site-packages/pip/_vendor/rich/_pick.py | 17 + .../site-packages/pip/_vendor/rich/_ratio.py | 160 + .../pip/_vendor/rich/_spinners.py | 848 ++ .../site-packages/pip/_vendor/rich/_stack.py | 16 + .../site-packages/pip/_vendor/rich/_timer.py | 19 + .../pip/_vendor/rich/_windows.py | 72 + .../site-packages/pip/_vendor/rich/_wrap.py | 55 + .../site-packages/pip/_vendor/rich/abc.py | 33 + .../site-packages/pip/_vendor/rich/align.py | 312 + .../site-packages/pip/_vendor/rich/ansi.py | 228 + .../site-packages/pip/_vendor/rich/bar.py | 94 + .../site-packages/pip/_vendor/rich/box.py | 483 + .../site-packages/pip/_vendor/rich/cells.py | 147 + .../site-packages/pip/_vendor/rich/color.py | 581 ++ .../pip/_vendor/rich/color_triplet.py | 38 + .../site-packages/pip/_vendor/rich/columns.py | 187 + .../site-packages/pip/_vendor/rich/console.py | 2211 +++++ .../pip/_vendor/rich/constrain.py | 37 + .../pip/_vendor/rich/containers.py | 167 + .../site-packages/pip/_vendor/rich/control.py | 175 + .../pip/_vendor/rich/default_styles.py | 183 + .../pip/_vendor/rich/diagnose.py | 6 + .../site-packages/pip/_vendor/rich/emoji.py | 96 + .../site-packages/pip/_vendor/rich/errors.py | 34 + .../pip/_vendor/rich/file_proxy.py | 54 + .../pip/_vendor/rich/filesize.py | 89 + .../pip/_vendor/rich/highlighter.py | 147 + .../site-packages/pip/_vendor/rich/json.py | 140 + .../site-packages/pip/_vendor/rich/jupyter.py | 92 + .../site-packages/pip/_vendor/rich/layout.py | 444 + .../site-packages/pip/_vendor/rich/live.py | 365 + .../pip/_vendor/rich/live_render.py | 113 + .../site-packages/pip/_vendor/rich/logging.py | 268 + .../site-packages/pip/_vendor/rich/markup.py | 244 + .../site-packages/pip/_vendor/rich/measure.py | 149 + .../site-packages/pip/_vendor/rich/padding.py | 141 + .../site-packages/pip/_vendor/rich/pager.py | 34 + .../site-packages/pip/_vendor/rich/palette.py | 100 + .../site-packages/pip/_vendor/rich/panel.py | 250 + .../site-packages/pip/_vendor/rich/pretty.py | 903 ++ .../pip/_vendor/rich/progress.py | 1036 ++ .../pip/_vendor/rich/progress_bar.py | 216 + .../site-packages/pip/_vendor/rich/prompt.py | 376 + .../pip/_vendor/rich/protocol.py | 42 + .../site-packages/pip/_vendor/rich/region.py | 10 + .../site-packages/pip/_vendor/rich/repr.py | 151 + .../site-packages/pip/_vendor/rich/rule.py | 115 + .../site-packages/pip/_vendor/rich/scope.py | 86 + .../site-packages/pip/_vendor/rich/screen.py | 54 + .../site-packages/pip/_vendor/rich/segment.py | 720 ++ .../site-packages/pip/_vendor/rich/spinner.py | 134 + .../site-packages/pip/_vendor/rich/status.py | 132 + .../site-packages/pip/_vendor/rich/style.py | 785 ++ .../site-packages/pip/_vendor/rich/styled.py | 42 + .../site-packages/pip/_vendor/rich/syntax.py | 735 ++ .../site-packages/pip/_vendor/rich/table.py | 968 ++ .../pip/_vendor/rich/tabulate.py | 51 + .../pip/_vendor/rich/terminal_theme.py | 55 + .../site-packages/pip/_vendor/rich/text.py | 1282 +++ .../site-packages/pip/_vendor/rich/theme.py | 112 + .../site-packages/pip/_vendor/rich/themes.py | 5 + .../pip/_vendor/rich/traceback.py | 678 ++ .../site-packages/pip/_vendor/rich/tree.py | 249 + .../site-packages/pip/_vendor/six.py | 998 ++ .../pip/_vendor/tenacity/__init__.py | 517 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 16374 bytes .../__pycache__/_asyncio.cpython-310.pyc | Bin 0 -> 2614 bytes .../__pycache__/_utils.cpython-310.pyc | Bin 0 -> 1227 bytes .../__pycache__/after.cpython-310.pyc | Bin 0 -> 1231 bytes .../__pycache__/before.cpython-310.pyc | Bin 0 -> 1109 bytes .../__pycache__/before_sleep.cpython-310.pyc | Bin 0 -> 1411 bytes .../tenacity/__pycache__/nap.cpython-310.pyc | Bin 0 -> 1199 bytes .../__pycache__/retry.cpython-310.pyc | Bin 0 -> 8429 bytes .../tenacity/__pycache__/stop.cpython-310.pyc | Bin 0 -> 4017 bytes .../__pycache__/tornadoweb.cpython-310.pyc | Bin 0 -> 1764 bytes .../tenacity/__pycache__/wait.cpython-310.pyc | Bin 0 -> 7961 bytes .../pip/_vendor/tenacity/_asyncio.py | 92 + .../pip/_vendor/tenacity/_utils.py | 68 + .../pip/_vendor/tenacity/after.py | 46 + .../pip/_vendor/tenacity/before.py | 41 + .../pip/_vendor/tenacity/before_sleep.py | 58 + .../site-packages/pip/_vendor/tenacity/nap.py | 43 + .../pip/_vendor/tenacity/retry.py | 213 + .../pip/_vendor/tenacity/stop.py | 96 + .../pip/_vendor/tenacity/tornadoweb.py | 59 + .../pip/_vendor/tenacity/wait.py | 191 + .../pip/_vendor/tomli/__init__.py | 6 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 379 bytes .../tomli/__pycache__/_parser.cpython-310.pyc | Bin 0 -> 16333 bytes .../tomli/__pycache__/_re.cpython-310.pyc | Bin 0 -> 2423 bytes .../pip/_vendor/tomli/_parser.py | 703 ++ .../site-packages/pip/_vendor/tomli/_re.py | 83 + .../pip/_vendor/typing_extensions.py | 2296 +++++ .../pip/_vendor/urllib3/__init__.py | 85 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2189 bytes .../__pycache__/_collections.cpython-310.pyc | Bin 0 -> 11354 bytes .../__pycache__/_version.cpython-310.pyc | Bin 0 -> 213 bytes .../__pycache__/connection.cpython-310.pyc | Bin 0 -> 13636 bytes .../connectionpool.cpython-310.pyc | Bin 0 -> 25478 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 10994 bytes .../__pycache__/fields.cpython-310.pyc | Bin 0 -> 8183 bytes .../__pycache__/filepost.cpython-310.pyc | Bin 0 -> 2750 bytes .../__pycache__/poolmanager.cpython-310.pyc | Bin 0 -> 15434 bytes .../__pycache__/request.cpython-310.pyc | Bin 0 -> 5626 bytes .../__pycache__/response.cpython-310.pyc | Bin 0 -> 20917 bytes .../pip/_vendor/urllib3/_collections.py | 355 + .../pip/_vendor/urllib3/_version.py | 2 + .../pip/_vendor/urllib3/connection.py | 569 ++ .../pip/_vendor/urllib3/connectionpool.py | 1113 +++ .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 199 bytes .../_appengine_environ.cpython-310.pyc | Bin 0 -> 1379 bytes .../__pycache__/appengine.cpython-310.pyc | Bin 0 -> 8195 bytes .../__pycache__/ntlmpool.cpython-310.pyc | Bin 0 -> 3634 bytes .../__pycache__/pyopenssl.cpython-310.pyc | Bin 0 -> 15536 bytes .../securetransport.cpython-310.pyc | Bin 0 -> 21941 bytes .../contrib/__pycache__/socks.cpython-310.pyc | Bin 0 -> 5601 bytes .../urllib3/contrib/_appengine_environ.py | 36 + .../contrib/_securetransport/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 216 bytes .../__pycache__/bindings.cpython-310.pyc | Bin 0 -> 10712 bytes .../__pycache__/low_level.cpython-310.pyc | Bin 0 -> 9099 bytes .../contrib/_securetransport/bindings.py | 519 + .../contrib/_securetransport/low_level.py | 397 + .../pip/_vendor/urllib3/contrib/appengine.py | 314 + .../pip/_vendor/urllib3/contrib/ntlmpool.py | 130 + .../pip/_vendor/urllib3/contrib/pyopenssl.py | 511 + .../urllib3/contrib/securetransport.py | 922 ++ .../pip/_vendor/urllib3/contrib/socks.py | 216 + .../pip/_vendor/urllib3/exceptions.py | 323 + .../pip/_vendor/urllib3/fields.py | 274 + .../pip/_vendor/urllib3/filepost.py | 98 + .../pip/_vendor/urllib3/packages/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 200 bytes .../packages/__pycache__/six.cpython-310.pyc | Bin 0 -> 27654 bytes .../urllib3/packages/backports/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 210 bytes .../__pycache__/makefile.cpython-310.pyc | Bin 0 -> 1310 bytes .../urllib3/packages/backports/makefile.py | 51 + .../pip/_vendor/urllib3/packages/six.py | 1077 ++ .../pip/_vendor/urllib3/poolmanager.py | 555 ++ .../pip/_vendor/urllib3/request.py | 170 + .../pip/_vendor/urllib3/response.py | 821 ++ .../pip/_vendor/urllib3/util/__init__.py | 49 + .../util/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1109 bytes .../__pycache__/connection.cpython-310.pyc | Bin 0 -> 3437 bytes .../util/__pycache__/proxy.cpython-310.pyc | Bin 0 -> 1342 bytes .../util/__pycache__/queue.cpython-310.pyc | Bin 0 -> 1064 bytes .../util/__pycache__/request.cpython-310.pyc | Bin 0 -> 3472 bytes .../util/__pycache__/response.cpython-310.pyc | Bin 0 -> 2357 bytes .../util/__pycache__/retry.cpython-310.pyc | Bin 0 -> 16179 bytes .../util/__pycache__/ssl_.cpython-310.pyc | Bin 0 -> 11309 bytes .../ssl_match_hostname.cpython-310.pyc | Bin 0 -> 3281 bytes .../__pycache__/ssltransport.cpython-310.pyc | Bin 0 -> 7399 bytes .../util/__pycache__/timeout.cpython-310.pyc | Bin 0 -> 8933 bytes .../util/__pycache__/url.cpython-310.pyc | Bin 0 -> 10678 bytes .../util/__pycache__/wait.cpython-310.pyc | Bin 0 -> 3093 bytes .../pip/_vendor/urllib3/util/connection.py | 149 + .../pip/_vendor/urllib3/util/proxy.py | 57 + .../pip/_vendor/urllib3/util/queue.py | 22 + .../pip/_vendor/urllib3/util/request.py | 143 + .../pip/_vendor/urllib3/util/response.py | 107 + .../pip/_vendor/urllib3/util/retry.py | 622 ++ .../pip/_vendor/urllib3/util/ssl_.py | 495 + .../urllib3/util/ssl_match_hostname.py | 161 + .../pip/_vendor/urllib3/util/ssltransport.py | 221 + .../pip/_vendor/urllib3/util/timeout.py | 268 + .../pip/_vendor/urllib3/util/url.py | 432 + .../pip/_vendor/urllib3/util/wait.py | 153 + .../site-packages/pip/_vendor/vendor.txt | 25 + .../pip/_vendor/webencodings/__init__.py | 342 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 9746 bytes .../__pycache__/labels.cpython-310.pyc | Bin 0 -> 5236 bytes .../__pycache__/mklabels.cpython-310.pyc | Bin 0 -> 1941 bytes .../__pycache__/tests.cpython-310.pyc | Bin 0 -> 5043 bytes .../x_user_defined.cpython-310.pyc | Bin 0 -> 2592 bytes .../pip/_vendor/webencodings/labels.py | 231 + .../pip/_vendor/webencodings/mklabels.py | 59 + .../pip/_vendor/webencodings/tests.py | 153 + .../_vendor/webencodings/x_user_defined.py | 325 + .../lib/python3.10/site-packages/pip/py.typed | 4 + .../site-packages/pkg_resources/__init__.py | 3303 ++++++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 100601 bytes .../pkg_resources/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 193 bytes .../__pycache__/appdirs.cpython-310.pyc | Bin 0 -> 20254 bytes .../__pycache__/pyparsing.cpython-310.pyc | Bin 0 -> 198746 bytes .../pkg_resources/_vendor/appdirs.py | 608 ++ .../_vendor/packaging/__about__.py | 26 + .../_vendor/packaging/__init__.py | 25 + .../__pycache__/__about__.cpython-310.pyc | Bin 0 -> 600 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 456 bytes .../__pycache__/_manylinux.cpython-310.pyc | Bin 0 -> 7310 bytes .../__pycache__/_musllinux.cpython-310.pyc | Bin 0 -> 4622 bytes .../__pycache__/_structures.cpython-310.pyc | Bin 0 -> 2980 bytes .../__pycache__/markers.cpython-310.pyc | Bin 0 -> 9306 bytes .../__pycache__/requirements.cpython-310.pyc | Bin 0 -> 3994 bytes .../__pycache__/specifiers.cpython-310.pyc | Bin 0 -> 22198 bytes .../__pycache__/tags.cpython-310.pyc | Bin 0 -> 12224 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 3585 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 12935 bytes .../_vendor/packaging/_manylinux.py | 301 + .../_vendor/packaging/_musllinux.py | 136 + .../_vendor/packaging/_structures.py | 67 + .../_vendor/packaging/markers.py | 304 + .../_vendor/packaging/requirements.py | 146 + .../_vendor/packaging/specifiers.py | 828 ++ .../pkg_resources/_vendor/packaging/tags.py | 484 + .../pkg_resources/_vendor/packaging/utils.py | 136 + .../_vendor/packaging/version.py | 504 + .../pkg_resources/_vendor/pyparsing.py | 5742 +++++++++++ .../pkg_resources/extern/__init__.py | 73 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2901 bytes .../__pycache__/setup.cpython-310.pyc | Bin 0 -> 321 bytes .../data/my-test-package-source/setup.py | 6 + .../ply-3.11.dist-info/DESCRIPTION.rst | 12 + .../ply-3.11.dist-info/INSTALLER | 1 + .../site-packages/ply-3.11.dist-info/METADATA | 25 + .../site-packages/ply-3.11.dist-info/RECORD | 19 + .../site-packages/ply-3.11.dist-info/WHEEL | 6 + .../ply-3.11.dist-info/metadata.json | 1 + .../ply-3.11.dist-info/top_level.txt | 1 + .../python3.10/site-packages/ply/__init__.py | 5 + .../ply/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 225 bytes .../ply/__pycache__/cpp.cpython-310.pyc | Bin 0 -> 16182 bytes .../ply/__pycache__/ctokens.cpython-310.pyc | Bin 0 -> 2077 bytes .../ply/__pycache__/lex.cpython-310.pyc | Bin 0 -> 21392 bytes .../ply/__pycache__/yacc.cpython-310.pyc | Bin 0 -> 52903 bytes .../ply/__pycache__/ygen.cpython-310.pyc | Bin 0 -> 1803 bytes venv/lib/python3.10/site-packages/ply/cpp.py | 914 ++ .../python3.10/site-packages/ply/ctokens.py | 127 + venv/lib/python3.10/site-packages/ply/lex.py | 1098 ++ venv/lib/python3.10/site-packages/ply/yacc.py | 3502 +++++++ venv/lib/python3.10/site-packages/ply/ygen.py | 69 + .../prompt_toolkit-3.0.52.dist-info/INSTALLER | 1 + .../prompt_toolkit-3.0.52.dist-info/METADATA | 172 + .../prompt_toolkit-3.0.52.dist-info/RECORD | 298 + .../prompt_toolkit-3.0.52.dist-info/WHEEL | 5 + .../licenses/AUTHORS.rst | 11 + .../licenses/LICENSE | 27 + .../top_level.txt | 1 + .../site-packages/prompt_toolkit/__init__.py | 54 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1447 bytes .../__pycache__/auto_suggest.cpython-310.pyc | Bin 0 -> 7101 bytes .../__pycache__/buffer.cpython-310.pyc | Bin 0 -> 51657 bytes .../__pycache__/cache.cpython-310.pyc | Bin 0 -> 4161 bytes .../__pycache__/cursor_shapes.cpython-310.pyc | Bin 0 -> 3619 bytes .../data_structures.cpython-310.pyc | Bin 0 -> 633 bytes .../__pycache__/document.cpython-310.pyc | Bin 0 -> 31847 bytes .../__pycache__/enums.cpython-310.pyc | Bin 0 -> 534 bytes .../__pycache__/history.cpython-310.pyc | Bin 0 -> 9584 bytes .../__pycache__/keys.cpython-310.pyc | Bin 0 -> 4769 bytes .../__pycache__/log.cpython-310.pyc | Bin 0 -> 355 bytes .../__pycache__/mouse_events.cpython-310.pyc | Bin 0 -> 2532 bytes .../__pycache__/patch_stdout.cpython-310.pyc | Bin 0 -> 8757 bytes .../__pycache__/renderer.cpython-310.pyc | Bin 0 -> 18924 bytes .../__pycache__/search.cpython-310.pyc | Bin 0 -> 5585 bytes .../__pycache__/selection.cpython-310.pyc | Bin 0 -> 1783 bytes .../__pycache__/token.cpython-310.pyc | Bin 0 -> 313 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 8972 bytes .../__pycache__/validation.cpython-310.pyc | Bin 0 -> 7649 bytes .../__pycache__/win32_types.cpython-310.pyc | Bin 0 -> 5505 bytes .../prompt_toolkit/application/__init__.py | 32 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 675 bytes .../__pycache__/application.cpython-310.pyc | Bin 0 -> 46523 bytes .../__pycache__/current.cpython-310.pyc | Bin 0 -> 5901 bytes .../__pycache__/dummy.cpython-310.pyc | Bin 0 -> 2386 bytes .../run_in_terminal.cpython-310.pyc | Bin 0 -> 3414 bytes .../prompt_toolkit/application/application.py | 1630 +++ .../prompt_toolkit/application/current.py | 195 + .../prompt_toolkit/application/dummy.py | 55 + .../application/run_in_terminal.py | 117 + .../prompt_toolkit/auto_suggest.py | 177 + .../site-packages/prompt_toolkit/buffer.py | 2029 ++++ .../site-packages/prompt_toolkit/cache.py | 127 + .../prompt_toolkit/clipboard/__init__.py | 17 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 458 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 4281 bytes .../__pycache__/in_memory.cpython-310.pyc | Bin 0 -> 1627 bytes .../__pycache__/pyperclip.cpython-310.pyc | Bin 0 -> 1376 bytes .../prompt_toolkit/clipboard/base.py | 109 + .../prompt_toolkit/clipboard/in_memory.py | 44 + .../prompt_toolkit/clipboard/pyperclip.py | 42 + .../prompt_toolkit/completion/__init__.py | 43 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 922 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 14365 bytes .../__pycache__/deduplicate.cpython-310.pyc | Bin 0 -> 1551 bytes .../__pycache__/filesystem.cpython-310.pyc | Bin 0 -> 3857 bytes .../fuzzy_completer.cpython-310.pyc | Bin 0 -> 6918 bytes .../__pycache__/nested.cpython-310.pyc | Bin 0 -> 3564 bytes .../word_completer.cpython-310.pyc | Bin 0 -> 3373 bytes .../prompt_toolkit/completion/base.py | 438 + .../prompt_toolkit/completion/deduplicate.py | 45 + .../prompt_toolkit/completion/filesystem.py | 118 + .../completion/fuzzy_completer.py | 213 + .../prompt_toolkit/completion/nested.py | 109 + .../completion/word_completer.py | 94 + .../prompt_toolkit/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 194 bytes .../contrib/completers/__init__.py | 5 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 324 bytes .../__pycache__/system.cpython-310.pyc | Bin 0 -> 2177 bytes .../contrib/completers/system.py | 64 + .../contrib/regular_languages/__init__.py | 80 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3526 bytes .../__pycache__/compiler.cpython-310.pyc | Bin 0 -> 18944 bytes .../__pycache__/completion.cpython-310.pyc | Bin 0 -> 3337 bytes .../__pycache__/lexer.cpython-310.pyc | Bin 0 -> 3389 bytes .../__pycache__/regex_parser.cpython-310.pyc | Bin 0 -> 8821 bytes .../__pycache__/validation.cpython-310.pyc | Bin 0 -> 1892 bytes .../contrib/regular_languages/compiler.py | 579 ++ .../contrib/regular_languages/completion.py | 100 + .../contrib/regular_languages/lexer.py | 94 + .../contrib/regular_languages/regex_parser.py | 279 + .../contrib/regular_languages/validation.py | 60 + .../prompt_toolkit/contrib/ssh/__init__.py | 8 + .../ssh/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 369 bytes .../ssh/__pycache__/server.cpython-310.pyc | Bin 0 -> 6941 bytes .../prompt_toolkit/contrib/ssh/server.py | 178 + .../prompt_toolkit/contrib/telnet/__init__.py | 7 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 319 bytes .../telnet/__pycache__/log.cpython-310.pyc | Bin 0 -> 384 bytes .../__pycache__/protocol.cpython-310.pyc | Bin 0 -> 5411 bytes .../telnet/__pycache__/server.cpython-310.pyc | Bin 0 -> 13268 bytes .../prompt_toolkit/contrib/telnet/log.py | 13 + .../prompt_toolkit/contrib/telnet/protocol.py | 209 + .../prompt_toolkit/contrib/telnet/server.py | 428 + .../prompt_toolkit/cursor_shapes.py | 117 + .../prompt_toolkit/data_structures.py | 18 + .../site-packages/prompt_toolkit/document.py | 1182 +++ .../site-packages/prompt_toolkit/enums.py | 19 + .../prompt_toolkit/eventloop/__init__.py | 31 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 707 bytes .../async_generator.cpython-310.pyc | Bin 0 -> 2886 bytes .../__pycache__/inputhook.cpython-310.pyc | Bin 0 -> 5807 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 2902 bytes .../__pycache__/win32.cpython-310.pyc | Bin 0 -> 2287 bytes .../eventloop/async_generator.py | 125 + .../prompt_toolkit/eventloop/inputhook.py | 191 + .../prompt_toolkit/eventloop/utils.py | 101 + .../prompt_toolkit/eventloop/win32.py | 72 + .../prompt_toolkit/filters/__init__.py | 71 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1983 bytes .../filters/__pycache__/app.cpython-310.pyc | Bin 0 -> 9317 bytes .../filters/__pycache__/base.cpython-310.pyc | Bin 0 -> 8365 bytes .../filters/__pycache__/cli.cpython-310.pyc | Bin 0 -> 3227 bytes .../filters/__pycache__/utils.cpython-310.pyc | Bin 0 -> 1123 bytes .../prompt_toolkit/filters/app.py | 419 + .../prompt_toolkit/filters/base.py | 260 + .../prompt_toolkit/filters/cli.py | 65 + .../prompt_toolkit/filters/utils.py | 41 + .../prompt_toolkit/formatted_text/__init__.py | 59 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1485 bytes .../__pycache__/ansi.cpython-310.pyc | Bin 0 -> 6438 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 5415 bytes .../__pycache__/html.cpython-310.pyc | Bin 0 -> 4329 bytes .../__pycache__/pygments.cpython-310.pyc | Bin 0 -> 1265 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 3282 bytes .../prompt_toolkit/formatted_text/ansi.py | 302 + .../prompt_toolkit/formatted_text/base.py | 179 + .../prompt_toolkit/formatted_text/html.py | 145 + .../prompt_toolkit/formatted_text/pygments.py | 32 + .../prompt_toolkit/formatted_text/utils.py | 102 + .../site-packages/prompt_toolkit/history.py | 306 + .../prompt_toolkit/input/__init__.py | 14 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 437 bytes .../ansi_escape_sequences.cpython-310.pyc | Bin 0 -> 8504 bytes .../input/__pycache__/base.cpython-310.pyc | Bin 0 -> 5470 bytes .../__pycache__/defaults.cpython-310.pyc | Bin 0 -> 2075 bytes .../__pycache__/posix_pipe.cpython-310.pyc | Bin 0 -> 4364 bytes .../__pycache__/posix_utils.cpython-310.pyc | Bin 0 -> 2547 bytes .../__pycache__/typeahead.cpython-310.pyc | Bin 0 -> 2882 bytes .../input/__pycache__/vt100.cpython-310.pyc | Bin 0 -> 8031 bytes .../__pycache__/vt100_parser.cpython-310.pyc | Bin 0 -> 6245 bytes .../input/__pycache__/win32.cpython-310.pyc | Bin 0 -> 21620 bytes .../__pycache__/win32_pipe.cpython-310.pyc | Bin 0 -> 5298 bytes .../input/ansi_escape_sequences.py | 344 + .../prompt_toolkit/input/base.py | 154 + .../prompt_toolkit/input/defaults.py | 79 + .../prompt_toolkit/input/posix_pipe.py | 118 + .../prompt_toolkit/input/posix_utils.py | 97 + .../prompt_toolkit/input/typeahead.py | 78 + .../prompt_toolkit/input/vt100.py | 309 + .../prompt_toolkit/input/vt100_parser.py | 250 + .../prompt_toolkit/input/win32.py | 904 ++ .../prompt_toolkit/input/win32_pipe.py | 156 + .../prompt_toolkit/key_binding/__init__.py | 22 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 540 bytes .../__pycache__/defaults.cpython-310.pyc | Bin 0 -> 1490 bytes .../__pycache__/digraphs.cpython-310.pyc | Bin 0 -> 67696 bytes .../__pycache__/emacs_state.cpython-310.pyc | Bin 0 -> 1390 bytes .../__pycache__/key_bindings.cpython-310.pyc | Bin 0 -> 18922 bytes .../__pycache__/key_processor.cpython-310.pyc | Bin 0 -> 15423 bytes .../__pycache__/vi_state.cpython-310.pyc | Bin 0 -> 2645 bytes .../key_binding/bindings/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 207 bytes .../__pycache__/auto_suggest.cpython-310.pyc | Bin 0 -> 2355 bytes .../__pycache__/basic.cpython-310.pyc | Bin 0 -> 6707 bytes .../__pycache__/completion.cpython-310.pyc | Bin 0 -> 6318 bytes .../bindings/__pycache__/cpr.cpython-310.pyc | Bin 0 -> 1158 bytes .../__pycache__/emacs.cpython-310.pyc | Bin 0 -> 16332 bytes .../__pycache__/focus.cpython-310.pyc | Bin 0 -> 825 bytes .../__pycache__/mouse.cpython-310.pyc | Bin 0 -> 7293 bytes .../named_commands.cpython-310.pyc | Bin 0 -> 18230 bytes .../open_in_editor.cpython-310.pyc | Bin 0 -> 1499 bytes .../page_navigation.cpython-310.pyc | Bin 0 -> 2006 bytes .../__pycache__/scroll.cpython-310.pyc | Bin 0 -> 4012 bytes .../__pycache__/search.cpython-310.pyc | Bin 0 -> 2926 bytes .../bindings/__pycache__/vi.cpython-310.pyc | Bin 0 -> 61492 bytes .../key_binding/bindings/auto_suggest.py | 66 + .../key_binding/bindings/basic.py | 257 + .../key_binding/bindings/completion.py | 206 + .../key_binding/bindings/cpr.py | 30 + .../key_binding/bindings/emacs.py | 563 ++ .../key_binding/bindings/focus.py | 26 + .../key_binding/bindings/mouse.py | 348 + .../key_binding/bindings/named_commands.py | 691 ++ .../key_binding/bindings/open_in_editor.py | 52 + .../key_binding/bindings/page_navigation.py | 85 + .../key_binding/bindings/scroll.py | 190 + .../key_binding/bindings/search.py | 96 + .../prompt_toolkit/key_binding/bindings/vi.py | 2233 +++++ .../prompt_toolkit/key_binding/defaults.py | 63 + .../prompt_toolkit/key_binding/digraphs.py | 1378 +++ .../prompt_toolkit/key_binding/emacs_state.py | 36 + .../key_binding/key_bindings.py | 672 ++ .../key_binding/key_processor.py | 526 + .../prompt_toolkit/key_binding/vi_state.py | 107 + .../site-packages/prompt_toolkit/keys.py | 222 + .../prompt_toolkit/layout/__init__.py | 147 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3307 bytes .../__pycache__/containers.cpython-310.pyc | Bin 0 -> 68963 bytes .../__pycache__/controls.cpython-310.pyc | Bin 0 -> 28120 bytes .../__pycache__/dimension.cpython-310.pyc | Bin 0 -> 5802 bytes .../layout/__pycache__/dummy.cpython-310.pyc | Bin 0 -> 1494 bytes .../layout/__pycache__/layout.cpython-310.pyc | Bin 0 -> 11275 bytes .../__pycache__/margins.cpython-310.pyc | Bin 0 -> 8958 bytes .../layout/__pycache__/menus.cpython-310.pyc | Bin 0 -> 21459 bytes .../mouse_handlers.cpython-310.pyc | Bin 0 -> 2031 bytes .../__pycache__/processors.cpython-310.pyc | Bin 0 -> 29071 bytes .../layout/__pycache__/screen.cpython-310.pyc | Bin 0 -> 8596 bytes .../scrollable_pane.cpython-310.pyc | Bin 0 -> 12546 bytes .../layout/__pycache__/utils.cpython-310.pyc | Bin 0 -> 2932 bytes .../prompt_toolkit/layout/containers.py | 2766 ++++++ .../prompt_toolkit/layout/controls.py | 956 ++ .../prompt_toolkit/layout/dimension.py | 216 + .../prompt_toolkit/layout/dummy.py | 40 + .../prompt_toolkit/layout/layout.py | 412 + .../prompt_toolkit/layout/margins.py | 304 + .../prompt_toolkit/layout/menus.py | 748 ++ .../prompt_toolkit/layout/mouse_handlers.py | 56 + .../prompt_toolkit/layout/processors.py | 1016 ++ .../prompt_toolkit/layout/screen.py | 323 + .../prompt_toolkit/layout/scrollable_pane.py | 494 + .../prompt_toolkit/layout/utils.py | 80 + .../prompt_toolkit/lexers/__init__.py | 21 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 575 bytes .../lexers/__pycache__/base.cpython-310.pyc | Bin 0 -> 3486 bytes .../__pycache__/pygments.cpython-310.pyc | Bin 0 -> 9695 bytes .../prompt_toolkit/lexers/base.py | 85 + .../prompt_toolkit/lexers/pygments.py | 328 + .../site-packages/prompt_toolkit/log.py | 13 + .../prompt_toolkit/mouse_events.py | 85 + .../prompt_toolkit/output/__init__.py | 15 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 434 bytes .../output/__pycache__/base.cpython-310.pyc | Bin 0 -> 13713 bytes .../__pycache__/color_depth.cpython-310.pyc | Bin 0 -> 1750 bytes .../output/__pycache__/conemu.cpython-310.pyc | Bin 0 -> 2373 bytes .../__pycache__/defaults.cpython-310.pyc | Bin 0 -> 2351 bytes .../__pycache__/flush_stdout.cpython-310.pyc | Bin 0 -> 1457 bytes .../__pycache__/plain_text.cpython-310.pyc | Bin 0 -> 6889 bytes .../output/__pycache__/vt100.cpython-310.pyc | Bin 0 -> 19410 bytes .../output/__pycache__/win32.cpython-310.pyc | Bin 0 -> 18631 bytes .../__pycache__/windows10.cpython-310.pyc | Bin 0 -> 3432 bytes .../prompt_toolkit/output/base.py | 332 + .../prompt_toolkit/output/color_depth.py | 64 + .../prompt_toolkit/output/conemu.py | 65 + .../prompt_toolkit/output/defaults.py | 106 + .../prompt_toolkit/output/flush_stdout.py | 87 + .../prompt_toolkit/output/plain_text.py | 143 + .../prompt_toolkit/output/vt100.py | 760 ++ .../prompt_toolkit/output/win32.py | 684 ++ .../prompt_toolkit/output/windows10.py | 133 + .../prompt_toolkit/patch_stdout.py | 297 + .../site-packages/prompt_toolkit/py.typed | 0 .../site-packages/prompt_toolkit/renderer.py | 820 ++ .../site-packages/prompt_toolkit/search.py | 226 + .../site-packages/prompt_toolkit/selection.py | 58 + .../prompt_toolkit/shortcuts/__init__.py | 49 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 950 bytes .../__pycache__/choice_input.cpython-310.pyc | Bin 0 -> 9797 bytes .../__pycache__/dialogs.cpython-310.pyc | Bin 0 -> 9119 bytes .../__pycache__/prompt.cpython-310.pyc | Bin 0 -> 42412 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 6691 bytes .../prompt_toolkit/shortcuts/choice_input.py | 311 + .../prompt_toolkit/shortcuts/dialogs.py | 330 + .../shortcuts/progress_bar/__init__.py | 33 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 657 bytes .../__pycache__/base.cpython-310.pyc | Bin 0 -> 14074 bytes .../__pycache__/formatters.cpython-310.pyc | Bin 0 -> 12505 bytes .../shortcuts/progress_bar/base.py | 449 + .../shortcuts/progress_bar/formatters.py | 431 + .../prompt_toolkit/shortcuts/prompt.py | 1538 +++ .../prompt_toolkit/shortcuts/utils.py | 239 + .../prompt_toolkit/styles/__init__.py | 67 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1346 bytes .../styles/__pycache__/base.cpython-310.pyc | Bin 0 -> 4756 bytes .../__pycache__/defaults.cpython-310.pyc | Bin 0 -> 6191 bytes .../__pycache__/named_colors.cpython-310.pyc | Bin 0 -> 4877 bytes .../__pycache__/pygments.cpython-310.pyc | Bin 0 -> 2207 bytes .../styles/__pycache__/style.cpython-310.pyc | Bin 0 -> 11298 bytes .../style_transformation.cpython-310.pyc | Bin 0 -> 13005 bytes .../prompt_toolkit/styles/base.py | 188 + .../prompt_toolkit/styles/defaults.py | 236 + .../prompt_toolkit/styles/named_colors.py | 162 + .../prompt_toolkit/styles/pygments.py | 70 + .../prompt_toolkit/styles/style.py | 407 + .../styles/style_transformation.py | 374 + .../site-packages/prompt_toolkit/token.py | 9 + .../site-packages/prompt_toolkit/utils.py | 327 + .../prompt_toolkit/validation.py | 192 + .../prompt_toolkit/widgets/__init__.py | 63 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1220 bytes .../widgets/__pycache__/base.cpython-310.pyc | Bin 0 -> 31712 bytes .../__pycache__/dialogs.cpython-310.pyc | Bin 0 -> 3151 bytes .../widgets/__pycache__/menus.cpython-310.pyc | Bin 0 -> 11131 bytes .../__pycache__/toolbars.cpython-310.pyc | Bin 0 -> 11339 bytes .../prompt_toolkit/widgets/base.py | 1080 ++ .../prompt_toolkit/widgets/dialogs.py | 108 + .../prompt_toolkit/widgets/menus.py | 374 + .../prompt_toolkit/widgets/toolbars.py | 370 + .../prompt_toolkit/win32_types.py | 229 + .../pyaes-1.6.1.dist-info/INSTALLER | 1 + .../pyaes-1.6.1.dist-info/LICENSE.txt | 22 + .../pyaes-1.6.1.dist-info/METADATA | 18 + .../pyaes-1.6.1.dist-info/RECORD | 14 + .../site-packages/pyaes-1.6.1.dist-info/WHEEL | 5 + .../pyaes-1.6.1.dist-info/top_level.txt | 1 + .../site-packages/pyaes/__init__.py | 53 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 628 bytes .../pyaes/__pycache__/aes.cpython-310.pyc | Bin 0 -> 40883 bytes .../__pycache__/blockfeeder.cpython-310.pyc | Bin 0 -> 5202 bytes .../pyaes/__pycache__/util.cpython-310.pyc | Bin 0 -> 1223 bytes .../lib/python3.10/site-packages/pyaes/aes.py | 589 ++ .../site-packages/pyaes/blockfeeder.py | 227 + .../python3.10/site-packages/pyaes/util.py | 60 + .../INSTALLER | 1 + .../LICENSE | 201 + .../METADATA | 23 + .../RECORD | 48 + .../WHEEL | 5 + .../top_level.txt | 1 + .../pyudev-0.24.4.dist-info/INSTALLER | 1 + .../pyudev-0.24.4.dist-info/METADATA | 119 + .../pyudev-0.24.4.dist-info/RECORD | 54 + .../pyudev-0.24.4.dist-info/WHEEL | 5 + .../pyudev-0.24.4.dist-info/licenses/COPYING | 504 + .../pyudev-0.24.4.dist-info/top_level.txt | 1 + .../site-packages/pyudev/__init__.py | 55 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1538 bytes .../__pycache__/_errors.cpython-310.pyc | Bin 0 -> 6077 bytes .../__pycache__/_qt_base.cpython-310.pyc | Bin 0 -> 6182 bytes .../pyudev/__pycache__/_util.cpython-310.pyc | Bin 0 -> 5754 bytes .../pyudev/__pycache__/core.cpython-310.pyc | Bin 0 -> 12837 bytes .../__pycache__/discover.cpython-310.pyc | Bin 0 -> 13121 bytes .../pyudev/__pycache__/glib.cpython-310.pyc | Bin 0 -> 4714 bytes .../__pycache__/monitor.cpython-310.pyc | Bin 0 -> 19721 bytes .../pyudev/__pycache__/pyqt4.cpython-310.pyc | Bin 0 -> 900 bytes .../pyudev/__pycache__/pyqt5.cpython-310.pyc | Bin 0 -> 806 bytes .../pyudev/__pycache__/pyside.cpython-310.pyc | Bin 0 -> 905 bytes .../__pycache__/pyside6.cpython-310.pyc | Bin 0 -> 815 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 643 bytes .../pyudev/__pycache__/wx.cpython-310.pyc | Bin 0 -> 4272 bytes .../pyudev/_ctypeslib/__init__.py | 26 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 382 bytes .../_errorcheckers.cpython-310.pyc | Bin 0 -> 2300 bytes .../__pycache__/libc.cpython-310.pyc | Bin 0 -> 546 bytes .../__pycache__/libudev.cpython-310.pyc | Bin 0 -> 5826 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 1543 bytes .../pyudev/_ctypeslib/_errorcheckers.py | 99 + .../site-packages/pyudev/_ctypeslib/libc.py | 39 + .../pyudev/_ctypeslib/libudev.py | 271 + .../site-packages/pyudev/_ctypeslib/utils.py | 63 + .../site-packages/pyudev/_errors.py | 184 + .../site-packages/pyudev/_os/__init__.py | 26 + .../_os/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 393 bytes .../_os/__pycache__/pipe.cpython-310.pyc | Bin 0 -> 3905 bytes .../_os/__pycache__/poll.cpython-310.pyc | Bin 0 -> 3279 bytes .../site-packages/pyudev/_os/pipe.py | 152 + .../site-packages/pyudev/_os/poll.py | 113 + .../site-packages/pyudev/_qt_base.py | 208 + .../python3.10/site-packages/pyudev/_util.py | 191 + .../python3.10/site-packages/pyudev/core.py | 391 + .../site-packages/pyudev/device/__init__.py | 26 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 447 bytes .../__pycache__/_device.cpython-310.pyc | Bin 0 -> 42799 bytes .../site-packages/pyudev/device/_device.py | 1303 +++ .../site-packages/pyudev/discover.py | 382 + .../python3.10/site-packages/pyudev/glib.py | 198 + .../site-packages/pyudev/monitor.py | 598 ++ .../python3.10/site-packages/pyudev/pyqt4.py | 50 + .../python3.10/site-packages/pyudev/pyqt5.py | 40 + .../python3.10/site-packages/pyudev/pyside.py | 51 + .../site-packages/pyudev/pyside6.py | 44 + .../site-packages/pyudev/version.py | 30 + .../lib/python3.10/site-packages/pyudev/wx.py | 149 + .../pyyaml-6.0.3.dist-info/INSTALLER | 1 + .../pyyaml-6.0.3.dist-info/METADATA | 59 + .../pyyaml-6.0.3.dist-info/RECORD | 43 + .../pyyaml-6.0.3.dist-info/WHEEL | 7 + .../pyyaml-6.0.3.dist-info/licenses/LICENSE | 20 + .../pyyaml-6.0.3.dist-info/top_level.txt | 2 + .../site-packages/redfish/__init__.py | 19 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 756 bytes .../security_masking.cpython-310.pyc | Bin 0 -> 16491 bytes .../site-packages/redfish/hpilo/__init__.py | 3 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 251 bytes .../__pycache__/risblobstore2.cpython-310.pyc | Bin 0 -> 32599 bytes .../__pycache__/rishpilo.cpython-310.pyc | Bin 0 -> 7035 bytes .../__pycache__/vnichpilo.cpython-310.pyc | Bin 0 -> 12228 bytes .../redfish/hpilo/risblobstore2.py | 1303 +++ .../site-packages/redfish/hpilo/rishpilo.py | 284 + .../site-packages/redfish/hpilo/vnichpilo.py | 428 + .../site-packages/redfish/rest/__init__.py | 2 + .../rest/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 294 bytes .../__pycache__/connections.cpython-310.pyc | Bin 0 -> 14839 bytes .../__pycache__/containers.cpython-310.pyc | Bin 0 -> 11772 bytes .../rest/__pycache__/v1.cpython-310.pyc | Bin 0 -> 19980 bytes .../site-packages/redfish/rest/connections.py | 624 ++ .../site-packages/redfish/rest/containers.py | 376 + .../site-packages/redfish/rest/v1.py | 643 ++ .../site-packages/redfish/ris/__init__.py | 32 + .../ris/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1087 bytes .../__pycache__/gen_compat.cpython-310.pyc | Bin 0 -> 13269 bytes .../__pycache__/resp_handler.cpython-310.pyc | Bin 0 -> 10306 bytes .../ris/__pycache__/ris.cpython-310.pyc | Bin 0 -> 33218 bytes .../__pycache__/ris_threaded.cpython-310.pyc | Bin 0 -> 4165 bytes .../ris/__pycache__/rmc.cpython-310.pyc | Bin 0 -> 55913 bytes .../ris/__pycache__/rmc_api.cpython-310.pyc | Bin 0 -> 781 bytes .../__pycache__/rmc_helper.cpython-310.pyc | Bin 0 -> 12250 bytes .../__pycache__/sharedtypes.cpython-310.pyc | Bin 0 -> 1401 bytes .../ris/__pycache__/utils.cpython-310.pyc | Bin 0 -> 16033 bytes .../__pycache__/validation.cpython-310.pyc | Bin 0 -> 34414 bytes .../site-packages/redfish/ris/gen_compat.py | 459 + .../site-packages/redfish/ris/resp_handler.py | 365 + .../site-packages/redfish/ris/ris.py | 1270 +++ .../site-packages/redfish/ris/ris_threaded.py | 261 + .../site-packages/redfish/ris/rmc.py | 1812 ++++ .../site-packages/redfish/ris/rmc_api.py | 15 + .../site-packages/redfish/ris/rmc_helper.py | 452 + .../site-packages/redfish/ris/sharedtypes.py | 61 + .../site-packages/redfish/ris/utils.py | 558 ++ .../site-packages/redfish/ris/validation.py | 1326 +++ .../site-packages/redfish/security_masking.py | 678 ++ .../requests-2.32.5.dist-info/INSTALLER | 1 + .../requests-2.32.5.dist-info/METADATA | 133 + .../requests-2.32.5.dist-info/RECORD | 42 + .../requests-2.32.5.dist-info/WHEEL | 5 + .../licenses/LICENSE | 175 + .../requests-2.32.5.dist-info/top_level.txt | 1 + .../site-packages/requests/__init__.py | 184 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3924 bytes .../__pycache__/__version__.cpython-310.pyc | Bin 0 -> 538 bytes .../_internal_utils.cpython-310.pyc | Bin 0 -> 1614 bytes .../__pycache__/adapters.cpython-310.pyc | Bin 0 -> 21671 bytes .../requests/__pycache__/api.cpython-310.pyc | Bin 0 -> 6714 bytes .../requests/__pycache__/auth.cpython-310.pyc | Bin 0 -> 8110 bytes .../__pycache__/certs.cpython-310.pyc | Bin 0 -> 615 bytes .../__pycache__/compat.cpython-310.pyc | Bin 0 -> 1946 bytes .../__pycache__/cookies.cpython-310.pyc | Bin 0 -> 18709 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 6217 bytes .../requests/__pycache__/help.cpython-310.pyc | Bin 0 -> 2837 bytes .../__pycache__/hooks.cpython-310.pyc | Bin 0 -> 982 bytes .../__pycache__/models.cpython-310.pyc | Bin 0 -> 24299 bytes .../__pycache__/packages.cpython-310.pyc | Bin 0 -> 619 bytes .../__pycache__/sessions.cpython-310.pyc | Bin 0 -> 19720 bytes .../__pycache__/status_codes.cpython-310.pyc | Bin 0 -> 4732 bytes .../__pycache__/structures.cpython-310.pyc | Bin 0 -> 4426 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 24517 bytes .../site-packages/requests/__version__.py | 14 + .../site-packages/requests/_internal_utils.py | 50 + .../site-packages/requests/adapters.py | 696 ++ .../python3.10/site-packages/requests/api.py | 157 + .../python3.10/site-packages/requests/auth.py | 314 + .../site-packages/requests/certs.py | 17 + .../site-packages/requests/compat.py | 106 + .../site-packages/requests/cookies.py | 561 ++ .../site-packages/requests/exceptions.py | 151 + .../python3.10/site-packages/requests/help.py | 134 + .../site-packages/requests/hooks.py | 33 + .../site-packages/requests/models.py | 1039 ++ .../site-packages/requests/packages.py | 23 + .../site-packages/requests/sessions.py | 831 ++ .../site-packages/requests/status_codes.py | 128 + .../site-packages/requests/structures.py | 99 + .../site-packages/requests/utils.py | 1086 ++ .../setproctitle-1.3.7.dist-info/INSTALLER | 1 + .../setproctitle-1.3.7.dist-info/METADATA | 401 + .../setproctitle-1.3.7.dist-info/RECORD | 10 + .../setproctitle-1.3.7.dist-info/WHEEL | 7 + .../licenses/LICENSE | 28 + .../top_level.txt | 1 + .../site-packages/setproctitle/__init__.py | 57 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1337 bytes ...tproctitle.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 68784 bytes .../site-packages/setproctitle/py.typed | 0 .../setuptools-59.6.0.dist-info/INSTALLER | 1 + .../setuptools-59.6.0.dist-info/LICENSE | 19 + .../setuptools-59.6.0.dist-info/METADATA | 125 + .../setuptools-59.6.0.dist-info/RECORD | 298 + .../setuptools-59.6.0.dist-info/REQUESTED | 0 .../setuptools-59.6.0.dist-info/WHEEL | 5 + .../entry_points.txt | 56 + .../setuptools-59.6.0.dist-info/top_level.txt | 4 + .../site-packages/setuptools/__init__.py | 242 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 8597 bytes .../_deprecation_warning.cpython-310.pyc | Bin 0 -> 554 bytes .../__pycache__/_imp.cpython-310.pyc | Bin 0 -> 2080 bytes .../__pycache__/archive_util.cpython-310.pyc | Bin 0 -> 5850 bytes .../__pycache__/build_meta.cpython-310.pyc | Bin 0 -> 9464 bytes .../__pycache__/config.cpython-310.pyc | Bin 0 -> 20933 bytes .../__pycache__/dep_util.cpython-310.pyc | Bin 0 -> 861 bytes .../__pycache__/depends.cpython-310.pyc | Bin 0 -> 5300 bytes .../__pycache__/dist.cpython-310.pyc | Bin 0 -> 36341 bytes .../__pycache__/errors.cpython-310.pyc | Bin 0 -> 1506 bytes .../__pycache__/extension.cpython-310.pyc | Bin 0 -> 1950 bytes .../__pycache__/glob.cpython-310.pyc | Bin 0 -> 3739 bytes .../__pycache__/installer.cpython-310.pyc | Bin 0 -> 2985 bytes .../__pycache__/launch.cpython-310.pyc | Bin 0 -> 911 bytes .../__pycache__/monkey.cpython-310.pyc | Bin 0 -> 4639 bytes .../__pycache__/msvc.cpython-310.pyc | Bin 0 -> 42643 bytes .../__pycache__/namespaces.cpython-310.pyc | Bin 0 -> 3622 bytes .../__pycache__/package_index.cpython-310.pyc | Bin 0 -> 34769 bytes .../__pycache__/py34compat.cpython-310.pyc | Bin 0 -> 486 bytes .../__pycache__/sandbox.cpython-310.pyc | Bin 0 -> 15762 bytes .../__pycache__/unicode_utils.cpython-310.pyc | Bin 0 -> 1116 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 328 bytes .../__pycache__/wheel.cpython-310.pyc | Bin 0 -> 7354 bytes .../windows_support.cpython-310.pyc | Bin 0 -> 1029 bytes .../setuptools/_deprecation_warning.py | 7 + .../setuptools/_distutils/__init__.py | 24 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 562 bytes .../__pycache__/_msvccompiler.cpython-310.pyc | Bin 0 -> 13839 bytes .../__pycache__/archive_util.cpython-310.pyc | Bin 0 -> 6567 bytes .../__pycache__/bcppcompiler.cpython-310.pyc | Bin 0 -> 6554 bytes .../__pycache__/ccompiler.cpython-310.pyc | Bin 0 -> 33311 bytes .../__pycache__/cmd.cpython-310.pyc | Bin 0 -> 13954 bytes .../__pycache__/config.cpython-310.pyc | Bin 0 -> 3593 bytes .../__pycache__/core.cpython-310.pyc | Bin 0 -> 7094 bytes .../cygwinccompiler.cpython-310.pyc | Bin 0 -> 9001 bytes .../__pycache__/debug.cpython-310.pyc | Bin 0 -> 256 bytes .../__pycache__/dep_util.cpython-310.pyc | Bin 0 -> 2777 bytes .../__pycache__/dir_util.cpython-310.pyc | Bin 0 -> 5888 bytes .../__pycache__/dist.cpython-310.pyc | Bin 0 -> 34053 bytes .../__pycache__/errors.cpython-310.pyc | Bin 0 -> 4998 bytes .../__pycache__/extension.cpython-310.pyc | Bin 0 -> 7012 bytes .../__pycache__/fancy_getopt.cpython-310.pyc | Bin 0 -> 10636 bytes .../__pycache__/file_util.cpython-310.pyc | Bin 0 -> 5982 bytes .../__pycache__/filelist.cpython-310.pyc | Bin 0 -> 10828 bytes .../__pycache__/log.cpython-310.pyc | Bin 0 -> 2313 bytes .../__pycache__/msvc9compiler.cpython-310.pyc | Bin 0 -> 17568 bytes .../__pycache__/msvccompiler.cpython-310.pyc | Bin 0 -> 14787 bytes .../__pycache__/py35compat.cpython-310.pyc | Bin 0 -> 632 bytes .../__pycache__/py38compat.cpython-310.pyc | Bin 0 -> 429 bytes .../__pycache__/spawn.cpython-310.pyc | Bin 0 -> 2899 bytes .../__pycache__/sysconfig.cpython-310.pyc | Bin 0 -> 12880 bytes .../__pycache__/text_file.cpython-310.pyc | Bin 0 -> 8475 bytes .../__pycache__/unixccompiler.cpython-310.pyc | Bin 0 -> 6807 bytes .../__pycache__/util.cpython-310.pyc | Bin 0 -> 14748 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 7849 bytes .../versionpredicate.cpython-310.pyc | Bin 0 -> 5342 bytes .../setuptools/_distutils/_msvccompiler.py | 561 ++ .../setuptools/_distutils/archive_util.py | 256 + .../setuptools/_distutils/bcppcompiler.py | 393 + .../setuptools/_distutils/ccompiler.py | 1123 +++ .../setuptools/_distutils/cmd.py | 403 + .../setuptools/_distutils/command/__init__.py | 31 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 535 bytes .../command/__pycache__/bdist.cpython-310.pyc | Bin 0 -> 3669 bytes .../__pycache__/bdist_dumb.cpython-310.pyc | Bin 0 -> 3648 bytes .../__pycache__/bdist_msi.cpython-310.pyc | Bin 0 -> 19724 bytes .../__pycache__/bdist_rpm.cpython-310.pyc | Bin 0 -> 12292 bytes .../__pycache__/bdist_wininst.cpython-310.pyc | Bin 0 -> 8635 bytes .../command/__pycache__/build.cpython-310.pyc | Bin 0 -> 3897 bytes .../__pycache__/build_clib.cpython-310.pyc | Bin 0 -> 4874 bytes .../__pycache__/build_ext.cpython-310.pyc | Bin 0 -> 16222 bytes .../__pycache__/build_py.cpython-310.pyc | Bin 0 -> 9893 bytes .../__pycache__/build_scripts.cpython-310.pyc | Bin 0 -> 4016 bytes .../command/__pycache__/check.cpython-310.pyc | Bin 0 -> 5013 bytes .../command/__pycache__/clean.cpython-310.pyc | Bin 0 -> 2152 bytes .../__pycache__/config.cpython-310.pyc | Bin 0 -> 10334 bytes .../__pycache__/install.cpython-310.pyc | Bin 0 -> 15272 bytes .../__pycache__/install_data.cpython-310.pyc | Bin 0 -> 2351 bytes .../install_egg_info.cpython-310.pyc | Bin 0 -> 3316 bytes .../install_headers.cpython-310.pyc | Bin 0 -> 1774 bytes .../__pycache__/install_lib.cpython-310.pyc | Bin 0 -> 5176 bytes .../install_scripts.cpython-310.pyc | Bin 0 -> 2203 bytes .../__pycache__/py37compat.cpython-310.pyc | Bin 0 -> 1044 bytes .../__pycache__/register.cpython-310.pyc | Bin 0 -> 8687 bytes .../command/__pycache__/sdist.cpython-310.pyc | Bin 0 -> 14503 bytes .../__pycache__/upload.cpython-310.pyc | Bin 0 -> 5379 bytes .../setuptools/_distutils/command/bdist.py | 143 + .../_distutils/command/bdist_dumb.py | 123 + .../_distutils/command/bdist_msi.py | 749 ++ .../_distutils/command/bdist_rpm.py | 579 ++ .../_distutils/command/bdist_wininst.py | 377 + .../setuptools/_distutils/command/build.py | 157 + .../_distutils/command/build_clib.py | 209 + .../_distutils/command/build_ext.py | 755 ++ .../setuptools/_distutils/command/build_py.py | 392 + .../_distutils/command/build_scripts.py | 152 + .../setuptools/_distutils/command/check.py | 148 + .../setuptools/_distutils/command/clean.py | 76 + .../setuptools/_distutils/command/config.py | 344 + .../setuptools/_distutils/command/install.py | 721 ++ .../_distutils/command/install_data.py | 79 + .../_distutils/command/install_egg_info.py | 84 + .../_distutils/command/install_headers.py | 47 + .../_distutils/command/install_lib.py | 217 + .../_distutils/command/install_scripts.py | 60 + .../_distutils/command/py37compat.py | 30 + .../setuptools/_distutils/command/register.py | 304 + .../setuptools/_distutils/command/sdist.py | 494 + .../setuptools/_distutils/command/upload.py | 214 + .../setuptools/_distutils/config.py | 130 + .../setuptools/_distutils/core.py | 249 + .../setuptools/_distutils/cygwinccompiler.py | 425 + .../setuptools/_distutils/debug.py | 5 + .../setuptools/_distutils/dep_util.py | 92 + .../setuptools/_distutils/dir_util.py | 210 + .../setuptools/_distutils/dist.py | 1257 +++ .../setuptools/_distutils/errors.py | 97 + .../setuptools/_distutils/extension.py | 240 + .../setuptools/_distutils/fancy_getopt.py | 457 + .../setuptools/_distutils/file_util.py | 238 + .../setuptools/_distutils/filelist.py | 355 + .../setuptools/_distutils/log.py | 77 + .../setuptools/_distutils/msvc9compiler.py | 788 ++ .../setuptools/_distutils/msvccompiler.py | 643 ++ .../setuptools/_distutils/py35compat.py | 19 + .../setuptools/_distutils/py38compat.py | 7 + .../setuptools/_distutils/spawn.py | 106 + .../setuptools/_distutils/sysconfig.py | 601 ++ .../setuptools/_distutils/text_file.py | 286 + .../setuptools/_distutils/unixccompiler.py | 325 + .../setuptools/_distutils/util.py | 548 + .../setuptools/_distutils/version.py | 363 + .../setuptools/_distutils/versionpredicate.py | 169 + .../site-packages/setuptools/_imp.py | 82 + .../setuptools/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 190 bytes .../__pycache__/ordered_set.cpython-310.pyc | Bin 0 -> 16326 bytes .../__pycache__/pyparsing.cpython-310.pyc | Bin 0 -> 198743 bytes .../_vendor/more_itertools/__init__.py | 4 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 271 bytes .../__pycache__/more.cpython-310.pyc | Bin 0 -> 109989 bytes .../__pycache__/recipes.cpython-310.pyc | Bin 0 -> 17971 bytes .../setuptools/_vendor/more_itertools/more.py | 3825 +++++++ .../_vendor/more_itertools/recipes.py | 620 ++ .../setuptools/_vendor/ordered_set.py | 488 + .../setuptools/_vendor/packaging/__about__.py | 26 + .../setuptools/_vendor/packaging/__init__.py | 25 + .../__pycache__/__about__.cpython-310.pyc | Bin 0 -> 597 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 453 bytes .../__pycache__/_manylinux.cpython-310.pyc | Bin 0 -> 7307 bytes .../__pycache__/_musllinux.cpython-310.pyc | Bin 0 -> 4619 bytes .../__pycache__/_structures.cpython-310.pyc | Bin 0 -> 2977 bytes .../__pycache__/markers.cpython-310.pyc | Bin 0 -> 9300 bytes .../__pycache__/requirements.cpython-310.pyc | Bin 0 -> 3988 bytes .../__pycache__/specifiers.cpython-310.pyc | Bin 0 -> 22195 bytes .../__pycache__/tags.cpython-310.pyc | Bin 0 -> 12221 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 3582 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 12932 bytes .../_vendor/packaging/_manylinux.py | 301 + .../_vendor/packaging/_musllinux.py | 136 + .../_vendor/packaging/_structures.py | 67 + .../setuptools/_vendor/packaging/markers.py | 304 + .../_vendor/packaging/requirements.py | 146 + .../_vendor/packaging/specifiers.py | 828 ++ .../setuptools/_vendor/packaging/tags.py | 484 + .../setuptools/_vendor/packaging/utils.py | 136 + .../setuptools/_vendor/packaging/version.py | 504 + .../setuptools/_vendor/pyparsing.py | 5742 +++++++++++ .../site-packages/setuptools/archive_util.py | 205 + .../site-packages/setuptools/build_meta.py | 290 + .../site-packages/setuptools/cli-32.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/cli-64.exe | Bin 0 -> 74752 bytes .../site-packages/setuptools/cli-arm64.exe | Bin 0 -> 137216 bytes .../site-packages/setuptools/cli.exe | Bin 0 -> 65536 bytes .../setuptools/command/__init__.py | 8 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 379 bytes .../command/__pycache__/alias.cpython-310.pyc | Bin 0 -> 2381 bytes .../__pycache__/bdist_egg.cpython-310.pyc | Bin 0 -> 13107 bytes .../__pycache__/bdist_rpm.cpython-310.pyc | Bin 0 -> 1594 bytes .../__pycache__/build_clib.cpython-310.pyc | Bin 0 -> 2468 bytes .../__pycache__/build_ext.cpython-310.pyc | Bin 0 -> 9897 bytes .../__pycache__/build_py.cpython-310.pyc | Bin 0 -> 8270 bytes .../__pycache__/develop.cpython-310.pyc | Bin 0 -> 6157 bytes .../__pycache__/dist_info.cpython-310.pyc | Bin 0 -> 1399 bytes .../__pycache__/easy_install.cpython-310.pyc | Bin 0 -> 65176 bytes .../__pycache__/egg_info.cpython-310.pyc | Bin 0 -> 22755 bytes .../__pycache__/install.cpython-310.pyc | Bin 0 -> 4205 bytes .../install_egg_info.cpython-310.pyc | Bin 0 -> 2930 bytes .../__pycache__/install_lib.cpython-310.pyc | Bin 0 -> 5145 bytes .../install_scripts.cpython-310.pyc | Bin 0 -> 2434 bytes .../__pycache__/py36compat.cpython-310.pyc | Bin 0 -> 4541 bytes .../__pycache__/register.cpython-310.pyc | Bin 0 -> 845 bytes .../__pycache__/rotate.cpython-310.pyc | Bin 0 -> 2512 bytes .../__pycache__/saveopts.cpython-310.pyc | Bin 0 -> 931 bytes .../command/__pycache__/sdist.cpython-310.pyc | Bin 0 -> 6960 bytes .../__pycache__/setopt.cpython-310.pyc | Bin 0 -> 4693 bytes .../command/__pycache__/test.cpython-310.pyc | Bin 0 -> 8137 bytes .../__pycache__/upload.cpython-310.pyc | Bin 0 -> 818 bytes .../__pycache__/upload_docs.cpython-310.pyc | Bin 0 -> 6187 bytes .../site-packages/setuptools/command/alias.py | 78 + .../setuptools/command/bdist_egg.py | 456 + .../setuptools/command/bdist_rpm.py | 40 + .../setuptools/command/build_clib.py | 101 + .../setuptools/command/build_ext.py | 328 + .../setuptools/command/build_py.py | 242 + .../setuptools/command/develop.py | 193 + .../setuptools/command/dist_info.py | 36 + .../setuptools/command/easy_install.py | 2354 +++++ .../setuptools/command/egg_info.py | 755 ++ .../setuptools/command/install.py | 132 + .../setuptools/command/install_egg_info.py | 82 + .../setuptools/command/install_lib.py | 148 + .../setuptools/command/install_scripts.py | 69 + .../setuptools/command/launcher manifest.xml | 15 + .../setuptools/command/py36compat.py | 134 + .../setuptools/command/register.py | 18 + .../setuptools/command/rotate.py | 64 + .../setuptools/command/saveopts.py | 22 + .../site-packages/setuptools/command/sdist.py | 196 + .../setuptools/command/setopt.py | 149 + .../site-packages/setuptools/command/test.py | 252 + .../setuptools/command/upload.py | 17 + .../setuptools/command/upload_docs.py | 202 + .../site-packages/setuptools/config.py | 751 ++ .../site-packages/setuptools/dep_util.py | 25 + .../site-packages/setuptools/depends.py | 176 + .../site-packages/setuptools/dist.py | 1156 +++ .../site-packages/setuptools/errors.py | 40 + .../site-packages/setuptools/extension.py | 55 + .../setuptools/extern/__init__.py | 73 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2940 bytes .../site-packages/setuptools/glob.py | 167 + .../site-packages/setuptools/gui-32.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/gui-64.exe | Bin 0 -> 75264 bytes .../site-packages/setuptools/gui-arm64.exe | Bin 0 -> 137728 bytes .../site-packages/setuptools/gui.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/installer.py | 104 + .../site-packages/setuptools/launch.py | 36 + .../site-packages/setuptools/monkey.py | 177 + .../site-packages/setuptools/msvc.py | 1805 ++++ .../site-packages/setuptools/namespaces.py | 107 + .../site-packages/setuptools/package_index.py | 1176 +++ .../site-packages/setuptools/py34compat.py | 13 + .../site-packages/setuptools/sandbox.py | 530 + .../setuptools/script (dev).tmpl | 6 + .../site-packages/setuptools/script.tmpl | 3 + .../site-packages/setuptools/unicode_utils.py | 42 + .../site-packages/setuptools/version.py | 6 + .../site-packages/setuptools/wheel.py | 213 + .../setuptools/windows_support.py | 29 + .../six-1.17.0.dist-info/INSTALLER | 1 + .../six-1.17.0.dist-info/LICENSE | 18 + .../six-1.17.0.dist-info/METADATA | 43 + .../site-packages/six-1.17.0.dist-info/RECORD | 8 + .../site-packages/six-1.17.0.dist-info/WHEEL | 6 + .../six-1.17.0.dist-info/top_level.txt | 1 + venv/lib/python3.10/site-packages/six.py | 1003 ++ .../tabulate-0.9.0.dist-info/INSTALLER | 1 + .../tabulate-0.9.0.dist-info/LICENSE | 20 + .../tabulate-0.9.0.dist-info/METADATA | 1149 +++ .../tabulate-0.9.0.dist-info/RECORD | 12 + .../tabulate-0.9.0.dist-info/WHEEL | 5 + .../tabulate-0.9.0.dist-info/entry_points.txt | 2 + .../tabulate-0.9.0.dist-info/top_level.txt | 1 + .../site-packages/tabulate/__init__.py | 2716 +++++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 69582 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 274 bytes .../site-packages/tabulate/version.py | 5 + .../site-packages/tests/pmemtests/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 187 bytes .../__pycache__/conftest.cpython-310.pyc | Bin 0 -> 3476 bytes .../site-packages/tests/pmemtests/conftest.py | 66 + .../tests/pmemtests/functional/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 198 bytes .../__pycache__/conftest.cpython-310.pyc | Bin 0 -> 8167 bytes .../__pycache__/ilomock.cpython-310.pyc | Bin 0 -> 3458 bytes .../__pycache__/test_all_flag.cpython-310.pyc | Bin 0 -> 1569 bytes .../test_applydcpmmconfig.cpython-310.pyc | Bin 0 -> 4365 bytes ...st_cleardcpmmpendingconfig.cpython-310.pyc | Bin 0 -> 2356 bytes .../test_config_flag.cpython-310.pyc | Bin 0 -> 3001 bytes .../test_device_flag.cpython-310.pyc | Bin 0 -> 3378 bytes .../test_display_flag.cpython-310.pyc | Bin 0 -> 2337 bytes .../test_logical_flag.cpython-310.pyc | Bin 0 -> 1957 bytes .../test_showdcpmm.cpython-310.pyc | Bin 0 -> 4529 bytes ...est_showdcpmmpendingconfig.cpython-310.pyc | Bin 0 -> 2702 bytes .../test_summary_flag.cpython-310.pyc | Bin 0 -> 1957 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 3604 bytes .../tests/pmemtests/functional/conftest.py | 228 + .../tests/pmemtests/functional/ilomock.py | 97 + .../pmemtests/functional/test_all_flag.py | 37 + .../functional/test_applydcpmmconfig.py | 141 + .../test_cleardcpmmpendingconfig.py | 52 + .../pmemtests/functional/test_config_flag.py | 88 + .../pmemtests/functional/test_device_flag.py | 111 + .../pmemtests/functional/test_display_flag.py | 62 + .../pmemtests/functional/test_logical_flag.py | 44 + .../pmemtests/functional/test_showdcpmm.py | 133 + .../functional/test_showdcpmmpendingconfig.py | 66 + .../pmemtests/functional/test_summary_flag.py | 44 + .../tests/pmemtests/functional/utils.py | 110 + .../tests/pmemtests/integration/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 199 bytes .../__pycache__/conftest.cpython-310.pyc | Bin 0 -> 4449 bytes .../__pycache__/ilocli.cpython-310.pyc | Bin 0 -> 3233 bytes .../__pycache__/ilodebug.cpython-310.pyc | Bin 0 -> 2472 bytes .../tests/pmemtests/integration/conftest.py | 139 + .../tests/pmemtests/integration/ilocli.py | 82 + .../tests/pmemtests/integration/ilodebug.py | 61 + .../tests/pmemtests/unit/__init__.py | 0 .../unit/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 192 bytes .../unit/__pycache__/conftest.cpython-310.pyc | Bin 0 -> 649 bytes .../test_applydcpmmconfig.cpython-310.pyc | Bin 0 -> 11323 bytes ...ear_pending_config_command.cpython-310.pyc | Bin 0 -> 4594 bytes .../test_display_helpers.cpython-310.pyc | Bin 0 -> 4838 bytes .../test_mapper_renderers.cpython-310.pyc | Bin 0 -> 7063 bytes .../test_pmem_helpers.cpython-310.pyc | Bin 0 -> 4284 bytes .../test_rest_helpers.cpython-310.pyc | Bin 0 -> 8989 bytes .../test_show_pmem_commands.cpython-310.pyc | Bin 0 -> 9354 bytes .../tests/pmemtests/unit/conftest.py | 16 + .../pmemtests/unit/test_applydcpmmconfig.py | 511 + .../unit/test_clear_pending_config_command.py | 186 + .../pmemtests/unit/test_display_helpers.py | 165 + .../pmemtests/unit/test_mapper_renderers.py | 297 + .../tests/pmemtests/unit/test_pmem_helpers.py | 179 + .../tests/pmemtests/unit/test_rest_helpers.py | 409 + .../pmemtests/unit/test_show_pmem_commands.py | 332 + .../urllib3-2.6.3.dist-info/INSTALLER | 1 + .../urllib3-2.6.3.dist-info/METADATA | 164 + .../urllib3-2.6.3.dist-info/RECORD | 79 + .../urllib3-2.6.3.dist-info/WHEEL | 4 + .../licenses/LICENSE.txt | 21 + .../site-packages/urllib3/__init__.py | 211 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 6114 bytes .../_base_connection.cpython-310.pyc | Bin 0 -> 5687 bytes .../__pycache__/_collections.cpython-310.pyc | Bin 0 -> 16406 bytes .../_request_methods.cpython-310.pyc | Bin 0 -> 9096 bytes .../__pycache__/_version.cpython-310.pyc | Bin 0 -> 662 bytes .../__pycache__/connection.cpython-310.pyc | Bin 0 -> 25676 bytes .../connectionpool.cpython-310.pyc | Bin 0 -> 29219 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 13836 bytes .../__pycache__/fields.cpython-310.pyc | Bin 0 -> 9718 bytes .../__pycache__/filepost.cpython-310.pyc | Bin 0 -> 2352 bytes .../__pycache__/poolmanager.cpython-310.pyc | Bin 0 -> 18306 bytes .../__pycache__/response.cpython-310.pyc | Bin 0 -> 37056 bytes .../site-packages/urllib3/_base_connection.py | 165 + .../site-packages/urllib3/_collections.py | 487 + .../site-packages/urllib3/_request_methods.py | 278 + .../site-packages/urllib3/_version.py | 34 + .../site-packages/urllib3/connection.py | 1099 ++ .../site-packages/urllib3/connectionpool.py | 1178 +++ .../site-packages/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 187 bytes .../__pycache__/pyopenssl.cpython-310.pyc | Bin 0 -> 17867 bytes .../contrib/__pycache__/socks.cpython-310.pyc | Bin 0 -> 6148 bytes .../urllib3/contrib/emscripten/__init__.py | 17 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 761 bytes .../__pycache__/connection.cpython-310.pyc | Bin 0 -> 7680 bytes .../__pycache__/fetch.cpython-310.pyc | Bin 0 -> 18954 bytes .../__pycache__/request.cpython-310.pyc | Bin 0 -> 1242 bytes .../__pycache__/response.cpython-310.pyc | Bin 0 -> 8074 bytes .../urllib3/contrib/emscripten/connection.py | 260 + .../emscripten/emscripten_fetch_worker.js | 110 + .../urllib3/contrib/emscripten/fetch.py | 726 ++ .../urllib3/contrib/emscripten/request.py | 22 + .../urllib3/contrib/emscripten/response.py | 277 + .../urllib3/contrib/pyopenssl.py | 564 ++ .../site-packages/urllib3/contrib/socks.py | 228 + .../site-packages/urllib3/exceptions.py | 335 + .../site-packages/urllib3/fields.py | 341 + .../site-packages/urllib3/filepost.py | 89 + .../site-packages/urllib3/http2/__init__.py | 53 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1424 bytes .../__pycache__/connection.cpython-310.pyc | Bin 0 -> 10907 bytes .../http2/__pycache__/probe.cpython-310.pyc | Bin 0 -> 2558 bytes .../site-packages/urllib3/http2/connection.py | 356 + .../site-packages/urllib3/http2/probe.py | 87 + .../site-packages/urllib3/poolmanager.py | 651 ++ .../python3.10/site-packages/urllib3/py.typed | 2 + .../site-packages/urllib3/response.py | 1480 +++ .../site-packages/urllib3/util/__init__.py | 42 + .../util/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 967 bytes .../__pycache__/connection.cpython-310.pyc | Bin 0 -> 3482 bytes .../util/__pycache__/proxy.cpython-310.pyc | Bin 0 -> 1097 bytes .../util/__pycache__/request.cpython-310.pyc | Bin 0 -> 6500 bytes .../util/__pycache__/response.cpython-310.pyc | Bin 0 -> 2353 bytes .../util/__pycache__/retry.cpython-310.pyc | Bin 0 -> 16183 bytes .../util/__pycache__/ssl_.cpython-310.pyc | Bin 0 -> 12877 bytes .../ssl_match_hostname.cpython-310.pyc | Bin 0 -> 3722 bytes .../__pycache__/ssltransport.cpython-310.pyc | Bin 0 -> 9436 bytes .../util/__pycache__/timeout.cpython-310.pyc | Bin 0 -> 9618 bytes .../util/__pycache__/url.cpython-310.pyc | Bin 0 -> 11256 bytes .../util/__pycache__/util.cpython-310.pyc | Bin 0 -> 1227 bytes .../util/__pycache__/wait.cpython-310.pyc | Bin 0 -> 2406 bytes .../site-packages/urllib3/util/connection.py | 137 + .../site-packages/urllib3/util/proxy.py | 43 + .../site-packages/urllib3/util/request.py | 263 + .../site-packages/urllib3/util/response.py | 101 + .../site-packages/urllib3/util/retry.py | 549 + .../site-packages/urllib3/util/ssl_.py | 527 + .../urllib3/util/ssl_match_hostname.py | 159 + .../urllib3/util/ssltransport.py | 271 + .../site-packages/urllib3/util/timeout.py | 275 + .../site-packages/urllib3/util/url.py | 469 + .../site-packages/urllib3/util/util.py | 42 + .../site-packages/urllib3/util/wait.py | 124 + .../wcwidth-0.5.0.dist-info/INSTALLER | 1 + .../wcwidth-0.5.0.dist-info/METADATA | 750 ++ .../wcwidth-0.5.0.dist-info/RECORD | 34 + .../wcwidth-0.5.0.dist-info/WHEEL | 4 + .../wcwidth-0.5.0.dist-info/licenses/LICENSE | 27 + .../site-packages/wcwidth/__init__.py | 44 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 1025 bytes .../__pycache__/bisearch.cpython-310.pyc | Bin 0 -> 980 bytes .../__pycache__/control_codes.cpython-310.pyc | Bin 0 -> 835 bytes .../escape_sequences.cpython-310.pyc | Bin 0 -> 1362 bytes .../__pycache__/grapheme.cpython-310.pyc | Bin 0 -> 9083 bytes .../__pycache__/sgr_state.cpython-310.pyc | Bin 0 -> 10069 bytes .../table_ambiguous.cpython-310.pyc | Bin 0 -> 2512 bytes .../table_grapheme.cpython-310.pyc | Bin 0 -> 22493 bytes .../__pycache__/table_vs16.cpython-310.pyc | Bin 0 -> 1750 bytes .../__pycache__/table_wide.cpython-310.pyc | Bin 0 -> 9768 bytes .../__pycache__/table_zero.cpython-310.pyc | Bin 0 -> 27680 bytes .../__pycache__/textwrap.cpython-310.pyc | Bin 0 -> 14848 bytes .../unicode_versions.cpython-310.pyc | Bin 0 -> 819 bytes .../__pycache__/wcwidth.cpython-310.pyc | Bin 0 -> 24000 bytes .../site-packages/wcwidth/bisearch.py | 29 + .../site-packages/wcwidth/control_codes.py | 46 + .../site-packages/wcwidth/escape_sequences.py | 69 + .../site-packages/wcwidth/grapheme.py | 425 + .../python3.10/site-packages/wcwidth/py.typed | 0 .../site-packages/wcwidth/sgr_state.py | 338 + .../site-packages/wcwidth/table_ambiguous.py | 189 + .../site-packages/wcwidth/table_grapheme.py | 2126 ++++ .../site-packages/wcwidth/table_vs16.py | 126 + .../site-packages/wcwidth/table_wide.py | 1773 ++++ .../site-packages/wcwidth/table_zero.py | 5498 ++++++++++ .../site-packages/wcwidth/textwrap.py | 552 + .../site-packages/wcwidth/unicode_versions.py | 21 + .../site-packages/wcwidth/wcwidth.py | 850 ++ .../werkzeug-3.1.5.dist-info/INSTALLER | 1 + .../werkzeug-3.1.5.dist-info/METADATA | 109 + .../werkzeug-3.1.5.dist-info/RECORD | 116 + .../werkzeug-3.1.5.dist-info/WHEEL | 4 + .../licenses/LICENSE.txt | 28 + .../site-packages/werkzeug/__init__.py | 4 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 328 bytes .../__pycache__/_internal.cpython-310.pyc | Bin 0 -> 7054 bytes .../__pycache__/_reloader.cpython-310.pyc | Bin 0 -> 13023 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 28197 bytes .../__pycache__/formparser.cpython-310.pyc | Bin 0 -> 12818 bytes .../werkzeug/__pycache__/http.cpython-310.pyc | Bin 0 -> 39411 bytes .../__pycache__/local.cpython-310.pyc | Bin 0 -> 21045 bytes .../__pycache__/security.cpython-310.pyc | Bin 0 -> 6162 bytes .../__pycache__/serving.cpython-310.pyc | Bin 0 -> 30619 bytes .../werkzeug/__pycache__/test.cpython-310.pyc | Bin 0 -> 43015 bytes .../__pycache__/testapp.cpython-310.pyc | Bin 0 -> 6609 bytes .../werkzeug/__pycache__/urls.cpython-310.pyc | Bin 0 -> 5828 bytes .../__pycache__/user_agent.cpython-310.pyc | Bin 0 -> 1866 bytes .../__pycache__/utils.cpython-310.pyc | Bin 0 -> 22034 bytes .../werkzeug/__pycache__/wsgi.cpython-310.pyc | Bin 0 -> 19958 bytes .../site-packages/werkzeug/_internal.py | 211 + .../site-packages/werkzeug/_reloader.py | 465 + .../werkzeug/datastructures/__init__.py | 64 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2234 bytes .../__pycache__/accept.cpython-310.pyc | Bin 0 -> 12505 bytes .../__pycache__/auth.cpython-310.pyc | Bin 0 -> 10514 bytes .../__pycache__/cache_control.cpython-310.pyc | Bin 0 -> 10288 bytes .../__pycache__/csp.cpython-310.pyc | Bin 0 -> 4934 bytes .../__pycache__/etag.cpython-310.pyc | Bin 0 -> 4267 bytes .../__pycache__/file_storage.cpython-310.pyc | Bin 0 -> 6797 bytes .../__pycache__/headers.cpython-310.pyc | Bin 0 -> 23378 bytes .../__pycache__/mixins.cpython-310.pyc | Bin 0 -> 13232 bytes .../__pycache__/range.cpython-310.pyc | Bin 0 -> 7528 bytes .../__pycache__/structures.cpython-310.pyc | Bin 0 -> 44493 bytes .../werkzeug/datastructures/accept.py | 350 + .../werkzeug/datastructures/auth.py | 317 + .../werkzeug/datastructures/cache_control.py | 273 + .../werkzeug/datastructures/csp.py | 100 + .../werkzeug/datastructures/etag.py | 106 + .../werkzeug/datastructures/file_storage.py | 209 + .../werkzeug/datastructures/headers.py | 662 ++ .../werkzeug/datastructures/mixins.py | 317 + .../werkzeug/datastructures/range.py | 214 + .../werkzeug/datastructures/structures.py | 1239 +++ .../site-packages/werkzeug/debug/__init__.py | 574 ++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 15063 bytes .../debug/__pycache__/console.cpython-310.pyc | Bin 0 -> 8352 bytes .../debug/__pycache__/repr.cpython-310.pyc | Bin 0 -> 9047 bytes .../debug/__pycache__/tbtools.cpython-310.pyc | Bin 0 -> 11956 bytes .../site-packages/werkzeug/debug/console.py | 219 + .../site-packages/werkzeug/debug/repr.py | 282 + .../werkzeug/debug/shared/ICON_LICENSE.md | 6 + .../werkzeug/debug/shared/console.png | Bin 0 -> 507 bytes .../werkzeug/debug/shared/debugger.js | 344 + .../werkzeug/debug/shared/less.png | Bin 0 -> 191 bytes .../werkzeug/debug/shared/more.png | Bin 0 -> 200 bytes .../werkzeug/debug/shared/style.css | 150 + .../site-packages/werkzeug/debug/tbtools.py | 449 + .../site-packages/werkzeug/exceptions.py | 905 ++ .../site-packages/werkzeug/formparser.py | 430 + .../python3.10/site-packages/werkzeug/http.py | 1405 +++ .../site-packages/werkzeug/local.py | 653 ++ .../werkzeug/middleware/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 191 bytes .../__pycache__/dispatcher.cpython-310.pyc | Bin 0 -> 2840 bytes .../__pycache__/http_proxy.cpython-310.pyc | Bin 0 -> 6933 bytes .../__pycache__/lint.cpython-310.pyc | Bin 0 -> 13084 bytes .../__pycache__/profiler.cpython-310.pyc | Bin 0 -> 5632 bytes .../__pycache__/proxy_fix.cpython-310.pyc | Bin 0 -> 6033 bytes .../__pycache__/shared_data.cpython-310.pyc | Bin 0 -> 9347 bytes .../werkzeug/middleware/dispatcher.py | 81 + .../werkzeug/middleware/http_proxy.py | 236 + .../site-packages/werkzeug/middleware/lint.py | 439 + .../werkzeug/middleware/profiler.py | 155 + .../werkzeug/middleware/proxy_fix.py | 183 + .../werkzeug/middleware/shared_data.py | 283 + .../site-packages/werkzeug/py.typed | 0 .../werkzeug/routing/__init__.py | 134 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 4629 bytes .../__pycache__/converters.cpython-310.pyc | Bin 0 -> 9208 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 0 -> 5677 bytes .../routing/__pycache__/map.cpython-310.pyc | Bin 0 -> 31259 bytes .../__pycache__/matcher.cpython-310.pyc | Bin 0 -> 5153 bytes .../routing/__pycache__/rules.cpython-310.pyc | Bin 0 -> 28078 bytes .../werkzeug/routing/converters.py | 261 + .../werkzeug/routing/exceptions.py | 152 + .../site-packages/werkzeug/routing/map.py | 951 ++ .../site-packages/werkzeug/routing/matcher.py | 202 + .../site-packages/werkzeug/routing/rules.py | 928 ++ .../site-packages/werkzeug/sansio/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 187 bytes .../sansio/__pycache__/http.cpython-310.pyc | Bin 0 -> 4171 bytes .../__pycache__/multipart.cpython-310.pyc | Bin 0 -> 7647 bytes .../__pycache__/request.cpython-310.pyc | Bin 0 -> 17319 bytes .../__pycache__/response.cpython-310.pyc | Bin 0 -> 24873 bytes .../sansio/__pycache__/utils.cpython-310.pyc | Bin 0 -> 4760 bytes .../site-packages/werkzeug/sansio/http.py | 170 + .../werkzeug/sansio/multipart.py | 329 + .../site-packages/werkzeug/sansio/request.py | 534 + .../site-packages/werkzeug/sansio/response.py | 763 ++ .../site-packages/werkzeug/sansio/utils.py | 167 + .../site-packages/werkzeug/security.py | 188 + .../site-packages/werkzeug/serving.py | 1125 +++ .../python3.10/site-packages/werkzeug/test.py | 1464 +++ .../site-packages/werkzeug/testapp.py | 194 + .../python3.10/site-packages/werkzeug/urls.py | 203 + .../site-packages/werkzeug/user_agent.py | 47 + .../site-packages/werkzeug/utils.py | 684 ++ .../werkzeug/wrappers/__init__.py | 3 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 306 bytes .../__pycache__/request.cpython-310.pyc | Bin 0 -> 21786 bytes .../__pycache__/response.cpython-310.pyc | Bin 0 -> 28338 bytes .../werkzeug/wrappers/request.py | 650 ++ .../werkzeug/wrappers/response.py | 831 ++ .../python3.10/site-packages/werkzeug/wsgi.py | 595 ++ .../python3.10/site-packages/yaml/__init__.py | 390 + .../yaml/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 10713 bytes .../yaml/__pycache__/composer.cpython-310.pyc | Bin 0 -> 3619 bytes .../__pycache__/constructor.cpython-310.pyc | Bin 0 -> 20226 bytes .../yaml/__pycache__/cyaml.cpython-310.pyc | Bin 0 -> 2881 bytes .../yaml/__pycache__/dumper.cpython-310.pyc | Bin 0 -> 1522 bytes .../yaml/__pycache__/emitter.cpython-310.pyc | Bin 0 -> 25131 bytes .../yaml/__pycache__/error.cpython-310.pyc | Bin 0 -> 2405 bytes .../yaml/__pycache__/events.cpython-310.pyc | Bin 0 -> 3813 bytes .../yaml/__pycache__/loader.cpython-310.pyc | Bin 0 -> 1829 bytes .../yaml/__pycache__/nodes.cpython-310.pyc | Bin 0 -> 1709 bytes .../yaml/__pycache__/parser.cpython-310.pyc | Bin 0 -> 11696 bytes .../yaml/__pycache__/reader.cpython-310.pyc | Bin 0 -> 4602 bytes .../__pycache__/representer.cpython-310.pyc | Bin 0 -> 10057 bytes .../yaml/__pycache__/resolver.cpython-310.pyc | Bin 0 -> 5530 bytes .../yaml/__pycache__/scanner.cpython-310.pyc | Bin 0 -> 25576 bytes .../__pycache__/serializer.cpython-310.pyc | Bin 0 -> 3374 bytes .../yaml/__pycache__/tokens.cpython-310.pyc | Bin 0 -> 4599 bytes .../_yaml.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 2508080 bytes .../python3.10/site-packages/yaml/composer.py | 139 + .../site-packages/yaml/constructor.py | 748 ++ .../python3.10/site-packages/yaml/cyaml.py | 101 + .../python3.10/site-packages/yaml/dumper.py | 62 + .../python3.10/site-packages/yaml/emitter.py | 1137 +++ .../python3.10/site-packages/yaml/error.py | 75 + .../python3.10/site-packages/yaml/events.py | 86 + .../python3.10/site-packages/yaml/loader.py | 63 + .../python3.10/site-packages/yaml/nodes.py | 49 + .../python3.10/site-packages/yaml/parser.py | 589 ++ .../python3.10/site-packages/yaml/reader.py | 185 + .../site-packages/yaml/representer.py | 389 + .../python3.10/site-packages/yaml/resolver.py | 227 + .../python3.10/site-packages/yaml/scanner.py | 1435 +++ .../site-packages/yaml/serializer.py | 111 + .../python3.10/site-packages/yaml/tokens.py | 104 + venv/lib64 | 1 + venv/logging_config.json | 57 + venv/pyvenv.cfg | 3 + 3271 files changed, 550655 insertions(+) create mode 100644 .gitignore create mode 100644 backend/__pycache__/database.cpython-310.pyc create mode 100644 backend/app.py create mode 100644 backend/database.py create mode 100644 backend/requirements.txt create mode 100644 backend/servers.db create mode 100644 frontend/index.html create mode 100644 frontend/script.js create mode 100644 frontend/styles.css create mode 100644 get_info.py create mode 100644 venv/bin/Activate.ps1 create mode 100644 venv/bin/activate create mode 100644 venv/bin/activate.csh create mode 100644 venv/bin/activate.fish create mode 100755 venv/bin/flask create mode 100755 venv/bin/futurize create mode 100755 venv/bin/ilorest create mode 100755 venv/bin/jdiff create mode 100755 venv/bin/jsondiff create mode 100755 venv/bin/jsonpatch create mode 100755 venv/bin/jsonpath.py create mode 100755 venv/bin/jsonpointer create mode 100755 venv/bin/normalizer create mode 100755 venv/bin/pasteurize create mode 100755 venv/bin/pip create mode 100755 venv/bin/pip3 create mode 100755 venv/bin/pip3.10 create mode 120000 venv/bin/python create mode 120000 venv/bin/python3 create mode 120000 venv/bin/python3.10 create mode 100755 venv/bin/tabulate create mode 100644 venv/lib/python3.10/site-packages/__pycache__/decorator.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/__pycache__/jsonpatch.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/__pycache__/jsonpointer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/__pycache__/six.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/_distutils_hack/__init__.py create mode 100644 venv/lib/python3.10/site-packages/_distutils_hack/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/_distutils_hack/__pycache__/override.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/_distutils_hack/override.py create mode 100644 venv/lib/python3.10/site-packages/_yaml/__init__.py create mode 100644 venv/lib/python3.10/site-packages/_yaml/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/REQUESTED create mode 100644 venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/licenses/LICENSE create mode 100644 venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/bcrypt/__init__.py create mode 100644 venv/lib/python3.10/site-packages/bcrypt/__init__.pyi create mode 100644 venv/lib/python3.10/site-packages/bcrypt/__pycache__/__init__.cpython-310.pyc create mode 100755 venv/lib/python3.10/site-packages/bcrypt/_bcrypt.abi3.so create mode 100644 venv/lib/python3.10/site-packages/bcrypt/py.typed create mode 100644 venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/blinker/__init__.py create mode 100644 venv/lib/python3.10/site-packages/blinker/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/blinker/__pycache__/_utilities.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/blinker/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/blinker/_utilities.py create mode 100644 venv/lib/python3.10/site-packages/blinker/base.py create mode 100644 venv/lib/python3.10/site-packages/blinker/py.typed create mode 100644 venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/licenses/LICENSE create mode 100644 venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/certifi/__init__.py create mode 100644 venv/lib/python3.10/site-packages/certifi/__main__.py create mode 100644 venv/lib/python3.10/site-packages/certifi/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/certifi/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/certifi/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/certifi/cacert.pem create mode 100644 venv/lib/python3.10/site-packages/certifi/core.py create mode 100644 venv/lib/python3.10/site-packages/certifi/py.typed create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/__init__.py create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/__main__.py create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/api.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/cd.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/constant.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/legacy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/md.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/models.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/api.py create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/cd.py create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/cli/__init__.py create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/cli/__main__.py create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/constant.py create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/legacy.py create mode 100755 venv/lib/python3.10/site-packages/charset_normalizer/md.cpython-310-x86_64-linux-gnu.so create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/md.py create mode 100755 venv/lib/python3.10/site-packages/charset_normalizer/md__mypyc.cpython-310-x86_64-linux-gnu.so create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/models.py create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/py.typed create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/utils.py create mode 100644 venv/lib/python3.10/site-packages/charset_normalizer/version.py create mode 100644 venv/lib/python3.10/site-packages/click-8.3.1.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/click-8.3.1.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/click-8.3.1.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/click-8.3.1.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/click-8.3.1.dist-info/licenses/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/click/__init__.py create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/_compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/_termui_impl.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/_textwrap.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/_winconsole.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/decorators.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/formatting.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/globals.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/shell_completion.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/termui.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/testing.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/types.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/click/_compat.py create mode 100644 venv/lib/python3.10/site-packages/click/_termui_impl.py create mode 100644 venv/lib/python3.10/site-packages/click/_textwrap.py create mode 100644 venv/lib/python3.10/site-packages/click/_utils.py create mode 100644 venv/lib/python3.10/site-packages/click/_winconsole.py create mode 100644 venv/lib/python3.10/site-packages/click/core.py create mode 100644 venv/lib/python3.10/site-packages/click/decorators.py create mode 100644 venv/lib/python3.10/site-packages/click/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/click/formatting.py create mode 100644 venv/lib/python3.10/site-packages/click/globals.py create mode 100644 venv/lib/python3.10/site-packages/click/parser.py create mode 100644 venv/lib/python3.10/site-packages/click/py.typed create mode 100644 venv/lib/python3.10/site-packages/click/shell_completion.py create mode 100644 venv/lib/python3.10/site-packages/click/termui.py create mode 100644 venv/lib/python3.10/site-packages/click/testing.py create mode 100644 venv/lib/python3.10/site-packages/click/types.py create mode 100644 venv/lib/python3.10/site-packages/click/utils.py create mode 100644 venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/colorama/__init__.py create mode 100644 venv/lib/python3.10/site-packages/colorama/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/__pycache__/ansi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/__pycache__/ansitowin32.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/__pycache__/initialise.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/__pycache__/win32.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/__pycache__/winterm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/ansi.py create mode 100644 venv/lib/python3.10/site-packages/colorama/ansitowin32.py create mode 100644 venv/lib/python3.10/site-packages/colorama/initialise.py create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/__init__.py create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/__pycache__/ansi_test.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/__pycache__/ansitowin32_test.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/__pycache__/initialise_test.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/__pycache__/isatty_test.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/__pycache__/winterm_test.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/ansi_test.py create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/ansitowin32_test.py create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/initialise_test.py create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/isatty_test.py create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/utils.py create mode 100644 venv/lib/python3.10/site-packages/colorama/tests/winterm_test.py create mode 100644 venv/lib/python3.10/site-packages/colorama/win32.py create mode 100644 venv/lib/python3.10/site-packages/colorama/winterm.py create mode 100644 venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/pbr.json create mode 100644 venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/decorator.py create mode 100644 venv/lib/python3.10/site-packages/distutils-precedence.pth create mode 100644 venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/REQUESTED create mode 100644 venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/licenses/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/flask/__init__.py create mode 100644 venv/lib/python3.10/site-packages/flask/__main__.py create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/app.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/blueprints.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/cli.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/config.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/ctx.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/debughelpers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/globals.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/helpers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/logging.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/sessions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/signals.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/templating.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/testing.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/typing.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/views.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/__pycache__/wrappers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/app.py create mode 100644 venv/lib/python3.10/site-packages/flask/blueprints.py create mode 100644 venv/lib/python3.10/site-packages/flask/cli.py create mode 100644 venv/lib/python3.10/site-packages/flask/config.py create mode 100644 venv/lib/python3.10/site-packages/flask/ctx.py create mode 100644 venv/lib/python3.10/site-packages/flask/debughelpers.py create mode 100644 venv/lib/python3.10/site-packages/flask/globals.py create mode 100644 venv/lib/python3.10/site-packages/flask/helpers.py create mode 100644 venv/lib/python3.10/site-packages/flask/json/__init__.py create mode 100644 venv/lib/python3.10/site-packages/flask/json/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/json/__pycache__/provider.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/json/__pycache__/tag.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/json/provider.py create mode 100644 venv/lib/python3.10/site-packages/flask/json/tag.py create mode 100644 venv/lib/python3.10/site-packages/flask/logging.py create mode 100644 venv/lib/python3.10/site-packages/flask/py.typed create mode 100644 venv/lib/python3.10/site-packages/flask/sansio/README.md create mode 100644 venv/lib/python3.10/site-packages/flask/sansio/__pycache__/app.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/sansio/__pycache__/blueprints.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/sansio/__pycache__/scaffold.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask/sansio/app.py create mode 100644 venv/lib/python3.10/site-packages/flask/sansio/blueprints.py create mode 100644 venv/lib/python3.10/site-packages/flask/sansio/scaffold.py create mode 100644 venv/lib/python3.10/site-packages/flask/sessions.py create mode 100644 venv/lib/python3.10/site-packages/flask/signals.py create mode 100644 venv/lib/python3.10/site-packages/flask/templating.py create mode 100644 venv/lib/python3.10/site-packages/flask/testing.py create mode 100644 venv/lib/python3.10/site-packages/flask/typing.py create mode 100644 venv/lib/python3.10/site-packages/flask/views.py create mode 100644 venv/lib/python3.10/site-packages/flask/wrappers.py create mode 100644 venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/REQUESTED create mode 100644 venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/flask_cors/__init__.py create mode 100644 venv/lib/python3.10/site-packages/flask_cors/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask_cors/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask_cors/__pycache__/decorator.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask_cors/__pycache__/extension.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask_cors/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/flask_cors/core.py create mode 100644 venv/lib/python3.10/site-packages/flask_cors/decorator.py create mode 100644 venv/lib/python3.10/site-packages/flask_cors/extension.py create mode 100644 venv/lib/python3.10/site-packages/flask_cors/version.py create mode 100644 venv/lib/python3.10/site-packages/future-1.0.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/future-1.0.0.dist-info/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/future-1.0.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/future-1.0.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/future-1.0.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/future-1.0.0.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/future-1.0.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/future/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/__pycache__/_markupbase.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/__pycache__/datetime.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/__pycache__/misc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/__pycache__/socket.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/__pycache__/socketserver.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/__pycache__/total_ordering.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/_markupbase.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/datetime.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/_encoded_words.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/_header_value_parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/_parseaddr.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/_policybase.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/base64mime.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/charset.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/encoders.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/errors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/feedparser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/generator.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/header.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/headerregistry.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/iterators.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/message.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/policy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/quoprimime.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/_encoded_words.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/_header_value_parser.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/_parseaddr.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/_policybase.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/base64mime.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/charset.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/encoders.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/errors.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/feedparser.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/generator.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/header.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/headerregistry.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/iterators.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/message.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/application.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/audio.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/image.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/message.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/multipart.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/nonmultipart.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/text.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/application.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/audio.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/base.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/image.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/message.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/multipart.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/nonmultipart.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/mime/text.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/parser.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/policy.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/quoprimime.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/email/utils.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/html/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/html/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/html/__pycache__/entities.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/html/__pycache__/parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/html/entities.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/html/parser.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/http/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/http/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/http/__pycache__/client.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/http/__pycache__/cookiejar.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/http/__pycache__/cookies.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/http/__pycache__/server.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/http/client.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/http/cookiejar.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/http/cookies.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/http/server.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/misc.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/socket.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/socketserver.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/__pycache__/pystone.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/__pycache__/ssl_servers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/__pycache__/support.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/badcert.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/badkey.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/dh512.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/https_svn_python_org_root.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/keycert.passwd.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/keycert.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/keycert2.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/nokia.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/nullbytecert.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/nullcert.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/pystone.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/sha256.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/ssl_cert.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/ssl_key.passwd.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/ssl_key.pem create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/ssl_servers.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/test/support.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/total_ordering.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/urllib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/urllib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/urllib/__pycache__/error.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/urllib/__pycache__/parse.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/urllib/__pycache__/request.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/urllib/__pycache__/response.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/urllib/__pycache__/robotparser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/urllib/error.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/urllib/parse.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/urllib/request.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/urllib/response.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/urllib/robotparser.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/xmlrpc/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/xmlrpc/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/xmlrpc/__pycache__/client.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/xmlrpc/__pycache__/server.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/backports/xmlrpc/client.py create mode 100644 venv/lib/python3.10/site-packages/future/backports/xmlrpc/server.py create mode 100644 venv/lib/python3.10/site-packages/future/builtins/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/builtins/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/builtins/__pycache__/disabled.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/builtins/__pycache__/iterators.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/builtins/__pycache__/misc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/builtins/__pycache__/new_min_max.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/builtins/__pycache__/newnext.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/builtins/__pycache__/newround.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/builtins/__pycache__/newsuper.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/builtins/disabled.py create mode 100644 venv/lib/python3.10/site-packages/future/builtins/iterators.py create mode 100644 venv/lib/python3.10/site-packages/future/builtins/misc.py create mode 100644 venv/lib/python3.10/site-packages/future/builtins/new_min_max.py create mode 100644 venv/lib/python3.10/site-packages/future/builtins/newnext.py create mode 100644 venv/lib/python3.10/site-packages/future/builtins/newround.py create mode 100644 venv/lib/python3.10/site-packages/future/builtins/newsuper.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/_dummy_thread.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/_markupbase.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/_thread.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/builtins.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/collections.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/configparser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/copyreg.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/itertools.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/multiprocessing.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/pickle.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/queue.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/reprlib.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/socketserver.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/subprocess.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/sys.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/__pycache__/winreg.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/_dummy_thread.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/_markupbase.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/_thread.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/builtins.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/collections.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/configparser.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/copyreg.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/dbm/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/dbm/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/dbm/__pycache__/dumb.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/dbm/__pycache__/gnu.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/dbm/__pycache__/ndbm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/dbm/dumb.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/dbm/gnu.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/dbm/ndbm.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/html/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/html/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/html/__pycache__/entities.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/html/__pycache__/parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/html/entities.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/html/parser.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/http/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/http/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/http/__pycache__/client.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/http/__pycache__/cookiejar.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/http/__pycache__/cookies.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/http/__pycache__/server.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/http/client.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/http/cookiejar.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/http/cookies.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/http/server.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/itertools.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/multiprocessing.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/pickle.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/queue.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/reprlib.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/socketserver.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/subprocess.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/sys.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/test/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/test/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/test/__pycache__/support.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/test/support.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/colorchooser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/commondialog.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/constants.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/dialog.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/dnd.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/filedialog.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/font.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/messagebox.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/scrolledtext.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/simpledialog.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/tix.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/ttk.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/colorchooser.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/commondialog.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/constants.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/dialog.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/dnd.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/filedialog.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/font.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/messagebox.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/scrolledtext.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/simpledialog.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/tix.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/tkinter/ttk.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/urllib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/error.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/parse.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/request.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/response.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/robotparser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/urllib/error.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/urllib/parse.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/urllib/request.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/urllib/response.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/urllib/robotparser.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/winreg.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/xmlrpc/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/xmlrpc/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/xmlrpc/__pycache__/client.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/xmlrpc/__pycache__/server.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/moves/xmlrpc/client.py create mode 100644 venv/lib/python3.10/site-packages/future/moves/xmlrpc/server.py create mode 100644 venv/lib/python3.10/site-packages/future/standard_library/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/standard_library/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/tests/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/tests/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/tests/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/tests/base.py create mode 100644 venv/lib/python3.10/site-packages/future/types/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/types/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/types/__pycache__/newbytes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/types/__pycache__/newdict.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/types/__pycache__/newint.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/types/__pycache__/newlist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/types/__pycache__/newmemoryview.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/types/__pycache__/newobject.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/types/__pycache__/newopen.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/types/__pycache__/newrange.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/types/__pycache__/newstr.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/types/newbytes.py create mode 100644 venv/lib/python3.10/site-packages/future/types/newdict.py create mode 100644 venv/lib/python3.10/site-packages/future/types/newint.py create mode 100644 venv/lib/python3.10/site-packages/future/types/newlist.py create mode 100644 venv/lib/python3.10/site-packages/future/types/newmemoryview.py create mode 100644 venv/lib/python3.10/site-packages/future/types/newobject.py create mode 100644 venv/lib/python3.10/site-packages/future/types/newopen.py create mode 100644 venv/lib/python3.10/site-packages/future/types/newrange.py create mode 100644 venv/lib/python3.10/site-packages/future/types/newstr.py create mode 100644 venv/lib/python3.10/site-packages/future/utils/__init__.py create mode 100644 venv/lib/python3.10/site-packages/future/utils/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/utils/__pycache__/surrogateescape.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/future/utils/surrogateescape.py create mode 100644 venv/lib/python3.10/site-packages/idna-3.11.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/idna-3.11.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/idna-3.11.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/idna-3.11.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/idna-3.11.dist-info/licenses/LICENSE.md create mode 100644 venv/lib/python3.10/site-packages/idna/__init__.py create mode 100644 venv/lib/python3.10/site-packages/idna/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/idna/__pycache__/codec.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/idna/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/idna/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/idna/__pycache__/idnadata.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/idna/__pycache__/intranges.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/idna/__pycache__/package_data.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/idna/__pycache__/uts46data.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/idna/codec.py create mode 100644 venv/lib/python3.10/site-packages/idna/compat.py create mode 100644 venv/lib/python3.10/site-packages/idna/core.py create mode 100644 venv/lib/python3.10/site-packages/idna/idnadata.py create mode 100644 venv/lib/python3.10/site-packages/idna/intranges.py create mode 100644 venv/lib/python3.10/site-packages/idna/package_data.py create mode 100644 venv/lib/python3.10/site-packages/idna/py.typed create mode 100644 venv/lib/python3.10/site-packages/idna/uts46data.py create mode 100644 venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/REQUESTED create mode 100644 venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/ilorest/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/__pycache__/cliutils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/__pycache__/debug_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/__pycache__/logging_config_path.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/__pycache__/rdmc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/__pycache__/rdmc_base_classes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/__pycache__/rdmc_helper.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/__pycache__/security_masking.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/__pycache__/versioning.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/chiflibrary/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/chiflibrary/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/chiflibrary/arm/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/chiflibrary/arm/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/chiflibrary/arm/ilorest_chif.so create mode 100644 venv/lib/python3.10/site-packages/ilorest/chiflibrary/ilorest_chif.dll create mode 100644 venv/lib/python3.10/site-packages/ilorest/chiflibrary/ilorest_chif.so create mode 100644 venv/lib/python3.10/site-packages/ilorest/cliutils.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/config/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/config/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/config/__pycache__/config.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/config/__pycache__/rdmc_config.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/config/config.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/config/rdmc_config.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/debug_utils.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/BiosDefaultsCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/BootOrderCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/IscsiConfigCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/SetPasswordCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__pycache__/BiosDefaultsCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__pycache__/BootOrderCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__pycache__/IscsiConfigCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__pycache__/SetPasswordCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/CommitCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/DetectiLOCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/GetCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/InfoCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/ListCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/LoadCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/LoginCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/LogoutCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/PendingChangesCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/ExitCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/HelpCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/__pycache__/ExitCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/__pycache__/HelpCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/ResultsCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/SaveCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/SelectCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/SetCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/StatusCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/TypesCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/CommitCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/DetectiLOCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/GetCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/InfoCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/ListCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/LoadCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/LoginCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/LogoutCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/PendingChangesCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/ResultsCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/SaveCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/SelectCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/SetCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/StatusCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/TypesCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/AdvancedPmmConfigCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ApplyPmemConfigCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ClearPendingConfigCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/DisplaySecurityStateCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowPmemCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowPmemPendingConfigCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowRecommendedConfigCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/AdvancedPmmConfigCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ApplyPmemConfigCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ClearPendingConfigCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/DisplaySecurityStateCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ShowPmemCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ShowPmemPendingConfigCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ShowRecommendedConfigCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/DisplayHelpers.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/Mapper.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/MapperRenderers.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/PmemHelpers.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/RestHelpers.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/DisplayHelpers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/Mapper.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/MapperRenderers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/PmemHelpers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/RestHelpers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawDeleteCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawGetCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawHeadCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawPatchCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawPostCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawPutCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawDeleteCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawGetCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawHeadCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawPatchCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawPostCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawPutCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/ClearControllerConfigCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/CreateVolumeCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/DeleteVolumeCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/DriveSanitizeCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/FactoryResetControllerCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/StorageControllerCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/ClearControllerConfigCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/CreateVolumeCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/DeleteVolumeCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/DriveSanitizeCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/FactoryResetControllerCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/StorageControllerCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_NIC_COMMANDS/SmartNicCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_NIC_COMMANDS/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_NIC_COMMANDS/__pycache__/SmartNicCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/SMART_NIC_COMMANDS/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/AHSdiagCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/AutomaticTestingCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/ExportAllConfigCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/GetInventoryCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/HpGooeyCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/ISToolCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/MonolithCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/SMBiosCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/SecurityStatusCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/AHSdiagCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/AutomaticTestingCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/ExportAllConfigCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/GetInventoryCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/HpGooeyCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/ISToolCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/MonolithCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/SMBiosCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/SecurityStatusCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/AppAccountCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/CertificateCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ChannelInterfaceCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ClearRestApiStateCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ComputeOpsManagementCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/DirectoryCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/DisableIloFunctionalityCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ESKMCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/EthernetCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/FactoryDefaultsCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/FirmwareIntegrityCheckCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/FirmwareUpdateCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IPProfilesCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloAccountsCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloBackupRestoreCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloFederationCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloLicenseCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloResetCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/LogconfigCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/OneButtonEraseCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/RebootCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SendTestCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerCloneCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerConfigurationLockCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerInfoCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerStateCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerlogsCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SetTwoFactorAuthenticationCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SigRecomputeCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SingleSignOnCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/VirtualMediaCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/AppAccountCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/CertificateCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ChannelInterfaceCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ClearRestApiStateCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ComputeOpsManagementCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/DirectoryCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/DisableIloFunctionalityCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ESKMCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/EthernetCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/FactoryDefaultsCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/FirmwareIntegrityCheckCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/FirmwareUpdateCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/IPProfilesCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/IloAccountsCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/IloBackupRestoreCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/IloFederationCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/IloLicenseCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/IloResetCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/LogconfigCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/OneButtonEraseCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/RebootCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/SendTestCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerCloneCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerConfigurationLockCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerInfoCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerStateCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerlogsCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/SetTwoFactorAuthenticationCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/SigRecomputeCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/SingleSignOnCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/VirtualMediaCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/config_resolver.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/ilo_connector.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/network_configurator.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/progress_tracker.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/config_resolver.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/ilo_connector.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/network_configurator.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/progress_tracker.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/data/InputTemplate.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/data/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/data/__pycache__/InputTemplate.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/data/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/DeleteComponentCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/DownloadComponentCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/FwpkgCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/InstallSetCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/ListComponentCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/MaintenanceWindowCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/MakeInstallSetCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/UpdateTaskQueueCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/UploadComponentCommand.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/DeleteComponentCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/DownloadComponentCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/FwpkgCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/InstallSetCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/ListComponentCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/MaintenanceWindowCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/MakeInstallSetCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/UpdateTaskQueueCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/UploadComponentCommand.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ilorest/logging_config_path.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/rdmc.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/rdmc_base_classes.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/rdmc_helper.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/security_masking.py create mode 100644 venv/lib/python3.10/site-packages/ilorest/versioning.py create mode 100644 venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/__init__.py create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/__pycache__/_json.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/__pycache__/encoding.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/__pycache__/exc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/__pycache__/serializer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/__pycache__/signer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/__pycache__/timed.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/__pycache__/url_safe.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/_json.py create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/encoding.py create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/exc.py create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/py.typed create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/serializer.py create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/signer.py create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/timed.py create mode 100644 venv/lib/python3.10/site-packages/itsdangerous/url_safe.py create mode 100644 venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/licenses/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/jinja2/__init__.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/_identifier.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/async_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/bccache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/compiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/constants.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/debug.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/defaults.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/environment.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/ext.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/filters.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/idtracking.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/lexer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/loaders.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/meta.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/nativetypes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/nodes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/optimizer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/runtime.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/sandbox.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/tests.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/__pycache__/visitor.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jinja2/_identifier.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/async_utils.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/bccache.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/compiler.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/constants.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/debug.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/defaults.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/environment.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/ext.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/filters.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/idtracking.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/lexer.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/loaders.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/meta.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/nativetypes.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/nodes.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/optimizer.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/parser.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/py.typed create mode 100644 venv/lib/python3.10/site-packages/jinja2/runtime.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/sandbox.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/tests.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/utils.py create mode 100644 venv/lib/python3.10/site-packages/jinja2/visitor.py create mode 100644 venv/lib/python3.10/site-packages/jsondiff-2.2.1.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/jsondiff-2.2.1.dist-info/LICENSE create mode 100644 venv/lib/python3.10/site-packages/jsondiff-2.2.1.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/jsondiff-2.2.1.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/jsondiff-2.2.1.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/jsondiff-2.2.1.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/jsondiff-2.2.1.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/jsondiff/__init__.py create mode 100644 venv/lib/python3.10/site-packages/jsondiff/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jsondiff/__pycache__/_version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jsondiff/__pycache__/cli.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jsondiff/__pycache__/symbols.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jsondiff/_version.py create mode 100644 venv/lib/python3.10/site-packages/jsondiff/cli.py create mode 100644 venv/lib/python3.10/site-packages/jsondiff/symbols.py create mode 100644 venv/lib/python3.10/site-packages/jsonpatch-1.33.dist-info/AUTHORS create mode 100644 venv/lib/python3.10/site-packages/jsonpatch-1.33.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/jsonpatch-1.33.dist-info/LICENSE create mode 100644 venv/lib/python3.10/site-packages/jsonpatch-1.33.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/jsonpatch-1.33.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/jsonpatch-1.33.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/jsonpatch-1.33.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/jsonpatch.py create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw-1.4.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw-1.4.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw-1.4.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw-1.4.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw-1.4.0.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw-1.4.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw/__init__.py create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw/__pycache__/jsonpath.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw/__pycache__/lexer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw/__pycache__/parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw/bin/__init__.py create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw/bin/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw/bin/__pycache__/jsonpath.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw/bin/jsonpath.py create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw/jsonpath.py create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw/lexer.py create mode 100644 venv/lib/python3.10/site-packages/jsonpath_rw/parser.py create mode 100644 venv/lib/python3.10/site-packages/jsonpointer-3.0.0.dist-info/AUTHORS create mode 100644 venv/lib/python3.10/site-packages/jsonpointer-3.0.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/jsonpointer-3.0.0.dist-info/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/jsonpointer-3.0.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/jsonpointer-3.0.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/jsonpointer-3.0.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/jsonpointer-3.0.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/jsonpointer.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/__init__.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/__pycache__/fixer_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/__pycache__/main.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixer_util.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__init__.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_UserDict.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_absolute_import.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_add__future__imports_except_unicode_literals.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_basestring.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_bytes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_cmp.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_division.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_division_safe.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_execfile.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_future_builtins.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_future_standard_library.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_future_standard_library_urllib.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_input.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_metaclass.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_next_call.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_object.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_oldstr_wrap.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_order___future__imports.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_print.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_print_with_import.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_raise.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_remove_old__future__imports.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_unicode_keep_u.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_unicode_literals_import.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/__pycache__/fix_xrange_with_import.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_UserDict.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_absolute_import.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_add__future__imports_except_unicode_literals.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_basestring.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_bytes.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_cmp.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_division.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_division_safe.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_execfile.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_future_builtins.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_future_standard_library.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_future_standard_library_urllib.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_input.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_metaclass.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_next_call.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_object.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_oldstr_wrap.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_order___future__imports.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_print.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_print_with_import.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_raise.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_remove_old__future__imports.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_unicode_keep_u.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_unicode_literals_import.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/fixes/fix_xrange_with_import.py create mode 100644 venv/lib/python3.10/site-packages/libfuturize/main.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/__init__.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/__pycache__/main.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__init__.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/feature_base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_add_all__future__imports.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_add_all_future_builtins.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_add_future_standard_library_import.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_annotations.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_division.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_features.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_fullargspec.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_future_builtins.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_getcwd.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_imports.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_imports2.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_kwargs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_memoryview.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_metaclass.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_newstyle.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_next.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_printfunction.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_raise.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_raise_.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_throw.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/__pycache__/fix_unpacking.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/feature_base.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_add_all__future__imports.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_add_all_future_builtins.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_add_future_standard_library_import.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_annotations.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_division.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_features.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_fullargspec.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_future_builtins.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_getcwd.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_imports.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_imports2.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_kwargs.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_memoryview.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_metaclass.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_newstyle.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_next.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_printfunction.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_raise.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_raise_.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_throw.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_unpacking.py create mode 100644 venv/lib/python3.10/site-packages/libpasteurize/main.py create mode 100644 venv/lib/python3.10/site-packages/markupsafe-3.0.3.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/markupsafe-3.0.3.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/markupsafe-3.0.3.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/markupsafe-3.0.3.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/markupsafe-3.0.3.dist-info/licenses/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/markupsafe-3.0.3.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/markupsafe/__init__.py create mode 100644 venv/lib/python3.10/site-packages/markupsafe/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/markupsafe/__pycache__/_native.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/markupsafe/_native.py create mode 100644 venv/lib/python3.10/site-packages/markupsafe/_speedups.c create mode 100755 venv/lib/python3.10/site-packages/markupsafe/_speedups.cpython-310-x86_64-linux-gnu.so create mode 100644 venv/lib/python3.10/site-packages/markupsafe/_speedups.pyi create mode 100644 venv/lib/python3.10/site-packages/markupsafe/py.typed create mode 100644 venv/lib/python3.10/site-packages/past/__init__.py create mode 100644 venv/lib/python3.10/site-packages/past/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/past/builtins/__init__.py create mode 100644 venv/lib/python3.10/site-packages/past/builtins/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/past/builtins/__pycache__/misc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/past/builtins/__pycache__/noniterators.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/past/builtins/misc.py create mode 100644 venv/lib/python3.10/site-packages/past/builtins/noniterators.py create mode 100644 venv/lib/python3.10/site-packages/past/translation/__init__.py create mode 100644 venv/lib/python3.10/site-packages/past/translation/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/past/types/__init__.py create mode 100644 venv/lib/python3.10/site-packages/past/types/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/past/types/__pycache__/basestring.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/past/types/__pycache__/olddict.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/past/types/__pycache__/oldstr.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/past/types/basestring.py create mode 100644 venv/lib/python3.10/site-packages/past/types/olddict.py create mode 100644 venv/lib/python3.10/site-packages/past/types/oldstr.py create mode 100644 venv/lib/python3.10/site-packages/past/utils/__init__.py create mode 100644 venv/lib/python3.10/site-packages/past/utils/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/REQUESTED create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/pip-22.0.2.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/pip/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/__main__.py create mode 100644 venv/lib/python3.10/site-packages/pip/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/build_env.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/configuration.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/main.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/pyproject.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/build_env.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/main.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/autocompletion.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/base_command.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/cmdoptions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/command_context.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/main.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/main_parser.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/parser.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/progress_bars.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/req_command.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/spinners.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/cli/status_codes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/check.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/completion.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/debug.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/download.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/hash.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/help.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/index.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/install.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/list.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/search.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/show.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/check.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/completion.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/configuration.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/debug.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/download.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/freeze.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/hash.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/help.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/index.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/install.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/list.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/search.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/show.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/uninstall.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/commands/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/configuration.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/installed.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/sdist.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/distributions/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/__pycache__/collector.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/__pycache__/sources.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/collector.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/package_finder.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/index/sources.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/_distutils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/_sysconfig.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/locations/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/main.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/metadata/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/metadata/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/metadata/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/metadata/pkg_resources.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/candidate.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/format_control.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/index.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/link.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/scheme.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/target_python.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/candidate.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/direct_url.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/format_control.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/index.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/link.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/scheme.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/search_scope.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/selection_prefs.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/target_python.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/models/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/auth.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/download.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/session.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/auth.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/download.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/lazy_wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/session.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/utils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/network/xmlrpc.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/__pycache__/check.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/wheel_editable.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/metadata.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/metadata_editable.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/metadata_legacy.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/wheel_editable.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/build/wheel_legacy.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/check.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/freeze.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/__pycache__/legacy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/editable_legacy.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/legacy.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/install/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/operations/prepare.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/pyproject.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/constructors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/req_file.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/req_install.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/req_set.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/req_tracker.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/constructors.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/req_file.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/req_install.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/req_set.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/req_tracker.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/req/req_uninstall.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/legacy/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/legacy/resolver.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/factory.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/provider.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/reporter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/requirements.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/resolver.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/self_outdated_check.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/_log.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/distutils_args.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/logging.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/misc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/models.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/urls.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/_log.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/appdirs.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/compatibility_tags.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/datetime.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/deprecation.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/direct_url_helpers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/distutils_args.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/egg_link.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/encoding.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/entrypoints.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/filesystem.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/filetypes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/glibc.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/hashes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/inject_securetransport.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/logging.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/misc.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/models.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/packaging.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/setuptools_build.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/subprocess.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/temp_dir.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/unpacking.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/urls.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/virtualenv.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/utils/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__pycache__/git.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/bazaar.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/git.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/mercurial.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/subversion.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/vcs/versioncontrol.py create mode 100644 venv/lib/python3.10/site-packages/pip/_internal/wheel_builder.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/__pycache__/distro.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/__pycache__/six.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/_cmd.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/adapter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/caches/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/controller.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/filewrapper.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/heuristics.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/serialize.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/wrapper.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/__main__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/cacert.pem create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/certifi/core.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/big5freq.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/big5prober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/chardistribution.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/charsetgroupprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/charsetprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/cli/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/cli/chardetect.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/codingstatemachine.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/cp949prober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/enums.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/escprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/escsm.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/eucjpprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/euckrfreq.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/euckrprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/euctwfreq.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/euctwprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/gb2312freq.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/gb2312prober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/hebrewprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/jisfreq.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/jpcntx.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langbulgarianmodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langgreekmodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langhebrewmodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langhungarianmodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langrussianmodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langthaimodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/langturkishmodel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/latin1prober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/mbcharsetprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/mbcsgroupprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/mbcssm.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/metadata/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/metadata/languages.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/sbcharsetprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/sbcsgroupprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/sjisprober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/universaldetector.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/utf8prober.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/chardet/version.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/ansi.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/ansitowin32.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/initialise.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/win32.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/colorama/winterm.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/database.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/index.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/locators.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/manifest.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/markers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/metadata.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/resources.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/scripts.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/util.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/version.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distlib/wheel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/distro.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/constants.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_ihatexml.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_inputstream.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_tokenizer.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/_base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_trie/py.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/_utils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/constants.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/lint.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/lint.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/optionaltags.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/sanitizer.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/filters/whitespace.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/html5parser.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/serializer.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/genshi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/sax.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treeadapters/sax.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree_lxml.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/dom.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/etree.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/dom.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree_lxml.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/genshi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/base.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/dom.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/etree.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/etree_lxml.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/codec.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/core.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/idnadata.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/intranges.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/package_data.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/idna/uts46data.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/__pycache__/_version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/_version.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/ext.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/msgpack/fallback.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__about__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/_manylinux.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/_musllinux.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/_structures.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/markers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/requirements.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/specifiers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/tags.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/utils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/packaging/version.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/build.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/check.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/colorlog.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/dirtools.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/envbuild.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/meta.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/__pycache__/wrappers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/build.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/check.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/colorlog.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/dirtools.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/envbuild.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/__pycache__/_in_process.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/meta.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pep517/wrappers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pkg_resources/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pkg_resources/py31compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__main__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/android.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/api.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/macos.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/unix.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/version.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/platformdirs/windows.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/__pycache__/bar.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/__pycache__/colors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/__pycache__/counter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/__pycache__/spinner.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/bar.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/colors.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/counter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/progress/spinner.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__main__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/cmdline.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/lexer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/cmdline.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/console.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/filter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/filters/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/filters/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/groff.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/img.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/irc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/latex.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/other.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/pangomarkup.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/svg.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/_mapping.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/bbcode.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/groff.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/html.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/img.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/irc.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/latex.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/other.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/rtf.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/svg.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/terminal.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/formatters/terminal256.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexer.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexers/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexers/_mapping.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/lexers/python.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/modeline.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/plugin.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/regexopt.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/scanner.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/sphinxext.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/style.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/styles/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/styles/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/token.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/unistring.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pygments/util.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/actions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/common.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/helpers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/results.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/testing.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/unicode.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/__pycache__/util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/actions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/common.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/core.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/diagram/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/diagram/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/helpers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/results.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/testing.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/unicode.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/pyparsing/util.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/api.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/help.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/models.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/__version__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/_internal_utils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/adapters.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/api.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/auth.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/certs.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/compat.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/cookies.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/help.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/hooks.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/models.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/packages.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/sessions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/status_codes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/structures.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/requests/utils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/compat/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/providers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/reporters.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/structs.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__main__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/__main__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_cell_widths.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_emoji_replace.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_extension.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_inspect.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_log_render.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_loop.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_lru_cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_palettes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_pick.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_ratio.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_spinners.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_stack.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_timer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_windows.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/_wrap.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/abc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/align.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/ansi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/bar.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/box.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/color.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/color_triplet.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/columns.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/console.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/constrain.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/containers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/control.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/default_styles.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/diagnose.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/emoji.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/errors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/file_proxy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/filesize.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/highlighter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/json.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/jupyter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/layout.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/live.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/live_render.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/logging.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/markup.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/measure.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/padding.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/pager.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/palette.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/panel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/pretty.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/progress.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/progress_bar.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/prompt.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/protocol.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/region.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/repr.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/rule.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/scope.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/screen.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/segment.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/spinner.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/status.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/style.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/styled.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/syntax.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/table.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/tabulate.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/terminal_theme.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/text.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/theme.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/themes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/traceback.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/__pycache__/tree.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_cell_widths.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_emoji_codes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_emoji_replace.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_extension.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_inspect.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_log_render.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_loop.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_lru_cache.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_palettes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_pick.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_ratio.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_spinners.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_stack.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_timer.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_windows.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/_wrap.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/abc.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/align.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/ansi.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/bar.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/box.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/cells.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/color.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/color_triplet.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/columns.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/console.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/constrain.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/containers.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/control.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/default_styles.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/diagnose.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/emoji.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/errors.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/file_proxy.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/filesize.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/highlighter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/json.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/jupyter.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/layout.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/live.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/live_render.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/logging.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/markup.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/measure.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/padding.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/pager.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/palette.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/panel.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/pretty.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/progress.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/progress_bar.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/prompt.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/protocol.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/region.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/repr.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/rule.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/scope.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/screen.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/segment.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/spinner.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/status.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/style.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/styled.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/syntax.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/table.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/tabulate.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/terminal_theme.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/text.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/theme.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/themes.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/traceback.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/rich/tree.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/six.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/_asyncio.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/_utils.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/after.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/before.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/before_sleep.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/nap.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/retry.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/stop.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/tornadoweb.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tenacity/wait.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tomli/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tomli/_parser.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/tomli/_re.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/typing_extensions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/_collections.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/_version.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/connection.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/connectionpool.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/appengine.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/securetransport.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/contrib/socks.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/fields.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/filepost.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/packages/six.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/poolmanager.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/request.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/connection.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/proxy.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/queue.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/request.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/response.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/retry.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/ssl_.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/ssltransport.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/timeout.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/url.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/urllib3/util/wait.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/vendor.txt create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/labels.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/mklabels.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/tests.py create mode 100644 venv/lib/python3.10/site-packages/pip/_vendor/webencodings/x_user_defined.py create mode 100644 venv/lib/python3.10/site-packages/pip/py.typed create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/__pycache__/appdirs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/__pycache__/pyparsing.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/appdirs.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__about__.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/_manylinux.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/_musllinux.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/markers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/tags.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/_manylinux.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/_musllinux.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/_structures.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/markers.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/requirements.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/specifiers.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/tags.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/utils.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/version.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/_vendor/pyparsing.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/extern/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/extern/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package-source/__pycache__/setup.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py create mode 100644 venv/lib/python3.10/site-packages/ply-3.11.dist-info/DESCRIPTION.rst create mode 100644 venv/lib/python3.10/site-packages/ply-3.11.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/ply-3.11.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/ply-3.11.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/ply-3.11.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/ply-3.11.dist-info/metadata.json create mode 100644 venv/lib/python3.10/site-packages/ply-3.11.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/ply/__init__.py create mode 100644 venv/lib/python3.10/site-packages/ply/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ply/__pycache__/cpp.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ply/__pycache__/ctokens.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ply/__pycache__/lex.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ply/__pycache__/yacc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ply/__pycache__/ygen.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/ply/cpp.py create mode 100644 venv/lib/python3.10/site-packages/ply/ctokens.py create mode 100644 venv/lib/python3.10/site-packages/ply/lex.py create mode 100644 venv/lib/python3.10/site-packages/ply/yacc.py create mode 100644 venv/lib/python3.10/site-packages/ply/ygen.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit-3.0.52.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit-3.0.52.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit-3.0.52.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit-3.0.52.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit-3.0.52.dist-info/licenses/AUTHORS.rst create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit-3.0.52.dist-info/licenses/LICENSE create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit-3.0.52.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/auto_suggest.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/buffer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/cache.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/cursor_shapes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/data_structures.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/document.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/enums.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/history.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/keys.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/log.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/mouse_events.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/patch_stdout.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/renderer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/search.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/selection.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/token.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/validation.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/__pycache__/win32_types.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/application/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/application/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/application/__pycache__/application.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/application/__pycache__/current.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/application/__pycache__/dummy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/application/__pycache__/run_in_terminal.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/application/application.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/application/current.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/application/dummy.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/application/run_in_terminal.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/auto_suggest.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/buffer.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/cache.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/clipboard/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/clipboard/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/clipboard/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/clipboard/__pycache__/in_memory.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/clipboard/__pycache__/pyperclip.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/clipboard/in_memory.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/__pycache__/deduplicate.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/__pycache__/filesystem.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/__pycache__/fuzzy_completer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/__pycache__/nested.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/__pycache__/word_completer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/base.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/deduplicate.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/filesystem.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/fuzzy_completer.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/nested.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/completion/word_completer.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/completers/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/completers/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/completers/__pycache__/system.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/completers/system.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/regular_languages/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/regular_languages/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/regular_languages/__pycache__/compiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/regular_languages/__pycache__/completion.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/regular_languages/__pycache__/lexer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/regular_languages/__pycache__/regex_parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/regular_languages/__pycache__/validation.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/regular_languages/compiler.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/regular_languages/completion.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/regular_languages/lexer.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/regular_languages/regex_parser.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/regular_languages/validation.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/ssh/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/ssh/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/ssh/__pycache__/server.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/ssh/server.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/telnet/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/telnet/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/telnet/__pycache__/log.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/telnet/__pycache__/protocol.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/telnet/__pycache__/server.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/telnet/log.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/telnet/protocol.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/contrib/telnet/server.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/cursor_shapes.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/data_structures.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/document.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/enums.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/eventloop/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/eventloop/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/eventloop/__pycache__/async_generator.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/eventloop/__pycache__/inputhook.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/eventloop/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/eventloop/__pycache__/win32.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/eventloop/async_generator.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/eventloop/inputhook.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/eventloop/utils.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/eventloop/win32.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/filters/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/filters/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/filters/__pycache__/app.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/filters/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/filters/__pycache__/cli.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/filters/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/filters/app.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/filters/base.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/filters/cli.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/filters/utils.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/__pycache__/ansi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/__pycache__/html.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/__pycache__/pygments.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/ansi.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/base.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/html.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/pygments.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/utils.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/history.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/__pycache__/ansi_escape_sequences.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/__pycache__/defaults.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/__pycache__/posix_pipe.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/__pycache__/posix_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/__pycache__/typeahead.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/__pycache__/vt100.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/__pycache__/vt100_parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/__pycache__/win32.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/__pycache__/win32_pipe.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/ansi_escape_sequences.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/base.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/defaults.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/posix_pipe.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/posix_utils.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/typeahead.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/vt100_parser.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/win32.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/input/win32_pipe.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/__pycache__/defaults.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/__pycache__/digraphs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/__pycache__/emacs_state.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/__pycache__/key_bindings.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/__pycache__/key_processor.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/__pycache__/vi_state.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/auto_suggest.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/basic.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/completion.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/cpr.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/emacs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/focus.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/mouse.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/named_commands.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/open_in_editor.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/page_navigation.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/scroll.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/search.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/__pycache__/vi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/auto_suggest.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/basic.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/completion.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/cpr.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/emacs.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/focus.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/mouse.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/open_in_editor.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/page_navigation.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/scroll.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/search.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/vi.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/defaults.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/digraphs.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/emacs_state.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/key_binding/vi_state.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/keys.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/containers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/controls.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/dimension.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/dummy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/layout.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/margins.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/menus.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/mouse_handlers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/processors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/screen.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/scrollable_pane.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/containers.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/controls.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/dimension.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/dummy.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/layout.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/margins.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/menus.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/mouse_handlers.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/processors.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/screen.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/scrollable_pane.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/layout/utils.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/lexers/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/lexers/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/lexers/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/lexers/__pycache__/pygments.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/lexers/base.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/lexers/pygments.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/log.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/mouse_events.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/__pycache__/color_depth.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/__pycache__/conemu.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/__pycache__/defaults.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/__pycache__/flush_stdout.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/__pycache__/plain_text.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/__pycache__/vt100.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/__pycache__/win32.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/__pycache__/windows10.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/base.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/color_depth.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/conemu.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/defaults.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/flush_stdout.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/plain_text.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/vt100.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/win32.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/output/windows10.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/patch_stdout.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/py.typed create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/renderer.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/search.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/selection.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/__pycache__/choice_input.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/__pycache__/dialogs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/__pycache__/prompt.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/choice_input.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/dialogs.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/progress_bar/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/progress_bar/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/progress_bar/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/progress_bar/__pycache__/formatters.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/progress_bar/base.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/progress_bar/formatters.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/prompt.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/shortcuts/utils.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/__pycache__/defaults.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/__pycache__/named_colors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/__pycache__/pygments.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/__pycache__/style.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/__pycache__/style_transformation.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/base.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/defaults.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/named_colors.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/pygments.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/style.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/styles/style_transformation.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/token.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/utils.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/validation.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/widgets/__init__.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/widgets/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/widgets/__pycache__/base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/widgets/__pycache__/dialogs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/widgets/__pycache__/menus.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/widgets/__pycache__/toolbars.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/widgets/base.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/widgets/dialogs.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/widgets/menus.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/widgets/toolbars.py create mode 100644 venv/lib/python3.10/site-packages/prompt_toolkit/win32_types.py create mode 100644 venv/lib/python3.10/site-packages/pyaes-1.6.1.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/pyaes-1.6.1.dist-info/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/pyaes-1.6.1.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/pyaes-1.6.1.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/pyaes-1.6.1.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/pyaes-1.6.1.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/pyaes/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pyaes/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyaes/__pycache__/aes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyaes/__pycache__/blockfeeder.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyaes/__pycache__/util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyaes/aes.py create mode 100644 venv/lib/python3.10/site-packages/pyaes/blockfeeder.py create mode 100644 venv/lib/python3.10/site-packages/pyaes/util.py create mode 100644 venv/lib/python3.10/site-packages/python_ilorest_library-7.0.0.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/python_ilorest_library-7.0.0.0.dist-info/LICENSE create mode 100644 venv/lib/python3.10/site-packages/python_ilorest_library-7.0.0.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/python_ilorest_library-7.0.0.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/python_ilorest_library-7.0.0.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/python_ilorest_library-7.0.0.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/pyudev-0.24.4.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/pyudev-0.24.4.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/pyudev-0.24.4.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/pyudev-0.24.4.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/pyudev-0.24.4.dist-info/licenses/COPYING create mode 100644 venv/lib/python3.10/site-packages/pyudev-0.24.4.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/pyudev/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/_errors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/_qt_base.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/discover.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/glib.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/monitor.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/pyqt4.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/pyqt5.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/pyside.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/pyside6.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/__pycache__/wx.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/_ctypeslib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/_ctypeslib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/_ctypeslib/__pycache__/_errorcheckers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/_ctypeslib/__pycache__/libc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/_ctypeslib/__pycache__/libudev.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/_ctypeslib/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/_ctypeslib/_errorcheckers.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/_ctypeslib/libc.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/_ctypeslib/libudev.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/_ctypeslib/utils.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/_errors.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/_os/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/_os/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/_os/__pycache__/pipe.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/_os/__pycache__/poll.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/_os/pipe.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/_os/poll.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/_qt_base.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/_util.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/core.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/device/__init__.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/device/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/device/__pycache__/_device.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/pyudev/device/_device.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/discover.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/glib.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/monitor.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/pyqt4.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/pyqt5.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/pyside.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/pyside6.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/version.py create mode 100644 venv/lib/python3.10/site-packages/pyudev/wx.py create mode 100644 venv/lib/python3.10/site-packages/pyyaml-6.0.3.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/pyyaml-6.0.3.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/pyyaml-6.0.3.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/pyyaml-6.0.3.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/pyyaml-6.0.3.dist-info/licenses/LICENSE create mode 100644 venv/lib/python3.10/site-packages/pyyaml-6.0.3.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/redfish/__init__.py create mode 100644 venv/lib/python3.10/site-packages/redfish/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/__pycache__/security_masking.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/hpilo/__init__.py create mode 100644 venv/lib/python3.10/site-packages/redfish/hpilo/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/hpilo/__pycache__/risblobstore2.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/hpilo/__pycache__/rishpilo.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/hpilo/__pycache__/vnichpilo.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/hpilo/risblobstore2.py create mode 100644 venv/lib/python3.10/site-packages/redfish/hpilo/rishpilo.py create mode 100644 venv/lib/python3.10/site-packages/redfish/hpilo/vnichpilo.py create mode 100644 venv/lib/python3.10/site-packages/redfish/rest/__init__.py create mode 100644 venv/lib/python3.10/site-packages/redfish/rest/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/rest/__pycache__/connections.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/rest/__pycache__/containers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/rest/__pycache__/v1.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/rest/connections.py create mode 100644 venv/lib/python3.10/site-packages/redfish/rest/containers.py create mode 100644 venv/lib/python3.10/site-packages/redfish/rest/v1.py create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/__init__.py create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/__pycache__/gen_compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/__pycache__/resp_handler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/__pycache__/ris.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/__pycache__/ris_threaded.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/__pycache__/rmc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/__pycache__/rmc_api.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/__pycache__/rmc_helper.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/__pycache__/sharedtypes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/__pycache__/validation.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/gen_compat.py create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/resp_handler.py create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/ris.py create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/ris_threaded.py create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/rmc.py create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/rmc_api.py create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/rmc_helper.py create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/sharedtypes.py create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/utils.py create mode 100644 venv/lib/python3.10/site-packages/redfish/ris/validation.py create mode 100644 venv/lib/python3.10/site-packages/redfish/security_masking.py create mode 100644 venv/lib/python3.10/site-packages/requests-2.32.5.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/requests-2.32.5.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/requests-2.32.5.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/requests-2.32.5.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/requests-2.32.5.dist-info/licenses/LICENSE create mode 100644 venv/lib/python3.10/site-packages/requests-2.32.5.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/requests/__init__.py create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/__version__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/_internal_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/adapters.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/api.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/auth.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/certs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/cookies.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/help.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/hooks.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/models.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/packages.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/sessions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/status_codes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/structures.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/requests/__version__.py create mode 100644 venv/lib/python3.10/site-packages/requests/_internal_utils.py create mode 100644 venv/lib/python3.10/site-packages/requests/adapters.py create mode 100644 venv/lib/python3.10/site-packages/requests/api.py create mode 100644 venv/lib/python3.10/site-packages/requests/auth.py create mode 100644 venv/lib/python3.10/site-packages/requests/certs.py create mode 100644 venv/lib/python3.10/site-packages/requests/compat.py create mode 100644 venv/lib/python3.10/site-packages/requests/cookies.py create mode 100644 venv/lib/python3.10/site-packages/requests/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/requests/help.py create mode 100644 venv/lib/python3.10/site-packages/requests/hooks.py create mode 100644 venv/lib/python3.10/site-packages/requests/models.py create mode 100644 venv/lib/python3.10/site-packages/requests/packages.py create mode 100644 venv/lib/python3.10/site-packages/requests/sessions.py create mode 100644 venv/lib/python3.10/site-packages/requests/status_codes.py create mode 100644 venv/lib/python3.10/site-packages/requests/structures.py create mode 100644 venv/lib/python3.10/site-packages/requests/utils.py create mode 100644 venv/lib/python3.10/site-packages/setproctitle-1.3.7.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/setproctitle-1.3.7.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/setproctitle-1.3.7.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/setproctitle-1.3.7.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/setproctitle-1.3.7.dist-info/licenses/LICENSE create mode 100644 venv/lib/python3.10/site-packages/setproctitle-1.3.7.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/setproctitle/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setproctitle/__pycache__/__init__.cpython-310.pyc create mode 100755 venv/lib/python3.10/site-packages/setproctitle/_setproctitle.cpython-310-x86_64-linux-gnu.so create mode 100644 venv/lib/python3.10/site-packages/setproctitle/py.typed create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/LICENSE create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/REQUESTED create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/setuptools-59.6.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/setuptools/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/_imp.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/archive_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/build_meta.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/config.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/dep_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/depends.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/dist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/errors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/extension.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/glob.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/installer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/launch.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/monkey.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/msvc.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/namespaces.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/package_index.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/py34compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/sandbox.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/unicode_utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/wheel.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/__pycache__/windows_support.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_deprecation_warning.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/_msvccompiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/archive_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/bcppcompiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/ccompiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/cmd.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/config.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/core.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/cygwinccompiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/debug.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/dep_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/dir_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/dist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/errors.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/extension.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/fancy_getopt.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/file_util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/filelist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/log.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/msvc9compiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/msvccompiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/py35compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/py38compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/spawn.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/sysconfig.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/text_file.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/unixccompiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/__pycache__/versionpredicate.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/_msvccompiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/archive_util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/bcppcompiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/ccompiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/cmd.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/bdist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/bdist_dumb.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/bdist_msi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/bdist_rpm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/bdist_wininst.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/build.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/build_clib.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/build_ext.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/build_py.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/build_scripts.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/check.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/clean.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/config.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/install.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/install_data.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/install_egg_info.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/install_headers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/install_lib.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/install_scripts.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/py37compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/register.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/sdist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/__pycache__/upload.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/bdist.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/bdist_dumb.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/bdist_msi.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/bdist_rpm.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/bdist_wininst.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/build.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/build_clib.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/build_ext.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/build_py.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/build_scripts.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/check.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/clean.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/config.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/install.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/install_data.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/install_egg_info.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/install_headers.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/install_lib.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/install_scripts.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/py37compat.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/register.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/sdist.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/command/upload.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/config.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/core.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/cygwinccompiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/debug.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/dep_util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/dir_util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/dist.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/errors.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/extension.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/fancy_getopt.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/file_util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/filelist.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/log.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/msvc9compiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/msvccompiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/py35compat.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/py38compat.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/spawn.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/sysconfig.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/text_file.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/unixccompiler.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/version.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_distutils/versionpredicate.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_imp.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/__pycache__/ordered_set.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/__pycache__/pyparsing.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/__pycache__/more.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/__pycache__/recipes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/more.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/recipes.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/ordered_set.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__about__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/__about__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/_manylinux.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/_musllinux.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/_structures.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/markers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/requirements.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/tags.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/_manylinux.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/_musllinux.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/_structures.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/markers.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/requirements.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/specifiers.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/tags.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/utils.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/packaging/version.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/_vendor/pyparsing.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/archive_util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/build_meta.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/cli-32.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/cli-64.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/cli-arm64.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/cli.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/alias.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/build_clib.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/build_ext.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/build_py.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/develop.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/dist_info.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/easy_install.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/egg_info.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/install.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/install_lib.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/install_scripts.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/py36compat.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/register.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/rotate.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/saveopts.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/sdist.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/setopt.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/test.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/upload.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/__pycache__/upload_docs.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/alias.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/bdist_egg.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/bdist_rpm.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/build_clib.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/build_ext.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/build_py.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/develop.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/dist_info.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/easy_install.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/egg_info.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/install.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/install_egg_info.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/install_lib.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/install_scripts.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/launcher manifest.xml create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/py36compat.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/register.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/rotate.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/saveopts.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/sdist.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/setopt.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/test.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/upload.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/command/upload_docs.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/config.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/dep_util.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/depends.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/dist.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/errors.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/extension.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/extern/__init__.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/extern/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/setuptools/glob.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/gui-32.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/gui-64.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/gui-arm64.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/gui.exe create mode 100644 venv/lib/python3.10/site-packages/setuptools/installer.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/launch.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/monkey.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/msvc.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/namespaces.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/package_index.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/py34compat.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/sandbox.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/script (dev).tmpl create mode 100644 venv/lib/python3.10/site-packages/setuptools/script.tmpl create mode 100644 venv/lib/python3.10/site-packages/setuptools/unicode_utils.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/version.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/wheel.py create mode 100644 venv/lib/python3.10/site-packages/setuptools/windows_support.py create mode 100644 venv/lib/python3.10/site-packages/six-1.17.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/six-1.17.0.dist-info/LICENSE create mode 100644 venv/lib/python3.10/site-packages/six-1.17.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/six-1.17.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/six-1.17.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/six-1.17.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/six.py create mode 100644 venv/lib/python3.10/site-packages/tabulate-0.9.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/tabulate-0.9.0.dist-info/LICENSE create mode 100644 venv/lib/python3.10/site-packages/tabulate-0.9.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/tabulate-0.9.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/tabulate-0.9.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/tabulate-0.9.0.dist-info/entry_points.txt create mode 100644 venv/lib/python3.10/site-packages/tabulate-0.9.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.10/site-packages/tabulate/__init__.py create mode 100644 venv/lib/python3.10/site-packages/tabulate/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tabulate/__pycache__/version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tabulate/version.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/__init__.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/__pycache__/conftest.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/conftest.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__init__.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/conftest.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/ilomock.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/test_all_flag.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/test_applydcpmmconfig.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/test_cleardcpmmpendingconfig.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/test_config_flag.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/test_device_flag.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/test_display_flag.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/test_logical_flag.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/test_showdcpmm.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/test_showdcpmmpendingconfig.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/test_summary_flag.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/conftest.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/ilomock.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/test_all_flag.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/test_applydcpmmconfig.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/test_cleardcpmmpendingconfig.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/test_config_flag.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/test_device_flag.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/test_display_flag.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/test_logical_flag.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/test_showdcpmm.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/test_showdcpmmpendingconfig.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/test_summary_flag.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/functional/utils.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/integration/__init__.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/integration/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/integration/__pycache__/conftest.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/integration/__pycache__/ilocli.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/integration/__pycache__/ilodebug.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/integration/conftest.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/integration/ilocli.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/integration/ilodebug.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/__init__.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/__pycache__/conftest.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/__pycache__/test_applydcpmmconfig.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/__pycache__/test_clear_pending_config_command.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/__pycache__/test_display_helpers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/__pycache__/test_mapper_renderers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/__pycache__/test_pmem_helpers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/__pycache__/test_rest_helpers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/__pycache__/test_show_pmem_commands.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/conftest.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/test_applydcpmmconfig.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/test_clear_pending_config_command.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/test_display_helpers.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/test_mapper_renderers.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/test_pmem_helpers.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/test_rest_helpers.py create mode 100644 venv/lib/python3.10/site-packages/tests/pmemtests/unit/test_show_pmem_commands.py create mode 100644 venv/lib/python3.10/site-packages/urllib3-2.6.3.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/urllib3-2.6.3.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/urllib3-2.6.3.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/urllib3-2.6.3.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/urllib3-2.6.3.dist-info/licenses/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/urllib3/__init__.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/__pycache__/_base_connection.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/__pycache__/_collections.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/__pycache__/_request_methods.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/__pycache__/_version.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/__pycache__/connection.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/__pycache__/connectionpool.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/__pycache__/fields.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/__pycache__/filepost.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/__pycache__/poolmanager.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/__pycache__/response.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/_base_connection.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/_collections.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/_request_methods.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/_version.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/connection.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/connectionpool.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/__init__.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/__pycache__/socks.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/emscripten/__init__.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/emscripten/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/emscripten/__pycache__/connection.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/emscripten/__pycache__/fetch.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/emscripten/__pycache__/request.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/emscripten/__pycache__/response.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/emscripten/connection.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/emscripten/fetch.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/emscripten/request.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/emscripten/response.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/pyopenssl.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/contrib/socks.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/fields.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/filepost.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/http2/__init__.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/http2/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/http2/__pycache__/connection.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/http2/__pycache__/probe.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/http2/connection.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/http2/probe.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/poolmanager.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/py.typed create mode 100644 venv/lib/python3.10/site-packages/urllib3/response.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__init__.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/connection.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/proxy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/request.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/response.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/retry.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/ssl_.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/ssl_match_hostname.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/ssltransport.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/timeout.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/url.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/util.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/__pycache__/wait.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/connection.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/proxy.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/request.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/response.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/retry.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/ssl_.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/ssl_match_hostname.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/ssltransport.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/timeout.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/url.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/util.py create mode 100644 venv/lib/python3.10/site-packages/urllib3/util/wait.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth-0.5.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/wcwidth-0.5.0.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/wcwidth-0.5.0.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/wcwidth-0.5.0.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/wcwidth-0.5.0.dist-info/licenses/LICENSE create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__init__.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/bisearch.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/control_codes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/escape_sequences.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/grapheme.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/sgr_state.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/table_ambiguous.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/table_grapheme.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/table_vs16.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/table_wide.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/table_zero.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/textwrap.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/unicode_versions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/__pycache__/wcwidth.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/wcwidth/bisearch.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/control_codes.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/escape_sequences.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/grapheme.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/py.typed create mode 100644 venv/lib/python3.10/site-packages/wcwidth/sgr_state.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/table_ambiguous.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/table_grapheme.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/table_vs16.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/table_wide.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/table_zero.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/textwrap.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/unicode_versions.py create mode 100644 venv/lib/python3.10/site-packages/wcwidth/wcwidth.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug-3.1.5.dist-info/INSTALLER create mode 100644 venv/lib/python3.10/site-packages/werkzeug-3.1.5.dist-info/METADATA create mode 100644 venv/lib/python3.10/site-packages/werkzeug-3.1.5.dist-info/RECORD create mode 100644 venv/lib/python3.10/site-packages/werkzeug-3.1.5.dist-info/WHEEL create mode 100644 venv/lib/python3.10/site-packages/werkzeug-3.1.5.dist-info/licenses/LICENSE.txt create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__init__.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/_internal.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/_reloader.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/formparser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/http.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/local.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/security.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/serving.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/test.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/testapp.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/urls.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/user_agent.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/__pycache__/wsgi.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/_internal.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/_reloader.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/__init__.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/__pycache__/accept.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/__pycache__/auth.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/__pycache__/cache_control.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/__pycache__/csp.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/__pycache__/etag.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/__pycache__/file_storage.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/__pycache__/headers.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/__pycache__/mixins.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/__pycache__/range.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/__pycache__/structures.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/accept.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/auth.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/cache_control.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/csp.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/etag.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/file_storage.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/headers.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/mixins.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/range.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/datastructures/structures.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/__init__.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/__pycache__/console.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/__pycache__/repr.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/__pycache__/tbtools.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/console.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/repr.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/shared/ICON_LICENSE.md create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/shared/console.png create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/shared/debugger.js create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/shared/less.png create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/shared/more.png create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/shared/style.css create mode 100644 venv/lib/python3.10/site-packages/werkzeug/debug/tbtools.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/formparser.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/http.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/local.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/__init__.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/__pycache__/dispatcher.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/__pycache__/http_proxy.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/__pycache__/lint.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/__pycache__/profiler.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/__pycache__/proxy_fix.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/__pycache__/shared_data.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/dispatcher.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/http_proxy.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/lint.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/profiler.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/proxy_fix.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/middleware/shared_data.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/py.typed create mode 100644 venv/lib/python3.10/site-packages/werkzeug/routing/__init__.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/routing/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/routing/__pycache__/converters.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/routing/__pycache__/exceptions.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/routing/__pycache__/map.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/routing/__pycache__/matcher.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/routing/__pycache__/rules.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/routing/converters.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/routing/exceptions.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/routing/map.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/routing/matcher.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/routing/rules.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/sansio/__init__.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/sansio/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/sansio/__pycache__/http.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/sansio/__pycache__/multipart.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/sansio/__pycache__/request.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/sansio/__pycache__/response.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/sansio/__pycache__/utils.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/sansio/http.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/sansio/multipart.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/sansio/request.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/sansio/response.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/sansio/utils.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/security.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/serving.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/test.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/testapp.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/urls.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/user_agent.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/utils.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/wrappers/__init__.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/wrappers/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/wrappers/__pycache__/request.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/wrappers/__pycache__/response.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/werkzeug/wrappers/request.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/wrappers/response.py create mode 100644 venv/lib/python3.10/site-packages/werkzeug/wsgi.py create mode 100644 venv/lib/python3.10/site-packages/yaml/__init__.py create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/__init__.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/composer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/constructor.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/cyaml.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/dumper.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/emitter.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/error.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/events.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/loader.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/nodes.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/parser.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/reader.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/representer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/resolver.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/scanner.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/serializer.cpython-310.pyc create mode 100644 venv/lib/python3.10/site-packages/yaml/__pycache__/tokens.cpython-310.pyc create mode 100755 venv/lib/python3.10/site-packages/yaml/_yaml.cpython-310-x86_64-linux-gnu.so create mode 100644 venv/lib/python3.10/site-packages/yaml/composer.py create mode 100644 venv/lib/python3.10/site-packages/yaml/constructor.py create mode 100644 venv/lib/python3.10/site-packages/yaml/cyaml.py create mode 100644 venv/lib/python3.10/site-packages/yaml/dumper.py create mode 100644 venv/lib/python3.10/site-packages/yaml/emitter.py create mode 100644 venv/lib/python3.10/site-packages/yaml/error.py create mode 100644 venv/lib/python3.10/site-packages/yaml/events.py create mode 100644 venv/lib/python3.10/site-packages/yaml/loader.py create mode 100644 venv/lib/python3.10/site-packages/yaml/nodes.py create mode 100644 venv/lib/python3.10/site-packages/yaml/parser.py create mode 100644 venv/lib/python3.10/site-packages/yaml/reader.py create mode 100644 venv/lib/python3.10/site-packages/yaml/representer.py create mode 100644 venv/lib/python3.10/site-packages/yaml/resolver.py create mode 100644 venv/lib/python3.10/site-packages/yaml/scanner.py create mode 100644 venv/lib/python3.10/site-packages/yaml/serializer.py create mode 100644 venv/lib/python3.10/site-packages/yaml/tokens.py create mode 120000 venv/lib64 create mode 100644 venv/logging_config.json create mode 100644 venv/pyvenv.cfg diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4cfe57d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +# Something perhaps diff --git a/backend/__pycache__/database.cpython-310.pyc b/backend/__pycache__/database.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9b3daa71b26ede859000116af103e0b0963ddb64 GIT binary patch literal 2448 zcmbtVOK;>v5NsjI8o)zwvBJsi!<*aXHuf2TpGO31&s z86PTazJVDxfiS|9F4@jkWm{n?(|#x0D$|((tHw-LfmLS~tHNq9n@z!LvS~I0YlY3S zIan>GbV%*af1r`He59j+uW2yXV8-78NytE9%1}8WDH*6ka-yWlKx67qQHbQUlG7ze z2Ktb|H!?7AWdvR_TIY7m#jjk%%WU`f51STat?jJ34s}<*Z925EPFtHUbsjf5Zig1~ zbfFZ+I{~AOmg_up+VoMov9a2ILVs|c(A6z>v(W-=8&1nzoV?NB@fZ_4j;ZTBcI6YT zt!8slD)f4M@_VVICb{Fk%7a^sJ_M`dmo^!-Ts4SpwHiNeIg@txy*NIK1iRh#KVQUl z&rgCVe0l3%&~hHKeiVest(KpfStb6Z8zlU*tl~#u$o(WU{X-E)BCGJ%IEZ?^ zAju5B8^ye)W;%)r6VmsTh$&dk@7E8a9R1!AKy1ZQY|XCPRm+-I#0(tySU96$0E1H& z5tc0$5fqDxg#^4dBt!K?P4t0*g><5&+Q5X;(o=mm~x-73hWpQdE$$kU*D$lFqErE15NVC7VNKob8Mb1opQ4 zK88WYLQDgfSx}Tas9_#Q&l!5L=hTOO7@fj zJ3Yr#%qPac1pEQpp_1xMf0N|=P!;pc=n!T?ld80GK$kjB(^+#%=;(TTbE81^=kJ}i zBYBzSU(pqT2_Y09?t0C-4z$eL%XP?97X4q1tNIJFX;ObZh*9veZ zvJGs+mQELfvd1n`1m;q<3H+nf^vu4H%XE~x@c4?am>#+Q2XOfep&3h$cVX+pEC;@T za}DO%CqPO+um5jhYCx*w9;PaUf8^mCMfg9?<6ii9YTgoBuiKSHajIQ7lY(+^C6N;T|wegNNwVG><*#^q*l!XfF&e5 xu51x9;RR-c1WuYJ#m5w16p;00FJgyX{xz0s{3;NO0PL#ufn`~?Re^49{SQ&(6Mz5! literal 0 HcmV?d00001 diff --git a/backend/app.py b/backend/app.py new file mode 100644 index 0000000..c2359d9 --- /dev/null +++ b/backend/app.py @@ -0,0 +1,162 @@ +import redfish +import sqlite3 +import bcrypt +from flask import Flask, jsonify, request +from flask_cors import CORS +from database import initialize_db, add_server, get_servers, add_action, get_actions + + +app = Flask(__name__, static_folder='../frontend', static_url_path='/') +CORS(app) # Enable CORS + +initialize_db() + +username = "admin" +password = "Pbg68dqUJ" + +@app.route('/api/servers', methods=['GET']) +def list_servers(): + servers = get_servers() + return jsonify(servers) + +@app.route('/api/actions', methods=['GET']) +def list_actions(): + actions = get_actions() + return jsonify(actions) + +@app.route('/api/add-server', methods=['POST']) +def add_server_route(): + data = request.json + ip = data.get('ip') + name = data.get('name') + + if not ip or not name: + return jsonify({"error": "Missing required parameters"}), 400 + + try: + add_server(ip, name) + return jsonify({"message": "Server added successfully!"}), 201 + except Exception as e: + return jsonify({"error": str(e)}), 500 + +@app.route('/api/add-endpoint', methods=['POST']) +def add_endpoint_route(): + data = request.json + name = data.get('name') + endpoint = data.get('endpoint') + + if not name or not endpoint: + return jsonify({"error": "Missing required parameters"}), 400 + + try: + add_action(name, endpoint) + return jsonify({"message": "Endpoint added successfully!"}), 201 + except Exception as e: + return jsonify({"error": str(e)}), 500 + +@app.route('/api/server-info', methods=['GET']) +def server_info(): + ip = request.args.get('ip') + #username = "admin" + #password = get_admin_password() + + if not ip or not username or not password: + return jsonify({"error": "Missing required parameters"}), 400 + + try: + # Connect to the iLO + rest_obj = redfish.LegacyRestClient(base_url=ip, username=username, password=password) + rest_obj.login() + response = rest_obj.get('/rest/v1/managers/1') + rest_obj.logout() + + # If the response contains data, return it + if response.status == 200: + return jsonify(response.dict) + + else: + # Return more detailed error information + return jsonify({ + "error": "Error retrieving data from iLO", + "status": response.status, + "message": response.dict # Add this line to capture more details + }), response.status + + except Exception as e: + return jsonify({"error": str(e)}), 500 + +# Get SNMP service information +@app.route('/api/snmp-info', methods=['GET']) +def snmp_info(): + ip = request.args.get('ip') + #username = "admin" + #password = get_admin_password() + + if not ip or not username or not password: + return jsonify({"error": "Missing required parameters"}), 400 + + try: + # Connect to the iLO + rest_obj = redfish.LegacyRestClient(base_url=ip, username=username, password=password) + rest_obj.login() + # response = rest_obj.get('/redfish/v1/Managers/1/SnmpService/') + response = rest_obj.get('/redfish/v1/Managers/1/NetworkService/') + rest_obj.logout() + + # If the response contains data, return it + if response.status == 200: + return jsonify(response.dict) + + else: + # Return more detailed error information + return jsonify({ + "error": "Error retrieving data from iLO", + "status": response.status, + "message": response.dict # Add this line to capture more details + }), response.status + + except Exception as e: + return jsonify({"error": str(e)}), 500 + +# Send SNMP test message +@app.route('/api/send-test-mail', methods=['GET']) +def snmp_test(): + ip = request.args.get('ip') + #username = "admin" + #password = get_admin_password() + + if not ip or not username or not password: + return jsonify({"error": "Missing required parameters"}), 400 + + try: + # Connect to the iLO + rest_obj = redfish.LegacyRestClient(base_url=ip, username=username, password=password) + rest_obj.login() + #response = rest_obj.post('/redfish/v1/Managers/1/SnmpService', body={"Action": "SendSNMPTestAlert"}) + #response = rest_obj.post('/redfish/v1/Managers/1/SnmpService/Actions/SnmpService.SendSNMPTestAlert/', body={}) + #response = rest_obj.post('/redfish/v1/Managers/1/NetworkService/Actions/Oem/Hp/HpiLOManagerNetworkService', body={"Action": "SendTestAlertMail"}) + response = rest_obj.get('/rest/v1/Managers/1/UpdateService') + rest_obj.logout() + + # If the response contains data, return it + if response.status == 200: + return jsonify(response.dict) + + else: + # Return more detailed error information + return jsonify({ + "error": "Error retrieving data from iLO", + "status": response.status, + "message": response.dict # Add this line to capture more details + }), response.status + + except Exception as e: + return jsonify({"error": str(e)}), 500 + + +@app.route('/') +def serve_frontend(): + return send_from_directory(app.static_folder, 'index.html') + +if __name__ == '__main__': + app.run(debug=True) diff --git a/backend/database.py b/backend/database.py new file mode 100644 index 0000000..d1b57cb --- /dev/null +++ b/backend/database.py @@ -0,0 +1,86 @@ +import sqlite3 +import bcrypt + +def initialize_db(): + conn = sqlite3.connect('servers.db') + cursor = conn.cursor() + + # Create table for servers + cursor.execute(''' + CREATE TABLE IF NOT EXISTS servers ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + ip_address TEXT NOT NULL, + name TEXT NOT NULL + ) + ''') + + # Create table for users + cursor.execute(''' + CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + username TEXT NOT NULL UNIQUE, + password TEXT NOT NULL + ) + ''') + + # Create table for actions + cursor.execute(''' + CREATE TABLE IF NOT EXISTS actions ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL UNIQUE, + endpoint TEXT NOT NULL + ) + ''') + + conn.commit() + conn.close() + +def add_user(username, password): + hashed_password = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt()) + conn = sqlite3.connect('servers.db') + cursor = conn.cursor() + cursor.execute("INSERT INTO users (username, password) VALUES (?, ?)", (username, hashed_password)) + conn.commit() + conn.close() + +def check_user(username, password): + conn = sqlite3.connect('servers.db') + cursor = conn.cursor() + cursor.execute("SELECT password FROM users WHERE username = ?", (username,)) + user = cursor.fetchone() + + if user and bcrypt.checkpw(password.encode('utf-8'), user[0].encode('utf-8')): + return True + return False + +def add_server(ip_address, name): + conn = sqlite3.connect('servers.db') + cursor = conn.cursor() + cursor.execute("INSERT INTO servers (ip_address, name) VALUES (?, ?)", (ip_address, name)) + conn.commit() + conn.close() + +def get_servers(): + conn = sqlite3.connect('servers.db') + cursor = conn.cursor() + cursor.execute("SELECT * FROM servers") + data = cursor.fetchall() + conn.close() + return data + +def add_action(name, endpoint): + conn = sqlite3.connect('servers.db') + cursor = conn.cursor() + cursor.execute("INSERT INTO actions (name, endpoint) VALUES (?, ?)", (name, endpoint)) + conn.commit() + conn.close() + + +def get_actions(): + conn = sqlite3.connect('servers.db') + cursor = conn.cursor() + cursor.execute("SELECT * FROM actions") + data = cursor.fetchall() + conn.close() + return data + diff --git a/backend/requirements.txt b/backend/requirements.txt new file mode 100644 index 0000000..ce59f17 --- /dev/null +++ b/backend/requirements.txt @@ -0,0 +1,4 @@ +Flask +ilorest +flask-cors +bcrypt diff --git a/backend/servers.db b/backend/servers.db new file mode 100644 index 0000000000000000000000000000000000000000..aa65b2fdb6072b346de5e0fc56742d78e8ad4d5b GIT binary patch literal 36864 zcmeI*&2JJ-90%|jw&g_&YtrZ*I5>IQq!JMXimfpwqOLwjp>I^%6WOwZZj=St1?7nU zhJS$n!gKZF*~G+?o}SzDoJ^kN$#Z*tyFkPGq|KA)L7VRcIyyWGQS{D^ zUaIS2bYW6RIiXO!bbCV=lbYhvnOH1lnW9{)>-Y5?v9(jKmUa$AML!Uwz4~UkMr~L1 zT0QL*w2ihDb$!1sYMb=l+t?6$wet3!?(dbh+3i@i8!SQfQdgp3t(4@b*BXB8#MCwHDGXE`M%Hy|j{kfO!>dmv~S z3)7)^*Z;Zt8>1Hj1Rwwb2tWV=5P$##AOHafKmYVtt^$&}ak>0eCxj~}f+l(*|Gt8lmCY&M5ovsC=GG9275y{Pri(73qz zH=`E<1Rwwb2tWV=5P$##AOHafKmY=#OCU=30{G_+yzBq8=pOwsfy}Yx7x6nWZQAx!FN3TQzLsF+D9Xo6FXu zOHVv}x;rjWpauOe9_-etTcT{YI#j`IStuiN7W^-GEy&)q+W2$YN1x+e|5wxx zO#NN`LJ + + + + + + HPE Server Manager + + +
+

HPE Server Manager

+ + +

Add Server

+
+ + + +
+ + +

Add API Call

+
+ + + + +
+ + + +

Select Server

+ + + + +

+    
+ + + diff --git a/frontend/script.js b/frontend/script.js new file mode 100644 index 0000000..fa6af4a --- /dev/null +++ b/frontend/script.js @@ -0,0 +1,128 @@ +async function loadServers() { + const serverSelect = document.getElementById('server-select'); + const actionSelect = document.getElementById('action-select'); + const response = await fetch('http://localhost:5000/api/servers'); + const responseAc = await fetch('http://localhost:5000/api/actions'); + const servers = await response.json(); + const actions = await responseAc.json(); + + // Clear existing options + serverSelect.innerHTML = ''; + + servers.forEach(server => { + const option = document.createElement('option'); + option.value = server[1]; // IP address + option.textContent = server[2]; // Server name + serverSelect.appendChild(option); + }); + // Clear existing options + actionSelect.innerHTML = ''; + + actions.forEach(action => { + const optionAc = document.createElement('option'); + optionAc.textContent = action[2]; // Do not know + optionAc.textContent = action[1]; + actionSelect.appendChild(optionAc); + }); +} + +//async function loadActions() { +// const actionSelect = document.getElementById('action-select'); +// const responseAc = await fetch('http://localhost:5000/api/actions'); +// const actions = await responseAc.json(); +// +// // Clear existing options +// actionSelect.innerHTML = ''; +// +// actions.forEach(action => { +// const optionAc = document.createElement('option'); +// optionAc.textContent = action[2]; // Do not know +// optionAc.textContent = action[1]; +// actionSelect.appendChild(optionAc); +// }); +//} + + +// Load servers and actions when the page loads +window.onload = loadServers; + +// Handle API call choice. +document.getElementById('confirmButton').addEventListener('click', async () => { + const ip = document.getElementById('server-select').value; + const action = document.getElementById('action-select').value; + const action_low = action.toLowerCase(); + const action_done = action_low.replace(/ /g, "-"); + + const response = await fetch(`http://localhost:5000/api/${action_done}?ip=${ip}`); + const data = await response.json(); + document.getElementById('server-info').textContent = JSON.stringify(data, null, 2); +}); + +//// Handle SNMP info fetch +//document.getElementById('confirmButton').addEventListener('click', async () => { +// const ip = document.getElementById('server-select').value; +// const action = document.getElementById('action-select').value; +// +// const response = await fetch(`http://localhost:5000/api/${action}?ip=${ip}`); +// const data = await response.json(); +// document.getElementById('server-info').textContent = JSON.stringify(data, null, 2); +//}); +// +//// SNMP send test message +//document.getElementById('confirmButton').addEventListener('click', async () => { +// const ip = document.getElementById('server-select').value; +// const action = document.getElementById('action-select').value; +// +// const response = await fetch(`http://localhost:5000/api/${action}?ip=${ip}`); +// const data = await response.json(); +// document.getElementById('server-info').textContent = JSON.stringify(data, null, 2); +//}); + +// Handle form submission to add new server +document.getElementById('add-server-form').addEventListener('submit', async (event) => { + event.preventDefault(); // Prevent form from reloading the page + + const ip = document.getElementById('server-ip').value; + const name = document.getElementById('server-name').value; + + const response = await fetch('http://localhost:5000/api/add-server', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ ip: ip, name: name }) + }); + + if (response.ok) { + alert('Server added successfully!'); + // Reload server list + loadServers(); + } else { + alert('Error adding server'); + } +}); + + +// Handle form submission to add new API call +document.getElementById('add-action-form').addEventListener('submit', async (event) => { + event.preventDefault(); // Prevent form from reloading the page + + const name = document.getElementById('action-name').value; + const endpoint = document.getElementById('action-call').value; + + const response = await fetch('http://localhost:5000/api/add-endpoint', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ name: name, endpoint: endpoint }) + }); + + if (response.ok) { + alert('API call added successfully!'); + // Reload server list + loadServers(); + } else { + alert('Error adding API call'); + } +}); diff --git a/frontend/styles.css b/frontend/styles.css new file mode 100644 index 0000000..2322b9a --- /dev/null +++ b/frontend/styles.css @@ -0,0 +1,107 @@ +body { + font-family: Arial, sans-serif; + background-color: #f4f4f4; + margin: 0; + padding: 20px; +} + +h1 { + text-align: center; +} + +.container { + max-width: 800px; + margin: auto; + background: #fff; + word-wrap: break-word; + padding: 20px; + border-radius: 5px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +button { + padding: 10px 15px; + background-color: #007BFF; + border: none; + color: white; + font-size: 16px; + cursor: pointer; + width: 150px; + height: 40px; +} + +#confirmButton { + float: right; + margin-right: 30px; + background-color: #4CAF50; +} + +#confirmButton:hover { + background-color: green; +} + +#server-select { + padding: 10px 15px; + background-color: #007BFF; + border: none; + color: white; + font-size: 16px; + cursor: pointer; + width: 150px; + height: 40px; +} + +#action-select { + padding: 10px 15px; + background-color: #007BFF; + border: none; + color: white; + font-size: 16px; + cursor: pointer; + width: 150px; + height: 40px; +} + +#action-select:hover { + background-color: #0056b3; +} + +#server-select:hover { + background-color: #0056b3; +} + + + +button:hover { + background-color: #0056b3; +} + + +/* General input styling */ +input[type="text"], +input[type="email"], +textarea, +select { + width: 100%; /* Full width */ + padding: 10px; /* Inner spacing */ + margin: 8px 0; /* Vertical spacing */ + border: 1px solid #007BFF; /* Border */ + border-radius: 5px; /* Rounded corners */ + font-size: 16px; /* Font size */ + box-sizing: border-box; /* Include padding in width */ + transition: border-color 0.3s; /* Smooth transition */ +} + +/* Focus effect */ +input[type="text"]:focus, +textarea:focus, +select:focus { + border-color: #4CAF50; /* Green border on focus */ + outline: none; /* Remove default outline */ +} + +/* Specific styles for the textarea */ +textarea { + resize: vertical; /* Allow vertical resizing only */ +} + diff --git a/get_info.py b/get_info.py new file mode 100644 index 0000000..f43aa47 --- /dev/null +++ b/get_info.py @@ -0,0 +1,6 @@ +import redfish + +def get_server_info(ip, username, password): + redfish_obj = redfish.LegacyRestClient(ip, username, password) + response = rest_obj.post('/redfish/v1/Managers/1/SnmpService/Actions/SnmpService.SendSNMPTestAlert/', body={}) + return response diff --git a/venv/bin/Activate.ps1 b/venv/bin/Activate.ps1 new file mode 100644 index 0000000..b49d77b --- /dev/null +++ b/venv/bin/Activate.ps1 @@ -0,0 +1,247 @@ +<# +.Synopsis +Activate a Python virtual environment for the current PowerShell session. + +.Description +Pushes the python executable for a virtual environment to the front of the +$Env:PATH environment variable and sets the prompt to signify that you are +in a Python virtual environment. Makes use of the command line switches as +well as the `pyvenv.cfg` file values present in the virtual environment. + +.Parameter VenvDir +Path to the directory that contains the virtual environment to activate. The +default value for this is the parent of the directory that the Activate.ps1 +script is located within. + +.Parameter Prompt +The prompt prefix to display when this virtual environment is activated. By +default, this prompt is the name of the virtual environment folder (VenvDir) +surrounded by parentheses and followed by a single space (ie. '(.venv) '). + +.Example +Activate.ps1 +Activates the Python virtual environment that contains the Activate.ps1 script. + +.Example +Activate.ps1 -Verbose +Activates the Python virtual environment that contains the Activate.ps1 script, +and shows extra information about the activation as it executes. + +.Example +Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv +Activates the Python virtual environment located in the specified location. + +.Example +Activate.ps1 -Prompt "MyPython" +Activates the Python virtual environment that contains the Activate.ps1 script, +and prefixes the current prompt with the specified string (surrounded in +parentheses) while the virtual environment is active. + +.Notes +On Windows, it may be required to enable this Activate.ps1 script by setting the +execution policy for the user. You can do this by issuing the following PowerShell +command: + +PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + +For more information on Execution Policies: +https://go.microsoft.com/fwlink/?LinkID=135170 + +#> +Param( + [Parameter(Mandatory = $false)] + [String] + $VenvDir, + [Parameter(Mandatory = $false)] + [String] + $Prompt +) + +<# Function declarations --------------------------------------------------- #> + +<# +.Synopsis +Remove all shell session elements added by the Activate script, including the +addition of the virtual environment's Python executable from the beginning of +the PATH variable. + +.Parameter NonDestructive +If present, do not remove this function from the global namespace for the +session. + +#> +function global:deactivate ([switch]$NonDestructive) { + # Revert to original values + + # The prior prompt: + if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { + Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt + Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT + } + + # The prior PYTHONHOME: + if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { + Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME + Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME + } + + # The prior PATH: + if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { + Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH + Remove-Item -Path Env:_OLD_VIRTUAL_PATH + } + + # Just remove the VIRTUAL_ENV altogether: + if (Test-Path -Path Env:VIRTUAL_ENV) { + Remove-Item -Path env:VIRTUAL_ENV + } + + # Just remove VIRTUAL_ENV_PROMPT altogether. + if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { + Remove-Item -Path env:VIRTUAL_ENV_PROMPT + } + + # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: + if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { + Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force + } + + # Leave deactivate function in the global namespace if requested: + if (-not $NonDestructive) { + Remove-Item -Path function:deactivate + } +} + +<# +.Description +Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the +given folder, and returns them in a map. + +For each line in the pyvenv.cfg file, if that line can be parsed into exactly +two strings separated by `=` (with any amount of whitespace surrounding the =) +then it is considered a `key = value` line. The left hand string is the key, +the right hand is the value. + +If the value starts with a `'` or a `"` then the first and last character is +stripped from the value before being captured. + +.Parameter ConfigDir +Path to the directory that contains the `pyvenv.cfg` file. +#> +function Get-PyVenvConfig( + [String] + $ConfigDir +) { + Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" + + # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). + $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue + + # An empty map will be returned if no config file is found. + $pyvenvConfig = @{ } + + if ($pyvenvConfigPath) { + + Write-Verbose "File exists, parse `key = value` lines" + $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath + + $pyvenvConfigContent | ForEach-Object { + $keyval = $PSItem -split "\s*=\s*", 2 + if ($keyval[0] -and $keyval[1]) { + $val = $keyval[1] + + # Remove extraneous quotations around a string value. + if ("'""".Contains($val.Substring(0, 1))) { + $val = $val.Substring(1, $val.Length - 2) + } + + $pyvenvConfig[$keyval[0]] = $val + Write-Verbose "Adding Key: '$($keyval[0])'='$val'" + } + } + } + return $pyvenvConfig +} + + +<# Begin Activate script --------------------------------------------------- #> + +# Determine the containing directory of this script +$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition +$VenvExecDir = Get-Item -Path $VenvExecPath + +Write-Verbose "Activation script is located in path: '$VenvExecPath'" +Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" +Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" + +# Set values required in priority: CmdLine, ConfigFile, Default +# First, get the location of the virtual environment, it might not be +# VenvExecDir if specified on the command line. +if ($VenvDir) { + Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" +} +else { + Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." + $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") + Write-Verbose "VenvDir=$VenvDir" +} + +# Next, read the `pyvenv.cfg` file to determine any required value such +# as `prompt`. +$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir + +# Next, set the prompt from the command line, or the config file, or +# just use the name of the virtual environment folder. +if ($Prompt) { + Write-Verbose "Prompt specified as argument, using '$Prompt'" +} +else { + Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" + if ($pyvenvCfg -and $pyvenvCfg['prompt']) { + Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" + $Prompt = $pyvenvCfg['prompt']; + } + else { + Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" + Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" + $Prompt = Split-Path -Path $venvDir -Leaf + } +} + +Write-Verbose "Prompt = '$Prompt'" +Write-Verbose "VenvDir='$VenvDir'" + +# Deactivate any currently active virtual environment, but leave the +# deactivate function in place. +deactivate -nondestructive + +# Now set the environment variable VIRTUAL_ENV, used by many tools to determine +# that there is an activated venv. +$env:VIRTUAL_ENV = $VenvDir + +if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { + + Write-Verbose "Setting prompt to '$Prompt'" + + # Set the prompt to include the env name + # Make sure _OLD_VIRTUAL_PROMPT is global + function global:_OLD_VIRTUAL_PROMPT { "" } + Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT + New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt + + function global:prompt { + Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " + _OLD_VIRTUAL_PROMPT + } + $env:VIRTUAL_ENV_PROMPT = $Prompt +} + +# Clear PYTHONHOME +if (Test-Path -Path Env:PYTHONHOME) { + Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME + Remove-Item -Path Env:PYTHONHOME +} + +# Add the venv to the PATH +Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH +$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/venv/bin/activate b/venv/bin/activate new file mode 100644 index 0000000..e70d0ad --- /dev/null +++ b/venv/bin/activate @@ -0,0 +1,69 @@ +# This file must be used with "source bin/activate" *from bash* +# you cannot run it directly + +deactivate () { + # reset old environment variables + if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then + PATH="${_OLD_VIRTUAL_PATH:-}" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then + PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # This should detect bash and zsh, which have a hash command that must + # be called to get it to forget past commands. Without forgetting + # past commands the $PATH changes we made may not be respected + if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then + hash -r 2> /dev/null + fi + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + unset VIRTUAL_ENV_PROMPT + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +VIRTUAL_ENV=/home/js219/projects/ilo-manager/venv +export VIRTUAL_ENV + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/"bin":$PATH" +export PATH + +# unset PYTHONHOME if set +# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) +# could use `if (set -u; : $PYTHONHOME) ;` in bash +if [ -n "${PYTHONHOME:-}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1:-}" + PS1='(venv) '"${PS1:-}" + export PS1 + VIRTUAL_ENV_PROMPT='(venv) ' + export VIRTUAL_ENV_PROMPT +fi + +# This should detect bash and zsh, which have a hash command that must +# be called to get it to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then + hash -r 2> /dev/null +fi diff --git a/venv/bin/activate.csh b/venv/bin/activate.csh new file mode 100644 index 0000000..5fe375d --- /dev/null +++ b/venv/bin/activate.csh @@ -0,0 +1,26 @@ +# This file must be used with "source bin/activate.csh" *from csh*. +# You cannot run it directly. +# Created by Davide Di Blasi . +# Ported to Python 3.3 venv by Andrew Svetlov + +alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV /home/js219/projects/ilo-manager/venv + +set _OLD_VIRTUAL_PATH="$PATH" +setenv PATH "$VIRTUAL_ENV/"bin":$PATH" + + +set _OLD_VIRTUAL_PROMPT="$prompt" + +if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then + set prompt = '(venv) '"$prompt" + setenv VIRTUAL_ENV_PROMPT '(venv) ' +endif + +alias pydoc python -m pydoc + +rehash diff --git a/venv/bin/activate.fish b/venv/bin/activate.fish new file mode 100644 index 0000000..90cddb3 --- /dev/null +++ b/venv/bin/activate.fish @@ -0,0 +1,69 @@ +# This file must be used with "source /bin/activate.fish" *from fish* +# (https://fishshell.com/); you cannot run it directly. + +function deactivate -d "Exit virtual environment and return to normal shell environment" + # reset old environment variables + if test -n "$_OLD_VIRTUAL_PATH" + set -gx PATH $_OLD_VIRTUAL_PATH + set -e _OLD_VIRTUAL_PATH + end + if test -n "$_OLD_VIRTUAL_PYTHONHOME" + set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME + set -e _OLD_VIRTUAL_PYTHONHOME + end + + if test -n "$_OLD_FISH_PROMPT_OVERRIDE" + set -e _OLD_FISH_PROMPT_OVERRIDE + # prevents error when using nested fish instances (Issue #93858) + if functions -q _old_fish_prompt + functions -e fish_prompt + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + end + end + + set -e VIRTUAL_ENV + set -e VIRTUAL_ENV_PROMPT + if test "$argv[1]" != "nondestructive" + # Self-destruct! + functions -e deactivate + end +end + +# Unset irrelevant variables. +deactivate nondestructive + +set -gx VIRTUAL_ENV /home/js219/projects/ilo-manager/venv + +set -gx _OLD_VIRTUAL_PATH $PATH +set -gx PATH "$VIRTUAL_ENV/"bin $PATH + +# Unset PYTHONHOME if set. +if set -q PYTHONHOME + set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME + set -e PYTHONHOME +end + +if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" + # fish uses a function instead of an env var to generate the prompt. + + # Save the current fish_prompt function as the function _old_fish_prompt. + functions -c fish_prompt _old_fish_prompt + + # With the original prompt function renamed, we can override with our own. + function fish_prompt + # Save the return status of the last command. + set -l old_status $status + + # Output the venv prompt; color taken from the blue of the Python logo. + printf "%s%s%s" (set_color 4B8BBE) '(venv) ' (set_color normal) + + # Restore the return status of the previous command. + echo "exit $old_status" | . + # Output the original/"old" prompt. + _old_fish_prompt + end + + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" + set -gx VIRTUAL_ENV_PROMPT '(venv) ' +end diff --git a/venv/bin/flask b/venv/bin/flask new file mode 100755 index 0000000..afa76c8 --- /dev/null +++ b/venv/bin/flask @@ -0,0 +1,8 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from flask.cli import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/futurize b/venv/bin/futurize new file mode 100755 index 0000000..6f4112e --- /dev/null +++ b/venv/bin/futurize @@ -0,0 +1,8 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from libfuturize.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/ilorest b/venv/bin/ilorest new file mode 100755 index 0000000..9952844 --- /dev/null +++ b/venv/bin/ilorest @@ -0,0 +1,8 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from ilorest.rdmc import ilorestcommand +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(ilorestcommand()) diff --git a/venv/bin/jdiff b/venv/bin/jdiff new file mode 100755 index 0000000..fb674b8 --- /dev/null +++ b/venv/bin/jdiff @@ -0,0 +1,8 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from jsondiff.cli import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/jsondiff b/venv/bin/jsondiff new file mode 100755 index 0000000..e9a4e1e --- /dev/null +++ b/venv/bin/jsondiff @@ -0,0 +1,41 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- + +from __future__ import print_function + +import sys +import json +import jsonpatch +import argparse + + +parser = argparse.ArgumentParser(description='Diff two JSON files') +parser.add_argument('FILE1', type=argparse.FileType('r')) +parser.add_argument('FILE2', type=argparse.FileType('r')) +parser.add_argument('--indent', type=int, default=None, + help='Indent output by n spaces') +parser.add_argument('-u', '--preserve-unicode', action='store_true', + help='Output Unicode character as-is without using Code Point') +parser.add_argument('-v', '--version', action='version', + version='%(prog)s ' + jsonpatch.__version__) + + +def main(): + try: + diff_files() + except KeyboardInterrupt: + sys.exit(1) + + +def diff_files(): + """ Diffs two JSON files and prints a patch """ + args = parser.parse_args() + doc1 = json.load(args.FILE1) + doc2 = json.load(args.FILE2) + patch = jsonpatch.make_patch(doc1, doc2) + if patch.patch: + print(json.dumps(patch.patch, indent=args.indent, ensure_ascii=not(args.preserve_unicode))) + sys.exit(1) + +if __name__ == "__main__": + main() diff --git a/venv/bin/jsonpatch b/venv/bin/jsonpatch new file mode 100755 index 0000000..f22382a --- /dev/null +++ b/venv/bin/jsonpatch @@ -0,0 +1,107 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- + +import sys +import os.path +import json +import jsonpatch +import tempfile +import argparse + + +parser = argparse.ArgumentParser( + description='Apply a JSON patch on a JSON file') +parser.add_argument('ORIGINAL', type=argparse.FileType('r'), + help='Original file') +parser.add_argument('PATCH', type=argparse.FileType('r'), + nargs='?', default=sys.stdin, + help='Patch file (read from stdin if omitted)') +parser.add_argument('--indent', type=int, default=None, + help='Indent output by n spaces') +parser.add_argument('-b', '--backup', action='store_true', + help='Back up ORIGINAL if modifying in-place') +parser.add_argument('-i', '--in-place', action='store_true', + help='Modify ORIGINAL in-place instead of to stdout') +parser.add_argument('-v', '--version', action='version', + version='%(prog)s ' + jsonpatch.__version__) +parser.add_argument('-u', '--preserve-unicode', action='store_true', + help='Output Unicode character as-is without using Code Point') + +def main(): + try: + patch_files() + except KeyboardInterrupt: + sys.exit(1) + + +def patch_files(): + """ Diffs two JSON files and prints a patch """ + args = parser.parse_args() + doc = json.load(args.ORIGINAL) + patch = json.load(args.PATCH) + result = jsonpatch.apply_patch(doc, patch) + + if args.in_place: + dirname = os.path.abspath(os.path.dirname(args.ORIGINAL.name)) + + try: + # Attempt to replace the file atomically. We do this by + # creating a temporary file in the same directory as the + # original file so we can atomically move the new file over + # the original later. (This is done in the same directory + # because atomic renames do not work across mount points.) + + fd, pathname = tempfile.mkstemp(dir=dirname) + fp = os.fdopen(fd, 'w') + atomic = True + + except OSError: + # We failed to create the temporary file for an atomic + # replace, so fall back to non-atomic mode by backing up + # the original (if desired) and writing a new file. + + if args.backup: + os.rename(args.ORIGINAL.name, args.ORIGINAL.name + '.orig') + fp = open(args.ORIGINAL.name, 'w') + atomic = False + + else: + # Since we're not replacing the original file in-place, write + # the modified JSON to stdout instead. + + fp = sys.stdout + + # By this point we have some sort of file object we can write the + # modified JSON to. + + json.dump(result, fp, indent=args.indent, ensure_ascii=not(args.preserve_unicode)) + fp.write('\n') + + if args.in_place: + # Close the new file. If we aren't replacing atomically, this + # is our last step, since everything else is already in place. + + fp.close() + + if atomic: + try: + # Complete the atomic replace by linking the original + # to a backup (if desired), fixing up the permissions + # on the temporary file, and moving it into place. + + if args.backup: + os.link(args.ORIGINAL.name, args.ORIGINAL.name + '.orig') + os.chmod(pathname, os.stat(args.ORIGINAL.name).st_mode) + os.rename(pathname, args.ORIGINAL.name) + + except OSError: + # In the event we could not actually do the atomic + # replace, unlink the original to move it out of the + # way and finally move the temporary file into place. + + os.unlink(args.ORIGINAL.name) + os.rename(pathname, args.ORIGINAL.name) + + +if __name__ == "__main__": + main() diff --git a/venv/bin/jsonpath.py b/venv/bin/jsonpath.py new file mode 100755 index 0000000..2ba6b9e --- /dev/null +++ b/venv/bin/jsonpath.py @@ -0,0 +1,8 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from jsonpath_rw.bin.jsonpath import entry_point +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(entry_point()) diff --git a/venv/bin/jsonpointer b/venv/bin/jsonpointer new file mode 100755 index 0000000..d06cecc --- /dev/null +++ b/venv/bin/jsonpointer @@ -0,0 +1,67 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- + + +import argparse +import json +import sys + +import jsonpointer + +parser = argparse.ArgumentParser( + description='Resolve a JSON pointer on JSON files') + +# Accept pointer as argument or as file +ptr_group = parser.add_mutually_exclusive_group(required=True) + +ptr_group.add_argument('-f', '--pointer-file', type=argparse.FileType('r'), + nargs='?', + help='File containing a JSON pointer expression') + +ptr_group.add_argument('POINTER', type=str, nargs='?', + help='A JSON pointer expression') + +parser.add_argument('FILE', type=argparse.FileType('r'), nargs='+', + help='Files for which the pointer should be resolved') +parser.add_argument('--indent', type=int, default=None, + help='Indent output by n spaces') +parser.add_argument('-v', '--version', action='version', + version='%(prog)s ' + jsonpointer.__version__) + + +def main(): + try: + resolve_files() + except KeyboardInterrupt: + sys.exit(1) + + +def parse_pointer(args): + if args.POINTER: + ptr = args.POINTER + elif args.pointer_file: + ptr = args.pointer_file.read().strip() + else: + parser.print_usage() + sys.exit(1) + + return ptr + + +def resolve_files(): + """ Resolve a JSON pointer on JSON files """ + args = parser.parse_args() + + ptr = parse_pointer(args) + + for f in args.FILE: + doc = json.load(f) + try: + result = jsonpointer.resolve_pointer(doc, ptr) + print(json.dumps(result, indent=args.indent)) + except jsonpointer.JsonPointerException as e: + print('Could not resolve pointer: %s' % str(e), file=sys.stderr) + + +if __name__ == "__main__": + main() diff --git a/venv/bin/normalizer b/venv/bin/normalizer new file mode 100755 index 0000000..5f1d83a --- /dev/null +++ b/venv/bin/normalizer @@ -0,0 +1,8 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from charset_normalizer.cli import cli_detect +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(cli_detect()) diff --git a/venv/bin/pasteurize b/venv/bin/pasteurize new file mode 100755 index 0000000..a0c4560 --- /dev/null +++ b/venv/bin/pasteurize @@ -0,0 +1,8 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from libpasteurize.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pip b/venv/bin/pip new file mode 100755 index 0000000..854f801 --- /dev/null +++ b/venv/bin/pip @@ -0,0 +1,8 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pip3 b/venv/bin/pip3 new file mode 100755 index 0000000..854f801 --- /dev/null +++ b/venv/bin/pip3 @@ -0,0 +1,8 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pip3.10 b/venv/bin/pip3.10 new file mode 100755 index 0000000..854f801 --- /dev/null +++ b/venv/bin/pip3.10 @@ -0,0 +1,8 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/python b/venv/bin/python new file mode 120000 index 0000000..b8a0adb --- /dev/null +++ b/venv/bin/python @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/venv/bin/python3 b/venv/bin/python3 new file mode 120000 index 0000000..ae65fda --- /dev/null +++ b/venv/bin/python3 @@ -0,0 +1 @@ +/usr/bin/python3 \ No newline at end of file diff --git a/venv/bin/python3.10 b/venv/bin/python3.10 new file mode 120000 index 0000000..b8a0adb --- /dev/null +++ b/venv/bin/python3.10 @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/venv/bin/tabulate b/venv/bin/tabulate new file mode 100755 index 0000000..e399f73 --- /dev/null +++ b/venv/bin/tabulate @@ -0,0 +1,8 @@ +#!/home/js219/projects/ilo-manager/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from tabulate import _main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(_main()) diff --git a/venv/lib/python3.10/site-packages/__pycache__/decorator.cpython-310.pyc b/venv/lib/python3.10/site-packages/__pycache__/decorator.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..39cc0853f4073a0ae00a6f3417bddd39c38cdc06 GIT binary patch literal 13799 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

coB4-%#hH6f?*laR9%-B0L5k{H{`gJJ3S+?)W zL}ZTlrBjPCqy8D>T7+1sSzmAD(x2PFr``9RunTw z&2p){w_F-6+G9LRfP*63Ww<}<{U=FVGPJ7-zCX!{{4Ej$Fa1;@5zEPcVWJlBpPA#J zOzEqGb9(oWU($@m-M^&Ri;dv8 zwT{OrGE>{BoxcS8eZ8$MM5*Rj`~sU5USMFALC|C$LicCRoq2xt7)|ud!MV$1|f1`5VkTdRIy>+*S6Zg2rEB?i)iHizQaW6LQZOzH1@gKJ*E%q uGK6G=k07xRyVwg%|0Nvjwh;p5^Qdk7qPwqHa6eKU8NJ^faxFJs8v9?ST`Nxj literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/__pycache__/jsonpatch.cpython-310.pyc b/venv/lib/python3.10/site-packages/__pycache__/jsonpatch.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e5f5bbbdebafe157fcbb999224756ea356e372ed GIT binary patch literal 22457 zcmd6PdvF}bncvQ1pI87(00aq&6o;}Ta3vC?C|T0M6wQ~Uvvq=Gk(Mmj@^Y~=02W;A zf;|J0SS@7Pl#{C@N>Z0s+1TahzN#$zFq*A}nLhmPs z!bx2Iq?t;&sri&^xMssxHRnx(d8=W~Tk>nq+wz;9Ps?v+J|n-``D{CfoZZN+=I8T9 z>Wx%$)J}PYjVFy1zfx!Ex;Ilz<4Q`}ryE17#rdMNACmSj>h|97d{MWgfFF zYH7a2p5}MB+4-?{0W~?iZ+w1ybz*)(`WTl!E+y~GHLPyEw{w0n>N7vT%Pq|Bc8BJt z+~WKmFT3)9JA5&%u6cXC$whO1--{`C#2tMv<&Js}UbE)+qg--#puEG|kFtaEm^+U0 zxRei|JmKy{d8fDEd+3@y{~34E-Su8-{$Ve@@`#sNdDMH@-Tl5fKkZI=ql>1y$9>>E zWBwrWhP&6@hkO}*Jm~I6AN#$>@Q%k(cH9FfAMhSW`4Gwvxt~G#Gg3Z`^26>UC_f_Q z8I&J&r%|4k@)48|x@DBhQa+0EWA5W9KQ84bP(I`yM)|P3?-Ji;onjTr(2$oyT!z+O8@ES+l zo_M+C))(uZ>zqD!*7=2c&1?FA|3eEeRfMpHtM9{`Cvn{>A@Nf41_;aq5?ii`X|=*J z87wQyRXp;B3Gx$6z)i4AWfHre#82xm|rE}xFw-d>EW+vj&eSz7L zKyjwkTx`^9LA8K2>%t?Wb!x5khU+w2fwSN_z~2UOz+Ly8poKd9po6JeuM$}uf4#Qs zRQ=h4gU?~78U)_zTENCt*L7M8oOuqX$W-7NzE1YrPAvt0pgJsYY6h zKSW7hXK?w)kp!vhMqu7BHjPf|Z0fC{ubG?XrqwYz=2Yss)v<0EM(R>Fpnx;qOLdIv z=^JQw&A4WePTSK!kIS4&cO8pg<5FP#d_A*1SGK{Go9P3>ih%G5#8D*QOm$LkjpNnE zrr9xqRL8sqhH%kTJ33$rQ;>`ubJ2Vq67!O&8HCE>F<~v_qgKOff`ZJMqoIY@hZ$K| zzlRt|2VwsBk_QY~QzsgHGsVC8uARzQd+roIY42TKZv=H0s6KPN(W-$(pO{G=C}+Z< zTC33jf?^%~aL5HKMSC_6ZH_U_0RO$F8`^R&4gRp|m+f%4rCd*WZe^`nSALjYWwqKv zc+vvq7AO-qJVHrsQm~3f$;g=*EBCQ_6gM#D9hzKpx0U5q>*5PFu5A42Tj^uCi)l3i z|419OEd4CUp0OnEaCVAA6fR@m-f0d9~Fo7G>%T4@2tF*>b9M+hG>4omB=c{R=U z$^RU%*7a4d8O#)fLT1;hs=CU%v(DM5DxykFLbCy+oUZ4b^gShSnboXLvzn?es6-Ih z+IL#YQPnG2@PgtYTV2Nw6hvrm_fbb0dc_8P@2NK{YmI8nn|0n;2GKdQ;97n#d*QrV z_b%wMg10mp4kSu_al;9!YRLn(CqpGC+wwWR;Y9e++eHtH#N@?YfKRS%^g`SPX`$6> z^g+9(Re?&a;m32M?>Mza)t5C{_r2cE`ktUx@m1k8`l+{~&XpIetLChhDP-W=u9o6* z&C2BK=T4kB!KTi0&fC+At=9CcGrdq%)0?vTtketlob%PUr(0{R2A7{cyg?zo(^BM^{;6hrceRB#287EwY)O|?1pbD87 z78amEX&MRhiO30u7FBDt65US=&|q8^-V&x|3c_3ru_}X;405cYo^f79y-(AraG+!q z&7z^mdun9)@rU^|t~0oN>VH9M1=5Ey2ONoNwOKs?o9jg|YYKNiLZpQa(8?;f3P{`u zuJn+QW`+KYbE*baqXBii?#pUc9Vm2HLAEVtcGU}(XD=k9o{>R=s249dtZKRae9Kql zTh*ZI_^ovXg#yzd>}?w!CT+LyFc*yE)Ak^3xAf4nl0QRwCusuWLAnJsG}l)bJmrHT zzWT%==gC9PQ-_>q-|7-Hpp>V2sAkJkc;uO$M`99MtzPsZ62`j^Iq0fOz)kN8`jw_L zf=dU{W}x~xKGIL3>L8G(Y^p=}3G>N%LKCp?JP;Tty&b+5y1-n=qdssgRobbZ#!n4b z--pP05|_V#q}NdKY}lx#Yr#fMySAH#O_*^rZWg~;H|OT@n{x~95PtJs!7aMO??G*v zA3|PiXyl7tab*}5G%RYC+#Nvuv2f&7GP+kpv4yVDo<0Q)w7CS~)YSt)(RCLZcaJSF z(??^J{?u=T#(oi*j@e07sJ|Jmal`P70Tiig#!)8`ZQh8xc^Lr|5fLsg?@!$t;4$*}m6URL}8IB1&j_R|lCJ?85+yZTpeCVsj`B#S@H^ODsevkc(C;f$5d_KT+$ zfVNc_LYgZ%!7}U;Qbiq{5Dbmj(Sr(LZ4i?^x|n8$GwnzGWwFlct7{F9dYQBvczgz$ zjEA^*D+Sii_n8_nsYCdEsbH%prt@{Gn%2a=oW);Whxc#Ql;`E zcAh~}Fl=B;d*{GZ=~i3digDu>NtlxHqFDs(sIz>zcrIQ_a#9rY2JdXb=kYtJlBFqZ z_dd4RvNnk{rm^Z8Lfsg!w$S5w%*)rasB6X>m<8|}Yh$-|W_If`sW(w~ z1>#^%ox_ttpHKMnGeOwQ~0s{n7C1YJlyXJ9tl)(%w4Xn%*OiT-u--TH2s#)|X2p5s0dW1J* z)sv+cbMn6tcH&yeECBMk@`xH?(@`c=v(yeITx)fb3F%nB1yow~uL0^L82{!c0 z#Z1kB5aEFAd1v>6*x3h2RwFKul_92+U(Mupk_#kh22&n(0pk@bq8L&^mGz@0z;pW;)1s(vfJi-?1qgfdlQS*tMs@tT$cnsx$re(aq`h!CJLB z9XLux>{RLFIvhEQ@zfF!wfTvEwx$=!rV*Vh8Bl~ zFYslWDoFk1jOMearMbVpfOk+}t3Z98x2#ovsRt9tcm$FD5E-8xl#B^;#4sTt?ey43 z1uYprY403ZGp*gPg`_o-dT!8*WJ#CQkOy8?~n83@n{?txQ-H$0ny z<4ALA@eF}EQxy=pxM}GTB{v4Z4@WDlW@WwUwkmp-@8HQ>;&w3#5bd^=yJH*e{euG- zc-Uqi(o;1cFYI?tK8kz!8qehpXOC#GxlRon)>7Eifumsk&>^fRE;|BSxdS)vF< z!=@Rjp~l9p9yL@{+#WSFwPL}&r77D6HKsdukO5`C&`G-%5bbEkzMh5i%P@qJJLw?T zv9B2yZGRRm?29RNBFMW!!Dw0Nr0FQrZKbav^z|lMrq)yHTnElI@&oV&yOV|-U|!cP z21Pe>eK;6l@0y38-|Y2ajAyiyz9Ddzb92J%Zyz}i1us!sVTeKzq_ZPZfgLE#+JzEn z&9{xi;u>x5)yyOEcDL38u^Qk(qdV+&!gUhMRvdC*JGYOmH@TZcyLoY)_O$Z+Rs;IE zIQk;3+CfYDV&MIK`-#nRNh@m=tc%vjsUE1en22tkXU<`=n+bVEn9-mq3Vn5)$=7+? zCLkjDdfAbdeB?q(JlqS+^^=9LqH$1z{}d`sP%l^!zV;oe=OvqpJ0#Nh#Q(?{Mav#8 z{BN)+!_Mdaubs_(G-iyM?Xg~D{i(QA4{7&vsb?ZCb#KyEq(p2G#}wTMPeS#YRsF1( z&ZmTo?BR0>WK-KiRt2L`EB$NJWh56-f&J<}M&f{x@cw-nN$E9DytQ3s^7-h_r)4M( zoJbI&@HYs>^lJiHz(9@r3@-ooko-~kOGNFDikQ+IW(LMFXdZ@l%zI9Q%VdSir2Xgc zL>gS?RFHEsY}G7FyFB>Hm%(l9%Z54+J^{{yEt?FulWsK`y=fsBa&y-UL9vIgz!!n` zsg>cFuk`YxazXPL#T^l~$}v9^S>UpzHhp;7(M+V@dp)i6N=$e8l4d#kVtqvx${FA} z?Q(zhJ@gqxRZO*zK#>&-{ob4V z^5>9jXCZiz?+yO54D#ZCLq3bxl^ncq@W!#^=G_AQaPE*>#BaeJh8-~y4!_)IMSPyc zPt8am8Z{${y-oMvB^ivjJ*7?A$k}FsqDxe3wf54?!Knrpoi2m6V|~WjC@1=itzC9K z`iyxUPCBtupv}Mvft~?fh%UJan#n;1R>(`y^BGzt9XRG9`y+PErB?D#txf1F&`$uP z9TWiD0$|BsAEGX#7J{sH=s|0t{VFiK=?@66>1N(Hp|=2vO(Pg_sgaF#V5xloi?_d) z{g?A_|It%>d*=R14ckq}p1{Y>RGUq^t9VGGYyUNg*S>3Gu& z&DNT>1ZZN07ElxBKpS~|m$oz%7tv1=FQDo&8qr=ZusPKg^%W+f)=*&ybFmLn)L?B- zQ;rF@fv!ytnmR2l#W}qO>wZ9e+0K}!I*wqilz$!>x)39?1-mh5g?O1JSV9yDPyUjcQW{e27f~= z0+Em4p+b<<$J<9?VLJzDT*vVZh!?FkXqIDJoKb&zZr(n|W>0RGvD}H(9oko_jf>*< zQ@hZcmR}#ywa5EbT#KT)o9Vk_ZI{m`QbYZ5y!kf(f^4;DFSOjdD;}yp#vudW z&LH@vi*KhKlx3UkQ~8m(4*fcy)8|?4vnRicH@0DiT_>B2L@Uxt(mSl}E+i$tRQw*% z=om_-G12F_p}qriDnY32beg`Uj1WoviT*crQRYvf;=kZ^>QAx-OIwhI?Bpaa|2L4t zOv|%8dj%{3=7!~E@tgCoz3&ZqMQ_*}@kU+a0}%9lDWCFoBmn|r(MHC2w2?94P0a6% zf&?a`Ac0*vL;&IU5*{!=Di+JApVfv zZ*Zs2Xzv5W2N`crb`B!|2bmdc)#zayEMp%&pA@&-p9~Saj>eVB7x4mh27R}?LE3;u z>bC5r#=zX7T+{|AciY9($FTvMA%=SXUPOZdn&j>}8&oQDeCL<=&b}GYm3Muq`U~vy zEE2wo=N|6)DmJK8&TaoHUAg5|7CPr#$YRA&1v;WYzt~dGqdH6nh))K30~xm8tNwYk zdL6Hpz3LI8f1LLTA5dSw!|IDj;wXVbyzwhcUScwUVcc$glf$G}qh0ETq}?YRK)u4w zIG?)5?fT{}?$?tk?CYCb|8spY!c^=NvVIVSj=4q~0^61lFd*Q~G@=hcz>E|I5}Vb( z4h%mdCk}i$i6MLAh-cIRh7OIMC%dkT9MO^MGI?$PwH>${{w_9TWznh6(CbsV&4d#;3& zv7`PE&+^;_lIT_Oi?)FBlSJ(Cr8)+>?Z}DS&8@UiDtZztU-6~w9rOC zC^u~?gxpgMGC=fjm`|oOOv{)w|NMZsCG2qkWe=mGO7bAe6iQ%+2rlU&t{A&|?atTO zB>r&Ihh?GB)5vt}2*Wan0D_I!$-s4Oyl-!2p%^134GIeG-oUmwBGa*}!a3H- zNjqYpT|EP`zXujF$`!{+;1JT`q6|)lJn0P?O;%oSp(AvZgNcHxu1MSzq)~jf2D|3Y z1%wn{=weiLiNR-qa{)ny7rMPQ5q+JMB810-pCS&liw)Ag8w)BG*kxlZ{ilj3?e-+? zx9@3v6-T`8OEQR}aMx=RcZLHqKQ-03`fdMTQ%$mJKV5h%CtU*KffEep{*)oI@nb@c zcyNHE7@o{n*q(UV_=$VO%=R_u#?A6}5*5#aFo-ZU2SZ5n2(A-O8V;SsYfrDknTo)&5joR+Bw7?I#dKdjY9V22hwC-VV$#Es4ec&}Y z>JUeiBd`g_(R2`PBzX{JML2~C#vZc2#v5{X0Ny``ieDzY6r%LN_ClIyb6b>_MC7u& zSZM*2(44!zu#hRWIV03*LPN=k=CbR|Yw@j+1q9xX`UD7#0X!2wDj^ zMEbr@*Q0a+@4vucF${-?{%FMxg4hM5doqXJ&BkImIR-1ebsvY}L6b`TX(pl;(w!Td zBd2-y2`1v48Ne~N{2o`AG=Yc(c>0TmZMH|dtE>ZVx%%;k7?xle9eXa;7kkG!1R9HX zL5Fj1nh?TpBO{`1Cu$^UTj<3?+XJ{`!}EY0AZ^LfO$(nFFoV_~q8Q;jfH;Q7fM!(t z(Zr9kHA02wf8vdt{YkrN9O7Ej!Qb3nj#RGpt}iz)Ho2dZ7;cC(IiNPRK9lJQ_ok&6 z7LsPZM2`rwiRV^kRIEHO4TSEN}7Sl{lGWqjN z{t}XK2=Tr+AKHCm%pTy=e@3SWzBxi-8QSr=Qp_{GMqo5OED+StW03)$Ema);d! z+%LMLZVA7`;yX#rkHBv-f%2%k)1Aa`$=&7d#_tYy%H4zCG4Yn9=EvQAKZv7qLd>NUzRX!mXpUd(%8I81abhSz)n%NM^!ux}Wp(gOTxQChtzPhN@q4HLJLkH;5)!aVW?mtWV4Ih9=JN z=4o!a73{=eLZjKwFypxc(-jWMZJZ53`0S53ZB#poAPi0#j)x!&wrK9*Uf-_Xsq1;F zPcHY(-k(KRJ+o)Ev9-hvHH?^h6$Z_7HHipB9G_rFe9sIaR)t^kXW`cA0Q>&j!*Gq= z;QiqK7UcU*%ze6(nF7zp(H}-Wp24bEoy-mKOq=LI?}A>MiRTpucl4p_a{x|aeXwP4 ziFr=4`aY7-TElkxaTYnrVOmw2`2Pg%`Seb>`T<+~117)DJlW2nXv3cB zk_F<8_EcSiJFBb(XTXLqSYb+s7#r%>kdFn8$e6!}8#oQl=<6;o6*jttnm^zuNFf>E z$0V-ySTDpn6tWLmvY-Uo$57}PU$b~V9|!Ii7axR1We{#UivL#(H}RU7-4AyZiHJtYhcL5DX7A4;`DQ%Nf?lFR znCpgmfUr-cc(9*7rbxL!jb9`i;KfaNj^ji2r~V0&XvV`dBrT%S^_&Uu&@ zpCMfnxAE|;5!^H1<=pEKtrCLL`{tkSN4D_aF)WtWLRB-<$v zo&2W`icf3=rdPn;SFnNINmr~(4q6~&T>{wCD|u`$Lu_0#vHkoCLPObaa?iD7(Gb#w ze}TYOID)vcd@iOu1aqb1=RuvB?OM|_cYPGRC>NA&So&Emq^u#OSR8FdeL%-+(B|xJ zES7huAL0fS<8$XLuRZ_rE3ZGV*LDw^z0Tyfm@F~j#*^NT zPOFjPAF)xE9iKXT7LE$xe$od!mko(k;f7+rgvRAC1E&g1<}lA+kvs#037s2EWwnCP z3eVk3WO)i*VVfJ@J=n3FfZYJqw+B@+AC08#+lT{23mt`(`KXZQA;n&l>FKo(ZD{k6 zuFv4|e-{Z4ifYH{HBj#d^liXpiUouw%D-y~Y#UzuYI*ntozls=lEDdw z)JhJLp0R@5C(Z%A3ZUzgcy5T1#e!b>P98hMS;P%zS4Mzd*~-YJr)0U&0u0+;DWRqW z)cSg`!^MuYF1uMllo%?+KDf~9M5`mJK*P{zf}X~JIGJEPK^&ZSpuABVOaxB^k3{4W znbf~VQl8NE(!b>mS@9n-_uEWl?LWudTTDdj6%~a(D~(8X<`N|6Vw1MIh%)NmAi-&> zesod)j#WQmLIJA&1CutAupr1FE2#cG@AmWZa9A&{7L)F0W27OH=s>;9$3+Ct5QWCl z3=bm`#ry_`6TojW;58%GnAM)ziZoHbeP~0@lf@-y^C&WyY@E0S>OdrsA5iYfGFe2P zcuA<@3FGZ>7+e6zTA5SD8_A5vI!|{RWpW0_Jra*wBEj9)IdID0j0{}ULh+;ap6!OD zAL$ztIVhDU8PhKzgWXK?x*_`mHu6@Khk4PlcOwXvArkln$^)H;g;Qbl*i`_!Lp0}b zt`!{X(qt!-)ML*pszc31`%x}@zm0d=D)=W zpG5zZUc|1PxmzxpCH9?xiI1JU@@U`0521?$nLa{+6AzAo;a`IT;PbDrE6@Ru!N_ zC>dZwn8lkaxQh&&kjMxE;BX5XR9NMP0Ym57G&Q^XQ(||2PY$y{m=t+or)#R7E>pIA+XfMd`0N_|l>~gVW1qP>+ zWc!OTIf)DG&hBXXcAFD<+W>2RppTEm3$FJ}<{-4l`g+b{|0;{(k>M<=lT1YV{E#_e zx>uPK?T6-o=%-4!h%glnLH(Es7h5<>57@$s#q#_vYX3Pb82>?Ja){&26>`J)X7J78 zJCU2p9l-Bsaj*7!(b|bW%qOcX<}!>-cx*Bqu)7X)kzHJO_;~QQB9Qnuz>wjxgATF_ z_2u-Ogo58T-f5ff9L4nnc2~ZFF13{LnCllBLNwpuOlMHZvw4mw_sXA@)9d_i$HjI0 zTNOeX6oFIwn9#Y7&~fhmBV5H-oLq2W@Y2zqKW&?-F4PqIhUXN2chORTJ^`Jk&&OAk znd*Sl(nlL@$!o_efzcWUbpuV~LfP5qUp-}11g^S{e-c6z3!St0UpycGLZS;-yaoPc zq%Po}^7!`_{C~>0QN6j?3eyW4h`&;g6N-HD$CvW=k=pA`b{>wL^7-$D=vp7!-bI)w zfqf0M~ECQq|6qxW6pDE@t1&Rl6h2F=8}Ym}f>m^-fjV-tV+g4J3^ zVmmN~z*_XzgdVK_K*0oi0rN4C!``r%I2NUN1dRno516^rh4{ieLGE=ui*v literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/__pycache__/jsonpointer.cpython-310.pyc b/venv/lib/python3.10/site-packages/__pycache__/jsonpointer.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..94b8a7239e6665dcf846fe68d0b8339df5cf84f2 GIT binary patch literal 9830 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/__pycache__/six.cpython-310.pyc b/venv/lib/python3.10/site-packages/__pycache__/six.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3d39e0e8684c12d6eeb2f92affe663345f0a9112 GIT binary patch literal 27645 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 H8;bu60xGD5 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/_distutils_hack/__init__.py b/venv/lib/python3.10/site-packages/_distutils_hack/__init__.py new file mode 100644 index 0000000..f707416 --- /dev/null +++ b/venv/lib/python3.10/site-packages/_distutils_hack/__init__.py @@ -0,0 +1,132 @@ +import sys +import os +import re +import importlib +import warnings + + +is_pypy = '__pypy__' in sys.builtin_module_names + + +warnings.filterwarnings('ignore', + r'.+ distutils\b.+ deprecated', + DeprecationWarning) + + +def warn_distutils_present(): + if 'distutils' not in sys.modules: + return + if is_pypy and sys.version_info < (3, 7): + # PyPy for 3.6 unconditionally imports distutils, so bypass the warning + # https://foss.heptapod.net/pypy/pypy/-/blob/be829135bc0d758997b3566062999ee8b23872b4/lib-python/3/site.py#L250 + return + warnings.warn( + "Distutils was imported before Setuptools, but importing Setuptools " + "also replaces the `distutils` module in `sys.modules`. This may lead " + "to undesirable behaviors or errors. To avoid these issues, avoid " + "using distutils directly, ensure that setuptools is installed in the " + "traditional way (e.g. not an editable install), and/or make sure " + "that setuptools is always imported before distutils.") + + +def clear_distutils(): + if 'distutils' not in sys.modules: + return + warnings.warn("Setuptools is replacing distutils.") + mods = [name for name in sys.modules if re.match(r'distutils\b', name)] + for name in mods: + del sys.modules[name] + + +def enabled(): + """ + Allow selection of distutils by environment variable. + """ + which = os.environ.get('SETUPTOOLS_USE_DISTUTILS', 'stdlib') + return which == 'local' + + +def ensure_local_distutils(): + clear_distutils() + + # With the DistutilsMetaFinder in place, + # perform an import to cause distutils to be + # loaded from setuptools._distutils. Ref #2906. + add_shim() + importlib.import_module('distutils') + remove_shim() + + # check that submodules load as expected + core = importlib.import_module('distutils.core') + assert '_distutils' in core.__file__, core.__file__ + + +def do_override(): + """ + Ensure that the local copy of distutils is preferred over stdlib. + + See https://github.com/pypa/setuptools/issues/417#issuecomment-392298401 + for more motivation. + """ + if enabled(): + warn_distutils_present() + ensure_local_distutils() + + +class DistutilsMetaFinder: + def find_spec(self, fullname, path, target=None): + if path is not None: + return + + method_name = 'spec_for_{fullname}'.format(**locals()) + method = getattr(self, method_name, lambda: None) + return method() + + def spec_for_distutils(self): + import importlib.abc + import importlib.util + + class DistutilsLoader(importlib.abc.Loader): + + def create_module(self, spec): + return importlib.import_module('setuptools._distutils') + + def exec_module(self, module): + pass + + return importlib.util.spec_from_loader('distutils', DistutilsLoader()) + + def spec_for_pip(self): + """ + Ensure stdlib distutils when running under pip. + See pypa/pip#8761 for rationale. + """ + if self.pip_imported_during_build(): + return + clear_distutils() + self.spec_for_distutils = lambda: None + + @staticmethod + def pip_imported_during_build(): + """ + Detect if pip is being imported in a build script. Ref #2355. + """ + import traceback + return any( + frame.f_globals['__file__'].endswith('setup.py') + for frame, line in traceback.walk_stack(None) + ) + + +DISTUTILS_FINDER = DistutilsMetaFinder() + + +def add_shim(): + sys.meta_path.insert(0, DISTUTILS_FINDER) + + +def remove_shim(): + try: + sys.meta_path.remove(DISTUTILS_FINDER) + except ValueError: + pass diff --git a/venv/lib/python3.10/site-packages/_distutils_hack/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/_distutils_hack/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d2715ca0b57b1fd5b384b8ac929a469df5a2e0de GIT binary patch literal 5113 zcmbtY&vVI4S4OA!)C z&_0_j~Vs@5dsV zpD!^S#>_XtKgx{#i#pRs0i7#2CPq^wnH3_0?Ljgdy2lVS}yM z(t0u@Okqi9*W^qTg#DPU6vd2ia4m_VDB(IQX2l$?b7EeUah<=x#38Zpn2CiQW2G$1 zJ8b2Uctb4W-GVqQ-o*6{!IxR(t!F^R>Z#*-y{+Ds=cRVA+KrSP{IvR^D}p%bCqWoL zXi!h~lx+Hm6ixbQ`Y_SCiZiaF5jb08j$9>sq2H9To3y3-FkkPX+lfR!ly1;T1>PMv3cpU5Qs3+~~6k zmhOrg0CxO!>Aq?aKg3K2RhuKNR_xS-YSNjJZqk_`)@(`VHl&Jy#tXWwD0Mb{)rF98 zYSGYbayL|7JWg;5vLT zo9pC3qhh3nl4+siC(Sl>s;5$`>v!bD4vKVFVqn{ z-(wTf3n}p`eL!zX>rV{9VF`mYFU)n)f;G5Ya&i1745LkWPzY{;ly20Ta<|47{A?po zQMUtLxEsC-$XBZR%k=2-wR`vfaPQ8YTg%@4 zBZ4Q4rb^9KnN)aM*lY*Q_I|-Jik1)+!cT&fEr+Y0;pTvtd#IPN9mZM0b!&iloQRiL zc^^dFhVVn3BI0*{2UV;UcKDw`5FJl5>Xmb9RGWyEX=!5FimkPsI=&EI+zvWvF^jAu z>3nwUW!|37D%puPWHt=n+L7|0Mjc^Kq zl$%+$TGG=jOX;?gq!<6HR$C2{cE16wbr6hter*zzYgtUMojd)>F@1|M#HW*IFPu4Z z;rzK%r}bpWO~@;V>76JEHhf}ZMzngx)CAB0NXtK^KYPmvFO5^}ZJGGj17tf@ZxV0E2L&c7XS73}!_5$dOP?#7cqjN86IP&k`*;2W-?kEC z$c89ofPn3o+l66ahxl2j4-UsY+4P_#@0(UX3@Ju!ACQQMKws60Vh=9A418{DG3M7q@%i{$kq^2x$!_C=?g;?p6s@K2 z*b|7hOJ%E3AG|g3%IYN0RJeK%<12=jdd1&?cB~Dv3IF6yp9!3(#sM zKDeDDnm9rAM@UfJGxGs?#++7^6VxxqsK#*ZEavWK%&hzx?vlOxY7ExmgWvzZV5jD- zR|>QVAmU;ZQ1V90;eO8Z9`$|gq@JfP5awTxfh(fjlwuF%h%$qIL1-y#IBd?CGu34p zPMn1&jq(gqPStNT({i4HsMIGc9;>$>H*|a(qXgu1+iwCWC zpU_Y!bx?C0H5Qz~@f`1K&ArF%$cDt0t2CR7W(Z#HGDJZzGfP!j%o{Qf#R}MJ4c2s8 zpdw|IuCm-SRiA9OW!F{xE)~#vr=i?l(95z0eMk98CnG#PcK(x(PrH<4l+G>wxQ?NL z^#fk~3erunEDxjVL&&p^Q=LFFIP+Td5WcArF$F4~d#*mFWEH*Tt+msH)mvgIB-bM~W;CT7!d zwZ4ZxCXkQ|#B{!o=1)}O&p$A>`8G;>WKs4u75j*EpP}G+1c-oUDjGU)bkxI+r;eJt z*z#7xsDTnab!1n>o2Xkba1jI3LQ7E&vcjNyphzoTT$NqiUH$EL4hJRs!iFzE)9O%-AYTFez@*oGuvE;>(QZlZ^^#f4osi%w1#jm&3?X>}da#7O}kVWwisg>ry4@LcZznuHURL zUAy~IST3d?;?xOikt^yS07EhEDh(p2gJK2;U^r)=>r%?Xc4F%=2faA^LO}7e|3*KrO*7ZFR#(Bj+X*EhC$!r)T!Fwi+m0~YrIhOyt0_hN+rFbJ$aUp zY5$nMNj{VW-EqR93>2#(y((j`kw}&QR#;pb{eeO~{dxAUAuFV5bC}iD$LWp=WNjsl zT&qaKcp2{0xtJx^OB60*`rgs`fpSF2v`qtl46Nr)!C7#MpunN>oPE+U=dAw%e?kak literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/_distutils_hack/__pycache__/override.cpython-310.pyc b/venv/lib/python3.10/site-packages/_distutils_hack/__pycache__/override.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..251dd672d280581d5053f0aef8b928be41511c97 GIT binary patch literal 238 zcmZ8cO9}!p3~dKNQADpHsPVHBL_C2T_m z!g~p|+fBiU>KD`J{;b3=A{I+7-(^Cf#Z}(qT}YwjTJ)l_qqOni6in(>67P;Ho;8&+ znI#vLDqETq73iGN_z#H}q;tlM2Lj?c; literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/_distutils_hack/override.py b/venv/lib/python3.10/site-packages/_distutils_hack/override.py new file mode 100644 index 0000000..2cc433a --- /dev/null +++ b/venv/lib/python3.10/site-packages/_distutils_hack/override.py @@ -0,0 +1 @@ +__import__('_distutils_hack').do_override() diff --git a/venv/lib/python3.10/site-packages/_yaml/__init__.py b/venv/lib/python3.10/site-packages/_yaml/__init__.py new file mode 100644 index 0000000..7baa8c4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/_yaml/__init__.py @@ -0,0 +1,33 @@ +# This is a stub package designed to roughly emulate the _yaml +# extension module, which previously existed as a standalone module +# and has been moved into the `yaml` package namespace. +# It does not perfectly mimic its old counterpart, but should get +# close enough for anyone who's relying on it even when they shouldn't. +import yaml + +# in some circumstances, the yaml module we imoprted may be from a different version, so we need +# to tread carefully when poking at it here (it may not have the attributes we expect) +if not getattr(yaml, '__with_libyaml__', False): + from sys import version_info + + exc = ModuleNotFoundError if version_info >= (3, 6) else ImportError + raise exc("No module named '_yaml'") +else: + from yaml._yaml import * + import warnings + warnings.warn( + 'The _yaml extension module is now located at yaml._yaml' + ' and its location is subject to change. To use the' + ' LibYAML-based parser and emitter, import from `yaml`:' + ' `from yaml import CLoader as Loader, CDumper as Dumper`.', + DeprecationWarning + ) + del warnings + # Don't `del yaml` here because yaml is actually an existing + # namespace member of _yaml. + +__name__ = '_yaml' +# If the module is top-level (i.e. not a part of any specific package) +# then the attribute should be set to ''. +# https://docs.python.org/3.8/library/types.html +__package__ = '' diff --git a/venv/lib/python3.10/site-packages/_yaml/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/_yaml/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..55a04f5983a6101783c98869d1c27b444fb00bad GIT binary patch literal 739 zcmYjOO>Yx15VdzV$u=KS1p+QTm{S$hWNA5p5CXMSLP~QX5+WQNC!Qv5ckPw!v`x9u zKLSU7625ZkUw{ktE)`hvXg=PXvEQg(uZ{e9-1;o88wmXj!T%@m!E1lb+#8NK&e0SB z2E-#C-^6Ce=aM`s;%ST##Jq9d&<`Pz7#h5KMNa8)AG_`aXd{%QLY}IAbQ^oFdC*dd8KPD?6Rf52k1sQtW!G$4GU6NcanDsnnNgxhuG?SbN zYwBtsd9+#2&tPGRRb;VZatT91CW@>L5bMW`#Qfu%lhI(#jBi&mZ9tRI2MS>==shBe zQfW(0wJOLg44b_mvnmR~UHNdN7!OoKYHyDm9<7VAPSxIQ=o-~S9qRX766mhA1k0?| zE;bvZgF^29Nu|tK*<-bq{H@kXyUx4n8FdiD)xx#^ecYv&OiLk`#wEdX_l}^{;3e`R ze5gwWlZjjn3MM^VXBQwZ zGQZ@k+}M?p&xZR?Gb1bv{x&pO^}&q#oeN9pu-v%xWxeWG*bg#0-lUCg(#6|Ric^0R O9N{QQen+h&Ns~Vxq~o#x literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/METADATA b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/METADATA new file mode 100644 index 0000000..629a992 --- /dev/null +++ b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/METADATA @@ -0,0 +1,343 @@ +Metadata-Version: 2.4 +Name: bcrypt +Version: 5.0.0 +Summary: Modern password hashing for your software and your servers +Author-email: The Python Cryptographic Authority developers +License: Apache-2.0 +Project-URL: homepage, https://github.com/pyca/bcrypt/ +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable +Requires-Python: >=3.8 +Description-Content-Type: text/x-rst +License-File: LICENSE +Provides-Extra: tests +Requires-Dist: pytest!=3.3.0,>=3.2.1; extra == "tests" +Provides-Extra: typecheck +Requires-Dist: mypy; extra == "typecheck" +Dynamic: license-file + +bcrypt +====== + +.. image:: https://img.shields.io/pypi/v/bcrypt.svg + :target: https://pypi.org/project/bcrypt/ + :alt: Latest Version + +.. image:: https://github.com/pyca/bcrypt/workflows/CI/badge.svg?branch=main + :target: https://github.com/pyca/bcrypt/actions?query=workflow%3ACI+branch%3Amain + +Acceptable password hashing for your software and your servers (but you should +really use argon2id or scrypt) + + +Installation +============ + +To install bcrypt, simply: + +.. code:: console + + $ pip install bcrypt + +Note that bcrypt should build very easily on Linux provided you have a C +compiler and a Rust compiler (the minimum supported Rust version is 1.56.0). + +For Debian and Ubuntu, the following command will ensure that the required dependencies are installed: + +.. code:: console + + $ sudo apt-get install build-essential cargo + +For Fedora and RHEL-derivatives, the following command will ensure that the required dependencies are installed: + +.. code:: console + + $ sudo yum install gcc cargo + +For Alpine, the following command will ensure that the required dependencies are installed: + +.. code:: console + + $ apk add --update musl-dev gcc cargo + + +Alternatives +============ + +While bcrypt remains an acceptable choice for password storage, depending on your specific use case you may also want to consider using scrypt (either via `standard library`_ or `cryptography`_) or argon2id via `argon2_cffi`_. + +Changelog +========= + +5.0.0 +----- + +* Bumped MSRV to 1.74. +* Added support for Python 3.14 and free-threaded Python 3.14. +* Added support for Windows on ARM. +* Passing ``hashpw`` a password longer than 72 bytes now raises a + ``ValueError``. Previously the password was silently truncated, following the + behavior of the original OpenBSD ``bcrypt`` implementation. + +4.3.0 +----- + +* Dropped support for Python 3.7. +* We now support free-threaded Python 3.13. +* We now support PyPy 3.11. +* We now publish wheels for free-threaded Python 3.13, for PyPy 3.11 on + ``manylinux``, and for ARMv7l on ``manylinux``. + +4.2.1 +----- + +* Bump Rust dependency versions - this should resolve crashes on Python 3.13 + free-threaded builds. +* We no longer build ``manylinux`` wheels for PyPy 3.9. + +4.2.0 +----- + +* Bump Rust dependency versions +* Removed the ``BCRYPT_ALLOW_RUST_163`` environment variable. + +4.1.3 +----- + +* Bump Rust dependency versions + +4.1.2 +----- + +* Publish both ``py37`` and ``py39`` wheels. This should resolve some errors + relating to initializing a module multiple times per process. + +4.1.1 +----- + +* Fixed the type signature on the ``kdf`` method. +* Fixed packaging bug on Windows. +* Fixed incompatibility with passlib package detection assumptions. + +4.1.0 +----- + +* Dropped support for Python 3.6. +* Bumped MSRV to 1.64. (Note: Rust 1.63 can be used by setting the ``BCRYPT_ALLOW_RUST_163`` environment variable) + +4.0.1 +----- + +* We now build PyPy ``manylinux`` wheels. +* Fixed a bug where passing an invalid ``salt`` to ``checkpw`` could result in + a ``pyo3_runtime.PanicException``. It now correctly raises a ``ValueError``. + +4.0.0 +----- + +* ``bcrypt`` is now implemented in Rust. Users building from source will need + to have a Rust compiler available. Nothing will change for users downloading + wheels. +* We no longer ship ``manylinux2010`` wheels. Users should upgrade to the latest + ``pip`` to ensure this doesn’t cause issues downloading wheels on their + platform. We now ship ``manylinux_2_28`` wheels for users on new enough platforms. +* ``NUL`` bytes are now allowed in inputs. + + +3.2.2 +----- + +* Fixed packaging of ``py.typed`` files in wheels so that ``mypy`` works. + +3.2.1 +----- + +* Added support for compilation on z/OS +* The next release of ``bcrypt`` with be 4.0 and it will require Rust at + compile time, for users building from source. There will be no additional + requirement for users who are installing from wheels. Users on most + platforms will be able to obtain a wheel by making sure they have an up to + date ``pip``. The minimum supported Rust version will be 1.56.0. +* This will be the final release for which we ship ``manylinux2010`` wheels. + Going forward the minimum supported manylinux ABI for our wheels will be + ``manylinux2014``. The vast majority of users will continue to receive + ``manylinux`` wheels provided they have an up to date ``pip``. + + +3.2.0 +----- + +* Added typehints for library functions. +* Dropped support for Python versions less than 3.6 (2.7, 3.4, 3.5). +* Shipped ``abi3`` Windows wheels (requires pip >= 20). + +3.1.7 +----- + +* Set a ``setuptools`` lower bound for PEP517 wheel building. +* We no longer distribute 32-bit ``manylinux1`` wheels. Continuing to produce + them was a maintenance burden. + +3.1.6 +----- + +* Added support for compilation on Haiku. + +3.1.5 +----- + +* Added support for compilation on AIX. +* Dropped Python 2.6 and 3.3 support. +* Switched to using ``abi3`` wheels for Python 3. If you are not getting a + wheel on a compatible platform please upgrade your ``pip`` version. + +3.1.4 +----- + +* Fixed compilation with mingw and on illumos. + +3.1.3 +----- +* Fixed a compilation issue on Solaris. +* Added a warning when using too few rounds with ``kdf``. + +3.1.2 +----- +* Fixed a compile issue affecting big endian platforms. +* Fixed invalid escape sequence warnings on Python 3.6. +* Fixed building in non-UTF8 environments on Python 2. + +3.1.1 +----- +* Resolved a ``UserWarning`` when used with ``cffi`` 1.8.3. + +3.1.0 +----- +* Added support for ``checkpw``, a convenience method for verifying a password. +* Ensure that you get a ``$2y$`` hash when you input a ``$2y$`` salt. +* Fixed a regression where ``$2a`` hashes were vulnerable to a wraparound bug. +* Fixed compilation under Alpine Linux. + +3.0.0 +----- +* Switched the C backend to code obtained from the OpenBSD project rather than + openwall. +* Added support for ``bcrypt_pbkdf`` via the ``kdf`` function. + +2.0.0 +----- +* Added support for an adjustible prefix when calling ``gensalt``. +* Switched to CFFI 1.0+ + +Usage +----- + +Password Hashing +~~~~~~~~~~~~~~~~ + +Hashing and then later checking that a password matches the previous hashed +password is very simple: + +.. code:: pycon + + >>> import bcrypt + >>> password = b"super secret password" + >>> # Hash a password for the first time, with a randomly-generated salt + >>> hashed = bcrypt.hashpw(password, bcrypt.gensalt()) + >>> # Check that an unhashed password matches one that has previously been + >>> # hashed + >>> if bcrypt.checkpw(password, hashed): + ... print("It Matches!") + ... else: + ... print("It Does not Match :(") + +KDF +~~~ + +As of 3.0.0 ``bcrypt`` now offers a ``kdf`` function which does ``bcrypt_pbkdf``. +This KDF is used in OpenSSH's newer encrypted private key format. + +.. code:: pycon + + >>> import bcrypt + >>> key = bcrypt.kdf( + ... password=b'password', + ... salt=b'salt', + ... desired_key_bytes=32, + ... rounds=100) + + +Adjustable Work Factor +~~~~~~~~~~~~~~~~~~~~~~ +One of bcrypt's features is an adjustable logarithmic work factor. To adjust +the work factor merely pass the desired number of rounds to +``bcrypt.gensalt(rounds=12)`` which defaults to 12): + +.. code:: pycon + + >>> import bcrypt + >>> password = b"super secret password" + >>> # Hash a password for the first time, with a certain number of rounds + >>> hashed = bcrypt.hashpw(password, bcrypt.gensalt(14)) + >>> # Check that a unhashed password matches one that has previously been + >>> # hashed + >>> if bcrypt.checkpw(password, hashed): + ... print("It Matches!") + ... else: + ... print("It Does not Match :(") + + +Adjustable Prefix +~~~~~~~~~~~~~~~~~ + +Another one of bcrypt's features is an adjustable prefix to let you define what +libraries you'll remain compatible with. To adjust this, pass either ``2a`` or +``2b`` (the default) to ``bcrypt.gensalt(prefix=b"2b")`` as a bytes object. + +As of 3.0.0 the ``$2y$`` prefix is still supported in ``hashpw`` but deprecated. + +Maximum Password Length +~~~~~~~~~~~~~~~~~~~~~~~ + +The bcrypt algorithm only handles passwords up to 72 characters, any characters +beyond that are ignored. To work around this, a common approach is to hash a +password with a cryptographic hash (such as ``sha256``) and then base64 +encode it to prevent NULL byte problems before hashing the result with +``bcrypt``: + +.. code:: pycon + + >>> password = b"an incredibly long password" * 10 + >>> hashed = bcrypt.hashpw( + ... base64.b64encode(hashlib.sha256(password).digest()), + ... bcrypt.gensalt() + ... ) + +Compatibility +------------- + +This library should be compatible with py-bcrypt and it will run on Python +3.8+ (including free-threaded builds), and PyPy 3. + +Security +-------- + +``bcrypt`` follows the `same security policy as cryptography`_, if you +identify a vulnerability, we ask you to contact us privately. + +.. _`same security policy as cryptography`: https://cryptography.io/en/latest/security.html +.. _`standard library`: https://docs.python.org/3/library/hashlib.html#hashlib.scrypt +.. _`argon2_cffi`: https://argon2-cffi.readthedocs.io +.. _`cryptography`: https://cryptography.io/en/latest/hazmat/primitives/key-derivation-functions/#cryptography.hazmat.primitives.kdf.scrypt.Scrypt diff --git a/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/RECORD b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/RECORD new file mode 100644 index 0000000..031593d --- /dev/null +++ b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/RECORD @@ -0,0 +1,12 @@ +bcrypt-5.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +bcrypt-5.0.0.dist-info/METADATA,sha256=yV1BfLlI6udlVy23eNbzDa62DSEbUrlWvlLBCI6UAdI,10524 +bcrypt-5.0.0.dist-info/RECORD,, +bcrypt-5.0.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +bcrypt-5.0.0.dist-info/WHEEL,sha256=WieEZvWpc0Erab6-NfTu9412g-GcE58js6gvBn3Q7B4,111 +bcrypt-5.0.0.dist-info/licenses/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850 +bcrypt-5.0.0.dist-info/top_level.txt,sha256=BkR_qBzDbSuycMzHWE1vzXrfYecAzUVmQs6G2CukqNI,7 +bcrypt/__init__.py,sha256=cv-NupIX6P7o6A4PK_F0ur6IZoDr3GnvyzFO9k16wKQ,1000 +bcrypt/__init__.pyi,sha256=ITUCB9mPVU8sKUbJQMDUH5YfQXZb1O55F9qvKZR_o8I,333 +bcrypt/__pycache__/__init__.cpython-310.pyc,, +bcrypt/_bcrypt.abi3.so,sha256=oFwJu4Gq44FqJDttx_oWpypfuUQ30BkCWzD2FhojdYw,631768 +bcrypt/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/REQUESTED b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/WHEEL b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/WHEEL new file mode 100644 index 0000000..eb203c1 --- /dev/null +++ b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp39-abi3-manylinux_2_34_x86_64 + diff --git a/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/licenses/LICENSE b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..11069ed --- /dev/null +++ b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/licenses/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/top_level.txt b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/top_level.txt new file mode 100644 index 0000000..7f0b6e7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/bcrypt-5.0.0.dist-info/top_level.txt @@ -0,0 +1 @@ +bcrypt diff --git a/venv/lib/python3.10/site-packages/bcrypt/__init__.py b/venv/lib/python3.10/site-packages/bcrypt/__init__.py new file mode 100644 index 0000000..81a92fd --- /dev/null +++ b/venv/lib/python3.10/site-packages/bcrypt/__init__.py @@ -0,0 +1,43 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from ._bcrypt import ( + __author__, + __copyright__, + __email__, + __license__, + __summary__, + __title__, + __uri__, + checkpw, + gensalt, + hashpw, + kdf, +) +from ._bcrypt import ( + __version_ex__ as __version__, +) + +__all__ = [ + "__author__", + "__copyright__", + "__email__", + "__license__", + "__summary__", + "__title__", + "__uri__", + "__version__", + "checkpw", + "gensalt", + "hashpw", + "kdf", +] diff --git a/venv/lib/python3.10/site-packages/bcrypt/__init__.pyi b/venv/lib/python3.10/site-packages/bcrypt/__init__.pyi new file mode 100644 index 0000000..12e4a2e --- /dev/null +++ b/venv/lib/python3.10/site-packages/bcrypt/__init__.pyi @@ -0,0 +1,10 @@ +def gensalt(rounds: int = 12, prefix: bytes = b"2b") -> bytes: ... +def hashpw(password: bytes, salt: bytes) -> bytes: ... +def checkpw(password: bytes, hashed_password: bytes) -> bool: ... +def kdf( + password: bytes, + salt: bytes, + desired_key_bytes: int, + rounds: int, + ignore_few_rounds: bool = False, +) -> bytes: ... diff --git a/venv/lib/python3.10/site-packages/bcrypt/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/bcrypt/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9c83bf2df2ae51139aae1ea87d48aa019ec8370c GIT binary patch literal 544 zcma)(!EW0y42I>{iIdn)vB&VCQQGb@U?}zg#V*4xx)7?Z#%e^{keqZz-)6VIlCQmN zuh7#-1Os;1p#=1SB={2~)fL5BkUj05?XOsfR}TKQ83kYHg*!qm>c|OW4C#HUKB%gY8-{KLECjFA(* zmKQX_edWh~ct^kgweSTu+Yope?P&EE;XiPa@%CLd9UA!R14;nfTDtPKAE)JK?CPU4xBMr8*Z!F2 HMV|ZtdTEP2 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/bcrypt/_bcrypt.abi3.so b/venv/lib/python3.10/site-packages/bcrypt/_bcrypt.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..4806fec6e5b4f0348f075a3294093d75464adc8e GIT binary patch literal 631768 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

JSN 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

yjbbR*Q7 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 R>gRv&r_Coee|q-p{|C~O$fy7S literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/bcrypt/py.typed b/venv/lib/python3.10/site-packages/bcrypt/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/LICENSE.txt b/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/LICENSE.txt new file mode 100644 index 0000000..79c9825 --- /dev/null +++ b/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright 2010 Jason Kirtland + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/METADATA b/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/METADATA new file mode 100644 index 0000000..6d343f5 --- /dev/null +++ b/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/METADATA @@ -0,0 +1,60 @@ +Metadata-Version: 2.3 +Name: blinker +Version: 1.9.0 +Summary: Fast, simple object-to-object and broadcast signaling +Author: Jason Kirtland +Maintainer-email: Pallets Ecosystem +Requires-Python: >=3.9 +Description-Content-Type: text/markdown +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: Python +Classifier: Typing :: Typed +Project-URL: Chat, https://discord.gg/pallets +Project-URL: Documentation, https://blinker.readthedocs.io +Project-URL: Source, https://github.com/pallets-eco/blinker/ + +# Blinker + +Blinker provides a fast dispatching system that allows any number of +interested parties to subscribe to events, or "signals". + + +## Pallets Community Ecosystem + +> [!IMPORTANT]\ +> This project is part of the Pallets Community Ecosystem. Pallets is the open +> source organization that maintains Flask; Pallets-Eco enables community +> maintenance of related projects. If you are interested in helping maintain +> this project, please reach out on [the Pallets Discord server][discord]. +> +> [discord]: https://discord.gg/pallets + + +## Example + +Signal receivers can subscribe to specific senders or receive signals +sent by any sender. + +```pycon +>>> from blinker import signal +>>> started = signal('round-started') +>>> def each(round): +... print(f"Round {round}") +... +>>> started.connect(each) + +>>> def round_two(round): +... print("This is round two.") +... +>>> started.connect(round_two, sender=2) + +>>> for round in range(1, 4): +... started.send(round) +... +Round 1! +Round 2! +This is round two. +Round 3! +``` + diff --git a/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/RECORD b/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/RECORD new file mode 100644 index 0000000..3f9f399 --- /dev/null +++ b/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/RECORD @@ -0,0 +1,12 @@ +blinker-1.9.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +blinker-1.9.0.dist-info/LICENSE.txt,sha256=nrc6HzhZekqhcCXSrhvjg5Ykx5XphdTw6Xac4p-spGc,1054 +blinker-1.9.0.dist-info/METADATA,sha256=uIRiM8wjjbHkCtbCyTvctU37IAZk0kEe5kxAld1dvzA,1633 +blinker-1.9.0.dist-info/RECORD,, +blinker-1.9.0.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82 +blinker/__init__.py,sha256=I2EdZqpy4LyjX17Hn1yzJGWCjeLaVaPzsMgHkLfj_cQ,317 +blinker/__pycache__/__init__.cpython-310.pyc,, +blinker/__pycache__/_utilities.cpython-310.pyc,, +blinker/__pycache__/base.cpython-310.pyc,, +blinker/_utilities.py,sha256=0J7eeXXTUx0Ivf8asfpx0ycVkp0Eqfqnj117x2mYX9E,1675 +blinker/base.py,sha256=QpDuvXXcwJF49lUBcH5BiST46Rz9wSG7VW_p7N_027M,19132 +blinker/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/WHEEL b/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/WHEEL new file mode 100644 index 0000000..e3c6fee --- /dev/null +++ b/venv/lib/python3.10/site-packages/blinker-1.9.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.10.1 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.10/site-packages/blinker/__init__.py b/venv/lib/python3.10/site-packages/blinker/__init__.py new file mode 100644 index 0000000..1772fa4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/blinker/__init__.py @@ -0,0 +1,17 @@ +from __future__ import annotations + +from .base import ANY +from .base import default_namespace +from .base import NamedSignal +from .base import Namespace +from .base import Signal +from .base import signal + +__all__ = [ + "ANY", + "default_namespace", + "NamedSignal", + "Namespace", + "Signal", + "signal", +] diff --git a/venv/lib/python3.10/site-packages/blinker/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/blinker/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3a4cc8ba6f5ce25809b9d03fd1210642c24e2073 GIT binary patch literal 477 zcmaKoOHRWu5Qgo%leQ8Zqe!hOtdIb~1-hw(gg3^m-PWyRM{!aKaT|7ADO*;(0xQNr zRIC_FzrTMx9zX18R3M0p^iADigg(9b8v&RHgs^)75J+H+N=z|EA`qbt%8-UVN5Bz{ zdX9l(8uy$4Cp76f1x{(&a|WEz45JMa`8%e$C>CfuIKnAtjJp9h#x}fB*0>|w%jd$! z`7=!CLauqM8)kSZUBy?@*U!O-h1wXd!RFrnt|g~*;(iK}I)avU>?QG%dda-xAoFq2 z6^yOhrmZDowf}=IT5>1<-`Ay#ajhBqK=sHs^YZmXwziaH=dNZqq^j*st{O*_wv&<@ zzL7OKNOK@sElKs-Y^}MT&Mt{ljhw*a_E6!-QY*8EO2(8?4P(>lwaacxD_Sk@{r9*t MkRcidLwp*+H)lL>V*mgE literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/blinker/__pycache__/_utilities.cpython-310.pyc b/venv/lib/python3.10/site-packages/blinker/__pycache__/_utilities.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0fafaf2a96532ef60823ac4463cdb0efcdb9527c GIT binary patch literal 2175 zcmZ`4O>f&al$2!4Q5-u-o37okLR+`B?h<+3E*lU8D{|;A%VEhrpdesmkxtmil1I`h zoOve)=wW{%JqFk>(sif(g`D;t<)rSiQ4sm~-Xq`lW3jXp5ExJW-{c>4LjJVVs6Gs;cVHGIrkupik6=dZN)mhA5jE~^629`9^eOjw_iBB}du4f;bXgf=^{wY!WT&8AU8?`>W@8F>HD+_e#<)BOH z0=2AHTBeTmW;MC6%zmmP*i7hzyd?Pgl zxXOofWlfKULX|#axp>7`$1UA7)2e|q7hHEq%LT?#)S0nMa`j91xEP4;Oa0}uZ@NQO zpl@|oX2r%J$&(|Yx~C#P?Pjvq9gZP0@~@(2Uv#xJVq=)3C%~b*y-emOz{y5NX3|KZ zqv2RBfyn#tYb=U@2DIq})T3vu%Kgzy!_wO+a`BEg&@=dNW3u6C^ag_}*(GWbwwKh} z({V~qi>z-qY8438bO)fa!I;dYVJw85#@hmV*1i#4(NYTd>wz%-Rw|S)K@ZO)sx{by z*n6=2ha@G2im^vPw36!ck}BHOiWvSAAP0GoGFByKo3XjB16a%t^&UdZuK_UR0y6Cl zRc(XyidHH9E`=-J^5VZtPYz6DZ3$wh8tUqaXF z7Ygu7q(Yv;7Is?XTtJsFMc5PJNJINdH1J^muwCUujFC^~c%d+nMRppc54~&%^;tHg z9#n1GksM>uALZa^gs>nmDpFrJK84{cU74E>7zXg1TWzWMgXBao$)5tPDpv2V+j2a& z;i}K^Yy-P%532p@qcqwE7;W6&heu<7@8DoP!~#ADCw9Gp_J-(N1?|F3+gQ*K0l0B= zfG(WSDZ1CahHQ~TN`3;I>QkIBN(yg)G_)qHBjRm(R3&fi0P&kZ)R@-Tbpl6q@t{{7 z{1^|~ynlocwv$f1BGnLKFW$Ie!d~22#w72L;BA2f;K5KOXam^0EK` literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/blinker/__pycache__/base.cpython-310.pyc b/venv/lib/python3.10/site-packages/blinker/__pycache__/base.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..60ede30544021fba753479f51d60df6b97253f53 GIT binary patch literal 17610 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/blinker/_utilities.py b/venv/lib/python3.10/site-packages/blinker/_utilities.py new file mode 100644 index 0000000..000c902 --- /dev/null +++ b/venv/lib/python3.10/site-packages/blinker/_utilities.py @@ -0,0 +1,64 @@ +from __future__ import annotations + +import collections.abc as c +import inspect +import typing as t +from weakref import ref +from weakref import WeakMethod + +T = t.TypeVar("T") + + +class Symbol: + """A constant symbol, nicer than ``object()``. Repeated calls return the + same instance. + + >>> Symbol('foo') is Symbol('foo') + True + >>> Symbol('foo') + foo + """ + + symbols: t.ClassVar[dict[str, Symbol]] = {} + + def __new__(cls, name: str) -> Symbol: + if name in cls.symbols: + return cls.symbols[name] + + obj = super().__new__(cls) + cls.symbols[name] = obj + return obj + + def __init__(self, name: str) -> None: + self.name = name + + def __repr__(self) -> str: + return self.name + + def __getnewargs__(self) -> tuple[t.Any, ...]: + return (self.name,) + + +def make_id(obj: object) -> c.Hashable: + """Get a stable identifier for a receiver or sender, to be used as a dict + key or in a set. + """ + if inspect.ismethod(obj): + # The id of a bound method is not stable, but the id of the unbound + # function and instance are. + return id(obj.__func__), id(obj.__self__) + + if isinstance(obj, (str, int)): + # Instances with the same value always compare equal and have the same + # hash, even if the id may change. + return obj + + # Assume other types are not hashable but will always be the same instance. + return id(obj) + + +def make_ref(obj: T, callback: c.Callable[[ref[T]], None] | None = None) -> ref[T]: + if inspect.ismethod(obj): + return WeakMethod(obj, callback) # type: ignore[arg-type, return-value] + + return ref(obj, callback) diff --git a/venv/lib/python3.10/site-packages/blinker/base.py b/venv/lib/python3.10/site-packages/blinker/base.py new file mode 100644 index 0000000..d051b94 --- /dev/null +++ b/venv/lib/python3.10/site-packages/blinker/base.py @@ -0,0 +1,512 @@ +from __future__ import annotations + +import collections.abc as c +import sys +import typing as t +import weakref +from collections import defaultdict +from contextlib import contextmanager +from functools import cached_property +from inspect import iscoroutinefunction + +from ._utilities import make_id +from ._utilities import make_ref +from ._utilities import Symbol + +F = t.TypeVar("F", bound=c.Callable[..., t.Any]) + +ANY = Symbol("ANY") +"""Symbol for "any sender".""" + +ANY_ID = 0 + + +class Signal: + """A notification emitter. + + :param doc: The docstring for the signal. + """ + + ANY = ANY + """An alias for the :data:`~blinker.ANY` sender symbol.""" + + set_class: type[set[t.Any]] = set + """The set class to use for tracking connected receivers and senders. + Python's ``set`` is unordered. If receivers must be dispatched in the order + they were connected, an ordered set implementation can be used. + + .. versionadded:: 1.7 + """ + + @cached_property + def receiver_connected(self) -> Signal: + """Emitted at the end of each :meth:`connect` call. + + The signal sender is the signal instance, and the :meth:`connect` + arguments are passed through: ``receiver``, ``sender``, and ``weak``. + + .. versionadded:: 1.2 + """ + return Signal(doc="Emitted after a receiver connects.") + + @cached_property + def receiver_disconnected(self) -> Signal: + """Emitted at the end of each :meth:`disconnect` call. + + The sender is the signal instance, and the :meth:`disconnect` arguments + are passed through: ``receiver`` and ``sender``. + + This signal is emitted **only** when :meth:`disconnect` is called + explicitly. This signal cannot be emitted by an automatic disconnect + when a weakly referenced receiver or sender goes out of scope, as the + instance is no longer be available to be used as the sender for this + signal. + + An alternative approach is available by subscribing to + :attr:`receiver_connected` and setting up a custom weakref cleanup + callback on weak receivers and senders. + + .. versionadded:: 1.2 + """ + return Signal(doc="Emitted after a receiver disconnects.") + + def __init__(self, doc: str | None = None) -> None: + if doc: + self.__doc__ = doc + + self.receivers: dict[ + t.Any, weakref.ref[c.Callable[..., t.Any]] | c.Callable[..., t.Any] + ] = {} + """The map of connected receivers. Useful to quickly check if any + receivers are connected to the signal: ``if s.receivers:``. The + structure and data is not part of the public API, but checking its + boolean value is. + """ + + self.is_muted: bool = False + self._by_receiver: dict[t.Any, set[t.Any]] = defaultdict(self.set_class) + self._by_sender: dict[t.Any, set[t.Any]] = defaultdict(self.set_class) + self._weak_senders: dict[t.Any, weakref.ref[t.Any]] = {} + + def connect(self, receiver: F, sender: t.Any = ANY, weak: bool = True) -> F: + """Connect ``receiver`` to be called when the signal is sent by + ``sender``. + + :param receiver: The callable to call when :meth:`send` is called with + the given ``sender``, passing ``sender`` as a positional argument + along with any extra keyword arguments. + :param sender: Any object or :data:`ANY`. ``receiver`` will only be + called when :meth:`send` is called with this sender. If ``ANY``, the + receiver will be called for any sender. A receiver may be connected + to multiple senders by calling :meth:`connect` multiple times. + :param weak: Track the receiver with a :mod:`weakref`. The receiver will + be automatically disconnected when it is garbage collected. When + connecting a receiver defined within a function, set to ``False``, + otherwise it will be disconnected when the function scope ends. + """ + receiver_id = make_id(receiver) + sender_id = ANY_ID if sender is ANY else make_id(sender) + + if weak: + self.receivers[receiver_id] = make_ref( + receiver, self._make_cleanup_receiver(receiver_id) + ) + else: + self.receivers[receiver_id] = receiver + + self._by_sender[sender_id].add(receiver_id) + self._by_receiver[receiver_id].add(sender_id) + + if sender is not ANY and sender_id not in self._weak_senders: + # store a cleanup for weakref-able senders + try: + self._weak_senders[sender_id] = make_ref( + sender, self._make_cleanup_sender(sender_id) + ) + except TypeError: + pass + + if "receiver_connected" in self.__dict__ and self.receiver_connected.receivers: + try: + self.receiver_connected.send( + self, receiver=receiver, sender=sender, weak=weak + ) + except TypeError: + # TODO no explanation or test for this + self.disconnect(receiver, sender) + raise + + return receiver + + def connect_via(self, sender: t.Any, weak: bool = False) -> c.Callable[[F], F]: + """Connect the decorated function to be called when the signal is sent + by ``sender``. + + The decorated function will be called when :meth:`send` is called with + the given ``sender``, passing ``sender`` as a positional argument along + with any extra keyword arguments. + + :param sender: Any object or :data:`ANY`. ``receiver`` will only be + called when :meth:`send` is called with this sender. If ``ANY``, the + receiver will be called for any sender. A receiver may be connected + to multiple senders by calling :meth:`connect` multiple times. + :param weak: Track the receiver with a :mod:`weakref`. The receiver will + be automatically disconnected when it is garbage collected. When + connecting a receiver defined within a function, set to ``False``, + otherwise it will be disconnected when the function scope ends.= + + .. versionadded:: 1.1 + """ + + def decorator(fn: F) -> F: + self.connect(fn, sender, weak) + return fn + + return decorator + + @contextmanager + def connected_to( + self, receiver: c.Callable[..., t.Any], sender: t.Any = ANY + ) -> c.Generator[None, None, None]: + """A context manager that temporarily connects ``receiver`` to the + signal while a ``with`` block executes. When the block exits, the + receiver is disconnected. Useful for tests. + + :param receiver: The callable to call when :meth:`send` is called with + the given ``sender``, passing ``sender`` as a positional argument + along with any extra keyword arguments. + :param sender: Any object or :data:`ANY`. ``receiver`` will only be + called when :meth:`send` is called with this sender. If ``ANY``, the + receiver will be called for any sender. + + .. versionadded:: 1.1 + """ + self.connect(receiver, sender=sender, weak=False) + + try: + yield None + finally: + self.disconnect(receiver) + + @contextmanager + def muted(self) -> c.Generator[None, None, None]: + """A context manager that temporarily disables the signal. No receivers + will be called if the signal is sent, until the ``with`` block exits. + Useful for tests. + """ + self.is_muted = True + + try: + yield None + finally: + self.is_muted = False + + def send( + self, + sender: t.Any | None = None, + /, + *, + _async_wrapper: c.Callable[ + [c.Callable[..., c.Coroutine[t.Any, t.Any, t.Any]]], c.Callable[..., t.Any] + ] + | None = None, + **kwargs: t.Any, + ) -> list[tuple[c.Callable[..., t.Any], t.Any]]: + """Call all receivers that are connected to the given ``sender`` + or :data:`ANY`. Each receiver is called with ``sender`` as a positional + argument along with any extra keyword arguments. Return a list of + ``(receiver, return value)`` tuples. + + The order receivers are called is undefined, but can be influenced by + setting :attr:`set_class`. + + If a receiver raises an exception, that exception will propagate up. + This makes debugging straightforward, with an assumption that correctly + implemented receivers will not raise. + + :param sender: Call receivers connected to this sender, in addition to + those connected to :data:`ANY`. + :param _async_wrapper: Will be called on any receivers that are async + coroutines to turn them into sync callables. For example, could run + the receiver with an event loop. + :param kwargs: Extra keyword arguments to pass to each receiver. + + .. versionchanged:: 1.7 + Added the ``_async_wrapper`` argument. + """ + if self.is_muted: + return [] + + results = [] + + for receiver in self.receivers_for(sender): + if iscoroutinefunction(receiver): + if _async_wrapper is None: + raise RuntimeError("Cannot send to a coroutine function.") + + result = _async_wrapper(receiver)(sender, **kwargs) + else: + result = receiver(sender, **kwargs) + + results.append((receiver, result)) + + return results + + async def send_async( + self, + sender: t.Any | None = None, + /, + *, + _sync_wrapper: c.Callable[ + [c.Callable[..., t.Any]], c.Callable[..., c.Coroutine[t.Any, t.Any, t.Any]] + ] + | None = None, + **kwargs: t.Any, + ) -> list[tuple[c.Callable[..., t.Any], t.Any]]: + """Await all receivers that are connected to the given ``sender`` + or :data:`ANY`. Each receiver is called with ``sender`` as a positional + argument along with any extra keyword arguments. Return a list of + ``(receiver, return value)`` tuples. + + The order receivers are called is undefined, but can be influenced by + setting :attr:`set_class`. + + If a receiver raises an exception, that exception will propagate up. + This makes debugging straightforward, with an assumption that correctly + implemented receivers will not raise. + + :param sender: Call receivers connected to this sender, in addition to + those connected to :data:`ANY`. + :param _sync_wrapper: Will be called on any receivers that are sync + callables to turn them into async coroutines. For example, + could call the receiver in a thread. + :param kwargs: Extra keyword arguments to pass to each receiver. + + .. versionadded:: 1.7 + """ + if self.is_muted: + return [] + + results = [] + + for receiver in self.receivers_for(sender): + if not iscoroutinefunction(receiver): + if _sync_wrapper is None: + raise RuntimeError("Cannot send to a non-coroutine function.") + + result = await _sync_wrapper(receiver)(sender, **kwargs) + else: + result = await receiver(sender, **kwargs) + + results.append((receiver, result)) + + return results + + def has_receivers_for(self, sender: t.Any) -> bool: + """Check if there is at least one receiver that will be called with the + given ``sender``. A receiver connected to :data:`ANY` will always be + called, regardless of sender. Does not check if weakly referenced + receivers are still live. See :meth:`receivers_for` for a stronger + search. + + :param sender: Check for receivers connected to this sender, in addition + to those connected to :data:`ANY`. + """ + if not self.receivers: + return False + + if self._by_sender[ANY_ID]: + return True + + if sender is ANY: + return False + + return make_id(sender) in self._by_sender + + def receivers_for( + self, sender: t.Any + ) -> c.Generator[c.Callable[..., t.Any], None, None]: + """Yield each receiver to be called for ``sender``, in addition to those + to be called for :data:`ANY`. Weakly referenced receivers that are not + live will be disconnected and skipped. + + :param sender: Yield receivers connected to this sender, in addition + to those connected to :data:`ANY`. + """ + # TODO: test receivers_for(ANY) + if not self.receivers: + return + + sender_id = make_id(sender) + + if sender_id in self._by_sender: + ids = self._by_sender[ANY_ID] | self._by_sender[sender_id] + else: + ids = self._by_sender[ANY_ID].copy() + + for receiver_id in ids: + receiver = self.receivers.get(receiver_id) + + if receiver is None: + continue + + if isinstance(receiver, weakref.ref): + strong = receiver() + + if strong is None: + self._disconnect(receiver_id, ANY_ID) + continue + + yield strong + else: + yield receiver + + def disconnect(self, receiver: c.Callable[..., t.Any], sender: t.Any = ANY) -> None: + """Disconnect ``receiver`` from being called when the signal is sent by + ``sender``. + + :param receiver: A connected receiver callable. + :param sender: Disconnect from only this sender. By default, disconnect + from all senders. + """ + sender_id: c.Hashable + + if sender is ANY: + sender_id = ANY_ID + else: + sender_id = make_id(sender) + + receiver_id = make_id(receiver) + self._disconnect(receiver_id, sender_id) + + if ( + "receiver_disconnected" in self.__dict__ + and self.receiver_disconnected.receivers + ): + self.receiver_disconnected.send(self, receiver=receiver, sender=sender) + + def _disconnect(self, receiver_id: c.Hashable, sender_id: c.Hashable) -> None: + if sender_id == ANY_ID: + if self._by_receiver.pop(receiver_id, None) is not None: + for bucket in self._by_sender.values(): + bucket.discard(receiver_id) + + self.receivers.pop(receiver_id, None) + else: + self._by_sender[sender_id].discard(receiver_id) + self._by_receiver[receiver_id].discard(sender_id) + + def _make_cleanup_receiver( + self, receiver_id: c.Hashable + ) -> c.Callable[[weakref.ref[c.Callable[..., t.Any]]], None]: + """Create a callback function to disconnect a weakly referenced + receiver when it is garbage collected. + """ + + def cleanup(ref: weakref.ref[c.Callable[..., t.Any]]) -> None: + # If the interpreter is shutting down, disconnecting can result in a + # weird ignored exception. Don't call it in that case. + if not sys.is_finalizing(): + self._disconnect(receiver_id, ANY_ID) + + return cleanup + + def _make_cleanup_sender( + self, sender_id: c.Hashable + ) -> c.Callable[[weakref.ref[t.Any]], None]: + """Create a callback function to disconnect all receivers for a weakly + referenced sender when it is garbage collected. + """ + assert sender_id != ANY_ID + + def cleanup(ref: weakref.ref[t.Any]) -> None: + self._weak_senders.pop(sender_id, None) + + for receiver_id in self._by_sender.pop(sender_id, ()): + self._by_receiver[receiver_id].discard(sender_id) + + return cleanup + + def _cleanup_bookkeeping(self) -> None: + """Prune unused sender/receiver bookkeeping. Not threadsafe. + + Connecting & disconnecting leaves behind a small amount of bookkeeping + data. Typical workloads using Blinker, for example in most web apps, + Flask, CLI scripts, etc., are not adversely affected by this + bookkeeping. + + With a long-running process performing dynamic signal routing with high + volume, e.g. connecting to function closures, senders are all unique + object instances. Doing all of this over and over may cause memory usage + to grow due to extraneous bookkeeping. (An empty ``set`` for each stale + sender/receiver pair.) + + This method will prune that bookkeeping away, with the caveat that such + pruning is not threadsafe. The risk is that cleanup of a fully + disconnected receiver/sender pair occurs while another thread is + connecting that same pair. If you are in the highly dynamic, unique + receiver/sender situation that has lead you to this method, that failure + mode is perhaps not a big deal for you. + """ + for mapping in (self._by_sender, self._by_receiver): + for ident, bucket in list(mapping.items()): + if not bucket: + mapping.pop(ident, None) + + def _clear_state(self) -> None: + """Disconnect all receivers and senders. Useful for tests.""" + self._weak_senders.clear() + self.receivers.clear() + self._by_sender.clear() + self._by_receiver.clear() + + +class NamedSignal(Signal): + """A named generic notification emitter. The name is not used by the signal + itself, but matches the key in the :class:`Namespace` that it belongs to. + + :param name: The name of the signal within the namespace. + :param doc: The docstring for the signal. + """ + + def __init__(self, name: str, doc: str | None = None) -> None: + super().__init__(doc) + + #: The name of this signal. + self.name: str = name + + def __repr__(self) -> str: + base = super().__repr__() + return f"{base[:-1]}; {self.name!r}>" # noqa: E702 + + +class Namespace(dict[str, NamedSignal]): + """A dict mapping names to signals.""" + + def signal(self, name: str, doc: str | None = None) -> NamedSignal: + """Return the :class:`NamedSignal` for the given ``name``, creating it + if required. Repeated calls with the same name return the same signal. + + :param name: The name of the signal. + :param doc: The docstring of the signal. + """ + if name not in self: + self[name] = NamedSignal(name, doc) + + return self[name] + + +class _PNamespaceSignal(t.Protocol): + def __call__(self, name: str, doc: str | None = None) -> NamedSignal: ... + + +default_namespace: Namespace = Namespace() +"""A default :class:`Namespace` for creating named signals. :func:`signal` +creates a :class:`NamedSignal` in this namespace. +""" + +signal: _PNamespaceSignal = default_namespace.signal +"""Return a :class:`NamedSignal` in :data:`default_namespace` with the given +``name``, creating it if required. Repeated calls with the same name return the +same signal. +""" diff --git a/venv/lib/python3.10/site-packages/blinker/py.typed b/venv/lib/python3.10/site-packages/blinker/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/METADATA b/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/METADATA new file mode 100644 index 0000000..d1bc526 --- /dev/null +++ b/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/METADATA @@ -0,0 +1,78 @@ +Metadata-Version: 2.4 +Name: certifi +Version: 2026.1.4 +Summary: Python package for providing Mozilla's CA Bundle. +Home-page: https://github.com/certifi/python-certifi +Author: Kenneth Reitz +Author-email: me@kennethreitz.com +License: MPL-2.0 +Project-URL: Source, https://github.com/certifi/python-certifi +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0) +Classifier: Natural Language :: English +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Requires-Python: >=3.7 +License-File: LICENSE +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: home-page +Dynamic: license +Dynamic: license-file +Dynamic: project-url +Dynamic: requires-python +Dynamic: summary + +Certifi: Python SSL Certificates +================================ + +Certifi provides Mozilla's carefully curated collection of Root Certificates for +validating the trustworthiness of SSL certificates while verifying the identity +of TLS hosts. It has been extracted from the `Requests`_ project. + +Installation +------------ + +``certifi`` is available on PyPI. Simply install it with ``pip``:: + + $ pip install certifi + +Usage +----- + +To reference the installed certificate authority (CA) bundle, you can use the +built-in function:: + + >>> import certifi + + >>> certifi.where() + '/usr/local/lib/python3.7/site-packages/certifi/cacert.pem' + +Or from the command line:: + + $ python -m certifi + /usr/local/lib/python3.7/site-packages/certifi/cacert.pem + +Enjoy! + +.. _`Requests`: https://requests.readthedocs.io/en/master/ + +Addition/Removal of Certificates +-------------------------------- + +Certifi does not support any addition/removal or other modification of the +CA trust store content. This project is intended to provide a reliable and +highly portable root of trust to python deployments. Look to upstream projects +for methods to use alternate trust. diff --git a/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/RECORD b/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/RECORD new file mode 100644 index 0000000..5be66f1 --- /dev/null +++ b/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/RECORD @@ -0,0 +1,14 @@ +certifi-2026.1.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +certifi-2026.1.4.dist-info/METADATA,sha256=FSfJEfKuMo6bJlofUrtRpn4PFTYtbYyXpHN_A3ZFpIY,2473 +certifi-2026.1.4.dist-info/RECORD,, +certifi-2026.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 +certifi-2026.1.4.dist-info/licenses/LICENSE,sha256=6TcW2mucDVpKHfYP5pWzcPBpVgPSH2-D8FPkLPwQyvc,989 +certifi-2026.1.4.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 +certifi/__init__.py,sha256=969deMMS7Uchipr0oO4dbRBUvRi0uNYCn07VmG1aTrg,94 +certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 +certifi/__pycache__/__init__.cpython-310.pyc,, +certifi/__pycache__/__main__.cpython-310.pyc,, +certifi/__pycache__/core.cpython-310.pyc,, +certifi/cacert.pem,sha256=Tzl1_zCrvzVEO0hgZK6Ly0Hf9wf_31dsdtKS-0WKoKk,270954 +certifi/core.py,sha256=XFXycndG5pf37ayeF8N32HUuDafsyhkVMbO4BAPWHa0,3394 +certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/WHEEL b/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/WHEEL new file mode 100644 index 0000000..e7fa31b --- /dev/null +++ b/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/licenses/LICENSE b/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/licenses/LICENSE new file mode 100644 index 0000000..62b076c --- /dev/null +++ b/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/licenses/LICENSE @@ -0,0 +1,20 @@ +This package contains a modified version of ca-bundle.crt: + +ca-bundle.crt -- Bundle of CA Root Certificates + +This is a bundle of X.509 certificates of public Certificate Authorities +(CA). These were automatically extracted from Mozilla's root certificates +file (certdata.txt). This file can be found in the mozilla source tree: +https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt +It contains the certificates in PEM format and therefore +can be directly used with curl / libcurl / php_curl, or with +an Apache+mod_ssl webserver for SSL client authentication. +Just configure this file as the SSLCACertificateFile.# + +***** BEGIN LICENSE BLOCK ***** +This Source Code Form is subject to the terms of the Mozilla Public License, +v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain +one at http://mozilla.org/MPL/2.0/. + +***** END LICENSE BLOCK ***** +@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ diff --git a/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/top_level.txt b/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/top_level.txt new file mode 100644 index 0000000..963eac5 --- /dev/null +++ b/venv/lib/python3.10/site-packages/certifi-2026.1.4.dist-info/top_level.txt @@ -0,0 +1 @@ +certifi diff --git a/venv/lib/python3.10/site-packages/certifi/__init__.py b/venv/lib/python3.10/site-packages/certifi/__init__.py new file mode 100644 index 0000000..090fd58 --- /dev/null +++ b/venv/lib/python3.10/site-packages/certifi/__init__.py @@ -0,0 +1,4 @@ +from .core import contents, where + +__all__ = ["contents", "where"] +__version__ = "2026.01.04" diff --git a/venv/lib/python3.10/site-packages/certifi/__main__.py b/venv/lib/python3.10/site-packages/certifi/__main__.py new file mode 100644 index 0000000..8945b5d --- /dev/null +++ b/venv/lib/python3.10/site-packages/certifi/__main__.py @@ -0,0 +1,12 @@ +import argparse + +from certifi import contents, where + +parser = argparse.ArgumentParser() +parser.add_argument("-c", "--contents", action="store_true") +args = parser.parse_args() + +if args.contents: + print(contents()) +else: + print(where()) diff --git a/venv/lib/python3.10/site-packages/certifi/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/certifi/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ebc90ca2029662b59aa2b089f0fba24ecbdabfef GIT binary patch literal 292 zcmYk1!Ait16h)J?otBXSKSA7eF-==V5Jda}H^MBs@KKXE&6p-7iIveW@|Uu8ZYo%AImJH%$%M>4$vzF5Y7N*VVyJ@ z;2YU|DOm8gqk|a*J-D{HrIR%W!MvkVneEu?elIMYg`TOBFLXNk!RV{1si~7*Y^R>R k#e}0wSTA2C1&~^LfNDC1;%+qjU5WeU2e*niM+GVHKYr^;B>(^b literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/certifi/__pycache__/__main__.cpython-310.pyc b/venv/lib/python3.10/site-packages/certifi/__pycache__/__main__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ae816ca558d756b05caa4c163811020c825b705f GIT binary patch literal 430 zcmYjLJx{|h5Vf7=gNRoB4Gc&bQd5|a5Q0B|kdPR%L?%93hs2I-x2R=g=0B8?zvPvP znT-i2LcmG)PVf2MJFD?HMZON=C-Ld$dr$sX=*fj|Q+VKr;|3M|Bn@s!LE4}QFaoq2 zy`mz7u#R}ZM?B=wORtB!*y{--HPMH#2jm$&W9(CIkY~Xk%i<58kFGM}l1fPn(i#^& zE@2!OQ(Hd}e?Cu_*-*7%!kLTkXe#4LaM%RAXEIwl0arQ z>@KRD_2CH6IK-(BP#ChM94X^u=OGkwOfovlnC%yb&klb*Iw=lMez$Q^h?mk7#ajZ- zyA|(_@}*jfe5Jp8{A0cWwGx%lxvbU0b=j1s0`hawoaeRtBi~$@rE0#PK7N#IX~e@# zS-rp$I^WZgR|*7jV#n<}9k`-0FJ0O-LvcVM!X;yuF4vd+R<}{9i-oL(4V=_Bp!#^M zh57?32H~9%_`*=bIDJjG9%nmTOWy>>--bJaIx*2UHoYCCc>b8Y^=3BO2l+0!COu2+ z;5|dnpPl>$E>Lh$*?6U7vnkCIT%^|125b)r#Oy#(*swGXqm4nFN{!!IT-UUATIgJZ zKbHc;=csCTeH6XsHm8}_Vt|R;?tv(Ifzg^Q!4iC3Ex<}yw>R3H~i~l|vpN{fd+})?- zu4x1RTW~1&8p~HyjT~I9pyuG-Ke3c$Q6UR1{oQSO}iJ z&|SDLQad;ops~vf*({X3Bi9=R276};LaQ^Vgubq^wz66xI^?b#TI%6Tr+wwbr$V#w i)9yd>6UAftYZN|-! None: + _CACERT_CTX.__exit__(None, None, None) # type: ignore[union-attr] + + +if sys.version_info >= (3, 11): + + from importlib.resources import as_file, files + + _CACERT_CTX = None + _CACERT_PATH = None + + def where() -> str: + # This is slightly terrible, but we want to delay extracting the file + # in cases where we're inside of a zipimport situation until someone + # actually calls where(), but we don't want to re-extract the file + # on every call of where(), so we'll do it once then store it in a + # global variable. + global _CACERT_CTX + global _CACERT_PATH + if _CACERT_PATH is None: + # This is slightly janky, the importlib.resources API wants you to + # manage the cleanup of this file, so it doesn't actually return a + # path, it returns a context manager that will give you the path + # when you enter it and will do any cleanup when you leave it. In + # the common case of not needing a temporary file, it will just + # return the file system location and the __exit__() is a no-op. + # + # We also have to hold onto the actual context manager, because + # it will do the cleanup whenever it gets garbage collected, so + # we will also store that at the global level as well. + _CACERT_CTX = as_file(files("certifi").joinpath("cacert.pem")) + _CACERT_PATH = str(_CACERT_CTX.__enter__()) + atexit.register(exit_cacert_ctx) + + return _CACERT_PATH + + def contents() -> str: + return files("certifi").joinpath("cacert.pem").read_text(encoding="ascii") + +else: + + from importlib.resources import path as get_path, read_text + + _CACERT_CTX = None + _CACERT_PATH = None + + def where() -> str: + # This is slightly terrible, but we want to delay extracting the + # file in cases where we're inside of a zipimport situation until + # someone actually calls where(), but we don't want to re-extract + # the file on every call of where(), so we'll do it once then store + # it in a global variable. + global _CACERT_CTX + global _CACERT_PATH + if _CACERT_PATH is None: + # This is slightly janky, the importlib.resources API wants you + # to manage the cleanup of this file, so it doesn't actually + # return a path, it returns a context manager that will give + # you the path when you enter it and will do any cleanup when + # you leave it. In the common case of not needing a temporary + # file, it will just return the file system location and the + # __exit__() is a no-op. + # + # We also have to hold onto the actual context manager, because + # it will do the cleanup whenever it gets garbage collected, so + # we will also store that at the global level as well. + _CACERT_CTX = get_path("certifi", "cacert.pem") + _CACERT_PATH = str(_CACERT_CTX.__enter__()) + atexit.register(exit_cacert_ctx) + + return _CACERT_PATH + + def contents() -> str: + return read_text("certifi", "cacert.pem", encoding="ascii") diff --git a/venv/lib/python3.10/site-packages/certifi/py.typed b/venv/lib/python3.10/site-packages/certifi/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/METADATA b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/METADATA new file mode 100644 index 0000000..8d32edc --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/METADATA @@ -0,0 +1,764 @@ +Metadata-Version: 2.4 +Name: charset-normalizer +Version: 3.4.4 +Summary: The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. +Author-email: "Ahmed R. TAHRI" +Maintainer-email: "Ahmed R. TAHRI" +License: MIT +Project-URL: Changelog, https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md +Project-URL: Documentation, https://charset-normalizer.readthedocs.io/ +Project-URL: Code, https://github.com/jawah/charset_normalizer +Project-URL: Issue tracker, https://github.com/jawah/charset_normalizer/issues +Keywords: encoding,charset,charset-detector,detector,normalization,unicode,chardet,detect +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Text Processing :: Linguistic +Classifier: Topic :: Utilities +Classifier: Typing :: Typed +Requires-Python: >=3.7 +Description-Content-Type: text/markdown +License-File: LICENSE +Provides-Extra: unicode-backport +Dynamic: license-file + +

Charset Detection, for Everyone 👋

+ +
+

+ Featured Packages
+ + Static Badge + + + Static Badge + +

+

+ In other language (unofficial port - by the community)
+ + Static Badge + +

+ +> A library that helps you read text from an unknown charset encoding.
Motivated by `chardet`, +> I'm trying to resolve the issue by taking a new approach. +> All IANA character set names for which the Python core library provides codecs are supported. + +

+ >>>>> 👉 Try Me Online Now, Then Adopt Me 👈 <<<<< +

+ +This project offers you an alternative to **Universal Charset Encoding Detector**, also known as **Chardet**. + +| Feature | [Chardet](https://github.com/chardet/chardet) | Charset Normalizer | [cChardet](https://github.com/PyYoshi/cChardet) | +|--------------------------------------------------|:---------------------------------------------:|:--------------------------------------------------------------------------------------------------:|:-----------------------------------------------:| +| `Fast` | ❌ | ✅ | ✅ | +| `Universal**` | ❌ | ✅ | ❌ | +| `Reliable` **without** distinguishable standards | ❌ | ✅ | ✅ | +| `Reliable` **with** distinguishable standards | ✅ | ✅ | ✅ | +| `License` | LGPL-2.1
_restrictive_ | MIT | MPL-1.1
_restrictive_ | +| `Native Python` | ✅ | ✅ | ❌ | +| `Detect spoken language` | ❌ | ✅ | N/A | +| `UnicodeDecodeError Safety` | ❌ | ✅ | ❌ | +| `Whl Size (min)` | 193.6 kB | 42 kB | ~200 kB | +| `Supported Encoding` | 33 | 🎉 [99](https://charset-normalizer.readthedocs.io/en/latest/user/support.html#supported-encodings) | 40 | + +

+Reading Normalized TextCat Reading Text +

+ +*\*\* : They are clearly using specific code for a specific encoding even if covering most of used one*
+ +## ⚡ Performance + +This package offer better performance than its counterpart Chardet. Here are some numbers. + +| Package | Accuracy | Mean per file (ms) | File per sec (est) | +|-----------------------------------------------|:--------:|:------------------:|:------------------:| +| [chardet](https://github.com/chardet/chardet) | 86 % | 63 ms | 16 file/sec | +| charset-normalizer | **98 %** | **10 ms** | 100 file/sec | + +| Package | 99th percentile | 95th percentile | 50th percentile | +|-----------------------------------------------|:---------------:|:---------------:|:---------------:| +| [chardet](https://github.com/chardet/chardet) | 265 ms | 71 ms | 7 ms | +| charset-normalizer | 100 ms | 50 ms | 5 ms | + +_updated as of december 2024 using CPython 3.12_ + +Chardet's performance on larger file (1MB+) are very poor. Expect huge difference on large payload. + +> Stats are generated using 400+ files using default parameters. More details on used files, see GHA workflows. +> And yes, these results might change at any time. The dataset can be updated to include more files. +> The actual delays heavily depends on your CPU capabilities. The factors should remain the same. +> Keep in mind that the stats are generous and that Chardet accuracy vs our is measured using Chardet initial capability +> (e.g. Supported Encoding) Challenge-them if you want. + +## ✨ Installation + +Using pip: + +```sh +pip install charset-normalizer -U +``` + +## 🚀 Basic Usage + +### CLI +This package comes with a CLI. + +``` +usage: normalizer [-h] [-v] [-a] [-n] [-m] [-r] [-f] [-t THRESHOLD] + file [file ...] + +The Real First Universal Charset Detector. Discover originating encoding used +on text file. Normalize text to unicode. + +positional arguments: + files File(s) to be analysed + +optional arguments: + -h, --help show this help message and exit + -v, --verbose Display complementary information about file if any. + Stdout will contain logs about the detection process. + -a, --with-alternative + Output complementary possibilities if any. Top-level + JSON WILL be a list. + -n, --normalize Permit to normalize input file. If not set, program + does not write anything. + -m, --minimal Only output the charset detected to STDOUT. Disabling + JSON output. + -r, --replace Replace file when trying to normalize it instead of + creating a new one. + -f, --force Replace file without asking if you are sure, use this + flag with caution. + -t THRESHOLD, --threshold THRESHOLD + Define a custom maximum amount of chaos allowed in + decoded content. 0. <= chaos <= 1. + --version Show version information and exit. +``` + +```bash +normalizer ./data/sample.1.fr.srt +``` + +or + +```bash +python -m charset_normalizer ./data/sample.1.fr.srt +``` + +🎉 Since version 1.4.0 the CLI produce easily usable stdout result in JSON format. + +```json +{ + "path": "/home/default/projects/charset_normalizer/data/sample.1.fr.srt", + "encoding": "cp1252", + "encoding_aliases": [ + "1252", + "windows_1252" + ], + "alternative_encodings": [ + "cp1254", + "cp1256", + "cp1258", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + "mbcs" + ], + "language": "French", + "alphabets": [ + "Basic Latin", + "Latin-1 Supplement" + ], + "has_sig_or_bom": false, + "chaos": 0.149, + "coherence": 97.152, + "unicode_path": null, + "is_preferred": true +} +``` + +### Python +*Just print out normalized text* +```python +from charset_normalizer import from_path + +results = from_path('./my_subtitle.srt') + +print(str(results.best())) +``` + +*Upgrade your code without effort* +```python +from charset_normalizer import detect +``` + +The above code will behave the same as **chardet**. We ensure that we offer the best (reasonable) BC result possible. + +See the docs for advanced usage : [readthedocs.io](https://charset-normalizer.readthedocs.io/en/latest/) + +## 😇 Why + +When I started using Chardet, I noticed that it was not suited to my expectations, and I wanted to propose a +reliable alternative using a completely different method. Also! I never back down on a good challenge! + +I **don't care** about the **originating charset** encoding, because **two different tables** can +produce **two identical rendered string.** +What I want is to get readable text, the best I can. + +In a way, **I'm brute forcing text decoding.** How cool is that ? 😎 + +Don't confuse package **ftfy** with charset-normalizer or chardet. ftfy goal is to repair Unicode string whereas charset-normalizer to convert raw file in unknown encoding to unicode. + +## 🍰 How + + - Discard all charset encoding table that could not fit the binary content. + - Measure noise, or the mess once opened (by chunks) with a corresponding charset encoding. + - Extract matches with the lowest mess detected. + - Additionally, we measure coherence / probe for a language. + +**Wait a minute**, what is noise/mess and coherence according to **YOU ?** + +*Noise :* I opened hundred of text files, **written by humans**, with the wrong encoding table. **I observed**, then +**I established** some ground rules about **what is obvious** when **it seems like** a mess (aka. defining noise in rendered text). + I know that my interpretation of what is noise is probably incomplete, feel free to contribute in order to + improve or rewrite it. + +*Coherence :* For each language there is on earth, we have computed ranked letter appearance occurrences (the best we can). So I thought +that intel is worth something here. So I use those records against decoded text to check if I can detect intelligent design. + +## ⚡ Known limitations + + - Language detection is unreliable when text contains two or more languages sharing identical letters. (eg. HTML (english tags) + Turkish content (Sharing Latin characters)) + - Every charset detector heavily depends on sufficient content. In common cases, do not bother run detection on very tiny content. + +## ⚠️ About Python EOLs + +**If you are running:** + +- Python >=2.7,<3.5: Unsupported +- Python 3.5: charset-normalizer < 2.1 +- Python 3.6: charset-normalizer < 3.1 +- Python 3.7: charset-normalizer < 4.0 + +Upgrade your Python interpreter as soon as possible. + +## 👤 Contributing + +Contributions, issues and feature requests are very much welcome.
+Feel free to check [issues page](https://github.com/ousret/charset_normalizer/issues) if you want to contribute. + +## 📝 License + +Copyright © [Ahmed TAHRI @Ousret](https://github.com/Ousret).
+This project is [MIT](https://github.com/Ousret/charset_normalizer/blob/master/LICENSE) licensed. + +Characters frequencies used in this project © 2012 [Denny Vrandečić](http://simia.net/letters/) + +## 💼 For Enterprise + +Professional support for charset-normalizer is available as part of the [Tidelift +Subscription][1]. Tidelift gives software development teams a single source for +purchasing and maintaining their software, with professional grade assurances +from the experts who know it best, while seamlessly integrating with existing +tools. + +[1]: https://tidelift.com/subscription/pkg/pypi-charset-normalizer?utm_source=pypi-charset-normalizer&utm_medium=readme + +[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7297/badge)](https://www.bestpractices.dev/projects/7297) + +# Changelog +All notable changes to charset-normalizer will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). + +## [3.4.4](https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4) (2025-10-13) + +### Changed +- Bound `setuptools` to a specific constraint `setuptools>=68,<=81`. +- Raised upper bound of mypyc for the optional pre-built extension to v1.18.2 + +### Removed +- `setuptools-scm` as a build dependency. + +### Misc +- Enforced hashes in `dev-requirements.txt` and created `ci-requirements.txt` for security purposes. +- Additional pre-built wheels for riscv64, s390x, and armv7l architectures. +- Restore ` multiple.intoto.jsonl` in GitHub releases in addition to individual attestation file per wheel. + +## [3.4.3](https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3) (2025-08-09) + +### Changed +- mypy(c) is no longer a required dependency at build time if `CHARSET_NORMALIZER_USE_MYPYC` isn't set to `1`. (#595) (#583) +- automatically lower confidence on small bytes samples that are not Unicode in `detect` output legacy function. (#391) + +### Added +- Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase. +- Support for Python 3.14 + +### Fixed +- sdist archive contained useless directories. +- automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (#633) + +### Misc +- SBOM are automatically published to the relevant GitHub release to comply with regulatory changes. + Each published wheel comes with its SBOM. We choose CycloneDX as the format. +- Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel. + +## [3.4.2](https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2) (2025-05-02) + +### Fixed +- Addressed the DeprecationWarning in our CLI regarding `argparse.FileType` by backporting the target class into the package. (#591) +- Improved the overall reliability of the detector with CJK Ideographs. (#605) (#587) + +### Changed +- Optional mypyc compilation upgraded to version 1.15 for Python >= 3.8 + +## [3.4.1](https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1) (2024-12-24) + +### Changed +- Project metadata are now stored using `pyproject.toml` instead of `setup.cfg` using setuptools as the build backend. +- Enforce annotation delayed loading for a simpler and consistent types in the project. +- Optional mypyc compilation upgraded to version 1.14 for Python >= 3.8 + +### Added +- pre-commit configuration. +- noxfile. + +### Removed +- `build-requirements.txt` as per using `pyproject.toml` native build configuration. +- `bin/integration.py` and `bin/serve.py` in favor of downstream integration test (see noxfile). +- `setup.cfg` in favor of `pyproject.toml` metadata configuration. +- Unused `utils.range_scan` function. + +### Fixed +- Converting content to Unicode bytes may insert `utf_8` instead of preferred `utf-8`. (#572) +- Deprecation warning "'count' is passed as positional argument" when converting to Unicode bytes on Python 3.13+ + +## [3.4.0](https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0) (2024-10-08) + +### Added +- Argument `--no-preemptive` in the CLI to prevent the detector to search for hints. +- Support for Python 3.13 (#512) + +### Fixed +- Relax the TypeError exception thrown when trying to compare a CharsetMatch with anything else than a CharsetMatch. +- Improved the general reliability of the detector based on user feedbacks. (#520) (#509) (#498) (#407) (#537) +- Declared charset in content (preemptive detection) not changed when converting to utf-8 bytes. (#381) + +## [3.3.2](https://github.com/Ousret/charset_normalizer/compare/3.3.1...3.3.2) (2023-10-31) + +### Fixed +- Unintentional memory usage regression when using large payload that match several encoding (#376) +- Regression on some detection case showcased in the documentation (#371) + +### Added +- Noise (md) probe that identify malformed arabic representation due to the presence of letters in isolated form (credit to my wife) + +## [3.3.1](https://github.com/Ousret/charset_normalizer/compare/3.3.0...3.3.1) (2023-10-22) + +### Changed +- Optional mypyc compilation upgraded to version 1.6.1 for Python >= 3.8 +- Improved the general detection reliability based on reports from the community + +## [3.3.0](https://github.com/Ousret/charset_normalizer/compare/3.2.0...3.3.0) (2023-09-30) + +### Added +- Allow to execute the CLI (e.g. normalizer) through `python -m charset_normalizer.cli` or `python -m charset_normalizer` +- Support for 9 forgotten encoding that are supported by Python but unlisted in `encoding.aliases` as they have no alias (#323) + +### Removed +- (internal) Redundant utils.is_ascii function and unused function is_private_use_only +- (internal) charset_normalizer.assets is moved inside charset_normalizer.constant + +### Changed +- (internal) Unicode code blocks in constants are updated using the latest v15.0.0 definition to improve detection +- Optional mypyc compilation upgraded to version 1.5.1 for Python >= 3.8 + +### Fixed +- Unable to properly sort CharsetMatch when both chaos/noise and coherence were close due to an unreachable condition in \_\_lt\_\_ (#350) + +## [3.2.0](https://github.com/Ousret/charset_normalizer/compare/3.1.0...3.2.0) (2023-06-07) + +### Changed +- Typehint for function `from_path` no longer enforce `PathLike` as its first argument +- Minor improvement over the global detection reliability + +### Added +- Introduce function `is_binary` that relies on main capabilities, and optimized to detect binaries +- Propagate `enable_fallback` argument throughout `from_bytes`, `from_path`, and `from_fp` that allow a deeper control over the detection (default True) +- Explicit support for Python 3.12 + +### Fixed +- Edge case detection failure where a file would contain 'very-long' camel cased word (Issue #289) + +## [3.1.0](https://github.com/Ousret/charset_normalizer/compare/3.0.1...3.1.0) (2023-03-06) + +### Added +- Argument `should_rename_legacy` for legacy function `detect` and disregard any new arguments without errors (PR #262) + +### Removed +- Support for Python 3.6 (PR #260) + +### Changed +- Optional speedup provided by mypy/c 1.0.1 + +## [3.0.1](https://github.com/Ousret/charset_normalizer/compare/3.0.0...3.0.1) (2022-11-18) + +### Fixed +- Multi-bytes cutter/chunk generator did not always cut correctly (PR #233) + +### Changed +- Speedup provided by mypy/c 0.990 on Python >= 3.7 + +## [3.0.0](https://github.com/Ousret/charset_normalizer/compare/2.1.1...3.0.0) (2022-10-20) + +### Added +- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results +- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES +- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio +- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) + +### Changed +- Build with static metadata using 'build' frontend +- Make the language detection stricter +- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 + +### Fixed +- CLI with opt --normalize fail when using full path for files +- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it +- Sphinx warnings when generating the documentation + +### Removed +- Coherence detector no longer return 'Simple English' instead return 'English' +- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' +- Breaking: Method `first()` and `best()` from CharsetMatch +- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) +- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches +- Breaking: Top-level function `normalize` +- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch +- Support for the backport `unicodedata2` + +## [3.0.0rc1](https://github.com/Ousret/charset_normalizer/compare/3.0.0b2...3.0.0rc1) (2022-10-18) + +### Added +- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results +- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES +- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio + +### Changed +- Build with static metadata using 'build' frontend +- Make the language detection stricter + +### Fixed +- CLI with opt --normalize fail when using full path for files +- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it + +### Removed +- Coherence detector no longer return 'Simple English' instead return 'English' +- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' + +## [3.0.0b2](https://github.com/Ousret/charset_normalizer/compare/3.0.0b1...3.0.0b2) (2022-08-21) + +### Added +- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) + +### Removed +- Breaking: Method `first()` and `best()` from CharsetMatch +- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) + +### Fixed +- Sphinx warnings when generating the documentation + +## [3.0.0b1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...3.0.0b1) (2022-08-15) + +### Changed +- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 + +### Removed +- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches +- Breaking: Top-level function `normalize` +- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch +- Support for the backport `unicodedata2` + +## [2.1.1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...2.1.1) (2022-08-19) + +### Deprecated +- Function `normalize` scheduled for removal in 3.0 + +### Changed +- Removed useless call to decode in fn is_unprintable (#206) + +### Fixed +- Third-party library (i18n xgettext) crashing not recognizing utf_8 (PEP 263) with underscore from [@aleksandernovikov](https://github.com/aleksandernovikov) (#204) + +## [2.1.0](https://github.com/Ousret/charset_normalizer/compare/2.0.12...2.1.0) (2022-06-19) + +### Added +- Output the Unicode table version when running the CLI with `--version` (PR #194) + +### Changed +- Re-use decoded buffer for single byte character sets from [@nijel](https://github.com/nijel) (PR #175) +- Fixing some performance bottlenecks from [@deedy5](https://github.com/deedy5) (PR #183) + +### Fixed +- Workaround potential bug in cpython with Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space (PR #175) +- CLI default threshold aligned with the API threshold from [@oleksandr-kuzmenko](https://github.com/oleksandr-kuzmenko) (PR #181) + +### Removed +- Support for Python 3.5 (PR #192) + +### Deprecated +- Use of backport unicodedata from `unicodedata2` as Python is quickly catching up, scheduled for removal in 3.0 (PR #194) + +## [2.0.12](https://github.com/Ousret/charset_normalizer/compare/2.0.11...2.0.12) (2022-02-12) + +### Fixed +- ASCII miss-detection on rare cases (PR #170) + +## [2.0.11](https://github.com/Ousret/charset_normalizer/compare/2.0.10...2.0.11) (2022-01-30) + +### Added +- Explicit support for Python 3.11 (PR #164) + +### Changed +- The logging behavior have been completely reviewed, now using only TRACE and DEBUG levels (PR #163 #165) + +## [2.0.10](https://github.com/Ousret/charset_normalizer/compare/2.0.9...2.0.10) (2022-01-04) + +### Fixed +- Fallback match entries might lead to UnicodeDecodeError for large bytes sequence (PR #154) + +### Changed +- Skipping the language-detection (CD) on ASCII (PR #155) + +## [2.0.9](https://github.com/Ousret/charset_normalizer/compare/2.0.8...2.0.9) (2021-12-03) + +### Changed +- Moderating the logging impact (since 2.0.8) for specific environments (PR #147) + +### Fixed +- Wrong logging level applied when setting kwarg `explain` to True (PR #146) + +## [2.0.8](https://github.com/Ousret/charset_normalizer/compare/2.0.7...2.0.8) (2021-11-24) +### Changed +- Improvement over Vietnamese detection (PR #126) +- MD improvement on trailing data and long foreign (non-pure latin) data (PR #124) +- Efficiency improvements in cd/alphabet_languages from [@adbar](https://github.com/adbar) (PR #122) +- call sum() without an intermediary list following PEP 289 recommendations from [@adbar](https://github.com/adbar) (PR #129) +- Code style as refactored by Sourcery-AI (PR #131) +- Minor adjustment on the MD around european words (PR #133) +- Remove and replace SRTs from assets / tests (PR #139) +- Initialize the library logger with a `NullHandler` by default from [@nmaynes](https://github.com/nmaynes) (PR #135) +- Setting kwarg `explain` to True will add provisionally (bounded to function lifespan) a specific stream handler (PR #135) + +### Fixed +- Fix large (misleading) sequence giving UnicodeDecodeError (PR #137) +- Avoid using too insignificant chunk (PR #137) + +### Added +- Add and expose function `set_logging_handler` to configure a specific StreamHandler from [@nmaynes](https://github.com/nmaynes) (PR #135) +- Add `CHANGELOG.md` entries, format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) (PR #141) + +## [2.0.7](https://github.com/Ousret/charset_normalizer/compare/2.0.6...2.0.7) (2021-10-11) +### Added +- Add support for Kazakh (Cyrillic) language detection (PR #109) + +### Changed +- Further, improve inferring the language from a given single-byte code page (PR #112) +- Vainly trying to leverage PEP263 when PEP3120 is not supported (PR #116) +- Refactoring for potential performance improvements in loops from [@adbar](https://github.com/adbar) (PR #113) +- Various detection improvement (MD+CD) (PR #117) + +### Removed +- Remove redundant logging entry about detected language(s) (PR #115) + +### Fixed +- Fix a minor inconsistency between Python 3.5 and other versions regarding language detection (PR #117 #102) + +## [2.0.6](https://github.com/Ousret/charset_normalizer/compare/2.0.5...2.0.6) (2021-09-18) +### Fixed +- Unforeseen regression with the loss of the backward-compatibility with some older minor of Python 3.5.x (PR #100) +- Fix CLI crash when using --minimal output in certain cases (PR #103) + +### Changed +- Minor improvement to the detection efficiency (less than 1%) (PR #106 #101) + +## [2.0.5](https://github.com/Ousret/charset_normalizer/compare/2.0.4...2.0.5) (2021-09-14) +### Changed +- The project now comply with: flake8, mypy, isort and black to ensure a better overall quality (PR #81) +- The BC-support with v1.x was improved, the old staticmethods are restored (PR #82) +- The Unicode detection is slightly improved (PR #93) +- Add syntax sugar \_\_bool\_\_ for results CharsetMatches list-container (PR #91) + +### Removed +- The project no longer raise warning on tiny content given for detection, will be simply logged as warning instead (PR #92) + +### Fixed +- In some rare case, the chunks extractor could cut in the middle of a multi-byte character and could mislead the mess detection (PR #95) +- Some rare 'space' characters could trip up the UnprintablePlugin/Mess detection (PR #96) +- The MANIFEST.in was not exhaustive (PR #78) + +## [2.0.4](https://github.com/Ousret/charset_normalizer/compare/2.0.3...2.0.4) (2021-07-30) +### Fixed +- The CLI no longer raise an unexpected exception when no encoding has been found (PR #70) +- Fix accessing the 'alphabets' property when the payload contains surrogate characters (PR #68) +- The logger could mislead (explain=True) on detected languages and the impact of one MBCS match (PR #72) +- Submatch factoring could be wrong in rare edge cases (PR #72) +- Multiple files given to the CLI were ignored when publishing results to STDOUT. (After the first path) (PR #72) +- Fix line endings from CRLF to LF for certain project files (PR #67) + +### Changed +- Adjust the MD to lower the sensitivity, thus improving the global detection reliability (PR #69 #76) +- Allow fallback on specified encoding if any (PR #71) + +## [2.0.3](https://github.com/Ousret/charset_normalizer/compare/2.0.2...2.0.3) (2021-07-16) +### Changed +- Part of the detection mechanism has been improved to be less sensitive, resulting in more accurate detection results. Especially ASCII. (PR #63) +- According to the community wishes, the detection will fall back on ASCII or UTF-8 in a last-resort case. (PR #64) + +## [2.0.2](https://github.com/Ousret/charset_normalizer/compare/2.0.1...2.0.2) (2021-07-15) +### Fixed +- Empty/Too small JSON payload miss-detection fixed. Report from [@tseaver](https://github.com/tseaver) (PR #59) + +### Changed +- Don't inject unicodedata2 into sys.modules from [@akx](https://github.com/akx) (PR #57) + +## [2.0.1](https://github.com/Ousret/charset_normalizer/compare/2.0.0...2.0.1) (2021-07-13) +### Fixed +- Make it work where there isn't a filesystem available, dropping assets frequencies.json. Report from [@sethmlarson](https://github.com/sethmlarson). (PR #55) +- Using explain=False permanently disable the verbose output in the current runtime (PR #47) +- One log entry (language target preemptive) was not show in logs when using explain=True (PR #47) +- Fix undesired exception (ValueError) on getitem of instance CharsetMatches (PR #52) + +### Changed +- Public function normalize default args values were not aligned with from_bytes (PR #53) + +### Added +- You may now use charset aliases in cp_isolation and cp_exclusion arguments (PR #47) + +## [2.0.0](https://github.com/Ousret/charset_normalizer/compare/1.4.1...2.0.0) (2021-07-02) +### Changed +- 4x to 5 times faster than the previous 1.4.0 release. At least 2x faster than Chardet. +- Accent has been made on UTF-8 detection, should perform rather instantaneous. +- The backward compatibility with Chardet has been greatly improved. The legacy detect function returns an identical charset name whenever possible. +- The detection mechanism has been slightly improved, now Turkish content is detected correctly (most of the time) +- The program has been rewritten to ease the readability and maintainability. (+Using static typing)+ +- utf_7 detection has been reinstated. + +### Removed +- This package no longer require anything when used with Python 3.5 (Dropped cached_property) +- Removed support for these languages: Catalan, Esperanto, Kazakh, Baque, Volapük, Azeri, Galician, Nynorsk, Macedonian, and Serbocroatian. +- The exception hook on UnicodeDecodeError has been removed. + +### Deprecated +- Methods coherence_non_latin, w_counter, chaos_secondary_pass of the class CharsetMatch are now deprecated and scheduled for removal in v3.0 + +### Fixed +- The CLI output used the relative path of the file(s). Should be absolute. + +## [1.4.1](https://github.com/Ousret/charset_normalizer/compare/1.4.0...1.4.1) (2021-05-28) +### Fixed +- Logger configuration/usage no longer conflict with others (PR #44) + +## [1.4.0](https://github.com/Ousret/charset_normalizer/compare/1.3.9...1.4.0) (2021-05-21) +### Removed +- Using standard logging instead of using the package loguru. +- Dropping nose test framework in favor of the maintained pytest. +- Choose to not use dragonmapper package to help with gibberish Chinese/CJK text. +- Require cached_property only for Python 3.5 due to constraint. Dropping for every other interpreter version. +- Stop support for UTF-7 that does not contain a SIG. +- Dropping PrettyTable, replaced with pure JSON output in CLI. + +### Fixed +- BOM marker in a CharsetNormalizerMatch instance could be False in rare cases even if obviously present. Due to the sub-match factoring process. +- Not searching properly for the BOM when trying utf32/16 parent codec. + +### Changed +- Improving the package final size by compressing frequencies.json. +- Huge improvement over the larges payload. + +### Added +- CLI now produces JSON consumable output. +- Return ASCII if given sequences fit. Given reasonable confidence. + +## [1.3.9](https://github.com/Ousret/charset_normalizer/compare/1.3.8...1.3.9) (2021-05-13) + +### Fixed +- In some very rare cases, you may end up getting encode/decode errors due to a bad bytes payload (PR #40) + +## [1.3.8](https://github.com/Ousret/charset_normalizer/compare/1.3.7...1.3.8) (2021-05-12) + +### Fixed +- Empty given payload for detection may cause an exception if trying to access the `alphabets` property. (PR #39) + +## [1.3.7](https://github.com/Ousret/charset_normalizer/compare/1.3.6...1.3.7) (2021-05-12) + +### Fixed +- The legacy detect function should return UTF-8-SIG if sig is present in the payload. (PR #38) + +## [1.3.6](https://github.com/Ousret/charset_normalizer/compare/1.3.5...1.3.6) (2021-02-09) + +### Changed +- Amend the previous release to allow prettytable 2.0 (PR #35) + +## [1.3.5](https://github.com/Ousret/charset_normalizer/compare/1.3.4...1.3.5) (2021-02-08) + +### Fixed +- Fix error while using the package with a python pre-release interpreter (PR #33) + +### Changed +- Dependencies refactoring, constraints revised. + +### Added +- Add python 3.9 and 3.10 to the supported interpreters + +MIT License + +Copyright (c) 2025 TAHRI Ahmed R. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/RECORD b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/RECORD new file mode 100644 index 0000000..6767780 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/RECORD @@ -0,0 +1,35 @@ +../../../bin/normalizer,sha256=Qx4Ulr0_T8Ol7l5LG__4wa-BP8i2OhaXu4psgYBjtSA,266 +charset_normalizer-3.4.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +charset_normalizer-3.4.4.dist-info/METADATA,sha256=jVuUFBti8dav19YLvWissTihVdF2ozUY4KKMw7jdkBQ,37303 +charset_normalizer-3.4.4.dist-info/RECORD,, +charset_normalizer-3.4.4.dist-info/WHEEL,sha256=DZl4yYurviXJJQsilHH1qAzCRDsdz--oNtDZ-hUrZUk,190 +charset_normalizer-3.4.4.dist-info/entry_points.txt,sha256=ADSTKrkXZ3hhdOVFi6DcUEHQRS0xfxDIE_pEz4wLIXA,65 +charset_normalizer-3.4.4.dist-info/licenses/LICENSE,sha256=bQ1Bv-FwrGx9wkjJpj4lTQ-0WmDVCoJX0K-SxuJJuIc,1071 +charset_normalizer-3.4.4.dist-info/top_level.txt,sha256=7ASyzePr8_xuZWJsnqJjIBtyV8vhEo0wBCv1MPRRi3Q,19 +charset_normalizer/__init__.py,sha256=OKRxRv2Zhnqk00tqkN0c1BtJjm165fWXLydE52IKuHc,1590 +charset_normalizer/__main__.py,sha256=yzYxMR-IhKRHYwcSlavEv8oGdwxsR89mr2X09qXGdps,109 +charset_normalizer/__pycache__/__init__.cpython-310.pyc,, +charset_normalizer/__pycache__/__main__.cpython-310.pyc,, +charset_normalizer/__pycache__/api.cpython-310.pyc,, +charset_normalizer/__pycache__/cd.cpython-310.pyc,, +charset_normalizer/__pycache__/constant.cpython-310.pyc,, +charset_normalizer/__pycache__/legacy.cpython-310.pyc,, +charset_normalizer/__pycache__/md.cpython-310.pyc,, +charset_normalizer/__pycache__/models.cpython-310.pyc,, +charset_normalizer/__pycache__/utils.cpython-310.pyc,, +charset_normalizer/__pycache__/version.cpython-310.pyc,, +charset_normalizer/api.py,sha256=V07i8aVeCD8T2fSia3C-fn0i9t8qQguEBhsqszg32Ns,22668 +charset_normalizer/cd.py,sha256=WKTo1HDb-H9HfCDc3Bfwq5jzS25Ziy9SE2a74SgTq88,12522 +charset_normalizer/cli/__init__.py,sha256=D8I86lFk2-py45JvqxniTirSj_sFyE6sjaY_0-G1shc,136 +charset_normalizer/cli/__main__.py,sha256=dMaXG6IJXRvqq8z2tig7Qb83-BpWTln55ooiku5_uvg,12646 +charset_normalizer/cli/__pycache__/__init__.cpython-310.pyc,, +charset_normalizer/cli/__pycache__/__main__.cpython-310.pyc,, +charset_normalizer/constant.py,sha256=7UVY4ldYhmQMHUdgQ_sgZmzcQ0xxYxpBunqSZ-XJZ8U,42713 +charset_normalizer/legacy.py,sha256=sYBzSpzsRrg_wF4LP536pG64BItw7Tqtc3SMQAHvFLM,2731 +charset_normalizer/md.cpython-310-x86_64-linux-gnu.so,sha256=vmQPHNPc6Z0rbXxiiMeoCQxfjjh5z8umtRgKpBckk7E,15912 +charset_normalizer/md.py,sha256=-_oN3h3_X99nkFfqamD3yu45DC_wfk5odH0Tr_CQiXs,20145 +charset_normalizer/md__mypyc.cpython-310-x86_64-linux-gnu.so,sha256=mIEu_3ENI9UWZgXaH2Nbe2wh501Z-RpM1BR17EkEVWA,286264 +charset_normalizer/models.py,sha256=lKXhOnIPtiakbK3i__J9wpOfzx3JDTKj7Dn3Rg0VaRI,12394 +charset_normalizer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +charset_normalizer/utils.py,sha256=sTejPgrdlNsKNucZfJCxJ95lMTLA0ShHLLE3n5wpT9Q,12170 +charset_normalizer/version.py,sha256=nKE4qBNk5WA4LIJ_yIH_aSDfvtsyizkWMg-PUG-UZVk,115 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL new file mode 100644 index 0000000..6d6bf82 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL @@ -0,0 +1,7 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp310-cp310-manylinux_2_17_x86_64 +Tag: cp310-cp310-manylinux2014_x86_64 +Tag: cp310-cp310-manylinux_2_28_x86_64 + diff --git a/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/entry_points.txt b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/entry_points.txt new file mode 100644 index 0000000..65619e7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +normalizer = charset_normalizer.cli:cli_detect diff --git a/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE new file mode 100644 index 0000000..9725772 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 TAHRI Ahmed R. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/top_level.txt b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/top_level.txt new file mode 100644 index 0000000..66958f0 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer-3.4.4.dist-info/top_level.txt @@ -0,0 +1 @@ +charset_normalizer diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/__init__.py b/venv/lib/python3.10/site-packages/charset_normalizer/__init__.py new file mode 100644 index 0000000..0d3a379 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer/__init__.py @@ -0,0 +1,48 @@ +""" +Charset-Normalizer +~~~~~~~~~~~~~~ +The Real First Universal Charset Detector. +A library that helps you read text from an unknown charset encoding. +Motivated by chardet, This package is trying to resolve the issue by taking a new approach. +All IANA character set names for which the Python core library provides codecs are supported. + +Basic usage: + >>> from charset_normalizer import from_bytes + >>> results = from_bytes('Bсеки човек има право на образование. Oбразованието!'.encode('utf_8')) + >>> best_guess = results.best() + >>> str(best_guess) + 'Bсеки човек има право на образование. Oбразованието!' + +Others methods and usages are available - see the full documentation +at . +:copyright: (c) 2021 by Ahmed TAHRI +:license: MIT, see LICENSE for more details. +""" + +from __future__ import annotations + +import logging + +from .api import from_bytes, from_fp, from_path, is_binary +from .legacy import detect +from .models import CharsetMatch, CharsetMatches +from .utils import set_logging_handler +from .version import VERSION, __version__ + +__all__ = ( + "from_fp", + "from_path", + "from_bytes", + "is_binary", + "detect", + "CharsetMatch", + "CharsetMatches", + "__version__", + "VERSION", + "set_logging_handler", +) + +# Attach a NullHandler to the top level logger by default +# https://docs.python.org/3.3/howto/logging.html#configuring-logging-for-a-library + +logging.getLogger("charset_normalizer").addHandler(logging.NullHandler()) diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/__main__.py b/venv/lib/python3.10/site-packages/charset_normalizer/__main__.py new file mode 100644 index 0000000..e0e76f7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer/__main__.py @@ -0,0 +1,6 @@ +from __future__ import annotations + +from .cli import cli_detect + +if __name__ == "__main__": + cli_detect() diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f2477052a7a1a4e11b22187076b2c7c8d40fbff4 GIT binary patch literal 1634 zcmcIk&2QX96!(5)KfIeZOT7nv>*`PFV@MSb>&#tGL@mMqC z4GR*23WRD;`5pVH z;W+pP2LgRpeq)G#ZqqZYvOuvz2w_`N!$o-h~;1zWH-1;YtL^*o#V>$+rYhZ z>>O7>Uwh*8y4kau|3hb?_c}egP5XyN;vw0DQ(bK37b%*L7rbl zpHo9aBbDcFA?3MfC#|IANN{`dJ0`3dOGQ2v*d&+=bO&F`h<2`EqV z7arPsoBI4&e)j%~SLUCtu4HC}KVIqeUZELMZSXjw+5(zG^Q?09!bBUjdTCaw|8Kai zy9eb~8VL$jil7onG|T&}C}ctyCqqur8Wece8>0-0AIUHiG%>_5nYhrS_hVyH-S_=5 zGjTTbLMi;cOe<>qH;cCEx&2V4Q^m%y>7&)Khc@nQtlNg$iUoA+!PcYw9kt|c8H#qyiE>%Chv zF^2qOT(}sIGLtEav8r18<{V5>BPpACxpZp%6%9_uB%GFhi-v&t zj(vv5BD0}Ip)GIj(QL7l;mIH$5K%Lsoq%s#E0>J z3JKOe<8n=q1jbzX6PiqXSbKh2E{qSo^?SZ%hOW(*m3~Vf`53c=8H~MjTD0y%G#RIx aw&wa4kh;^o-KyTHb}LI2``4>?mi`0c(?BHv literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/__main__.cpython-310.pyc b/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/__main__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d90434f9c6e72d8ab9aed8fa2a117204e88dee96 GIT binary patch literal 323 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 R9P$qo?FoHTkM|WG{15uY@)`gD literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/cd.cpython-310.pyc b/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/cd.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..693308e5740562363a9357376117d27f74a7a489 GIT binary patch literal 9732 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/constant.cpython-310.pyc b/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/constant.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b9bf9701acb6a94a10d1daa69db7a6935d4ff936 GIT binary patch literal 32541 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 SeGf^)c}?woA4%8W{r>=+w=mKG literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/legacy.cpython-310.pyc b/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/legacy.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..32caa2203a17076735d813e45bc6b75b04ca23d7 GIT binary patch literal 2294 zcmZ`*&2JM&6yMnod%dxf5FkK5q){ssERnd-LjfTIO3X*04o$+LzO2@svAyx`jG38D zaO!YqIPo8}6bX)1|B_1WKd{%Hkb3AD3DGyR4#}aN$TM%>ym{}otrl1?J}dta z{|3}w`s4U;;p3)dA-Mwtu?R}66txl3w4KyAZyQh8>P3auSD?b%8|PLoBlKu$jM+H>U8rd2=l zMtf98`AozZSCNW2lXW|070!bB39de1n5wQ*w-!M!0N*4!CHc~47c#}V1vpmQCj0(AeF!q+~SPp zK4o1_V%E0Y&$@JJns1zpa1F#%!Ps=K)#hAc{H80JA3rkrGnrmJE2 zIE#|$&RiHCgDebxwZtj#*i3K3#(<}^u`MrOy4n~CzD>JIHsXXYr4a-3qOn8SP9ups zjnP;QIQwe((w7YxE4nm_xj(e?-Opfh{hovgYqwD$whznb+37GjWKQA#ru$Y*!f~-o88K+yPFFl!lHl z6zrAvz3JWt@nLuNtYuD=CMBbT!&(`7f=^r$>>ya3?Kv`&S%Sk&z@nNT0u55tE7pE# zs_Q98*M_!us-!OPL4@30#`hF1Vu(8wr(CLJj60Ah z5IeHe<>?3tx0BFiqq;dwd90(2cjF|%X{5RXygK!U?=rkAVg;)4?tn77Lj@jjDUA+% zp~V&E?8q;pCu1@jjkr*hfNwZfbz^L65KG+4SXXxr3^bu5LA#L_ix@fPb|!(PI8Nif zfNebH8CWf91Jg*x$@n6MI@EP+a3H*!rIZy-3HP`#278$R&;*VdaNu5Gb{T42;Stm} z0~5f;f~I^YN|pn2 z=mr8%7JUPg#OL3li+i7*2WSox?n7W82_fAs)b}nmpNxP4oOnlfC6jc}j13kN19lpe zNQelc(dX(KZsp}iY{(#Ka;sl-g@0E1fBvDz-zztCugJYfcH=nrGSv&O-0uJUlODgX z2&^~VP{#ebBdYKrX7w}&Q+*+K;F7{KBHKJ>xtqjNQ5En7s1AC2>Ye zo7bZ$1Q)rhz;~hh6ZA6*!Tn$)_W(66bEm^oQ2_y=TV=g07BziVPanaQBXM-bICj*= z#c3^2DzG~Vw7d?JKWn42$bCQS+R$^|_kjz&*IuwcL5s*Q`N)Pp;CfZ$+l#O_Zv)TK z+|oO-3<_Fxbi3{se(3uY&YaVf_Q@v7<0zMV-T1(&EVi)FJ8hM Z`u&%hU$y4#D%^b@xlR@CX_x2U{|ksIgD?O9 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/md.cpython-310.pyc b/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/md.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0959bfb23cc3806ee40738111fdb8380f0b0829d GIT binary patch literal 16049 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�{OxycjO0I=U2FntG&@ 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%0DUv?VIa$Uk-up2hF0+0GX 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/version.cpython-310.pyc b/venv/lib/python3.10/site-packages/charset_normalizer/__pycache__/version.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..202eeee745bf61342b064b5b2e06f25dfcb72906 GIT binary patch literal 325 zcmYjMJx{|h5ViBsl$0WV0_v8bF{NFQ5Mt@TQY0!dWHBZ-#Ko~A+o@>!XJF(nd1c}+ zFyTfFyy5QN-Me=>H6EwHW0LH-@%igO{v-6{1^{R#zM!B06w*MzIw%4NXjp_Se2-}K z0gIT%Ymg1P({%aPD8tUSOdGCb`hD=rpc@e>l_l2qOc&4dMZRz_Uu6TAU`$nsu}d+2 zZf&a>#yap@ZiMllji1J*5!|}uVR^s4y<2?(edINL_<2N?su|jti`gY=wA!%J8pMT~ z)zDc;@@D6TSGA(8 SVAs$eHA5dFa2!R!3H$}Og<4$z literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/api.py b/venv/lib/python3.10/site-packages/charset_normalizer/api.py new file mode 100644 index 0000000..ebd9639 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer/api.py @@ -0,0 +1,669 @@ +from __future__ import annotations + +import logging +from os import PathLike +from typing import BinaryIO + +from .cd import ( + coherence_ratio, + encoding_languages, + mb_encoding_languages, + merge_coherence_ratios, +) +from .constant import IANA_SUPPORTED, TOO_BIG_SEQUENCE, TOO_SMALL_SEQUENCE, TRACE +from .md import mess_ratio +from .models import CharsetMatch, CharsetMatches +from .utils import ( + any_specified_encoding, + cut_sequence_chunks, + iana_name, + identify_sig_or_bom, + is_cp_similar, + is_multi_byte_encoding, + should_strip_sig_or_bom, +) + +logger = logging.getLogger("charset_normalizer") +explain_handler = logging.StreamHandler() +explain_handler.setFormatter( + logging.Formatter("%(asctime)s | %(levelname)s | %(message)s") +) + + +def from_bytes( + sequences: bytes | bytearray, + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.2, + cp_isolation: list[str] | None = None, + cp_exclusion: list[str] | None = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = True, +) -> CharsetMatches: + """ + Given a raw bytes sequence, return the best possibles charset usable to render str objects. + If there is no results, it is a strong indicator that the source is binary/not text. + By default, the process will extract 5 blocks of 512o each to assess the mess and coherence of a given sequence. + And will give up a particular code page after 20% of measured mess. Those criteria are customizable at will. + + The preemptive behavior DOES NOT replace the traditional detection workflow, it prioritize a particular code page + but never take it for granted. Can improve the performance. + + You may want to focus your attention to some code page or/and not others, use cp_isolation and cp_exclusion for that + purpose. + + This function will strip the SIG in the payload/sequence every time except on UTF-16, UTF-32. + By default the library does not setup any handler other than the NullHandler, if you choose to set the 'explain' + toggle to True it will alter the logger configuration to add a StreamHandler that is suitable for debugging. + Custom logging format and handler can be set manually. + """ + + if not isinstance(sequences, (bytearray, bytes)): + raise TypeError( + "Expected object of type bytes or bytearray, got: {}".format( + type(sequences) + ) + ) + + if explain: + previous_logger_level: int = logger.level + logger.addHandler(explain_handler) + logger.setLevel(TRACE) + + length: int = len(sequences) + + if length == 0: + logger.debug("Encoding detection on empty bytes, assuming utf_8 intention.") + if explain: # Defensive: ensure exit path clean handler + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level or logging.WARNING) + return CharsetMatches([CharsetMatch(sequences, "utf_8", 0.0, False, [], "")]) + + if cp_isolation is not None: + logger.log( + TRACE, + "cp_isolation is set. use this flag for debugging purpose. " + "limited list of encoding allowed : %s.", + ", ".join(cp_isolation), + ) + cp_isolation = [iana_name(cp, False) for cp in cp_isolation] + else: + cp_isolation = [] + + if cp_exclusion is not None: + logger.log( + TRACE, + "cp_exclusion is set. use this flag for debugging purpose. " + "limited list of encoding excluded : %s.", + ", ".join(cp_exclusion), + ) + cp_exclusion = [iana_name(cp, False) for cp in cp_exclusion] + else: + cp_exclusion = [] + + if length <= (chunk_size * steps): + logger.log( + TRACE, + "override steps (%i) and chunk_size (%i) as content does not fit (%i byte(s) given) parameters.", + steps, + chunk_size, + length, + ) + steps = 1 + chunk_size = length + + if steps > 1 and length / steps < chunk_size: + chunk_size = int(length / steps) + + is_too_small_sequence: bool = len(sequences) < TOO_SMALL_SEQUENCE + is_too_large_sequence: bool = len(sequences) >= TOO_BIG_SEQUENCE + + if is_too_small_sequence: + logger.log( + TRACE, + "Trying to detect encoding from a tiny portion of ({}) byte(s).".format( + length + ), + ) + elif is_too_large_sequence: + logger.log( + TRACE, + "Using lazy str decoding because the payload is quite large, ({}) byte(s).".format( + length + ), + ) + + prioritized_encodings: list[str] = [] + + specified_encoding: str | None = ( + any_specified_encoding(sequences) if preemptive_behaviour else None + ) + + if specified_encoding is not None: + prioritized_encodings.append(specified_encoding) + logger.log( + TRACE, + "Detected declarative mark in sequence. Priority +1 given for %s.", + specified_encoding, + ) + + tested: set[str] = set() + tested_but_hard_failure: list[str] = [] + tested_but_soft_failure: list[str] = [] + + fallback_ascii: CharsetMatch | None = None + fallback_u8: CharsetMatch | None = None + fallback_specified: CharsetMatch | None = None + + results: CharsetMatches = CharsetMatches() + + early_stop_results: CharsetMatches = CharsetMatches() + + sig_encoding, sig_payload = identify_sig_or_bom(sequences) + + if sig_encoding is not None: + prioritized_encodings.append(sig_encoding) + logger.log( + TRACE, + "Detected a SIG or BOM mark on first %i byte(s). Priority +1 given for %s.", + len(sig_payload), + sig_encoding, + ) + + prioritized_encodings.append("ascii") + + if "utf_8" not in prioritized_encodings: + prioritized_encodings.append("utf_8") + + for encoding_iana in prioritized_encodings + IANA_SUPPORTED: + if cp_isolation and encoding_iana not in cp_isolation: + continue + + if cp_exclusion and encoding_iana in cp_exclusion: + continue + + if encoding_iana in tested: + continue + + tested.add(encoding_iana) + + decoded_payload: str | None = None + bom_or_sig_available: bool = sig_encoding == encoding_iana + strip_sig_or_bom: bool = bom_or_sig_available and should_strip_sig_or_bom( + encoding_iana + ) + + if encoding_iana in {"utf_16", "utf_32"} and not bom_or_sig_available: + logger.log( + TRACE, + "Encoding %s won't be tested as-is because it require a BOM. Will try some sub-encoder LE/BE.", + encoding_iana, + ) + continue + if encoding_iana in {"utf_7"} and not bom_or_sig_available: + logger.log( + TRACE, + "Encoding %s won't be tested as-is because detection is unreliable without BOM/SIG.", + encoding_iana, + ) + continue + + try: + is_multi_byte_decoder: bool = is_multi_byte_encoding(encoding_iana) + except (ModuleNotFoundError, ImportError): + logger.log( + TRACE, + "Encoding %s does not provide an IncrementalDecoder", + encoding_iana, + ) + continue + + try: + if is_too_large_sequence and is_multi_byte_decoder is False: + str( + ( + sequences[: int(50e4)] + if strip_sig_or_bom is False + else sequences[len(sig_payload) : int(50e4)] + ), + encoding=encoding_iana, + ) + else: + decoded_payload = str( + ( + sequences + if strip_sig_or_bom is False + else sequences[len(sig_payload) :] + ), + encoding=encoding_iana, + ) + except (UnicodeDecodeError, LookupError) as e: + if not isinstance(e, LookupError): + logger.log( + TRACE, + "Code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + tested_but_hard_failure.append(encoding_iana) + continue + + similar_soft_failure_test: bool = False + + for encoding_soft_failed in tested_but_soft_failure: + if is_cp_similar(encoding_iana, encoding_soft_failed): + similar_soft_failure_test = True + break + + if similar_soft_failure_test: + logger.log( + TRACE, + "%s is deemed too similar to code page %s and was consider unsuited already. Continuing!", + encoding_iana, + encoding_soft_failed, + ) + continue + + r_ = range( + 0 if not bom_or_sig_available else len(sig_payload), + length, + int(length / steps), + ) + + multi_byte_bonus: bool = ( + is_multi_byte_decoder + and decoded_payload is not None + and len(decoded_payload) < length + ) + + if multi_byte_bonus: + logger.log( + TRACE, + "Code page %s is a multi byte encoding table and it appear that at least one character " + "was encoded using n-bytes.", + encoding_iana, + ) + + max_chunk_gave_up: int = int(len(r_) / 4) + + max_chunk_gave_up = max(max_chunk_gave_up, 2) + early_stop_count: int = 0 + lazy_str_hard_failure = False + + md_chunks: list[str] = [] + md_ratios = [] + + try: + for chunk in cut_sequence_chunks( + sequences, + encoding_iana, + r_, + chunk_size, + bom_or_sig_available, + strip_sig_or_bom, + sig_payload, + is_multi_byte_decoder, + decoded_payload, + ): + md_chunks.append(chunk) + + md_ratios.append( + mess_ratio( + chunk, + threshold, + explain is True and 1 <= len(cp_isolation) <= 2, + ) + ) + + if md_ratios[-1] >= threshold: + early_stop_count += 1 + + if (early_stop_count >= max_chunk_gave_up) or ( + bom_or_sig_available and strip_sig_or_bom is False + ): + break + except ( + UnicodeDecodeError + ) as e: # Lazy str loading may have missed something there + logger.log( + TRACE, + "LazyStr Loading: After MD chunk decode, code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + early_stop_count = max_chunk_gave_up + lazy_str_hard_failure = True + + # We might want to check the sequence again with the whole content + # Only if initial MD tests passes + if ( + not lazy_str_hard_failure + and is_too_large_sequence + and not is_multi_byte_decoder + ): + try: + sequences[int(50e3) :].decode(encoding_iana, errors="strict") + except UnicodeDecodeError as e: + logger.log( + TRACE, + "LazyStr Loading: After final lookup, code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + tested_but_hard_failure.append(encoding_iana) + continue + + mean_mess_ratio: float = sum(md_ratios) / len(md_ratios) if md_ratios else 0.0 + if mean_mess_ratio >= threshold or early_stop_count >= max_chunk_gave_up: + tested_but_soft_failure.append(encoding_iana) + logger.log( + TRACE, + "%s was excluded because of initial chaos probing. Gave up %i time(s). " + "Computed mean chaos is %f %%.", + encoding_iana, + early_stop_count, + round(mean_mess_ratio * 100, ndigits=3), + ) + # Preparing those fallbacks in case we got nothing. + if ( + enable_fallback + and encoding_iana + in ["ascii", "utf_8", specified_encoding, "utf_16", "utf_32"] + and not lazy_str_hard_failure + ): + fallback_entry = CharsetMatch( + sequences, + encoding_iana, + threshold, + bom_or_sig_available, + [], + decoded_payload, + preemptive_declaration=specified_encoding, + ) + if encoding_iana == specified_encoding: + fallback_specified = fallback_entry + elif encoding_iana == "ascii": + fallback_ascii = fallback_entry + else: + fallback_u8 = fallback_entry + continue + + logger.log( + TRACE, + "%s passed initial chaos probing. Mean measured chaos is %f %%", + encoding_iana, + round(mean_mess_ratio * 100, ndigits=3), + ) + + if not is_multi_byte_decoder: + target_languages: list[str] = encoding_languages(encoding_iana) + else: + target_languages = mb_encoding_languages(encoding_iana) + + if target_languages: + logger.log( + TRACE, + "{} should target any language(s) of {}".format( + encoding_iana, str(target_languages) + ), + ) + + cd_ratios = [] + + # We shall skip the CD when its about ASCII + # Most of the time its not relevant to run "language-detection" on it. + if encoding_iana != "ascii": + for chunk in md_chunks: + chunk_languages = coherence_ratio( + chunk, + language_threshold, + ",".join(target_languages) if target_languages else None, + ) + + cd_ratios.append(chunk_languages) + + cd_ratios_merged = merge_coherence_ratios(cd_ratios) + + if cd_ratios_merged: + logger.log( + TRACE, + "We detected language {} using {}".format( + cd_ratios_merged, encoding_iana + ), + ) + + current_match = CharsetMatch( + sequences, + encoding_iana, + mean_mess_ratio, + bom_or_sig_available, + cd_ratios_merged, + ( + decoded_payload + if ( + is_too_large_sequence is False + or encoding_iana in [specified_encoding, "ascii", "utf_8"] + ) + else None + ), + preemptive_declaration=specified_encoding, + ) + + results.append(current_match) + + if ( + encoding_iana in [specified_encoding, "ascii", "utf_8"] + and mean_mess_ratio < 0.1 + ): + # If md says nothing to worry about, then... stop immediately! + if mean_mess_ratio == 0.0: + logger.debug( + "Encoding detection: %s is most likely the one.", + current_match.encoding, + ) + if explain: # Defensive: ensure exit path clean handler + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + return CharsetMatches([current_match]) + + early_stop_results.append(current_match) + + if ( + len(early_stop_results) + and (specified_encoding is None or specified_encoding in tested) + and "ascii" in tested + and "utf_8" in tested + ): + probable_result: CharsetMatch = early_stop_results.best() # type: ignore[assignment] + logger.debug( + "Encoding detection: %s is most likely the one.", + probable_result.encoding, + ) + if explain: # Defensive: ensure exit path clean handler + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + + return CharsetMatches([probable_result]) + + if encoding_iana == sig_encoding: + logger.debug( + "Encoding detection: %s is most likely the one as we detected a BOM or SIG within " + "the beginning of the sequence.", + encoding_iana, + ) + if explain: # Defensive: ensure exit path clean handler + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + return CharsetMatches([results[encoding_iana]]) + + if len(results) == 0: + if fallback_u8 or fallback_ascii or fallback_specified: + logger.log( + TRACE, + "Nothing got out of the detection process. Using ASCII/UTF-8/Specified fallback.", + ) + + if fallback_specified: + logger.debug( + "Encoding detection: %s will be used as a fallback match", + fallback_specified.encoding, + ) + results.append(fallback_specified) + elif ( + (fallback_u8 and fallback_ascii is None) + or ( + fallback_u8 + and fallback_ascii + and fallback_u8.fingerprint != fallback_ascii.fingerprint + ) + or (fallback_u8 is not None) + ): + logger.debug("Encoding detection: utf_8 will be used as a fallback match") + results.append(fallback_u8) + elif fallback_ascii: + logger.debug("Encoding detection: ascii will be used as a fallback match") + results.append(fallback_ascii) + + if results: + logger.debug( + "Encoding detection: Found %s as plausible (best-candidate) for content. With %i alternatives.", + results.best().encoding, # type: ignore + len(results) - 1, + ) + else: + logger.debug("Encoding detection: Unable to determine any suitable charset.") + + if explain: + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + + return results + + +def from_fp( + fp: BinaryIO, + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: list[str] | None = None, + cp_exclusion: list[str] | None = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = True, +) -> CharsetMatches: + """ + Same thing than the function from_bytes but using a file pointer that is already ready. + Will not close the file pointer. + """ + return from_bytes( + fp.read(), + steps, + chunk_size, + threshold, + cp_isolation, + cp_exclusion, + preemptive_behaviour, + explain, + language_threshold, + enable_fallback, + ) + + +def from_path( + path: str | bytes | PathLike, # type: ignore[type-arg] + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: list[str] | None = None, + cp_exclusion: list[str] | None = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = True, +) -> CharsetMatches: + """ + Same thing than the function from_bytes but with one extra step. Opening and reading given file path in binary mode. + Can raise IOError. + """ + with open(path, "rb") as fp: + return from_fp( + fp, + steps, + chunk_size, + threshold, + cp_isolation, + cp_exclusion, + preemptive_behaviour, + explain, + language_threshold, + enable_fallback, + ) + + +def is_binary( + fp_or_path_or_payload: PathLike | str | BinaryIO | bytes, # type: ignore[type-arg] + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: list[str] | None = None, + cp_exclusion: list[str] | None = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = False, +) -> bool: + """ + Detect if the given input (file, bytes, or path) points to a binary file. aka. not a string. + Based on the same main heuristic algorithms and default kwargs at the sole exception that fallbacks match + are disabled to be stricter around ASCII-compatible but unlikely to be a string. + """ + if isinstance(fp_or_path_or_payload, (str, PathLike)): + guesses = from_path( + fp_or_path_or_payload, + steps=steps, + chunk_size=chunk_size, + threshold=threshold, + cp_isolation=cp_isolation, + cp_exclusion=cp_exclusion, + preemptive_behaviour=preemptive_behaviour, + explain=explain, + language_threshold=language_threshold, + enable_fallback=enable_fallback, + ) + elif isinstance( + fp_or_path_or_payload, + ( + bytes, + bytearray, + ), + ): + guesses = from_bytes( + fp_or_path_or_payload, + steps=steps, + chunk_size=chunk_size, + threshold=threshold, + cp_isolation=cp_isolation, + cp_exclusion=cp_exclusion, + preemptive_behaviour=preemptive_behaviour, + explain=explain, + language_threshold=language_threshold, + enable_fallback=enable_fallback, + ) + else: + guesses = from_fp( + fp_or_path_or_payload, + steps=steps, + chunk_size=chunk_size, + threshold=threshold, + cp_isolation=cp_isolation, + cp_exclusion=cp_exclusion, + preemptive_behaviour=preemptive_behaviour, + explain=explain, + language_threshold=language_threshold, + enable_fallback=enable_fallback, + ) + + return not guesses diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/cd.py b/venv/lib/python3.10/site-packages/charset_normalizer/cd.py new file mode 100644 index 0000000..71a3ed5 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer/cd.py @@ -0,0 +1,395 @@ +from __future__ import annotations + +import importlib +from codecs import IncrementalDecoder +from collections import Counter +from functools import lru_cache +from typing import Counter as TypeCounter + +from .constant import ( + FREQUENCIES, + KO_NAMES, + LANGUAGE_SUPPORTED_COUNT, + TOO_SMALL_SEQUENCE, + ZH_NAMES, +) +from .md import is_suspiciously_successive_range +from .models import CoherenceMatches +from .utils import ( + is_accentuated, + is_latin, + is_multi_byte_encoding, + is_unicode_range_secondary, + unicode_range, +) + + +def encoding_unicode_range(iana_name: str) -> list[str]: + """ + Return associated unicode ranges in a single byte code page. + """ + if is_multi_byte_encoding(iana_name): + raise OSError("Function not supported on multi-byte code page") + + decoder = importlib.import_module(f"encodings.{iana_name}").IncrementalDecoder + + p: IncrementalDecoder = decoder(errors="ignore") + seen_ranges: dict[str, int] = {} + character_count: int = 0 + + for i in range(0x40, 0xFF): + chunk: str = p.decode(bytes([i])) + + if chunk: + character_range: str | None = unicode_range(chunk) + + if character_range is None: + continue + + if is_unicode_range_secondary(character_range) is False: + if character_range not in seen_ranges: + seen_ranges[character_range] = 0 + seen_ranges[character_range] += 1 + character_count += 1 + + return sorted( + [ + character_range + for character_range in seen_ranges + if seen_ranges[character_range] / character_count >= 0.15 + ] + ) + + +def unicode_range_languages(primary_range: str) -> list[str]: + """ + Return inferred languages used with a unicode range. + """ + languages: list[str] = [] + + for language, characters in FREQUENCIES.items(): + for character in characters: + if unicode_range(character) == primary_range: + languages.append(language) + break + + return languages + + +@lru_cache() +def encoding_languages(iana_name: str) -> list[str]: + """ + Single-byte encoding language association. Some code page are heavily linked to particular language(s). + This function does the correspondence. + """ + unicode_ranges: list[str] = encoding_unicode_range(iana_name) + primary_range: str | None = None + + for specified_range in unicode_ranges: + if "Latin" not in specified_range: + primary_range = specified_range + break + + if primary_range is None: + return ["Latin Based"] + + return unicode_range_languages(primary_range) + + +@lru_cache() +def mb_encoding_languages(iana_name: str) -> list[str]: + """ + Multi-byte encoding language association. Some code page are heavily linked to particular language(s). + This function does the correspondence. + """ + if ( + iana_name.startswith("shift_") + or iana_name.startswith("iso2022_jp") + or iana_name.startswith("euc_j") + or iana_name == "cp932" + ): + return ["Japanese"] + if iana_name.startswith("gb") or iana_name in ZH_NAMES: + return ["Chinese"] + if iana_name.startswith("iso2022_kr") or iana_name in KO_NAMES: + return ["Korean"] + + return [] + + +@lru_cache(maxsize=LANGUAGE_SUPPORTED_COUNT) +def get_target_features(language: str) -> tuple[bool, bool]: + """ + Determine main aspects from a supported language if it contains accents and if is pure Latin. + """ + target_have_accents: bool = False + target_pure_latin: bool = True + + for character in FREQUENCIES[language]: + if not target_have_accents and is_accentuated(character): + target_have_accents = True + if target_pure_latin and is_latin(character) is False: + target_pure_latin = False + + return target_have_accents, target_pure_latin + + +def alphabet_languages( + characters: list[str], ignore_non_latin: bool = False +) -> list[str]: + """ + Return associated languages associated to given characters. + """ + languages: list[tuple[str, float]] = [] + + source_have_accents = any(is_accentuated(character) for character in characters) + + for language, language_characters in FREQUENCIES.items(): + target_have_accents, target_pure_latin = get_target_features(language) + + if ignore_non_latin and target_pure_latin is False: + continue + + if target_have_accents is False and source_have_accents: + continue + + character_count: int = len(language_characters) + + character_match_count: int = len( + [c for c in language_characters if c in characters] + ) + + ratio: float = character_match_count / character_count + + if ratio >= 0.2: + languages.append((language, ratio)) + + languages = sorted(languages, key=lambda x: x[1], reverse=True) + + return [compatible_language[0] for compatible_language in languages] + + +def characters_popularity_compare( + language: str, ordered_characters: list[str] +) -> float: + """ + Determine if a ordered characters list (by occurrence from most appearance to rarest) match a particular language. + The result is a ratio between 0. (absolutely no correspondence) and 1. (near perfect fit). + Beware that is function is not strict on the match in order to ease the detection. (Meaning close match is 1.) + """ + if language not in FREQUENCIES: + raise ValueError(f"{language} not available") + + character_approved_count: int = 0 + FREQUENCIES_language_set = set(FREQUENCIES[language]) + + ordered_characters_count: int = len(ordered_characters) + target_language_characters_count: int = len(FREQUENCIES[language]) + + large_alphabet: bool = target_language_characters_count > 26 + + for character, character_rank in zip( + ordered_characters, range(0, ordered_characters_count) + ): + if character not in FREQUENCIES_language_set: + continue + + character_rank_in_language: int = FREQUENCIES[language].index(character) + expected_projection_ratio: float = ( + target_language_characters_count / ordered_characters_count + ) + character_rank_projection: int = int(character_rank * expected_projection_ratio) + + if ( + large_alphabet is False + and abs(character_rank_projection - character_rank_in_language) > 4 + ): + continue + + if ( + large_alphabet is True + and abs(character_rank_projection - character_rank_in_language) + < target_language_characters_count / 3 + ): + character_approved_count += 1 + continue + + characters_before_source: list[str] = FREQUENCIES[language][ + 0:character_rank_in_language + ] + characters_after_source: list[str] = FREQUENCIES[language][ + character_rank_in_language: + ] + characters_before: list[str] = ordered_characters[0:character_rank] + characters_after: list[str] = ordered_characters[character_rank:] + + before_match_count: int = len( + set(characters_before) & set(characters_before_source) + ) + + after_match_count: int = len( + set(characters_after) & set(characters_after_source) + ) + + if len(characters_before_source) == 0 and before_match_count <= 4: + character_approved_count += 1 + continue + + if len(characters_after_source) == 0 and after_match_count <= 4: + character_approved_count += 1 + continue + + if ( + before_match_count / len(characters_before_source) >= 0.4 + or after_match_count / len(characters_after_source) >= 0.4 + ): + character_approved_count += 1 + continue + + return character_approved_count / len(ordered_characters) + + +def alpha_unicode_split(decoded_sequence: str) -> list[str]: + """ + Given a decoded text sequence, return a list of str. Unicode range / alphabet separation. + Ex. a text containing English/Latin with a bit a Hebrew will return two items in the resulting list; + One containing the latin letters and the other hebrew. + """ + layers: dict[str, str] = {} + + for character in decoded_sequence: + if character.isalpha() is False: + continue + + character_range: str | None = unicode_range(character) + + if character_range is None: + continue + + layer_target_range: str | None = None + + for discovered_range in layers: + if ( + is_suspiciously_successive_range(discovered_range, character_range) + is False + ): + layer_target_range = discovered_range + break + + if layer_target_range is None: + layer_target_range = character_range + + if layer_target_range not in layers: + layers[layer_target_range] = character.lower() + continue + + layers[layer_target_range] += character.lower() + + return list(layers.values()) + + +def merge_coherence_ratios(results: list[CoherenceMatches]) -> CoherenceMatches: + """ + This function merge results previously given by the function coherence_ratio. + The return type is the same as coherence_ratio. + """ + per_language_ratios: dict[str, list[float]] = {} + for result in results: + for sub_result in result: + language, ratio = sub_result + if language not in per_language_ratios: + per_language_ratios[language] = [ratio] + continue + per_language_ratios[language].append(ratio) + + merge = [ + ( + language, + round( + sum(per_language_ratios[language]) / len(per_language_ratios[language]), + 4, + ), + ) + for language in per_language_ratios + ] + + return sorted(merge, key=lambda x: x[1], reverse=True) + + +def filter_alt_coherence_matches(results: CoherenceMatches) -> CoherenceMatches: + """ + We shall NOT return "English—" in CoherenceMatches because it is an alternative + of "English". This function only keeps the best match and remove the em-dash in it. + """ + index_results: dict[str, list[float]] = dict() + + for result in results: + language, ratio = result + no_em_name: str = language.replace("—", "") + + if no_em_name not in index_results: + index_results[no_em_name] = [] + + index_results[no_em_name].append(ratio) + + if any(len(index_results[e]) > 1 for e in index_results): + filtered_results: CoherenceMatches = [] + + for language in index_results: + filtered_results.append((language, max(index_results[language]))) + + return filtered_results + + return results + + +@lru_cache(maxsize=2048) +def coherence_ratio( + decoded_sequence: str, threshold: float = 0.1, lg_inclusion: str | None = None +) -> CoherenceMatches: + """ + Detect ANY language that can be identified in given sequence. The sequence will be analysed by layers. + A layer = Character extraction by alphabets/ranges. + """ + + results: list[tuple[str, float]] = [] + ignore_non_latin: bool = False + + sufficient_match_count: int = 0 + + lg_inclusion_list = lg_inclusion.split(",") if lg_inclusion is not None else [] + if "Latin Based" in lg_inclusion_list: + ignore_non_latin = True + lg_inclusion_list.remove("Latin Based") + + for layer in alpha_unicode_split(decoded_sequence): + sequence_frequencies: TypeCounter[str] = Counter(layer) + most_common = sequence_frequencies.most_common() + + character_count: int = sum(o for c, o in most_common) + + if character_count <= TOO_SMALL_SEQUENCE: + continue + + popular_character_ordered: list[str] = [c for c, o in most_common] + + for language in lg_inclusion_list or alphabet_languages( + popular_character_ordered, ignore_non_latin + ): + ratio: float = characters_popularity_compare( + language, popular_character_ordered + ) + + if ratio < threshold: + continue + elif ratio >= 0.8: + sufficient_match_count += 1 + + results.append((language, round(ratio, 4))) + + if sufficient_match_count >= 3: + break + + return sorted( + filter_alt_coherence_matches(results), key=lambda x: x[1], reverse=True + ) diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/cli/__init__.py b/venv/lib/python3.10/site-packages/charset_normalizer/cli/__init__.py new file mode 100644 index 0000000..543a5a4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer/cli/__init__.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +from .__main__ import cli_detect, query_yes_no + +__all__ = ( + "cli_detect", + "query_yes_no", +) diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/cli/__main__.py b/venv/lib/python3.10/site-packages/charset_normalizer/cli/__main__.py new file mode 100644 index 0000000..cb64156 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer/cli/__main__.py @@ -0,0 +1,381 @@ +from __future__ import annotations + +import argparse +import sys +import typing +from json import dumps +from os.path import abspath, basename, dirname, join, realpath +from platform import python_version +from unicodedata import unidata_version + +import charset_normalizer.md as md_module +from charset_normalizer import from_fp +from charset_normalizer.models import CliDetectionResult +from charset_normalizer.version import __version__ + + +def query_yes_no(question: str, default: str = "yes") -> bool: + """Ask a yes/no question via input() and return their answer. + + "question" is a string that is presented to the user. + "default" is the presumed answer if the user just hits . + It must be "yes" (the default), "no" or None (meaning + an answer is required of the user). + + The "answer" return value is True for "yes" or False for "no". + + Credit goes to (c) https://stackoverflow.com/questions/3041986/apt-command-line-interface-like-yes-no-input + """ + valid = {"yes": True, "y": True, "ye": True, "no": False, "n": False} + if default is None: + prompt = " [y/n] " + elif default == "yes": + prompt = " [Y/n] " + elif default == "no": + prompt = " [y/N] " + else: + raise ValueError("invalid default answer: '%s'" % default) + + while True: + sys.stdout.write(question + prompt) + choice = input().lower() + if default is not None and choice == "": + return valid[default] + elif choice in valid: + return valid[choice] + else: + sys.stdout.write("Please respond with 'yes' or 'no' (or 'y' or 'n').\n") + + +class FileType: + """Factory for creating file object types + + Instances of FileType are typically passed as type= arguments to the + ArgumentParser add_argument() method. + + Keyword Arguments: + - mode -- A string indicating how the file is to be opened. Accepts the + same values as the builtin open() function. + - bufsize -- The file's desired buffer size. Accepts the same values as + the builtin open() function. + - encoding -- The file's encoding. Accepts the same values as the + builtin open() function. + - errors -- A string indicating how encoding and decoding errors are to + be handled. Accepts the same value as the builtin open() function. + + Backported from CPython 3.12 + """ + + def __init__( + self, + mode: str = "r", + bufsize: int = -1, + encoding: str | None = None, + errors: str | None = None, + ): + self._mode = mode + self._bufsize = bufsize + self._encoding = encoding + self._errors = errors + + def __call__(self, string: str) -> typing.IO: # type: ignore[type-arg] + # the special argument "-" means sys.std{in,out} + if string == "-": + if "r" in self._mode: + return sys.stdin.buffer if "b" in self._mode else sys.stdin + elif any(c in self._mode for c in "wax"): + return sys.stdout.buffer if "b" in self._mode else sys.stdout + else: + msg = f'argument "-" with mode {self._mode}' + raise ValueError(msg) + + # all other arguments are used as file names + try: + return open(string, self._mode, self._bufsize, self._encoding, self._errors) + except OSError as e: + message = f"can't open '{string}': {e}" + raise argparse.ArgumentTypeError(message) + + def __repr__(self) -> str: + args = self._mode, self._bufsize + kwargs = [("encoding", self._encoding), ("errors", self._errors)] + args_str = ", ".join( + [repr(arg) for arg in args if arg != -1] + + [f"{kw}={arg!r}" for kw, arg in kwargs if arg is not None] + ) + return f"{type(self).__name__}({args_str})" + + +def cli_detect(argv: list[str] | None = None) -> int: + """ + CLI assistant using ARGV and ArgumentParser + :param argv: + :return: 0 if everything is fine, anything else equal trouble + """ + parser = argparse.ArgumentParser( + description="The Real First Universal Charset Detector. " + "Discover originating encoding used on text file. " + "Normalize text to unicode." + ) + + parser.add_argument( + "files", type=FileType("rb"), nargs="+", help="File(s) to be analysed" + ) + parser.add_argument( + "-v", + "--verbose", + action="store_true", + default=False, + dest="verbose", + help="Display complementary information about file if any. " + "Stdout will contain logs about the detection process.", + ) + parser.add_argument( + "-a", + "--with-alternative", + action="store_true", + default=False, + dest="alternatives", + help="Output complementary possibilities if any. Top-level JSON WILL be a list.", + ) + parser.add_argument( + "-n", + "--normalize", + action="store_true", + default=False, + dest="normalize", + help="Permit to normalize input file. If not set, program does not write anything.", + ) + parser.add_argument( + "-m", + "--minimal", + action="store_true", + default=False, + dest="minimal", + help="Only output the charset detected to STDOUT. Disabling JSON output.", + ) + parser.add_argument( + "-r", + "--replace", + action="store_true", + default=False, + dest="replace", + help="Replace file when trying to normalize it instead of creating a new one.", + ) + parser.add_argument( + "-f", + "--force", + action="store_true", + default=False, + dest="force", + help="Replace file without asking if you are sure, use this flag with caution.", + ) + parser.add_argument( + "-i", + "--no-preemptive", + action="store_true", + default=False, + dest="no_preemptive", + help="Disable looking at a charset declaration to hint the detector.", + ) + parser.add_argument( + "-t", + "--threshold", + action="store", + default=0.2, + type=float, + dest="threshold", + help="Define a custom maximum amount of noise allowed in decoded content. 0. <= noise <= 1.", + ) + parser.add_argument( + "--version", + action="version", + version="Charset-Normalizer {} - Python {} - Unicode {} - SpeedUp {}".format( + __version__, + python_version(), + unidata_version, + "OFF" if md_module.__file__.lower().endswith(".py") else "ON", + ), + help="Show version information and exit.", + ) + + args = parser.parse_args(argv) + + if args.replace is True and args.normalize is False: + if args.files: + for my_file in args.files: + my_file.close() + print("Use --replace in addition of --normalize only.", file=sys.stderr) + return 1 + + if args.force is True and args.replace is False: + if args.files: + for my_file in args.files: + my_file.close() + print("Use --force in addition of --replace only.", file=sys.stderr) + return 1 + + if args.threshold < 0.0 or args.threshold > 1.0: + if args.files: + for my_file in args.files: + my_file.close() + print("--threshold VALUE should be between 0. AND 1.", file=sys.stderr) + return 1 + + x_ = [] + + for my_file in args.files: + matches = from_fp( + my_file, + threshold=args.threshold, + explain=args.verbose, + preemptive_behaviour=args.no_preemptive is False, + ) + + best_guess = matches.best() + + if best_guess is None: + print( + 'Unable to identify originating encoding for "{}". {}'.format( + my_file.name, + ( + "Maybe try increasing maximum amount of chaos." + if args.threshold < 1.0 + else "" + ), + ), + file=sys.stderr, + ) + x_.append( + CliDetectionResult( + abspath(my_file.name), + None, + [], + [], + "Unknown", + [], + False, + 1.0, + 0.0, + None, + True, + ) + ) + else: + x_.append( + CliDetectionResult( + abspath(my_file.name), + best_guess.encoding, + best_guess.encoding_aliases, + [ + cp + for cp in best_guess.could_be_from_charset + if cp != best_guess.encoding + ], + best_guess.language, + best_guess.alphabets, + best_guess.bom, + best_guess.percent_chaos, + best_guess.percent_coherence, + None, + True, + ) + ) + + if len(matches) > 1 and args.alternatives: + for el in matches: + if el != best_guess: + x_.append( + CliDetectionResult( + abspath(my_file.name), + el.encoding, + el.encoding_aliases, + [ + cp + for cp in el.could_be_from_charset + if cp != el.encoding + ], + el.language, + el.alphabets, + el.bom, + el.percent_chaos, + el.percent_coherence, + None, + False, + ) + ) + + if args.normalize is True: + if best_guess.encoding.startswith("utf") is True: + print( + '"{}" file does not need to be normalized, as it already came from unicode.'.format( + my_file.name + ), + file=sys.stderr, + ) + if my_file.closed is False: + my_file.close() + continue + + dir_path = dirname(realpath(my_file.name)) + file_name = basename(realpath(my_file.name)) + + o_: list[str] = file_name.split(".") + + if args.replace is False: + o_.insert(-1, best_guess.encoding) + if my_file.closed is False: + my_file.close() + elif ( + args.force is False + and query_yes_no( + 'Are you sure to normalize "{}" by replacing it ?'.format( + my_file.name + ), + "no", + ) + is False + ): + if my_file.closed is False: + my_file.close() + continue + + try: + x_[0].unicode_path = join(dir_path, ".".join(o_)) + + with open(x_[0].unicode_path, "wb") as fp: + fp.write(best_guess.output()) + except OSError as e: + print(str(e), file=sys.stderr) + if my_file.closed is False: + my_file.close() + return 2 + + if my_file.closed is False: + my_file.close() + + if args.minimal is False: + print( + dumps( + [el.__dict__ for el in x_] if len(x_) > 1 else x_[0].__dict__, + ensure_ascii=True, + indent=4, + ) + ) + else: + for my_file in args.files: + print( + ", ".join( + [ + el.encoding or "undefined" + for el in x_ + if el.path == abspath(my_file.name) + ] + ) + ) + + return 0 + + +if __name__ == "__main__": + cli_detect() diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4230ba9b78188834bac2678b08e45465b3256a4d GIT binary patch literal 326 zcmYk1J5s|i5QZf`5@V7X&cM*PNJOAwhG94X4V{}EVF|3DhmqvW7%sq7xRP6{T!AX9 zjxBcg`)8kSy{-w`5?WBg6<-!gZMh zd%N9Tv!J5f47_{Ciom*_`yeCU;tkj86Pxf@2B55p0NY`jt9#?bsO3ZYCM?jc$VFCV ECq3I(dH?_b literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-310.pyc b/venv/lib/python3.10/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5f6e41002518ec88154c044ebb0a676f5daef0c7 GIT binary patch literal 9335 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 B+{6F? literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/constant.py b/venv/lib/python3.10/site-packages/charset_normalizer/constant.py new file mode 100644 index 0000000..cc71a01 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer/constant.py @@ -0,0 +1,2015 @@ +from __future__ import annotations + +from codecs import BOM_UTF8, BOM_UTF16_BE, BOM_UTF16_LE, BOM_UTF32_BE, BOM_UTF32_LE +from encodings.aliases import aliases +from re import IGNORECASE +from re import compile as re_compile + +# Contain for each eligible encoding a list of/item bytes SIG/BOM +ENCODING_MARKS: dict[str, bytes | list[bytes]] = { + "utf_8": BOM_UTF8, + "utf_7": [ + b"\x2b\x2f\x76\x38", + b"\x2b\x2f\x76\x39", + b"\x2b\x2f\x76\x2b", + b"\x2b\x2f\x76\x2f", + b"\x2b\x2f\x76\x38\x2d", + ], + "gb18030": b"\x84\x31\x95\x33", + "utf_32": [BOM_UTF32_BE, BOM_UTF32_LE], + "utf_16": [BOM_UTF16_BE, BOM_UTF16_LE], +} + +TOO_SMALL_SEQUENCE: int = 32 +TOO_BIG_SEQUENCE: int = int(10e6) + +UTF8_MAXIMAL_ALLOCATION: int = 1_112_064 + +# Up-to-date Unicode ucd/15.0.0 +UNICODE_RANGES_COMBINED: dict[str, range] = { + "Control character": range(32), + "Basic Latin": range(32, 128), + "Latin-1 Supplement": range(128, 256), + "Latin Extended-A": range(256, 384), + "Latin Extended-B": range(384, 592), + "IPA Extensions": range(592, 688), + "Spacing Modifier Letters": range(688, 768), + "Combining Diacritical Marks": range(768, 880), + "Greek and Coptic": range(880, 1024), + "Cyrillic": range(1024, 1280), + "Cyrillic Supplement": range(1280, 1328), + "Armenian": range(1328, 1424), + "Hebrew": range(1424, 1536), + "Arabic": range(1536, 1792), + "Syriac": range(1792, 1872), + "Arabic Supplement": range(1872, 1920), + "Thaana": range(1920, 1984), + "NKo": range(1984, 2048), + "Samaritan": range(2048, 2112), + "Mandaic": range(2112, 2144), + "Syriac Supplement": range(2144, 2160), + "Arabic Extended-B": range(2160, 2208), + "Arabic Extended-A": range(2208, 2304), + "Devanagari": range(2304, 2432), + "Bengali": range(2432, 2560), + "Gurmukhi": range(2560, 2688), + "Gujarati": range(2688, 2816), + "Oriya": range(2816, 2944), + "Tamil": range(2944, 3072), + "Telugu": range(3072, 3200), + "Kannada": range(3200, 3328), + "Malayalam": range(3328, 3456), + "Sinhala": range(3456, 3584), + "Thai": range(3584, 3712), + "Lao": range(3712, 3840), + "Tibetan": range(3840, 4096), + "Myanmar": range(4096, 4256), + "Georgian": range(4256, 4352), + "Hangul Jamo": range(4352, 4608), + "Ethiopic": range(4608, 4992), + "Ethiopic Supplement": range(4992, 5024), + "Cherokee": range(5024, 5120), + "Unified Canadian Aboriginal Syllabics": range(5120, 5760), + "Ogham": range(5760, 5792), + "Runic": range(5792, 5888), + "Tagalog": range(5888, 5920), + "Hanunoo": range(5920, 5952), + "Buhid": range(5952, 5984), + "Tagbanwa": range(5984, 6016), + "Khmer": range(6016, 6144), + "Mongolian": range(6144, 6320), + "Unified Canadian Aboriginal Syllabics Extended": range(6320, 6400), + "Limbu": range(6400, 6480), + "Tai Le": range(6480, 6528), + "New Tai Lue": range(6528, 6624), + "Khmer Symbols": range(6624, 6656), + "Buginese": range(6656, 6688), + "Tai Tham": range(6688, 6832), + "Combining Diacritical Marks Extended": range(6832, 6912), + "Balinese": range(6912, 7040), + "Sundanese": range(7040, 7104), + "Batak": range(7104, 7168), + "Lepcha": range(7168, 7248), + "Ol Chiki": range(7248, 7296), + "Cyrillic Extended-C": range(7296, 7312), + "Georgian Extended": range(7312, 7360), + "Sundanese Supplement": range(7360, 7376), + "Vedic Extensions": range(7376, 7424), + "Phonetic Extensions": range(7424, 7552), + "Phonetic Extensions Supplement": range(7552, 7616), + "Combining Diacritical Marks Supplement": range(7616, 7680), + "Latin Extended Additional": range(7680, 7936), + "Greek Extended": range(7936, 8192), + "General Punctuation": range(8192, 8304), + "Superscripts and Subscripts": range(8304, 8352), + "Currency Symbols": range(8352, 8400), + "Combining Diacritical Marks for Symbols": range(8400, 8448), + "Letterlike Symbols": range(8448, 8528), + "Number Forms": range(8528, 8592), + "Arrows": range(8592, 8704), + "Mathematical Operators": range(8704, 8960), + "Miscellaneous Technical": range(8960, 9216), + "Control Pictures": range(9216, 9280), + "Optical Character Recognition": range(9280, 9312), + "Enclosed Alphanumerics": range(9312, 9472), + "Box Drawing": range(9472, 9600), + "Block Elements": range(9600, 9632), + "Geometric Shapes": range(9632, 9728), + "Miscellaneous Symbols": range(9728, 9984), + "Dingbats": range(9984, 10176), + "Miscellaneous Mathematical Symbols-A": range(10176, 10224), + "Supplemental Arrows-A": range(10224, 10240), + "Braille Patterns": range(10240, 10496), + "Supplemental Arrows-B": range(10496, 10624), + "Miscellaneous Mathematical Symbols-B": range(10624, 10752), + "Supplemental Mathematical Operators": range(10752, 11008), + "Miscellaneous Symbols and Arrows": range(11008, 11264), + "Glagolitic": range(11264, 11360), + "Latin Extended-C": range(11360, 11392), + "Coptic": range(11392, 11520), + "Georgian Supplement": range(11520, 11568), + "Tifinagh": range(11568, 11648), + "Ethiopic Extended": range(11648, 11744), + "Cyrillic Extended-A": range(11744, 11776), + "Supplemental Punctuation": range(11776, 11904), + "CJK Radicals Supplement": range(11904, 12032), + "Kangxi Radicals": range(12032, 12256), + "Ideographic Description Characters": range(12272, 12288), + "CJK Symbols and Punctuation": range(12288, 12352), + "Hiragana": range(12352, 12448), + "Katakana": range(12448, 12544), + "Bopomofo": range(12544, 12592), + "Hangul Compatibility Jamo": range(12592, 12688), + "Kanbun": range(12688, 12704), + "Bopomofo Extended": range(12704, 12736), + "CJK Strokes": range(12736, 12784), + "Katakana Phonetic Extensions": range(12784, 12800), + "Enclosed CJK Letters and Months": range(12800, 13056), + "CJK Compatibility": range(13056, 13312), + "CJK Unified Ideographs Extension A": range(13312, 19904), + "Yijing Hexagram Symbols": range(19904, 19968), + "CJK Unified Ideographs": range(19968, 40960), + "Yi Syllables": range(40960, 42128), + "Yi Radicals": range(42128, 42192), + "Lisu": range(42192, 42240), + "Vai": range(42240, 42560), + "Cyrillic Extended-B": range(42560, 42656), + "Bamum": range(42656, 42752), + "Modifier Tone Letters": range(42752, 42784), + "Latin Extended-D": range(42784, 43008), + "Syloti Nagri": range(43008, 43056), + "Common Indic Number Forms": range(43056, 43072), + "Phags-pa": range(43072, 43136), + "Saurashtra": range(43136, 43232), + "Devanagari Extended": range(43232, 43264), + "Kayah Li": range(43264, 43312), + "Rejang": range(43312, 43360), + "Hangul Jamo Extended-A": range(43360, 43392), + "Javanese": range(43392, 43488), + "Myanmar Extended-B": range(43488, 43520), + "Cham": range(43520, 43616), + "Myanmar Extended-A": range(43616, 43648), + "Tai Viet": range(43648, 43744), + "Meetei Mayek Extensions": range(43744, 43776), + "Ethiopic Extended-A": range(43776, 43824), + "Latin Extended-E": range(43824, 43888), + "Cherokee Supplement": range(43888, 43968), + "Meetei Mayek": range(43968, 44032), + "Hangul Syllables": range(44032, 55216), + "Hangul Jamo Extended-B": range(55216, 55296), + "High Surrogates": range(55296, 56192), + "High Private Use Surrogates": range(56192, 56320), + "Low Surrogates": range(56320, 57344), + "Private Use Area": range(57344, 63744), + "CJK Compatibility Ideographs": range(63744, 64256), + "Alphabetic Presentation Forms": range(64256, 64336), + "Arabic Presentation Forms-A": range(64336, 65024), + "Variation Selectors": range(65024, 65040), + "Vertical Forms": range(65040, 65056), + "Combining Half Marks": range(65056, 65072), + "CJK Compatibility Forms": range(65072, 65104), + "Small Form Variants": range(65104, 65136), + "Arabic Presentation Forms-B": range(65136, 65280), + "Halfwidth and Fullwidth Forms": range(65280, 65520), + "Specials": range(65520, 65536), + "Linear B Syllabary": range(65536, 65664), + "Linear B Ideograms": range(65664, 65792), + "Aegean Numbers": range(65792, 65856), + "Ancient Greek Numbers": range(65856, 65936), + "Ancient Symbols": range(65936, 66000), + "Phaistos Disc": range(66000, 66048), + "Lycian": range(66176, 66208), + "Carian": range(66208, 66272), + "Coptic Epact Numbers": range(66272, 66304), + "Old Italic": range(66304, 66352), + "Gothic": range(66352, 66384), + "Old Permic": range(66384, 66432), + "Ugaritic": range(66432, 66464), + "Old Persian": range(66464, 66528), + "Deseret": range(66560, 66640), + "Shavian": range(66640, 66688), + "Osmanya": range(66688, 66736), + "Osage": range(66736, 66816), + "Elbasan": range(66816, 66864), + "Caucasian Albanian": range(66864, 66928), + "Vithkuqi": range(66928, 67008), + "Linear A": range(67072, 67456), + "Latin Extended-F": range(67456, 67520), + "Cypriot Syllabary": range(67584, 67648), + "Imperial Aramaic": range(67648, 67680), + "Palmyrene": range(67680, 67712), + "Nabataean": range(67712, 67760), + "Hatran": range(67808, 67840), + "Phoenician": range(67840, 67872), + "Lydian": range(67872, 67904), + "Meroitic Hieroglyphs": range(67968, 68000), + "Meroitic Cursive": range(68000, 68096), + "Kharoshthi": range(68096, 68192), + "Old South Arabian": range(68192, 68224), + "Old North Arabian": range(68224, 68256), + "Manichaean": range(68288, 68352), + "Avestan": range(68352, 68416), + "Inscriptional Parthian": range(68416, 68448), + "Inscriptional Pahlavi": range(68448, 68480), + "Psalter Pahlavi": range(68480, 68528), + "Old Turkic": range(68608, 68688), + "Old Hungarian": range(68736, 68864), + "Hanifi Rohingya": range(68864, 68928), + "Rumi Numeral Symbols": range(69216, 69248), + "Yezidi": range(69248, 69312), + "Arabic Extended-C": range(69312, 69376), + "Old Sogdian": range(69376, 69424), + "Sogdian": range(69424, 69488), + "Old Uyghur": range(69488, 69552), + "Chorasmian": range(69552, 69600), + "Elymaic": range(69600, 69632), + "Brahmi": range(69632, 69760), + "Kaithi": range(69760, 69840), + "Sora Sompeng": range(69840, 69888), + "Chakma": range(69888, 69968), + "Mahajani": range(69968, 70016), + "Sharada": range(70016, 70112), + "Sinhala Archaic Numbers": range(70112, 70144), + "Khojki": range(70144, 70224), + "Multani": range(70272, 70320), + "Khudawadi": range(70320, 70400), + "Grantha": range(70400, 70528), + "Newa": range(70656, 70784), + "Tirhuta": range(70784, 70880), + "Siddham": range(71040, 71168), + "Modi": range(71168, 71264), + "Mongolian Supplement": range(71264, 71296), + "Takri": range(71296, 71376), + "Ahom": range(71424, 71504), + "Dogra": range(71680, 71760), + "Warang Citi": range(71840, 71936), + "Dives Akuru": range(71936, 72032), + "Nandinagari": range(72096, 72192), + "Zanabazar Square": range(72192, 72272), + "Soyombo": range(72272, 72368), + "Unified Canadian Aboriginal Syllabics Extended-A": range(72368, 72384), + "Pau Cin Hau": range(72384, 72448), + "Devanagari Extended-A": range(72448, 72544), + "Bhaiksuki": range(72704, 72816), + "Marchen": range(72816, 72896), + "Masaram Gondi": range(72960, 73056), + "Gunjala Gondi": range(73056, 73136), + "Makasar": range(73440, 73472), + "Kawi": range(73472, 73568), + "Lisu Supplement": range(73648, 73664), + "Tamil Supplement": range(73664, 73728), + "Cuneiform": range(73728, 74752), + "Cuneiform Numbers and Punctuation": range(74752, 74880), + "Early Dynastic Cuneiform": range(74880, 75088), + "Cypro-Minoan": range(77712, 77824), + "Egyptian Hieroglyphs": range(77824, 78896), + "Egyptian Hieroglyph Format Controls": range(78896, 78944), + "Anatolian Hieroglyphs": range(82944, 83584), + "Bamum Supplement": range(92160, 92736), + "Mro": range(92736, 92784), + "Tangsa": range(92784, 92880), + "Bassa Vah": range(92880, 92928), + "Pahawh Hmong": range(92928, 93072), + "Medefaidrin": range(93760, 93856), + "Miao": range(93952, 94112), + "Ideographic Symbols and Punctuation": range(94176, 94208), + "Tangut": range(94208, 100352), + "Tangut Components": range(100352, 101120), + "Khitan Small Script": range(101120, 101632), + "Tangut Supplement": range(101632, 101760), + "Kana Extended-B": range(110576, 110592), + "Kana Supplement": range(110592, 110848), + "Kana Extended-A": range(110848, 110896), + "Small Kana Extension": range(110896, 110960), + "Nushu": range(110960, 111360), + "Duployan": range(113664, 113824), + "Shorthand Format Controls": range(113824, 113840), + "Znamenny Musical Notation": range(118528, 118736), + "Byzantine Musical Symbols": range(118784, 119040), + "Musical Symbols": range(119040, 119296), + "Ancient Greek Musical Notation": range(119296, 119376), + "Kaktovik Numerals": range(119488, 119520), + "Mayan Numerals": range(119520, 119552), + "Tai Xuan Jing Symbols": range(119552, 119648), + "Counting Rod Numerals": range(119648, 119680), + "Mathematical Alphanumeric Symbols": range(119808, 120832), + "Sutton SignWriting": range(120832, 121520), + "Latin Extended-G": range(122624, 122880), + "Glagolitic Supplement": range(122880, 122928), + "Cyrillic Extended-D": range(122928, 123024), + "Nyiakeng Puachue Hmong": range(123136, 123216), + "Toto": range(123536, 123584), + "Wancho": range(123584, 123648), + "Nag Mundari": range(124112, 124160), + "Ethiopic Extended-B": range(124896, 124928), + "Mende Kikakui": range(124928, 125152), + "Adlam": range(125184, 125280), + "Indic Siyaq Numbers": range(126064, 126144), + "Ottoman Siyaq Numbers": range(126208, 126288), + "Arabic Mathematical Alphabetic Symbols": range(126464, 126720), + "Mahjong Tiles": range(126976, 127024), + "Domino Tiles": range(127024, 127136), + "Playing Cards": range(127136, 127232), + "Enclosed Alphanumeric Supplement": range(127232, 127488), + "Enclosed Ideographic Supplement": range(127488, 127744), + "Miscellaneous Symbols and Pictographs": range(127744, 128512), + "Emoticons range(Emoji)": range(128512, 128592), + "Ornamental Dingbats": range(128592, 128640), + "Transport and Map Symbols": range(128640, 128768), + "Alchemical Symbols": range(128768, 128896), + "Geometric Shapes Extended": range(128896, 129024), + "Supplemental Arrows-C": range(129024, 129280), + "Supplemental Symbols and Pictographs": range(129280, 129536), + "Chess Symbols": range(129536, 129648), + "Symbols and Pictographs Extended-A": range(129648, 129792), + "Symbols for Legacy Computing": range(129792, 130048), + "CJK Unified Ideographs Extension B": range(131072, 173792), + "CJK Unified Ideographs Extension C": range(173824, 177984), + "CJK Unified Ideographs Extension D": range(177984, 178208), + "CJK Unified Ideographs Extension E": range(178208, 183984), + "CJK Unified Ideographs Extension F": range(183984, 191472), + "CJK Compatibility Ideographs Supplement": range(194560, 195104), + "CJK Unified Ideographs Extension G": range(196608, 201552), + "CJK Unified Ideographs Extension H": range(201552, 205744), + "Tags": range(917504, 917632), + "Variation Selectors Supplement": range(917760, 918000), + "Supplementary Private Use Area-A": range(983040, 1048576), + "Supplementary Private Use Area-B": range(1048576, 1114112), +} + + +UNICODE_SECONDARY_RANGE_KEYWORD: list[str] = [ + "Supplement", + "Extended", + "Extensions", + "Modifier", + "Marks", + "Punctuation", + "Symbols", + "Forms", + "Operators", + "Miscellaneous", + "Drawing", + "Block", + "Shapes", + "Supplemental", + "Tags", +] + +RE_POSSIBLE_ENCODING_INDICATION = re_compile( + r"(?:(?:encoding)|(?:charset)|(?:coding))(?:[\:= ]{1,10})(?:[\"\']?)([a-zA-Z0-9\-_]+)(?:[\"\']?)", + IGNORECASE, +) + +IANA_NO_ALIASES = [ + "cp720", + "cp737", + "cp856", + "cp874", + "cp875", + "cp1006", + "koi8_r", + "koi8_t", + "koi8_u", +] + +IANA_SUPPORTED: list[str] = sorted( + filter( + lambda x: x.endswith("_codec") is False + and x not in {"rot_13", "tactis", "mbcs"}, + list(set(aliases.values())) + IANA_NO_ALIASES, + ) +) + +IANA_SUPPORTED_COUNT: int = len(IANA_SUPPORTED) + +# pre-computed code page that are similar using the function cp_similarity. +IANA_SUPPORTED_SIMILAR: dict[str, list[str]] = { + "cp037": ["cp1026", "cp1140", "cp273", "cp500"], + "cp1026": ["cp037", "cp1140", "cp273", "cp500"], + "cp1125": ["cp866"], + "cp1140": ["cp037", "cp1026", "cp273", "cp500"], + "cp1250": ["iso8859_2"], + "cp1251": ["kz1048", "ptcp154"], + "cp1252": ["iso8859_15", "iso8859_9", "latin_1"], + "cp1253": ["iso8859_7"], + "cp1254": ["iso8859_15", "iso8859_9", "latin_1"], + "cp1257": ["iso8859_13"], + "cp273": ["cp037", "cp1026", "cp1140", "cp500"], + "cp437": ["cp850", "cp858", "cp860", "cp861", "cp862", "cp863", "cp865"], + "cp500": ["cp037", "cp1026", "cp1140", "cp273"], + "cp850": ["cp437", "cp857", "cp858", "cp865"], + "cp857": ["cp850", "cp858", "cp865"], + "cp858": ["cp437", "cp850", "cp857", "cp865"], + "cp860": ["cp437", "cp861", "cp862", "cp863", "cp865"], + "cp861": ["cp437", "cp860", "cp862", "cp863", "cp865"], + "cp862": ["cp437", "cp860", "cp861", "cp863", "cp865"], + "cp863": ["cp437", "cp860", "cp861", "cp862", "cp865"], + "cp865": ["cp437", "cp850", "cp857", "cp858", "cp860", "cp861", "cp862", "cp863"], + "cp866": ["cp1125"], + "iso8859_10": ["iso8859_14", "iso8859_15", "iso8859_4", "iso8859_9", "latin_1"], + "iso8859_11": ["tis_620"], + "iso8859_13": ["cp1257"], + "iso8859_14": [ + "iso8859_10", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + ], + "iso8859_15": [ + "cp1252", + "cp1254", + "iso8859_10", + "iso8859_14", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + ], + "iso8859_16": [ + "iso8859_14", + "iso8859_15", + "iso8859_2", + "iso8859_3", + "iso8859_9", + "latin_1", + ], + "iso8859_2": ["cp1250", "iso8859_16", "iso8859_4"], + "iso8859_3": ["iso8859_14", "iso8859_15", "iso8859_16", "iso8859_9", "latin_1"], + "iso8859_4": ["iso8859_10", "iso8859_2", "iso8859_9", "latin_1"], + "iso8859_7": ["cp1253"], + "iso8859_9": [ + "cp1252", + "cp1254", + "cp1258", + "iso8859_10", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_4", + "latin_1", + ], + "kz1048": ["cp1251", "ptcp154"], + "latin_1": [ + "cp1252", + "cp1254", + "cp1258", + "iso8859_10", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_4", + "iso8859_9", + ], + "mac_iceland": ["mac_roman", "mac_turkish"], + "mac_roman": ["mac_iceland", "mac_turkish"], + "mac_turkish": ["mac_iceland", "mac_roman"], + "ptcp154": ["cp1251", "kz1048"], + "tis_620": ["iso8859_11"], +} + + +CHARDET_CORRESPONDENCE: dict[str, str] = { + "iso2022_kr": "ISO-2022-KR", + "iso2022_jp": "ISO-2022-JP", + "euc_kr": "EUC-KR", + "tis_620": "TIS-620", + "utf_32": "UTF-32", + "euc_jp": "EUC-JP", + "koi8_r": "KOI8-R", + "iso8859_1": "ISO-8859-1", + "iso8859_2": "ISO-8859-2", + "iso8859_5": "ISO-8859-5", + "iso8859_6": "ISO-8859-6", + "iso8859_7": "ISO-8859-7", + "iso8859_8": "ISO-8859-8", + "utf_16": "UTF-16", + "cp855": "IBM855", + "mac_cyrillic": "MacCyrillic", + "gb2312": "GB2312", + "gb18030": "GB18030", + "cp932": "CP932", + "cp866": "IBM866", + "utf_8": "utf-8", + "utf_8_sig": "UTF-8-SIG", + "shift_jis": "SHIFT_JIS", + "big5": "Big5", + "cp1250": "windows-1250", + "cp1251": "windows-1251", + "cp1252": "Windows-1252", + "cp1253": "windows-1253", + "cp1255": "windows-1255", + "cp1256": "windows-1256", + "cp1254": "Windows-1254", + "cp949": "CP949", +} + + +COMMON_SAFE_ASCII_CHARACTERS: set[str] = { + "<", + ">", + "=", + ":", + "/", + "&", + ";", + "{", + "}", + "[", + "]", + ",", + "|", + '"', + "-", + "(", + ")", +} + +# Sample character sets — replace with full lists if needed +COMMON_CHINESE_CHARACTERS = "的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制机当使点从业本去把性好应开它合还因由其些然前外天政四日那社义事平形相全表间样与关各重新线内数正心反你明看原又么利比或但质气第向道命此变条只没结解问意建月公无系军很情者最立代想已通并提直题党程展五果料象员革位入常文总次品式活设及管特件长求老头基资边流路级少图山统接知较将组见计别她手角期根论运农指几九区强放决西被干做必战先回则任取据处队南给色光门即保治北造百规热领七海口东导器压志世金增争济阶油思术极交受联什认六共权收证改清己美再采转更单风切打白教速花带安场身车例真务具万每目至达走积示议声报斗完类八离华名确才科张信马节话米整空元况今集温传土许步群广石记需段研界拉林律叫且究观越织装影算低持音众书布复容儿须际商非验连断深难近矿千周委素技备半办青省列习响约支般史感劳便团往酸历市克何除消构府太准精值号率族维划选标写存候毛亲快效斯院查江型眼王按格养易置派层片始却专状育厂京识适属圆包火住调满县局照参红细引听该铁价严龙飞" + +COMMON_JAPANESE_CHARACTERS = "日一国年大十二本中長出三時行見月分後前生五間上東四今金九入学高円子外八六下来気小七山話女北午百書先名川千水半男西電校語土木聞食車何南万毎白天母火右読友左休父雨" + +COMMON_KOREAN_CHARACTERS = "一二三四五六七八九十百千萬上下左右中人女子大小山川日月火水木金土父母天地國名年時文校學生" + +# Combine all into a set +COMMON_CJK_CHARACTERS = set( + "".join( + [ + COMMON_CHINESE_CHARACTERS, + COMMON_JAPANESE_CHARACTERS, + COMMON_KOREAN_CHARACTERS, + ] + ) +) + +KO_NAMES: set[str] = {"johab", "cp949", "euc_kr"} +ZH_NAMES: set[str] = {"big5", "cp950", "big5hkscs", "hz"} + +# Logging LEVEL below DEBUG +TRACE: int = 5 + + +# Language label that contain the em dash "—" +# character are to be considered alternative seq to origin +FREQUENCIES: dict[str, list[str]] = { + "English": [ + "e", + "a", + "t", + "i", + "o", + "n", + "s", + "r", + "h", + "l", + "d", + "c", + "u", + "m", + "f", + "p", + "g", + "w", + "y", + "b", + "v", + "k", + "x", + "j", + "z", + "q", + ], + "English—": [ + "e", + "a", + "t", + "i", + "o", + "n", + "s", + "r", + "h", + "l", + "d", + "c", + "m", + "u", + "f", + "p", + "g", + "w", + "b", + "y", + "v", + "k", + "j", + "x", + "z", + "q", + ], + "German": [ + "e", + "n", + "i", + "r", + "s", + "t", + "a", + "d", + "h", + "u", + "l", + "g", + "o", + "c", + "m", + "b", + "f", + "k", + "w", + "z", + "p", + "v", + "ü", + "ä", + "ö", + "j", + ], + "French": [ + "e", + "a", + "s", + "n", + "i", + "t", + "r", + "l", + "u", + "o", + "d", + "c", + "p", + "m", + "é", + "v", + "g", + "f", + "b", + "h", + "q", + "à", + "x", + "è", + "y", + "j", + ], + "Dutch": [ + "e", + "n", + "a", + "i", + "r", + "t", + "o", + "d", + "s", + "l", + "g", + "h", + "v", + "m", + "u", + "k", + "c", + "p", + "b", + "w", + "j", + "z", + "f", + "y", + "x", + "ë", + ], + "Italian": [ + "e", + "i", + "a", + "o", + "n", + "l", + "t", + "r", + "s", + "c", + "d", + "u", + "p", + "m", + "g", + "v", + "f", + "b", + "z", + "h", + "q", + "è", + "à", + "k", + "y", + "ò", + ], + "Polish": [ + "a", + "i", + "o", + "e", + "n", + "r", + "z", + "w", + "s", + "c", + "t", + "k", + "y", + "d", + "p", + "m", + "u", + "l", + "j", + "ł", + "g", + "b", + "h", + "ą", + "ę", + "ó", + ], + "Spanish": [ + "e", + "a", + "o", + "n", + "s", + "r", + "i", + "l", + "d", + "t", + "c", + "u", + "m", + "p", + "b", + "g", + "v", + "f", + "y", + "ó", + "h", + "q", + "í", + "j", + "z", + "á", + ], + "Russian": [ + "о", + "а", + "е", + "и", + "н", + "с", + "т", + "р", + "в", + "л", + "к", + "м", + "д", + "п", + "у", + "г", + "я", + "ы", + "з", + "б", + "й", + "ь", + "ч", + "х", + "ж", + "ц", + ], + # Jap-Kanji + "Japanese": [ + "人", + "一", + "大", + "亅", + "丁", + "丨", + "竹", + "笑", + "口", + "日", + "今", + "二", + "彳", + "行", + "十", + "土", + "丶", + "寸", + "寺", + "時", + "乙", + "丿", + "乂", + "气", + "気", + "冂", + "巾", + "亠", + "市", + "目", + "儿", + "見", + "八", + "小", + "凵", + "県", + "月", + "彐", + "門", + "間", + "木", + "東", + "山", + "出", + "本", + "中", + "刀", + "分", + "耳", + "又", + "取", + "最", + "言", + "田", + "心", + "思", + "刂", + "前", + "京", + "尹", + "事", + "生", + "厶", + "云", + "会", + "未", + "来", + "白", + "冫", + "楽", + "灬", + "馬", + "尸", + "尺", + "駅", + "明", + "耂", + "者", + "了", + "阝", + "都", + "高", + "卜", + "占", + "厂", + "广", + "店", + "子", + "申", + "奄", + "亻", + "俺", + "上", + "方", + "冖", + "学", + "衣", + "艮", + "食", + "自", + ], + # Jap-Katakana + "Japanese—": [ + "ー", + "ン", + "ス", + "・", + "ル", + "ト", + "リ", + "イ", + "ア", + "ラ", + "ッ", + "ク", + "ド", + "シ", + "レ", + "ジ", + "タ", + "フ", + "ロ", + "カ", + "テ", + "マ", + "ィ", + "グ", + "バ", + "ム", + "プ", + "オ", + "コ", + "デ", + "ニ", + "ウ", + "メ", + "サ", + "ビ", + "ナ", + "ブ", + "ャ", + "エ", + "ュ", + "チ", + "キ", + "ズ", + "ダ", + "パ", + "ミ", + "ェ", + "ョ", + "ハ", + "セ", + "ベ", + "ガ", + "モ", + "ツ", + "ネ", + "ボ", + "ソ", + "ノ", + "ァ", + "ヴ", + "ワ", + "ポ", + "ペ", + "ピ", + "ケ", + "ゴ", + "ギ", + "ザ", + "ホ", + "ゲ", + "ォ", + "ヤ", + "ヒ", + "ユ", + "ヨ", + "ヘ", + "ゼ", + "ヌ", + "ゥ", + "ゾ", + "ヶ", + "ヂ", + "ヲ", + "ヅ", + "ヵ", + "ヱ", + "ヰ", + "ヮ", + "ヽ", + "゠", + "ヾ", + "ヷ", + "ヿ", + "ヸ", + "ヹ", + "ヺ", + ], + # Jap-Hiragana + "Japanese——": [ + "の", + "に", + "る", + "た", + "と", + "は", + "し", + "い", + "を", + "で", + "て", + "が", + "な", + "れ", + "か", + "ら", + "さ", + "っ", + "り", + "す", + "あ", + "も", + "こ", + "ま", + "う", + "く", + "よ", + "き", + "ん", + "め", + "お", + "け", + "そ", + "つ", + "だ", + "や", + "え", + "ど", + "わ", + "ち", + "み", + "せ", + "じ", + "ば", + "へ", + "び", + "ず", + "ろ", + "ほ", + "げ", + "む", + "べ", + "ひ", + "ょ", + "ゆ", + "ぶ", + "ご", + "ゃ", + "ね", + "ふ", + "ぐ", + "ぎ", + "ぼ", + "ゅ", + "づ", + "ざ", + "ぞ", + "ぬ", + "ぜ", + "ぱ", + "ぽ", + "ぷ", + "ぴ", + "ぃ", + "ぁ", + "ぇ", + "ぺ", + "ゞ", + "ぢ", + "ぉ", + "ぅ", + "ゐ", + "ゝ", + "ゑ", + "゛", + "゜", + "ゎ", + "ゔ", + "゚", + "ゟ", + "゙", + "ゕ", + "ゖ", + ], + "Portuguese": [ + "a", + "e", + "o", + "s", + "i", + "r", + "d", + "n", + "t", + "m", + "u", + "c", + "l", + "p", + "g", + "v", + "b", + "f", + "h", + "ã", + "q", + "é", + "ç", + "á", + "z", + "í", + ], + "Swedish": [ + "e", + "a", + "n", + "r", + "t", + "s", + "i", + "l", + "d", + "o", + "m", + "k", + "g", + "v", + "h", + "f", + "u", + "p", + "ä", + "c", + "b", + "ö", + "å", + "y", + "j", + "x", + ], + "Chinese": [ + "的", + "一", + "是", + "不", + "了", + "在", + "人", + "有", + "我", + "他", + "这", + "个", + "们", + "中", + "来", + "上", + "大", + "为", + "和", + "国", + "地", + "到", + "以", + "说", + "时", + "要", + "就", + "出", + "会", + "可", + "也", + "你", + "对", + "生", + "能", + "而", + "子", + "那", + "得", + "于", + "着", + "下", + "自", + "之", + "年", + "过", + "发", + "后", + "作", + "里", + "用", + "道", + "行", + "所", + "然", + "家", + "种", + "事", + "成", + "方", + "多", + "经", + "么", + "去", + "法", + "学", + "如", + "都", + "同", + "现", + "当", + "没", + "动", + "面", + "起", + "看", + "定", + "天", + "分", + "还", + "进", + "好", + "小", + "部", + "其", + "些", + "主", + "样", + "理", + "心", + "她", + "本", + "前", + "开", + "但", + "因", + "只", + "从", + "想", + "实", + ], + "Ukrainian": [ + "о", + "а", + "н", + "і", + "и", + "р", + "в", + "т", + "е", + "с", + "к", + "л", + "у", + "д", + "м", + "п", + "з", + "я", + "ь", + "б", + "г", + "й", + "ч", + "х", + "ц", + "ї", + ], + "Norwegian": [ + "e", + "r", + "n", + "t", + "a", + "s", + "i", + "o", + "l", + "d", + "g", + "k", + "m", + "v", + "f", + "p", + "u", + "b", + "h", + "å", + "y", + "j", + "ø", + "c", + "æ", + "w", + ], + "Finnish": [ + "a", + "i", + "n", + "t", + "e", + "s", + "l", + "o", + "u", + "k", + "ä", + "m", + "r", + "v", + "j", + "h", + "p", + "y", + "d", + "ö", + "g", + "c", + "b", + "f", + "w", + "z", + ], + "Vietnamese": [ + "n", + "h", + "t", + "i", + "c", + "g", + "a", + "o", + "u", + "m", + "l", + "r", + "à", + "đ", + "s", + "e", + "v", + "p", + "b", + "y", + "ư", + "d", + "á", + "k", + "ộ", + "ế", + ], + "Czech": [ + "o", + "e", + "a", + "n", + "t", + "s", + "i", + "l", + "v", + "r", + "k", + "d", + "u", + "m", + "p", + "í", + "c", + "h", + "z", + "á", + "y", + "j", + "b", + "ě", + "é", + "ř", + ], + "Hungarian": [ + "e", + "a", + "t", + "l", + "s", + "n", + "k", + "r", + "i", + "o", + "z", + "á", + "é", + "g", + "m", + "b", + "y", + "v", + "d", + "h", + "u", + "p", + "j", + "ö", + "f", + "c", + ], + "Korean": [ + "이", + "다", + "에", + "의", + "는", + "로", + "하", + "을", + "가", + "고", + "지", + "서", + "한", + "은", + "기", + "으", + "년", + "대", + "사", + "시", + "를", + "리", + "도", + "인", + "스", + "일", + ], + "Indonesian": [ + "a", + "n", + "e", + "i", + "r", + "t", + "u", + "s", + "d", + "k", + "m", + "l", + "g", + "p", + "b", + "o", + "h", + "y", + "j", + "c", + "w", + "f", + "v", + "z", + "x", + "q", + ], + "Turkish": [ + "a", + "e", + "i", + "n", + "r", + "l", + "ı", + "k", + "d", + "t", + "s", + "m", + "y", + "u", + "o", + "b", + "ü", + "ş", + "v", + "g", + "z", + "h", + "c", + "p", + "ç", + "ğ", + ], + "Romanian": [ + "e", + "i", + "a", + "r", + "n", + "t", + "u", + "l", + "o", + "c", + "s", + "d", + "p", + "m", + "ă", + "f", + "v", + "î", + "g", + "b", + "ș", + "ț", + "z", + "h", + "â", + "j", + ], + "Farsi": [ + "ا", + "ی", + "ر", + "د", + "ن", + "ه", + "و", + "م", + "ت", + "ب", + "س", + "ل", + "ک", + "ش", + "ز", + "ف", + "گ", + "ع", + "خ", + "ق", + "ج", + "آ", + "پ", + "ح", + "ط", + "ص", + ], + "Arabic": [ + "ا", + "ل", + "ي", + "م", + "و", + "ن", + "ر", + "ت", + "ب", + "ة", + "ع", + "د", + "س", + "ف", + "ه", + "ك", + "ق", + "أ", + "ح", + "ج", + "ش", + "ط", + "ص", + "ى", + "خ", + "إ", + ], + "Danish": [ + "e", + "r", + "n", + "t", + "a", + "i", + "s", + "d", + "l", + "o", + "g", + "m", + "k", + "f", + "v", + "u", + "b", + "h", + "p", + "å", + "y", + "ø", + "æ", + "c", + "j", + "w", + ], + "Serbian": [ + "а", + "и", + "о", + "е", + "н", + "р", + "с", + "у", + "т", + "к", + "ј", + "в", + "д", + "м", + "п", + "л", + "г", + "з", + "б", + "a", + "i", + "e", + "o", + "n", + "ц", + "ш", + ], + "Lithuanian": [ + "i", + "a", + "s", + "o", + "r", + "e", + "t", + "n", + "u", + "k", + "m", + "l", + "p", + "v", + "d", + "j", + "g", + "ė", + "b", + "y", + "ų", + "š", + "ž", + "c", + "ą", + "į", + ], + "Slovene": [ + "e", + "a", + "i", + "o", + "n", + "r", + "s", + "l", + "t", + "j", + "v", + "k", + "d", + "p", + "m", + "u", + "z", + "b", + "g", + "h", + "č", + "c", + "š", + "ž", + "f", + "y", + ], + "Slovak": [ + "o", + "a", + "e", + "n", + "i", + "r", + "v", + "t", + "s", + "l", + "k", + "d", + "m", + "p", + "u", + "c", + "h", + "j", + "b", + "z", + "á", + "y", + "ý", + "í", + "č", + "é", + ], + "Hebrew": [ + "י", + "ו", + "ה", + "ל", + "ר", + "ב", + "ת", + "מ", + "א", + "ש", + "נ", + "ע", + "ם", + "ד", + "ק", + "ח", + "פ", + "ס", + "כ", + "ג", + "ט", + "צ", + "ן", + "ז", + "ך", + ], + "Bulgarian": [ + "а", + "и", + "о", + "е", + "н", + "т", + "р", + "с", + "в", + "л", + "к", + "д", + "п", + "м", + "з", + "г", + "я", + "ъ", + "у", + "б", + "ч", + "ц", + "й", + "ж", + "щ", + "х", + ], + "Croatian": [ + "a", + "i", + "o", + "e", + "n", + "r", + "j", + "s", + "t", + "u", + "k", + "l", + "v", + "d", + "m", + "p", + "g", + "z", + "b", + "c", + "č", + "h", + "š", + "ž", + "ć", + "f", + ], + "Hindi": [ + "क", + "र", + "स", + "न", + "त", + "म", + "ह", + "प", + "य", + "ल", + "व", + "ज", + "द", + "ग", + "ब", + "श", + "ट", + "अ", + "ए", + "थ", + "भ", + "ड", + "च", + "ध", + "ष", + "इ", + ], + "Estonian": [ + "a", + "i", + "e", + "s", + "t", + "l", + "u", + "n", + "o", + "k", + "r", + "d", + "m", + "v", + "g", + "p", + "j", + "h", + "ä", + "b", + "õ", + "ü", + "f", + "c", + "ö", + "y", + ], + "Thai": [ + "า", + "น", + "ร", + "อ", + "ก", + "เ", + "ง", + "ม", + "ย", + "ล", + "ว", + "ด", + "ท", + "ส", + "ต", + "ะ", + "ป", + "บ", + "ค", + "ห", + "แ", + "จ", + "พ", + "ช", + "ข", + "ใ", + ], + "Greek": [ + "α", + "τ", + "ο", + "ι", + "ε", + "ν", + "ρ", + "σ", + "κ", + "η", + "π", + "ς", + "υ", + "μ", + "λ", + "ί", + "ό", + "ά", + "γ", + "έ", + "δ", + "ή", + "ω", + "χ", + "θ", + "ύ", + ], + "Tamil": [ + "க", + "த", + "ப", + "ட", + "ர", + "ம", + "ல", + "ன", + "வ", + "ற", + "ய", + "ள", + "ச", + "ந", + "இ", + "ண", + "அ", + "ஆ", + "ழ", + "ங", + "எ", + "உ", + "ஒ", + "ஸ", + ], + "Kazakh": [ + "а", + "ы", + "е", + "н", + "т", + "р", + "л", + "і", + "д", + "с", + "м", + "қ", + "к", + "о", + "б", + "и", + "у", + "ғ", + "ж", + "ң", + "з", + "ш", + "й", + "п", + "г", + "ө", + ], +} + +LANGUAGE_SUPPORTED_COUNT: int = len(FREQUENCIES) diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/legacy.py b/venv/lib/python3.10/site-packages/charset_normalizer/legacy.py new file mode 100644 index 0000000..360a310 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer/legacy.py @@ -0,0 +1,80 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING, Any +from warnings import warn + +from .api import from_bytes +from .constant import CHARDET_CORRESPONDENCE, TOO_SMALL_SEQUENCE + +# TODO: remove this check when dropping Python 3.7 support +if TYPE_CHECKING: + from typing_extensions import TypedDict + + class ResultDict(TypedDict): + encoding: str | None + language: str + confidence: float | None + + +def detect( + byte_str: bytes, should_rename_legacy: bool = False, **kwargs: Any +) -> ResultDict: + """ + chardet legacy method + Detect the encoding of the given byte string. It should be mostly backward-compatible. + Encoding name will match Chardet own writing whenever possible. (Not on encoding name unsupported by it) + This function is deprecated and should be used to migrate your project easily, consult the documentation for + further information. Not planned for removal. + + :param byte_str: The byte sequence to examine. + :param should_rename_legacy: Should we rename legacy encodings + to their more modern equivalents? + """ + if len(kwargs): + warn( + f"charset-normalizer disregard arguments '{','.join(list(kwargs.keys()))}' in legacy function detect()" + ) + + if not isinstance(byte_str, (bytearray, bytes)): + raise TypeError( # pragma: nocover + f"Expected object of type bytes or bytearray, got: {type(byte_str)}" + ) + + if isinstance(byte_str, bytearray): + byte_str = bytes(byte_str) + + r = from_bytes(byte_str).best() + + encoding = r.encoding if r is not None else None + language = r.language if r is not None and r.language != "Unknown" else "" + confidence = 1.0 - r.chaos if r is not None else None + + # automatically lower confidence + # on small bytes samples. + # https://github.com/jawah/charset_normalizer/issues/391 + if ( + confidence is not None + and confidence >= 0.9 + and encoding + not in { + "utf_8", + "ascii", + } + and r.bom is False # type: ignore[union-attr] + and len(byte_str) < TOO_SMALL_SEQUENCE + ): + confidence -= 0.2 + + # Note: CharsetNormalizer does not return 'UTF-8-SIG' as the sig get stripped in the detection/normalization process + # but chardet does return 'utf-8-sig' and it is a valid codec name. + if r is not None and encoding == "utf_8" and r.bom: + encoding += "_sig" + + if should_rename_legacy is False and encoding in CHARDET_CORRESPONDENCE: + encoding = CHARDET_CORRESPONDENCE[encoding] + + return { + "encoding": encoding, + "language": language, + "confidence": confidence, + } diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/md.cpython-310-x86_64-linux-gnu.so b/venv/lib/python3.10/site-packages/charset_normalizer/md.cpython-310-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..f71a5afcc365d22b97b203a2781f515882b92ed1 GIT binary patch literal 15912 zcmeHOZ)_aZ5r5|-;QZ;?v?Qc4B3qP5Ng;=ANC>4N=lI_m*@>GthzOze`u3bVbbqY7 zb%@injpPR5mPl44P^tPMt@se3w4!{VQY$2fP(Y}qsZ@!mRaHw>&{-4`N>hbO&2{Fz z`JLCBbKpZ&RbpRsJ2StTc{4lvcJtQz-gmnDdm3Ufg|_G z*kI&Gg~E?T_PZ*6SH%zXyu<@-G~MVNInV9VUzlzXJ5YU2gbiNwJ?4*E#vn{#4+_6; zkRRvySsTi}SK=*J7fbR7mDAPdcPj;3LciYK`;|5M&Y9=`?p`>%^at-gche(YrSI7p z&V}8V(~td3eo5lu8e2i!$IrZ4{rSaLdWo&uI8UpNW}GmbLs0$WMR1O91r3FFh}P@p znMLrs3AgAMZaoCt83sw-Prom!m1^)7qx_!O{8aE+!R0nl%5e_niv_3byCvUol+!mf z;CSg$`e3%~r%OWvow;HmJ>-t$(neQby!lJ<*=n$_0om_}8E%QyA9#mRMYq@pV}m zJ`L(!qgJ?Yai1lneigYdfh)l;hj7Sm?KB~zr+$k;pgk_%c z&P|hSpV;v{0rrVyCz(8O)n84i-N8Jiw!AvqwEh^`s&higKCA7wjxgDL&7Qh!pZ##B zefH`SJNAbC`)mHK)WHV{(?Mf(cC=}I*StTU|FIn#$ybfvwcnoH@itj1d+MUUin@M> zUiT^oD6NV|hc}k}o0PG~DRwPB`_DZ|O37zGd7X|cwU3Kh`S2Q@5#@cro;qir*m{N( z_SBn|Uobp*SInOJwZGdw{(=7hDPPvgOO-!rWnPi?oZoC8|C8Usm&2aA@Yv(kS$pbI zs-6CY#p_z0#OB`3Pcr%DiBp5 zsz6kMr~*+1q6$P6_`Fmgm2peuwC@y(rM&)FSW4tQ$H`BOO{A3mtarVILwZjNbiH=o zKk+I4v6dwdTGS8!ao~kZ)#}%Y{^4@9%6)quRjWTD%HNo|#g6P%vBS-=mQ^=5PSal- zHV}3@{f5bJj1A(=J@K^1hwET3 z>o56TjT`h=u2qXH56j|6ykkwvqDZW1d|LD?*qGX14WSjarmYn!ZmJ^dF~vnwGvm>)Bud@EWnLXM?eLS;k~N8^q|lfz3tHf!6B>I?#GH z$hGALIV0CA5;J@~AoDm{sy^aR_X`@|mkl)fab8f;;sK4%NNnI=5ghkFaNf=lQ)^Uf z(jXYOof^MIVLi3cD)j_09Jls75yc^G-&|Xl4f|(_sh9s^=k-I~Pm{Wv6Ara{{hTJ7 z26{?i48Y}Q#KdUDJ=S>x|CPqSq{8>X>)Ie*+iwATUT+>#t84WE&d(pl@tgtv2{8@4 zt07c>zJL~t0Z!OZ#Ny6*JJwv$u z16$ynG@B~hVlO&A$hCk+Mp!{46HtDVg z*~IZ23I3QDfvyotQ1=vdI0cv08rw?qDzKY;EJ zT`>5g+wX?_@&7I;-Vb2UwGKA^_QE0B0b0TcJpx=P>W8#W63#rX-%-mLf^INk?HG=K ziZnt0Qf7-x9%|!EJJEX_=EnLG(msN zpDN;S*E|gaKhXCGW*+%t-rCx_(B4QU7I>!b(~skeIYYX^pP#S6#OZajTl@e3 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/md.py b/venv/lib/python3.10/site-packages/charset_normalizer/md.py new file mode 100644 index 0000000..12ce024 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer/md.py @@ -0,0 +1,635 @@ +from __future__ import annotations + +from functools import lru_cache +from logging import getLogger + +from .constant import ( + COMMON_SAFE_ASCII_CHARACTERS, + TRACE, + UNICODE_SECONDARY_RANGE_KEYWORD, +) +from .utils import ( + is_accentuated, + is_arabic, + is_arabic_isolated_form, + is_case_variable, + is_cjk, + is_emoticon, + is_hangul, + is_hiragana, + is_katakana, + is_latin, + is_punctuation, + is_separator, + is_symbol, + is_thai, + is_unprintable, + remove_accent, + unicode_range, + is_cjk_uncommon, +) + + +class MessDetectorPlugin: + """ + Base abstract class used for mess detection plugins. + All detectors MUST extend and implement given methods. + """ + + def eligible(self, character: str) -> bool: + """ + Determine if given character should be fed in. + """ + raise NotImplementedError # pragma: nocover + + def feed(self, character: str) -> None: + """ + The main routine to be executed upon character. + Insert the logic in witch the text would be considered chaotic. + """ + raise NotImplementedError # pragma: nocover + + def reset(self) -> None: # pragma: no cover + """ + Permit to reset the plugin to the initial state. + """ + raise NotImplementedError + + @property + def ratio(self) -> float: + """ + Compute the chaos ratio based on what your feed() has seen. + Must NOT be lower than 0.; No restriction gt 0. + """ + raise NotImplementedError # pragma: nocover + + +class TooManySymbolOrPunctuationPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._punctuation_count: int = 0 + self._symbol_count: int = 0 + self._character_count: int = 0 + + self._last_printable_char: str | None = None + self._frenzy_symbol_in_word: bool = False + + def eligible(self, character: str) -> bool: + return character.isprintable() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if ( + character != self._last_printable_char + and character not in COMMON_SAFE_ASCII_CHARACTERS + ): + if is_punctuation(character): + self._punctuation_count += 1 + elif ( + character.isdigit() is False + and is_symbol(character) + and is_emoticon(character) is False + ): + self._symbol_count += 2 + + self._last_printable_char = character + + def reset(self) -> None: # Abstract + self._punctuation_count = 0 + self._character_count = 0 + self._symbol_count = 0 + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + ratio_of_punctuation: float = ( + self._punctuation_count + self._symbol_count + ) / self._character_count + + return ratio_of_punctuation if ratio_of_punctuation >= 0.3 else 0.0 + + +class TooManyAccentuatedPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._character_count: int = 0 + self._accentuated_count: int = 0 + + def eligible(self, character: str) -> bool: + return character.isalpha() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if is_accentuated(character): + self._accentuated_count += 1 + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._accentuated_count = 0 + + @property + def ratio(self) -> float: + if self._character_count < 8: + return 0.0 + + ratio_of_accentuation: float = self._accentuated_count / self._character_count + return ratio_of_accentuation if ratio_of_accentuation >= 0.35 else 0.0 + + +class UnprintablePlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._unprintable_count: int = 0 + self._character_count: int = 0 + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + if is_unprintable(character): + self._unprintable_count += 1 + self._character_count += 1 + + def reset(self) -> None: # Abstract + self._unprintable_count = 0 + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return (self._unprintable_count * 8) / self._character_count + + +class SuspiciousDuplicateAccentPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._successive_count: int = 0 + self._character_count: int = 0 + + self._last_latin_character: str | None = None + + def eligible(self, character: str) -> bool: + return character.isalpha() and is_latin(character) + + def feed(self, character: str) -> None: + self._character_count += 1 + if ( + self._last_latin_character is not None + and is_accentuated(character) + and is_accentuated(self._last_latin_character) + ): + if character.isupper() and self._last_latin_character.isupper(): + self._successive_count += 1 + # Worse if its the same char duplicated with different accent. + if remove_accent(character) == remove_accent(self._last_latin_character): + self._successive_count += 1 + self._last_latin_character = character + + def reset(self) -> None: # Abstract + self._successive_count = 0 + self._character_count = 0 + self._last_latin_character = None + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return (self._successive_count * 2) / self._character_count + + +class SuspiciousRange(MessDetectorPlugin): + def __init__(self) -> None: + self._suspicious_successive_range_count: int = 0 + self._character_count: int = 0 + self._last_printable_seen: str | None = None + + def eligible(self, character: str) -> bool: + return character.isprintable() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if ( + character.isspace() + or is_punctuation(character) + or character in COMMON_SAFE_ASCII_CHARACTERS + ): + self._last_printable_seen = None + return + + if self._last_printable_seen is None: + self._last_printable_seen = character + return + + unicode_range_a: str | None = unicode_range(self._last_printable_seen) + unicode_range_b: str | None = unicode_range(character) + + if is_suspiciously_successive_range(unicode_range_a, unicode_range_b): + self._suspicious_successive_range_count += 1 + + self._last_printable_seen = character + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._suspicious_successive_range_count = 0 + self._last_printable_seen = None + + @property + def ratio(self) -> float: + if self._character_count <= 13: + return 0.0 + + ratio_of_suspicious_range_usage: float = ( + self._suspicious_successive_range_count * 2 + ) / self._character_count + + return ratio_of_suspicious_range_usage + + +class SuperWeirdWordPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._word_count: int = 0 + self._bad_word_count: int = 0 + self._foreign_long_count: int = 0 + + self._is_current_word_bad: bool = False + self._foreign_long_watch: bool = False + + self._character_count: int = 0 + self._bad_character_count: int = 0 + + self._buffer: str = "" + self._buffer_accent_count: int = 0 + self._buffer_glyph_count: int = 0 + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + if character.isalpha(): + self._buffer += character + if is_accentuated(character): + self._buffer_accent_count += 1 + if ( + self._foreign_long_watch is False + and (is_latin(character) is False or is_accentuated(character)) + and is_cjk(character) is False + and is_hangul(character) is False + and is_katakana(character) is False + and is_hiragana(character) is False + and is_thai(character) is False + ): + self._foreign_long_watch = True + if ( + is_cjk(character) + or is_hangul(character) + or is_katakana(character) + or is_hiragana(character) + or is_thai(character) + ): + self._buffer_glyph_count += 1 + return + if not self._buffer: + return + if ( + character.isspace() or is_punctuation(character) or is_separator(character) + ) and self._buffer: + self._word_count += 1 + buffer_length: int = len(self._buffer) + + self._character_count += buffer_length + + if buffer_length >= 4: + if self._buffer_accent_count / buffer_length >= 0.5: + self._is_current_word_bad = True + # Word/Buffer ending with an upper case accentuated letter are so rare, + # that we will consider them all as suspicious. Same weight as foreign_long suspicious. + elif ( + is_accentuated(self._buffer[-1]) + and self._buffer[-1].isupper() + and all(_.isupper() for _ in self._buffer) is False + ): + self._foreign_long_count += 1 + self._is_current_word_bad = True + elif self._buffer_glyph_count == 1: + self._is_current_word_bad = True + self._foreign_long_count += 1 + if buffer_length >= 24 and self._foreign_long_watch: + camel_case_dst = [ + i + for c, i in zip(self._buffer, range(0, buffer_length)) + if c.isupper() + ] + probable_camel_cased: bool = False + + if camel_case_dst and (len(camel_case_dst) / buffer_length <= 0.3): + probable_camel_cased = True + + if not probable_camel_cased: + self._foreign_long_count += 1 + self._is_current_word_bad = True + + if self._is_current_word_bad: + self._bad_word_count += 1 + self._bad_character_count += len(self._buffer) + self._is_current_word_bad = False + + self._foreign_long_watch = False + self._buffer = "" + self._buffer_accent_count = 0 + self._buffer_glyph_count = 0 + elif ( + character not in {"<", ">", "-", "=", "~", "|", "_"} + and character.isdigit() is False + and is_symbol(character) + ): + self._is_current_word_bad = True + self._buffer += character + + def reset(self) -> None: # Abstract + self._buffer = "" + self._is_current_word_bad = False + self._foreign_long_watch = False + self._bad_word_count = 0 + self._word_count = 0 + self._character_count = 0 + self._bad_character_count = 0 + self._foreign_long_count = 0 + + @property + def ratio(self) -> float: + if self._word_count <= 10 and self._foreign_long_count == 0: + return 0.0 + + return self._bad_character_count / self._character_count + + +class CjkUncommonPlugin(MessDetectorPlugin): + """ + Detect messy CJK text that probably means nothing. + """ + + def __init__(self) -> None: + self._character_count: int = 0 + self._uncommon_count: int = 0 + + def eligible(self, character: str) -> bool: + return is_cjk(character) + + def feed(self, character: str) -> None: + self._character_count += 1 + + if is_cjk_uncommon(character): + self._uncommon_count += 1 + return + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._uncommon_count = 0 + + @property + def ratio(self) -> float: + if self._character_count < 8: + return 0.0 + + uncommon_form_usage: float = self._uncommon_count / self._character_count + + # we can be pretty sure it's garbage when uncommon characters are widely + # used. otherwise it could just be traditional chinese for example. + return uncommon_form_usage / 10 if uncommon_form_usage > 0.5 else 0.0 + + +class ArchaicUpperLowerPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._buf: bool = False + + self._character_count_since_last_sep: int = 0 + + self._successive_upper_lower_count: int = 0 + self._successive_upper_lower_count_final: int = 0 + + self._character_count: int = 0 + + self._last_alpha_seen: str | None = None + self._current_ascii_only: bool = True + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + is_concerned = character.isalpha() and is_case_variable(character) + chunk_sep = is_concerned is False + + if chunk_sep and self._character_count_since_last_sep > 0: + if ( + self._character_count_since_last_sep <= 64 + and character.isdigit() is False + and self._current_ascii_only is False + ): + self._successive_upper_lower_count_final += ( + self._successive_upper_lower_count + ) + + self._successive_upper_lower_count = 0 + self._character_count_since_last_sep = 0 + self._last_alpha_seen = None + self._buf = False + self._character_count += 1 + self._current_ascii_only = True + + return + + if self._current_ascii_only is True and character.isascii() is False: + self._current_ascii_only = False + + if self._last_alpha_seen is not None: + if (character.isupper() and self._last_alpha_seen.islower()) or ( + character.islower() and self._last_alpha_seen.isupper() + ): + if self._buf is True: + self._successive_upper_lower_count += 2 + self._buf = False + else: + self._buf = True + else: + self._buf = False + + self._character_count += 1 + self._character_count_since_last_sep += 1 + self._last_alpha_seen = character + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._character_count_since_last_sep = 0 + self._successive_upper_lower_count = 0 + self._successive_upper_lower_count_final = 0 + self._last_alpha_seen = None + self._buf = False + self._current_ascii_only = True + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return self._successive_upper_lower_count_final / self._character_count + + +class ArabicIsolatedFormPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._character_count: int = 0 + self._isolated_form_count: int = 0 + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._isolated_form_count = 0 + + def eligible(self, character: str) -> bool: + return is_arabic(character) + + def feed(self, character: str) -> None: + self._character_count += 1 + + if is_arabic_isolated_form(character): + self._isolated_form_count += 1 + + @property + def ratio(self) -> float: + if self._character_count < 8: + return 0.0 + + isolated_form_usage: float = self._isolated_form_count / self._character_count + + return isolated_form_usage + + +@lru_cache(maxsize=1024) +def is_suspiciously_successive_range( + unicode_range_a: str | None, unicode_range_b: str | None +) -> bool: + """ + Determine if two Unicode range seen next to each other can be considered as suspicious. + """ + if unicode_range_a is None or unicode_range_b is None: + return True + + if unicode_range_a == unicode_range_b: + return False + + if "Latin" in unicode_range_a and "Latin" in unicode_range_b: + return False + + if "Emoticons" in unicode_range_a or "Emoticons" in unicode_range_b: + return False + + # Latin characters can be accompanied with a combining diacritical mark + # eg. Vietnamese. + if ("Latin" in unicode_range_a or "Latin" in unicode_range_b) and ( + "Combining" in unicode_range_a or "Combining" in unicode_range_b + ): + return False + + keywords_range_a, keywords_range_b = ( + unicode_range_a.split(" "), + unicode_range_b.split(" "), + ) + + for el in keywords_range_a: + if el in UNICODE_SECONDARY_RANGE_KEYWORD: + continue + if el in keywords_range_b: + return False + + # Japanese Exception + range_a_jp_chars, range_b_jp_chars = ( + unicode_range_a + in ( + "Hiragana", + "Katakana", + ), + unicode_range_b in ("Hiragana", "Katakana"), + ) + if (range_a_jp_chars or range_b_jp_chars) and ( + "CJK" in unicode_range_a or "CJK" in unicode_range_b + ): + return False + if range_a_jp_chars and range_b_jp_chars: + return False + + if "Hangul" in unicode_range_a or "Hangul" in unicode_range_b: + if "CJK" in unicode_range_a or "CJK" in unicode_range_b: + return False + if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": + return False + + # Chinese/Japanese use dedicated range for punctuation and/or separators. + if ("CJK" in unicode_range_a or "CJK" in unicode_range_b) or ( + unicode_range_a in ["Katakana", "Hiragana"] + and unicode_range_b in ["Katakana", "Hiragana"] + ): + if "Punctuation" in unicode_range_a or "Punctuation" in unicode_range_b: + return False + if "Forms" in unicode_range_a or "Forms" in unicode_range_b: + return False + if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": + return False + + return True + + +@lru_cache(maxsize=2048) +def mess_ratio( + decoded_sequence: str, maximum_threshold: float = 0.2, debug: bool = False +) -> float: + """ + Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier. + """ + + detectors: list[MessDetectorPlugin] = [ + md_class() for md_class in MessDetectorPlugin.__subclasses__() + ] + + length: int = len(decoded_sequence) + 1 + + mean_mess_ratio: float = 0.0 + + if length < 512: + intermediary_mean_mess_ratio_calc: int = 32 + elif length <= 1024: + intermediary_mean_mess_ratio_calc = 64 + else: + intermediary_mean_mess_ratio_calc = 128 + + for character, index in zip(decoded_sequence + "\n", range(length)): + for detector in detectors: + if detector.eligible(character): + detector.feed(character) + + if ( + index > 0 and index % intermediary_mean_mess_ratio_calc == 0 + ) or index == length - 1: + mean_mess_ratio = sum(dt.ratio for dt in detectors) + + if mean_mess_ratio >= maximum_threshold: + break + + if debug: + logger = getLogger("charset_normalizer") + + logger.log( + TRACE, + "Mess-detector extended-analysis start. " + f"intermediary_mean_mess_ratio_calc={intermediary_mean_mess_ratio_calc} mean_mess_ratio={mean_mess_ratio} " + f"maximum_threshold={maximum_threshold}", + ) + + if len(decoded_sequence) > 16: + logger.log(TRACE, f"Starting with: {decoded_sequence[:16]}") + logger.log(TRACE, f"Ending with: {decoded_sequence[-16::]}") + + for dt in detectors: + logger.log(TRACE, f"{dt.__class__}: {dt.ratio}") + + return round(mean_mess_ratio, 3) diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/md__mypyc.cpython-310-x86_64-linux-gnu.so b/venv/lib/python3.10/site-packages/charset_normalizer/md__mypyc.cpython-310-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..db651f827b33f8211b05418fcb06045973a7c721 GIT binary patch literal 286264 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 z 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�Uq(n8ya!9Obf{)=3q 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 K^)%>tjQ$_`8mMXj literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/models.py b/venv/lib/python3.10/site-packages/charset_normalizer/models.py new file mode 100644 index 0000000..1042758 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer/models.py @@ -0,0 +1,360 @@ +from __future__ import annotations + +from encodings.aliases import aliases +from hashlib import sha256 +from json import dumps +from re import sub +from typing import Any, Iterator, List, Tuple + +from .constant import RE_POSSIBLE_ENCODING_INDICATION, TOO_BIG_SEQUENCE +from .utils import iana_name, is_multi_byte_encoding, unicode_range + + +class CharsetMatch: + def __init__( + self, + payload: bytes, + guessed_encoding: str, + mean_mess_ratio: float, + has_sig_or_bom: bool, + languages: CoherenceMatches, + decoded_payload: str | None = None, + preemptive_declaration: str | None = None, + ): + self._payload: bytes = payload + + self._encoding: str = guessed_encoding + self._mean_mess_ratio: float = mean_mess_ratio + self._languages: CoherenceMatches = languages + self._has_sig_or_bom: bool = has_sig_or_bom + self._unicode_ranges: list[str] | None = None + + self._leaves: list[CharsetMatch] = [] + self._mean_coherence_ratio: float = 0.0 + + self._output_payload: bytes | None = None + self._output_encoding: str | None = None + + self._string: str | None = decoded_payload + + self._preemptive_declaration: str | None = preemptive_declaration + + def __eq__(self, other: object) -> bool: + if not isinstance(other, CharsetMatch): + if isinstance(other, str): + return iana_name(other) == self.encoding + return False + return self.encoding == other.encoding and self.fingerprint == other.fingerprint + + def __lt__(self, other: object) -> bool: + """ + Implemented to make sorted available upon CharsetMatches items. + """ + if not isinstance(other, CharsetMatch): + raise ValueError + + chaos_difference: float = abs(self.chaos - other.chaos) + coherence_difference: float = abs(self.coherence - other.coherence) + + # Below 1% difference --> Use Coherence + if chaos_difference < 0.01 and coherence_difference > 0.02: + return self.coherence > other.coherence + elif chaos_difference < 0.01 and coherence_difference <= 0.02: + # When having a difficult decision, use the result that decoded as many multi-byte as possible. + # preserve RAM usage! + if len(self._payload) >= TOO_BIG_SEQUENCE: + return self.chaos < other.chaos + return self.multi_byte_usage > other.multi_byte_usage + + return self.chaos < other.chaos + + @property + def multi_byte_usage(self) -> float: + return 1.0 - (len(str(self)) / len(self.raw)) + + def __str__(self) -> str: + # Lazy Str Loading + if self._string is None: + self._string = str(self._payload, self._encoding, "strict") + return self._string + + def __repr__(self) -> str: + return f"" + + def add_submatch(self, other: CharsetMatch) -> None: + if not isinstance(other, CharsetMatch) or other == self: + raise ValueError( + "Unable to add instance <{}> as a submatch of a CharsetMatch".format( + other.__class__ + ) + ) + + other._string = None # Unload RAM usage; dirty trick. + self._leaves.append(other) + + @property + def encoding(self) -> str: + return self._encoding + + @property + def encoding_aliases(self) -> list[str]: + """ + Encoding name are known by many name, using this could help when searching for IBM855 when it's listed as CP855. + """ + also_known_as: list[str] = [] + for u, p in aliases.items(): + if self.encoding == u: + also_known_as.append(p) + elif self.encoding == p: + also_known_as.append(u) + return also_known_as + + @property + def bom(self) -> bool: + return self._has_sig_or_bom + + @property + def byte_order_mark(self) -> bool: + return self._has_sig_or_bom + + @property + def languages(self) -> list[str]: + """ + Return the complete list of possible languages found in decoded sequence. + Usually not really useful. Returned list may be empty even if 'language' property return something != 'Unknown'. + """ + return [e[0] for e in self._languages] + + @property + def language(self) -> str: + """ + Most probable language found in decoded sequence. If none were detected or inferred, the property will return + "Unknown". + """ + if not self._languages: + # Trying to infer the language based on the given encoding + # Its either English or we should not pronounce ourselves in certain cases. + if "ascii" in self.could_be_from_charset: + return "English" + + # doing it there to avoid circular import + from charset_normalizer.cd import encoding_languages, mb_encoding_languages + + languages = ( + mb_encoding_languages(self.encoding) + if is_multi_byte_encoding(self.encoding) + else encoding_languages(self.encoding) + ) + + if len(languages) == 0 or "Latin Based" in languages: + return "Unknown" + + return languages[0] + + return self._languages[0][0] + + @property + def chaos(self) -> float: + return self._mean_mess_ratio + + @property + def coherence(self) -> float: + if not self._languages: + return 0.0 + return self._languages[0][1] + + @property + def percent_chaos(self) -> float: + return round(self.chaos * 100, ndigits=3) + + @property + def percent_coherence(self) -> float: + return round(self.coherence * 100, ndigits=3) + + @property + def raw(self) -> bytes: + """ + Original untouched bytes. + """ + return self._payload + + @property + def submatch(self) -> list[CharsetMatch]: + return self._leaves + + @property + def has_submatch(self) -> bool: + return len(self._leaves) > 0 + + @property + def alphabets(self) -> list[str]: + if self._unicode_ranges is not None: + return self._unicode_ranges + # list detected ranges + detected_ranges: list[str | None] = [unicode_range(char) for char in str(self)] + # filter and sort + self._unicode_ranges = sorted(list({r for r in detected_ranges if r})) + return self._unicode_ranges + + @property + def could_be_from_charset(self) -> list[str]: + """ + The complete list of encoding that output the exact SAME str result and therefore could be the originating + encoding. + This list does include the encoding available in property 'encoding'. + """ + return [self._encoding] + [m.encoding for m in self._leaves] + + def output(self, encoding: str = "utf_8") -> bytes: + """ + Method to get re-encoded bytes payload using given target encoding. Default to UTF-8. + Any errors will be simply ignored by the encoder NOT replaced. + """ + if self._output_encoding is None or self._output_encoding != encoding: + self._output_encoding = encoding + decoded_string = str(self) + if ( + self._preemptive_declaration is not None + and self._preemptive_declaration.lower() + not in ["utf-8", "utf8", "utf_8"] + ): + patched_header = sub( + RE_POSSIBLE_ENCODING_INDICATION, + lambda m: m.string[m.span()[0] : m.span()[1]].replace( + m.groups()[0], + iana_name(self._output_encoding).replace("_", "-"), # type: ignore[arg-type] + ), + decoded_string[:8192], + count=1, + ) + + decoded_string = patched_header + decoded_string[8192:] + + self._output_payload = decoded_string.encode(encoding, "replace") + + return self._output_payload # type: ignore + + @property + def fingerprint(self) -> str: + """ + Retrieve the unique SHA256 computed using the transformed (re-encoded) payload. Not the original one. + """ + return sha256(self.output()).hexdigest() + + +class CharsetMatches: + """ + Container with every CharsetMatch items ordered by default from most probable to the less one. + Act like a list(iterable) but does not implements all related methods. + """ + + def __init__(self, results: list[CharsetMatch] | None = None): + self._results: list[CharsetMatch] = sorted(results) if results else [] + + def __iter__(self) -> Iterator[CharsetMatch]: + yield from self._results + + def __getitem__(self, item: int | str) -> CharsetMatch: + """ + Retrieve a single item either by its position or encoding name (alias may be used here). + Raise KeyError upon invalid index or encoding not present in results. + """ + if isinstance(item, int): + return self._results[item] + if isinstance(item, str): + item = iana_name(item, False) + for result in self._results: + if item in result.could_be_from_charset: + return result + raise KeyError + + def __len__(self) -> int: + return len(self._results) + + def __bool__(self) -> bool: + return len(self._results) > 0 + + def append(self, item: CharsetMatch) -> None: + """ + Insert a single match. Will be inserted accordingly to preserve sort. + Can be inserted as a submatch. + """ + if not isinstance(item, CharsetMatch): + raise ValueError( + "Cannot append instance '{}' to CharsetMatches".format( + str(item.__class__) + ) + ) + # We should disable the submatch factoring when the input file is too heavy (conserve RAM usage) + if len(item.raw) < TOO_BIG_SEQUENCE: + for match in self._results: + if match.fingerprint == item.fingerprint and match.chaos == item.chaos: + match.add_submatch(item) + return + self._results.append(item) + self._results = sorted(self._results) + + def best(self) -> CharsetMatch | None: + """ + Simply return the first match. Strict equivalent to matches[0]. + """ + if not self._results: + return None + return self._results[0] + + def first(self) -> CharsetMatch | None: + """ + Redundant method, call the method best(). Kept for BC reasons. + """ + return self.best() + + +CoherenceMatch = Tuple[str, float] +CoherenceMatches = List[CoherenceMatch] + + +class CliDetectionResult: + def __init__( + self, + path: str, + encoding: str | None, + encoding_aliases: list[str], + alternative_encodings: list[str], + language: str, + alphabets: list[str], + has_sig_or_bom: bool, + chaos: float, + coherence: float, + unicode_path: str | None, + is_preferred: bool, + ): + self.path: str = path + self.unicode_path: str | None = unicode_path + self.encoding: str | None = encoding + self.encoding_aliases: list[str] = encoding_aliases + self.alternative_encodings: list[str] = alternative_encodings + self.language: str = language + self.alphabets: list[str] = alphabets + self.has_sig_or_bom: bool = has_sig_or_bom + self.chaos: float = chaos + self.coherence: float = coherence + self.is_preferred: bool = is_preferred + + @property + def __dict__(self) -> dict[str, Any]: # type: ignore + return { + "path": self.path, + "encoding": self.encoding, + "encoding_aliases": self.encoding_aliases, + "alternative_encodings": self.alternative_encodings, + "language": self.language, + "alphabets": self.alphabets, + "has_sig_or_bom": self.has_sig_or_bom, + "chaos": self.chaos, + "coherence": self.coherence, + "unicode_path": self.unicode_path, + "is_preferred": self.is_preferred, + } + + def to_json(self) -> str: + return dumps(self.__dict__, ensure_ascii=True, indent=4) diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/py.typed b/venv/lib/python3.10/site-packages/charset_normalizer/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/utils.py b/venv/lib/python3.10/site-packages/charset_normalizer/utils.py new file mode 100644 index 0000000..6bf0384 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer/utils.py @@ -0,0 +1,414 @@ +from __future__ import annotations + +import importlib +import logging +import unicodedata +from codecs import IncrementalDecoder +from encodings.aliases import aliases +from functools import lru_cache +from re import findall +from typing import Generator + +from _multibytecodec import ( # type: ignore[import-not-found,import] + MultibyteIncrementalDecoder, +) + +from .constant import ( + ENCODING_MARKS, + IANA_SUPPORTED_SIMILAR, + RE_POSSIBLE_ENCODING_INDICATION, + UNICODE_RANGES_COMBINED, + UNICODE_SECONDARY_RANGE_KEYWORD, + UTF8_MAXIMAL_ALLOCATION, + COMMON_CJK_CHARACTERS, +) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_accentuated(character: str) -> bool: + try: + description: str = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + return ( + "WITH GRAVE" in description + or "WITH ACUTE" in description + or "WITH CEDILLA" in description + or "WITH DIAERESIS" in description + or "WITH CIRCUMFLEX" in description + or "WITH TILDE" in description + or "WITH MACRON" in description + or "WITH RING ABOVE" in description + ) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def remove_accent(character: str) -> str: + decomposed: str = unicodedata.decomposition(character) + if not decomposed: + return character + + codes: list[str] = decomposed.split(" ") + + return chr(int(codes[0], 16)) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def unicode_range(character: str) -> str | None: + """ + Retrieve the Unicode range official name from a single character. + """ + character_ord: int = ord(character) + + for range_name, ord_range in UNICODE_RANGES_COMBINED.items(): + if character_ord in ord_range: + return range_name + + return None + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_latin(character: str) -> bool: + try: + description: str = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + return "LATIN" in description + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_punctuation(character: str) -> bool: + character_category: str = unicodedata.category(character) + + if "P" in character_category: + return True + + character_range: str | None = unicode_range(character) + + if character_range is None: + return False + + return "Punctuation" in character_range + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_symbol(character: str) -> bool: + character_category: str = unicodedata.category(character) + + if "S" in character_category or "N" in character_category: + return True + + character_range: str | None = unicode_range(character) + + if character_range is None: + return False + + return "Forms" in character_range and character_category != "Lo" + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_emoticon(character: str) -> bool: + character_range: str | None = unicode_range(character) + + if character_range is None: + return False + + return "Emoticons" in character_range or "Pictographs" in character_range + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_separator(character: str) -> bool: + if character.isspace() or character in {"|", "+", "<", ">"}: + return True + + character_category: str = unicodedata.category(character) + + return "Z" in character_category or character_category in {"Po", "Pd", "Pc"} + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_case_variable(character: str) -> bool: + return character.islower() != character.isupper() + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_cjk(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "CJK" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_hiragana(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "HIRAGANA" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_katakana(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "KATAKANA" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_hangul(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "HANGUL" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_thai(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "THAI" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_arabic(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "ARABIC" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_arabic_isolated_form(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "ARABIC" in character_name and "ISOLATED FORM" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_cjk_uncommon(character: str) -> bool: + return character not in COMMON_CJK_CHARACTERS + + +@lru_cache(maxsize=len(UNICODE_RANGES_COMBINED)) +def is_unicode_range_secondary(range_name: str) -> bool: + return any(keyword in range_name for keyword in UNICODE_SECONDARY_RANGE_KEYWORD) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_unprintable(character: str) -> bool: + return ( + character.isspace() is False # includes \n \t \r \v + and character.isprintable() is False + and character != "\x1a" # Why? Its the ASCII substitute character. + and character != "\ufeff" # bug discovered in Python, + # Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space. + ) + + +def any_specified_encoding(sequence: bytes, search_zone: int = 8192) -> str | None: + """ + Extract using ASCII-only decoder any specified encoding in the first n-bytes. + """ + if not isinstance(sequence, bytes): + raise TypeError + + seq_len: int = len(sequence) + + results: list[str] = findall( + RE_POSSIBLE_ENCODING_INDICATION, + sequence[: min(seq_len, search_zone)].decode("ascii", errors="ignore"), + ) + + if len(results) == 0: + return None + + for specified_encoding in results: + specified_encoding = specified_encoding.lower().replace("-", "_") + + encoding_alias: str + encoding_iana: str + + for encoding_alias, encoding_iana in aliases.items(): + if encoding_alias == specified_encoding: + return encoding_iana + if encoding_iana == specified_encoding: + return encoding_iana + + return None + + +@lru_cache(maxsize=128) +def is_multi_byte_encoding(name: str) -> bool: + """ + Verify is a specific encoding is a multi byte one based on it IANA name + """ + return name in { + "utf_8", + "utf_8_sig", + "utf_16", + "utf_16_be", + "utf_16_le", + "utf_32", + "utf_32_le", + "utf_32_be", + "utf_7", + } or issubclass( + importlib.import_module(f"encodings.{name}").IncrementalDecoder, + MultibyteIncrementalDecoder, + ) + + +def identify_sig_or_bom(sequence: bytes) -> tuple[str | None, bytes]: + """ + Identify and extract SIG/BOM in given sequence. + """ + + for iana_encoding in ENCODING_MARKS: + marks: bytes | list[bytes] = ENCODING_MARKS[iana_encoding] + + if isinstance(marks, bytes): + marks = [marks] + + for mark in marks: + if sequence.startswith(mark): + return iana_encoding, mark + + return None, b"" + + +def should_strip_sig_or_bom(iana_encoding: str) -> bool: + return iana_encoding not in {"utf_16", "utf_32"} + + +def iana_name(cp_name: str, strict: bool = True) -> str: + """Returns the Python normalized encoding name (Not the IANA official name).""" + cp_name = cp_name.lower().replace("-", "_") + + encoding_alias: str + encoding_iana: str + + for encoding_alias, encoding_iana in aliases.items(): + if cp_name in [encoding_alias, encoding_iana]: + return encoding_iana + + if strict: + raise ValueError(f"Unable to retrieve IANA for '{cp_name}'") + + return cp_name + + +def cp_similarity(iana_name_a: str, iana_name_b: str) -> float: + if is_multi_byte_encoding(iana_name_a) or is_multi_byte_encoding(iana_name_b): + return 0.0 + + decoder_a = importlib.import_module(f"encodings.{iana_name_a}").IncrementalDecoder + decoder_b = importlib.import_module(f"encodings.{iana_name_b}").IncrementalDecoder + + id_a: IncrementalDecoder = decoder_a(errors="ignore") + id_b: IncrementalDecoder = decoder_b(errors="ignore") + + character_match_count: int = 0 + + for i in range(255): + to_be_decoded: bytes = bytes([i]) + if id_a.decode(to_be_decoded) == id_b.decode(to_be_decoded): + character_match_count += 1 + + return character_match_count / 254 + + +def is_cp_similar(iana_name_a: str, iana_name_b: str) -> bool: + """ + Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using + the function cp_similarity. + """ + return ( + iana_name_a in IANA_SUPPORTED_SIMILAR + and iana_name_b in IANA_SUPPORTED_SIMILAR[iana_name_a] + ) + + +def set_logging_handler( + name: str = "charset_normalizer", + level: int = logging.INFO, + format_string: str = "%(asctime)s | %(levelname)s | %(message)s", +) -> None: + logger = logging.getLogger(name) + logger.setLevel(level) + + handler = logging.StreamHandler() + handler.setFormatter(logging.Formatter(format_string)) + logger.addHandler(handler) + + +def cut_sequence_chunks( + sequences: bytes, + encoding_iana: str, + offsets: range, + chunk_size: int, + bom_or_sig_available: bool, + strip_sig_or_bom: bool, + sig_payload: bytes, + is_multi_byte_decoder: bool, + decoded_payload: str | None = None, +) -> Generator[str, None, None]: + if decoded_payload and is_multi_byte_decoder is False: + for i in offsets: + chunk = decoded_payload[i : i + chunk_size] + if not chunk: + break + yield chunk + else: + for i in offsets: + chunk_end = i + chunk_size + if chunk_end > len(sequences) + 8: + continue + + cut_sequence = sequences[i : i + chunk_size] + + if bom_or_sig_available and strip_sig_or_bom is False: + cut_sequence = sig_payload + cut_sequence + + chunk = cut_sequence.decode( + encoding_iana, + errors="ignore" if is_multi_byte_decoder else "strict", + ) + + # multi-byte bad cutting detector and adjustment + # not the cleanest way to perform that fix but clever enough for now. + if is_multi_byte_decoder and i > 0: + chunk_partial_size_chk: int = min(chunk_size, 16) + + if ( + decoded_payload + and chunk[:chunk_partial_size_chk] not in decoded_payload + ): + for j in range(i, i - 4, -1): + cut_sequence = sequences[j:chunk_end] + + if bom_or_sig_available and strip_sig_or_bom is False: + cut_sequence = sig_payload + cut_sequence + + chunk = cut_sequence.decode(encoding_iana, errors="ignore") + + if chunk[:chunk_partial_size_chk] in decoded_payload: + break + + yield chunk diff --git a/venv/lib/python3.10/site-packages/charset_normalizer/version.py b/venv/lib/python3.10/site-packages/charset_normalizer/version.py new file mode 100644 index 0000000..c843e53 --- /dev/null +++ b/venv/lib/python3.10/site-packages/charset_normalizer/version.py @@ -0,0 +1,8 @@ +""" +Expose version +""" + +from __future__ import annotations + +__version__ = "3.4.4" +VERSION = __version__.split(".") diff --git a/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/METADATA b/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/METADATA new file mode 100644 index 0000000..3f433af --- /dev/null +++ b/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/METADATA @@ -0,0 +1,84 @@ +Metadata-Version: 2.4 +Name: click +Version: 8.3.1 +Summary: Composable command line interface toolkit +Maintainer-email: Pallets +Requires-Python: >=3.10 +Description-Content-Type: text/markdown +License-Expression: BSD-3-Clause +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Typing :: Typed +License-File: LICENSE.txt +Requires-Dist: colorama; platform_system == 'Windows' +Project-URL: Changes, https://click.palletsprojects.com/page/changes/ +Project-URL: Chat, https://discord.gg/pallets +Project-URL: Documentation, https://click.palletsprojects.com/ +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Source, https://github.com/pallets/click/ + +

+ +# Click + +Click is a Python package for creating beautiful command line interfaces +in a composable way with as little code as necessary. It's the "Command +Line Interface Creation Kit". It's highly configurable but comes with +sensible defaults out of the box. + +It aims to make the process of writing command line tools quick and fun +while also preventing any frustration caused by the inability to +implement an intended CLI API. + +Click in three points: + +- Arbitrary nesting of commands +- Automatic help page generation +- Supports lazy loading of subcommands at runtime + + +## A Simple Example + +```python +import click + +@click.command() +@click.option("--count", default=1, help="Number of greetings.") +@click.option("--name", prompt="Your name", help="The person to greet.") +def hello(count, name): + """Simple program that greets NAME for a total of COUNT times.""" + for _ in range(count): + click.echo(f"Hello, {name}!") + +if __name__ == '__main__': + hello() +``` + +``` +$ python hello.py --count=3 +Your name: Click +Hello, Click! +Hello, Click! +Hello, Click! +``` + + +## Donate + +The Pallets organization develops and supports Click and other popular +packages. In order to grow the community of contributors and users, and +allow the maintainers to devote more time to the projects, [please +donate today][]. + +[please donate today]: https://palletsprojects.com/donate + +## Contributing + +See our [detailed contributing documentation][contrib] for many ways to +contribute, including reporting issues, requesting features, asking or answering +questions, and making PRs. + +[contrib]: https://palletsprojects.com/contributing/ + diff --git a/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/RECORD b/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/RECORD new file mode 100644 index 0000000..839aade --- /dev/null +++ b/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/RECORD @@ -0,0 +1,40 @@ +click-8.3.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +click-8.3.1.dist-info/METADATA,sha256=XZeBrMAE0ghTE88SjfrSDuSyNCpBPplxJR1tbwD9oZg,2621 +click-8.3.1.dist-info/RECORD,, +click-8.3.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82 +click-8.3.1.dist-info/licenses/LICENSE.txt,sha256=morRBqOU6FO_4h9C9OctWSgZoigF2ZG18ydQKSkrZY0,1475 +click/__init__.py,sha256=6YyS1aeyknZ0LYweWozNZy0A9nZ_11wmYIhv3cbQrYo,4473 +click/__pycache__/__init__.cpython-310.pyc,, +click/__pycache__/_compat.cpython-310.pyc,, +click/__pycache__/_termui_impl.cpython-310.pyc,, +click/__pycache__/_textwrap.cpython-310.pyc,, +click/__pycache__/_utils.cpython-310.pyc,, +click/__pycache__/_winconsole.cpython-310.pyc,, +click/__pycache__/core.cpython-310.pyc,, +click/__pycache__/decorators.cpython-310.pyc,, +click/__pycache__/exceptions.cpython-310.pyc,, +click/__pycache__/formatting.cpython-310.pyc,, +click/__pycache__/globals.cpython-310.pyc,, +click/__pycache__/parser.cpython-310.pyc,, +click/__pycache__/shell_completion.cpython-310.pyc,, +click/__pycache__/termui.cpython-310.pyc,, +click/__pycache__/testing.cpython-310.pyc,, +click/__pycache__/types.cpython-310.pyc,, +click/__pycache__/utils.cpython-310.pyc,, +click/_compat.py,sha256=v3xBZkFbvA1BXPRkFfBJc6-pIwPI7345m-kQEnpVAs4,18693 +click/_termui_impl.py,sha256=rgCb3On8X5A4200rA5L6i13u5iapmFer7sru57Jy6zA,27093 +click/_textwrap.py,sha256=BOae0RQ6vg3FkNgSJyOoGzG1meGMxJ_ukWVZKx_v-0o,1400 +click/_utils.py,sha256=kZwtTf5gMuCilJJceS2iTCvRvCY-0aN5rJq8gKw7p8g,943 +click/_winconsole.py,sha256=_vxUuUaxwBhoR0vUWCNuHY8VUefiMdCIyU2SXPqoF-A,8465 +click/core.py,sha256=U6Bfxt8GkjNDqyJ0HqXvluJHtyZ4sY5USAvM1Cdq7mQ,132105 +click/decorators.py,sha256=5P7abhJtAQYp_KHgjUvhMv464ERwOzrv2enNknlwHyQ,18461 +click/exceptions.py,sha256=8utf8w6V5hJXMnO_ic1FNrtbwuEn1NUu1aDwV8UqnG4,9954 +click/formatting.py,sha256=RVfwwr0rwWNpgGr8NaHodPzkIr7_tUyVh_nDdanLMNc,9730 +click/globals.py,sha256=gM-Nh6A4M0HB_SgkaF5M4ncGGMDHc_flHXu9_oh4GEU,1923 +click/parser.py,sha256=Q31pH0FlQZEq-UXE_ABRzlygEfvxPTuZbWNh4xfXmzw,19010 +click/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +click/shell_completion.py,sha256=Cc4GQUFuWpfQBa9sF5qXeeYI7n3tI_1k6ZdSn4BZbT0,20994 +click/termui.py,sha256=hqCEjNndU-nzW08nRAkBaVgfZp_FdCA9KxfIWlKYaMc,31037 +click/testing.py,sha256=EERbzcl1br0mW0qBS9EqkknfNfXB9WQEW0ELIpkvuSs,19102 +click/types.py,sha256=ek54BNSFwPKsqtfT7jsqcc4WHui8AIFVMKM4oVZIXhc,39927 +click/utils.py,sha256=gCUoewdAhA-QLBUUHxrLh4uj6m7T1WjZZMNPvR0I7YA,20257 diff --git a/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/WHEEL b/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/WHEEL new file mode 100644 index 0000000..d8b9936 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.12.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/licenses/LICENSE.txt b/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/licenses/LICENSE.txt new file mode 100644 index 0000000..d12a849 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click-8.3.1.dist-info/licenses/LICENSE.txt @@ -0,0 +1,28 @@ +Copyright 2014 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.10/site-packages/click/__init__.py b/venv/lib/python3.10/site-packages/click/__init__.py new file mode 100644 index 0000000..1aa547c --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/__init__.py @@ -0,0 +1,123 @@ +""" +Click is a simple Python module inspired by the stdlib optparse to make +writing command line scripts fun. Unlike other modules, it's based +around a simple API that does not come with too much magic and is +composable. +""" + +from __future__ import annotations + +from .core import Argument as Argument +from .core import Command as Command +from .core import CommandCollection as CommandCollection +from .core import Context as Context +from .core import Group as Group +from .core import Option as Option +from .core import Parameter as Parameter +from .decorators import argument as argument +from .decorators import command as command +from .decorators import confirmation_option as confirmation_option +from .decorators import group as group +from .decorators import help_option as help_option +from .decorators import make_pass_decorator as make_pass_decorator +from .decorators import option as option +from .decorators import pass_context as pass_context +from .decorators import pass_obj as pass_obj +from .decorators import password_option as password_option +from .decorators import version_option as version_option +from .exceptions import Abort as Abort +from .exceptions import BadArgumentUsage as BadArgumentUsage +from .exceptions import BadOptionUsage as BadOptionUsage +from .exceptions import BadParameter as BadParameter +from .exceptions import ClickException as ClickException +from .exceptions import FileError as FileError +from .exceptions import MissingParameter as MissingParameter +from .exceptions import NoSuchOption as NoSuchOption +from .exceptions import UsageError as UsageError +from .formatting import HelpFormatter as HelpFormatter +from .formatting import wrap_text as wrap_text +from .globals import get_current_context as get_current_context +from .termui import clear as clear +from .termui import confirm as confirm +from .termui import echo_via_pager as echo_via_pager +from .termui import edit as edit +from .termui import getchar as getchar +from .termui import launch as launch +from .termui import pause as pause +from .termui import progressbar as progressbar +from .termui import prompt as prompt +from .termui import secho as secho +from .termui import style as style +from .termui import unstyle as unstyle +from .types import BOOL as BOOL +from .types import Choice as Choice +from .types import DateTime as DateTime +from .types import File as File +from .types import FLOAT as FLOAT +from .types import FloatRange as FloatRange +from .types import INT as INT +from .types import IntRange as IntRange +from .types import ParamType as ParamType +from .types import Path as Path +from .types import STRING as STRING +from .types import Tuple as Tuple +from .types import UNPROCESSED as UNPROCESSED +from .types import UUID as UUID +from .utils import echo as echo +from .utils import format_filename as format_filename +from .utils import get_app_dir as get_app_dir +from .utils import get_binary_stream as get_binary_stream +from .utils import get_text_stream as get_text_stream +from .utils import open_file as open_file + + +def __getattr__(name: str) -> object: + import warnings + + if name == "BaseCommand": + from .core import _BaseCommand + + warnings.warn( + "'BaseCommand' is deprecated and will be removed in Click 9.0. Use" + " 'Command' instead.", + DeprecationWarning, + stacklevel=2, + ) + return _BaseCommand + + if name == "MultiCommand": + from .core import _MultiCommand + + warnings.warn( + "'MultiCommand' is deprecated and will be removed in Click 9.0. Use" + " 'Group' instead.", + DeprecationWarning, + stacklevel=2, + ) + return _MultiCommand + + if name == "OptionParser": + from .parser import _OptionParser + + warnings.warn( + "'OptionParser' is deprecated and will be removed in Click 9.0. The" + " old parser is available in 'optparse'.", + DeprecationWarning, + stacklevel=2, + ) + return _OptionParser + + if name == "__version__": + import importlib.metadata + import warnings + + warnings.warn( + "The '__version__' attribute is deprecated and will be removed in" + " Click 9.1. Use feature detection or" + " 'importlib.metadata.version(\"click\")' instead.", + DeprecationWarning, + stacklevel=2, + ) + return importlib.metadata.version("click") + + raise AttributeError(name) diff --git a/venv/lib/python3.10/site-packages/click/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/click/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8c0c2aec58e9f2ed9088addac31a9b3e6f37c28e GIT binary patch literal 3659 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 Id(h$k1DUaumH+?% literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/click/__pycache__/_textwrap.cpython-310.pyc b/venv/lib/python3.10/site-packages/click/__pycache__/_textwrap.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..011dd2525d53a41c8503ee5f381ddd83c77b7530 GIT binary patch literal 1661 zcmZWpTW=dh6rPzKuh$#bX)aAtpi}}ObwTyE@PLpiga8S_gC8hR$t7BCb|&%K>se=J zH#gQ2DB)LBNX{dFX1XYCZ1jhR&Qzg0q;# zFK~KS6z;mZfe~=)jN=n~cTdZB6lJ+Oh>mkDjCJvUD`A~UJ_%Zu8=38EEM7O!cxX@t z);E(lkx?f13(K?E6xK;fFj|_wiQa)F*FT4Yd@RGE`Sj@*;Y8;{nG_~Wv;6Ubx$sD; zqcBVN!pUhd$kk`vr%ytY7Vh(qv?-6 z@x6fAPO8!(jk9P`-kK@*j65u%)I}=bdIJj3?}D-Gc_twL#+G}SduvC(;2-a z=k!~$yZtMhI#UkNq3j(&M_g|~7~^5p=9L0sX>;8pr>Gvoc3N%2jsy z2=VXQjr7w9-2D) zV4lT_m$En?G_4m!Djv%yvVIheb5TNDM7AA8hh?12XY@O`(?RnAnorPRe=Zpmg1(iu z!T$D$PuY5#cG`6wo&vaFzl0YJF3{K!b~VYf3|bnWnQz9<%r}#%mzKH+!oxTagWnm#Hk=<=f+EY;g>-gEFiF98iJ+ef(Txqw0n<3z>A!W zQNQ!s)$C)tm{nD6GE>x*9_21LFFUwi?7ID$z{o#JJ zv9T5nqKBl>(e$%u>)e<|Zzf428XY%R=De=rTAew6unONK+s7=P=C-~Prd5^ov{5;p z>(F7>V>0$|eF3brvQ`wUDPj zkXnQ+e?BJX^+Y74USE5YG^#E|Zgf(}dN9eV>`bWSQdF0TEKZUc^Vjj(YN87x22GY< zzzdz^vdAwI)|x`P{#;2V8pYT$RL}&}3ch~&FqZh?cGM@zEs^Sg>W3->W4nw^YTimm zxX0M%Hk0@C1IBorL)foR9823d9F2zu_Q{96on1B>4&RU2(azrCP%XKnuDdzabFLd; z07tvc4iUwE;NwSR8t?a9?b8;<54DwJZK;5*u)eu!it5Z_W2sw{>2u|JQ_tM1U=OCD uGHHVYHlwtB!2TiiA3iqRn)SNv{;qxws)s@n;$_c&Ot4P~?)q>D#eV@#g5C@O literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/click/__pycache__/_winconsole.cpython-310.pyc b/venv/lib/python3.10/site-packages/click/__pycache__/_winconsole.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a759ca786c6e30936243eb00a019852ba8b348ab GIT binary patch literal 8274 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/click/__pycache__/core.cpython-310.pyc b/venv/lib/python3.10/site-packages/click/__pycache__/core.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..064cd283dd1adc85eda27e882495071fda226d69 GIT binary patch literal 98620 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/click/__pycache__/decorators.cpython-310.pyc b/venv/lib/python3.10/site-packages/click/__pycache__/decorators.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dbf9587ef4767fff293615b2d4bc5483bc994027 GIT binary patch literal 17565 zcmds9YjYdddEQ+tKoF!T>S{^8WG!DL+9c#l;y8@sSf(t;PE0G7;>1)`0K{36pm1T% zE<_Oqlh$%-x~-FRn%)vSp)&0>>X%O2X=ggkFX%65_iOtl{py*1V5d=^=RLa%fTR?~ zai%k+jf1mi&-Fd;<$2$8pw^x}1q*+V482*q_Y0Qw?|kV0%i`fV%d& LrLcvg=mE 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 Z2LvMau>x$nfO3nKtuS&ur9e8Rys#fU@LHXI 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 Uwn*JRzPC*9X?e|a&Du)sKZgT*3IG5A literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/click/__pycache__/parser.cpython-310.pyc b/venv/lib/python3.10/site-packages/click/__pycache__/parser.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be516e5610e6a7402090d8fd8be32598cacc3e92 GIT binary patch literal 14155 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/click/__pycache__/termui.cpython-310.pyc b/venv/lib/python3.10/site-packages/click/__pycache__/termui.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d4f6adbf4675c87299eaf4ecc8744f4c4a666a13 GIT binary patch literal 29037 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/click/__pycache__/utils.cpython-310.pyc b/venv/lib/python3.10/site-packages/click/__pycache__/utils.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..097a81fe40324c69fef42fcb319a43624f25a9b1 GIT binary patch literal 19108 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 IKl0Q62P`WSdjJ3c literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/click/_compat.py b/venv/lib/python3.10/site-packages/click/_compat.py new file mode 100644 index 0000000..f2726b9 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/_compat.py @@ -0,0 +1,622 @@ +from __future__ import annotations + +import codecs +import collections.abc as cabc +import io +import os +import re +import sys +import typing as t +from types import TracebackType +from weakref import WeakKeyDictionary + +CYGWIN = sys.platform.startswith("cygwin") +WIN = sys.platform.startswith("win") +auto_wrap_for_ansi: t.Callable[[t.TextIO], t.TextIO] | None = None +_ansi_re = re.compile(r"\033\[[;?0-9]*[a-zA-Z]") + + +def _make_text_stream( + stream: t.BinaryIO, + encoding: str | None, + errors: str | None, + force_readable: bool = False, + force_writable: bool = False, +) -> t.TextIO: + if encoding is None: + encoding = get_best_encoding(stream) + if errors is None: + errors = "replace" + return _NonClosingTextIOWrapper( + stream, + encoding, + errors, + line_buffering=True, + force_readable=force_readable, + force_writable=force_writable, + ) + + +def is_ascii_encoding(encoding: str) -> bool: + """Checks if a given encoding is ascii.""" + try: + return codecs.lookup(encoding).name == "ascii" + except LookupError: + return False + + +def get_best_encoding(stream: t.IO[t.Any]) -> str: + """Returns the default stream encoding if not found.""" + rv = getattr(stream, "encoding", None) or sys.getdefaultencoding() + if is_ascii_encoding(rv): + return "utf-8" + return rv + + +class _NonClosingTextIOWrapper(io.TextIOWrapper): + def __init__( + self, + stream: t.BinaryIO, + encoding: str | None, + errors: str | None, + force_readable: bool = False, + force_writable: bool = False, + **extra: t.Any, + ) -> None: + self._stream = stream = t.cast( + t.BinaryIO, _FixupStream(stream, force_readable, force_writable) + ) + super().__init__(stream, encoding, errors, **extra) + + def __del__(self) -> None: + try: + self.detach() + except Exception: + pass + + def isatty(self) -> bool: + # https://bitbucket.org/pypy/pypy/issue/1803 + return self._stream.isatty() + + +class _FixupStream: + """The new io interface needs more from streams than streams + traditionally implement. As such, this fix-up code is necessary in + some circumstances. + + The forcing of readable and writable flags are there because some tools + put badly patched objects on sys (one such offender are certain version + of jupyter notebook). + """ + + def __init__( + self, + stream: t.BinaryIO, + force_readable: bool = False, + force_writable: bool = False, + ): + self._stream = stream + self._force_readable = force_readable + self._force_writable = force_writable + + def __getattr__(self, name: str) -> t.Any: + return getattr(self._stream, name) + + def read1(self, size: int) -> bytes: + f = getattr(self._stream, "read1", None) + + if f is not None: + return t.cast(bytes, f(size)) + + return self._stream.read(size) + + def readable(self) -> bool: + if self._force_readable: + return True + x = getattr(self._stream, "readable", None) + if x is not None: + return t.cast(bool, x()) + try: + self._stream.read(0) + except Exception: + return False + return True + + def writable(self) -> bool: + if self._force_writable: + return True + x = getattr(self._stream, "writable", None) + if x is not None: + return t.cast(bool, x()) + try: + self._stream.write(b"") + except Exception: + try: + self._stream.write(b"") + except Exception: + return False + return True + + def seekable(self) -> bool: + x = getattr(self._stream, "seekable", None) + if x is not None: + return t.cast(bool, x()) + try: + self._stream.seek(self._stream.tell()) + except Exception: + return False + return True + + +def _is_binary_reader(stream: t.IO[t.Any], default: bool = False) -> bool: + try: + return isinstance(stream.read(0), bytes) + except Exception: + return default + # This happens in some cases where the stream was already + # closed. In this case, we assume the default. + + +def _is_binary_writer(stream: t.IO[t.Any], default: bool = False) -> bool: + try: + stream.write(b"") + except Exception: + try: + stream.write("") + return False + except Exception: + pass + return default + return True + + +def _find_binary_reader(stream: t.IO[t.Any]) -> t.BinaryIO | None: + # We need to figure out if the given stream is already binary. + # This can happen because the official docs recommend detaching + # the streams to get binary streams. Some code might do this, so + # we need to deal with this case explicitly. + if _is_binary_reader(stream, False): + return t.cast(t.BinaryIO, stream) + + buf = getattr(stream, "buffer", None) + + # Same situation here; this time we assume that the buffer is + # actually binary in case it's closed. + if buf is not None and _is_binary_reader(buf, True): + return t.cast(t.BinaryIO, buf) + + return None + + +def _find_binary_writer(stream: t.IO[t.Any]) -> t.BinaryIO | None: + # We need to figure out if the given stream is already binary. + # This can happen because the official docs recommend detaching + # the streams to get binary streams. Some code might do this, so + # we need to deal with this case explicitly. + if _is_binary_writer(stream, False): + return t.cast(t.BinaryIO, stream) + + buf = getattr(stream, "buffer", None) + + # Same situation here; this time we assume that the buffer is + # actually binary in case it's closed. + if buf is not None and _is_binary_writer(buf, True): + return t.cast(t.BinaryIO, buf) + + return None + + +def _stream_is_misconfigured(stream: t.TextIO) -> bool: + """A stream is misconfigured if its encoding is ASCII.""" + # If the stream does not have an encoding set, we assume it's set + # to ASCII. This appears to happen in certain unittest + # environments. It's not quite clear what the correct behavior is + # but this at least will force Click to recover somehow. + return is_ascii_encoding(getattr(stream, "encoding", None) or "ascii") + + +def _is_compat_stream_attr(stream: t.TextIO, attr: str, value: str | None) -> bool: + """A stream attribute is compatible if it is equal to the + desired value or the desired value is unset and the attribute + has a value. + """ + stream_value = getattr(stream, attr, None) + return stream_value == value or (value is None and stream_value is not None) + + +def _is_compatible_text_stream( + stream: t.TextIO, encoding: str | None, errors: str | None +) -> bool: + """Check if a stream's encoding and errors attributes are + compatible with the desired values. + """ + return _is_compat_stream_attr( + stream, "encoding", encoding + ) and _is_compat_stream_attr(stream, "errors", errors) + + +def _force_correct_text_stream( + text_stream: t.IO[t.Any], + encoding: str | None, + errors: str | None, + is_binary: t.Callable[[t.IO[t.Any], bool], bool], + find_binary: t.Callable[[t.IO[t.Any]], t.BinaryIO | None], + force_readable: bool = False, + force_writable: bool = False, +) -> t.TextIO: + if is_binary(text_stream, False): + binary_reader = t.cast(t.BinaryIO, text_stream) + else: + text_stream = t.cast(t.TextIO, text_stream) + # If the stream looks compatible, and won't default to a + # misconfigured ascii encoding, return it as-is. + if _is_compatible_text_stream(text_stream, encoding, errors) and not ( + encoding is None and _stream_is_misconfigured(text_stream) + ): + return text_stream + + # Otherwise, get the underlying binary reader. + possible_binary_reader = find_binary(text_stream) + + # If that's not possible, silently use the original reader + # and get mojibake instead of exceptions. + if possible_binary_reader is None: + return text_stream + + binary_reader = possible_binary_reader + + # Default errors to replace instead of strict in order to get + # something that works. + if errors is None: + errors = "replace" + + # Wrap the binary stream in a text stream with the correct + # encoding parameters. + return _make_text_stream( + binary_reader, + encoding, + errors, + force_readable=force_readable, + force_writable=force_writable, + ) + + +def _force_correct_text_reader( + text_reader: t.IO[t.Any], + encoding: str | None, + errors: str | None, + force_readable: bool = False, +) -> t.TextIO: + return _force_correct_text_stream( + text_reader, + encoding, + errors, + _is_binary_reader, + _find_binary_reader, + force_readable=force_readable, + ) + + +def _force_correct_text_writer( + text_writer: t.IO[t.Any], + encoding: str | None, + errors: str | None, + force_writable: bool = False, +) -> t.TextIO: + return _force_correct_text_stream( + text_writer, + encoding, + errors, + _is_binary_writer, + _find_binary_writer, + force_writable=force_writable, + ) + + +def get_binary_stdin() -> t.BinaryIO: + reader = _find_binary_reader(sys.stdin) + if reader is None: + raise RuntimeError("Was not able to determine binary stream for sys.stdin.") + return reader + + +def get_binary_stdout() -> t.BinaryIO: + writer = _find_binary_writer(sys.stdout) + if writer is None: + raise RuntimeError("Was not able to determine binary stream for sys.stdout.") + return writer + + +def get_binary_stderr() -> t.BinaryIO: + writer = _find_binary_writer(sys.stderr) + if writer is None: + raise RuntimeError("Was not able to determine binary stream for sys.stderr.") + return writer + + +def get_text_stdin(encoding: str | None = None, errors: str | None = None) -> t.TextIO: + rv = _get_windows_console_stream(sys.stdin, encoding, errors) + if rv is not None: + return rv + return _force_correct_text_reader(sys.stdin, encoding, errors, force_readable=True) + + +def get_text_stdout(encoding: str | None = None, errors: str | None = None) -> t.TextIO: + rv = _get_windows_console_stream(sys.stdout, encoding, errors) + if rv is not None: + return rv + return _force_correct_text_writer(sys.stdout, encoding, errors, force_writable=True) + + +def get_text_stderr(encoding: str | None = None, errors: str | None = None) -> t.TextIO: + rv = _get_windows_console_stream(sys.stderr, encoding, errors) + if rv is not None: + return rv + return _force_correct_text_writer(sys.stderr, encoding, errors, force_writable=True) + + +def _wrap_io_open( + file: str | os.PathLike[str] | int, + mode: str, + encoding: str | None, + errors: str | None, +) -> t.IO[t.Any]: + """Handles not passing ``encoding`` and ``errors`` in binary mode.""" + if "b" in mode: + return open(file, mode) + + return open(file, mode, encoding=encoding, errors=errors) + + +def open_stream( + filename: str | os.PathLike[str], + mode: str = "r", + encoding: str | None = None, + errors: str | None = "strict", + atomic: bool = False, +) -> tuple[t.IO[t.Any], bool]: + binary = "b" in mode + filename = os.fspath(filename) + + # Standard streams first. These are simple because they ignore the + # atomic flag. Use fsdecode to handle Path("-"). + if os.fsdecode(filename) == "-": + if any(m in mode for m in ["w", "a", "x"]): + if binary: + return get_binary_stdout(), False + return get_text_stdout(encoding=encoding, errors=errors), False + if binary: + return get_binary_stdin(), False + return get_text_stdin(encoding=encoding, errors=errors), False + + # Non-atomic writes directly go out through the regular open functions. + if not atomic: + return _wrap_io_open(filename, mode, encoding, errors), True + + # Some usability stuff for atomic writes + if "a" in mode: + raise ValueError( + "Appending to an existing file is not supported, because that" + " would involve an expensive `copy`-operation to a temporary" + " file. Open the file in normal `w`-mode and copy explicitly" + " if that's what you're after." + ) + if "x" in mode: + raise ValueError("Use the `overwrite`-parameter instead.") + if "w" not in mode: + raise ValueError("Atomic writes only make sense with `w`-mode.") + + # Atomic writes are more complicated. They work by opening a file + # as a proxy in the same folder and then using the fdopen + # functionality to wrap it in a Python file. Then we wrap it in an + # atomic file that moves the file over on close. + import errno + import random + + try: + perm: int | None = os.stat(filename).st_mode + except OSError: + perm = None + + flags = os.O_RDWR | os.O_CREAT | os.O_EXCL + + if binary: + flags |= getattr(os, "O_BINARY", 0) + + while True: + tmp_filename = os.path.join( + os.path.dirname(filename), + f".__atomic-write{random.randrange(1 << 32):08x}", + ) + try: + fd = os.open(tmp_filename, flags, 0o666 if perm is None else perm) + break + except OSError as e: + if e.errno == errno.EEXIST or ( + os.name == "nt" + and e.errno == errno.EACCES + and os.path.isdir(e.filename) + and os.access(e.filename, os.W_OK) + ): + continue + raise + + if perm is not None: + os.chmod(tmp_filename, perm) # in case perm includes bits in umask + + f = _wrap_io_open(fd, mode, encoding, errors) + af = _AtomicFile(f, tmp_filename, os.path.realpath(filename)) + return t.cast(t.IO[t.Any], af), True + + +class _AtomicFile: + def __init__(self, f: t.IO[t.Any], tmp_filename: str, real_filename: str) -> None: + self._f = f + self._tmp_filename = tmp_filename + self._real_filename = real_filename + self.closed = False + + @property + def name(self) -> str: + return self._real_filename + + def close(self, delete: bool = False) -> None: + if self.closed: + return + self._f.close() + os.replace(self._tmp_filename, self._real_filename) + self.closed = True + + def __getattr__(self, name: str) -> t.Any: + return getattr(self._f, name) + + def __enter__(self) -> _AtomicFile: + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_value: BaseException | None, + tb: TracebackType | None, + ) -> None: + self.close(delete=exc_type is not None) + + def __repr__(self) -> str: + return repr(self._f) + + +def strip_ansi(value: str) -> str: + return _ansi_re.sub("", value) + + +def _is_jupyter_kernel_output(stream: t.IO[t.Any]) -> bool: + while isinstance(stream, (_FixupStream, _NonClosingTextIOWrapper)): + stream = stream._stream + + return stream.__class__.__module__.startswith("ipykernel.") + + +def should_strip_ansi( + stream: t.IO[t.Any] | None = None, color: bool | None = None +) -> bool: + if color is None: + if stream is None: + stream = sys.stdin + return not isatty(stream) and not _is_jupyter_kernel_output(stream) + return not color + + +# On Windows, wrap the output streams with colorama to support ANSI +# color codes. +# NOTE: double check is needed so mypy does not analyze this on Linux +if sys.platform.startswith("win") and WIN: + from ._winconsole import _get_windows_console_stream + + def _get_argv_encoding() -> str: + import locale + + return locale.getpreferredencoding() + + _ansi_stream_wrappers: cabc.MutableMapping[t.TextIO, t.TextIO] = WeakKeyDictionary() + + def auto_wrap_for_ansi(stream: t.TextIO, color: bool | None = None) -> t.TextIO: + """Support ANSI color and style codes on Windows by wrapping a + stream with colorama. + """ + try: + cached = _ansi_stream_wrappers.get(stream) + except Exception: + cached = None + + if cached is not None: + return cached + + import colorama + + strip = should_strip_ansi(stream, color) + ansi_wrapper = colorama.AnsiToWin32(stream, strip=strip) + rv = t.cast(t.TextIO, ansi_wrapper.stream) + _write = rv.write + + def _safe_write(s: str) -> int: + try: + return _write(s) + except BaseException: + ansi_wrapper.reset_all() + raise + + rv.write = _safe_write # type: ignore[method-assign] + + try: + _ansi_stream_wrappers[stream] = rv + except Exception: + pass + + return rv + +else: + + def _get_argv_encoding() -> str: + return getattr(sys.stdin, "encoding", None) or sys.getfilesystemencoding() + + def _get_windows_console_stream( + f: t.TextIO, encoding: str | None, errors: str | None + ) -> t.TextIO | None: + return None + + +def term_len(x: str) -> int: + return len(strip_ansi(x)) + + +def isatty(stream: t.IO[t.Any]) -> bool: + try: + return stream.isatty() + except Exception: + return False + + +def _make_cached_stream_func( + src_func: t.Callable[[], t.TextIO | None], + wrapper_func: t.Callable[[], t.TextIO], +) -> t.Callable[[], t.TextIO | None]: + cache: cabc.MutableMapping[t.TextIO, t.TextIO] = WeakKeyDictionary() + + def func() -> t.TextIO | None: + stream = src_func() + + if stream is None: + return None + + try: + rv = cache.get(stream) + except Exception: + rv = None + if rv is not None: + return rv + rv = wrapper_func() + try: + cache[stream] = rv + except Exception: + pass + return rv + + return func + + +_default_text_stdin = _make_cached_stream_func(lambda: sys.stdin, get_text_stdin) +_default_text_stdout = _make_cached_stream_func(lambda: sys.stdout, get_text_stdout) +_default_text_stderr = _make_cached_stream_func(lambda: sys.stderr, get_text_stderr) + + +binary_streams: cabc.Mapping[str, t.Callable[[], t.BinaryIO]] = { + "stdin": get_binary_stdin, + "stdout": get_binary_stdout, + "stderr": get_binary_stderr, +} + +text_streams: cabc.Mapping[str, t.Callable[[str | None, str | None], t.TextIO]] = { + "stdin": get_text_stdin, + "stdout": get_text_stdout, + "stderr": get_text_stderr, +} diff --git a/venv/lib/python3.10/site-packages/click/_termui_impl.py b/venv/lib/python3.10/site-packages/click/_termui_impl.py new file mode 100644 index 0000000..ee8225c --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/_termui_impl.py @@ -0,0 +1,852 @@ +""" +This module contains implementations for the termui module. To keep the +import time of Click down, some infrequently used functionality is +placed in this module and only imported as needed. +""" + +from __future__ import annotations + +import collections.abc as cabc +import contextlib +import math +import os +import shlex +import sys +import time +import typing as t +from gettext import gettext as _ +from io import StringIO +from pathlib import Path +from types import TracebackType + +from ._compat import _default_text_stdout +from ._compat import CYGWIN +from ._compat import get_best_encoding +from ._compat import isatty +from ._compat import open_stream +from ._compat import strip_ansi +from ._compat import term_len +from ._compat import WIN +from .exceptions import ClickException +from .utils import echo + +V = t.TypeVar("V") + +if os.name == "nt": + BEFORE_BAR = "\r" + AFTER_BAR = "\n" +else: + BEFORE_BAR = "\r\033[?25l" + AFTER_BAR = "\033[?25h\n" + + +class ProgressBar(t.Generic[V]): + def __init__( + self, + iterable: cabc.Iterable[V] | None, + length: int | None = None, + fill_char: str = "#", + empty_char: str = " ", + bar_template: str = "%(bar)s", + info_sep: str = " ", + hidden: bool = False, + show_eta: bool = True, + show_percent: bool | None = None, + show_pos: bool = False, + item_show_func: t.Callable[[V | None], str | None] | None = None, + label: str | None = None, + file: t.TextIO | None = None, + color: bool | None = None, + update_min_steps: int = 1, + width: int = 30, + ) -> None: + self.fill_char = fill_char + self.empty_char = empty_char + self.bar_template = bar_template + self.info_sep = info_sep + self.hidden = hidden + self.show_eta = show_eta + self.show_percent = show_percent + self.show_pos = show_pos + self.item_show_func = item_show_func + self.label: str = label or "" + + if file is None: + file = _default_text_stdout() + + # There are no standard streams attached to write to. For example, + # pythonw on Windows. + if file is None: + file = StringIO() + + self.file = file + self.color = color + self.update_min_steps = update_min_steps + self._completed_intervals = 0 + self.width: int = width + self.autowidth: bool = width == 0 + + if length is None: + from operator import length_hint + + length = length_hint(iterable, -1) + + if length == -1: + length = None + if iterable is None: + if length is None: + raise TypeError("iterable or length is required") + iterable = t.cast("cabc.Iterable[V]", range(length)) + self.iter: cabc.Iterable[V] = iter(iterable) + self.length = length + self.pos: int = 0 + self.avg: list[float] = [] + self.last_eta: float + self.start: float + self.start = self.last_eta = time.time() + self.eta_known: bool = False + self.finished: bool = False + self.max_width: int | None = None + self.entered: bool = False + self.current_item: V | None = None + self._is_atty = isatty(self.file) + self._last_line: str | None = None + + def __enter__(self) -> ProgressBar[V]: + self.entered = True + self.render_progress() + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_value: BaseException | None, + tb: TracebackType | None, + ) -> None: + self.render_finish() + + def __iter__(self) -> cabc.Iterator[V]: + if not self.entered: + raise RuntimeError("You need to use progress bars in a with block.") + self.render_progress() + return self.generator() + + def __next__(self) -> V: + # Iteration is defined in terms of a generator function, + # returned by iter(self); use that to define next(). This works + # because `self.iter` is an iterable consumed by that generator, + # so it is re-entry safe. Calling `next(self.generator())` + # twice works and does "what you want". + return next(iter(self)) + + def render_finish(self) -> None: + if self.hidden or not self._is_atty: + return + self.file.write(AFTER_BAR) + self.file.flush() + + @property + def pct(self) -> float: + if self.finished: + return 1.0 + return min(self.pos / (float(self.length or 1) or 1), 1.0) + + @property + def time_per_iteration(self) -> float: + if not self.avg: + return 0.0 + return sum(self.avg) / float(len(self.avg)) + + @property + def eta(self) -> float: + if self.length is not None and not self.finished: + return self.time_per_iteration * (self.length - self.pos) + return 0.0 + + def format_eta(self) -> str: + if self.eta_known: + t = int(self.eta) + seconds = t % 60 + t //= 60 + minutes = t % 60 + t //= 60 + hours = t % 24 + t //= 24 + if t > 0: + return f"{t}d {hours:02}:{minutes:02}:{seconds:02}" + else: + return f"{hours:02}:{minutes:02}:{seconds:02}" + return "" + + def format_pos(self) -> str: + pos = str(self.pos) + if self.length is not None: + pos += f"/{self.length}" + return pos + + def format_pct(self) -> str: + return f"{int(self.pct * 100): 4}%"[1:] + + def format_bar(self) -> str: + if self.length is not None: + bar_length = int(self.pct * self.width) + bar = self.fill_char * bar_length + bar += self.empty_char * (self.width - bar_length) + elif self.finished: + bar = self.fill_char * self.width + else: + chars = list(self.empty_char * (self.width or 1)) + if self.time_per_iteration != 0: + chars[ + int( + (math.cos(self.pos * self.time_per_iteration) / 2.0 + 0.5) + * self.width + ) + ] = self.fill_char + bar = "".join(chars) + return bar + + def format_progress_line(self) -> str: + show_percent = self.show_percent + + info_bits = [] + if self.length is not None and show_percent is None: + show_percent = not self.show_pos + + if self.show_pos: + info_bits.append(self.format_pos()) + if show_percent: + info_bits.append(self.format_pct()) + if self.show_eta and self.eta_known and not self.finished: + info_bits.append(self.format_eta()) + if self.item_show_func is not None: + item_info = self.item_show_func(self.current_item) + if item_info is not None: + info_bits.append(item_info) + + return ( + self.bar_template + % { + "label": self.label, + "bar": self.format_bar(), + "info": self.info_sep.join(info_bits), + } + ).rstrip() + + def render_progress(self) -> None: + if self.hidden: + return + + if not self._is_atty: + # Only output the label once if the output is not a TTY. + if self._last_line != self.label: + self._last_line = self.label + echo(self.label, file=self.file, color=self.color) + return + + buf = [] + # Update width in case the terminal has been resized + if self.autowidth: + import shutil + + old_width = self.width + self.width = 0 + clutter_length = term_len(self.format_progress_line()) + new_width = max(0, shutil.get_terminal_size().columns - clutter_length) + if new_width < old_width and self.max_width is not None: + buf.append(BEFORE_BAR) + buf.append(" " * self.max_width) + self.max_width = new_width + self.width = new_width + + clear_width = self.width + if self.max_width is not None: + clear_width = self.max_width + + buf.append(BEFORE_BAR) + line = self.format_progress_line() + line_len = term_len(line) + if self.max_width is None or self.max_width < line_len: + self.max_width = line_len + + buf.append(line) + buf.append(" " * (clear_width - line_len)) + line = "".join(buf) + # Render the line only if it changed. + + if line != self._last_line: + self._last_line = line + echo(line, file=self.file, color=self.color, nl=False) + self.file.flush() + + def make_step(self, n_steps: int) -> None: + self.pos += n_steps + if self.length is not None and self.pos >= self.length: + self.finished = True + + if (time.time() - self.last_eta) < 1.0: + return + + self.last_eta = time.time() + + # self.avg is a rolling list of length <= 7 of steps where steps are + # defined as time elapsed divided by the total progress through + # self.length. + if self.pos: + step = (time.time() - self.start) / self.pos + else: + step = time.time() - self.start + + self.avg = self.avg[-6:] + [step] + + self.eta_known = self.length is not None + + def update(self, n_steps: int, current_item: V | None = None) -> None: + """Update the progress bar by advancing a specified number of + steps, and optionally set the ``current_item`` for this new + position. + + :param n_steps: Number of steps to advance. + :param current_item: Optional item to set as ``current_item`` + for the updated position. + + .. versionchanged:: 8.0 + Added the ``current_item`` optional parameter. + + .. versionchanged:: 8.0 + Only render when the number of steps meets the + ``update_min_steps`` threshold. + """ + if current_item is not None: + self.current_item = current_item + + self._completed_intervals += n_steps + + if self._completed_intervals >= self.update_min_steps: + self.make_step(self._completed_intervals) + self.render_progress() + self._completed_intervals = 0 + + def finish(self) -> None: + self.eta_known = False + self.current_item = None + self.finished = True + + def generator(self) -> cabc.Iterator[V]: + """Return a generator which yields the items added to the bar + during construction, and updates the progress bar *after* the + yielded block returns. + """ + # WARNING: the iterator interface for `ProgressBar` relies on + # this and only works because this is a simple generator which + # doesn't create or manage additional state. If this function + # changes, the impact should be evaluated both against + # `iter(bar)` and `next(bar)`. `next()` in particular may call + # `self.generator()` repeatedly, and this must remain safe in + # order for that interface to work. + if not self.entered: + raise RuntimeError("You need to use progress bars in a with block.") + + if not self._is_atty: + yield from self.iter + else: + for rv in self.iter: + self.current_item = rv + + # This allows show_item_func to be updated before the + # item is processed. Only trigger at the beginning of + # the update interval. + if self._completed_intervals == 0: + self.render_progress() + + yield rv + self.update(1) + + self.finish() + self.render_progress() + + +def pager(generator: cabc.Iterable[str], color: bool | None = None) -> None: + """Decide what method to use for paging through text.""" + stdout = _default_text_stdout() + + # There are no standard streams attached to write to. For example, + # pythonw on Windows. + if stdout is None: + stdout = StringIO() + + if not isatty(sys.stdin) or not isatty(stdout): + return _nullpager(stdout, generator, color) + + # Split and normalize the pager command into parts. + pager_cmd_parts = shlex.split(os.environ.get("PAGER", ""), posix=False) + if pager_cmd_parts: + if WIN: + if _tempfilepager(generator, pager_cmd_parts, color): + return + elif _pipepager(generator, pager_cmd_parts, color): + return + + if os.environ.get("TERM") in ("dumb", "emacs"): + return _nullpager(stdout, generator, color) + if (WIN or sys.platform.startswith("os2")) and _tempfilepager( + generator, ["more"], color + ): + return + if _pipepager(generator, ["less"], color): + return + + import tempfile + + fd, filename = tempfile.mkstemp() + os.close(fd) + try: + if _pipepager(generator, ["more"], color): + return + return _nullpager(stdout, generator, color) + finally: + os.unlink(filename) + + +def _pipepager( + generator: cabc.Iterable[str], cmd_parts: list[str], color: bool | None +) -> bool: + """Page through text by feeding it to another program. Invoking a + pager through this might support colors. + + Returns `True` if the command was found, `False` otherwise and thus another + pager should be attempted. + """ + # Split the command into the invoked CLI and its parameters. + if not cmd_parts: + return False + + import shutil + + cmd = cmd_parts[0] + cmd_params = cmd_parts[1:] + + cmd_filepath = shutil.which(cmd) + if not cmd_filepath: + return False + + # Produces a normalized absolute path string. + # multi-call binaries such as busybox derive their identity from the symlink + # less -> busybox. resolve() causes them to misbehave. (eg. less becomes busybox) + cmd_path = Path(cmd_filepath).absolute() + cmd_name = cmd_path.name + + import subprocess + + # Make a local copy of the environment to not affect the global one. + env = dict(os.environ) + + # If we're piping to less and the user hasn't decided on colors, we enable + # them by default we find the -R flag in the command line arguments. + if color is None and cmd_name == "less": + less_flags = f"{os.environ.get('LESS', '')}{' '.join(cmd_params)}" + if not less_flags: + env["LESS"] = "-R" + color = True + elif "r" in less_flags or "R" in less_flags: + color = True + + c = subprocess.Popen( + [str(cmd_path)] + cmd_params, + shell=False, + stdin=subprocess.PIPE, + env=env, + errors="replace", + text=True, + ) + assert c.stdin is not None + try: + for text in generator: + if not color: + text = strip_ansi(text) + + c.stdin.write(text) + except BrokenPipeError: + # In case the pager exited unexpectedly, ignore the broken pipe error. + pass + except Exception as e: + # In case there is an exception we want to close the pager immediately + # and let the caller handle it. + # Otherwise the pager will keep running, and the user may not notice + # the error message, or worse yet it may leave the terminal in a broken state. + c.terminate() + raise e + finally: + # We must close stdin and wait for the pager to exit before we continue + try: + c.stdin.close() + # Close implies flush, so it might throw a BrokenPipeError if the pager + # process exited already. + except BrokenPipeError: + pass + + # Less doesn't respect ^C, but catches it for its own UI purposes (aborting + # search or other commands inside less). + # + # That means when the user hits ^C, the parent process (click) terminates, + # but less is still alive, paging the output and messing up the terminal. + # + # If the user wants to make the pager exit on ^C, they should set + # `LESS='-K'`. It's not our decision to make. + while True: + try: + c.wait() + except KeyboardInterrupt: + pass + else: + break + + return True + + +def _tempfilepager( + generator: cabc.Iterable[str], cmd_parts: list[str], color: bool | None +) -> bool: + """Page through text by invoking a program on a temporary file. + + Returns `True` if the command was found, `False` otherwise and thus another + pager should be attempted. + """ + # Split the command into the invoked CLI and its parameters. + if not cmd_parts: + return False + + import shutil + + cmd = cmd_parts[0] + + cmd_filepath = shutil.which(cmd) + if not cmd_filepath: + return False + # Produces a normalized absolute path string. + # multi-call binaries such as busybox derive their identity from the symlink + # less -> busybox. resolve() causes them to misbehave. (eg. less becomes busybox) + cmd_path = Path(cmd_filepath).absolute() + + import subprocess + import tempfile + + fd, filename = tempfile.mkstemp() + # TODO: This never terminates if the passed generator never terminates. + text = "".join(generator) + if not color: + text = strip_ansi(text) + encoding = get_best_encoding(sys.stdout) + with open_stream(filename, "wb")[0] as f: + f.write(text.encode(encoding)) + try: + subprocess.call([str(cmd_path), filename]) + except OSError: + # Command not found + pass + finally: + os.close(fd) + os.unlink(filename) + + return True + + +def _nullpager( + stream: t.TextIO, generator: cabc.Iterable[str], color: bool | None +) -> None: + """Simply print unformatted text. This is the ultimate fallback.""" + for text in generator: + if not color: + text = strip_ansi(text) + stream.write(text) + + +class Editor: + def __init__( + self, + editor: str | None = None, + env: cabc.Mapping[str, str] | None = None, + require_save: bool = True, + extension: str = ".txt", + ) -> None: + self.editor = editor + self.env = env + self.require_save = require_save + self.extension = extension + + def get_editor(self) -> str: + if self.editor is not None: + return self.editor + for key in "VISUAL", "EDITOR": + rv = os.environ.get(key) + if rv: + return rv + if WIN: + return "notepad" + + from shutil import which + + for editor in "sensible-editor", "vim", "nano": + if which(editor) is not None: + return editor + return "vi" + + def edit_files(self, filenames: cabc.Iterable[str]) -> None: + import subprocess + + editor = self.get_editor() + environ: dict[str, str] | None = None + + if self.env: + environ = os.environ.copy() + environ.update(self.env) + + exc_filename = " ".join(f'"{filename}"' for filename in filenames) + + try: + c = subprocess.Popen( + args=f"{editor} {exc_filename}", env=environ, shell=True + ) + exit_code = c.wait() + if exit_code != 0: + raise ClickException( + _("{editor}: Editing failed").format(editor=editor) + ) + except OSError as e: + raise ClickException( + _("{editor}: Editing failed: {e}").format(editor=editor, e=e) + ) from e + + @t.overload + def edit(self, text: bytes | bytearray) -> bytes | None: ... + + # We cannot know whether or not the type expected is str or bytes when None + # is passed, so str is returned as that was what was done before. + @t.overload + def edit(self, text: str | None) -> str | None: ... + + def edit(self, text: str | bytes | bytearray | None) -> str | bytes | None: + import tempfile + + if text is None: + data: bytes | bytearray = b"" + elif isinstance(text, (bytes, bytearray)): + data = text + else: + if text and not text.endswith("\n"): + text += "\n" + + if WIN: + data = text.replace("\n", "\r\n").encode("utf-8-sig") + else: + data = text.encode("utf-8") + + fd, name = tempfile.mkstemp(prefix="editor-", suffix=self.extension) + f: t.BinaryIO + + try: + with os.fdopen(fd, "wb") as f: + f.write(data) + + # If the filesystem resolution is 1 second, like Mac OS + # 10.12 Extended, or 2 seconds, like FAT32, and the editor + # closes very fast, require_save can fail. Set the modified + # time to be 2 seconds in the past to work around this. + os.utime(name, (os.path.getatime(name), os.path.getmtime(name) - 2)) + # Depending on the resolution, the exact value might not be + # recorded, so get the new recorded value. + timestamp = os.path.getmtime(name) + + self.edit_files((name,)) + + if self.require_save and os.path.getmtime(name) == timestamp: + return None + + with open(name, "rb") as f: + rv = f.read() + + if isinstance(text, (bytes, bytearray)): + return rv + + return rv.decode("utf-8-sig").replace("\r\n", "\n") + finally: + os.unlink(name) + + +def open_url(url: str, wait: bool = False, locate: bool = False) -> int: + import subprocess + + def _unquote_file(url: str) -> str: + from urllib.parse import unquote + + if url.startswith("file://"): + url = unquote(url[7:]) + + return url + + if sys.platform == "darwin": + args = ["open"] + if wait: + args.append("-W") + if locate: + args.append("-R") + args.append(_unquote_file(url)) + null = open("/dev/null", "w") + try: + return subprocess.Popen(args, stderr=null).wait() + finally: + null.close() + elif WIN: + if locate: + url = _unquote_file(url) + args = ["explorer", f"/select,{url}"] + else: + args = ["start"] + if wait: + args.append("/WAIT") + args.append("") + args.append(url) + try: + return subprocess.call(args) + except OSError: + # Command not found + return 127 + elif CYGWIN: + if locate: + url = _unquote_file(url) + args = ["cygstart", os.path.dirname(url)] + else: + args = ["cygstart"] + if wait: + args.append("-w") + args.append(url) + try: + return subprocess.call(args) + except OSError: + # Command not found + return 127 + + try: + if locate: + url = os.path.dirname(_unquote_file(url)) or "." + else: + url = _unquote_file(url) + c = subprocess.Popen(["xdg-open", url]) + if wait: + return c.wait() + return 0 + except OSError: + if url.startswith(("http://", "https://")) and not locate and not wait: + import webbrowser + + webbrowser.open(url) + return 0 + return 1 + + +def _translate_ch_to_exc(ch: str) -> None: + if ch == "\x03": + raise KeyboardInterrupt() + + if ch == "\x04" and not WIN: # Unix-like, Ctrl+D + raise EOFError() + + if ch == "\x1a" and WIN: # Windows, Ctrl+Z + raise EOFError() + + return None + + +if sys.platform == "win32": + import msvcrt + + @contextlib.contextmanager + def raw_terminal() -> cabc.Iterator[int]: + yield -1 + + def getchar(echo: bool) -> str: + # The function `getch` will return a bytes object corresponding to + # the pressed character. Since Windows 10 build 1803, it will also + # return \x00 when called a second time after pressing a regular key. + # + # `getwch` does not share this probably-bugged behavior. Moreover, it + # returns a Unicode object by default, which is what we want. + # + # Either of these functions will return \x00 or \xe0 to indicate + # a special key, and you need to call the same function again to get + # the "rest" of the code. The fun part is that \u00e0 is + # "latin small letter a with grave", so if you type that on a French + # keyboard, you _also_ get a \xe0. + # E.g., consider the Up arrow. This returns \xe0 and then \x48. The + # resulting Unicode string reads as "a with grave" + "capital H". + # This is indistinguishable from when the user actually types + # "a with grave" and then "capital H". + # + # When \xe0 is returned, we assume it's part of a special-key sequence + # and call `getwch` again, but that means that when the user types + # the \u00e0 character, `getchar` doesn't return until a second + # character is typed. + # The alternative is returning immediately, but that would mess up + # cross-platform handling of arrow keys and others that start with + # \xe0. Another option is using `getch`, but then we can't reliably + # read non-ASCII characters, because return values of `getch` are + # limited to the current 8-bit codepage. + # + # Anyway, Click doesn't claim to do this Right(tm), and using `getwch` + # is doing the right thing in more situations than with `getch`. + + if echo: + func = t.cast(t.Callable[[], str], msvcrt.getwche) + else: + func = t.cast(t.Callable[[], str], msvcrt.getwch) + + rv = func() + + if rv in ("\x00", "\xe0"): + # \x00 and \xe0 are control characters that indicate special key, + # see above. + rv += func() + + _translate_ch_to_exc(rv) + return rv + +else: + import termios + import tty + + @contextlib.contextmanager + def raw_terminal() -> cabc.Iterator[int]: + f: t.TextIO | None + fd: int + + if not isatty(sys.stdin): + f = open("/dev/tty") + fd = f.fileno() + else: + fd = sys.stdin.fileno() + f = None + + try: + old_settings = termios.tcgetattr(fd) + + try: + tty.setraw(fd) + yield fd + finally: + termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) + sys.stdout.flush() + + if f is not None: + f.close() + except termios.error: + pass + + def getchar(echo: bool) -> str: + with raw_terminal() as fd: + ch = os.read(fd, 32).decode(get_best_encoding(sys.stdin), "replace") + + if echo and isatty(sys.stdout): + sys.stdout.write(ch) + + _translate_ch_to_exc(ch) + return ch diff --git a/venv/lib/python3.10/site-packages/click/_textwrap.py b/venv/lib/python3.10/site-packages/click/_textwrap.py new file mode 100644 index 0000000..97fbee3 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/_textwrap.py @@ -0,0 +1,51 @@ +from __future__ import annotations + +import collections.abc as cabc +import textwrap +from contextlib import contextmanager + + +class TextWrapper(textwrap.TextWrapper): + def _handle_long_word( + self, + reversed_chunks: list[str], + cur_line: list[str], + cur_len: int, + width: int, + ) -> None: + space_left = max(width - cur_len, 1) + + if self.break_long_words: + last = reversed_chunks[-1] + cut = last[:space_left] + res = last[space_left:] + cur_line.append(cut) + reversed_chunks[-1] = res + elif not cur_line: + cur_line.append(reversed_chunks.pop()) + + @contextmanager + def extra_indent(self, indent: str) -> cabc.Iterator[None]: + old_initial_indent = self.initial_indent + old_subsequent_indent = self.subsequent_indent + self.initial_indent += indent + self.subsequent_indent += indent + + try: + yield + finally: + self.initial_indent = old_initial_indent + self.subsequent_indent = old_subsequent_indent + + def indent_only(self, text: str) -> str: + rv = [] + + for idx, line in enumerate(text.splitlines()): + indent = self.initial_indent + + if idx > 0: + indent = self.subsequent_indent + + rv.append(f"{indent}{line}") + + return "\n".join(rv) diff --git a/venv/lib/python3.10/site-packages/click/_utils.py b/venv/lib/python3.10/site-packages/click/_utils.py new file mode 100644 index 0000000..09fb008 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/_utils.py @@ -0,0 +1,36 @@ +from __future__ import annotations + +import enum +import typing as t + + +class Sentinel(enum.Enum): + """Enum used to define sentinel values. + + .. seealso:: + + `PEP 661 - Sentinel Values `_. + """ + + UNSET = object() + FLAG_NEEDS_VALUE = object() + + def __repr__(self) -> str: + return f"{self.__class__.__name__}.{self.name}" + + +UNSET = Sentinel.UNSET +"""Sentinel used to indicate that a value is not set.""" + +FLAG_NEEDS_VALUE = Sentinel.FLAG_NEEDS_VALUE +"""Sentinel used to indicate an option was passed as a flag without a +value but is not a flag option. + +``Option.consume_value`` uses this to prompt or use the ``flag_value``. +""" + +T_UNSET = t.Literal[UNSET] # type: ignore[valid-type] +"""Type hint for the :data:`UNSET` sentinel value.""" + +T_FLAG_NEEDS_VALUE = t.Literal[FLAG_NEEDS_VALUE] # type: ignore[valid-type] +"""Type hint for the :data:`FLAG_NEEDS_VALUE` sentinel value.""" diff --git a/venv/lib/python3.10/site-packages/click/_winconsole.py b/venv/lib/python3.10/site-packages/click/_winconsole.py new file mode 100644 index 0000000..e56c7c6 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/_winconsole.py @@ -0,0 +1,296 @@ +# This module is based on the excellent work by Adam Bartoš who +# provided a lot of what went into the implementation here in +# the discussion to issue1602 in the Python bug tracker. +# +# There are some general differences in regards to how this works +# compared to the original patches as we do not need to patch +# the entire interpreter but just work in our little world of +# echo and prompt. +from __future__ import annotations + +import collections.abc as cabc +import io +import sys +import time +import typing as t +from ctypes import Array +from ctypes import byref +from ctypes import c_char +from ctypes import c_char_p +from ctypes import c_int +from ctypes import c_ssize_t +from ctypes import c_ulong +from ctypes import c_void_p +from ctypes import POINTER +from ctypes import py_object +from ctypes import Structure +from ctypes.wintypes import DWORD +from ctypes.wintypes import HANDLE +from ctypes.wintypes import LPCWSTR +from ctypes.wintypes import LPWSTR + +from ._compat import _NonClosingTextIOWrapper + +assert sys.platform == "win32" +import msvcrt # noqa: E402 +from ctypes import windll # noqa: E402 +from ctypes import WINFUNCTYPE # noqa: E402 + +c_ssize_p = POINTER(c_ssize_t) + +kernel32 = windll.kernel32 +GetStdHandle = kernel32.GetStdHandle +ReadConsoleW = kernel32.ReadConsoleW +WriteConsoleW = kernel32.WriteConsoleW +GetConsoleMode = kernel32.GetConsoleMode +GetLastError = kernel32.GetLastError +GetCommandLineW = WINFUNCTYPE(LPWSTR)(("GetCommandLineW", windll.kernel32)) +CommandLineToArgvW = WINFUNCTYPE(POINTER(LPWSTR), LPCWSTR, POINTER(c_int))( + ("CommandLineToArgvW", windll.shell32) +) +LocalFree = WINFUNCTYPE(c_void_p, c_void_p)(("LocalFree", windll.kernel32)) + +STDIN_HANDLE = GetStdHandle(-10) +STDOUT_HANDLE = GetStdHandle(-11) +STDERR_HANDLE = GetStdHandle(-12) + +PyBUF_SIMPLE = 0 +PyBUF_WRITABLE = 1 + +ERROR_SUCCESS = 0 +ERROR_NOT_ENOUGH_MEMORY = 8 +ERROR_OPERATION_ABORTED = 995 + +STDIN_FILENO = 0 +STDOUT_FILENO = 1 +STDERR_FILENO = 2 + +EOF = b"\x1a" +MAX_BYTES_WRITTEN = 32767 + +if t.TYPE_CHECKING: + try: + # Using `typing_extensions.Buffer` instead of `collections.abc` + # on Windows for some reason does not have `Sized` implemented. + from collections.abc import Buffer # type: ignore + except ImportError: + from typing_extensions import Buffer + +try: + from ctypes import pythonapi +except ImportError: + # On PyPy we cannot get buffers so our ability to operate here is + # severely limited. + get_buffer = None +else: + + class Py_buffer(Structure): + _fields_ = [ # noqa: RUF012 + ("buf", c_void_p), + ("obj", py_object), + ("len", c_ssize_t), + ("itemsize", c_ssize_t), + ("readonly", c_int), + ("ndim", c_int), + ("format", c_char_p), + ("shape", c_ssize_p), + ("strides", c_ssize_p), + ("suboffsets", c_ssize_p), + ("internal", c_void_p), + ] + + PyObject_GetBuffer = pythonapi.PyObject_GetBuffer + PyBuffer_Release = pythonapi.PyBuffer_Release + + def get_buffer(obj: Buffer, writable: bool = False) -> Array[c_char]: + buf = Py_buffer() + flags: int = PyBUF_WRITABLE if writable else PyBUF_SIMPLE + PyObject_GetBuffer(py_object(obj), byref(buf), flags) + + try: + buffer_type = c_char * buf.len + out: Array[c_char] = buffer_type.from_address(buf.buf) + return out + finally: + PyBuffer_Release(byref(buf)) + + +class _WindowsConsoleRawIOBase(io.RawIOBase): + def __init__(self, handle: int | None) -> None: + self.handle = handle + + def isatty(self) -> t.Literal[True]: + super().isatty() + return True + + +class _WindowsConsoleReader(_WindowsConsoleRawIOBase): + def readable(self) -> t.Literal[True]: + return True + + def readinto(self, b: Buffer) -> int: + bytes_to_be_read = len(b) + if not bytes_to_be_read: + return 0 + elif bytes_to_be_read % 2: + raise ValueError( + "cannot read odd number of bytes from UTF-16-LE encoded console" + ) + + buffer = get_buffer(b, writable=True) + code_units_to_be_read = bytes_to_be_read // 2 + code_units_read = c_ulong() + + rv = ReadConsoleW( + HANDLE(self.handle), + buffer, + code_units_to_be_read, + byref(code_units_read), + None, + ) + if GetLastError() == ERROR_OPERATION_ABORTED: + # wait for KeyboardInterrupt + time.sleep(0.1) + if not rv: + raise OSError(f"Windows error: {GetLastError()}") + + if buffer[0] == EOF: + return 0 + return 2 * code_units_read.value + + +class _WindowsConsoleWriter(_WindowsConsoleRawIOBase): + def writable(self) -> t.Literal[True]: + return True + + @staticmethod + def _get_error_message(errno: int) -> str: + if errno == ERROR_SUCCESS: + return "ERROR_SUCCESS" + elif errno == ERROR_NOT_ENOUGH_MEMORY: + return "ERROR_NOT_ENOUGH_MEMORY" + return f"Windows error {errno}" + + def write(self, b: Buffer) -> int: + bytes_to_be_written = len(b) + buf = get_buffer(b) + code_units_to_be_written = min(bytes_to_be_written, MAX_BYTES_WRITTEN) // 2 + code_units_written = c_ulong() + + WriteConsoleW( + HANDLE(self.handle), + buf, + code_units_to_be_written, + byref(code_units_written), + None, + ) + bytes_written = 2 * code_units_written.value + + if bytes_written == 0 and bytes_to_be_written > 0: + raise OSError(self._get_error_message(GetLastError())) + return bytes_written + + +class ConsoleStream: + def __init__(self, text_stream: t.TextIO, byte_stream: t.BinaryIO) -> None: + self._text_stream = text_stream + self.buffer = byte_stream + + @property + def name(self) -> str: + return self.buffer.name + + def write(self, x: t.AnyStr) -> int: + if isinstance(x, str): + return self._text_stream.write(x) + try: + self.flush() + except Exception: + pass + return self.buffer.write(x) + + def writelines(self, lines: cabc.Iterable[t.AnyStr]) -> None: + for line in lines: + self.write(line) + + def __getattr__(self, name: str) -> t.Any: + return getattr(self._text_stream, name) + + def isatty(self) -> bool: + return self.buffer.isatty() + + def __repr__(self) -> str: + return f"" + + +def _get_text_stdin(buffer_stream: t.BinaryIO) -> t.TextIO: + text_stream = _NonClosingTextIOWrapper( + io.BufferedReader(_WindowsConsoleReader(STDIN_HANDLE)), + "utf-16-le", + "strict", + line_buffering=True, + ) + return t.cast(t.TextIO, ConsoleStream(text_stream, buffer_stream)) + + +def _get_text_stdout(buffer_stream: t.BinaryIO) -> t.TextIO: + text_stream = _NonClosingTextIOWrapper( + io.BufferedWriter(_WindowsConsoleWriter(STDOUT_HANDLE)), + "utf-16-le", + "strict", + line_buffering=True, + ) + return t.cast(t.TextIO, ConsoleStream(text_stream, buffer_stream)) + + +def _get_text_stderr(buffer_stream: t.BinaryIO) -> t.TextIO: + text_stream = _NonClosingTextIOWrapper( + io.BufferedWriter(_WindowsConsoleWriter(STDERR_HANDLE)), + "utf-16-le", + "strict", + line_buffering=True, + ) + return t.cast(t.TextIO, ConsoleStream(text_stream, buffer_stream)) + + +_stream_factories: cabc.Mapping[int, t.Callable[[t.BinaryIO], t.TextIO]] = { + 0: _get_text_stdin, + 1: _get_text_stdout, + 2: _get_text_stderr, +} + + +def _is_console(f: t.TextIO) -> bool: + if not hasattr(f, "fileno"): + return False + + try: + fileno = f.fileno() + except (OSError, io.UnsupportedOperation): + return False + + handle = msvcrt.get_osfhandle(fileno) + return bool(GetConsoleMode(handle, byref(DWORD()))) + + +def _get_windows_console_stream( + f: t.TextIO, encoding: str | None, errors: str | None +) -> t.TextIO | None: + if ( + get_buffer is None + or encoding not in {"utf-16-le", None} + or errors not in {"strict", None} + or not _is_console(f) + ): + return None + + func = _stream_factories.get(f.fileno()) + if func is None: + return None + + b = getattr(f, "buffer", None) + + if b is None: + return None + + return func(b) diff --git a/venv/lib/python3.10/site-packages/click/core.py b/venv/lib/python3.10/site-packages/click/core.py new file mode 100644 index 0000000..57f549c --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/core.py @@ -0,0 +1,3415 @@ +from __future__ import annotations + +import collections.abc as cabc +import enum +import errno +import inspect +import os +import sys +import typing as t +from collections import abc +from collections import Counter +from contextlib import AbstractContextManager +from contextlib import contextmanager +from contextlib import ExitStack +from functools import update_wrapper +from gettext import gettext as _ +from gettext import ngettext +from itertools import repeat +from types import TracebackType + +from . import types +from ._utils import FLAG_NEEDS_VALUE +from ._utils import UNSET +from .exceptions import Abort +from .exceptions import BadParameter +from .exceptions import ClickException +from .exceptions import Exit +from .exceptions import MissingParameter +from .exceptions import NoArgsIsHelpError +from .exceptions import UsageError +from .formatting import HelpFormatter +from .formatting import join_options +from .globals import pop_context +from .globals import push_context +from .parser import _OptionParser +from .parser import _split_opt +from .termui import confirm +from .termui import prompt +from .termui import style +from .utils import _detect_program_name +from .utils import _expand_args +from .utils import echo +from .utils import make_default_short_help +from .utils import make_str +from .utils import PacifyFlushWrapper + +if t.TYPE_CHECKING: + from .shell_completion import CompletionItem + +F = t.TypeVar("F", bound="t.Callable[..., t.Any]") +V = t.TypeVar("V") + + +def _complete_visible_commands( + ctx: Context, incomplete: str +) -> cabc.Iterator[tuple[str, Command]]: + """List all the subcommands of a group that start with the + incomplete value and aren't hidden. + + :param ctx: Invocation context for the group. + :param incomplete: Value being completed. May be empty. + """ + multi = t.cast(Group, ctx.command) + + for name in multi.list_commands(ctx): + if name.startswith(incomplete): + command = multi.get_command(ctx, name) + + if command is not None and not command.hidden: + yield name, command + + +def _check_nested_chain( + base_command: Group, cmd_name: str, cmd: Command, register: bool = False +) -> None: + if not base_command.chain or not isinstance(cmd, Group): + return + + if register: + message = ( + f"It is not possible to add the group {cmd_name!r} to another" + f" group {base_command.name!r} that is in chain mode." + ) + else: + message = ( + f"Found the group {cmd_name!r} as subcommand to another group " + f" {base_command.name!r} that is in chain mode. This is not supported." + ) + + raise RuntimeError(message) + + +def batch(iterable: cabc.Iterable[V], batch_size: int) -> list[tuple[V, ...]]: + return list(zip(*repeat(iter(iterable), batch_size), strict=False)) + + +@contextmanager +def augment_usage_errors( + ctx: Context, param: Parameter | None = None +) -> cabc.Iterator[None]: + """Context manager that attaches extra information to exceptions.""" + try: + yield + except BadParameter as e: + if e.ctx is None: + e.ctx = ctx + if param is not None and e.param is None: + e.param = param + raise + except UsageError as e: + if e.ctx is None: + e.ctx = ctx + raise + + +def iter_params_for_processing( + invocation_order: cabc.Sequence[Parameter], + declaration_order: cabc.Sequence[Parameter], +) -> list[Parameter]: + """Returns all declared parameters in the order they should be processed. + + The declared parameters are re-shuffled depending on the order in which + they were invoked, as well as the eagerness of each parameters. + + The invocation order takes precedence over the declaration order. I.e. the + order in which the user provided them to the CLI is respected. + + This behavior and its effect on callback evaluation is detailed at: + https://click.palletsprojects.com/en/stable/advanced/#callback-evaluation-order + """ + + def sort_key(item: Parameter) -> tuple[bool, float]: + try: + idx: float = invocation_order.index(item) + except ValueError: + idx = float("inf") + + return not item.is_eager, idx + + return sorted(declaration_order, key=sort_key) + + +class ParameterSource(enum.Enum): + """This is an :class:`~enum.Enum` that indicates the source of a + parameter's value. + + Use :meth:`click.Context.get_parameter_source` to get the + source for a parameter by name. + + .. versionchanged:: 8.0 + Use :class:`~enum.Enum` and drop the ``validate`` method. + + .. versionchanged:: 8.0 + Added the ``PROMPT`` value. + """ + + COMMANDLINE = enum.auto() + """The value was provided by the command line args.""" + ENVIRONMENT = enum.auto() + """The value was provided with an environment variable.""" + DEFAULT = enum.auto() + """Used the default specified by the parameter.""" + DEFAULT_MAP = enum.auto() + """Used a default provided by :attr:`Context.default_map`.""" + PROMPT = enum.auto() + """Used a prompt to confirm a default or provide a value.""" + + +class Context: + """The context is a special internal object that holds state relevant + for the script execution at every single level. It's normally invisible + to commands unless they opt-in to getting access to it. + + The context is useful as it can pass internal objects around and can + control special execution features such as reading data from + environment variables. + + A context can be used as context manager in which case it will call + :meth:`close` on teardown. + + :param command: the command class for this context. + :param parent: the parent context. + :param info_name: the info name for this invocation. Generally this + is the most descriptive name for the script or + command. For the toplevel script it is usually + the name of the script, for commands below it it's + the name of the script. + :param obj: an arbitrary object of user data. + :param auto_envvar_prefix: the prefix to use for automatic environment + variables. If this is `None` then reading + from environment variables is disabled. This + does not affect manually set environment + variables which are always read. + :param default_map: a dictionary (like object) with default values + for parameters. + :param terminal_width: the width of the terminal. The default is + inherit from parent context. If no context + defines the terminal width then auto + detection will be applied. + :param max_content_width: the maximum width for content rendered by + Click (this currently only affects help + pages). This defaults to 80 characters if + not overridden. In other words: even if the + terminal is larger than that, Click will not + format things wider than 80 characters by + default. In addition to that, formatters might + add some safety mapping on the right. + :param resilient_parsing: if this flag is enabled then Click will + parse without any interactivity or callback + invocation. Default values will also be + ignored. This is useful for implementing + things such as completion support. + :param allow_extra_args: if this is set to `True` then extra arguments + at the end will not raise an error and will be + kept on the context. The default is to inherit + from the command. + :param allow_interspersed_args: if this is set to `False` then options + and arguments cannot be mixed. The + default is to inherit from the command. + :param ignore_unknown_options: instructs click to ignore options it does + not know and keeps them for later + processing. + :param help_option_names: optionally a list of strings that define how + the default help parameter is named. The + default is ``['--help']``. + :param token_normalize_func: an optional function that is used to + normalize tokens (options, choices, + etc.). This for instance can be used to + implement case insensitive behavior. + :param color: controls if the terminal supports ANSI colors or not. The + default is autodetection. This is only needed if ANSI + codes are used in texts that Click prints which is by + default not the case. This for instance would affect + help output. + :param show_default: Show the default value for commands. If this + value is not set, it defaults to the value from the parent + context. ``Command.show_default`` overrides this default for the + specific command. + + .. versionchanged:: 8.2 + The ``protected_args`` attribute is deprecated and will be removed in + Click 9.0. ``args`` will contain remaining unparsed tokens. + + .. versionchanged:: 8.1 + The ``show_default`` parameter is overridden by + ``Command.show_default``, instead of the other way around. + + .. versionchanged:: 8.0 + The ``show_default`` parameter defaults to the value from the + parent context. + + .. versionchanged:: 7.1 + Added the ``show_default`` parameter. + + .. versionchanged:: 4.0 + Added the ``color``, ``ignore_unknown_options``, and + ``max_content_width`` parameters. + + .. versionchanged:: 3.0 + Added the ``allow_extra_args`` and ``allow_interspersed_args`` + parameters. + + .. versionchanged:: 2.0 + Added the ``resilient_parsing``, ``help_option_names``, and + ``token_normalize_func`` parameters. + """ + + #: The formatter class to create with :meth:`make_formatter`. + #: + #: .. versionadded:: 8.0 + formatter_class: type[HelpFormatter] = HelpFormatter + + def __init__( + self, + command: Command, + parent: Context | None = None, + info_name: str | None = None, + obj: t.Any | None = None, + auto_envvar_prefix: str | None = None, + default_map: cabc.MutableMapping[str, t.Any] | None = None, + terminal_width: int | None = None, + max_content_width: int | None = None, + resilient_parsing: bool = False, + allow_extra_args: bool | None = None, + allow_interspersed_args: bool | None = None, + ignore_unknown_options: bool | None = None, + help_option_names: list[str] | None = None, + token_normalize_func: t.Callable[[str], str] | None = None, + color: bool | None = None, + show_default: bool | None = None, + ) -> None: + #: the parent context or `None` if none exists. + self.parent = parent + #: the :class:`Command` for this context. + self.command = command + #: the descriptive information name + self.info_name = info_name + #: Map of parameter names to their parsed values. Parameters + #: with ``expose_value=False`` are not stored. + self.params: dict[str, t.Any] = {} + #: the leftover arguments. + self.args: list[str] = [] + #: protected arguments. These are arguments that are prepended + #: to `args` when certain parsing scenarios are encountered but + #: must be never propagated to another arguments. This is used + #: to implement nested parsing. + self._protected_args: list[str] = [] + #: the collected prefixes of the command's options. + self._opt_prefixes: set[str] = set(parent._opt_prefixes) if parent else set() + + if obj is None and parent is not None: + obj = parent.obj + + #: the user object stored. + self.obj: t.Any = obj + self._meta: dict[str, t.Any] = getattr(parent, "meta", {}) + + #: A dictionary (-like object) with defaults for parameters. + if ( + default_map is None + and info_name is not None + and parent is not None + and parent.default_map is not None + ): + default_map = parent.default_map.get(info_name) + + self.default_map: cabc.MutableMapping[str, t.Any] | None = default_map + + #: This flag indicates if a subcommand is going to be executed. A + #: group callback can use this information to figure out if it's + #: being executed directly or because the execution flow passes + #: onwards to a subcommand. By default it's None, but it can be + #: the name of the subcommand to execute. + #: + #: If chaining is enabled this will be set to ``'*'`` in case + #: any commands are executed. It is however not possible to + #: figure out which ones. If you require this knowledge you + #: should use a :func:`result_callback`. + self.invoked_subcommand: str | None = None + + if terminal_width is None and parent is not None: + terminal_width = parent.terminal_width + + #: The width of the terminal (None is autodetection). + self.terminal_width: int | None = terminal_width + + if max_content_width is None and parent is not None: + max_content_width = parent.max_content_width + + #: The maximum width of formatted content (None implies a sensible + #: default which is 80 for most things). + self.max_content_width: int | None = max_content_width + + if allow_extra_args is None: + allow_extra_args = command.allow_extra_args + + #: Indicates if the context allows extra args or if it should + #: fail on parsing. + #: + #: .. versionadded:: 3.0 + self.allow_extra_args = allow_extra_args + + if allow_interspersed_args is None: + allow_interspersed_args = command.allow_interspersed_args + + #: Indicates if the context allows mixing of arguments and + #: options or not. + #: + #: .. versionadded:: 3.0 + self.allow_interspersed_args: bool = allow_interspersed_args + + if ignore_unknown_options is None: + ignore_unknown_options = command.ignore_unknown_options + + #: Instructs click to ignore options that a command does not + #: understand and will store it on the context for later + #: processing. This is primarily useful for situations where you + #: want to call into external programs. Generally this pattern is + #: strongly discouraged because it's not possibly to losslessly + #: forward all arguments. + #: + #: .. versionadded:: 4.0 + self.ignore_unknown_options: bool = ignore_unknown_options + + if help_option_names is None: + if parent is not None: + help_option_names = parent.help_option_names + else: + help_option_names = ["--help"] + + #: The names for the help options. + self.help_option_names: list[str] = help_option_names + + if token_normalize_func is None and parent is not None: + token_normalize_func = parent.token_normalize_func + + #: An optional normalization function for tokens. This is + #: options, choices, commands etc. + self.token_normalize_func: t.Callable[[str], str] | None = token_normalize_func + + #: Indicates if resilient parsing is enabled. In that case Click + #: will do its best to not cause any failures and default values + #: will be ignored. Useful for completion. + self.resilient_parsing: bool = resilient_parsing + + # If there is no envvar prefix yet, but the parent has one and + # the command on this level has a name, we can expand the envvar + # prefix automatically. + if auto_envvar_prefix is None: + if ( + parent is not None + and parent.auto_envvar_prefix is not None + and self.info_name is not None + ): + auto_envvar_prefix = ( + f"{parent.auto_envvar_prefix}_{self.info_name.upper()}" + ) + else: + auto_envvar_prefix = auto_envvar_prefix.upper() + + if auto_envvar_prefix is not None: + auto_envvar_prefix = auto_envvar_prefix.replace("-", "_") + + self.auto_envvar_prefix: str | None = auto_envvar_prefix + + if color is None and parent is not None: + color = parent.color + + #: Controls if styling output is wanted or not. + self.color: bool | None = color + + if show_default is None and parent is not None: + show_default = parent.show_default + + #: Show option default values when formatting help text. + self.show_default: bool | None = show_default + + self._close_callbacks: list[t.Callable[[], t.Any]] = [] + self._depth = 0 + self._parameter_source: dict[str, ParameterSource] = {} + self._exit_stack = ExitStack() + + @property + def protected_args(self) -> list[str]: + import warnings + + warnings.warn( + "'protected_args' is deprecated and will be removed in Click 9.0." + " 'args' will contain remaining unparsed tokens.", + DeprecationWarning, + stacklevel=2, + ) + return self._protected_args + + def to_info_dict(self) -> dict[str, t.Any]: + """Gather information that could be useful for a tool generating + user-facing documentation. This traverses the entire CLI + structure. + + .. code-block:: python + + with Context(cli) as ctx: + info = ctx.to_info_dict() + + .. versionadded:: 8.0 + """ + return { + "command": self.command.to_info_dict(self), + "info_name": self.info_name, + "allow_extra_args": self.allow_extra_args, + "allow_interspersed_args": self.allow_interspersed_args, + "ignore_unknown_options": self.ignore_unknown_options, + "auto_envvar_prefix": self.auto_envvar_prefix, + } + + def __enter__(self) -> Context: + self._depth += 1 + push_context(self) + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_value: BaseException | None, + tb: TracebackType | None, + ) -> bool | None: + self._depth -= 1 + exit_result: bool | None = None + if self._depth == 0: + exit_result = self._close_with_exception_info(exc_type, exc_value, tb) + pop_context() + + return exit_result + + @contextmanager + def scope(self, cleanup: bool = True) -> cabc.Iterator[Context]: + """This helper method can be used with the context object to promote + it to the current thread local (see :func:`get_current_context`). + The default behavior of this is to invoke the cleanup functions which + can be disabled by setting `cleanup` to `False`. The cleanup + functions are typically used for things such as closing file handles. + + If the cleanup is intended the context object can also be directly + used as a context manager. + + Example usage:: + + with ctx.scope(): + assert get_current_context() is ctx + + This is equivalent:: + + with ctx: + assert get_current_context() is ctx + + .. versionadded:: 5.0 + + :param cleanup: controls if the cleanup functions should be run or + not. The default is to run these functions. In + some situations the context only wants to be + temporarily pushed in which case this can be disabled. + Nested pushes automatically defer the cleanup. + """ + if not cleanup: + self._depth += 1 + try: + with self as rv: + yield rv + finally: + if not cleanup: + self._depth -= 1 + + @property + def meta(self) -> dict[str, t.Any]: + """This is a dictionary which is shared with all the contexts + that are nested. It exists so that click utilities can store some + state here if they need to. It is however the responsibility of + that code to manage this dictionary well. + + The keys are supposed to be unique dotted strings. For instance + module paths are a good choice for it. What is stored in there is + irrelevant for the operation of click. However what is important is + that code that places data here adheres to the general semantics of + the system. + + Example usage:: + + LANG_KEY = f'{__name__}.lang' + + def set_language(value): + ctx = get_current_context() + ctx.meta[LANG_KEY] = value + + def get_language(): + return get_current_context().meta.get(LANG_KEY, 'en_US') + + .. versionadded:: 5.0 + """ + return self._meta + + def make_formatter(self) -> HelpFormatter: + """Creates the :class:`~click.HelpFormatter` for the help and + usage output. + + To quickly customize the formatter class used without overriding + this method, set the :attr:`formatter_class` attribute. + + .. versionchanged:: 8.0 + Added the :attr:`formatter_class` attribute. + """ + return self.formatter_class( + width=self.terminal_width, max_width=self.max_content_width + ) + + def with_resource(self, context_manager: AbstractContextManager[V]) -> V: + """Register a resource as if it were used in a ``with`` + statement. The resource will be cleaned up when the context is + popped. + + Uses :meth:`contextlib.ExitStack.enter_context`. It calls the + resource's ``__enter__()`` method and returns the result. When + the context is popped, it closes the stack, which calls the + resource's ``__exit__()`` method. + + To register a cleanup function for something that isn't a + context manager, use :meth:`call_on_close`. Or use something + from :mod:`contextlib` to turn it into a context manager first. + + .. code-block:: python + + @click.group() + @click.option("--name") + @click.pass_context + def cli(ctx): + ctx.obj = ctx.with_resource(connect_db(name)) + + :param context_manager: The context manager to enter. + :return: Whatever ``context_manager.__enter__()`` returns. + + .. versionadded:: 8.0 + """ + return self._exit_stack.enter_context(context_manager) + + def call_on_close(self, f: t.Callable[..., t.Any]) -> t.Callable[..., t.Any]: + """Register a function to be called when the context tears down. + + This can be used to close resources opened during the script + execution. Resources that support Python's context manager + protocol which would be used in a ``with`` statement should be + registered with :meth:`with_resource` instead. + + :param f: The function to execute on teardown. + """ + return self._exit_stack.callback(f) + + def close(self) -> None: + """Invoke all close callbacks registered with + :meth:`call_on_close`, and exit all context managers entered + with :meth:`with_resource`. + """ + self._close_with_exception_info(None, None, None) + + def _close_with_exception_info( + self, + exc_type: type[BaseException] | None, + exc_value: BaseException | None, + tb: TracebackType | None, + ) -> bool | None: + """Unwind the exit stack by calling its :meth:`__exit__` providing the exception + information to allow for exception handling by the various resources registered + using :meth;`with_resource` + + :return: Whatever ``exit_stack.__exit__()`` returns. + """ + exit_result = self._exit_stack.__exit__(exc_type, exc_value, tb) + # In case the context is reused, create a new exit stack. + self._exit_stack = ExitStack() + + return exit_result + + @property + def command_path(self) -> str: + """The computed command path. This is used for the ``usage`` + information on the help page. It's automatically created by + combining the info names of the chain of contexts to the root. + """ + rv = "" + if self.info_name is not None: + rv = self.info_name + if self.parent is not None: + parent_command_path = [self.parent.command_path] + + if isinstance(self.parent.command, Command): + for param in self.parent.command.get_params(self): + parent_command_path.extend(param.get_usage_pieces(self)) + + rv = f"{' '.join(parent_command_path)} {rv}" + return rv.lstrip() + + def find_root(self) -> Context: + """Finds the outermost context.""" + node = self + while node.parent is not None: + node = node.parent + return node + + def find_object(self, object_type: type[V]) -> V | None: + """Finds the closest object of a given type.""" + node: Context | None = self + + while node is not None: + if isinstance(node.obj, object_type): + return node.obj + + node = node.parent + + return None + + def ensure_object(self, object_type: type[V]) -> V: + """Like :meth:`find_object` but sets the innermost object to a + new instance of `object_type` if it does not exist. + """ + rv = self.find_object(object_type) + if rv is None: + self.obj = rv = object_type() + return rv + + @t.overload + def lookup_default( + self, name: str, call: t.Literal[True] = True + ) -> t.Any | None: ... + + @t.overload + def lookup_default( + self, name: str, call: t.Literal[False] = ... + ) -> t.Any | t.Callable[[], t.Any] | None: ... + + def lookup_default(self, name: str, call: bool = True) -> t.Any | None: + """Get the default for a parameter from :attr:`default_map`. + + :param name: Name of the parameter. + :param call: If the default is a callable, call it. Disable to + return the callable instead. + + .. versionchanged:: 8.0 + Added the ``call`` parameter. + """ + if self.default_map is not None: + value = self.default_map.get(name, UNSET) + + if call and callable(value): + return value() + + return value + + return UNSET + + def fail(self, message: str) -> t.NoReturn: + """Aborts the execution of the program with a specific error + message. + + :param message: the error message to fail with. + """ + raise UsageError(message, self) + + def abort(self) -> t.NoReturn: + """Aborts the script.""" + raise Abort() + + def exit(self, code: int = 0) -> t.NoReturn: + """Exits the application with a given exit code. + + .. versionchanged:: 8.2 + Callbacks and context managers registered with :meth:`call_on_close` + and :meth:`with_resource` are closed before exiting. + """ + self.close() + raise Exit(code) + + def get_usage(self) -> str: + """Helper method to get formatted usage string for the current + context and command. + """ + return self.command.get_usage(self) + + def get_help(self) -> str: + """Helper method to get formatted help page for the current + context and command. + """ + return self.command.get_help(self) + + def _make_sub_context(self, command: Command) -> Context: + """Create a new context of the same type as this context, but + for a new command. + + :meta private: + """ + return type(self)(command, info_name=command.name, parent=self) + + @t.overload + def invoke( + self, callback: t.Callable[..., V], /, *args: t.Any, **kwargs: t.Any + ) -> V: ... + + @t.overload + def invoke(self, callback: Command, /, *args: t.Any, **kwargs: t.Any) -> t.Any: ... + + def invoke( + self, callback: Command | t.Callable[..., V], /, *args: t.Any, **kwargs: t.Any + ) -> t.Any | V: + """Invokes a command callback in exactly the way it expects. There + are two ways to invoke this method: + + 1. the first argument can be a callback and all other arguments and + keyword arguments are forwarded directly to the function. + 2. the first argument is a click command object. In that case all + arguments are forwarded as well but proper click parameters + (options and click arguments) must be keyword arguments and Click + will fill in defaults. + + .. versionchanged:: 8.0 + All ``kwargs`` are tracked in :attr:`params` so they will be + passed if :meth:`forward` is called at multiple levels. + + .. versionchanged:: 3.2 + A new context is created, and missing arguments use default values. + """ + if isinstance(callback, Command): + other_cmd = callback + + if other_cmd.callback is None: + raise TypeError( + "The given command does not have a callback that can be invoked." + ) + else: + callback = t.cast("t.Callable[..., V]", other_cmd.callback) + + ctx = self._make_sub_context(other_cmd) + + for param in other_cmd.params: + if param.name not in kwargs and param.expose_value: + default_value = param.get_default(ctx) + # We explicitly hide the :attr:`UNSET` value to the user, as we + # choose to make it an implementation detail. And because ``invoke`` + # has been designed as part of Click public API, we return ``None`` + # instead. Refs: + # https://github.com/pallets/click/issues/3066 + # https://github.com/pallets/click/issues/3065 + # https://github.com/pallets/click/pull/3068 + if default_value is UNSET: + default_value = None + kwargs[param.name] = param.type_cast_value( # type: ignore + ctx, default_value + ) + + # Track all kwargs as params, so that forward() will pass + # them on in subsequent calls. + ctx.params.update(kwargs) + else: + ctx = self + + with augment_usage_errors(self): + with ctx: + return callback(*args, **kwargs) + + def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.Any: + """Similar to :meth:`invoke` but fills in default keyword + arguments from the current context if the other command expects + it. This cannot invoke callbacks directly, only other commands. + + .. versionchanged:: 8.0 + All ``kwargs`` are tracked in :attr:`params` so they will be + passed if ``forward`` is called at multiple levels. + """ + # Can only forward to other commands, not direct callbacks. + if not isinstance(cmd, Command): + raise TypeError("Callback is not a command.") + + for param in self.params: + if param not in kwargs: + kwargs[param] = self.params[param] + + return self.invoke(cmd, *args, **kwargs) + + def set_parameter_source(self, name: str, source: ParameterSource) -> None: + """Set the source of a parameter. This indicates the location + from which the value of the parameter was obtained. + + :param name: The name of the parameter. + :param source: A member of :class:`~click.core.ParameterSource`. + """ + self._parameter_source[name] = source + + def get_parameter_source(self, name: str) -> ParameterSource | None: + """Get the source of a parameter. This indicates the location + from which the value of the parameter was obtained. + + This can be useful for determining when a user specified a value + on the command line that is the same as the default value. It + will be :attr:`~click.core.ParameterSource.DEFAULT` only if the + value was actually taken from the default. + + :param name: The name of the parameter. + :rtype: ParameterSource + + .. versionchanged:: 8.0 + Returns ``None`` if the parameter was not provided from any + source. + """ + return self._parameter_source.get(name) + + +class Command: + """Commands are the basic building block of command line interfaces in + Click. A basic command handles command line parsing and might dispatch + more parsing to commands nested below it. + + :param name: the name of the command to use unless a group overrides it. + :param context_settings: an optional dictionary with defaults that are + passed to the context object. + :param callback: the callback to invoke. This is optional. + :param params: the parameters to register with this command. This can + be either :class:`Option` or :class:`Argument` objects. + :param help: the help string to use for this command. + :param epilog: like the help string but it's printed at the end of the + help page after everything else. + :param short_help: the short help to use for this command. This is + shown on the command listing of the parent command. + :param add_help_option: by default each command registers a ``--help`` + option. This can be disabled by this parameter. + :param no_args_is_help: this controls what happens if no arguments are + provided. This option is disabled by default. + If enabled this will add ``--help`` as argument + if no arguments are passed + :param hidden: hide this command from help outputs. + :param deprecated: If ``True`` or non-empty string, issues a message + indicating that the command is deprecated and highlights + its deprecation in --help. The message can be customized + by using a string as the value. + + .. versionchanged:: 8.2 + This is the base class for all commands, not ``BaseCommand``. + ``deprecated`` can be set to a string as well to customize the + deprecation message. + + .. versionchanged:: 8.1 + ``help``, ``epilog``, and ``short_help`` are stored unprocessed, + all formatting is done when outputting help text, not at init, + and is done even if not using the ``@command`` decorator. + + .. versionchanged:: 8.0 + Added a ``repr`` showing the command name. + + .. versionchanged:: 7.1 + Added the ``no_args_is_help`` parameter. + + .. versionchanged:: 2.0 + Added the ``context_settings`` parameter. + """ + + #: The context class to create with :meth:`make_context`. + #: + #: .. versionadded:: 8.0 + context_class: type[Context] = Context + + #: the default for the :attr:`Context.allow_extra_args` flag. + allow_extra_args = False + + #: the default for the :attr:`Context.allow_interspersed_args` flag. + allow_interspersed_args = True + + #: the default for the :attr:`Context.ignore_unknown_options` flag. + ignore_unknown_options = False + + def __init__( + self, + name: str | None, + context_settings: cabc.MutableMapping[str, t.Any] | None = None, + callback: t.Callable[..., t.Any] | None = None, + params: list[Parameter] | None = None, + help: str | None = None, + epilog: str | None = None, + short_help: str | None = None, + options_metavar: str | None = "[OPTIONS]", + add_help_option: bool = True, + no_args_is_help: bool = False, + hidden: bool = False, + deprecated: bool | str = False, + ) -> None: + #: the name the command thinks it has. Upon registering a command + #: on a :class:`Group` the group will default the command name + #: with this information. You should instead use the + #: :class:`Context`\'s :attr:`~Context.info_name` attribute. + self.name = name + + if context_settings is None: + context_settings = {} + + #: an optional dictionary with defaults passed to the context. + self.context_settings: cabc.MutableMapping[str, t.Any] = context_settings + + #: the callback to execute when the command fires. This might be + #: `None` in which case nothing happens. + self.callback = callback + #: the list of parameters for this command in the order they + #: should show up in the help page and execute. Eager parameters + #: will automatically be handled before non eager ones. + self.params: list[Parameter] = params or [] + self.help = help + self.epilog = epilog + self.options_metavar = options_metavar + self.short_help = short_help + self.add_help_option = add_help_option + self._help_option = None + self.no_args_is_help = no_args_is_help + self.hidden = hidden + self.deprecated = deprecated + + def to_info_dict(self, ctx: Context) -> dict[str, t.Any]: + return { + "name": self.name, + "params": [param.to_info_dict() for param in self.get_params(ctx)], + "help": self.help, + "epilog": self.epilog, + "short_help": self.short_help, + "hidden": self.hidden, + "deprecated": self.deprecated, + } + + def __repr__(self) -> str: + return f"<{self.__class__.__name__} {self.name}>" + + def get_usage(self, ctx: Context) -> str: + """Formats the usage line into a string and returns it. + + Calls :meth:`format_usage` internally. + """ + formatter = ctx.make_formatter() + self.format_usage(ctx, formatter) + return formatter.getvalue().rstrip("\n") + + def get_params(self, ctx: Context) -> list[Parameter]: + params = self.params + help_option = self.get_help_option(ctx) + + if help_option is not None: + params = [*params, help_option] + + if __debug__: + import warnings + + opts = [opt for param in params for opt in param.opts] + opts_counter = Counter(opts) + duplicate_opts = (opt for opt, count in opts_counter.items() if count > 1) + + for duplicate_opt in duplicate_opts: + warnings.warn( + ( + f"The parameter {duplicate_opt} is used more than once. " + "Remove its duplicate as parameters should be unique." + ), + stacklevel=3, + ) + + return params + + def format_usage(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes the usage line into the formatter. + + This is a low-level method called by :meth:`get_usage`. + """ + pieces = self.collect_usage_pieces(ctx) + formatter.write_usage(ctx.command_path, " ".join(pieces)) + + def collect_usage_pieces(self, ctx: Context) -> list[str]: + """Returns all the pieces that go into the usage line and returns + it as a list of strings. + """ + rv = [self.options_metavar] if self.options_metavar else [] + + for param in self.get_params(ctx): + rv.extend(param.get_usage_pieces(ctx)) + + return rv + + def get_help_option_names(self, ctx: Context) -> list[str]: + """Returns the names for the help option.""" + all_names = set(ctx.help_option_names) + for param in self.params: + all_names.difference_update(param.opts) + all_names.difference_update(param.secondary_opts) + return list(all_names) + + def get_help_option(self, ctx: Context) -> Option | None: + """Returns the help option object. + + Skipped if :attr:`add_help_option` is ``False``. + + .. versionchanged:: 8.1.8 + The help option is now cached to avoid creating it multiple times. + """ + help_option_names = self.get_help_option_names(ctx) + + if not help_option_names or not self.add_help_option: + return None + + # Cache the help option object in private _help_option attribute to + # avoid creating it multiple times. Not doing this will break the + # callback odering by iter_params_for_processing(), which relies on + # object comparison. + if self._help_option is None: + # Avoid circular import. + from .decorators import help_option + + # Apply help_option decorator and pop resulting option + help_option(*help_option_names)(self) + self._help_option = self.params.pop() # type: ignore[assignment] + + return self._help_option + + def make_parser(self, ctx: Context) -> _OptionParser: + """Creates the underlying option parser for this command.""" + parser = _OptionParser(ctx) + for param in self.get_params(ctx): + param.add_to_parser(parser, ctx) + return parser + + def get_help(self, ctx: Context) -> str: + """Formats the help into a string and returns it. + + Calls :meth:`format_help` internally. + """ + formatter = ctx.make_formatter() + self.format_help(ctx, formatter) + return formatter.getvalue().rstrip("\n") + + def get_short_help_str(self, limit: int = 45) -> str: + """Gets short help for the command or makes it by shortening the + long help string. + """ + if self.short_help: + text = inspect.cleandoc(self.short_help) + elif self.help: + text = make_default_short_help(self.help, limit) + else: + text = "" + + if self.deprecated: + deprecated_message = ( + f"(DEPRECATED: {self.deprecated})" + if isinstance(self.deprecated, str) + else "(DEPRECATED)" + ) + text = _("{text} {deprecated_message}").format( + text=text, deprecated_message=deprecated_message + ) + + return text.strip() + + def format_help(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes the help into the formatter if it exists. + + This is a low-level method called by :meth:`get_help`. + + This calls the following methods: + + - :meth:`format_usage` + - :meth:`format_help_text` + - :meth:`format_options` + - :meth:`format_epilog` + """ + self.format_usage(ctx, formatter) + self.format_help_text(ctx, formatter) + self.format_options(ctx, formatter) + self.format_epilog(ctx, formatter) + + def format_help_text(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes the help text to the formatter if it exists.""" + if self.help is not None: + # truncate the help text to the first form feed + text = inspect.cleandoc(self.help).partition("\f")[0] + else: + text = "" + + if self.deprecated: + deprecated_message = ( + f"(DEPRECATED: {self.deprecated})" + if isinstance(self.deprecated, str) + else "(DEPRECATED)" + ) + text = _("{text} {deprecated_message}").format( + text=text, deprecated_message=deprecated_message + ) + + if text: + formatter.write_paragraph() + + with formatter.indentation(): + formatter.write_text(text) + + def format_options(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes all the options into the formatter if they exist.""" + opts = [] + for param in self.get_params(ctx): + rv = param.get_help_record(ctx) + if rv is not None: + opts.append(rv) + + if opts: + with formatter.section(_("Options")): + formatter.write_dl(opts) + + def format_epilog(self, ctx: Context, formatter: HelpFormatter) -> None: + """Writes the epilog into the formatter if it exists.""" + if self.epilog: + epilog = inspect.cleandoc(self.epilog) + formatter.write_paragraph() + + with formatter.indentation(): + formatter.write_text(epilog) + + def make_context( + self, + info_name: str | None, + args: list[str], + parent: Context | None = None, + **extra: t.Any, + ) -> Context: + """This function when given an info name and arguments will kick + off the parsing and create a new :class:`Context`. It does not + invoke the actual command callback though. + + To quickly customize the context class used without overriding + this method, set the :attr:`context_class` attribute. + + :param info_name: the info name for this invocation. Generally this + is the most descriptive name for the script or + command. For the toplevel script it's usually + the name of the script, for commands below it's + the name of the command. + :param args: the arguments to parse as list of strings. + :param parent: the parent context if available. + :param extra: extra keyword arguments forwarded to the context + constructor. + + .. versionchanged:: 8.0 + Added the :attr:`context_class` attribute. + """ + for key, value in self.context_settings.items(): + if key not in extra: + extra[key] = value + + ctx = self.context_class(self, info_name=info_name, parent=parent, **extra) + + with ctx.scope(cleanup=False): + self.parse_args(ctx, args) + return ctx + + def parse_args(self, ctx: Context, args: list[str]) -> list[str]: + if not args and self.no_args_is_help and not ctx.resilient_parsing: + raise NoArgsIsHelpError(ctx) + + parser = self.make_parser(ctx) + opts, args, param_order = parser.parse_args(args=args) + + for param in iter_params_for_processing(param_order, self.get_params(ctx)): + _, args = param.handle_parse_result(ctx, opts, args) + + # We now have all parameters' values into `ctx.params`, but the data may contain + # the `UNSET` sentinel. + # Convert `UNSET` to `None` to ensure that the user doesn't see `UNSET`. + # + # Waiting until after the initial parse to convert allows us to treat `UNSET` + # more like a missing value when multiple params use the same name. + # Refs: + # https://github.com/pallets/click/issues/3071 + # https://github.com/pallets/click/pull/3079 + for name, value in ctx.params.items(): + if value is UNSET: + ctx.params[name] = None + + if args and not ctx.allow_extra_args and not ctx.resilient_parsing: + ctx.fail( + ngettext( + "Got unexpected extra argument ({args})", + "Got unexpected extra arguments ({args})", + len(args), + ).format(args=" ".join(map(str, args))) + ) + + ctx.args = args + ctx._opt_prefixes.update(parser._opt_prefixes) + return args + + def invoke(self, ctx: Context) -> t.Any: + """Given a context, this invokes the attached callback (if it exists) + in the right way. + """ + if self.deprecated: + extra_message = ( + f" {self.deprecated}" if isinstance(self.deprecated, str) else "" + ) + message = _( + "DeprecationWarning: The command {name!r} is deprecated.{extra_message}" + ).format(name=self.name, extra_message=extra_message) + echo(style(message, fg="red"), err=True) + + if self.callback is not None: + return ctx.invoke(self.callback, **ctx.params) + + def shell_complete(self, ctx: Context, incomplete: str) -> list[CompletionItem]: + """Return a list of completions for the incomplete value. Looks + at the names of options and chained multi-commands. + + Any command could be part of a chained multi-command, so sibling + commands are valid at any point during command completion. + + :param ctx: Invocation context for this command. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + results: list[CompletionItem] = [] + + if incomplete and not incomplete[0].isalnum(): + for param in self.get_params(ctx): + if ( + not isinstance(param, Option) + or param.hidden + or ( + not param.multiple + and ctx.get_parameter_source(param.name) # type: ignore + is ParameterSource.COMMANDLINE + ) + ): + continue + + results.extend( + CompletionItem(name, help=param.help) + for name in [*param.opts, *param.secondary_opts] + if name.startswith(incomplete) + ) + + while ctx.parent is not None: + ctx = ctx.parent + + if isinstance(ctx.command, Group) and ctx.command.chain: + results.extend( + CompletionItem(name, help=command.get_short_help_str()) + for name, command in _complete_visible_commands(ctx, incomplete) + if name not in ctx._protected_args + ) + + return results + + @t.overload + def main( + self, + args: cabc.Sequence[str] | None = None, + prog_name: str | None = None, + complete_var: str | None = None, + standalone_mode: t.Literal[True] = True, + **extra: t.Any, + ) -> t.NoReturn: ... + + @t.overload + def main( + self, + args: cabc.Sequence[str] | None = None, + prog_name: str | None = None, + complete_var: str | None = None, + standalone_mode: bool = ..., + **extra: t.Any, + ) -> t.Any: ... + + def main( + self, + args: cabc.Sequence[str] | None = None, + prog_name: str | None = None, + complete_var: str | None = None, + standalone_mode: bool = True, + windows_expand_args: bool = True, + **extra: t.Any, + ) -> t.Any: + """This is the way to invoke a script with all the bells and + whistles as a command line application. This will always terminate + the application after a call. If this is not wanted, ``SystemExit`` + needs to be caught. + + This method is also available by directly calling the instance of + a :class:`Command`. + + :param args: the arguments that should be used for parsing. If not + provided, ``sys.argv[1:]`` is used. + :param prog_name: the program name that should be used. By default + the program name is constructed by taking the file + name from ``sys.argv[0]``. + :param complete_var: the environment variable that controls the + bash completion support. The default is + ``"__COMPLETE"`` with prog_name in + uppercase. + :param standalone_mode: the default behavior is to invoke the script + in standalone mode. Click will then + handle exceptions and convert them into + error messages and the function will never + return but shut down the interpreter. If + this is set to `False` they will be + propagated to the caller and the return + value of this function is the return value + of :meth:`invoke`. + :param windows_expand_args: Expand glob patterns, user dir, and + env vars in command line args on Windows. + :param extra: extra keyword arguments are forwarded to the context + constructor. See :class:`Context` for more information. + + .. versionchanged:: 8.0.1 + Added the ``windows_expand_args`` parameter to allow + disabling command line arg expansion on Windows. + + .. versionchanged:: 8.0 + When taking arguments from ``sys.argv`` on Windows, glob + patterns, user dir, and env vars are expanded. + + .. versionchanged:: 3.0 + Added the ``standalone_mode`` parameter. + """ + if args is None: + args = sys.argv[1:] + + if os.name == "nt" and windows_expand_args: + args = _expand_args(args) + else: + args = list(args) + + if prog_name is None: + prog_name = _detect_program_name() + + # Process shell completion requests and exit early. + self._main_shell_completion(extra, prog_name, complete_var) + + try: + try: + with self.make_context(prog_name, args, **extra) as ctx: + rv = self.invoke(ctx) + if not standalone_mode: + return rv + # it's not safe to `ctx.exit(rv)` here! + # note that `rv` may actually contain data like "1" which + # has obvious effects + # more subtle case: `rv=[None, None]` can come out of + # chained commands which all returned `None` -- so it's not + # even always obvious that `rv` indicates success/failure + # by its truthiness/falsiness + ctx.exit() + except (EOFError, KeyboardInterrupt) as e: + echo(file=sys.stderr) + raise Abort() from e + except ClickException as e: + if not standalone_mode: + raise + e.show() + sys.exit(e.exit_code) + except OSError as e: + if e.errno == errno.EPIPE: + sys.stdout = t.cast(t.TextIO, PacifyFlushWrapper(sys.stdout)) + sys.stderr = t.cast(t.TextIO, PacifyFlushWrapper(sys.stderr)) + sys.exit(1) + else: + raise + except Exit as e: + if standalone_mode: + sys.exit(e.exit_code) + else: + # in non-standalone mode, return the exit code + # note that this is only reached if `self.invoke` above raises + # an Exit explicitly -- thus bypassing the check there which + # would return its result + # the results of non-standalone execution may therefore be + # somewhat ambiguous: if there are codepaths which lead to + # `ctx.exit(1)` and to `return 1`, the caller won't be able to + # tell the difference between the two + return e.exit_code + except Abort: + if not standalone_mode: + raise + echo(_("Aborted!"), file=sys.stderr) + sys.exit(1) + + def _main_shell_completion( + self, + ctx_args: cabc.MutableMapping[str, t.Any], + prog_name: str, + complete_var: str | None = None, + ) -> None: + """Check if the shell is asking for tab completion, process + that, then exit early. Called from :meth:`main` before the + program is invoked. + + :param prog_name: Name of the executable in the shell. + :param complete_var: Name of the environment variable that holds + the completion instruction. Defaults to + ``_{PROG_NAME}_COMPLETE``. + + .. versionchanged:: 8.2.0 + Dots (``.``) in ``prog_name`` are replaced with underscores (``_``). + """ + if complete_var is None: + complete_name = prog_name.replace("-", "_").replace(".", "_") + complete_var = f"_{complete_name}_COMPLETE".upper() + + instruction = os.environ.get(complete_var) + + if not instruction: + return + + from .shell_completion import shell_complete + + rv = shell_complete(self, ctx_args, prog_name, complete_var, instruction) + sys.exit(rv) + + def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any: + """Alias for :meth:`main`.""" + return self.main(*args, **kwargs) + + +class _FakeSubclassCheck(type): + def __subclasscheck__(cls, subclass: type) -> bool: + return issubclass(subclass, cls.__bases__[0]) + + def __instancecheck__(cls, instance: t.Any) -> bool: + return isinstance(instance, cls.__bases__[0]) + + +class _BaseCommand(Command, metaclass=_FakeSubclassCheck): + """ + .. deprecated:: 8.2 + Will be removed in Click 9.0. Use ``Command`` instead. + """ + + +class Group(Command): + """A group is a command that nests other commands (or more groups). + + :param name: The name of the group command. + :param commands: Map names to :class:`Command` objects. Can be a list, which + will use :attr:`Command.name` as the keys. + :param invoke_without_command: Invoke the group's callback even if a + subcommand is not given. + :param no_args_is_help: If no arguments are given, show the group's help and + exit. Defaults to the opposite of ``invoke_without_command``. + :param subcommand_metavar: How to represent the subcommand argument in help. + The default will represent whether ``chain`` is set or not. + :param chain: Allow passing more than one subcommand argument. After parsing + a command's arguments, if any arguments remain another command will be + matched, and so on. + :param result_callback: A function to call after the group's and + subcommand's callbacks. The value returned by the subcommand is passed. + If ``chain`` is enabled, the value will be a list of values returned by + all the commands. If ``invoke_without_command`` is enabled, the value + will be the value returned by the group's callback, or an empty list if + ``chain`` is enabled. + :param kwargs: Other arguments passed to :class:`Command`. + + .. versionchanged:: 8.0 + The ``commands`` argument can be a list of command objects. + + .. versionchanged:: 8.2 + Merged with and replaces the ``MultiCommand`` base class. + """ + + allow_extra_args = True + allow_interspersed_args = False + + #: If set, this is used by the group's :meth:`command` decorator + #: as the default :class:`Command` class. This is useful to make all + #: subcommands use a custom command class. + #: + #: .. versionadded:: 8.0 + command_class: type[Command] | None = None + + #: If set, this is used by the group's :meth:`group` decorator + #: as the default :class:`Group` class. This is useful to make all + #: subgroups use a custom group class. + #: + #: If set to the special value :class:`type` (literally + #: ``group_class = type``), this group's class will be used as the + #: default class. This makes a custom group class continue to make + #: custom groups. + #: + #: .. versionadded:: 8.0 + group_class: type[Group] | type[type] | None = None + # Literal[type] isn't valid, so use Type[type] + + def __init__( + self, + name: str | None = None, + commands: cabc.MutableMapping[str, Command] + | cabc.Sequence[Command] + | None = None, + invoke_without_command: bool = False, + no_args_is_help: bool | None = None, + subcommand_metavar: str | None = None, + chain: bool = False, + result_callback: t.Callable[..., t.Any] | None = None, + **kwargs: t.Any, + ) -> None: + super().__init__(name, **kwargs) + + if commands is None: + commands = {} + elif isinstance(commands, abc.Sequence): + commands = {c.name: c for c in commands if c.name is not None} + + #: The registered subcommands by their exported names. + self.commands: cabc.MutableMapping[str, Command] = commands + + if no_args_is_help is None: + no_args_is_help = not invoke_without_command + + self.no_args_is_help = no_args_is_help + self.invoke_without_command = invoke_without_command + + if subcommand_metavar is None: + if chain: + subcommand_metavar = "COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]..." + else: + subcommand_metavar = "COMMAND [ARGS]..." + + self.subcommand_metavar = subcommand_metavar + self.chain = chain + # The result callback that is stored. This can be set or + # overridden with the :func:`result_callback` decorator. + self._result_callback = result_callback + + if self.chain: + for param in self.params: + if isinstance(param, Argument) and not param.required: + raise RuntimeError( + "A group in chain mode cannot have optional arguments." + ) + + def to_info_dict(self, ctx: Context) -> dict[str, t.Any]: + info_dict = super().to_info_dict(ctx) + commands = {} + + for name in self.list_commands(ctx): + command = self.get_command(ctx, name) + + if command is None: + continue + + sub_ctx = ctx._make_sub_context(command) + + with sub_ctx.scope(cleanup=False): + commands[name] = command.to_info_dict(sub_ctx) + + info_dict.update(commands=commands, chain=self.chain) + return info_dict + + def add_command(self, cmd: Command, name: str | None = None) -> None: + """Registers another :class:`Command` with this group. If the name + is not provided, the name of the command is used. + """ + name = name or cmd.name + if name is None: + raise TypeError("Command has no name.") + _check_nested_chain(self, name, cmd, register=True) + self.commands[name] = cmd + + @t.overload + def command(self, __func: t.Callable[..., t.Any]) -> Command: ... + + @t.overload + def command( + self, *args: t.Any, **kwargs: t.Any + ) -> t.Callable[[t.Callable[..., t.Any]], Command]: ... + + def command( + self, *args: t.Any, **kwargs: t.Any + ) -> t.Callable[[t.Callable[..., t.Any]], Command] | Command: + """A shortcut decorator for declaring and attaching a command to + the group. This takes the same arguments as :func:`command` and + immediately registers the created command with this group by + calling :meth:`add_command`. + + To customize the command class used, set the + :attr:`command_class` attribute. + + .. versionchanged:: 8.1 + This decorator can be applied without parentheses. + + .. versionchanged:: 8.0 + Added the :attr:`command_class` attribute. + """ + from .decorators import command + + func: t.Callable[..., t.Any] | None = None + + if args and callable(args[0]): + assert len(args) == 1 and not kwargs, ( + "Use 'command(**kwargs)(callable)' to provide arguments." + ) + (func,) = args + args = () + + if self.command_class and kwargs.get("cls") is None: + kwargs["cls"] = self.command_class + + def decorator(f: t.Callable[..., t.Any]) -> Command: + cmd: Command = command(*args, **kwargs)(f) + self.add_command(cmd) + return cmd + + if func is not None: + return decorator(func) + + return decorator + + @t.overload + def group(self, __func: t.Callable[..., t.Any]) -> Group: ... + + @t.overload + def group( + self, *args: t.Any, **kwargs: t.Any + ) -> t.Callable[[t.Callable[..., t.Any]], Group]: ... + + def group( + self, *args: t.Any, **kwargs: t.Any + ) -> t.Callable[[t.Callable[..., t.Any]], Group] | Group: + """A shortcut decorator for declaring and attaching a group to + the group. This takes the same arguments as :func:`group` and + immediately registers the created group with this group by + calling :meth:`add_command`. + + To customize the group class used, set the :attr:`group_class` + attribute. + + .. versionchanged:: 8.1 + This decorator can be applied without parentheses. + + .. versionchanged:: 8.0 + Added the :attr:`group_class` attribute. + """ + from .decorators import group + + func: t.Callable[..., t.Any] | None = None + + if args and callable(args[0]): + assert len(args) == 1 and not kwargs, ( + "Use 'group(**kwargs)(callable)' to provide arguments." + ) + (func,) = args + args = () + + if self.group_class is not None and kwargs.get("cls") is None: + if self.group_class is type: + kwargs["cls"] = type(self) + else: + kwargs["cls"] = self.group_class + + def decorator(f: t.Callable[..., t.Any]) -> Group: + cmd: Group = group(*args, **kwargs)(f) + self.add_command(cmd) + return cmd + + if func is not None: + return decorator(func) + + return decorator + + def result_callback(self, replace: bool = False) -> t.Callable[[F], F]: + """Adds a result callback to the command. By default if a + result callback is already registered this will chain them but + this can be disabled with the `replace` parameter. The result + callback is invoked with the return value of the subcommand + (or the list of return values from all subcommands if chaining + is enabled) as well as the parameters as they would be passed + to the main callback. + + Example:: + + @click.group() + @click.option('-i', '--input', default=23) + def cli(input): + return 42 + + @cli.result_callback() + def process_result(result, input): + return result + input + + :param replace: if set to `True` an already existing result + callback will be removed. + + .. versionchanged:: 8.0 + Renamed from ``resultcallback``. + + .. versionadded:: 3.0 + """ + + def decorator(f: F) -> F: + old_callback = self._result_callback + + if old_callback is None or replace: + self._result_callback = f + return f + + def function(value: t.Any, /, *args: t.Any, **kwargs: t.Any) -> t.Any: + inner = old_callback(value, *args, **kwargs) + return f(inner, *args, **kwargs) + + self._result_callback = rv = update_wrapper(t.cast(F, function), f) + return rv # type: ignore[return-value] + + return decorator + + def get_command(self, ctx: Context, cmd_name: str) -> Command | None: + """Given a context and a command name, this returns a :class:`Command` + object if it exists or returns ``None``. + """ + return self.commands.get(cmd_name) + + def list_commands(self, ctx: Context) -> list[str]: + """Returns a list of subcommand names in the order they should appear.""" + return sorted(self.commands) + + def collect_usage_pieces(self, ctx: Context) -> list[str]: + rv = super().collect_usage_pieces(ctx) + rv.append(self.subcommand_metavar) + return rv + + def format_options(self, ctx: Context, formatter: HelpFormatter) -> None: + super().format_options(ctx, formatter) + self.format_commands(ctx, formatter) + + def format_commands(self, ctx: Context, formatter: HelpFormatter) -> None: + """Extra format methods for multi methods that adds all the commands + after the options. + """ + commands = [] + for subcommand in self.list_commands(ctx): + cmd = self.get_command(ctx, subcommand) + # What is this, the tool lied about a command. Ignore it + if cmd is None: + continue + if cmd.hidden: + continue + + commands.append((subcommand, cmd)) + + # allow for 3 times the default spacing + if len(commands): + limit = formatter.width - 6 - max(len(cmd[0]) for cmd in commands) + + rows = [] + for subcommand, cmd in commands: + help = cmd.get_short_help_str(limit) + rows.append((subcommand, help)) + + if rows: + with formatter.section(_("Commands")): + formatter.write_dl(rows) + + def parse_args(self, ctx: Context, args: list[str]) -> list[str]: + if not args and self.no_args_is_help and not ctx.resilient_parsing: + raise NoArgsIsHelpError(ctx) + + rest = super().parse_args(ctx, args) + + if self.chain: + ctx._protected_args = rest + ctx.args = [] + elif rest: + ctx._protected_args, ctx.args = rest[:1], rest[1:] + + return ctx.args + + def invoke(self, ctx: Context) -> t.Any: + def _process_result(value: t.Any) -> t.Any: + if self._result_callback is not None: + value = ctx.invoke(self._result_callback, value, **ctx.params) + return value + + if not ctx._protected_args: + if self.invoke_without_command: + # No subcommand was invoked, so the result callback is + # invoked with the group return value for regular + # groups, or an empty list for chained groups. + with ctx: + rv = super().invoke(ctx) + return _process_result([] if self.chain else rv) + ctx.fail(_("Missing command.")) + + # Fetch args back out + args = [*ctx._protected_args, *ctx.args] + ctx.args = [] + ctx._protected_args = [] + + # If we're not in chain mode, we only allow the invocation of a + # single command but we also inform the current context about the + # name of the command to invoke. + if not self.chain: + # Make sure the context is entered so we do not clean up + # resources until the result processor has worked. + with ctx: + cmd_name, cmd, args = self.resolve_command(ctx, args) + assert cmd is not None + ctx.invoked_subcommand = cmd_name + super().invoke(ctx) + sub_ctx = cmd.make_context(cmd_name, args, parent=ctx) + with sub_ctx: + return _process_result(sub_ctx.command.invoke(sub_ctx)) + + # In chain mode we create the contexts step by step, but after the + # base command has been invoked. Because at that point we do not + # know the subcommands yet, the invoked subcommand attribute is + # set to ``*`` to inform the command that subcommands are executed + # but nothing else. + with ctx: + ctx.invoked_subcommand = "*" if args else None + super().invoke(ctx) + + # Otherwise we make every single context and invoke them in a + # chain. In that case the return value to the result processor + # is the list of all invoked subcommand's results. + contexts = [] + while args: + cmd_name, cmd, args = self.resolve_command(ctx, args) + assert cmd is not None + sub_ctx = cmd.make_context( + cmd_name, + args, + parent=ctx, + allow_extra_args=True, + allow_interspersed_args=False, + ) + contexts.append(sub_ctx) + args, sub_ctx.args = sub_ctx.args, [] + + rv = [] + for sub_ctx in contexts: + with sub_ctx: + rv.append(sub_ctx.command.invoke(sub_ctx)) + return _process_result(rv) + + def resolve_command( + self, ctx: Context, args: list[str] + ) -> tuple[str | None, Command | None, list[str]]: + cmd_name = make_str(args[0]) + original_cmd_name = cmd_name + + # Get the command + cmd = self.get_command(ctx, cmd_name) + + # If we can't find the command but there is a normalization + # function available, we try with that one. + if cmd is None and ctx.token_normalize_func is not None: + cmd_name = ctx.token_normalize_func(cmd_name) + cmd = self.get_command(ctx, cmd_name) + + # If we don't find the command we want to show an error message + # to the user that it was not provided. However, there is + # something else we should do: if the first argument looks like + # an option we want to kick off parsing again for arguments to + # resolve things like --help which now should go to the main + # place. + if cmd is None and not ctx.resilient_parsing: + if _split_opt(cmd_name)[0]: + self.parse_args(ctx, args) + ctx.fail(_("No such command {name!r}.").format(name=original_cmd_name)) + return cmd_name if cmd else None, cmd, args[1:] + + def shell_complete(self, ctx: Context, incomplete: str) -> list[CompletionItem]: + """Return a list of completions for the incomplete value. Looks + at the names of options, subcommands, and chained + multi-commands. + + :param ctx: Invocation context for this command. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + results = [ + CompletionItem(name, help=command.get_short_help_str()) + for name, command in _complete_visible_commands(ctx, incomplete) + ] + results.extend(super().shell_complete(ctx, incomplete)) + return results + + +class _MultiCommand(Group, metaclass=_FakeSubclassCheck): + """ + .. deprecated:: 8.2 + Will be removed in Click 9.0. Use ``Group`` instead. + """ + + +class CommandCollection(Group): + """A :class:`Group` that looks up subcommands on other groups. If a command + is not found on this group, each registered source is checked in order. + Parameters on a source are not added to this group, and a source's callback + is not invoked when invoking its commands. In other words, this "flattens" + commands in many groups into this one group. + + :param name: The name of the group command. + :param sources: A list of :class:`Group` objects to look up commands from. + :param kwargs: Other arguments passed to :class:`Group`. + + .. versionchanged:: 8.2 + This is a subclass of ``Group``. Commands are looked up first on this + group, then each of its sources. + """ + + def __init__( + self, + name: str | None = None, + sources: list[Group] | None = None, + **kwargs: t.Any, + ) -> None: + super().__init__(name, **kwargs) + #: The list of registered groups. + self.sources: list[Group] = sources or [] + + def add_source(self, group: Group) -> None: + """Add a group as a source of commands.""" + self.sources.append(group) + + def get_command(self, ctx: Context, cmd_name: str) -> Command | None: + rv = super().get_command(ctx, cmd_name) + + if rv is not None: + return rv + + for source in self.sources: + rv = source.get_command(ctx, cmd_name) + + if rv is not None: + if self.chain: + _check_nested_chain(self, cmd_name, rv) + + return rv + + return None + + def list_commands(self, ctx: Context) -> list[str]: + rv: set[str] = set(super().list_commands(ctx)) + + for source in self.sources: + rv.update(source.list_commands(ctx)) + + return sorted(rv) + + +def _check_iter(value: t.Any) -> cabc.Iterator[t.Any]: + """Check if the value is iterable but not a string. Raises a type + error, or return an iterator over the value. + """ + if isinstance(value, str): + raise TypeError + + return iter(value) + + +class Parameter: + r"""A parameter to a command comes in two versions: they are either + :class:`Option`\s or :class:`Argument`\s. Other subclasses are currently + not supported by design as some of the internals for parsing are + intentionally not finalized. + + Some settings are supported by both options and arguments. + + :param param_decls: the parameter declarations for this option or + argument. This is a list of flags or argument + names. + :param type: the type that should be used. Either a :class:`ParamType` + or a Python type. The latter is converted into the former + automatically if supported. + :param required: controls if this is optional or not. + :param default: the default value if omitted. This can also be a callable, + in which case it's invoked when the default is needed + without any arguments. + :param callback: A function to further process or validate the value + after type conversion. It is called as ``f(ctx, param, value)`` + and must return the value. It is called for all sources, + including prompts. + :param nargs: the number of arguments to match. If not ``1`` the return + value is a tuple instead of single value. The default for + nargs is ``1`` (except if the type is a tuple, then it's + the arity of the tuple). If ``nargs=-1``, all remaining + parameters are collected. + :param metavar: how the value is represented in the help page. + :param expose_value: if this is `True` then the value is passed onwards + to the command callback and stored on the context, + otherwise it's skipped. + :param is_eager: eager values are processed before non eager ones. This + should not be set for arguments or it will inverse the + order of processing. + :param envvar: environment variable(s) that are used to provide a default value for + this parameter. This can be a string or a sequence of strings. If a sequence is + given, only the first non-empty environment variable is used for the parameter. + :param shell_complete: A function that returns custom shell + completions. Used instead of the param's type completion if + given. Takes ``ctx, param, incomplete`` and must return a list + of :class:`~click.shell_completion.CompletionItem` or a list of + strings. + :param deprecated: If ``True`` or non-empty string, issues a message + indicating that the argument is deprecated and highlights + its deprecation in --help. The message can be customized + by using a string as the value. A deprecated parameter + cannot be required, a ValueError will be raised otherwise. + + .. versionchanged:: 8.2.0 + Introduction of ``deprecated``. + + .. versionchanged:: 8.2 + Adding duplicate parameter names to a :class:`~click.core.Command` will + result in a ``UserWarning`` being shown. + + .. versionchanged:: 8.2 + Adding duplicate parameter names to a :class:`~click.core.Command` will + result in a ``UserWarning`` being shown. + + .. versionchanged:: 8.0 + ``process_value`` validates required parameters and bounded + ``nargs``, and invokes the parameter callback before returning + the value. This allows the callback to validate prompts. + ``full_process_value`` is removed. + + .. versionchanged:: 8.0 + ``autocompletion`` is renamed to ``shell_complete`` and has new + semantics described above. The old name is deprecated and will + be removed in 8.1, until then it will be wrapped to match the + new requirements. + + .. versionchanged:: 8.0 + For ``multiple=True, nargs>1``, the default must be a list of + tuples. + + .. versionchanged:: 8.0 + Setting a default is no longer required for ``nargs>1``, it will + default to ``None``. ``multiple=True`` or ``nargs=-1`` will + default to ``()``. + + .. versionchanged:: 7.1 + Empty environment variables are ignored rather than taking the + empty string value. This makes it possible for scripts to clear + variables if they can't unset them. + + .. versionchanged:: 2.0 + Changed signature for parameter callback to also be passed the + parameter. The old callback format will still work, but it will + raise a warning to give you a chance to migrate the code easier. + """ + + param_type_name = "parameter" + + def __init__( + self, + param_decls: cabc.Sequence[str] | None = None, + type: types.ParamType | t.Any | None = None, + required: bool = False, + # XXX The default historically embed two concepts: + # - the declaration of a Parameter object carrying the default (handy to + # arbitrage the default value of coupled Parameters sharing the same + # self.name, like flag options), + # - and the actual value of the default. + # It is confusing and is the source of many issues discussed in: + # https://github.com/pallets/click/pull/3030 + # In the future, we might think of splitting it in two, not unlike + # Option.is_flag and Option.flag_value: we could have something like + # Parameter.is_default and Parameter.default_value. + default: t.Any | t.Callable[[], t.Any] | None = UNSET, + callback: t.Callable[[Context, Parameter, t.Any], t.Any] | None = None, + nargs: int | None = None, + multiple: bool = False, + metavar: str | None = None, + expose_value: bool = True, + is_eager: bool = False, + envvar: str | cabc.Sequence[str] | None = None, + shell_complete: t.Callable[ + [Context, Parameter, str], list[CompletionItem] | list[str] + ] + | None = None, + deprecated: bool | str = False, + ) -> None: + self.name: str | None + self.opts: list[str] + self.secondary_opts: list[str] + self.name, self.opts, self.secondary_opts = self._parse_decls( + param_decls or (), expose_value + ) + self.type: types.ParamType = types.convert_type(type, default) + + # Default nargs to what the type tells us if we have that + # information available. + if nargs is None: + if self.type.is_composite: + nargs = self.type.arity + else: + nargs = 1 + + self.required = required + self.callback = callback + self.nargs = nargs + self.multiple = multiple + self.expose_value = expose_value + self.default: t.Any | t.Callable[[], t.Any] | None = default + self.is_eager = is_eager + self.metavar = metavar + self.envvar = envvar + self._custom_shell_complete = shell_complete + self.deprecated = deprecated + + if __debug__: + if self.type.is_composite and nargs != self.type.arity: + raise ValueError( + f"'nargs' must be {self.type.arity} (or None) for" + f" type {self.type!r}, but it was {nargs}." + ) + + if required and deprecated: + raise ValueError( + f"The {self.param_type_name} '{self.human_readable_name}' " + "is deprecated and still required. A deprecated " + f"{self.param_type_name} cannot be required." + ) + + def to_info_dict(self) -> dict[str, t.Any]: + """Gather information that could be useful for a tool generating + user-facing documentation. + + Use :meth:`click.Context.to_info_dict` to traverse the entire + CLI structure. + + .. versionchanged:: 8.3.0 + Returns ``None`` for the :attr:`default` if it was not set. + + .. versionadded:: 8.0 + """ + return { + "name": self.name, + "param_type_name": self.param_type_name, + "opts": self.opts, + "secondary_opts": self.secondary_opts, + "type": self.type.to_info_dict(), + "required": self.required, + "nargs": self.nargs, + "multiple": self.multiple, + # We explicitly hide the :attr:`UNSET` value to the user, as we choose to + # make it an implementation detail. And because ``to_info_dict`` has been + # designed for documentation purposes, we return ``None`` instead. + "default": self.default if self.default is not UNSET else None, + "envvar": self.envvar, + } + + def __repr__(self) -> str: + return f"<{self.__class__.__name__} {self.name}>" + + def _parse_decls( + self, decls: cabc.Sequence[str], expose_value: bool + ) -> tuple[str | None, list[str], list[str]]: + raise NotImplementedError() + + @property + def human_readable_name(self) -> str: + """Returns the human readable name of this parameter. This is the + same as the name for options, but the metavar for arguments. + """ + return self.name # type: ignore + + def make_metavar(self, ctx: Context) -> str: + if self.metavar is not None: + return self.metavar + + metavar = self.type.get_metavar(param=self, ctx=ctx) + + if metavar is None: + metavar = self.type.name.upper() + + if self.nargs != 1: + metavar += "..." + + return metavar + + @t.overload + def get_default( + self, ctx: Context, call: t.Literal[True] = True + ) -> t.Any | None: ... + + @t.overload + def get_default( + self, ctx: Context, call: bool = ... + ) -> t.Any | t.Callable[[], t.Any] | None: ... + + def get_default( + self, ctx: Context, call: bool = True + ) -> t.Any | t.Callable[[], t.Any] | None: + """Get the default for the parameter. Tries + :meth:`Context.lookup_default` first, then the local default. + + :param ctx: Current context. + :param call: If the default is a callable, call it. Disable to + return the callable instead. + + .. versionchanged:: 8.0.2 + Type casting is no longer performed when getting a default. + + .. versionchanged:: 8.0.1 + Type casting can fail in resilient parsing mode. Invalid + defaults will not prevent showing help text. + + .. versionchanged:: 8.0 + Looks at ``ctx.default_map`` first. + + .. versionchanged:: 8.0 + Added the ``call`` parameter. + """ + value = ctx.lookup_default(self.name, call=False) # type: ignore + + if value is UNSET: + value = self.default + + if call and callable(value): + value = value() + + return value + + def add_to_parser(self, parser: _OptionParser, ctx: Context) -> None: + raise NotImplementedError() + + def consume_value( + self, ctx: Context, opts: cabc.Mapping[str, t.Any] + ) -> tuple[t.Any, ParameterSource]: + """Returns the parameter value produced by the parser. + + If the parser did not produce a value from user input, the value is either + sourced from the environment variable, the default map, or the parameter's + default value. In that order of precedence. + + If no value is found, an internal sentinel value is returned. + + :meta private: + """ + # Collect from the parse the value passed by the user to the CLI. + value = opts.get(self.name, UNSET) # type: ignore + # If the value is set, it means it was sourced from the command line by the + # parser, otherwise it left unset by default. + source = ( + ParameterSource.COMMANDLINE + if value is not UNSET + else ParameterSource.DEFAULT + ) + + if value is UNSET: + envvar_value = self.value_from_envvar(ctx) + if envvar_value is not None: + value = envvar_value + source = ParameterSource.ENVIRONMENT + + if value is UNSET: + default_map_value = ctx.lookup_default(self.name) # type: ignore + if default_map_value is not UNSET: + value = default_map_value + source = ParameterSource.DEFAULT_MAP + + if value is UNSET: + default_value = self.get_default(ctx) + if default_value is not UNSET: + value = default_value + source = ParameterSource.DEFAULT + + return value, source + + def type_cast_value(self, ctx: Context, value: t.Any) -> t.Any: + """Convert and validate a value against the parameter's + :attr:`type`, :attr:`multiple`, and :attr:`nargs`. + """ + if value is None: + if self.multiple or self.nargs == -1: + return () + else: + return value + + def check_iter(value: t.Any) -> cabc.Iterator[t.Any]: + try: + return _check_iter(value) + except TypeError: + # This should only happen when passing in args manually, + # the parser should construct an iterable when parsing + # the command line. + raise BadParameter( + _("Value must be an iterable."), ctx=ctx, param=self + ) from None + + # Define the conversion function based on nargs and type. + + if self.nargs == 1 or self.type.is_composite: + + def convert(value: t.Any) -> t.Any: + return self.type(value, param=self, ctx=ctx) + + elif self.nargs == -1: + + def convert(value: t.Any) -> t.Any: # tuple[t.Any, ...] + return tuple(self.type(x, self, ctx) for x in check_iter(value)) + + else: # nargs > 1 + + def convert(value: t.Any) -> t.Any: # tuple[t.Any, ...] + value = tuple(check_iter(value)) + + if len(value) != self.nargs: + raise BadParameter( + ngettext( + "Takes {nargs} values but 1 was given.", + "Takes {nargs} values but {len} were given.", + len(value), + ).format(nargs=self.nargs, len=len(value)), + ctx=ctx, + param=self, + ) + + return tuple(self.type(x, self, ctx) for x in value) + + if self.multiple: + return tuple(convert(x) for x in check_iter(value)) + + return convert(value) + + def value_is_missing(self, value: t.Any) -> bool: + """A value is considered missing if: + + - it is :attr:`UNSET`, + - or if it is an empty sequence while the parameter is suppose to have + non-single value (i.e. :attr:`nargs` is not ``1`` or :attr:`multiple` is + set). + + :meta private: + """ + if value is UNSET: + return True + + if (self.nargs != 1 or self.multiple) and value == (): + return True + + return False + + def process_value(self, ctx: Context, value: t.Any) -> t.Any: + """Process the value of this parameter: + + 1. Type cast the value using :meth:`type_cast_value`. + 2. Check if the value is missing (see: :meth:`value_is_missing`), and raise + :exc:`MissingParameter` if it is required. + 3. If a :attr:`callback` is set, call it to have the value replaced by the + result of the callback. If the value was not set, the callback receive + ``None``. This keep the legacy behavior as it was before the introduction of + the :attr:`UNSET` sentinel. + + :meta private: + """ + # shelter `type_cast_value` from ever seeing an `UNSET` value by handling the + # cases in which `UNSET` gets special treatment explicitly at this layer + # + # Refs: + # https://github.com/pallets/click/issues/3069 + if value is UNSET: + if self.multiple or self.nargs == -1: + value = () + else: + value = self.type_cast_value(ctx, value) + + if self.required and self.value_is_missing(value): + raise MissingParameter(ctx=ctx, param=self) + + if self.callback is not None: + # Legacy case: UNSET is not exposed directly to the callback, but converted + # to None. + if value is UNSET: + value = None + + # Search for parameters with UNSET values in the context. + unset_keys = {k: None for k, v in ctx.params.items() if v is UNSET} + # No UNSET values, call the callback as usual. + if not unset_keys: + value = self.callback(ctx, self, value) + + # Legacy case: provide a temporarily manipulated context to the callback + # to hide UNSET values as None. + # + # Refs: + # https://github.com/pallets/click/issues/3136 + # https://github.com/pallets/click/pull/3137 + else: + # Add another layer to the context stack to clearly hint that the + # context is temporarily modified. + with ctx: + # Update the context parameters to replace UNSET with None. + ctx.params.update(unset_keys) + # Feed these fake context parameters to the callback. + value = self.callback(ctx, self, value) + # Restore the UNSET values in the context parameters. + ctx.params.update( + { + k: UNSET + for k in unset_keys + # Only restore keys that are present and still None, in case + # the callback modified other parameters. + if k in ctx.params and ctx.params[k] is None + } + ) + + return value + + def resolve_envvar_value(self, ctx: Context) -> str | None: + """Returns the value found in the environment variable(s) attached to this + parameter. + + Environment variables values are `always returned as strings + `_. + + This method returns ``None`` if: + + - the :attr:`envvar` property is not set on the :class:`Parameter`, + - the environment variable is not found in the environment, + - the variable is found in the environment but its value is empty (i.e. the + environment variable is present but has an empty string). + + If :attr:`envvar` is setup with multiple environment variables, + then only the first non-empty value is returned. + + .. caution:: + + The raw value extracted from the environment is not normalized and is + returned as-is. Any normalization or reconciliation is performed later by + the :class:`Parameter`'s :attr:`type`. + + :meta private: + """ + if not self.envvar: + return None + + if isinstance(self.envvar, str): + rv = os.environ.get(self.envvar) + + if rv: + return rv + else: + for envvar in self.envvar: + rv = os.environ.get(envvar) + + # Return the first non-empty value of the list of environment variables. + if rv: + return rv + # Else, absence of value is interpreted as an environment variable that + # is not set, so proceed to the next one. + + return None + + def value_from_envvar(self, ctx: Context) -> str | cabc.Sequence[str] | None: + """Process the raw environment variable string for this parameter. + + Returns the string as-is or splits it into a sequence of strings if the + parameter is expecting multiple values (i.e. its :attr:`nargs` property is set + to a value other than ``1``). + + :meta private: + """ + rv = self.resolve_envvar_value(ctx) + + if rv is not None and self.nargs != 1: + return self.type.split_envvar_value(rv) + + return rv + + def handle_parse_result( + self, ctx: Context, opts: cabc.Mapping[str, t.Any], args: list[str] + ) -> tuple[t.Any, list[str]]: + """Process the value produced by the parser from user input. + + Always process the value through the Parameter's :attr:`type`, wherever it + comes from. + + If the parameter is deprecated, this method warn the user about it. But only if + the value has been explicitly set by the user (and as such, is not coming from + a default). + + :meta private: + """ + with augment_usage_errors(ctx, param=self): + value, source = self.consume_value(ctx, opts) + + ctx.set_parameter_source(self.name, source) # type: ignore + + # Display a deprecation warning if necessary. + if ( + self.deprecated + and value is not UNSET + and source not in (ParameterSource.DEFAULT, ParameterSource.DEFAULT_MAP) + ): + extra_message = ( + f" {self.deprecated}" if isinstance(self.deprecated, str) else "" + ) + message = _( + "DeprecationWarning: The {param_type} {name!r} is deprecated." + "{extra_message}" + ).format( + param_type=self.param_type_name, + name=self.human_readable_name, + extra_message=extra_message, + ) + echo(style(message, fg="red"), err=True) + + # Process the value through the parameter's type. + try: + value = self.process_value(ctx, value) + except Exception: + if not ctx.resilient_parsing: + raise + # In resilient parsing mode, we do not want to fail the command if the + # value is incompatible with the parameter type, so we reset the value + # to UNSET, which will be interpreted as a missing value. + value = UNSET + + # Add parameter's value to the context. + if ( + self.expose_value + # We skip adding the value if it was previously set by another parameter + # targeting the same variable name. This prevents parameters competing for + # the same name to override each other. + and (self.name not in ctx.params or ctx.params[self.name] is UNSET) + ): + # Click is logically enforcing that the name is None if the parameter is + # not to be exposed. We still assert it here to please the type checker. + assert self.name is not None, ( + f"{self!r} parameter's name should not be None when exposing value." + ) + ctx.params[self.name] = value + + return value, args + + def get_help_record(self, ctx: Context) -> tuple[str, str] | None: + pass + + def get_usage_pieces(self, ctx: Context) -> list[str]: + return [] + + def get_error_hint(self, ctx: Context) -> str: + """Get a stringified version of the param for use in error messages to + indicate which param caused the error. + """ + hint_list = self.opts or [self.human_readable_name] + return " / ".join(f"'{x}'" for x in hint_list) + + def shell_complete(self, ctx: Context, incomplete: str) -> list[CompletionItem]: + """Return a list of completions for the incomplete value. If a + ``shell_complete`` function was given during init, it is used. + Otherwise, the :attr:`type` + :meth:`~click.types.ParamType.shell_complete` function is used. + + :param ctx: Invocation context for this command. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + if self._custom_shell_complete is not None: + results = self._custom_shell_complete(ctx, self, incomplete) + + if results and isinstance(results[0], str): + from click.shell_completion import CompletionItem + + results = [CompletionItem(c) for c in results] + + return t.cast("list[CompletionItem]", results) + + return self.type.shell_complete(ctx, self, incomplete) + + +class Option(Parameter): + """Options are usually optional values on the command line and + have some extra features that arguments don't have. + + All other parameters are passed onwards to the parameter constructor. + + :param show_default: Show the default value for this option in its + help text. Values are not shown by default, unless + :attr:`Context.show_default` is ``True``. If this value is a + string, it shows that string in parentheses instead of the + actual value. This is particularly useful for dynamic options. + For single option boolean flags, the default remains hidden if + its value is ``False``. + :param show_envvar: Controls if an environment variable should be + shown on the help page and error messages. + Normally, environment variables are not shown. + :param prompt: If set to ``True`` or a non empty string then the + user will be prompted for input. If set to ``True`` the prompt + will be the option name capitalized. A deprecated option cannot be + prompted. + :param confirmation_prompt: Prompt a second time to confirm the + value if it was prompted for. Can be set to a string instead of + ``True`` to customize the message. + :param prompt_required: If set to ``False``, the user will be + prompted for input only when the option was specified as a flag + without a value. + :param hide_input: If this is ``True`` then the input on the prompt + will be hidden from the user. This is useful for password input. + :param is_flag: forces this option to act as a flag. The default is + auto detection. + :param flag_value: which value should be used for this flag if it's + enabled. This is set to a boolean automatically if + the option string contains a slash to mark two options. + :param multiple: if this is set to `True` then the argument is accepted + multiple times and recorded. This is similar to ``nargs`` + in how it works but supports arbitrary number of + arguments. + :param count: this flag makes an option increment an integer. + :param allow_from_autoenv: if this is enabled then the value of this + parameter will be pulled from an environment + variable in case a prefix is defined on the + context. + :param help: the help string. + :param hidden: hide this option from help outputs. + :param attrs: Other command arguments described in :class:`Parameter`. + + .. versionchanged:: 8.2 + ``envvar`` used with ``flag_value`` will always use the ``flag_value``, + previously it would use the value of the environment variable. + + .. versionchanged:: 8.1 + Help text indentation is cleaned here instead of only in the + ``@option`` decorator. + + .. versionchanged:: 8.1 + The ``show_default`` parameter overrides + ``Context.show_default``. + + .. versionchanged:: 8.1 + The default of a single option boolean flag is not shown if the + default value is ``False``. + + .. versionchanged:: 8.0.1 + ``type`` is detected from ``flag_value`` if given. + """ + + param_type_name = "option" + + def __init__( + self, + param_decls: cabc.Sequence[str] | None = None, + show_default: bool | str | None = None, + prompt: bool | str = False, + confirmation_prompt: bool | str = False, + prompt_required: bool = True, + hide_input: bool = False, + is_flag: bool | None = None, + flag_value: t.Any = UNSET, + multiple: bool = False, + count: bool = False, + allow_from_autoenv: bool = True, + type: types.ParamType | t.Any | None = None, + help: str | None = None, + hidden: bool = False, + show_choices: bool = True, + show_envvar: bool = False, + deprecated: bool | str = False, + **attrs: t.Any, + ) -> None: + if help: + help = inspect.cleandoc(help) + + super().__init__( + param_decls, type=type, multiple=multiple, deprecated=deprecated, **attrs + ) + + if prompt is True: + if self.name is None: + raise TypeError("'name' is required with 'prompt=True'.") + + prompt_text: str | None = self.name.replace("_", " ").capitalize() + elif prompt is False: + prompt_text = None + else: + prompt_text = prompt + + if deprecated: + deprecated_message = ( + f"(DEPRECATED: {deprecated})" + if isinstance(deprecated, str) + else "(DEPRECATED)" + ) + help = help + deprecated_message if help is not None else deprecated_message + + self.prompt = prompt_text + self.confirmation_prompt = confirmation_prompt + self.prompt_required = prompt_required + self.hide_input = hide_input + self.hidden = hidden + + # The _flag_needs_value property tells the parser that this option is a flag + # that cannot be used standalone and needs a value. With this information, the + # parser can determine whether to consider the next user-provided argument in + # the CLI as a value for this flag or as a new option. + # If prompt is enabled but not required, then it opens the possibility for the + # option to gets its value from the user. + self._flag_needs_value = self.prompt is not None and not self.prompt_required + + # Auto-detect if this is a flag or not. + if is_flag is None: + # Implicitly a flag because flag_value was set. + if flag_value is not UNSET: + is_flag = True + # Not a flag, but when used as a flag it shows a prompt. + elif self._flag_needs_value: + is_flag = False + # Implicitly a flag because secondary options names were given. + elif self.secondary_opts: + is_flag = True + # The option is explicitly not a flag. But we do not know yet if it needs a + # value or not. So we look at the default value to determine it. + elif is_flag is False and not self._flag_needs_value: + self._flag_needs_value = self.default is UNSET + + if is_flag: + # Set missing default for flags if not explicitly required or prompted. + if self.default is UNSET and not self.required and not self.prompt: + if multiple: + self.default = () + + # Auto-detect the type of the flag based on the flag_value. + if type is None: + # A flag without a flag_value is a boolean flag. + if flag_value is UNSET: + self.type: types.ParamType = types.BoolParamType() + # If the flag value is a boolean, use BoolParamType. + elif isinstance(flag_value, bool): + self.type = types.BoolParamType() + # Otherwise, guess the type from the flag value. + else: + self.type = types.convert_type(None, flag_value) + + self.is_flag: bool = bool(is_flag) + self.is_bool_flag: bool = bool( + is_flag and isinstance(self.type, types.BoolParamType) + ) + self.flag_value: t.Any = flag_value + + # Set boolean flag default to False if unset and not required. + if self.is_bool_flag: + if self.default is UNSET and not self.required: + self.default = False + + # Support the special case of aligning the default value with the flag_value + # for flags whose default is explicitly set to True. Note that as long as we + # have this condition, there is no way a flag can have a default set to True, + # and a flag_value set to something else. Refs: + # https://github.com/pallets/click/issues/3024#issuecomment-3146199461 + # https://github.com/pallets/click/pull/3030/commits/06847da + if self.default is True and self.flag_value is not UNSET: + self.default = self.flag_value + + # Set the default flag_value if it is not set. + if self.flag_value is UNSET: + if self.is_flag: + self.flag_value = True + else: + self.flag_value = None + + # Counting. + self.count = count + if count: + if type is None: + self.type = types.IntRange(min=0) + if self.default is UNSET: + self.default = 0 + + self.allow_from_autoenv = allow_from_autoenv + self.help = help + self.show_default = show_default + self.show_choices = show_choices + self.show_envvar = show_envvar + + if __debug__: + if deprecated and prompt: + raise ValueError("`deprecated` options cannot use `prompt`.") + + if self.nargs == -1: + raise TypeError("nargs=-1 is not supported for options.") + + if not self.is_bool_flag and self.secondary_opts: + raise TypeError("Secondary flag is not valid for non-boolean flag.") + + if self.is_bool_flag and self.hide_input and self.prompt is not None: + raise TypeError( + "'prompt' with 'hide_input' is not valid for boolean flag." + ) + + if self.count: + if self.multiple: + raise TypeError("'count' is not valid with 'multiple'.") + + if self.is_flag: + raise TypeError("'count' is not valid with 'is_flag'.") + + def to_info_dict(self) -> dict[str, t.Any]: + """ + .. versionchanged:: 8.3.0 + Returns ``None`` for the :attr:`flag_value` if it was not set. + """ + info_dict = super().to_info_dict() + info_dict.update( + help=self.help, + prompt=self.prompt, + is_flag=self.is_flag, + # We explicitly hide the :attr:`UNSET` value to the user, as we choose to + # make it an implementation detail. And because ``to_info_dict`` has been + # designed for documentation purposes, we return ``None`` instead. + flag_value=self.flag_value if self.flag_value is not UNSET else None, + count=self.count, + hidden=self.hidden, + ) + return info_dict + + def get_error_hint(self, ctx: Context) -> str: + result = super().get_error_hint(ctx) + if self.show_envvar and self.envvar is not None: + result += f" (env var: '{self.envvar}')" + return result + + def _parse_decls( + self, decls: cabc.Sequence[str], expose_value: bool + ) -> tuple[str | None, list[str], list[str]]: + opts = [] + secondary_opts = [] + name = None + possible_names = [] + + for decl in decls: + if decl.isidentifier(): + if name is not None: + raise TypeError(f"Name '{name}' defined twice") + name = decl + else: + split_char = ";" if decl[:1] == "/" else "/" + if split_char in decl: + first, second = decl.split(split_char, 1) + first = first.rstrip() + if first: + possible_names.append(_split_opt(first)) + opts.append(first) + second = second.lstrip() + if second: + secondary_opts.append(second.lstrip()) + if first == second: + raise ValueError( + f"Boolean option {decl!r} cannot use the" + " same flag for true/false." + ) + else: + possible_names.append(_split_opt(decl)) + opts.append(decl) + + if name is None and possible_names: + possible_names.sort(key=lambda x: -len(x[0])) # group long options first + name = possible_names[0][1].replace("-", "_").lower() + if not name.isidentifier(): + name = None + + if name is None: + if not expose_value: + return None, opts, secondary_opts + raise TypeError( + f"Could not determine name for option with declarations {decls!r}" + ) + + if not opts and not secondary_opts: + raise TypeError( + f"No options defined but a name was passed ({name})." + " Did you mean to declare an argument instead? Did" + f" you mean to pass '--{name}'?" + ) + + return name, opts, secondary_opts + + def add_to_parser(self, parser: _OptionParser, ctx: Context) -> None: + if self.multiple: + action = "append" + elif self.count: + action = "count" + else: + action = "store" + + if self.is_flag: + action = f"{action}_const" + + if self.is_bool_flag and self.secondary_opts: + parser.add_option( + obj=self, opts=self.opts, dest=self.name, action=action, const=True + ) + parser.add_option( + obj=self, + opts=self.secondary_opts, + dest=self.name, + action=action, + const=False, + ) + else: + parser.add_option( + obj=self, + opts=self.opts, + dest=self.name, + action=action, + const=self.flag_value, + ) + else: + parser.add_option( + obj=self, + opts=self.opts, + dest=self.name, + action=action, + nargs=self.nargs, + ) + + def get_help_record(self, ctx: Context) -> tuple[str, str] | None: + if self.hidden: + return None + + any_prefix_is_slash = False + + def _write_opts(opts: cabc.Sequence[str]) -> str: + nonlocal any_prefix_is_slash + + rv, any_slashes = join_options(opts) + + if any_slashes: + any_prefix_is_slash = True + + if not self.is_flag and not self.count: + rv += f" {self.make_metavar(ctx=ctx)}" + + return rv + + rv = [_write_opts(self.opts)] + + if self.secondary_opts: + rv.append(_write_opts(self.secondary_opts)) + + help = self.help or "" + + extra = self.get_help_extra(ctx) + extra_items = [] + if "envvars" in extra: + extra_items.append( + _("env var: {var}").format(var=", ".join(extra["envvars"])) + ) + if "default" in extra: + extra_items.append(_("default: {default}").format(default=extra["default"])) + if "range" in extra: + extra_items.append(extra["range"]) + if "required" in extra: + extra_items.append(_(extra["required"])) + + if extra_items: + extra_str = "; ".join(extra_items) + help = f"{help} [{extra_str}]" if help else f"[{extra_str}]" + + return ("; " if any_prefix_is_slash else " / ").join(rv), help + + def get_help_extra(self, ctx: Context) -> types.OptionHelpExtra: + extra: types.OptionHelpExtra = {} + + if self.show_envvar: + envvar = self.envvar + + if envvar is None: + if ( + self.allow_from_autoenv + and ctx.auto_envvar_prefix is not None + and self.name is not None + ): + envvar = f"{ctx.auto_envvar_prefix}_{self.name.upper()}" + + if envvar is not None: + if isinstance(envvar, str): + extra["envvars"] = (envvar,) + else: + extra["envvars"] = tuple(str(d) for d in envvar) + + # Temporarily enable resilient parsing to avoid type casting + # failing for the default. Might be possible to extend this to + # help formatting in general. + resilient = ctx.resilient_parsing + ctx.resilient_parsing = True + + try: + default_value = self.get_default(ctx, call=False) + finally: + ctx.resilient_parsing = resilient + + show_default = False + show_default_is_str = False + + if self.show_default is not None: + if isinstance(self.show_default, str): + show_default_is_str = show_default = True + else: + show_default = self.show_default + elif ctx.show_default is not None: + show_default = ctx.show_default + + if show_default_is_str or ( + show_default and (default_value not in (None, UNSET)) + ): + if show_default_is_str: + default_string = f"({self.show_default})" + elif isinstance(default_value, (list, tuple)): + default_string = ", ".join(str(d) for d in default_value) + elif isinstance(default_value, enum.Enum): + default_string = default_value.name + elif inspect.isfunction(default_value): + default_string = _("(dynamic)") + elif self.is_bool_flag and self.secondary_opts: + # For boolean flags that have distinct True/False opts, + # use the opt without prefix instead of the value. + default_string = _split_opt( + (self.opts if default_value else self.secondary_opts)[0] + )[1] + elif self.is_bool_flag and not self.secondary_opts and not default_value: + default_string = "" + elif default_value == "": + default_string = '""' + else: + default_string = str(default_value) + + if default_string: + extra["default"] = default_string + + if ( + isinstance(self.type, types._NumberRangeBase) + # skip count with default range type + and not (self.count and self.type.min == 0 and self.type.max is None) + ): + range_str = self.type._describe_range() + + if range_str: + extra["range"] = range_str + + if self.required: + extra["required"] = "required" + + return extra + + def prompt_for_value(self, ctx: Context) -> t.Any: + """This is an alternative flow that can be activated in the full + value processing if a value does not exist. It will prompt the + user until a valid value exists and then returns the processed + value as result. + """ + assert self.prompt is not None + + # Calculate the default before prompting anything to lock in the value before + # attempting any user interaction. + default = self.get_default(ctx) + + # A boolean flag can use a simplified [y/n] confirmation prompt. + if self.is_bool_flag: + # If we have no boolean default, we force the user to explicitly provide + # one. + if default in (UNSET, None): + default = None + # Nothing prevent you to declare an option that is simultaneously: + # 1) auto-detected as a boolean flag, + # 2) allowed to prompt, and + # 3) still declare a non-boolean default. + # This forced casting into a boolean is necessary to align any non-boolean + # default to the prompt, which is going to be a [y/n]-style confirmation + # because the option is still a boolean flag. That way, instead of [y/n], + # we get [Y/n] or [y/N] depending on the truthy value of the default. + # Refs: https://github.com/pallets/click/pull/3030#discussion_r2289180249 + else: + default = bool(default) + return confirm(self.prompt, default) + + # If show_default is set to True/False, provide this to `prompt` as well. For + # non-bool values of `show_default`, we use `prompt`'s default behavior + prompt_kwargs: t.Any = {} + if isinstance(self.show_default, bool): + prompt_kwargs["show_default"] = self.show_default + + return prompt( + self.prompt, + # Use ``None`` to inform the prompt() function to reiterate until a valid + # value is provided by the user if we have no default. + default=None if default is UNSET else default, + type=self.type, + hide_input=self.hide_input, + show_choices=self.show_choices, + confirmation_prompt=self.confirmation_prompt, + value_proc=lambda x: self.process_value(ctx, x), + **prompt_kwargs, + ) + + def resolve_envvar_value(self, ctx: Context) -> str | None: + """:class:`Option` resolves its environment variable the same way as + :func:`Parameter.resolve_envvar_value`, but it also supports + :attr:`Context.auto_envvar_prefix`. If we could not find an environment from + the :attr:`envvar` property, we fallback on :attr:`Context.auto_envvar_prefix` + to build dynamiccaly the environment variable name using the + :python:`{ctx.auto_envvar_prefix}_{self.name.upper()}` template. + + :meta private: + """ + rv = super().resolve_envvar_value(ctx) + + if rv is not None: + return rv + + if ( + self.allow_from_autoenv + and ctx.auto_envvar_prefix is not None + and self.name is not None + ): + envvar = f"{ctx.auto_envvar_prefix}_{self.name.upper()}" + rv = os.environ.get(envvar) + + if rv: + return rv + + return None + + def value_from_envvar(self, ctx: Context) -> t.Any: + """For :class:`Option`, this method processes the raw environment variable + string the same way as :func:`Parameter.value_from_envvar` does. + + But in the case of non-boolean flags, the value is analyzed to determine if the + flag is activated or not, and returns a boolean of its activation, or the + :attr:`flag_value` if the latter is set. + + This method also takes care of repeated options (i.e. options with + :attr:`multiple` set to ``True``). + + :meta private: + """ + rv = self.resolve_envvar_value(ctx) + + # Absent environment variable or an empty string is interpreted as unset. + if rv is None: + return None + + # Non-boolean flags are more liberal in what they accept. But a flag being a + # flag, its envvar value still needs to be analyzed to determine if the flag is + # activated or not. + if self.is_flag and not self.is_bool_flag: + # If the flag_value is set and match the envvar value, return it + # directly. + if self.flag_value is not UNSET and rv == self.flag_value: + return self.flag_value + # Analyze the envvar value as a boolean to know if the flag is + # activated or not. + return types.BoolParamType.str_to_bool(rv) + + # Split the envvar value if it is allowed to be repeated. + value_depth = (self.nargs != 1) + bool(self.multiple) + if value_depth > 0: + multi_rv = self.type.split_envvar_value(rv) + if self.multiple and self.nargs != 1: + multi_rv = batch(multi_rv, self.nargs) # type: ignore[assignment] + + return multi_rv + + return rv + + def consume_value( + self, ctx: Context, opts: cabc.Mapping[str, Parameter] + ) -> tuple[t.Any, ParameterSource]: + """For :class:`Option`, the value can be collected from an interactive prompt + if the option is a flag that needs a value (and the :attr:`prompt` property is + set). + + Additionally, this method handles flag option that are activated without a + value, in which case the :attr:`flag_value` is returned. + + :meta private: + """ + value, source = super().consume_value(ctx, opts) + + # The parser will emit a sentinel value if the option is allowed to as a flag + # without a value. + if value is FLAG_NEEDS_VALUE: + # If the option allows for a prompt, we start an interaction with the user. + if self.prompt is not None and not ctx.resilient_parsing: + value = self.prompt_for_value(ctx) + source = ParameterSource.PROMPT + # Else the flag takes its flag_value as value. + else: + value = self.flag_value + source = ParameterSource.COMMANDLINE + + # A flag which is activated always returns the flag value, unless the value + # comes from the explicitly sets default. + elif ( + self.is_flag + and value is True + and not self.is_bool_flag + and source not in (ParameterSource.DEFAULT, ParameterSource.DEFAULT_MAP) + ): + value = self.flag_value + + # Re-interpret a multiple option which has been sent as-is by the parser. + # Here we replace each occurrence of value-less flags (marked by the + # FLAG_NEEDS_VALUE sentinel) with the flag_value. + elif ( + self.multiple + and value is not UNSET + and source not in (ParameterSource.DEFAULT, ParameterSource.DEFAULT_MAP) + and any(v is FLAG_NEEDS_VALUE for v in value) + ): + value = [self.flag_value if v is FLAG_NEEDS_VALUE else v for v in value] + source = ParameterSource.COMMANDLINE + + # The value wasn't set, or used the param's default, prompt for one to the user + # if prompting is enabled. + elif ( + ( + value is UNSET + or source in (ParameterSource.DEFAULT, ParameterSource.DEFAULT_MAP) + ) + and self.prompt is not None + and (self.required or self.prompt_required) + and not ctx.resilient_parsing + ): + value = self.prompt_for_value(ctx) + source = ParameterSource.PROMPT + + return value, source + + def process_value(self, ctx: Context, value: t.Any) -> t.Any: + # process_value has to be overridden on Options in order to capture + # `value == UNSET` cases before `type_cast_value()` gets called. + # + # Refs: + # https://github.com/pallets/click/issues/3069 + if self.is_flag and not self.required and self.is_bool_flag and value is UNSET: + value = False + + if self.callback is not None: + value = self.callback(ctx, self, value) + + return value + + # in the normal case, rely on Parameter.process_value + return super().process_value(ctx, value) + + +class Argument(Parameter): + """Arguments are positional parameters to a command. They generally + provide fewer features than options but can have infinite ``nargs`` + and are required by default. + + All parameters are passed onwards to the constructor of :class:`Parameter`. + """ + + param_type_name = "argument" + + def __init__( + self, + param_decls: cabc.Sequence[str], + required: bool | None = None, + **attrs: t.Any, + ) -> None: + # Auto-detect the requirement status of the argument if not explicitly set. + if required is None: + # The argument gets automatically required if it has no explicit default + # value set and is setup to match at least one value. + if attrs.get("default", UNSET) is UNSET: + required = attrs.get("nargs", 1) > 0 + # If the argument has a default value, it is not required. + else: + required = False + + if "multiple" in attrs: + raise TypeError("__init__() got an unexpected keyword argument 'multiple'.") + + super().__init__(param_decls, required=required, **attrs) + + @property + def human_readable_name(self) -> str: + if self.metavar is not None: + return self.metavar + return self.name.upper() # type: ignore + + def make_metavar(self, ctx: Context) -> str: + if self.metavar is not None: + return self.metavar + var = self.type.get_metavar(param=self, ctx=ctx) + if not var: + var = self.name.upper() # type: ignore + if self.deprecated: + var += "!" + if not self.required: + var = f"[{var}]" + if self.nargs != 1: + var += "..." + return var + + def _parse_decls( + self, decls: cabc.Sequence[str], expose_value: bool + ) -> tuple[str | None, list[str], list[str]]: + if not decls: + if not expose_value: + return None, [], [] + raise TypeError("Argument is marked as exposed, but does not have a name.") + if len(decls) == 1: + name = arg = decls[0] + name = name.replace("-", "_").lower() + else: + raise TypeError( + "Arguments take exactly one parameter declaration, got" + f" {len(decls)}: {decls}." + ) + return name, [arg], [] + + def get_usage_pieces(self, ctx: Context) -> list[str]: + return [self.make_metavar(ctx)] + + def get_error_hint(self, ctx: Context) -> str: + return f"'{self.make_metavar(ctx)}'" + + def add_to_parser(self, parser: _OptionParser, ctx: Context) -> None: + parser.add_argument(dest=self.name, nargs=self.nargs, obj=self) + + +def __getattr__(name: str) -> object: + import warnings + + if name == "BaseCommand": + warnings.warn( + "'BaseCommand' is deprecated and will be removed in Click 9.0. Use" + " 'Command' instead.", + DeprecationWarning, + stacklevel=2, + ) + return _BaseCommand + + if name == "MultiCommand": + warnings.warn( + "'MultiCommand' is deprecated and will be removed in Click 9.0. Use" + " 'Group' instead.", + DeprecationWarning, + stacklevel=2, + ) + return _MultiCommand + + raise AttributeError(name) diff --git a/venv/lib/python3.10/site-packages/click/decorators.py b/venv/lib/python3.10/site-packages/click/decorators.py new file mode 100644 index 0000000..21f4c34 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/decorators.py @@ -0,0 +1,551 @@ +from __future__ import annotations + +import inspect +import typing as t +from functools import update_wrapper +from gettext import gettext as _ + +from .core import Argument +from .core import Command +from .core import Context +from .core import Group +from .core import Option +from .core import Parameter +from .globals import get_current_context +from .utils import echo + +if t.TYPE_CHECKING: + import typing_extensions as te + + P = te.ParamSpec("P") + +R = t.TypeVar("R") +T = t.TypeVar("T") +_AnyCallable = t.Callable[..., t.Any] +FC = t.TypeVar("FC", bound="_AnyCallable | Command") + + +def pass_context(f: t.Callable[te.Concatenate[Context, P], R]) -> t.Callable[P, R]: + """Marks a callback as wanting to receive the current context + object as first argument. + """ + + def new_func(*args: P.args, **kwargs: P.kwargs) -> R: + return f(get_current_context(), *args, **kwargs) + + return update_wrapper(new_func, f) + + +def pass_obj(f: t.Callable[te.Concatenate[T, P], R]) -> t.Callable[P, R]: + """Similar to :func:`pass_context`, but only pass the object on the + context onwards (:attr:`Context.obj`). This is useful if that object + represents the state of a nested system. + """ + + def new_func(*args: P.args, **kwargs: P.kwargs) -> R: + return f(get_current_context().obj, *args, **kwargs) + + return update_wrapper(new_func, f) + + +def make_pass_decorator( + object_type: type[T], ensure: bool = False +) -> t.Callable[[t.Callable[te.Concatenate[T, P], R]], t.Callable[P, R]]: + """Given an object type this creates a decorator that will work + similar to :func:`pass_obj` but instead of passing the object of the + current context, it will find the innermost context of type + :func:`object_type`. + + This generates a decorator that works roughly like this:: + + from functools import update_wrapper + + def decorator(f): + @pass_context + def new_func(ctx, *args, **kwargs): + obj = ctx.find_object(object_type) + return ctx.invoke(f, obj, *args, **kwargs) + return update_wrapper(new_func, f) + return decorator + + :param object_type: the type of the object to pass. + :param ensure: if set to `True`, a new object will be created and + remembered on the context if it's not there yet. + """ + + def decorator(f: t.Callable[te.Concatenate[T, P], R]) -> t.Callable[P, R]: + def new_func(*args: P.args, **kwargs: P.kwargs) -> R: + ctx = get_current_context() + + obj: T | None + if ensure: + obj = ctx.ensure_object(object_type) + else: + obj = ctx.find_object(object_type) + + if obj is None: + raise RuntimeError( + "Managed to invoke callback without a context" + f" object of type {object_type.__name__!r}" + " existing." + ) + + return ctx.invoke(f, obj, *args, **kwargs) + + return update_wrapper(new_func, f) + + return decorator + + +def pass_meta_key( + key: str, *, doc_description: str | None = None +) -> t.Callable[[t.Callable[te.Concatenate[T, P], R]], t.Callable[P, R]]: + """Create a decorator that passes a key from + :attr:`click.Context.meta` as the first argument to the decorated + function. + + :param key: Key in ``Context.meta`` to pass. + :param doc_description: Description of the object being passed, + inserted into the decorator's docstring. Defaults to "the 'key' + key from Context.meta". + + .. versionadded:: 8.0 + """ + + def decorator(f: t.Callable[te.Concatenate[T, P], R]) -> t.Callable[P, R]: + def new_func(*args: P.args, **kwargs: P.kwargs) -> R: + ctx = get_current_context() + obj = ctx.meta[key] + return ctx.invoke(f, obj, *args, **kwargs) + + return update_wrapper(new_func, f) + + if doc_description is None: + doc_description = f"the {key!r} key from :attr:`click.Context.meta`" + + decorator.__doc__ = ( + f"Decorator that passes {doc_description} as the first argument" + " to the decorated function." + ) + return decorator + + +CmdType = t.TypeVar("CmdType", bound=Command) + + +# variant: no call, directly as decorator for a function. +@t.overload +def command(name: _AnyCallable) -> Command: ... + + +# variant: with positional name and with positional or keyword cls argument: +# @command(namearg, CommandCls, ...) or @command(namearg, cls=CommandCls, ...) +@t.overload +def command( + name: str | None, + cls: type[CmdType], + **attrs: t.Any, +) -> t.Callable[[_AnyCallable], CmdType]: ... + + +# variant: name omitted, cls _must_ be a keyword argument, @command(cls=CommandCls, ...) +@t.overload +def command( + name: None = None, + *, + cls: type[CmdType], + **attrs: t.Any, +) -> t.Callable[[_AnyCallable], CmdType]: ... + + +# variant: with optional string name, no cls argument provided. +@t.overload +def command( + name: str | None = ..., cls: None = None, **attrs: t.Any +) -> t.Callable[[_AnyCallable], Command]: ... + + +def command( + name: str | _AnyCallable | None = None, + cls: type[CmdType] | None = None, + **attrs: t.Any, +) -> Command | t.Callable[[_AnyCallable], Command | CmdType]: + r"""Creates a new :class:`Command` and uses the decorated function as + callback. This will also automatically attach all decorated + :func:`option`\s and :func:`argument`\s as parameters to the command. + + The name of the command defaults to the name of the function, converted to + lowercase, with underscores ``_`` replaced by dashes ``-``, and the suffixes + ``_command``, ``_cmd``, ``_group``, and ``_grp`` are removed. For example, + ``init_data_command`` becomes ``init-data``. + + All keyword arguments are forwarded to the underlying command class. + For the ``params`` argument, any decorated params are appended to + the end of the list. + + Once decorated the function turns into a :class:`Command` instance + that can be invoked as a command line utility or be attached to a + command :class:`Group`. + + :param name: The name of the command. Defaults to modifying the function's + name as described above. + :param cls: The command class to create. Defaults to :class:`Command`. + + .. versionchanged:: 8.2 + The suffixes ``_command``, ``_cmd``, ``_group``, and ``_grp`` are + removed when generating the name. + + .. versionchanged:: 8.1 + This decorator can be applied without parentheses. + + .. versionchanged:: 8.1 + The ``params`` argument can be used. Decorated params are + appended to the end of the list. + """ + + func: t.Callable[[_AnyCallable], t.Any] | None = None + + if callable(name): + func = name + name = None + assert cls is None, "Use 'command(cls=cls)(callable)' to specify a class." + assert not attrs, "Use 'command(**kwargs)(callable)' to provide arguments." + + if cls is None: + cls = t.cast("type[CmdType]", Command) + + def decorator(f: _AnyCallable) -> CmdType: + if isinstance(f, Command): + raise TypeError("Attempted to convert a callback into a command twice.") + + attr_params = attrs.pop("params", None) + params = attr_params if attr_params is not None else [] + + try: + decorator_params = f.__click_params__ # type: ignore + except AttributeError: + pass + else: + del f.__click_params__ # type: ignore + params.extend(reversed(decorator_params)) + + if attrs.get("help") is None: + attrs["help"] = f.__doc__ + + if t.TYPE_CHECKING: + assert cls is not None + assert not callable(name) + + if name is not None: + cmd_name = name + else: + cmd_name = f.__name__.lower().replace("_", "-") + cmd_left, sep, suffix = cmd_name.rpartition("-") + + if sep and suffix in {"command", "cmd", "group", "grp"}: + cmd_name = cmd_left + + cmd = cls(name=cmd_name, callback=f, params=params, **attrs) + cmd.__doc__ = f.__doc__ + return cmd + + if func is not None: + return decorator(func) + + return decorator + + +GrpType = t.TypeVar("GrpType", bound=Group) + + +# variant: no call, directly as decorator for a function. +@t.overload +def group(name: _AnyCallable) -> Group: ... + + +# variant: with positional name and with positional or keyword cls argument: +# @group(namearg, GroupCls, ...) or @group(namearg, cls=GroupCls, ...) +@t.overload +def group( + name: str | None, + cls: type[GrpType], + **attrs: t.Any, +) -> t.Callable[[_AnyCallable], GrpType]: ... + + +# variant: name omitted, cls _must_ be a keyword argument, @group(cmd=GroupCls, ...) +@t.overload +def group( + name: None = None, + *, + cls: type[GrpType], + **attrs: t.Any, +) -> t.Callable[[_AnyCallable], GrpType]: ... + + +# variant: with optional string name, no cls argument provided. +@t.overload +def group( + name: str | None = ..., cls: None = None, **attrs: t.Any +) -> t.Callable[[_AnyCallable], Group]: ... + + +def group( + name: str | _AnyCallable | None = None, + cls: type[GrpType] | None = None, + **attrs: t.Any, +) -> Group | t.Callable[[_AnyCallable], Group | GrpType]: + """Creates a new :class:`Group` with a function as callback. This + works otherwise the same as :func:`command` just that the `cls` + parameter is set to :class:`Group`. + + .. versionchanged:: 8.1 + This decorator can be applied without parentheses. + """ + if cls is None: + cls = t.cast("type[GrpType]", Group) + + if callable(name): + return command(cls=cls, **attrs)(name) + + return command(name, cls, **attrs) + + +def _param_memo(f: t.Callable[..., t.Any], param: Parameter) -> None: + if isinstance(f, Command): + f.params.append(param) + else: + if not hasattr(f, "__click_params__"): + f.__click_params__ = [] # type: ignore + + f.__click_params__.append(param) # type: ignore + + +def argument( + *param_decls: str, cls: type[Argument] | None = None, **attrs: t.Any +) -> t.Callable[[FC], FC]: + """Attaches an argument to the command. All positional arguments are + passed as parameter declarations to :class:`Argument`; all keyword + arguments are forwarded unchanged (except ``cls``). + This is equivalent to creating an :class:`Argument` instance manually + and attaching it to the :attr:`Command.params` list. + + For the default argument class, refer to :class:`Argument` and + :class:`Parameter` for descriptions of parameters. + + :param cls: the argument class to instantiate. This defaults to + :class:`Argument`. + :param param_decls: Passed as positional arguments to the constructor of + ``cls``. + :param attrs: Passed as keyword arguments to the constructor of ``cls``. + """ + if cls is None: + cls = Argument + + def decorator(f: FC) -> FC: + _param_memo(f, cls(param_decls, **attrs)) + return f + + return decorator + + +def option( + *param_decls: str, cls: type[Option] | None = None, **attrs: t.Any +) -> t.Callable[[FC], FC]: + """Attaches an option to the command. All positional arguments are + passed as parameter declarations to :class:`Option`; all keyword + arguments are forwarded unchanged (except ``cls``). + This is equivalent to creating an :class:`Option` instance manually + and attaching it to the :attr:`Command.params` list. + + For the default option class, refer to :class:`Option` and + :class:`Parameter` for descriptions of parameters. + + :param cls: the option class to instantiate. This defaults to + :class:`Option`. + :param param_decls: Passed as positional arguments to the constructor of + ``cls``. + :param attrs: Passed as keyword arguments to the constructor of ``cls``. + """ + if cls is None: + cls = Option + + def decorator(f: FC) -> FC: + _param_memo(f, cls(param_decls, **attrs)) + return f + + return decorator + + +def confirmation_option(*param_decls: str, **kwargs: t.Any) -> t.Callable[[FC], FC]: + """Add a ``--yes`` option which shows a prompt before continuing if + not passed. If the prompt is declined, the program will exit. + + :param param_decls: One or more option names. Defaults to the single + value ``"--yes"``. + :param kwargs: Extra arguments are passed to :func:`option`. + """ + + def callback(ctx: Context, param: Parameter, value: bool) -> None: + if not value: + ctx.abort() + + if not param_decls: + param_decls = ("--yes",) + + kwargs.setdefault("is_flag", True) + kwargs.setdefault("callback", callback) + kwargs.setdefault("expose_value", False) + kwargs.setdefault("prompt", "Do you want to continue?") + kwargs.setdefault("help", "Confirm the action without prompting.") + return option(*param_decls, **kwargs) + + +def password_option(*param_decls: str, **kwargs: t.Any) -> t.Callable[[FC], FC]: + """Add a ``--password`` option which prompts for a password, hiding + input and asking to enter the value again for confirmation. + + :param param_decls: One or more option names. Defaults to the single + value ``"--password"``. + :param kwargs: Extra arguments are passed to :func:`option`. + """ + if not param_decls: + param_decls = ("--password",) + + kwargs.setdefault("prompt", True) + kwargs.setdefault("confirmation_prompt", True) + kwargs.setdefault("hide_input", True) + return option(*param_decls, **kwargs) + + +def version_option( + version: str | None = None, + *param_decls: str, + package_name: str | None = None, + prog_name: str | None = None, + message: str | None = None, + **kwargs: t.Any, +) -> t.Callable[[FC], FC]: + """Add a ``--version`` option which immediately prints the version + number and exits the program. + + If ``version`` is not provided, Click will try to detect it using + :func:`importlib.metadata.version` to get the version for the + ``package_name``. + + If ``package_name`` is not provided, Click will try to detect it by + inspecting the stack frames. This will be used to detect the + version, so it must match the name of the installed package. + + :param version: The version number to show. If not provided, Click + will try to detect it. + :param param_decls: One or more option names. Defaults to the single + value ``"--version"``. + :param package_name: The package name to detect the version from. If + not provided, Click will try to detect it. + :param prog_name: The name of the CLI to show in the message. If not + provided, it will be detected from the command. + :param message: The message to show. The values ``%(prog)s``, + ``%(package)s``, and ``%(version)s`` are available. Defaults to + ``"%(prog)s, version %(version)s"``. + :param kwargs: Extra arguments are passed to :func:`option`. + :raise RuntimeError: ``version`` could not be detected. + + .. versionchanged:: 8.0 + Add the ``package_name`` parameter, and the ``%(package)s`` + value for messages. + + .. versionchanged:: 8.0 + Use :mod:`importlib.metadata` instead of ``pkg_resources``. The + version is detected based on the package name, not the entry + point name. The Python package name must match the installed + package name, or be passed with ``package_name=``. + """ + if message is None: + message = _("%(prog)s, version %(version)s") + + if version is None and package_name is None: + frame = inspect.currentframe() + f_back = frame.f_back if frame is not None else None + f_globals = f_back.f_globals if f_back is not None else None + # break reference cycle + # https://docs.python.org/3/library/inspect.html#the-interpreter-stack + del frame + + if f_globals is not None: + package_name = f_globals.get("__name__") + + if package_name == "__main__": + package_name = f_globals.get("__package__") + + if package_name: + package_name = package_name.partition(".")[0] + + def callback(ctx: Context, param: Parameter, value: bool) -> None: + if not value or ctx.resilient_parsing: + return + + nonlocal prog_name + nonlocal version + + if prog_name is None: + prog_name = ctx.find_root().info_name + + if version is None and package_name is not None: + import importlib.metadata + + try: + version = importlib.metadata.version(package_name) + except importlib.metadata.PackageNotFoundError: + raise RuntimeError( + f"{package_name!r} is not installed. Try passing" + " 'package_name' instead." + ) from None + + if version is None: + raise RuntimeError( + f"Could not determine the version for {package_name!r} automatically." + ) + + echo( + message % {"prog": prog_name, "package": package_name, "version": version}, + color=ctx.color, + ) + ctx.exit() + + if not param_decls: + param_decls = ("--version",) + + kwargs.setdefault("is_flag", True) + kwargs.setdefault("expose_value", False) + kwargs.setdefault("is_eager", True) + kwargs.setdefault("help", _("Show the version and exit.")) + kwargs["callback"] = callback + return option(*param_decls, **kwargs) + + +def help_option(*param_decls: str, **kwargs: t.Any) -> t.Callable[[FC], FC]: + """Pre-configured ``--help`` option which immediately prints the help page + and exits the program. + + :param param_decls: One or more option names. Defaults to the single + value ``"--help"``. + :param kwargs: Extra arguments are passed to :func:`option`. + """ + + def show_help(ctx: Context, param: Parameter, value: bool) -> None: + """Callback that print the help page on ```` and exits.""" + if value and not ctx.resilient_parsing: + echo(ctx.get_help(), color=ctx.color) + ctx.exit() + + if not param_decls: + param_decls = ("--help",) + + kwargs.setdefault("is_flag", True) + kwargs.setdefault("expose_value", False) + kwargs.setdefault("is_eager", True) + kwargs.setdefault("help", _("Show this message and exit.")) + kwargs.setdefault("callback", show_help) + + return option(*param_decls, **kwargs) diff --git a/venv/lib/python3.10/site-packages/click/exceptions.py b/venv/lib/python3.10/site-packages/click/exceptions.py new file mode 100644 index 0000000..4d782ee --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/exceptions.py @@ -0,0 +1,308 @@ +from __future__ import annotations + +import collections.abc as cabc +import typing as t +from gettext import gettext as _ +from gettext import ngettext + +from ._compat import get_text_stderr +from .globals import resolve_color_default +from .utils import echo +from .utils import format_filename + +if t.TYPE_CHECKING: + from .core import Command + from .core import Context + from .core import Parameter + + +def _join_param_hints(param_hint: cabc.Sequence[str] | str | None) -> str | None: + if param_hint is not None and not isinstance(param_hint, str): + return " / ".join(repr(x) for x in param_hint) + + return param_hint + + +class ClickException(Exception): + """An exception that Click can handle and show to the user.""" + + #: The exit code for this exception. + exit_code = 1 + + def __init__(self, message: str) -> None: + super().__init__(message) + # The context will be removed by the time we print the message, so cache + # the color settings here to be used later on (in `show`) + self.show_color: bool | None = resolve_color_default() + self.message = message + + def format_message(self) -> str: + return self.message + + def __str__(self) -> str: + return self.message + + def show(self, file: t.IO[t.Any] | None = None) -> None: + if file is None: + file = get_text_stderr() + + echo( + _("Error: {message}").format(message=self.format_message()), + file=file, + color=self.show_color, + ) + + +class UsageError(ClickException): + """An internal exception that signals a usage error. This typically + aborts any further handling. + + :param message: the error message to display. + :param ctx: optionally the context that caused this error. Click will + fill in the context automatically in some situations. + """ + + exit_code = 2 + + def __init__(self, message: str, ctx: Context | None = None) -> None: + super().__init__(message) + self.ctx = ctx + self.cmd: Command | None = self.ctx.command if self.ctx else None + + def show(self, file: t.IO[t.Any] | None = None) -> None: + if file is None: + file = get_text_stderr() + color = None + hint = "" + if ( + self.ctx is not None + and self.ctx.command.get_help_option(self.ctx) is not None + ): + hint = _("Try '{command} {option}' for help.").format( + command=self.ctx.command_path, option=self.ctx.help_option_names[0] + ) + hint = f"{hint}\n" + if self.ctx is not None: + color = self.ctx.color + echo(f"{self.ctx.get_usage()}\n{hint}", file=file, color=color) + echo( + _("Error: {message}").format(message=self.format_message()), + file=file, + color=color, + ) + + +class BadParameter(UsageError): + """An exception that formats out a standardized error message for a + bad parameter. This is useful when thrown from a callback or type as + Click will attach contextual information to it (for instance, which + parameter it is). + + .. versionadded:: 2.0 + + :param param: the parameter object that caused this error. This can + be left out, and Click will attach this info itself + if possible. + :param param_hint: a string that shows up as parameter name. This + can be used as alternative to `param` in cases + where custom validation should happen. If it is + a string it's used as such, if it's a list then + each item is quoted and separated. + """ + + def __init__( + self, + message: str, + ctx: Context | None = None, + param: Parameter | None = None, + param_hint: cabc.Sequence[str] | str | None = None, + ) -> None: + super().__init__(message, ctx) + self.param = param + self.param_hint = param_hint + + def format_message(self) -> str: + if self.param_hint is not None: + param_hint = self.param_hint + elif self.param is not None: + param_hint = self.param.get_error_hint(self.ctx) # type: ignore + else: + return _("Invalid value: {message}").format(message=self.message) + + return _("Invalid value for {param_hint}: {message}").format( + param_hint=_join_param_hints(param_hint), message=self.message + ) + + +class MissingParameter(BadParameter): + """Raised if click required an option or argument but it was not + provided when invoking the script. + + .. versionadded:: 4.0 + + :param param_type: a string that indicates the type of the parameter. + The default is to inherit the parameter type from + the given `param`. Valid values are ``'parameter'``, + ``'option'`` or ``'argument'``. + """ + + def __init__( + self, + message: str | None = None, + ctx: Context | None = None, + param: Parameter | None = None, + param_hint: cabc.Sequence[str] | str | None = None, + param_type: str | None = None, + ) -> None: + super().__init__(message or "", ctx, param, param_hint) + self.param_type = param_type + + def format_message(self) -> str: + if self.param_hint is not None: + param_hint: cabc.Sequence[str] | str | None = self.param_hint + elif self.param is not None: + param_hint = self.param.get_error_hint(self.ctx) # type: ignore + else: + param_hint = None + + param_hint = _join_param_hints(param_hint) + param_hint = f" {param_hint}" if param_hint else "" + + param_type = self.param_type + if param_type is None and self.param is not None: + param_type = self.param.param_type_name + + msg = self.message + if self.param is not None: + msg_extra = self.param.type.get_missing_message( + param=self.param, ctx=self.ctx + ) + if msg_extra: + if msg: + msg += f". {msg_extra}" + else: + msg = msg_extra + + msg = f" {msg}" if msg else "" + + # Translate param_type for known types. + if param_type == "argument": + missing = _("Missing argument") + elif param_type == "option": + missing = _("Missing option") + elif param_type == "parameter": + missing = _("Missing parameter") + else: + missing = _("Missing {param_type}").format(param_type=param_type) + + return f"{missing}{param_hint}.{msg}" + + def __str__(self) -> str: + if not self.message: + param_name = self.param.name if self.param else None + return _("Missing parameter: {param_name}").format(param_name=param_name) + else: + return self.message + + +class NoSuchOption(UsageError): + """Raised if click attempted to handle an option that does not + exist. + + .. versionadded:: 4.0 + """ + + def __init__( + self, + option_name: str, + message: str | None = None, + possibilities: cabc.Sequence[str] | None = None, + ctx: Context | None = None, + ) -> None: + if message is None: + message = _("No such option: {name}").format(name=option_name) + + super().__init__(message, ctx) + self.option_name = option_name + self.possibilities = possibilities + + def format_message(self) -> str: + if not self.possibilities: + return self.message + + possibility_str = ", ".join(sorted(self.possibilities)) + suggest = ngettext( + "Did you mean {possibility}?", + "(Possible options: {possibilities})", + len(self.possibilities), + ).format(possibility=possibility_str, possibilities=possibility_str) + return f"{self.message} {suggest}" + + +class BadOptionUsage(UsageError): + """Raised if an option is generally supplied but the use of the option + was incorrect. This is for instance raised if the number of arguments + for an option is not correct. + + .. versionadded:: 4.0 + + :param option_name: the name of the option being used incorrectly. + """ + + def __init__( + self, option_name: str, message: str, ctx: Context | None = None + ) -> None: + super().__init__(message, ctx) + self.option_name = option_name + + +class BadArgumentUsage(UsageError): + """Raised if an argument is generally supplied but the use of the argument + was incorrect. This is for instance raised if the number of values + for an argument is not correct. + + .. versionadded:: 6.0 + """ + + +class NoArgsIsHelpError(UsageError): + def __init__(self, ctx: Context) -> None: + self.ctx: Context + super().__init__(ctx.get_help(), ctx=ctx) + + def show(self, file: t.IO[t.Any] | None = None) -> None: + echo(self.format_message(), file=file, err=True, color=self.ctx.color) + + +class FileError(ClickException): + """Raised if a file cannot be opened.""" + + def __init__(self, filename: str, hint: str | None = None) -> None: + if hint is None: + hint = _("unknown error") + + super().__init__(hint) + self.ui_filename: str = format_filename(filename) + self.filename = filename + + def format_message(self) -> str: + return _("Could not open file {filename!r}: {message}").format( + filename=self.ui_filename, message=self.message + ) + + +class Abort(RuntimeError): + """An internal signalling exception that signals Click to abort.""" + + +class Exit(RuntimeError): + """An exception that indicates that the application should exit with some + status code. + + :param code: the status code to exit with. + """ + + __slots__ = ("exit_code",) + + def __init__(self, code: int = 0) -> None: + self.exit_code: int = code diff --git a/venv/lib/python3.10/site-packages/click/formatting.py b/venv/lib/python3.10/site-packages/click/formatting.py new file mode 100644 index 0000000..0b64f83 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/formatting.py @@ -0,0 +1,301 @@ +from __future__ import annotations + +import collections.abc as cabc +from contextlib import contextmanager +from gettext import gettext as _ + +from ._compat import term_len +from .parser import _split_opt + +# Can force a width. This is used by the test system +FORCED_WIDTH: int | None = None + + +def measure_table(rows: cabc.Iterable[tuple[str, str]]) -> tuple[int, ...]: + widths: dict[int, int] = {} + + for row in rows: + for idx, col in enumerate(row): + widths[idx] = max(widths.get(idx, 0), term_len(col)) + + return tuple(y for x, y in sorted(widths.items())) + + +def iter_rows( + rows: cabc.Iterable[tuple[str, str]], col_count: int +) -> cabc.Iterator[tuple[str, ...]]: + for row in rows: + yield row + ("",) * (col_count - len(row)) + + +def wrap_text( + text: str, + width: int = 78, + initial_indent: str = "", + subsequent_indent: str = "", + preserve_paragraphs: bool = False, +) -> str: + """A helper function that intelligently wraps text. By default, it + assumes that it operates on a single paragraph of text but if the + `preserve_paragraphs` parameter is provided it will intelligently + handle paragraphs (defined by two empty lines). + + If paragraphs are handled, a paragraph can be prefixed with an empty + line containing the ``\\b`` character (``\\x08``) to indicate that + no rewrapping should happen in that block. + + :param text: the text that should be rewrapped. + :param width: the maximum width for the text. + :param initial_indent: the initial indent that should be placed on the + first line as a string. + :param subsequent_indent: the indent string that should be placed on + each consecutive line. + :param preserve_paragraphs: if this flag is set then the wrapping will + intelligently handle paragraphs. + """ + from ._textwrap import TextWrapper + + text = text.expandtabs() + wrapper = TextWrapper( + width, + initial_indent=initial_indent, + subsequent_indent=subsequent_indent, + replace_whitespace=False, + ) + if not preserve_paragraphs: + return wrapper.fill(text) + + p: list[tuple[int, bool, str]] = [] + buf: list[str] = [] + indent = None + + def _flush_par() -> None: + if not buf: + return + if buf[0].strip() == "\b": + p.append((indent or 0, True, "\n".join(buf[1:]))) + else: + p.append((indent or 0, False, " ".join(buf))) + del buf[:] + + for line in text.splitlines(): + if not line: + _flush_par() + indent = None + else: + if indent is None: + orig_len = term_len(line) + line = line.lstrip() + indent = orig_len - term_len(line) + buf.append(line) + _flush_par() + + rv = [] + for indent, raw, text in p: + with wrapper.extra_indent(" " * indent): + if raw: + rv.append(wrapper.indent_only(text)) + else: + rv.append(wrapper.fill(text)) + + return "\n\n".join(rv) + + +class HelpFormatter: + """This class helps with formatting text-based help pages. It's + usually just needed for very special internal cases, but it's also + exposed so that developers can write their own fancy outputs. + + At present, it always writes into memory. + + :param indent_increment: the additional increment for each level. + :param width: the width for the text. This defaults to the terminal + width clamped to a maximum of 78. + """ + + def __init__( + self, + indent_increment: int = 2, + width: int | None = None, + max_width: int | None = None, + ) -> None: + self.indent_increment = indent_increment + if max_width is None: + max_width = 80 + if width is None: + import shutil + + width = FORCED_WIDTH + if width is None: + width = max(min(shutil.get_terminal_size().columns, max_width) - 2, 50) + self.width = width + self.current_indent: int = 0 + self.buffer: list[str] = [] + + def write(self, string: str) -> None: + """Writes a unicode string into the internal buffer.""" + self.buffer.append(string) + + def indent(self) -> None: + """Increases the indentation.""" + self.current_indent += self.indent_increment + + def dedent(self) -> None: + """Decreases the indentation.""" + self.current_indent -= self.indent_increment + + def write_usage(self, prog: str, args: str = "", prefix: str | None = None) -> None: + """Writes a usage line into the buffer. + + :param prog: the program name. + :param args: whitespace separated list of arguments. + :param prefix: The prefix for the first line. Defaults to + ``"Usage: "``. + """ + if prefix is None: + prefix = f"{_('Usage:')} " + + usage_prefix = f"{prefix:>{self.current_indent}}{prog} " + text_width = self.width - self.current_indent + + if text_width >= (term_len(usage_prefix) + 20): + # The arguments will fit to the right of the prefix. + indent = " " * term_len(usage_prefix) + self.write( + wrap_text( + args, + text_width, + initial_indent=usage_prefix, + subsequent_indent=indent, + ) + ) + else: + # The prefix is too long, put the arguments on the next line. + self.write(usage_prefix) + self.write("\n") + indent = " " * (max(self.current_indent, term_len(prefix)) + 4) + self.write( + wrap_text( + args, text_width, initial_indent=indent, subsequent_indent=indent + ) + ) + + self.write("\n") + + def write_heading(self, heading: str) -> None: + """Writes a heading into the buffer.""" + self.write(f"{'':>{self.current_indent}}{heading}:\n") + + def write_paragraph(self) -> None: + """Writes a paragraph into the buffer.""" + if self.buffer: + self.write("\n") + + def write_text(self, text: str) -> None: + """Writes re-indented text into the buffer. This rewraps and + preserves paragraphs. + """ + indent = " " * self.current_indent + self.write( + wrap_text( + text, + self.width, + initial_indent=indent, + subsequent_indent=indent, + preserve_paragraphs=True, + ) + ) + self.write("\n") + + def write_dl( + self, + rows: cabc.Sequence[tuple[str, str]], + col_max: int = 30, + col_spacing: int = 2, + ) -> None: + """Writes a definition list into the buffer. This is how options + and commands are usually formatted. + + :param rows: a list of two item tuples for the terms and values. + :param col_max: the maximum width of the first column. + :param col_spacing: the number of spaces between the first and + second column. + """ + rows = list(rows) + widths = measure_table(rows) + if len(widths) != 2: + raise TypeError("Expected two columns for definition list") + + first_col = min(widths[0], col_max) + col_spacing + + for first, second in iter_rows(rows, len(widths)): + self.write(f"{'':>{self.current_indent}}{first}") + if not second: + self.write("\n") + continue + if term_len(first) <= first_col - col_spacing: + self.write(" " * (first_col - term_len(first))) + else: + self.write("\n") + self.write(" " * (first_col + self.current_indent)) + + text_width = max(self.width - first_col - 2, 10) + wrapped_text = wrap_text(second, text_width, preserve_paragraphs=True) + lines = wrapped_text.splitlines() + + if lines: + self.write(f"{lines[0]}\n") + + for line in lines[1:]: + self.write(f"{'':>{first_col + self.current_indent}}{line}\n") + else: + self.write("\n") + + @contextmanager + def section(self, name: str) -> cabc.Iterator[None]: + """Helpful context manager that writes a paragraph, a heading, + and the indents. + + :param name: the section name that is written as heading. + """ + self.write_paragraph() + self.write_heading(name) + self.indent() + try: + yield + finally: + self.dedent() + + @contextmanager + def indentation(self) -> cabc.Iterator[None]: + """A context manager that increases the indentation.""" + self.indent() + try: + yield + finally: + self.dedent() + + def getvalue(self) -> str: + """Returns the buffer contents.""" + return "".join(self.buffer) + + +def join_options(options: cabc.Sequence[str]) -> tuple[str, bool]: + """Given a list of option strings this joins them in the most appropriate + way and returns them in the form ``(formatted_string, + any_prefix_is_slash)`` where the second item in the tuple is a flag that + indicates if any of the option prefixes was a slash. + """ + rv = [] + any_prefix_is_slash = False + + for opt in options: + prefix = _split_opt(opt)[0] + + if prefix == "/": + any_prefix_is_slash = True + + rv.append((len(prefix), opt)) + + rv.sort(key=lambda x: x[0]) + return ", ".join(x[1] for x in rv), any_prefix_is_slash diff --git a/venv/lib/python3.10/site-packages/click/globals.py b/venv/lib/python3.10/site-packages/click/globals.py new file mode 100644 index 0000000..a2f9172 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/globals.py @@ -0,0 +1,67 @@ +from __future__ import annotations + +import typing as t +from threading import local + +if t.TYPE_CHECKING: + from .core import Context + +_local = local() + + +@t.overload +def get_current_context(silent: t.Literal[False] = False) -> Context: ... + + +@t.overload +def get_current_context(silent: bool = ...) -> Context | None: ... + + +def get_current_context(silent: bool = False) -> Context | None: + """Returns the current click context. This can be used as a way to + access the current context object from anywhere. This is a more implicit + alternative to the :func:`pass_context` decorator. This function is + primarily useful for helpers such as :func:`echo` which might be + interested in changing its behavior based on the current context. + + To push the current context, :meth:`Context.scope` can be used. + + .. versionadded:: 5.0 + + :param silent: if set to `True` the return value is `None` if no context + is available. The default behavior is to raise a + :exc:`RuntimeError`. + """ + try: + return t.cast("Context", _local.stack[-1]) + except (AttributeError, IndexError) as e: + if not silent: + raise RuntimeError("There is no active click context.") from e + + return None + + +def push_context(ctx: Context) -> None: + """Pushes a new context to the current stack.""" + _local.__dict__.setdefault("stack", []).append(ctx) + + +def pop_context() -> None: + """Removes the top level from the stack.""" + _local.stack.pop() + + +def resolve_color_default(color: bool | None = None) -> bool | None: + """Internal helper to get the default value of the color flag. If a + value is passed it's returned unchanged, otherwise it's looked up from + the current context. + """ + if color is not None: + return color + + ctx = get_current_context(silent=True) + + if ctx is not None: + return ctx.color + + return None diff --git a/venv/lib/python3.10/site-packages/click/parser.py b/venv/lib/python3.10/site-packages/click/parser.py new file mode 100644 index 0000000..1ea1f71 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/parser.py @@ -0,0 +1,532 @@ +""" +This module started out as largely a copy paste from the stdlib's +optparse module with the features removed that we do not need from +optparse because we implement them in Click on a higher level (for +instance type handling, help formatting and a lot more). + +The plan is to remove more and more from here over time. + +The reason this is a different module and not optparse from the stdlib +is that there are differences in 2.x and 3.x about the error messages +generated and optparse in the stdlib uses gettext for no good reason +and might cause us issues. + +Click uses parts of optparse written by Gregory P. Ward and maintained +by the Python Software Foundation. This is limited to code in parser.py. + +Copyright 2001-2006 Gregory P. Ward. All rights reserved. +Copyright 2002-2006 Python Software Foundation. All rights reserved. +""" + +# This code uses parts of optparse written by Gregory P. Ward and +# maintained by the Python Software Foundation. +# Copyright 2001-2006 Gregory P. Ward +# Copyright 2002-2006 Python Software Foundation +from __future__ import annotations + +import collections.abc as cabc +import typing as t +from collections import deque +from gettext import gettext as _ +from gettext import ngettext + +from ._utils import FLAG_NEEDS_VALUE +from ._utils import UNSET +from .exceptions import BadArgumentUsage +from .exceptions import BadOptionUsage +from .exceptions import NoSuchOption +from .exceptions import UsageError + +if t.TYPE_CHECKING: + from ._utils import T_FLAG_NEEDS_VALUE + from ._utils import T_UNSET + from .core import Argument as CoreArgument + from .core import Context + from .core import Option as CoreOption + from .core import Parameter as CoreParameter + +V = t.TypeVar("V") + + +def _unpack_args( + args: cabc.Sequence[str], nargs_spec: cabc.Sequence[int] +) -> tuple[cabc.Sequence[str | cabc.Sequence[str | None] | None], list[str]]: + """Given an iterable of arguments and an iterable of nargs specifications, + it returns a tuple with all the unpacked arguments at the first index + and all remaining arguments as the second. + + The nargs specification is the number of arguments that should be consumed + or `-1` to indicate that this position should eat up all the remainders. + + Missing items are filled with ``UNSET``. + """ + args = deque(args) + nargs_spec = deque(nargs_spec) + rv: list[str | tuple[str | T_UNSET, ...] | T_UNSET] = [] + spos: int | None = None + + def _fetch(c: deque[V]) -> V | T_UNSET: + try: + if spos is None: + return c.popleft() + else: + return c.pop() + except IndexError: + return UNSET + + while nargs_spec: + nargs = _fetch(nargs_spec) + + if nargs is None: + continue + + if nargs == 1: + rv.append(_fetch(args)) # type: ignore[arg-type] + elif nargs > 1: + x = [_fetch(args) for _ in range(nargs)] + + # If we're reversed, we're pulling in the arguments in reverse, + # so we need to turn them around. + if spos is not None: + x.reverse() + + rv.append(tuple(x)) + elif nargs < 0: + if spos is not None: + raise TypeError("Cannot have two nargs < 0") + + spos = len(rv) + rv.append(UNSET) + + # spos is the position of the wildcard (star). If it's not `None`, + # we fill it with the remainder. + if spos is not None: + rv[spos] = tuple(args) + args = [] + rv[spos + 1 :] = reversed(rv[spos + 1 :]) + + return tuple(rv), list(args) + + +def _split_opt(opt: str) -> tuple[str, str]: + first = opt[:1] + if first.isalnum(): + return "", opt + if opt[1:2] == first: + return opt[:2], opt[2:] + return first, opt[1:] + + +def _normalize_opt(opt: str, ctx: Context | None) -> str: + if ctx is None or ctx.token_normalize_func is None: + return opt + prefix, opt = _split_opt(opt) + return f"{prefix}{ctx.token_normalize_func(opt)}" + + +class _Option: + def __init__( + self, + obj: CoreOption, + opts: cabc.Sequence[str], + dest: str | None, + action: str | None = None, + nargs: int = 1, + const: t.Any | None = None, + ): + self._short_opts = [] + self._long_opts = [] + self.prefixes: set[str] = set() + + for opt in opts: + prefix, value = _split_opt(opt) + if not prefix: + raise ValueError(f"Invalid start character for option ({opt})") + self.prefixes.add(prefix[0]) + if len(prefix) == 1 and len(value) == 1: + self._short_opts.append(opt) + else: + self._long_opts.append(opt) + self.prefixes.add(prefix) + + if action is None: + action = "store" + + self.dest = dest + self.action = action + self.nargs = nargs + self.const = const + self.obj = obj + + @property + def takes_value(self) -> bool: + return self.action in ("store", "append") + + def process(self, value: t.Any, state: _ParsingState) -> None: + if self.action == "store": + state.opts[self.dest] = value # type: ignore + elif self.action == "store_const": + state.opts[self.dest] = self.const # type: ignore + elif self.action == "append": + state.opts.setdefault(self.dest, []).append(value) # type: ignore + elif self.action == "append_const": + state.opts.setdefault(self.dest, []).append(self.const) # type: ignore + elif self.action == "count": + state.opts[self.dest] = state.opts.get(self.dest, 0) + 1 # type: ignore + else: + raise ValueError(f"unknown action '{self.action}'") + state.order.append(self.obj) + + +class _Argument: + def __init__(self, obj: CoreArgument, dest: str | None, nargs: int = 1): + self.dest = dest + self.nargs = nargs + self.obj = obj + + def process( + self, + value: str | cabc.Sequence[str | None] | None | T_UNSET, + state: _ParsingState, + ) -> None: + if self.nargs > 1: + assert isinstance(value, cabc.Sequence) + holes = sum(1 for x in value if x is UNSET) + if holes == len(value): + value = UNSET + elif holes != 0: + raise BadArgumentUsage( + _("Argument {name!r} takes {nargs} values.").format( + name=self.dest, nargs=self.nargs + ) + ) + + # We failed to collect any argument value so we consider the argument as unset. + if value == (): + value = UNSET + + state.opts[self.dest] = value # type: ignore + state.order.append(self.obj) + + +class _ParsingState: + def __init__(self, rargs: list[str]) -> None: + self.opts: dict[str, t.Any] = {} + self.largs: list[str] = [] + self.rargs = rargs + self.order: list[CoreParameter] = [] + + +class _OptionParser: + """The option parser is an internal class that is ultimately used to + parse options and arguments. It's modelled after optparse and brings + a similar but vastly simplified API. It should generally not be used + directly as the high level Click classes wrap it for you. + + It's not nearly as extensible as optparse or argparse as it does not + implement features that are implemented on a higher level (such as + types or defaults). + + :param ctx: optionally the :class:`~click.Context` where this parser + should go with. + + .. deprecated:: 8.2 + Will be removed in Click 9.0. + """ + + def __init__(self, ctx: Context | None = None) -> None: + #: The :class:`~click.Context` for this parser. This might be + #: `None` for some advanced use cases. + self.ctx = ctx + #: This controls how the parser deals with interspersed arguments. + #: If this is set to `False`, the parser will stop on the first + #: non-option. Click uses this to implement nested subcommands + #: safely. + self.allow_interspersed_args: bool = True + #: This tells the parser how to deal with unknown options. By + #: default it will error out (which is sensible), but there is a + #: second mode where it will ignore it and continue processing + #: after shifting all the unknown options into the resulting args. + self.ignore_unknown_options: bool = False + + if ctx is not None: + self.allow_interspersed_args = ctx.allow_interspersed_args + self.ignore_unknown_options = ctx.ignore_unknown_options + + self._short_opt: dict[str, _Option] = {} + self._long_opt: dict[str, _Option] = {} + self._opt_prefixes = {"-", "--"} + self._args: list[_Argument] = [] + + def add_option( + self, + obj: CoreOption, + opts: cabc.Sequence[str], + dest: str | None, + action: str | None = None, + nargs: int = 1, + const: t.Any | None = None, + ) -> None: + """Adds a new option named `dest` to the parser. The destination + is not inferred (unlike with optparse) and needs to be explicitly + provided. Action can be any of ``store``, ``store_const``, + ``append``, ``append_const`` or ``count``. + + The `obj` can be used to identify the option in the order list + that is returned from the parser. + """ + opts = [_normalize_opt(opt, self.ctx) for opt in opts] + option = _Option(obj, opts, dest, action=action, nargs=nargs, const=const) + self._opt_prefixes.update(option.prefixes) + for opt in option._short_opts: + self._short_opt[opt] = option + for opt in option._long_opts: + self._long_opt[opt] = option + + def add_argument(self, obj: CoreArgument, dest: str | None, nargs: int = 1) -> None: + """Adds a positional argument named `dest` to the parser. + + The `obj` can be used to identify the option in the order list + that is returned from the parser. + """ + self._args.append(_Argument(obj, dest=dest, nargs=nargs)) + + def parse_args( + self, args: list[str] + ) -> tuple[dict[str, t.Any], list[str], list[CoreParameter]]: + """Parses positional arguments and returns ``(values, args, order)`` + for the parsed options and arguments as well as the leftover + arguments if there are any. The order is a list of objects as they + appear on the command line. If arguments appear multiple times they + will be memorized multiple times as well. + """ + state = _ParsingState(args) + try: + self._process_args_for_options(state) + self._process_args_for_args(state) + except UsageError: + if self.ctx is None or not self.ctx.resilient_parsing: + raise + return state.opts, state.largs, state.order + + def _process_args_for_args(self, state: _ParsingState) -> None: + pargs, args = _unpack_args( + state.largs + state.rargs, [x.nargs for x in self._args] + ) + + for idx, arg in enumerate(self._args): + arg.process(pargs[idx], state) + + state.largs = args + state.rargs = [] + + def _process_args_for_options(self, state: _ParsingState) -> None: + while state.rargs: + arg = state.rargs.pop(0) + arglen = len(arg) + # Double dashes always handled explicitly regardless of what + # prefixes are valid. + if arg == "--": + return + elif arg[:1] in self._opt_prefixes and arglen > 1: + self._process_opts(arg, state) + elif self.allow_interspersed_args: + state.largs.append(arg) + else: + state.rargs.insert(0, arg) + return + + # Say this is the original argument list: + # [arg0, arg1, ..., arg(i-1), arg(i), arg(i+1), ..., arg(N-1)] + # ^ + # (we are about to process arg(i)). + # + # Then rargs is [arg(i), ..., arg(N-1)] and largs is a *subset* of + # [arg0, ..., arg(i-1)] (any options and their arguments will have + # been removed from largs). + # + # The while loop will usually consume 1 or more arguments per pass. + # If it consumes 1 (eg. arg is an option that takes no arguments), + # then after _process_arg() is done the situation is: + # + # largs = subset of [arg0, ..., arg(i)] + # rargs = [arg(i+1), ..., arg(N-1)] + # + # If allow_interspersed_args is false, largs will always be + # *empty* -- still a subset of [arg0, ..., arg(i-1)], but + # not a very interesting subset! + + def _match_long_opt( + self, opt: str, explicit_value: str | None, state: _ParsingState + ) -> None: + if opt not in self._long_opt: + from difflib import get_close_matches + + possibilities = get_close_matches(opt, self._long_opt) + raise NoSuchOption(opt, possibilities=possibilities, ctx=self.ctx) + + option = self._long_opt[opt] + if option.takes_value: + # At this point it's safe to modify rargs by injecting the + # explicit value, because no exception is raised in this + # branch. This means that the inserted value will be fully + # consumed. + if explicit_value is not None: + state.rargs.insert(0, explicit_value) + + value = self._get_value_from_state(opt, option, state) + + elif explicit_value is not None: + raise BadOptionUsage( + opt, _("Option {name!r} does not take a value.").format(name=opt) + ) + + else: + value = UNSET + + option.process(value, state) + + def _match_short_opt(self, arg: str, state: _ParsingState) -> None: + stop = False + i = 1 + prefix = arg[0] + unknown_options = [] + + for ch in arg[1:]: + opt = _normalize_opt(f"{prefix}{ch}", self.ctx) + option = self._short_opt.get(opt) + i += 1 + + if not option: + if self.ignore_unknown_options: + unknown_options.append(ch) + continue + raise NoSuchOption(opt, ctx=self.ctx) + if option.takes_value: + # Any characters left in arg? Pretend they're the + # next arg, and stop consuming characters of arg. + if i < len(arg): + state.rargs.insert(0, arg[i:]) + stop = True + + value = self._get_value_from_state(opt, option, state) + + else: + value = UNSET + + option.process(value, state) + + if stop: + break + + # If we got any unknown options we recombine the string of the + # remaining options and re-attach the prefix, then report that + # to the state as new larg. This way there is basic combinatorics + # that can be achieved while still ignoring unknown arguments. + if self.ignore_unknown_options and unknown_options: + state.largs.append(f"{prefix}{''.join(unknown_options)}") + + def _get_value_from_state( + self, option_name: str, option: _Option, state: _ParsingState + ) -> str | cabc.Sequence[str] | T_FLAG_NEEDS_VALUE: + nargs = option.nargs + + value: str | cabc.Sequence[str] | T_FLAG_NEEDS_VALUE + + if len(state.rargs) < nargs: + if option.obj._flag_needs_value: + # Option allows omitting the value. + value = FLAG_NEEDS_VALUE + else: + raise BadOptionUsage( + option_name, + ngettext( + "Option {name!r} requires an argument.", + "Option {name!r} requires {nargs} arguments.", + nargs, + ).format(name=option_name, nargs=nargs), + ) + elif nargs == 1: + next_rarg = state.rargs[0] + + if ( + option.obj._flag_needs_value + and isinstance(next_rarg, str) + and next_rarg[:1] in self._opt_prefixes + and len(next_rarg) > 1 + ): + # The next arg looks like the start of an option, don't + # use it as the value if omitting the value is allowed. + value = FLAG_NEEDS_VALUE + else: + value = state.rargs.pop(0) + else: + value = tuple(state.rargs[:nargs]) + del state.rargs[:nargs] + + return value + + def _process_opts(self, arg: str, state: _ParsingState) -> None: + explicit_value = None + # Long option handling happens in two parts. The first part is + # supporting explicitly attached values. In any case, we will try + # to long match the option first. + if "=" in arg: + long_opt, explicit_value = arg.split("=", 1) + else: + long_opt = arg + norm_long_opt = _normalize_opt(long_opt, self.ctx) + + # At this point we will match the (assumed) long option through + # the long option matching code. Note that this allows options + # like "-foo" to be matched as long options. + try: + self._match_long_opt(norm_long_opt, explicit_value, state) + except NoSuchOption: + # At this point the long option matching failed, and we need + # to try with short options. However there is a special rule + # which says, that if we have a two character options prefix + # (applies to "--foo" for instance), we do not dispatch to the + # short option code and will instead raise the no option + # error. + if arg[:2] not in self._opt_prefixes: + self._match_short_opt(arg, state) + return + + if not self.ignore_unknown_options: + raise + + state.largs.append(arg) + + +def __getattr__(name: str) -> object: + import warnings + + if name in { + "OptionParser", + "Argument", + "Option", + "split_opt", + "normalize_opt", + "ParsingState", + }: + warnings.warn( + f"'parser.{name}' is deprecated and will be removed in Click 9.0." + " The old parser is available in 'optparse'.", + DeprecationWarning, + stacklevel=2, + ) + return globals()[f"_{name}"] + + if name == "split_arg_string": + from .shell_completion import split_arg_string + + warnings.warn( + "Importing 'parser.split_arg_string' is deprecated, it will only be" + " available in 'shell_completion' in Click 9.0.", + DeprecationWarning, + stacklevel=2, + ) + return split_arg_string + + raise AttributeError(name) diff --git a/venv/lib/python3.10/site-packages/click/py.typed b/venv/lib/python3.10/site-packages/click/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/click/shell_completion.py b/venv/lib/python3.10/site-packages/click/shell_completion.py new file mode 100644 index 0000000..8f1564c --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/shell_completion.py @@ -0,0 +1,667 @@ +from __future__ import annotations + +import collections.abc as cabc +import os +import re +import typing as t +from gettext import gettext as _ + +from .core import Argument +from .core import Command +from .core import Context +from .core import Group +from .core import Option +from .core import Parameter +from .core import ParameterSource +from .utils import echo + + +def shell_complete( + cli: Command, + ctx_args: cabc.MutableMapping[str, t.Any], + prog_name: str, + complete_var: str, + instruction: str, +) -> int: + """Perform shell completion for the given CLI program. + + :param cli: Command being called. + :param ctx_args: Extra arguments to pass to + ``cli.make_context``. + :param prog_name: Name of the executable in the shell. + :param complete_var: Name of the environment variable that holds + the completion instruction. + :param instruction: Value of ``complete_var`` with the completion + instruction and shell, in the form ``instruction_shell``. + :return: Status code to exit with. + """ + shell, _, instruction = instruction.partition("_") + comp_cls = get_completion_class(shell) + + if comp_cls is None: + return 1 + + comp = comp_cls(cli, ctx_args, prog_name, complete_var) + + if instruction == "source": + echo(comp.source()) + return 0 + + if instruction == "complete": + echo(comp.complete()) + return 0 + + return 1 + + +class CompletionItem: + """Represents a completion value and metadata about the value. The + default metadata is ``type`` to indicate special shell handling, + and ``help`` if a shell supports showing a help string next to the + value. + + Arbitrary parameters can be passed when creating the object, and + accessed using ``item.attr``. If an attribute wasn't passed, + accessing it returns ``None``. + + :param value: The completion suggestion. + :param type: Tells the shell script to provide special completion + support for the type. Click uses ``"dir"`` and ``"file"``. + :param help: String shown next to the value if supported. + :param kwargs: Arbitrary metadata. The built-in implementations + don't use this, but custom type completions paired with custom + shell support could use it. + """ + + __slots__ = ("value", "type", "help", "_info") + + def __init__( + self, + value: t.Any, + type: str = "plain", + help: str | None = None, + **kwargs: t.Any, + ) -> None: + self.value: t.Any = value + self.type: str = type + self.help: str | None = help + self._info = kwargs + + def __getattr__(self, name: str) -> t.Any: + return self._info.get(name) + + +# Only Bash >= 4.4 has the nosort option. +_SOURCE_BASH = """\ +%(complete_func)s() { + local IFS=$'\\n' + local response + + response=$(env COMP_WORDS="${COMP_WORDS[*]}" COMP_CWORD=$COMP_CWORD \ +%(complete_var)s=bash_complete $1) + + for completion in $response; do + IFS=',' read type value <<< "$completion" + + if [[ $type == 'dir' ]]; then + COMPREPLY=() + compopt -o dirnames + elif [[ $type == 'file' ]]; then + COMPREPLY=() + compopt -o default + elif [[ $type == 'plain' ]]; then + COMPREPLY+=($value) + fi + done + + return 0 +} + +%(complete_func)s_setup() { + complete -o nosort -F %(complete_func)s %(prog_name)s +} + +%(complete_func)s_setup; +""" + +# See ZshComplete.format_completion below, and issue #2703, before +# changing this script. +# +# (TL;DR: _describe is picky about the format, but this Zsh script snippet +# is already widely deployed. So freeze this script, and use clever-ish +# handling of colons in ZshComplet.format_completion.) +_SOURCE_ZSH = """\ +#compdef %(prog_name)s + +%(complete_func)s() { + local -a completions + local -a completions_with_descriptions + local -a response + (( ! $+commands[%(prog_name)s] )) && return 1 + + response=("${(@f)$(env COMP_WORDS="${words[*]}" COMP_CWORD=$((CURRENT-1)) \ +%(complete_var)s=zsh_complete %(prog_name)s)}") + + for type key descr in ${response}; do + if [[ "$type" == "plain" ]]; then + if [[ "$descr" == "_" ]]; then + completions+=("$key") + else + completions_with_descriptions+=("$key":"$descr") + fi + elif [[ "$type" == "dir" ]]; then + _path_files -/ + elif [[ "$type" == "file" ]]; then + _path_files -f + fi + done + + if [ -n "$completions_with_descriptions" ]; then + _describe -V unsorted completions_with_descriptions -U + fi + + if [ -n "$completions" ]; then + compadd -U -V unsorted -a completions + fi +} + +if [[ $zsh_eval_context[-1] == loadautofunc ]]; then + # autoload from fpath, call function directly + %(complete_func)s "$@" +else + # eval/source/. command, register function for later + compdef %(complete_func)s %(prog_name)s +fi +""" + +_SOURCE_FISH = """\ +function %(complete_func)s; + set -l response (env %(complete_var)s=fish_complete COMP_WORDS=(commandline -cp) \ +COMP_CWORD=(commandline -t) %(prog_name)s); + + for completion in $response; + set -l metadata (string split "," $completion); + + if test $metadata[1] = "dir"; + __fish_complete_directories $metadata[2]; + else if test $metadata[1] = "file"; + __fish_complete_path $metadata[2]; + else if test $metadata[1] = "plain"; + echo $metadata[2]; + end; + end; +end; + +complete --no-files --command %(prog_name)s --arguments \ +"(%(complete_func)s)"; +""" + + +class ShellComplete: + """Base class for providing shell completion support. A subclass for + a given shell will override attributes and methods to implement the + completion instructions (``source`` and ``complete``). + + :param cli: Command being called. + :param prog_name: Name of the executable in the shell. + :param complete_var: Name of the environment variable that holds + the completion instruction. + + .. versionadded:: 8.0 + """ + + name: t.ClassVar[str] + """Name to register the shell as with :func:`add_completion_class`. + This is used in completion instructions (``{name}_source`` and + ``{name}_complete``). + """ + + source_template: t.ClassVar[str] + """Completion script template formatted by :meth:`source`. This must + be provided by subclasses. + """ + + def __init__( + self, + cli: Command, + ctx_args: cabc.MutableMapping[str, t.Any], + prog_name: str, + complete_var: str, + ) -> None: + self.cli = cli + self.ctx_args = ctx_args + self.prog_name = prog_name + self.complete_var = complete_var + + @property + def func_name(self) -> str: + """The name of the shell function defined by the completion + script. + """ + safe_name = re.sub(r"\W*", "", self.prog_name.replace("-", "_"), flags=re.ASCII) + return f"_{safe_name}_completion" + + def source_vars(self) -> dict[str, t.Any]: + """Vars for formatting :attr:`source_template`. + + By default this provides ``complete_func``, ``complete_var``, + and ``prog_name``. + """ + return { + "complete_func": self.func_name, + "complete_var": self.complete_var, + "prog_name": self.prog_name, + } + + def source(self) -> str: + """Produce the shell script that defines the completion + function. By default this ``%``-style formats + :attr:`source_template` with the dict returned by + :meth:`source_vars`. + """ + return self.source_template % self.source_vars() + + def get_completion_args(self) -> tuple[list[str], str]: + """Use the env vars defined by the shell script to return a + tuple of ``args, incomplete``. This must be implemented by + subclasses. + """ + raise NotImplementedError + + def get_completions(self, args: list[str], incomplete: str) -> list[CompletionItem]: + """Determine the context and last complete command or parameter + from the complete args. Call that object's ``shell_complete`` + method to get the completions for the incomplete value. + + :param args: List of complete args before the incomplete value. + :param incomplete: Value being completed. May be empty. + """ + ctx = _resolve_context(self.cli, self.ctx_args, self.prog_name, args) + obj, incomplete = _resolve_incomplete(ctx, args, incomplete) + return obj.shell_complete(ctx, incomplete) + + def format_completion(self, item: CompletionItem) -> str: + """Format a completion item into the form recognized by the + shell script. This must be implemented by subclasses. + + :param item: Completion item to format. + """ + raise NotImplementedError + + def complete(self) -> str: + """Produce the completion data to send back to the shell. + + By default this calls :meth:`get_completion_args`, gets the + completions, then calls :meth:`format_completion` for each + completion. + """ + args, incomplete = self.get_completion_args() + completions = self.get_completions(args, incomplete) + out = [self.format_completion(item) for item in completions] + return "\n".join(out) + + +class BashComplete(ShellComplete): + """Shell completion for Bash.""" + + name = "bash" + source_template = _SOURCE_BASH + + @staticmethod + def _check_version() -> None: + import shutil + import subprocess + + bash_exe = shutil.which("bash") + + if bash_exe is None: + match = None + else: + output = subprocess.run( + [bash_exe, "--norc", "-c", 'echo "${BASH_VERSION}"'], + stdout=subprocess.PIPE, + ) + match = re.search(r"^(\d+)\.(\d+)\.\d+", output.stdout.decode()) + + if match is not None: + major, minor = match.groups() + + if major < "4" or major == "4" and minor < "4": + echo( + _( + "Shell completion is not supported for Bash" + " versions older than 4.4." + ), + err=True, + ) + else: + echo( + _("Couldn't detect Bash version, shell completion is not supported."), + err=True, + ) + + def source(self) -> str: + self._check_version() + return super().source() + + def get_completion_args(self) -> tuple[list[str], str]: + cwords = split_arg_string(os.environ["COMP_WORDS"]) + cword = int(os.environ["COMP_CWORD"]) + args = cwords[1:cword] + + try: + incomplete = cwords[cword] + except IndexError: + incomplete = "" + + return args, incomplete + + def format_completion(self, item: CompletionItem) -> str: + return f"{item.type},{item.value}" + + +class ZshComplete(ShellComplete): + """Shell completion for Zsh.""" + + name = "zsh" + source_template = _SOURCE_ZSH + + def get_completion_args(self) -> tuple[list[str], str]: + cwords = split_arg_string(os.environ["COMP_WORDS"]) + cword = int(os.environ["COMP_CWORD"]) + args = cwords[1:cword] + + try: + incomplete = cwords[cword] + except IndexError: + incomplete = "" + + return args, incomplete + + def format_completion(self, item: CompletionItem) -> str: + help_ = item.help or "_" + # The zsh completion script uses `_describe` on items with help + # texts (which splits the item help from the item value at the + # first unescaped colon) and `compadd` on items without help + # text (which uses the item value as-is and does not support + # colon escaping). So escape colons in the item value if and + # only if the item help is not the sentinel "_" value, as used + # by the completion script. + # + # (The zsh completion script is potentially widely deployed, and + # thus harder to fix than this method.) + # + # See issue #1812 and issue #2703 for further context. + value = item.value.replace(":", r"\:") if help_ != "_" else item.value + return f"{item.type}\n{value}\n{help_}" + + +class FishComplete(ShellComplete): + """Shell completion for Fish.""" + + name = "fish" + source_template = _SOURCE_FISH + + def get_completion_args(self) -> tuple[list[str], str]: + cwords = split_arg_string(os.environ["COMP_WORDS"]) + incomplete = os.environ["COMP_CWORD"] + if incomplete: + incomplete = split_arg_string(incomplete)[0] + args = cwords[1:] + + # Fish stores the partial word in both COMP_WORDS and + # COMP_CWORD, remove it from complete args. + if incomplete and args and args[-1] == incomplete: + args.pop() + + return args, incomplete + + def format_completion(self, item: CompletionItem) -> str: + if item.help: + return f"{item.type},{item.value}\t{item.help}" + + return f"{item.type},{item.value}" + + +ShellCompleteType = t.TypeVar("ShellCompleteType", bound="type[ShellComplete]") + + +_available_shells: dict[str, type[ShellComplete]] = { + "bash": BashComplete, + "fish": FishComplete, + "zsh": ZshComplete, +} + + +def add_completion_class( + cls: ShellCompleteType, name: str | None = None +) -> ShellCompleteType: + """Register a :class:`ShellComplete` subclass under the given name. + The name will be provided by the completion instruction environment + variable during completion. + + :param cls: The completion class that will handle completion for the + shell. + :param name: Name to register the class under. Defaults to the + class's ``name`` attribute. + """ + if name is None: + name = cls.name + + _available_shells[name] = cls + + return cls + + +def get_completion_class(shell: str) -> type[ShellComplete] | None: + """Look up a registered :class:`ShellComplete` subclass by the name + provided by the completion instruction environment variable. If the + name isn't registered, returns ``None``. + + :param shell: Name the class is registered under. + """ + return _available_shells.get(shell) + + +def split_arg_string(string: str) -> list[str]: + """Split an argument string as with :func:`shlex.split`, but don't + fail if the string is incomplete. Ignores a missing closing quote or + incomplete escape sequence and uses the partial token as-is. + + .. code-block:: python + + split_arg_string("example 'my file") + ["example", "my file"] + + split_arg_string("example my\\") + ["example", "my"] + + :param string: String to split. + + .. versionchanged:: 8.2 + Moved to ``shell_completion`` from ``parser``. + """ + import shlex + + lex = shlex.shlex(string, posix=True) + lex.whitespace_split = True + lex.commenters = "" + out = [] + + try: + for token in lex: + out.append(token) + except ValueError: + # Raised when end-of-string is reached in an invalid state. Use + # the partial token as-is. The quote or escape character is in + # lex.state, not lex.token. + out.append(lex.token) + + return out + + +def _is_incomplete_argument(ctx: Context, param: Parameter) -> bool: + """Determine if the given parameter is an argument that can still + accept values. + + :param ctx: Invocation context for the command represented by the + parsed complete args. + :param param: Argument object being checked. + """ + if not isinstance(param, Argument): + return False + + assert param.name is not None + # Will be None if expose_value is False. + value = ctx.params.get(param.name) + return ( + param.nargs == -1 + or ctx.get_parameter_source(param.name) is not ParameterSource.COMMANDLINE + or ( + param.nargs > 1 + and isinstance(value, (tuple, list)) + and len(value) < param.nargs + ) + ) + + +def _start_of_option(ctx: Context, value: str) -> bool: + """Check if the value looks like the start of an option.""" + if not value: + return False + + c = value[0] + return c in ctx._opt_prefixes + + +def _is_incomplete_option(ctx: Context, args: list[str], param: Parameter) -> bool: + """Determine if the given parameter is an option that needs a value. + + :param args: List of complete args before the incomplete value. + :param param: Option object being checked. + """ + if not isinstance(param, Option): + return False + + if param.is_flag or param.count: + return False + + last_option = None + + for index, arg in enumerate(reversed(args)): + if index + 1 > param.nargs: + break + + if _start_of_option(ctx, arg): + last_option = arg + break + + return last_option is not None and last_option in param.opts + + +def _resolve_context( + cli: Command, + ctx_args: cabc.MutableMapping[str, t.Any], + prog_name: str, + args: list[str], +) -> Context: + """Produce the context hierarchy starting with the command and + traversing the complete arguments. This only follows the commands, + it doesn't trigger input prompts or callbacks. + + :param cli: Command being called. + :param prog_name: Name of the executable in the shell. + :param args: List of complete args before the incomplete value. + """ + ctx_args["resilient_parsing"] = True + with cli.make_context(prog_name, args.copy(), **ctx_args) as ctx: + args = ctx._protected_args + ctx.args + + while args: + command = ctx.command + + if isinstance(command, Group): + if not command.chain: + name, cmd, args = command.resolve_command(ctx, args) + + if cmd is None: + return ctx + + with cmd.make_context( + name, args, parent=ctx, resilient_parsing=True + ) as sub_ctx: + ctx = sub_ctx + args = ctx._protected_args + ctx.args + else: + sub_ctx = ctx + + while args: + name, cmd, args = command.resolve_command(ctx, args) + + if cmd is None: + return ctx + + with cmd.make_context( + name, + args, + parent=ctx, + allow_extra_args=True, + allow_interspersed_args=False, + resilient_parsing=True, + ) as sub_sub_ctx: + sub_ctx = sub_sub_ctx + args = sub_ctx.args + + ctx = sub_ctx + args = [*sub_ctx._protected_args, *sub_ctx.args] + else: + break + + return ctx + + +def _resolve_incomplete( + ctx: Context, args: list[str], incomplete: str +) -> tuple[Command | Parameter, str]: + """Find the Click object that will handle the completion of the + incomplete value. Return the object and the incomplete value. + + :param ctx: Invocation context for the command represented by + the parsed complete args. + :param args: List of complete args before the incomplete value. + :param incomplete: Value being completed. May be empty. + """ + # Different shells treat an "=" between a long option name and + # value differently. Might keep the value joined, return the "=" + # as a separate item, or return the split name and value. Always + # split and discard the "=" to make completion easier. + if incomplete == "=": + incomplete = "" + elif "=" in incomplete and _start_of_option(ctx, incomplete): + name, _, incomplete = incomplete.partition("=") + args.append(name) + + # The "--" marker tells Click to stop treating values as options + # even if they start with the option character. If it hasn't been + # given and the incomplete arg looks like an option, the current + # command will provide option name completions. + if "--" not in args and _start_of_option(ctx, incomplete): + return ctx.command, incomplete + + params = ctx.command.get_params(ctx) + + # If the last complete arg is an option name with an incomplete + # value, the option will provide value completions. + for param in params: + if _is_incomplete_option(ctx, args, param): + return param, incomplete + + # It's not an option name or value. The first argument without a + # parsed value will provide value completions. + for param in params: + if _is_incomplete_argument(ctx, param): + return param, incomplete + + # There were no unparsed arguments, the command may be a group that + # will provide command name completions. + return ctx.command, incomplete diff --git a/venv/lib/python3.10/site-packages/click/termui.py b/venv/lib/python3.10/site-packages/click/termui.py new file mode 100644 index 0000000..2e98a07 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/termui.py @@ -0,0 +1,883 @@ +from __future__ import annotations + +import collections.abc as cabc +import inspect +import io +import itertools +import sys +import typing as t +from contextlib import AbstractContextManager +from gettext import gettext as _ + +from ._compat import isatty +from ._compat import strip_ansi +from .exceptions import Abort +from .exceptions import UsageError +from .globals import resolve_color_default +from .types import Choice +from .types import convert_type +from .types import ParamType +from .utils import echo +from .utils import LazyFile + +if t.TYPE_CHECKING: + from ._termui_impl import ProgressBar + +V = t.TypeVar("V") + +# The prompt functions to use. The doc tools currently override these +# functions to customize how they work. +visible_prompt_func: t.Callable[[str], str] = input + +_ansi_colors = { + "black": 30, + "red": 31, + "green": 32, + "yellow": 33, + "blue": 34, + "magenta": 35, + "cyan": 36, + "white": 37, + "reset": 39, + "bright_black": 90, + "bright_red": 91, + "bright_green": 92, + "bright_yellow": 93, + "bright_blue": 94, + "bright_magenta": 95, + "bright_cyan": 96, + "bright_white": 97, +} +_ansi_reset_all = "\033[0m" + + +def hidden_prompt_func(prompt: str) -> str: + import getpass + + return getpass.getpass(prompt) + + +def _build_prompt( + text: str, + suffix: str, + show_default: bool = False, + default: t.Any | None = None, + show_choices: bool = True, + type: ParamType | None = None, +) -> str: + prompt = text + if type is not None and show_choices and isinstance(type, Choice): + prompt += f" ({', '.join(map(str, type.choices))})" + if default is not None and show_default: + prompt = f"{prompt} [{_format_default(default)}]" + return f"{prompt}{suffix}" + + +def _format_default(default: t.Any) -> t.Any: + if isinstance(default, (io.IOBase, LazyFile)) and hasattr(default, "name"): + return default.name + + return default + + +def prompt( + text: str, + default: t.Any | None = None, + hide_input: bool = False, + confirmation_prompt: bool | str = False, + type: ParamType | t.Any | None = None, + value_proc: t.Callable[[str], t.Any] | None = None, + prompt_suffix: str = ": ", + show_default: bool = True, + err: bool = False, + show_choices: bool = True, +) -> t.Any: + """Prompts a user for input. This is a convenience function that can + be used to prompt a user for input later. + + If the user aborts the input by sending an interrupt signal, this + function will catch it and raise a :exc:`Abort` exception. + + :param text: the text to show for the prompt. + :param default: the default value to use if no input happens. If this + is not given it will prompt until it's aborted. + :param hide_input: if this is set to true then the input value will + be hidden. + :param confirmation_prompt: Prompt a second time to confirm the + value. Can be set to a string instead of ``True`` to customize + the message. + :param type: the type to use to check the value against. + :param value_proc: if this parameter is provided it's a function that + is invoked instead of the type conversion to + convert a value. + :param prompt_suffix: a suffix that should be added to the prompt. + :param show_default: shows or hides the default value in the prompt. + :param err: if set to true the file defaults to ``stderr`` instead of + ``stdout``, the same as with echo. + :param show_choices: Show or hide choices if the passed type is a Choice. + For example if type is a Choice of either day or week, + show_choices is true and text is "Group by" then the + prompt will be "Group by (day, week): ". + + .. versionchanged:: 8.3.1 + A space is no longer appended to the prompt. + + .. versionadded:: 8.0 + ``confirmation_prompt`` can be a custom string. + + .. versionadded:: 7.0 + Added the ``show_choices`` parameter. + + .. versionadded:: 6.0 + Added unicode support for cmd.exe on Windows. + + .. versionadded:: 4.0 + Added the `err` parameter. + + """ + + def prompt_func(text: str) -> str: + f = hidden_prompt_func if hide_input else visible_prompt_func + try: + # Write the prompt separately so that we get nice + # coloring through colorama on Windows + echo(text[:-1], nl=False, err=err) + # Echo the last character to stdout to work around an issue where + # readline causes backspace to clear the whole line. + return f(text[-1:]) + except (KeyboardInterrupt, EOFError): + # getpass doesn't print a newline if the user aborts input with ^C. + # Allegedly this behavior is inherited from getpass(3). + # A doc bug has been filed at https://bugs.python.org/issue24711 + if hide_input: + echo(None, err=err) + raise Abort() from None + + if value_proc is None: + value_proc = convert_type(type, default) + + prompt = _build_prompt( + text, prompt_suffix, show_default, default, show_choices, type + ) + + if confirmation_prompt: + if confirmation_prompt is True: + confirmation_prompt = _("Repeat for confirmation") + + confirmation_prompt = _build_prompt(confirmation_prompt, prompt_suffix) + + while True: + while True: + value = prompt_func(prompt) + if value: + break + elif default is not None: + value = default + break + try: + result = value_proc(value) + except UsageError as e: + if hide_input: + echo(_("Error: The value you entered was invalid."), err=err) + else: + echo(_("Error: {e.message}").format(e=e), err=err) + continue + if not confirmation_prompt: + return result + while True: + value2 = prompt_func(confirmation_prompt) + is_empty = not value and not value2 + if value2 or is_empty: + break + if value == value2: + return result + echo(_("Error: The two entered values do not match."), err=err) + + +def confirm( + text: str, + default: bool | None = False, + abort: bool = False, + prompt_suffix: str = ": ", + show_default: bool = True, + err: bool = False, +) -> bool: + """Prompts for confirmation (yes/no question). + + If the user aborts the input by sending a interrupt signal this + function will catch it and raise a :exc:`Abort` exception. + + :param text: the question to ask. + :param default: The default value to use when no input is given. If + ``None``, repeat until input is given. + :param abort: if this is set to `True` a negative answer aborts the + exception by raising :exc:`Abort`. + :param prompt_suffix: a suffix that should be added to the prompt. + :param show_default: shows or hides the default value in the prompt. + :param err: if set to true the file defaults to ``stderr`` instead of + ``stdout``, the same as with echo. + + .. versionchanged:: 8.3.1 + A space is no longer appended to the prompt. + + .. versionchanged:: 8.0 + Repeat until input is given if ``default`` is ``None``. + + .. versionadded:: 4.0 + Added the ``err`` parameter. + """ + prompt = _build_prompt( + text, + prompt_suffix, + show_default, + "y/n" if default is None else ("Y/n" if default else "y/N"), + ) + + while True: + try: + # Write the prompt separately so that we get nice + # coloring through colorama on Windows + echo(prompt[:-1], nl=False, err=err) + # Echo the last character to stdout to work around an issue where + # readline causes backspace to clear the whole line. + value = visible_prompt_func(prompt[-1:]).lower().strip() + except (KeyboardInterrupt, EOFError): + raise Abort() from None + if value in ("y", "yes"): + rv = True + elif value in ("n", "no"): + rv = False + elif default is not None and value == "": + rv = default + else: + echo(_("Error: invalid input"), err=err) + continue + break + if abort and not rv: + raise Abort() + return rv + + +def echo_via_pager( + text_or_generator: cabc.Iterable[str] | t.Callable[[], cabc.Iterable[str]] | str, + color: bool | None = None, +) -> None: + """This function takes a text and shows it via an environment specific + pager on stdout. + + .. versionchanged:: 3.0 + Added the `color` flag. + + :param text_or_generator: the text to page, or alternatively, a + generator emitting the text to page. + :param color: controls if the pager supports ANSI colors or not. The + default is autodetection. + """ + color = resolve_color_default(color) + + if inspect.isgeneratorfunction(text_or_generator): + i = t.cast("t.Callable[[], cabc.Iterable[str]]", text_or_generator)() + elif isinstance(text_or_generator, str): + i = [text_or_generator] + else: + i = iter(t.cast("cabc.Iterable[str]", text_or_generator)) + + # convert every element of i to a text type if necessary + text_generator = (el if isinstance(el, str) else str(el) for el in i) + + from ._termui_impl import pager + + return pager(itertools.chain(text_generator, "\n"), color) + + +@t.overload +def progressbar( + *, + length: int, + label: str | None = None, + hidden: bool = False, + show_eta: bool = True, + show_percent: bool | None = None, + show_pos: bool = False, + fill_char: str = "#", + empty_char: str = "-", + bar_template: str = "%(label)s [%(bar)s] %(info)s", + info_sep: str = " ", + width: int = 36, + file: t.TextIO | None = None, + color: bool | None = None, + update_min_steps: int = 1, +) -> ProgressBar[int]: ... + + +@t.overload +def progressbar( + iterable: cabc.Iterable[V] | None = None, + length: int | None = None, + label: str | None = None, + hidden: bool = False, + show_eta: bool = True, + show_percent: bool | None = None, + show_pos: bool = False, + item_show_func: t.Callable[[V | None], str | None] | None = None, + fill_char: str = "#", + empty_char: str = "-", + bar_template: str = "%(label)s [%(bar)s] %(info)s", + info_sep: str = " ", + width: int = 36, + file: t.TextIO | None = None, + color: bool | None = None, + update_min_steps: int = 1, +) -> ProgressBar[V]: ... + + +def progressbar( + iterable: cabc.Iterable[V] | None = None, + length: int | None = None, + label: str | None = None, + hidden: bool = False, + show_eta: bool = True, + show_percent: bool | None = None, + show_pos: bool = False, + item_show_func: t.Callable[[V | None], str | None] | None = None, + fill_char: str = "#", + empty_char: str = "-", + bar_template: str = "%(label)s [%(bar)s] %(info)s", + info_sep: str = " ", + width: int = 36, + file: t.TextIO | None = None, + color: bool | None = None, + update_min_steps: int = 1, +) -> ProgressBar[V]: + """This function creates an iterable context manager that can be used + to iterate over something while showing a progress bar. It will + either iterate over the `iterable` or `length` items (that are counted + up). While iteration happens, this function will print a rendered + progress bar to the given `file` (defaults to stdout) and will attempt + to calculate remaining time and more. By default, this progress bar + will not be rendered if the file is not a terminal. + + The context manager creates the progress bar. When the context + manager is entered the progress bar is already created. With every + iteration over the progress bar, the iterable passed to the bar is + advanced and the bar is updated. When the context manager exits, + a newline is printed and the progress bar is finalized on screen. + + Note: The progress bar is currently designed for use cases where the + total progress can be expected to take at least several seconds. + Because of this, the ProgressBar class object won't display + progress that is considered too fast, and progress where the time + between steps is less than a second. + + No printing must happen or the progress bar will be unintentionally + destroyed. + + Example usage:: + + with progressbar(items) as bar: + for item in bar: + do_something_with(item) + + Alternatively, if no iterable is specified, one can manually update the + progress bar through the `update()` method instead of directly + iterating over the progress bar. The update method accepts the number + of steps to increment the bar with:: + + with progressbar(length=chunks.total_bytes) as bar: + for chunk in chunks: + process_chunk(chunk) + bar.update(chunks.bytes) + + The ``update()`` method also takes an optional value specifying the + ``current_item`` at the new position. This is useful when used + together with ``item_show_func`` to customize the output for each + manual step:: + + with click.progressbar( + length=total_size, + label='Unzipping archive', + item_show_func=lambda a: a.filename + ) as bar: + for archive in zip_file: + archive.extract() + bar.update(archive.size, archive) + + :param iterable: an iterable to iterate over. If not provided the length + is required. + :param length: the number of items to iterate over. By default the + progressbar will attempt to ask the iterator about its + length, which might or might not work. If an iterable is + also provided this parameter can be used to override the + length. If an iterable is not provided the progress bar + will iterate over a range of that length. + :param label: the label to show next to the progress bar. + :param hidden: hide the progressbar. Defaults to ``False``. When no tty is + detected, it will only print the progressbar label. Setting this to + ``False`` also disables that. + :param show_eta: enables or disables the estimated time display. This is + automatically disabled if the length cannot be + determined. + :param show_percent: enables or disables the percentage display. The + default is `True` if the iterable has a length or + `False` if not. + :param show_pos: enables or disables the absolute position display. The + default is `False`. + :param item_show_func: A function called with the current item which + can return a string to show next to the progress bar. If the + function returns ``None`` nothing is shown. The current item can + be ``None``, such as when entering and exiting the bar. + :param fill_char: the character to use to show the filled part of the + progress bar. + :param empty_char: the character to use to show the non-filled part of + the progress bar. + :param bar_template: the format string to use as template for the bar. + The parameters in it are ``label`` for the label, + ``bar`` for the progress bar and ``info`` for the + info section. + :param info_sep: the separator between multiple info items (eta etc.) + :param width: the width of the progress bar in characters, 0 means full + terminal width + :param file: The file to write to. If this is not a terminal then + only the label is printed. + :param color: controls if the terminal supports ANSI colors or not. The + default is autodetection. This is only needed if ANSI + codes are included anywhere in the progress bar output + which is not the case by default. + :param update_min_steps: Render only when this many updates have + completed. This allows tuning for very fast iterators. + + .. versionadded:: 8.2 + The ``hidden`` argument. + + .. versionchanged:: 8.0 + Output is shown even if execution time is less than 0.5 seconds. + + .. versionchanged:: 8.0 + ``item_show_func`` shows the current item, not the previous one. + + .. versionchanged:: 8.0 + Labels are echoed if the output is not a TTY. Reverts a change + in 7.0 that removed all output. + + .. versionadded:: 8.0 + The ``update_min_steps`` parameter. + + .. versionadded:: 4.0 + The ``color`` parameter and ``update`` method. + + .. versionadded:: 2.0 + """ + from ._termui_impl import ProgressBar + + color = resolve_color_default(color) + return ProgressBar( + iterable=iterable, + length=length, + hidden=hidden, + show_eta=show_eta, + show_percent=show_percent, + show_pos=show_pos, + item_show_func=item_show_func, + fill_char=fill_char, + empty_char=empty_char, + bar_template=bar_template, + info_sep=info_sep, + file=file, + label=label, + width=width, + color=color, + update_min_steps=update_min_steps, + ) + + +def clear() -> None: + """Clears the terminal screen. This will have the effect of clearing + the whole visible space of the terminal and moving the cursor to the + top left. This does not do anything if not connected to a terminal. + + .. versionadded:: 2.0 + """ + if not isatty(sys.stdout): + return + + # ANSI escape \033[2J clears the screen, \033[1;1H moves the cursor + echo("\033[2J\033[1;1H", nl=False) + + +def _interpret_color(color: int | tuple[int, int, int] | str, offset: int = 0) -> str: + if isinstance(color, int): + return f"{38 + offset};5;{color:d}" + + if isinstance(color, (tuple, list)): + r, g, b = color + return f"{38 + offset};2;{r:d};{g:d};{b:d}" + + return str(_ansi_colors[color] + offset) + + +def style( + text: t.Any, + fg: int | tuple[int, int, int] | str | None = None, + bg: int | tuple[int, int, int] | str | None = None, + bold: bool | None = None, + dim: bool | None = None, + underline: bool | None = None, + overline: bool | None = None, + italic: bool | None = None, + blink: bool | None = None, + reverse: bool | None = None, + strikethrough: bool | None = None, + reset: bool = True, +) -> str: + """Styles a text with ANSI styles and returns the new string. By + default the styling is self contained which means that at the end + of the string a reset code is issued. This can be prevented by + passing ``reset=False``. + + Examples:: + + click.echo(click.style('Hello World!', fg='green')) + click.echo(click.style('ATTENTION!', blink=True)) + click.echo(click.style('Some things', reverse=True, fg='cyan')) + click.echo(click.style('More colors', fg=(255, 12, 128), bg=117)) + + Supported color names: + + * ``black`` (might be a gray) + * ``red`` + * ``green`` + * ``yellow`` (might be an orange) + * ``blue`` + * ``magenta`` + * ``cyan`` + * ``white`` (might be light gray) + * ``bright_black`` + * ``bright_red`` + * ``bright_green`` + * ``bright_yellow`` + * ``bright_blue`` + * ``bright_magenta`` + * ``bright_cyan`` + * ``bright_white`` + * ``reset`` (reset the color code only) + + If the terminal supports it, color may also be specified as: + + - An integer in the interval [0, 255]. The terminal must support + 8-bit/256-color mode. + - An RGB tuple of three integers in [0, 255]. The terminal must + support 24-bit/true-color mode. + + See https://en.wikipedia.org/wiki/ANSI_color and + https://gist.github.com/XVilka/8346728 for more information. + + :param text: the string to style with ansi codes. + :param fg: if provided this will become the foreground color. + :param bg: if provided this will become the background color. + :param bold: if provided this will enable or disable bold mode. + :param dim: if provided this will enable or disable dim mode. This is + badly supported. + :param underline: if provided this will enable or disable underline. + :param overline: if provided this will enable or disable overline. + :param italic: if provided this will enable or disable italic. + :param blink: if provided this will enable or disable blinking. + :param reverse: if provided this will enable or disable inverse + rendering (foreground becomes background and the + other way round). + :param strikethrough: if provided this will enable or disable + striking through text. + :param reset: by default a reset-all code is added at the end of the + string which means that styles do not carry over. This + can be disabled to compose styles. + + .. versionchanged:: 8.0 + A non-string ``message`` is converted to a string. + + .. versionchanged:: 8.0 + Added support for 256 and RGB color codes. + + .. versionchanged:: 8.0 + Added the ``strikethrough``, ``italic``, and ``overline`` + parameters. + + .. versionchanged:: 7.0 + Added support for bright colors. + + .. versionadded:: 2.0 + """ + if not isinstance(text, str): + text = str(text) + + bits = [] + + if fg: + try: + bits.append(f"\033[{_interpret_color(fg)}m") + except KeyError: + raise TypeError(f"Unknown color {fg!r}") from None + + if bg: + try: + bits.append(f"\033[{_interpret_color(bg, 10)}m") + except KeyError: + raise TypeError(f"Unknown color {bg!r}") from None + + if bold is not None: + bits.append(f"\033[{1 if bold else 22}m") + if dim is not None: + bits.append(f"\033[{2 if dim else 22}m") + if underline is not None: + bits.append(f"\033[{4 if underline else 24}m") + if overline is not None: + bits.append(f"\033[{53 if overline else 55}m") + if italic is not None: + bits.append(f"\033[{3 if italic else 23}m") + if blink is not None: + bits.append(f"\033[{5 if blink else 25}m") + if reverse is not None: + bits.append(f"\033[{7 if reverse else 27}m") + if strikethrough is not None: + bits.append(f"\033[{9 if strikethrough else 29}m") + bits.append(text) + if reset: + bits.append(_ansi_reset_all) + return "".join(bits) + + +def unstyle(text: str) -> str: + """Removes ANSI styling information from a string. Usually it's not + necessary to use this function as Click's echo function will + automatically remove styling if necessary. + + .. versionadded:: 2.0 + + :param text: the text to remove style information from. + """ + return strip_ansi(text) + + +def secho( + message: t.Any | None = None, + file: t.IO[t.AnyStr] | None = None, + nl: bool = True, + err: bool = False, + color: bool | None = None, + **styles: t.Any, +) -> None: + """This function combines :func:`echo` and :func:`style` into one + call. As such the following two calls are the same:: + + click.secho('Hello World!', fg='green') + click.echo(click.style('Hello World!', fg='green')) + + All keyword arguments are forwarded to the underlying functions + depending on which one they go with. + + Non-string types will be converted to :class:`str`. However, + :class:`bytes` are passed directly to :meth:`echo` without applying + style. If you want to style bytes that represent text, call + :meth:`bytes.decode` first. + + .. versionchanged:: 8.0 + A non-string ``message`` is converted to a string. Bytes are + passed through without style applied. + + .. versionadded:: 2.0 + """ + if message is not None and not isinstance(message, (bytes, bytearray)): + message = style(message, **styles) + + return echo(message, file=file, nl=nl, err=err, color=color) + + +@t.overload +def edit( + text: bytes | bytearray, + editor: str | None = None, + env: cabc.Mapping[str, str] | None = None, + require_save: bool = False, + extension: str = ".txt", +) -> bytes | None: ... + + +@t.overload +def edit( + text: str, + editor: str | None = None, + env: cabc.Mapping[str, str] | None = None, + require_save: bool = True, + extension: str = ".txt", +) -> str | None: ... + + +@t.overload +def edit( + text: None = None, + editor: str | None = None, + env: cabc.Mapping[str, str] | None = None, + require_save: bool = True, + extension: str = ".txt", + filename: str | cabc.Iterable[str] | None = None, +) -> None: ... + + +def edit( + text: str | bytes | bytearray | None = None, + editor: str | None = None, + env: cabc.Mapping[str, str] | None = None, + require_save: bool = True, + extension: str = ".txt", + filename: str | cabc.Iterable[str] | None = None, +) -> str | bytes | bytearray | None: + r"""Edits the given text in the defined editor. If an editor is given + (should be the full path to the executable but the regular operating + system search path is used for finding the executable) it overrides + the detected editor. Optionally, some environment variables can be + used. If the editor is closed without changes, `None` is returned. In + case a file is edited directly the return value is always `None` and + `require_save` and `extension` are ignored. + + If the editor cannot be opened a :exc:`UsageError` is raised. + + Note for Windows: to simplify cross-platform usage, the newlines are + automatically converted from POSIX to Windows and vice versa. As such, + the message here will have ``\n`` as newline markers. + + :param text: the text to edit. + :param editor: optionally the editor to use. Defaults to automatic + detection. + :param env: environment variables to forward to the editor. + :param require_save: if this is true, then not saving in the editor + will make the return value become `None`. + :param extension: the extension to tell the editor about. This defaults + to `.txt` but changing this might change syntax + highlighting. + :param filename: if provided it will edit this file instead of the + provided text contents. It will not use a temporary + file as an indirection in that case. If the editor supports + editing multiple files at once, a sequence of files may be + passed as well. Invoke `click.file` once per file instead + if multiple files cannot be managed at once or editing the + files serially is desired. + + .. versionchanged:: 8.2.0 + ``filename`` now accepts any ``Iterable[str]`` in addition to a ``str`` + if the ``editor`` supports editing multiple files at once. + + """ + from ._termui_impl import Editor + + ed = Editor(editor=editor, env=env, require_save=require_save, extension=extension) + + if filename is None: + return ed.edit(text) + + if isinstance(filename, str): + filename = (filename,) + + ed.edit_files(filenames=filename) + return None + + +def launch(url: str, wait: bool = False, locate: bool = False) -> int: + """This function launches the given URL (or filename) in the default + viewer application for this file type. If this is an executable, it + might launch the executable in a new session. The return value is + the exit code of the launched application. Usually, ``0`` indicates + success. + + Examples:: + + click.launch('https://click.palletsprojects.com/') + click.launch('/my/downloaded/file', locate=True) + + .. versionadded:: 2.0 + + :param url: URL or filename of the thing to launch. + :param wait: Wait for the program to exit before returning. This + only works if the launched program blocks. In particular, + ``xdg-open`` on Linux does not block. + :param locate: if this is set to `True` then instead of launching the + application associated with the URL it will attempt to + launch a file manager with the file located. This + might have weird effects if the URL does not point to + the filesystem. + """ + from ._termui_impl import open_url + + return open_url(url, wait=wait, locate=locate) + + +# If this is provided, getchar() calls into this instead. This is used +# for unittesting purposes. +_getchar: t.Callable[[bool], str] | None = None + + +def getchar(echo: bool = False) -> str: + """Fetches a single character from the terminal and returns it. This + will always return a unicode character and under certain rare + circumstances this might return more than one character. The + situations which more than one character is returned is when for + whatever reason multiple characters end up in the terminal buffer or + standard input was not actually a terminal. + + Note that this will always read from the terminal, even if something + is piped into the standard input. + + Note for Windows: in rare cases when typing non-ASCII characters, this + function might wait for a second character and then return both at once. + This is because certain Unicode characters look like special-key markers. + + .. versionadded:: 2.0 + + :param echo: if set to `True`, the character read will also show up on + the terminal. The default is to not show it. + """ + global _getchar + + if _getchar is None: + from ._termui_impl import getchar as f + + _getchar = f + + return _getchar(echo) + + +def raw_terminal() -> AbstractContextManager[int]: + from ._termui_impl import raw_terminal as f + + return f() + + +def pause(info: str | None = None, err: bool = False) -> None: + """This command stops execution and waits for the user to press any + key to continue. This is similar to the Windows batch "pause" + command. If the program is not run through a terminal, this command + will instead do nothing. + + .. versionadded:: 2.0 + + .. versionadded:: 4.0 + Added the `err` parameter. + + :param info: The message to print before pausing. Defaults to + ``"Press any key to continue..."``. + :param err: if set to message goes to ``stderr`` instead of + ``stdout``, the same as with echo. + """ + if not isatty(sys.stdin) or not isatty(sys.stdout): + return + + if info is None: + info = _("Press any key to continue...") + + try: + if info: + echo(info, nl=False, err=err) + try: + getchar() + except (KeyboardInterrupt, EOFError): + pass + finally: + if info: + echo(err=err) diff --git a/venv/lib/python3.10/site-packages/click/testing.py b/venv/lib/python3.10/site-packages/click/testing.py new file mode 100644 index 0000000..f6f60b8 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/testing.py @@ -0,0 +1,577 @@ +from __future__ import annotations + +import collections.abc as cabc +import contextlib +import io +import os +import shlex +import sys +import tempfile +import typing as t +from types import TracebackType + +from . import _compat +from . import formatting +from . import termui +from . import utils +from ._compat import _find_binary_reader + +if t.TYPE_CHECKING: + from _typeshed import ReadableBuffer + + from .core import Command + + +class EchoingStdin: + def __init__(self, input: t.BinaryIO, output: t.BinaryIO) -> None: + self._input = input + self._output = output + self._paused = False + + def __getattr__(self, x: str) -> t.Any: + return getattr(self._input, x) + + def _echo(self, rv: bytes) -> bytes: + if not self._paused: + self._output.write(rv) + + return rv + + def read(self, n: int = -1) -> bytes: + return self._echo(self._input.read(n)) + + def read1(self, n: int = -1) -> bytes: + return self._echo(self._input.read1(n)) # type: ignore + + def readline(self, n: int = -1) -> bytes: + return self._echo(self._input.readline(n)) + + def readlines(self) -> list[bytes]: + return [self._echo(x) for x in self._input.readlines()] + + def __iter__(self) -> cabc.Iterator[bytes]: + return iter(self._echo(x) for x in self._input) + + def __repr__(self) -> str: + return repr(self._input) + + +@contextlib.contextmanager +def _pause_echo(stream: EchoingStdin | None) -> cabc.Iterator[None]: + if stream is None: + yield + else: + stream._paused = True + yield + stream._paused = False + + +class BytesIOCopy(io.BytesIO): + """Patch ``io.BytesIO`` to let the written stream be copied to another. + + .. versionadded:: 8.2 + """ + + def __init__(self, copy_to: io.BytesIO) -> None: + super().__init__() + self.copy_to = copy_to + + def flush(self) -> None: + super().flush() + self.copy_to.flush() + + def write(self, b: ReadableBuffer) -> int: + self.copy_to.write(b) + return super().write(b) + + +class StreamMixer: + """Mixes `` and `` streams. + + The result is available in the ``output`` attribute. + + .. versionadded:: 8.2 + """ + + def __init__(self) -> None: + self.output: io.BytesIO = io.BytesIO() + self.stdout: io.BytesIO = BytesIOCopy(copy_to=self.output) + self.stderr: io.BytesIO = BytesIOCopy(copy_to=self.output) + + def __del__(self) -> None: + """ + Guarantee that embedded file-like objects are closed in a + predictable order, protecting against races between + self.output being closed and other streams being flushed on close + + .. versionadded:: 8.2.2 + """ + self.stderr.close() + self.stdout.close() + self.output.close() + + +class _NamedTextIOWrapper(io.TextIOWrapper): + def __init__( + self, buffer: t.BinaryIO, name: str, mode: str, **kwargs: t.Any + ) -> None: + super().__init__(buffer, **kwargs) + self._name = name + self._mode = mode + + @property + def name(self) -> str: + return self._name + + @property + def mode(self) -> str: + return self._mode + + +def make_input_stream( + input: str | bytes | t.IO[t.Any] | None, charset: str +) -> t.BinaryIO: + # Is already an input stream. + if hasattr(input, "read"): + rv = _find_binary_reader(t.cast("t.IO[t.Any]", input)) + + if rv is not None: + return rv + + raise TypeError("Could not find binary reader for input stream.") + + if input is None: + input = b"" + elif isinstance(input, str): + input = input.encode(charset) + + return io.BytesIO(input) + + +class Result: + """Holds the captured result of an invoked CLI script. + + :param runner: The runner that created the result + :param stdout_bytes: The standard output as bytes. + :param stderr_bytes: The standard error as bytes. + :param output_bytes: A mix of ``stdout_bytes`` and ``stderr_bytes``, as the + user would see it in its terminal. + :param return_value: The value returned from the invoked command. + :param exit_code: The exit code as integer. + :param exception: The exception that happened if one did. + :param exc_info: Exception information (exception type, exception instance, + traceback type). + + .. versionchanged:: 8.2 + ``stderr_bytes`` no longer optional, ``output_bytes`` introduced and + ``mix_stderr`` has been removed. + + .. versionadded:: 8.0 + Added ``return_value``. + """ + + def __init__( + self, + runner: CliRunner, + stdout_bytes: bytes, + stderr_bytes: bytes, + output_bytes: bytes, + return_value: t.Any, + exit_code: int, + exception: BaseException | None, + exc_info: tuple[type[BaseException], BaseException, TracebackType] + | None = None, + ): + self.runner = runner + self.stdout_bytes = stdout_bytes + self.stderr_bytes = stderr_bytes + self.output_bytes = output_bytes + self.return_value = return_value + self.exit_code = exit_code + self.exception = exception + self.exc_info = exc_info + + @property + def output(self) -> str: + """The terminal output as unicode string, as the user would see it. + + .. versionchanged:: 8.2 + No longer a proxy for ``self.stdout``. Now has its own independent stream + that is mixing `` and ``, in the order they were written. + """ + return self.output_bytes.decode(self.runner.charset, "replace").replace( + "\r\n", "\n" + ) + + @property + def stdout(self) -> str: + """The standard output as unicode string.""" + return self.stdout_bytes.decode(self.runner.charset, "replace").replace( + "\r\n", "\n" + ) + + @property + def stderr(self) -> str: + """The standard error as unicode string. + + .. versionchanged:: 8.2 + No longer raise an exception, always returns the `` string. + """ + return self.stderr_bytes.decode(self.runner.charset, "replace").replace( + "\r\n", "\n" + ) + + def __repr__(self) -> str: + exc_str = repr(self.exception) if self.exception else "okay" + return f"<{type(self).__name__} {exc_str}>" + + +class CliRunner: + """The CLI runner provides functionality to invoke a Click command line + script for unittesting purposes in a isolated environment. This only + works in single-threaded systems without any concurrency as it changes the + global interpreter state. + + :param charset: the character set for the input and output data. + :param env: a dictionary with environment variables for overriding. + :param echo_stdin: if this is set to `True`, then reading from `` writes + to ``. This is useful for showing examples in + some circumstances. Note that regular prompts + will automatically echo the input. + :param catch_exceptions: Whether to catch any exceptions other than + ``SystemExit`` when running :meth:`~CliRunner.invoke`. + + .. versionchanged:: 8.2 + Added the ``catch_exceptions`` parameter. + + .. versionchanged:: 8.2 + ``mix_stderr`` parameter has been removed. + """ + + def __init__( + self, + charset: str = "utf-8", + env: cabc.Mapping[str, str | None] | None = None, + echo_stdin: bool = False, + catch_exceptions: bool = True, + ) -> None: + self.charset = charset + self.env: cabc.Mapping[str, str | None] = env or {} + self.echo_stdin = echo_stdin + self.catch_exceptions = catch_exceptions + + def get_default_prog_name(self, cli: Command) -> str: + """Given a command object it will return the default program name + for it. The default is the `name` attribute or ``"root"`` if not + set. + """ + return cli.name or "root" + + def make_env( + self, overrides: cabc.Mapping[str, str | None] | None = None + ) -> cabc.Mapping[str, str | None]: + """Returns the environment overrides for invoking a script.""" + rv = dict(self.env) + if overrides: + rv.update(overrides) + return rv + + @contextlib.contextmanager + def isolation( + self, + input: str | bytes | t.IO[t.Any] | None = None, + env: cabc.Mapping[str, str | None] | None = None, + color: bool = False, + ) -> cabc.Iterator[tuple[io.BytesIO, io.BytesIO, io.BytesIO]]: + """A context manager that sets up the isolation for invoking of a + command line tool. This sets up `` with the given input data + and `os.environ` with the overrides from the given dictionary. + This also rebinds some internals in Click to be mocked (like the + prompt functionality). + + This is automatically done in the :meth:`invoke` method. + + :param input: the input stream to put into `sys.stdin`. + :param env: the environment overrides as dictionary. + :param color: whether the output should contain color codes. The + application can still override this explicitly. + + .. versionadded:: 8.2 + An additional output stream is returned, which is a mix of + `` and `` streams. + + .. versionchanged:: 8.2 + Always returns the `` stream. + + .. versionchanged:: 8.0 + `` is opened with ``errors="backslashreplace"`` + instead of the default ``"strict"``. + + .. versionchanged:: 4.0 + Added the ``color`` parameter. + """ + bytes_input = make_input_stream(input, self.charset) + echo_input = None + + old_stdin = sys.stdin + old_stdout = sys.stdout + old_stderr = sys.stderr + old_forced_width = formatting.FORCED_WIDTH + formatting.FORCED_WIDTH = 80 + + env = self.make_env(env) + + stream_mixer = StreamMixer() + + if self.echo_stdin: + bytes_input = echo_input = t.cast( + t.BinaryIO, EchoingStdin(bytes_input, stream_mixer.stdout) + ) + + sys.stdin = text_input = _NamedTextIOWrapper( + bytes_input, encoding=self.charset, name="", mode="r" + ) + + if self.echo_stdin: + # Force unbuffered reads, otherwise TextIOWrapper reads a + # large chunk which is echoed early. + text_input._CHUNK_SIZE = 1 # type: ignore + + sys.stdout = _NamedTextIOWrapper( + stream_mixer.stdout, encoding=self.charset, name="", mode="w" + ) + + sys.stderr = _NamedTextIOWrapper( + stream_mixer.stderr, + encoding=self.charset, + name="", + mode="w", + errors="backslashreplace", + ) + + @_pause_echo(echo_input) # type: ignore + def visible_input(prompt: str | None = None) -> str: + sys.stdout.write(prompt or "") + try: + val = next(text_input).rstrip("\r\n") + except StopIteration as e: + raise EOFError() from e + sys.stdout.write(f"{val}\n") + sys.stdout.flush() + return val + + @_pause_echo(echo_input) # type: ignore + def hidden_input(prompt: str | None = None) -> str: + sys.stdout.write(f"{prompt or ''}\n") + sys.stdout.flush() + try: + return next(text_input).rstrip("\r\n") + except StopIteration as e: + raise EOFError() from e + + @_pause_echo(echo_input) # type: ignore + def _getchar(echo: bool) -> str: + char = sys.stdin.read(1) + + if echo: + sys.stdout.write(char) + + sys.stdout.flush() + return char + + default_color = color + + def should_strip_ansi( + stream: t.IO[t.Any] | None = None, color: bool | None = None + ) -> bool: + if color is None: + return not default_color + return not color + + old_visible_prompt_func = termui.visible_prompt_func + old_hidden_prompt_func = termui.hidden_prompt_func + old__getchar_func = termui._getchar + old_should_strip_ansi = utils.should_strip_ansi # type: ignore + old__compat_should_strip_ansi = _compat.should_strip_ansi + termui.visible_prompt_func = visible_input + termui.hidden_prompt_func = hidden_input + termui._getchar = _getchar + utils.should_strip_ansi = should_strip_ansi # type: ignore + _compat.should_strip_ansi = should_strip_ansi + + old_env = {} + try: + for key, value in env.items(): + old_env[key] = os.environ.get(key) + if value is None: + try: + del os.environ[key] + except Exception: + pass + else: + os.environ[key] = value + yield (stream_mixer.stdout, stream_mixer.stderr, stream_mixer.output) + finally: + for key, value in old_env.items(): + if value is None: + try: + del os.environ[key] + except Exception: + pass + else: + os.environ[key] = value + sys.stdout = old_stdout + sys.stderr = old_stderr + sys.stdin = old_stdin + termui.visible_prompt_func = old_visible_prompt_func + termui.hidden_prompt_func = old_hidden_prompt_func + termui._getchar = old__getchar_func + utils.should_strip_ansi = old_should_strip_ansi # type: ignore + _compat.should_strip_ansi = old__compat_should_strip_ansi + formatting.FORCED_WIDTH = old_forced_width + + def invoke( + self, + cli: Command, + args: str | cabc.Sequence[str] | None = None, + input: str | bytes | t.IO[t.Any] | None = None, + env: cabc.Mapping[str, str | None] | None = None, + catch_exceptions: bool | None = None, + color: bool = False, + **extra: t.Any, + ) -> Result: + """Invokes a command in an isolated environment. The arguments are + forwarded directly to the command line script, the `extra` keyword + arguments are passed to the :meth:`~clickpkg.Command.main` function of + the command. + + This returns a :class:`Result` object. + + :param cli: the command to invoke + :param args: the arguments to invoke. It may be given as an iterable + or a string. When given as string it will be interpreted + as a Unix shell command. More details at + :func:`shlex.split`. + :param input: the input data for `sys.stdin`. + :param env: the environment overrides. + :param catch_exceptions: Whether to catch any other exceptions than + ``SystemExit``. If :data:`None`, the value + from :class:`CliRunner` is used. + :param extra: the keyword arguments to pass to :meth:`main`. + :param color: whether the output should contain color codes. The + application can still override this explicitly. + + .. versionadded:: 8.2 + The result object has the ``output_bytes`` attribute with + the mix of ``stdout_bytes`` and ``stderr_bytes``, as the user would + see it in its terminal. + + .. versionchanged:: 8.2 + The result object always returns the ``stderr_bytes`` stream. + + .. versionchanged:: 8.0 + The result object has the ``return_value`` attribute with + the value returned from the invoked command. + + .. versionchanged:: 4.0 + Added the ``color`` parameter. + + .. versionchanged:: 3.0 + Added the ``catch_exceptions`` parameter. + + .. versionchanged:: 3.0 + The result object has the ``exc_info`` attribute with the + traceback if available. + """ + exc_info = None + if catch_exceptions is None: + catch_exceptions = self.catch_exceptions + + with self.isolation(input=input, env=env, color=color) as outstreams: + return_value = None + exception: BaseException | None = None + exit_code = 0 + + if isinstance(args, str): + args = shlex.split(args) + + try: + prog_name = extra.pop("prog_name") + except KeyError: + prog_name = self.get_default_prog_name(cli) + + try: + return_value = cli.main(args=args or (), prog_name=prog_name, **extra) + except SystemExit as e: + exc_info = sys.exc_info() + e_code = t.cast("int | t.Any | None", e.code) + + if e_code is None: + e_code = 0 + + if e_code != 0: + exception = e + + if not isinstance(e_code, int): + sys.stdout.write(str(e_code)) + sys.stdout.write("\n") + e_code = 1 + + exit_code = e_code + + except Exception as e: + if not catch_exceptions: + raise + exception = e + exit_code = 1 + exc_info = sys.exc_info() + finally: + sys.stdout.flush() + sys.stderr.flush() + stdout = outstreams[0].getvalue() + stderr = outstreams[1].getvalue() + output = outstreams[2].getvalue() + + return Result( + runner=self, + stdout_bytes=stdout, + stderr_bytes=stderr, + output_bytes=output, + return_value=return_value, + exit_code=exit_code, + exception=exception, + exc_info=exc_info, # type: ignore + ) + + @contextlib.contextmanager + def isolated_filesystem( + self, temp_dir: str | os.PathLike[str] | None = None + ) -> cabc.Iterator[str]: + """A context manager that creates a temporary directory and + changes the current working directory to it. This isolates tests + that affect the contents of the CWD to prevent them from + interfering with each other. + + :param temp_dir: Create the temporary directory under this + directory. If given, the created directory is not removed + when exiting. + + .. versionchanged:: 8.0 + Added the ``temp_dir`` parameter. + """ + cwd = os.getcwd() + dt = tempfile.mkdtemp(dir=temp_dir) + os.chdir(dt) + + try: + yield dt + finally: + os.chdir(cwd) + + if temp_dir is None: + import shutil + + try: + shutil.rmtree(dt) + except OSError: + pass diff --git a/venv/lib/python3.10/site-packages/click/types.py b/venv/lib/python3.10/site-packages/click/types.py new file mode 100644 index 0000000..e71c1c2 --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/types.py @@ -0,0 +1,1209 @@ +from __future__ import annotations + +import collections.abc as cabc +import enum +import os +import stat +import sys +import typing as t +from datetime import datetime +from gettext import gettext as _ +from gettext import ngettext + +from ._compat import _get_argv_encoding +from ._compat import open_stream +from .exceptions import BadParameter +from .utils import format_filename +from .utils import LazyFile +from .utils import safecall + +if t.TYPE_CHECKING: + import typing_extensions as te + + from .core import Context + from .core import Parameter + from .shell_completion import CompletionItem + +ParamTypeValue = t.TypeVar("ParamTypeValue") + + +class ParamType: + """Represents the type of a parameter. Validates and converts values + from the command line or Python into the correct type. + + To implement a custom type, subclass and implement at least the + following: + + - The :attr:`name` class attribute must be set. + - Calling an instance of the type with ``None`` must return + ``None``. This is already implemented by default. + - :meth:`convert` must convert string values to the correct type. + - :meth:`convert` must accept values that are already the correct + type. + - It must be able to convert a value if the ``ctx`` and ``param`` + arguments are ``None``. This can occur when converting prompt + input. + """ + + is_composite: t.ClassVar[bool] = False + arity: t.ClassVar[int] = 1 + + #: the descriptive name of this type + name: str + + #: if a list of this type is expected and the value is pulled from a + #: string environment variable, this is what splits it up. `None` + #: means any whitespace. For all parameters the general rule is that + #: whitespace splits them up. The exception are paths and files which + #: are split by ``os.path.pathsep`` by default (":" on Unix and ";" on + #: Windows). + envvar_list_splitter: t.ClassVar[str | None] = None + + def to_info_dict(self) -> dict[str, t.Any]: + """Gather information that could be useful for a tool generating + user-facing documentation. + + Use :meth:`click.Context.to_info_dict` to traverse the entire + CLI structure. + + .. versionadded:: 8.0 + """ + # The class name without the "ParamType" suffix. + param_type = type(self).__name__.partition("ParamType")[0] + param_type = param_type.partition("ParameterType")[0] + + # Custom subclasses might not remember to set a name. + if hasattr(self, "name"): + name = self.name + else: + name = param_type + + return {"param_type": param_type, "name": name} + + def __call__( + self, + value: t.Any, + param: Parameter | None = None, + ctx: Context | None = None, + ) -> t.Any: + if value is not None: + return self.convert(value, param, ctx) + + def get_metavar(self, param: Parameter, ctx: Context) -> str | None: + """Returns the metavar default for this param if it provides one.""" + + def get_missing_message(self, param: Parameter, ctx: Context | None) -> str | None: + """Optionally might return extra information about a missing + parameter. + + .. versionadded:: 2.0 + """ + + def convert( + self, value: t.Any, param: Parameter | None, ctx: Context | None + ) -> t.Any: + """Convert the value to the correct type. This is not called if + the value is ``None`` (the missing value). + + This must accept string values from the command line, as well as + values that are already the correct type. It may also convert + other compatible types. + + The ``param`` and ``ctx`` arguments may be ``None`` in certain + situations, such as when converting prompt input. + + If the value cannot be converted, call :meth:`fail` with a + descriptive message. + + :param value: The value to convert. + :param param: The parameter that is using this type to convert + its value. May be ``None``. + :param ctx: The current context that arrived at this value. May + be ``None``. + """ + return value + + def split_envvar_value(self, rv: str) -> cabc.Sequence[str]: + """Given a value from an environment variable this splits it up + into small chunks depending on the defined envvar list splitter. + + If the splitter is set to `None`, which means that whitespace splits, + then leading and trailing whitespace is ignored. Otherwise, leading + and trailing splitters usually lead to empty items being included. + """ + return (rv or "").split(self.envvar_list_splitter) + + def fail( + self, + message: str, + param: Parameter | None = None, + ctx: Context | None = None, + ) -> t.NoReturn: + """Helper method to fail with an invalid value message.""" + raise BadParameter(message, ctx=ctx, param=param) + + def shell_complete( + self, ctx: Context, param: Parameter, incomplete: str + ) -> list[CompletionItem]: + """Return a list of + :class:`~click.shell_completion.CompletionItem` objects for the + incomplete value. Most types do not provide completions, but + some do, and this allows custom types to provide custom + completions as well. + + :param ctx: Invocation context for this command. + :param param: The parameter that is requesting completion. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + return [] + + +class CompositeParamType(ParamType): + is_composite = True + + @property + def arity(self) -> int: # type: ignore + raise NotImplementedError() + + +class FuncParamType(ParamType): + def __init__(self, func: t.Callable[[t.Any], t.Any]) -> None: + self.name: str = func.__name__ + self.func = func + + def to_info_dict(self) -> dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict["func"] = self.func + return info_dict + + def convert( + self, value: t.Any, param: Parameter | None, ctx: Context | None + ) -> t.Any: + try: + return self.func(value) + except ValueError: + try: + value = str(value) + except UnicodeError: + value = value.decode("utf-8", "replace") + + self.fail(value, param, ctx) + + +class UnprocessedParamType(ParamType): + name = "text" + + def convert( + self, value: t.Any, param: Parameter | None, ctx: Context | None + ) -> t.Any: + return value + + def __repr__(self) -> str: + return "UNPROCESSED" + + +class StringParamType(ParamType): + name = "text" + + def convert( + self, value: t.Any, param: Parameter | None, ctx: Context | None + ) -> t.Any: + if isinstance(value, bytes): + enc = _get_argv_encoding() + try: + value = value.decode(enc) + except UnicodeError: + fs_enc = sys.getfilesystemencoding() + if fs_enc != enc: + try: + value = value.decode(fs_enc) + except UnicodeError: + value = value.decode("utf-8", "replace") + else: + value = value.decode("utf-8", "replace") + return value + return str(value) + + def __repr__(self) -> str: + return "STRING" + + +class Choice(ParamType, t.Generic[ParamTypeValue]): + """The choice type allows a value to be checked against a fixed set + of supported values. + + You may pass any iterable value which will be converted to a tuple + and thus will only be iterated once. + + The resulting value will always be one of the originally passed choices. + See :meth:`normalize_choice` for more info on the mapping of strings + to choices. See :ref:`choice-opts` for an example. + + :param case_sensitive: Set to false to make choices case + insensitive. Defaults to true. + + .. versionchanged:: 8.2.0 + Non-``str`` ``choices`` are now supported. It can additionally be any + iterable. Before you were not recommended to pass anything but a list or + tuple. + + .. versionadded:: 8.2.0 + Choice normalization can be overridden via :meth:`normalize_choice`. + """ + + name = "choice" + + def __init__( + self, choices: cabc.Iterable[ParamTypeValue], case_sensitive: bool = True + ) -> None: + self.choices: cabc.Sequence[ParamTypeValue] = tuple(choices) + self.case_sensitive = case_sensitive + + def to_info_dict(self) -> dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict["choices"] = self.choices + info_dict["case_sensitive"] = self.case_sensitive + return info_dict + + def _normalized_mapping( + self, ctx: Context | None = None + ) -> cabc.Mapping[ParamTypeValue, str]: + """ + Returns mapping where keys are the original choices and the values are + the normalized values that are accepted via the command line. + + This is a simple wrapper around :meth:`normalize_choice`, use that + instead which is supported. + """ + return { + choice: self.normalize_choice( + choice=choice, + ctx=ctx, + ) + for choice in self.choices + } + + def normalize_choice(self, choice: ParamTypeValue, ctx: Context | None) -> str: + """ + Normalize a choice value, used to map a passed string to a choice. + Each choice must have a unique normalized value. + + By default uses :meth:`Context.token_normalize_func` and if not case + sensitive, convert it to a casefolded value. + + .. versionadded:: 8.2.0 + """ + normed_value = choice.name if isinstance(choice, enum.Enum) else str(choice) + + if ctx is not None and ctx.token_normalize_func is not None: + normed_value = ctx.token_normalize_func(normed_value) + + if not self.case_sensitive: + normed_value = normed_value.casefold() + + return normed_value + + def get_metavar(self, param: Parameter, ctx: Context) -> str | None: + if param.param_type_name == "option" and not param.show_choices: # type: ignore + choice_metavars = [ + convert_type(type(choice)).name.upper() for choice in self.choices + ] + choices_str = "|".join([*dict.fromkeys(choice_metavars)]) + else: + choices_str = "|".join( + [str(i) for i in self._normalized_mapping(ctx=ctx).values()] + ) + + # Use curly braces to indicate a required argument. + if param.required and param.param_type_name == "argument": + return f"{{{choices_str}}}" + + # Use square braces to indicate an option or optional argument. + return f"[{choices_str}]" + + def get_missing_message(self, param: Parameter, ctx: Context | None) -> str: + """ + Message shown when no choice is passed. + + .. versionchanged:: 8.2.0 Added ``ctx`` argument. + """ + return _("Choose from:\n\t{choices}").format( + choices=",\n\t".join(self._normalized_mapping(ctx=ctx).values()) + ) + + def convert( + self, value: t.Any, param: Parameter | None, ctx: Context | None + ) -> ParamTypeValue: + """ + For a given value from the parser, normalize it and find its + matching normalized value in the list of choices. Then return the + matched "original" choice. + """ + normed_value = self.normalize_choice(choice=value, ctx=ctx) + normalized_mapping = self._normalized_mapping(ctx=ctx) + + try: + return next( + original + for original, normalized in normalized_mapping.items() + if normalized == normed_value + ) + except StopIteration: + self.fail( + self.get_invalid_choice_message(value=value, ctx=ctx), + param=param, + ctx=ctx, + ) + + def get_invalid_choice_message(self, value: t.Any, ctx: Context | None) -> str: + """Get the error message when the given choice is invalid. + + :param value: The invalid value. + + .. versionadded:: 8.2 + """ + choices_str = ", ".join(map(repr, self._normalized_mapping(ctx=ctx).values())) + return ngettext( + "{value!r} is not {choice}.", + "{value!r} is not one of {choices}.", + len(self.choices), + ).format(value=value, choice=choices_str, choices=choices_str) + + def __repr__(self) -> str: + return f"Choice({list(self.choices)})" + + def shell_complete( + self, ctx: Context, param: Parameter, incomplete: str + ) -> list[CompletionItem]: + """Complete choices that start with the incomplete value. + + :param ctx: Invocation context for this command. + :param param: The parameter that is requesting completion. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + str_choices = map(str, self.choices) + + if self.case_sensitive: + matched = (c for c in str_choices if c.startswith(incomplete)) + else: + incomplete = incomplete.lower() + matched = (c for c in str_choices if c.lower().startswith(incomplete)) + + return [CompletionItem(c) for c in matched] + + +class DateTime(ParamType): + """The DateTime type converts date strings into `datetime` objects. + + The format strings which are checked are configurable, but default to some + common (non-timezone aware) ISO 8601 formats. + + When specifying *DateTime* formats, you should only pass a list or a tuple. + Other iterables, like generators, may lead to surprising results. + + The format strings are processed using ``datetime.strptime``, and this + consequently defines the format strings which are allowed. + + Parsing is tried using each format, in order, and the first format which + parses successfully is used. + + :param formats: A list or tuple of date format strings, in the order in + which they should be tried. Defaults to + ``'%Y-%m-%d'``, ``'%Y-%m-%dT%H:%M:%S'``, + ``'%Y-%m-%d %H:%M:%S'``. + """ + + name = "datetime" + + def __init__(self, formats: cabc.Sequence[str] | None = None): + self.formats: cabc.Sequence[str] = formats or [ + "%Y-%m-%d", + "%Y-%m-%dT%H:%M:%S", + "%Y-%m-%d %H:%M:%S", + ] + + def to_info_dict(self) -> dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict["formats"] = self.formats + return info_dict + + def get_metavar(self, param: Parameter, ctx: Context) -> str | None: + return f"[{'|'.join(self.formats)}]" + + def _try_to_convert_date(self, value: t.Any, format: str) -> datetime | None: + try: + return datetime.strptime(value, format) + except ValueError: + return None + + def convert( + self, value: t.Any, param: Parameter | None, ctx: Context | None + ) -> t.Any: + if isinstance(value, datetime): + return value + + for format in self.formats: + converted = self._try_to_convert_date(value, format) + + if converted is not None: + return converted + + formats_str = ", ".join(map(repr, self.formats)) + self.fail( + ngettext( + "{value!r} does not match the format {format}.", + "{value!r} does not match the formats {formats}.", + len(self.formats), + ).format(value=value, format=formats_str, formats=formats_str), + param, + ctx, + ) + + def __repr__(self) -> str: + return "DateTime" + + +class _NumberParamTypeBase(ParamType): + _number_class: t.ClassVar[type[t.Any]] + + def convert( + self, value: t.Any, param: Parameter | None, ctx: Context | None + ) -> t.Any: + try: + return self._number_class(value) + except ValueError: + self.fail( + _("{value!r} is not a valid {number_type}.").format( + value=value, number_type=self.name + ), + param, + ctx, + ) + + +class _NumberRangeBase(_NumberParamTypeBase): + def __init__( + self, + min: float | None = None, + max: float | None = None, + min_open: bool = False, + max_open: bool = False, + clamp: bool = False, + ) -> None: + self.min = min + self.max = max + self.min_open = min_open + self.max_open = max_open + self.clamp = clamp + + def to_info_dict(self) -> dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict.update( + min=self.min, + max=self.max, + min_open=self.min_open, + max_open=self.max_open, + clamp=self.clamp, + ) + return info_dict + + def convert( + self, value: t.Any, param: Parameter | None, ctx: Context | None + ) -> t.Any: + import operator + + rv = super().convert(value, param, ctx) + lt_min: bool = self.min is not None and ( + operator.le if self.min_open else operator.lt + )(rv, self.min) + gt_max: bool = self.max is not None and ( + operator.ge if self.max_open else operator.gt + )(rv, self.max) + + if self.clamp: + if lt_min: + return self._clamp(self.min, 1, self.min_open) # type: ignore + + if gt_max: + return self._clamp(self.max, -1, self.max_open) # type: ignore + + if lt_min or gt_max: + self.fail( + _("{value} is not in the range {range}.").format( + value=rv, range=self._describe_range() + ), + param, + ctx, + ) + + return rv + + def _clamp(self, bound: float, dir: t.Literal[1, -1], open: bool) -> float: + """Find the valid value to clamp to bound in the given + direction. + + :param bound: The boundary value. + :param dir: 1 or -1 indicating the direction to move. + :param open: If true, the range does not include the bound. + """ + raise NotImplementedError + + def _describe_range(self) -> str: + """Describe the range for use in help text.""" + if self.min is None: + op = "<" if self.max_open else "<=" + return f"x{op}{self.max}" + + if self.max is None: + op = ">" if self.min_open else ">=" + return f"x{op}{self.min}" + + lop = "<" if self.min_open else "<=" + rop = "<" if self.max_open else "<=" + return f"{self.min}{lop}x{rop}{self.max}" + + def __repr__(self) -> str: + clamp = " clamped" if self.clamp else "" + return f"<{type(self).__name__} {self._describe_range()}{clamp}>" + + +class IntParamType(_NumberParamTypeBase): + name = "integer" + _number_class = int + + def __repr__(self) -> str: + return "INT" + + +class IntRange(_NumberRangeBase, IntParamType): + """Restrict an :data:`click.INT` value to a range of accepted + values. See :ref:`ranges`. + + If ``min`` or ``max`` are not passed, any value is accepted in that + direction. If ``min_open`` or ``max_open`` are enabled, the + corresponding boundary is not included in the range. + + If ``clamp`` is enabled, a value outside the range is clamped to the + boundary instead of failing. + + .. versionchanged:: 8.0 + Added the ``min_open`` and ``max_open`` parameters. + """ + + name = "integer range" + + def _clamp( # type: ignore + self, bound: int, dir: t.Literal[1, -1], open: bool + ) -> int: + if not open: + return bound + + return bound + dir + + +class FloatParamType(_NumberParamTypeBase): + name = "float" + _number_class = float + + def __repr__(self) -> str: + return "FLOAT" + + +class FloatRange(_NumberRangeBase, FloatParamType): + """Restrict a :data:`click.FLOAT` value to a range of accepted + values. See :ref:`ranges`. + + If ``min`` or ``max`` are not passed, any value is accepted in that + direction. If ``min_open`` or ``max_open`` are enabled, the + corresponding boundary is not included in the range. + + If ``clamp`` is enabled, a value outside the range is clamped to the + boundary instead of failing. This is not supported if either + boundary is marked ``open``. + + .. versionchanged:: 8.0 + Added the ``min_open`` and ``max_open`` parameters. + """ + + name = "float range" + + def __init__( + self, + min: float | None = None, + max: float | None = None, + min_open: bool = False, + max_open: bool = False, + clamp: bool = False, + ) -> None: + super().__init__( + min=min, max=max, min_open=min_open, max_open=max_open, clamp=clamp + ) + + if (min_open or max_open) and clamp: + raise TypeError("Clamping is not supported for open bounds.") + + def _clamp(self, bound: float, dir: t.Literal[1, -1], open: bool) -> float: + if not open: + return bound + + # Could use math.nextafter here, but clamping an + # open float range doesn't seem to be particularly useful. It's + # left up to the user to write a callback to do it if needed. + raise RuntimeError("Clamping is not supported for open bounds.") + + +class BoolParamType(ParamType): + name = "boolean" + + bool_states: dict[str, bool] = { + "1": True, + "0": False, + "yes": True, + "no": False, + "true": True, + "false": False, + "on": True, + "off": False, + "t": True, + "f": False, + "y": True, + "n": False, + # Absence of value is considered False. + "": False, + } + """A mapping of string values to boolean states. + + Mapping is inspired by :py:attr:`configparser.ConfigParser.BOOLEAN_STATES` + and extends it. + + .. caution:: + String values are lower-cased, as the ``str_to_bool`` comparison function + below is case-insensitive. + + .. warning:: + The mapping is not exhaustive, and does not cover all possible boolean strings + representations. It will remains as it is to avoid endless bikeshedding. + + Future work my be considered to make this mapping user-configurable from public + API. + """ + + @staticmethod + def str_to_bool(value: str | bool) -> bool | None: + """Convert a string to a boolean value. + + If the value is already a boolean, it is returned as-is. If the value is a + string, it is stripped of whitespaces and lower-cased, then checked against + the known boolean states pre-defined in the `BoolParamType.bool_states` mapping + above. + + Returns `None` if the value does not match any known boolean state. + """ + if isinstance(value, bool): + return value + return BoolParamType.bool_states.get(value.strip().lower()) + + def convert( + self, value: t.Any, param: Parameter | None, ctx: Context | None + ) -> bool: + normalized = self.str_to_bool(value) + if normalized is None: + self.fail( + _( + "{value!r} is not a valid boolean. Recognized values: {states}" + ).format(value=value, states=", ".join(sorted(self.bool_states))), + param, + ctx, + ) + return normalized + + def __repr__(self) -> str: + return "BOOL" + + +class UUIDParameterType(ParamType): + name = "uuid" + + def convert( + self, value: t.Any, param: Parameter | None, ctx: Context | None + ) -> t.Any: + import uuid + + if isinstance(value, uuid.UUID): + return value + + value = value.strip() + + try: + return uuid.UUID(value) + except ValueError: + self.fail( + _("{value!r} is not a valid UUID.").format(value=value), param, ctx + ) + + def __repr__(self) -> str: + return "UUID" + + +class File(ParamType): + """Declares a parameter to be a file for reading or writing. The file + is automatically closed once the context tears down (after the command + finished working). + + Files can be opened for reading or writing. The special value ``-`` + indicates stdin or stdout depending on the mode. + + By default, the file is opened for reading text data, but it can also be + opened in binary mode or for writing. The encoding parameter can be used + to force a specific encoding. + + The `lazy` flag controls if the file should be opened immediately or upon + first IO. The default is to be non-lazy for standard input and output + streams as well as files opened for reading, `lazy` otherwise. When opening a + file lazily for reading, it is still opened temporarily for validation, but + will not be held open until first IO. lazy is mainly useful when opening + for writing to avoid creating the file until it is needed. + + Files can also be opened atomically in which case all writes go into a + separate file in the same folder and upon completion the file will + be moved over to the original location. This is useful if a file + regularly read by other users is modified. + + See :ref:`file-args` for more information. + + .. versionchanged:: 2.0 + Added the ``atomic`` parameter. + """ + + name = "filename" + envvar_list_splitter: t.ClassVar[str] = os.path.pathsep + + def __init__( + self, + mode: str = "r", + encoding: str | None = None, + errors: str | None = "strict", + lazy: bool | None = None, + atomic: bool = False, + ) -> None: + self.mode = mode + self.encoding = encoding + self.errors = errors + self.lazy = lazy + self.atomic = atomic + + def to_info_dict(self) -> dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict.update(mode=self.mode, encoding=self.encoding) + return info_dict + + def resolve_lazy_flag(self, value: str | os.PathLike[str]) -> bool: + if self.lazy is not None: + return self.lazy + if os.fspath(value) == "-": + return False + elif "w" in self.mode: + return True + return False + + def convert( + self, + value: str | os.PathLike[str] | t.IO[t.Any], + param: Parameter | None, + ctx: Context | None, + ) -> t.IO[t.Any]: + if _is_file_like(value): + return value + + value = t.cast("str | os.PathLike[str]", value) + + try: + lazy = self.resolve_lazy_flag(value) + + if lazy: + lf = LazyFile( + value, self.mode, self.encoding, self.errors, atomic=self.atomic + ) + + if ctx is not None: + ctx.call_on_close(lf.close_intelligently) + + return t.cast("t.IO[t.Any]", lf) + + f, should_close = open_stream( + value, self.mode, self.encoding, self.errors, atomic=self.atomic + ) + + # If a context is provided, we automatically close the file + # at the end of the context execution (or flush out). If a + # context does not exist, it's the caller's responsibility to + # properly close the file. This for instance happens when the + # type is used with prompts. + if ctx is not None: + if should_close: + ctx.call_on_close(safecall(f.close)) + else: + ctx.call_on_close(safecall(f.flush)) + + return f + except OSError as e: + self.fail(f"'{format_filename(value)}': {e.strerror}", param, ctx) + + def shell_complete( + self, ctx: Context, param: Parameter, incomplete: str + ) -> list[CompletionItem]: + """Return a special completion marker that tells the completion + system to use the shell to provide file path completions. + + :param ctx: Invocation context for this command. + :param param: The parameter that is requesting completion. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + return [CompletionItem(incomplete, type="file")] + + +def _is_file_like(value: t.Any) -> te.TypeGuard[t.IO[t.Any]]: + return hasattr(value, "read") or hasattr(value, "write") + + +class Path(ParamType): + """The ``Path`` type is similar to the :class:`File` type, but + returns the filename instead of an open file. Various checks can be + enabled to validate the type of file and permissions. + + :param exists: The file or directory needs to exist for the value to + be valid. If this is not set to ``True``, and the file does not + exist, then all further checks are silently skipped. + :param file_okay: Allow a file as a value. + :param dir_okay: Allow a directory as a value. + :param readable: if true, a readable check is performed. + :param writable: if true, a writable check is performed. + :param executable: if true, an executable check is performed. + :param resolve_path: Make the value absolute and resolve any + symlinks. A ``~`` is not expanded, as this is supposed to be + done by the shell only. + :param allow_dash: Allow a single dash as a value, which indicates + a standard stream (but does not open it). Use + :func:`~click.open_file` to handle opening this value. + :param path_type: Convert the incoming path value to this type. If + ``None``, keep Python's default, which is ``str``. Useful to + convert to :class:`pathlib.Path`. + + .. versionchanged:: 8.1 + Added the ``executable`` parameter. + + .. versionchanged:: 8.0 + Allow passing ``path_type=pathlib.Path``. + + .. versionchanged:: 6.0 + Added the ``allow_dash`` parameter. + """ + + envvar_list_splitter: t.ClassVar[str] = os.path.pathsep + + def __init__( + self, + exists: bool = False, + file_okay: bool = True, + dir_okay: bool = True, + writable: bool = False, + readable: bool = True, + resolve_path: bool = False, + allow_dash: bool = False, + path_type: type[t.Any] | None = None, + executable: bool = False, + ): + self.exists = exists + self.file_okay = file_okay + self.dir_okay = dir_okay + self.readable = readable + self.writable = writable + self.executable = executable + self.resolve_path = resolve_path + self.allow_dash = allow_dash + self.type = path_type + + if self.file_okay and not self.dir_okay: + self.name: str = _("file") + elif self.dir_okay and not self.file_okay: + self.name = _("directory") + else: + self.name = _("path") + + def to_info_dict(self) -> dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict.update( + exists=self.exists, + file_okay=self.file_okay, + dir_okay=self.dir_okay, + writable=self.writable, + readable=self.readable, + allow_dash=self.allow_dash, + ) + return info_dict + + def coerce_path_result( + self, value: str | os.PathLike[str] + ) -> str | bytes | os.PathLike[str]: + if self.type is not None and not isinstance(value, self.type): + if self.type is str: + return os.fsdecode(value) + elif self.type is bytes: + return os.fsencode(value) + else: + return t.cast("os.PathLike[str]", self.type(value)) + + return value + + def convert( + self, + value: str | os.PathLike[str], + param: Parameter | None, + ctx: Context | None, + ) -> str | bytes | os.PathLike[str]: + rv = value + + is_dash = self.file_okay and self.allow_dash and rv in (b"-", "-") + + if not is_dash: + if self.resolve_path: + rv = os.path.realpath(rv) + + try: + st = os.stat(rv) + except OSError: + if not self.exists: + return self.coerce_path_result(rv) + self.fail( + _("{name} {filename!r} does not exist.").format( + name=self.name.title(), filename=format_filename(value) + ), + param, + ctx, + ) + + if not self.file_okay and stat.S_ISREG(st.st_mode): + self.fail( + _("{name} {filename!r} is a file.").format( + name=self.name.title(), filename=format_filename(value) + ), + param, + ctx, + ) + if not self.dir_okay and stat.S_ISDIR(st.st_mode): + self.fail( + _("{name} {filename!r} is a directory.").format( + name=self.name.title(), filename=format_filename(value) + ), + param, + ctx, + ) + + if self.readable and not os.access(rv, os.R_OK): + self.fail( + _("{name} {filename!r} is not readable.").format( + name=self.name.title(), filename=format_filename(value) + ), + param, + ctx, + ) + + if self.writable and not os.access(rv, os.W_OK): + self.fail( + _("{name} {filename!r} is not writable.").format( + name=self.name.title(), filename=format_filename(value) + ), + param, + ctx, + ) + + if self.executable and not os.access(value, os.X_OK): + self.fail( + _("{name} {filename!r} is not executable.").format( + name=self.name.title(), filename=format_filename(value) + ), + param, + ctx, + ) + + return self.coerce_path_result(rv) + + def shell_complete( + self, ctx: Context, param: Parameter, incomplete: str + ) -> list[CompletionItem]: + """Return a special completion marker that tells the completion + system to use the shell to provide path completions for only + directories or any paths. + + :param ctx: Invocation context for this command. + :param param: The parameter that is requesting completion. + :param incomplete: Value being completed. May be empty. + + .. versionadded:: 8.0 + """ + from click.shell_completion import CompletionItem + + type = "dir" if self.dir_okay and not self.file_okay else "file" + return [CompletionItem(incomplete, type=type)] + + +class Tuple(CompositeParamType): + """The default behavior of Click is to apply a type on a value directly. + This works well in most cases, except for when `nargs` is set to a fixed + count and different types should be used for different items. In this + case the :class:`Tuple` type can be used. This type can only be used + if `nargs` is set to a fixed number. + + For more information see :ref:`tuple-type`. + + This can be selected by using a Python tuple literal as a type. + + :param types: a list of types that should be used for the tuple items. + """ + + def __init__(self, types: cabc.Sequence[type[t.Any] | ParamType]) -> None: + self.types: cabc.Sequence[ParamType] = [convert_type(ty) for ty in types] + + def to_info_dict(self) -> dict[str, t.Any]: + info_dict = super().to_info_dict() + info_dict["types"] = [t.to_info_dict() for t in self.types] + return info_dict + + @property + def name(self) -> str: # type: ignore + return f"<{' '.join(ty.name for ty in self.types)}>" + + @property + def arity(self) -> int: # type: ignore + return len(self.types) + + def convert( + self, value: t.Any, param: Parameter | None, ctx: Context | None + ) -> t.Any: + len_type = len(self.types) + len_value = len(value) + + if len_value != len_type: + self.fail( + ngettext( + "{len_type} values are required, but {len_value} was given.", + "{len_type} values are required, but {len_value} were given.", + len_value, + ).format(len_type=len_type, len_value=len_value), + param=param, + ctx=ctx, + ) + + return tuple( + ty(x, param, ctx) for ty, x in zip(self.types, value, strict=False) + ) + + +def convert_type(ty: t.Any | None, default: t.Any | None = None) -> ParamType: + """Find the most appropriate :class:`ParamType` for the given Python + type. If the type isn't provided, it can be inferred from a default + value. + """ + guessed_type = False + + if ty is None and default is not None: + if isinstance(default, (tuple, list)): + # If the default is empty, ty will remain None and will + # return STRING. + if default: + item = default[0] + + # A tuple of tuples needs to detect the inner types. + # Can't call convert recursively because that would + # incorrectly unwind the tuple to a single type. + if isinstance(item, (tuple, list)): + ty = tuple(map(type, item)) + else: + ty = type(item) + else: + ty = type(default) + + guessed_type = True + + if isinstance(ty, tuple): + return Tuple(ty) + + if isinstance(ty, ParamType): + return ty + + if ty is str or ty is None: + return STRING + + if ty is int: + return INT + + if ty is float: + return FLOAT + + if ty is bool: + return BOOL + + if guessed_type: + return STRING + + if __debug__: + try: + if issubclass(ty, ParamType): + raise AssertionError( + f"Attempted to use an uninstantiated parameter type ({ty})." + ) + except TypeError: + # ty is an instance (correct), so issubclass fails. + pass + + return FuncParamType(ty) + + +#: A dummy parameter type that just does nothing. From a user's +#: perspective this appears to just be the same as `STRING` but +#: internally no string conversion takes place if the input was bytes. +#: This is usually useful when working with file paths as they can +#: appear in bytes and unicode. +#: +#: For path related uses the :class:`Path` type is a better choice but +#: there are situations where an unprocessed type is useful which is why +#: it is is provided. +#: +#: .. versionadded:: 4.0 +UNPROCESSED = UnprocessedParamType() + +#: A unicode string parameter type which is the implicit default. This +#: can also be selected by using ``str`` as type. +STRING = StringParamType() + +#: An integer parameter. This can also be selected by using ``int`` as +#: type. +INT = IntParamType() + +#: A floating point value parameter. This can also be selected by using +#: ``float`` as type. +FLOAT = FloatParamType() + +#: A boolean parameter. This is the default for boolean flags. This can +#: also be selected by using ``bool`` as a type. +BOOL = BoolParamType() + +#: A UUID parameter. +UUID = UUIDParameterType() + + +class OptionHelpExtra(t.TypedDict, total=False): + envvars: tuple[str, ...] + default: str + range: str + required: str diff --git a/venv/lib/python3.10/site-packages/click/utils.py b/venv/lib/python3.10/site-packages/click/utils.py new file mode 100644 index 0000000..beae26f --- /dev/null +++ b/venv/lib/python3.10/site-packages/click/utils.py @@ -0,0 +1,627 @@ +from __future__ import annotations + +import collections.abc as cabc +import os +import re +import sys +import typing as t +from functools import update_wrapper +from types import ModuleType +from types import TracebackType + +from ._compat import _default_text_stderr +from ._compat import _default_text_stdout +from ._compat import _find_binary_writer +from ._compat import auto_wrap_for_ansi +from ._compat import binary_streams +from ._compat import open_stream +from ._compat import should_strip_ansi +from ._compat import strip_ansi +from ._compat import text_streams +from ._compat import WIN +from .globals import resolve_color_default + +if t.TYPE_CHECKING: + import typing_extensions as te + + P = te.ParamSpec("P") + +R = t.TypeVar("R") + + +def _posixify(name: str) -> str: + return "-".join(name.split()).lower() + + +def safecall(func: t.Callable[P, R]) -> t.Callable[P, R | None]: + """Wraps a function so that it swallows exceptions.""" + + def wrapper(*args: P.args, **kwargs: P.kwargs) -> R | None: + try: + return func(*args, **kwargs) + except Exception: + pass + return None + + return update_wrapper(wrapper, func) + + +def make_str(value: t.Any) -> str: + """Converts a value into a valid string.""" + if isinstance(value, bytes): + try: + return value.decode(sys.getfilesystemencoding()) + except UnicodeError: + return value.decode("utf-8", "replace") + return str(value) + + +def make_default_short_help(help: str, max_length: int = 45) -> str: + """Returns a condensed version of help string.""" + # Consider only the first paragraph. + paragraph_end = help.find("\n\n") + + if paragraph_end != -1: + help = help[:paragraph_end] + + # Collapse newlines, tabs, and spaces. + words = help.split() + + if not words: + return "" + + # The first paragraph started with a "no rewrap" marker, ignore it. + if words[0] == "\b": + words = words[1:] + + total_length = 0 + last_index = len(words) - 1 + + for i, word in enumerate(words): + total_length += len(word) + (i > 0) + + if total_length > max_length: # too long, truncate + break + + if word[-1] == ".": # sentence end, truncate without "..." + return " ".join(words[: i + 1]) + + if total_length == max_length and i != last_index: + break # not at sentence end, truncate with "..." + else: + return " ".join(words) # no truncation needed + + # Account for the length of the suffix. + total_length += len("...") + + # remove words until the length is short enough + while i > 0: + total_length -= len(words[i]) + (i > 0) + + if total_length <= max_length: + break + + i -= 1 + + return " ".join(words[:i]) + "..." + + +class LazyFile: + """A lazy file works like a regular file but it does not fully open + the file but it does perform some basic checks early to see if the + filename parameter does make sense. This is useful for safely opening + files for writing. + """ + + def __init__( + self, + filename: str | os.PathLike[str], + mode: str = "r", + encoding: str | None = None, + errors: str | None = "strict", + atomic: bool = False, + ): + self.name: str = os.fspath(filename) + self.mode = mode + self.encoding = encoding + self.errors = errors + self.atomic = atomic + self._f: t.IO[t.Any] | None + self.should_close: bool + + if self.name == "-": + self._f, self.should_close = open_stream(filename, mode, encoding, errors) + else: + if "r" in mode: + # Open and close the file in case we're opening it for + # reading so that we can catch at least some errors in + # some cases early. + open(filename, mode).close() + self._f = None + self.should_close = True + + def __getattr__(self, name: str) -> t.Any: + return getattr(self.open(), name) + + def __repr__(self) -> str: + if self._f is not None: + return repr(self._f) + return f"" + + def open(self) -> t.IO[t.Any]: + """Opens the file if it's not yet open. This call might fail with + a :exc:`FileError`. Not handling this error will produce an error + that Click shows. + """ + if self._f is not None: + return self._f + try: + rv, self.should_close = open_stream( + self.name, self.mode, self.encoding, self.errors, atomic=self.atomic + ) + except OSError as e: + from .exceptions import FileError + + raise FileError(self.name, hint=e.strerror) from e + self._f = rv + return rv + + def close(self) -> None: + """Closes the underlying file, no matter what.""" + if self._f is not None: + self._f.close() + + def close_intelligently(self) -> None: + """This function only closes the file if it was opened by the lazy + file wrapper. For instance this will never close stdin. + """ + if self.should_close: + self.close() + + def __enter__(self) -> LazyFile: + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_value: BaseException | None, + tb: TracebackType | None, + ) -> None: + self.close_intelligently() + + def __iter__(self) -> cabc.Iterator[t.AnyStr]: + self.open() + return iter(self._f) # type: ignore + + +class KeepOpenFile: + def __init__(self, file: t.IO[t.Any]) -> None: + self._file: t.IO[t.Any] = file + + def __getattr__(self, name: str) -> t.Any: + return getattr(self._file, name) + + def __enter__(self) -> KeepOpenFile: + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_value: BaseException | None, + tb: TracebackType | None, + ) -> None: + pass + + def __repr__(self) -> str: + return repr(self._file) + + def __iter__(self) -> cabc.Iterator[t.AnyStr]: + return iter(self._file) + + +def echo( + message: t.Any | None = None, + file: t.IO[t.Any] | None = None, + nl: bool = True, + err: bool = False, + color: bool | None = None, +) -> None: + """Print a message and newline to stdout or a file. This should be + used instead of :func:`print` because it provides better support + for different data, files, and environments. + + Compared to :func:`print`, this does the following: + + - Ensures that the output encoding is not misconfigured on Linux. + - Supports Unicode in the Windows console. + - Supports writing to binary outputs, and supports writing bytes + to text outputs. + - Supports colors and styles on Windows. + - Removes ANSI color and style codes if the output does not look + like an interactive terminal. + - Always flushes the output. + + :param message: The string or bytes to output. Other objects are + converted to strings. + :param file: The file to write to. Defaults to ``stdout``. + :param err: Write to ``stderr`` instead of ``stdout``. + :param nl: Print a newline after the message. Enabled by default. + :param color: Force showing or hiding colors and other styles. By + default Click will remove color if the output does not look like + an interactive terminal. + + .. versionchanged:: 6.0 + Support Unicode output on the Windows console. Click does not + modify ``sys.stdout``, so ``sys.stdout.write()`` and ``print()`` + will still not support Unicode. + + .. versionchanged:: 4.0 + Added the ``color`` parameter. + + .. versionadded:: 3.0 + Added the ``err`` parameter. + + .. versionchanged:: 2.0 + Support colors on Windows if colorama is installed. + """ + if file is None: + if err: + file = _default_text_stderr() + else: + file = _default_text_stdout() + + # There are no standard streams attached to write to. For example, + # pythonw on Windows. + if file is None: + return + + # Convert non bytes/text into the native string type. + if message is not None and not isinstance(message, (str, bytes, bytearray)): + out: str | bytes | bytearray | None = str(message) + else: + out = message + + if nl: + out = out or "" + if isinstance(out, str): + out += "\n" + else: + out += b"\n" + + if not out: + file.flush() + return + + # If there is a message and the value looks like bytes, we manually + # need to find the binary stream and write the message in there. + # This is done separately so that most stream types will work as you + # would expect. Eg: you can write to StringIO for other cases. + if isinstance(out, (bytes, bytearray)): + binary_file = _find_binary_writer(file) + + if binary_file is not None: + file.flush() + binary_file.write(out) + binary_file.flush() + return + + # ANSI style code support. For no message or bytes, nothing happens. + # When outputting to a file instead of a terminal, strip codes. + else: + color = resolve_color_default(color) + + if should_strip_ansi(file, color): + out = strip_ansi(out) + elif WIN: + if auto_wrap_for_ansi is not None: + file = auto_wrap_for_ansi(file, color) # type: ignore + elif not color: + out = strip_ansi(out) + + file.write(out) # type: ignore + file.flush() + + +def get_binary_stream(name: t.Literal["stdin", "stdout", "stderr"]) -> t.BinaryIO: + """Returns a system stream for byte processing. + + :param name: the name of the stream to open. Valid names are ``'stdin'``, + ``'stdout'`` and ``'stderr'`` + """ + opener = binary_streams.get(name) + if opener is None: + raise TypeError(f"Unknown standard stream '{name}'") + return opener() + + +def get_text_stream( + name: t.Literal["stdin", "stdout", "stderr"], + encoding: str | None = None, + errors: str | None = "strict", +) -> t.TextIO: + """Returns a system stream for text processing. This usually returns + a wrapped stream around a binary stream returned from + :func:`get_binary_stream` but it also can take shortcuts for already + correctly configured streams. + + :param name: the name of the stream to open. Valid names are ``'stdin'``, + ``'stdout'`` and ``'stderr'`` + :param encoding: overrides the detected default encoding. + :param errors: overrides the default error mode. + """ + opener = text_streams.get(name) + if opener is None: + raise TypeError(f"Unknown standard stream '{name}'") + return opener(encoding, errors) + + +def open_file( + filename: str | os.PathLike[str], + mode: str = "r", + encoding: str | None = None, + errors: str | None = "strict", + lazy: bool = False, + atomic: bool = False, +) -> t.IO[t.Any]: + """Open a file, with extra behavior to handle ``'-'`` to indicate + a standard stream, lazy open on write, and atomic write. Similar to + the behavior of the :class:`~click.File` param type. + + If ``'-'`` is given to open ``stdout`` or ``stdin``, the stream is + wrapped so that using it in a context manager will not close it. + This makes it possible to use the function without accidentally + closing a standard stream: + + .. code-block:: python + + with open_file(filename) as f: + ... + + :param filename: The name or Path of the file to open, or ``'-'`` for + ``stdin``/``stdout``. + :param mode: The mode in which to open the file. + :param encoding: The encoding to decode or encode a file opened in + text mode. + :param errors: The error handling mode. + :param lazy: Wait to open the file until it is accessed. For read + mode, the file is temporarily opened to raise access errors + early, then closed until it is read again. + :param atomic: Write to a temporary file and replace the given file + on close. + + .. versionadded:: 3.0 + """ + if lazy: + return t.cast( + "t.IO[t.Any]", LazyFile(filename, mode, encoding, errors, atomic=atomic) + ) + + f, should_close = open_stream(filename, mode, encoding, errors, atomic=atomic) + + if not should_close: + f = t.cast("t.IO[t.Any]", KeepOpenFile(f)) + + return f + + +def format_filename( + filename: str | bytes | os.PathLike[str] | os.PathLike[bytes], + shorten: bool = False, +) -> str: + """Format a filename as a string for display. Ensures the filename can be + displayed by replacing any invalid bytes or surrogate escapes in the name + with the replacement character ``�``. + + Invalid bytes or surrogate escapes will raise an error when written to a + stream with ``errors="strict"``. This will typically happen with ``stdout`` + when the locale is something like ``en_GB.UTF-8``. + + Many scenarios *are* safe to write surrogates though, due to PEP 538 and + PEP 540, including: + + - Writing to ``stderr``, which uses ``errors="backslashreplace"``. + - The system has ``LANG=C.UTF-8``, ``C``, or ``POSIX``. Python opens + stdout and stderr with ``errors="surrogateescape"``. + - None of ``LANG/LC_*`` are set. Python assumes ``LANG=C.UTF-8``. + - Python is started in UTF-8 mode with ``PYTHONUTF8=1`` or ``-X utf8``. + Python opens stdout and stderr with ``errors="surrogateescape"``. + + :param filename: formats a filename for UI display. This will also convert + the filename into unicode without failing. + :param shorten: this optionally shortens the filename to strip of the + path that leads up to it. + """ + if shorten: + filename = os.path.basename(filename) + else: + filename = os.fspath(filename) + + if isinstance(filename, bytes): + filename = filename.decode(sys.getfilesystemencoding(), "replace") + else: + filename = filename.encode("utf-8", "surrogateescape").decode( + "utf-8", "replace" + ) + + return filename + + +def get_app_dir(app_name: str, roaming: bool = True, force_posix: bool = False) -> str: + r"""Returns the config folder for the application. The default behavior + is to return whatever is most appropriate for the operating system. + + To give you an idea, for an app called ``"Foo Bar"``, something like + the following folders could be returned: + + Mac OS X: + ``~/Library/Application Support/Foo Bar`` + Mac OS X (POSIX): + ``~/.foo-bar`` + Unix: + ``~/.config/foo-bar`` + Unix (POSIX): + ``~/.foo-bar`` + Windows (roaming): + ``C:\Users\\AppData\Roaming\Foo Bar`` + Windows (not roaming): + ``C:\Users\\AppData\Local\Foo Bar`` + + .. versionadded:: 2.0 + + :param app_name: the application name. This should be properly capitalized + and can contain whitespace. + :param roaming: controls if the folder should be roaming or not on Windows. + Has no effect otherwise. + :param force_posix: if this is set to `True` then on any POSIX system the + folder will be stored in the home folder with a leading + dot instead of the XDG config home or darwin's + application support folder. + """ + if WIN: + key = "APPDATA" if roaming else "LOCALAPPDATA" + folder = os.environ.get(key) + if folder is None: + folder = os.path.expanduser("~") + return os.path.join(folder, app_name) + if force_posix: + return os.path.join(os.path.expanduser(f"~/.{_posixify(app_name)}")) + if sys.platform == "darwin": + return os.path.join( + os.path.expanduser("~/Library/Application Support"), app_name + ) + return os.path.join( + os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~/.config")), + _posixify(app_name), + ) + + +class PacifyFlushWrapper: + """This wrapper is used to catch and suppress BrokenPipeErrors resulting + from ``.flush()`` being called on broken pipe during the shutdown/final-GC + of the Python interpreter. Notably ``.flush()`` is always called on + ``sys.stdout`` and ``sys.stderr``. So as to have minimal impact on any + other cleanup code, and the case where the underlying file is not a broken + pipe, all calls and attributes are proxied. + """ + + def __init__(self, wrapped: t.IO[t.Any]) -> None: + self.wrapped = wrapped + + def flush(self) -> None: + try: + self.wrapped.flush() + except OSError as e: + import errno + + if e.errno != errno.EPIPE: + raise + + def __getattr__(self, attr: str) -> t.Any: + return getattr(self.wrapped, attr) + + +def _detect_program_name( + path: str | None = None, _main: ModuleType | None = None +) -> str: + """Determine the command used to run the program, for use in help + text. If a file or entry point was executed, the file name is + returned. If ``python -m`` was used to execute a module or package, + ``python -m name`` is returned. + + This doesn't try to be too precise, the goal is to give a concise + name for help text. Files are only shown as their name without the + path. ``python`` is only shown for modules, and the full path to + ``sys.executable`` is not shown. + + :param path: The Python file being executed. Python puts this in + ``sys.argv[0]``, which is used by default. + :param _main: The ``__main__`` module. This should only be passed + during internal testing. + + .. versionadded:: 8.0 + Based on command args detection in the Werkzeug reloader. + + :meta private: + """ + if _main is None: + _main = sys.modules["__main__"] + + if not path: + path = sys.argv[0] + + # The value of __package__ indicates how Python was called. It may + # not exist if a setuptools script is installed as an egg. It may be + # set incorrectly for entry points created with pip on Windows. + # It is set to "" inside a Shiv or PEX zipapp. + if getattr(_main, "__package__", None) in {None, ""} or ( + os.name == "nt" + and _main.__package__ == "" + and not os.path.exists(path) + and os.path.exists(f"{path}.exe") + ): + # Executed a file, like "python app.py". + return os.path.basename(path) + + # Executed a module, like "python -m example". + # Rewritten by Python from "-m script" to "/path/to/script.py". + # Need to look at main module to determine how it was executed. + py_module = t.cast(str, _main.__package__) + name = os.path.splitext(os.path.basename(path))[0] + + # A submodule like "example.cli". + if name != "__main__": + py_module = f"{py_module}.{name}" + + return f"python -m {py_module.lstrip('.')}" + + +def _expand_args( + args: cabc.Iterable[str], + *, + user: bool = True, + env: bool = True, + glob_recursive: bool = True, +) -> list[str]: + """Simulate Unix shell expansion with Python functions. + + See :func:`glob.glob`, :func:`os.path.expanduser`, and + :func:`os.path.expandvars`. + + This is intended for use on Windows, where the shell does not do any + expansion. It may not exactly match what a Unix shell would do. + + :param args: List of command line arguments to expand. + :param user: Expand user home directory. + :param env: Expand environment variables. + :param glob_recursive: ``**`` matches directories recursively. + + .. versionchanged:: 8.1 + Invalid glob patterns are treated as empty expansions rather + than raising an error. + + .. versionadded:: 8.0 + + :meta private: + """ + from glob import glob + + out = [] + + for arg in args: + if user: + arg = os.path.expanduser(arg) + + if env: + arg = os.path.expandvars(arg) + + try: + matches = glob(arg, recursive=glob_recursive) + except re.error: + matches = [] + + if not matches: + out.append(arg) + else: + out.extend(matches) + + return out diff --git a/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/METADATA b/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/METADATA new file mode 100644 index 0000000..a1b5c57 --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/METADATA @@ -0,0 +1,441 @@ +Metadata-Version: 2.1 +Name: colorama +Version: 0.4.6 +Summary: Cross-platform colored terminal text. +Project-URL: Homepage, https://github.com/tartley/colorama +Author-email: Jonathan Hartley +License-File: LICENSE.txt +Keywords: ansi,color,colour,crossplatform,terminal,text,windows,xplatform +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Terminals +Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7 +Description-Content-Type: text/x-rst + +.. image:: https://img.shields.io/pypi/v/colorama.svg + :target: https://pypi.org/project/colorama/ + :alt: Latest Version + +.. image:: https://img.shields.io/pypi/pyversions/colorama.svg + :target: https://pypi.org/project/colorama/ + :alt: Supported Python versions + +.. image:: https://github.com/tartley/colorama/actions/workflows/test.yml/badge.svg + :target: https://github.com/tartley/colorama/actions/workflows/test.yml + :alt: Build Status + +Colorama +======== + +Makes ANSI escape character sequences (for producing colored terminal text and +cursor positioning) work under MS Windows. + +.. |donate| image:: https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif + :target: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=2MZ9D2GMLYCUJ&item_name=Colorama¤cy_code=USD + :alt: Donate with Paypal + +`PyPI for releases `_ | +`Github for source `_ | +`Colorama for enterprise on Tidelift `_ + +If you find Colorama useful, please |donate| to the authors. Thank you! + +Installation +------------ + +Tested on CPython 2.7, 3.7, 3.8, 3.9 and 3.10 and Pypy 2.7 and 3.8. + +No requirements other than the standard library. + +.. code-block:: bash + + pip install colorama + # or + conda install -c anaconda colorama + +Description +----------- + +ANSI escape character sequences have long been used to produce colored terminal +text and cursor positioning on Unix and Macs. Colorama makes this work on +Windows, too, by wrapping ``stdout``, stripping ANSI sequences it finds (which +would appear as gobbledygook in the output), and converting them into the +appropriate win32 calls to modify the state of the terminal. On other platforms, +Colorama does nothing. + +This has the upshot of providing a simple cross-platform API for printing +colored terminal text from Python, and has the happy side-effect that existing +applications or libraries which use ANSI sequences to produce colored output on +Linux or Macs can now also work on Windows, simply by calling +``colorama.just_fix_windows_console()`` (since v0.4.6) or ``colorama.init()`` +(all versions, but may have other side-effects – see below). + +An alternative approach is to install ``ansi.sys`` on Windows machines, which +provides the same behaviour for all applications running in terminals. Colorama +is intended for situations where that isn't easy (e.g., maybe your app doesn't +have an installer.) + +Demo scripts in the source code repository print some colored text using +ANSI sequences. Compare their output under Gnome-terminal's built in ANSI +handling, versus on Windows Command-Prompt using Colorama: + +.. image:: https://github.com/tartley/colorama/raw/master/screenshots/ubuntu-demo.png + :width: 661 + :height: 357 + :alt: ANSI sequences on Ubuntu under gnome-terminal. + +.. image:: https://github.com/tartley/colorama/raw/master/screenshots/windows-demo.png + :width: 668 + :height: 325 + :alt: Same ANSI sequences on Windows, using Colorama. + +These screenshots show that, on Windows, Colorama does not support ANSI 'dim +text'; it looks the same as 'normal text'. + +Usage +----- + +Initialisation +.............. + +If the only thing you want from Colorama is to get ANSI escapes to work on +Windows, then run: + +.. code-block:: python + + from colorama import just_fix_windows_console + just_fix_windows_console() + +If you're on a recent version of Windows 10 or better, and your stdout/stderr +are pointing to a Windows console, then this will flip the magic configuration +switch to enable Windows' built-in ANSI support. + +If you're on an older version of Windows, and your stdout/stderr are pointing to +a Windows console, then this will wrap ``sys.stdout`` and/or ``sys.stderr`` in a +magic file object that intercepts ANSI escape sequences and issues the +appropriate Win32 calls to emulate them. + +In all other circumstances, it does nothing whatsoever. Basically the idea is +that this makes Windows act like Unix with respect to ANSI escape handling. + +It's safe to call this function multiple times. It's safe to call this function +on non-Windows platforms, but it won't do anything. It's safe to call this +function when one or both of your stdout/stderr are redirected to a file – it +won't do anything to those streams. + +Alternatively, you can use the older interface with more features (but also more +potential footguns): + +.. code-block:: python + + from colorama import init + init() + +This does the same thing as ``just_fix_windows_console``, except for the +following differences: + +- It's not safe to call ``init`` multiple times; you can end up with multiple + layers of wrapping and broken ANSI support. + +- Colorama will apply a heuristic to guess whether stdout/stderr support ANSI, + and if it thinks they don't, then it will wrap ``sys.stdout`` and + ``sys.stderr`` in a magic file object that strips out ANSI escape sequences + before printing them. This happens on all platforms, and can be convenient if + you want to write your code to emit ANSI escape sequences unconditionally, and + let Colorama decide whether they should actually be output. But note that + Colorama's heuristic is not particularly clever. + +- ``init`` also accepts explicit keyword args to enable/disable various + functionality – see below. + +To stop using Colorama before your program exits, simply call ``deinit()``. +This will restore ``stdout`` and ``stderr`` to their original values, so that +Colorama is disabled. To resume using Colorama again, call ``reinit()``; it is +cheaper than calling ``init()`` again (but does the same thing). + +Most users should depend on ``colorama >= 0.4.6``, and use +``just_fix_windows_console``. The old ``init`` interface will be supported +indefinitely for backwards compatibility, but we don't plan to fix any issues +with it, also for backwards compatibility. + +Colored Output +.............. + +Cross-platform printing of colored text can then be done using Colorama's +constant shorthand for ANSI escape sequences. These are deliberately +rudimentary, see below. + +.. code-block:: python + + from colorama import Fore, Back, Style + print(Fore.RED + 'some red text') + print(Back.GREEN + 'and with a green background') + print(Style.DIM + 'and in dim text') + print(Style.RESET_ALL) + print('back to normal now') + +...or simply by manually printing ANSI sequences from your own code: + +.. code-block:: python + + print('\033[31m' + 'some red text') + print('\033[39m') # and reset to default color + +...or, Colorama can be used in conjunction with existing ANSI libraries +such as the venerable `Termcolor `_ +the fabulous `Blessings `_, +or the incredible `_Rich `_. + +If you wish Colorama's Fore, Back and Style constants were more capable, +then consider using one of the above highly capable libraries to generate +colors, etc, and use Colorama just for its primary purpose: to convert +those ANSI sequences to also work on Windows: + +SIMILARLY, do not send PRs adding the generation of new ANSI types to Colorama. +We are only interested in converting ANSI codes to win32 API calls, not +shortcuts like the above to generate ANSI characters. + +.. code-block:: python + + from colorama import just_fix_windows_console + from termcolor import colored + + # use Colorama to make Termcolor work on Windows too + just_fix_windows_console() + + # then use Termcolor for all colored text output + print(colored('Hello, World!', 'green', 'on_red')) + +Available formatting constants are:: + + Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET. + Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET. + Style: DIM, NORMAL, BRIGHT, RESET_ALL + +``Style.RESET_ALL`` resets foreground, background, and brightness. Colorama will +perform this reset automatically on program exit. + +These are fairly well supported, but not part of the standard:: + + Fore: LIGHTBLACK_EX, LIGHTRED_EX, LIGHTGREEN_EX, LIGHTYELLOW_EX, LIGHTBLUE_EX, LIGHTMAGENTA_EX, LIGHTCYAN_EX, LIGHTWHITE_EX + Back: LIGHTBLACK_EX, LIGHTRED_EX, LIGHTGREEN_EX, LIGHTYELLOW_EX, LIGHTBLUE_EX, LIGHTMAGENTA_EX, LIGHTCYAN_EX, LIGHTWHITE_EX + +Cursor Positioning +.................. + +ANSI codes to reposition the cursor are supported. See ``demos/demo06.py`` for +an example of how to generate them. + +Init Keyword Args +................. + +``init()`` accepts some ``**kwargs`` to override default behaviour. + +init(autoreset=False): + If you find yourself repeatedly sending reset sequences to turn off color + changes at the end of every print, then ``init(autoreset=True)`` will + automate that: + + .. code-block:: python + + from colorama import init + init(autoreset=True) + print(Fore.RED + 'some red text') + print('automatically back to default color again') + +init(strip=None): + Pass ``True`` or ``False`` to override whether ANSI codes should be + stripped from the output. The default behaviour is to strip if on Windows + or if output is redirected (not a tty). + +init(convert=None): + Pass ``True`` or ``False`` to override whether to convert ANSI codes in the + output into win32 calls. The default behaviour is to convert if on Windows + and output is to a tty (terminal). + +init(wrap=True): + On Windows, Colorama works by replacing ``sys.stdout`` and ``sys.stderr`` + with proxy objects, which override the ``.write()`` method to do their work. + If this wrapping causes you problems, then this can be disabled by passing + ``init(wrap=False)``. The default behaviour is to wrap if ``autoreset`` or + ``strip`` or ``convert`` are True. + + When wrapping is disabled, colored printing on non-Windows platforms will + continue to work as normal. To do cross-platform colored output, you can + use Colorama's ``AnsiToWin32`` proxy directly: + + .. code-block:: python + + import sys + from colorama import init, AnsiToWin32 + init(wrap=False) + stream = AnsiToWin32(sys.stderr).stream + + # Python 2 + print >>stream, Fore.BLUE + 'blue text on stderr' + + # Python 3 + print(Fore.BLUE + 'blue text on stderr', file=stream) + +Recognised ANSI Sequences +......................... + +ANSI sequences generally take the form:: + + ESC [ ; ... + +Where ```` is an integer, and ```` is a single letter. Zero or +more params are passed to a ````. If no params are passed, it is +generally synonymous with passing a single zero. No spaces exist in the +sequence; they have been inserted here simply to read more easily. + +The only ANSI sequences that Colorama converts into win32 calls are:: + + ESC [ 0 m # reset all (colors and brightness) + ESC [ 1 m # bright + ESC [ 2 m # dim (looks same as normal brightness) + ESC [ 22 m # normal brightness + + # FOREGROUND: + ESC [ 30 m # black + ESC [ 31 m # red + ESC [ 32 m # green + ESC [ 33 m # yellow + ESC [ 34 m # blue + ESC [ 35 m # magenta + ESC [ 36 m # cyan + ESC [ 37 m # white + ESC [ 39 m # reset + + # BACKGROUND + ESC [ 40 m # black + ESC [ 41 m # red + ESC [ 42 m # green + ESC [ 43 m # yellow + ESC [ 44 m # blue + ESC [ 45 m # magenta + ESC [ 46 m # cyan + ESC [ 47 m # white + ESC [ 49 m # reset + + # cursor positioning + ESC [ y;x H # position cursor at x across, y down + ESC [ y;x f # position cursor at x across, y down + ESC [ n A # move cursor n lines up + ESC [ n B # move cursor n lines down + ESC [ n C # move cursor n characters forward + ESC [ n D # move cursor n characters backward + + # clear the screen + ESC [ mode J # clear the screen + + # clear the line + ESC [ mode K # clear the line + +Multiple numeric params to the ``'m'`` command can be combined into a single +sequence:: + + ESC [ 36 ; 45 ; 1 m # bright cyan text on magenta background + +All other ANSI sequences of the form ``ESC [ ; ... `` +are silently stripped from the output on Windows. + +Any other form of ANSI sequence, such as single-character codes or alternative +initial characters, are not recognised or stripped. It would be cool to add +them though. Let me know if it would be useful for you, via the Issues on +GitHub. + +Status & Known Problems +----------------------- + +I've personally only tested it on Windows XP (CMD, Console2), Ubuntu +(gnome-terminal, xterm), and OS X. + +Some valid ANSI sequences aren't recognised. + +If you're hacking on the code, see `README-hacking.md`_. ESPECIALLY, see the +explanation there of why we do not want PRs that allow Colorama to generate new +types of ANSI codes. + +See outstanding issues and wish-list: +https://github.com/tartley/colorama/issues + +If anything doesn't work for you, or doesn't do what you expected or hoped for, +I'd love to hear about it on that issues list, would be delighted by patches, +and would be happy to grant commit access to anyone who submits a working patch +or two. + +.. _README-hacking.md: README-hacking.md + +License +------- + +Copyright Jonathan Hartley & Arnon Yaari, 2013-2020. BSD 3-Clause license; see +LICENSE file. + +Professional support +-------------------- + +.. |tideliftlogo| image:: https://cdn2.hubspot.net/hubfs/4008838/website/logos/logos_for_download/Tidelift_primary-shorthand-logo.png + :alt: Tidelift + :target: https://tidelift.com/subscription/pkg/pypi-colorama?utm_source=pypi-colorama&utm_medium=referral&utm_campaign=readme + +.. list-table:: + :widths: 10 100 + + * - |tideliftlogo| + - Professional support for colorama is available as part of the + `Tidelift Subscription`_. + Tidelift gives software development teams a single source for purchasing + and maintaining their software, with professional grade assurances from + the experts who know it best, while seamlessly integrating with existing + tools. + +.. _Tidelift Subscription: https://tidelift.com/subscription/pkg/pypi-colorama?utm_source=pypi-colorama&utm_medium=referral&utm_campaign=readme + +Thanks +------ + +See the CHANGELOG for more thanks! + +* Marc Schlaich (schlamar) for a ``setup.py`` fix for Python2.5. +* Marc Abramowitz, reported & fixed a crash on exit with closed ``stdout``, + providing a solution to issue #7's setuptools/distutils debate, + and other fixes. +* User 'eryksun', for guidance on correctly instantiating ``ctypes.windll``. +* Matthew McCormick for politely pointing out a longstanding crash on non-Win. +* Ben Hoyt, for a magnificent fix under 64-bit Windows. +* Jesse at Empty Square for submitting a fix for examples in the README. +* User 'jamessp', an observant documentation fix for cursor positioning. +* User 'vaal1239', Dave Mckee & Lackner Kristof for a tiny but much-needed Win7 + fix. +* Julien Stuyck, for wisely suggesting Python3 compatible updates to README. +* Daniel Griffith for multiple fabulous patches. +* Oscar Lesta for a valuable fix to stop ANSI chars being sent to non-tty + output. +* Roger Binns, for many suggestions, valuable feedback, & bug reports. +* Tim Golden for thought and much appreciated feedback on the initial idea. +* User 'Zearin' for updates to the README file. +* John Szakmeister for adding support for light colors +* Charles Merriam for adding documentation to demos +* Jurko for a fix on 64-bit Windows CPython2.5 w/o ctypes +* Florian Bruhin for a fix when stdout or stderr are None +* Thomas Weininger for fixing ValueError on Windows +* Remi Rampin for better Github integration and fixes to the README file +* Simeon Visser for closing a file handle using 'with' and updating classifiers + to include Python 3.3 and 3.4 +* Andy Neff for fixing RESET of LIGHT_EX colors. +* Jonathan Hartley for the initial idea and implementation. diff --git a/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/RECORD b/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/RECORD new file mode 100644 index 0000000..687d244 --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/RECORD @@ -0,0 +1,31 @@ +colorama-0.4.6.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +colorama-0.4.6.dist-info/METADATA,sha256=e67SnrUMOym9sz_4TjF3vxvAV4T3aF7NyqRHHH3YEMw,17158 +colorama-0.4.6.dist-info/RECORD,, +colorama-0.4.6.dist-info/WHEEL,sha256=cdcF4Fbd0FPtw2EMIOwH-3rSOTUdTCeOSXRMD1iLUb8,105 +colorama-0.4.6.dist-info/licenses/LICENSE.txt,sha256=ysNcAmhuXQSlpxQL-zs25zrtSWZW6JEQLkKIhteTAxg,1491 +colorama/__init__.py,sha256=wePQA4U20tKgYARySLEC047ucNX-g8pRLpYBuiHlLb8,266 +colorama/__pycache__/__init__.cpython-310.pyc,, +colorama/__pycache__/ansi.cpython-310.pyc,, +colorama/__pycache__/ansitowin32.cpython-310.pyc,, +colorama/__pycache__/initialise.cpython-310.pyc,, +colorama/__pycache__/win32.cpython-310.pyc,, +colorama/__pycache__/winterm.cpython-310.pyc,, +colorama/ansi.py,sha256=Top4EeEuaQdBWdteKMEcGOTeKeF19Q-Wo_6_Cj5kOzQ,2522 +colorama/ansitowin32.py,sha256=vPNYa3OZbxjbuFyaVo0Tmhmy1FZ1lKMWCnT7odXpItk,11128 +colorama/initialise.py,sha256=-hIny86ClXo39ixh5iSCfUIa2f_h_bgKRDW7gqs-KLU,3325 +colorama/tests/__init__.py,sha256=MkgPAEzGQd-Rq0w0PZXSX2LadRWhUECcisJY8lSrm4Q,75 +colorama/tests/__pycache__/__init__.cpython-310.pyc,, +colorama/tests/__pycache__/ansi_test.cpython-310.pyc,, +colorama/tests/__pycache__/ansitowin32_test.cpython-310.pyc,, +colorama/tests/__pycache__/initialise_test.cpython-310.pyc,, +colorama/tests/__pycache__/isatty_test.cpython-310.pyc,, +colorama/tests/__pycache__/utils.cpython-310.pyc,, +colorama/tests/__pycache__/winterm_test.cpython-310.pyc,, +colorama/tests/ansi_test.py,sha256=FeViDrUINIZcr505PAxvU4AjXz1asEiALs9GXMhwRaE,2839 +colorama/tests/ansitowin32_test.py,sha256=RN7AIhMJ5EqDsYaCjVo-o4u8JzDD4ukJbmevWKS70rY,10678 +colorama/tests/initialise_test.py,sha256=BbPy-XfyHwJ6zKozuQOvNvQZzsx9vdb_0bYXn7hsBTc,6741 +colorama/tests/isatty_test.py,sha256=Pg26LRpv0yQDB5Ac-sxgVXG7hsA1NYvapFgApZfYzZg,1866 +colorama/tests/utils.py,sha256=1IIRylG39z5-dzq09R_ngufxyPZxgldNbrxKxUGwGKE,1079 +colorama/tests/winterm_test.py,sha256=qoWFPEjym5gm2RuMwpf3pOis3a5r_PJZFCzK254JL8A,3709 +colorama/win32.py,sha256=YQOKwMTwtGBbsY4dL5HYTvwTeP9wIQra5MvPNddpxZs,6181 +colorama/winterm.py,sha256=XCQFDHjPi6AHYNdZwy0tA02H-Jh48Jp-HvCjeLeLp3U,7134 diff --git a/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/WHEEL b/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/WHEEL new file mode 100644 index 0000000..d79189f --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.11.1 +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any diff --git a/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt b/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt new file mode 100644 index 0000000..3105888 --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt @@ -0,0 +1,27 @@ +Copyright (c) 2010 Jonathan Hartley +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holders, nor those of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.10/site-packages/colorama/__init__.py b/venv/lib/python3.10/site-packages/colorama/__init__.py new file mode 100644 index 0000000..383101c --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/__init__.py @@ -0,0 +1,7 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +from .initialise import init, deinit, reinit, colorama_text, just_fix_windows_console +from .ansi import Fore, Back, Style, Cursor +from .ansitowin32 import AnsiToWin32 + +__version__ = '0.4.6' + diff --git a/venv/lib/python3.10/site-packages/colorama/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/colorama/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6b628587b2afbd9c60aa040bfdc3f93ce8cf3d4e GIT binary patch literal 466 zcmYk2OG^VW5P&zk+3ofv9((ZQZ4Yhw5J3>}0piI^g+eZ2?M6+_qa@px{v!WUuAcl0 zp3GPT2l7oOGntp^c3V-92Po|IK3|pd<%++QVPc{%x4n-2Bd&2z~eIfwGFUyKobDF@@??cCiF5H+xG7Z zV{2}mFq*NC$R0u{;Cn`1jN)YB#-lT`v}VEQwIf2BzAAP3%q>}Sy(UsTlI5;`F?uo> r4N1t(`^zv*mvVpkBCja_A~F8x zK+M31{sy3mqfp`ysyZsw9F6KU^ICCqnx#4T&(QNUPtDiF$-=Bai!jU0E7YQ;*9t8$ zV^?$XK$mF+=!&FGpwG|=peI-!_ywTP(n+8vC0zvi9GwDsO41f9>?%%)6#>i40<16- z@C=>qDYXmRugv9jKdNqobaTL}Yb;>gi&<1{bb1Tb{<_D#e$05aA5vJ1!|IUxLF@-> zurdg_Tmt@vA9#bPZuS_vQC*MY;SJknLH&jQ)E_eHd-ag7*+|(a*JV-P8!{J#n%nA! z4`4ieOLBbzJ{vta*I+bZyr}@hN=$Z?T`~>sY62d8N0|mw z_D$GUuivbJ4U4^|&}Lh0uptxs@qkGaQh+>DL_T7%D>-E#c>w`u32Hc|cH}vZTOnR|DU>muKPC^X^x(K{BSwOJU_(LcZ>1}E>5IpyKxOR_`$ zCY1a`qVuu3qwJ7f^`#nXIE(cib(idFM0uvuQAWA7jL@jhg&D;jkE0iUye@KUEcW7< ziyTA&CozS95Oo;a|m zK6AJ#n-LyDiUUc1Oo8BPh@G1x#%M$5$Ocg#2Z~;by5jT_~kt@d>j$WI= z*KPqEINYMps-O{R(1x&G5olMIY*+*umPHMkmkp~#O-46g0o;;SC+m2j!eyM>rh{PW$9FH{7cv&3t%=) z(#t5}NRsMvi>sZl4n&v7L?h=tgf~wYp1Zx+U2SydY6tSum`hjH_nGgZV(xSm`fQ_l z_nQOxaJ<~k@-`Qt)o8F zmKJ+gKwN~ezDTx9V@?ECr$#siucpesbZ+oZVToTt_zdA|gl`e*2v-rlM>q`FVVZvq z3>>nk3`0B41P2Hy@jOFjk#$tMU^1hg?h8xyoK z!NVo!iUcz*aS$FL{D$xl;dcZV;SU54ptCo5#91OU+lJr@t=pOtnfY$3)e+hIt#*5H zRp_(rm6pieYs|Mg%MGD7?>9OkvwCM?xg|2)Rj*x=6NIM#9lii~ zqCFVMd1PW(IZ~&dRaW5X$q0#+O)tG(yanF`vi;$gM1ogn0z>K4az_&*JKM$B3T4?JkIlTyPVI@ac fP>>ZF%nU;_G!uRmy;7)Hm8r^9Hk&0`xMlwbe|=HI literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/colorama/__pycache__/ansitowin32.cpython-310.pyc b/venv/lib/python3.10/site-packages/colorama/__pycache__/ansitowin32.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c7a9bb6509d731d41bbec994056ce40ec7acc88 GIT binary patch literal 8504 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 Qj`LY^4pcs{qEEl}|3cf+&Hw-a literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/colorama/__pycache__/initialise.cpython-310.pyc b/venv/lib/python3.10/site-packages/colorama/__pycache__/initialise.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..35b7f08a591bcaec40782c3cceb65968c4ed5794 GIT binary patch literal 2249 zcmZ`)OOF#r5T5RNdi-EnST+d+EJPwX0vy;=q=15wta9>&6$oFf!QJeR8P8bV?KMjr zDamq7@*5T@7yi;*bK=Y`QXpUT?0{LsjJopw zV)7lD-iHv5V3{+ldNyQs&WBuZ;b!jC8+yzUp75VJLtg|UL?4KAA{NbOY#54`Xk#T3 z9dQbML$XOM*2L*&&LJB%#kx3y)s{FbHqf`Ff9T+A?5@+>e2KH2!Al0&V`cMBuG5|3 zewuIH9Fu1Ci7@#dP2YwPPC^ZSCLGNbEb-9%r;!PcLK8h_%()MXyN>6W#=%8~6PfeC zt}L7$A8hyHvRSBfcchId=H}f*DphtCDw)lssFka8(l-+$pQL6aid>c(kJ2YFU8K1v z7J4);a$RJy3@V#4p65#LrrJnVHk8!TjFK!XJ9msx>BG5^KPpwI7mn)SURM13pubm4 zWq+b?-uR|JQ^iD%jqayeac!F9$*xrWeVOm~v-Dwqc3}33eCzs+ulqVR^4csJKZb?w zkBh8O$u#Mwd1}%mOSQZ{J18&0&zT&hIo!#U3>So(qeq1r8L5qKP=L=tc-&*2Yn#jY z8gH?H^Vez(st=IiShUDoz`!8JbEaCxG3<~X@#lm!aG>^r4SKF}VWm70pykT7s{ov; z6e@=Do4T+dE_0SU)r-3w!t<7%W}gHqO#nvL)Yj51DEkCg8^J%O80u=1mhBk9J_6d+38OeB>q}*;=dXuxePV;DnW*G)%02FwLWuX%poHPvZKr zJ$LZ*D)H#nc9Ln?1uq_DDS+%QQnS}h@`G++_N3}2YWLQTn#-MDr*yGg#`ltJUeTg- z^?@#fila7Yb^;D6ANN&s`?5)=07)g2sS0VCaz#=4mr>0<8^4}cHj=q1EDg&LF6~QY zN*{aES?SSt-qBDI6s1S}`2r)|g;?hi3;ck^JYXF+dQWazY{{VAS~6%O;ZeCl;qwQjkAksvbNhv>KEwIyJc&;sc6tp(S1zMjmKbE_ zR8dx1s4H}B0@;ArofMEBFXLP;>Uvd=i6?K%N`>bqlesn{l&q5l>nD6h(+6Wpd%Vax zz7DJdwvL8aa`h$DAH}bEMm%i@=N?MHeJTgXrJx!uoC;-b zIb$KhEj(lc2>*CN{Yl^3bx}jHdSXU&CIQWV?QjmL*SYFp`ksTBJ9T|h7cr@+Md;f& zSJbj;^Koh^ORYWH(>b+u~;b($Oq)exj?gfe>dx9p4iftK^;S4apkFwf?(qcmE1SSA{6Cr6m zW_3MpdoV!3sft95LO>D452d1BGr^D86qcb?y{5un)oaRdiBRATN{pdmzdYdRHQ544U|Llj>qyPW_ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/colorama/__pycache__/win32.cpython-310.pyc b/venv/lib/python3.10/site-packages/colorama/__pycache__/win32.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..105b510b7e590b8d73205422945f6ac83c1477d4 GIT binary patch literal 4459 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 Pq|(e8bJFlLGpYXpXu<42 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/colorama/__pycache__/winterm.cpython-310.pyc b/venv/lib/python3.10/site-packages/colorama/__pycache__/winterm.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c938f82efabd86c3a91290565270b782a7d1d449 GIT binary patch literal 5155 zcmaJ_OLyDG6~^F2kfJE+VN120M0T8{Y-1~N+NMs^SPxT*P9@4E={RD~DGtSfEHV_K z4j?O1snec1+ho_hv~(9;^rv(=i*CBoI=d|5es=)yWx3>;i+KX~e)pR@7x2f&Ga7!k zQh#p#=enl-ml}gV2aQFPAcQz^xW-vq+h;Y#v?p3;+|)e%_zKhL&vkBmqt)29)?r5) zH@Vd|_RX5fv^9;}JoSynQ=awQsM%;cJdJi*wNq$k_!!z_s_pPBAIF{2JXg^Q6Bl^0 zR$y}csTaC_u)A09@V3`r)E)n*uA{7=1f+5ZJ)g6`v4UPYnXc|NgZXCAc`uwlYIeAP z6x_t^Qd^ax5WYZ_xi2(fVc8E~EbRIF-a;$5_u>781L3#4Mi?wK+y0&XdZ+%>6ARD0 z&a;Jfb7$e;INb9)AKm@%gN2|OdUp=$jju2xSZMfdU)1;O3wT)QiT%3=$AXlj2Lx1c zm}*~;)_A&wc^}IwRx`L>Gr3W-xLLEgRZDTZ=I|8Ia%vf# z24WfMJZW}TNDV=E5h;iZdh&%q!X!c3T-YRNv{V?Aj_Y>n`=0B{jO*_E{IE^+tn2>i zu-=YGtmTcRmETEodE;?WT5IKEu_Vov?WK}5%EgB=wYjubELE4Jy{1X!_Kwx*5lH{0nG_Cq14A-(PmK;+amR$H1)osG-19- zQ@?}gE6sIK+~5W`am8lgHm(+*S6hR@wKw?~&wj(;;G2A$=TLL_Ek42XsHIVx!{^WyTRW;ZGyka-@^PnPXVfTWC~QNf~BwQ zCsKQb)cy=2)XrF_we)k=GP;^;cC|CBtF_E?!~tAw^rdiha82Wy!F7x?$Sl|J7`>z% zQ5YBG3VChK3s?M3;J3X>LwH_i`EYmF6YHH_U)q)G!>z|vId-%ZhN8K17Din$E-V%$=mG)iIus{~U18>VWb+FPC1g{cWrR4+%&X^N;|AJ>P?E5Ijc)Q< zE5)y|Qrw4tQpD4U*?pzvsc%Rr+OXm`)J?XGs`Oj*EmQxe5PcnhBj&M+8JB8BF>(_nIt~<2fM`5{NG%*vkC;GZg%*7P z5i_yVp@!}V>jL?;KlueDIOlDV5RLrAz2gjqprs?METM#nOk5&#v;EP8-GOecHk?c#!whNJ41hGLn z2l3d5B{EBKFd6&R6gqF-t+xGp&IYvA0a4=dJ6Bd6%sq z{v|&GogT1)63{c1Wni3elx1|{8(p0Dr&iZ$!B;rIEW{r+tL^HiHs;t}vukslA>SGi zLkmV}6@k~T^VVSy7E&W1h&4P#6iGZJ@i_!0sS|^JE!pva{RD@cjBe!dp3S4a9&bdL zL=*S1NFfrTkzq6VpIk{08Jerkg(0_7{z+gfK>m%20)#eX1W4>^0AhB{mI)|G+A|se zO4=!Eqm^n|v)ZW*;;^rDaffKid4L(me4ZwunxasqNRWC%vQ3J28J5@Qbc%i%#K0`Bku;6GK7;;t~Pcj@rZ=l(!ZygB1oBPbf73V$J<;~ zsiPm|9#iv665Avw97RF}y-WmeyV>#nj*(y?;`TBCrIWi z_}oN%G_^1lI=lMu{ph39HeOgN+L16x}b@%hktA8*a5&-dr!C@~FJEQmj^%J!?x7ewg(O5rBmrZY4hEY)0(7w1 zewoK9uD=w!m|4On9eY1`))287W9$0|z6jOxWt0F)+uxzDRqDfu`VgT!rPg2ObLo5< fedGCzJ`n|1A$07YEdKh-td%$NV|h#aOLq2uz`7(U literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/colorama/ansi.py b/venv/lib/python3.10/site-packages/colorama/ansi.py new file mode 100644 index 0000000..11ec695 --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/ansi.py @@ -0,0 +1,102 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +''' +This module generates ANSI character codes to printing colors to terminals. +See: http://en.wikipedia.org/wiki/ANSI_escape_code +''' + +CSI = '\033[' +OSC = '\033]' +BEL = '\a' + + +def code_to_chars(code): + return CSI + str(code) + 'm' + +def set_title(title): + return OSC + '2;' + title + BEL + +def clear_screen(mode=2): + return CSI + str(mode) + 'J' + +def clear_line(mode=2): + return CSI + str(mode) + 'K' + + +class AnsiCodes(object): + def __init__(self): + # the subclasses declare class attributes which are numbers. + # Upon instantiation we define instance attributes, which are the same + # as the class attributes but wrapped with the ANSI escape sequence + for name in dir(self): + if not name.startswith('_'): + value = getattr(self, name) + setattr(self, name, code_to_chars(value)) + + +class AnsiCursor(object): + def UP(self, n=1): + return CSI + str(n) + 'A' + def DOWN(self, n=1): + return CSI + str(n) + 'B' + def FORWARD(self, n=1): + return CSI + str(n) + 'C' + def BACK(self, n=1): + return CSI + str(n) + 'D' + def POS(self, x=1, y=1): + return CSI + str(y) + ';' + str(x) + 'H' + + +class AnsiFore(AnsiCodes): + BLACK = 30 + RED = 31 + GREEN = 32 + YELLOW = 33 + BLUE = 34 + MAGENTA = 35 + CYAN = 36 + WHITE = 37 + RESET = 39 + + # These are fairly well supported, but not part of the standard. + LIGHTBLACK_EX = 90 + LIGHTRED_EX = 91 + LIGHTGREEN_EX = 92 + LIGHTYELLOW_EX = 93 + LIGHTBLUE_EX = 94 + LIGHTMAGENTA_EX = 95 + LIGHTCYAN_EX = 96 + LIGHTWHITE_EX = 97 + + +class AnsiBack(AnsiCodes): + BLACK = 40 + RED = 41 + GREEN = 42 + YELLOW = 43 + BLUE = 44 + MAGENTA = 45 + CYAN = 46 + WHITE = 47 + RESET = 49 + + # These are fairly well supported, but not part of the standard. + LIGHTBLACK_EX = 100 + LIGHTRED_EX = 101 + LIGHTGREEN_EX = 102 + LIGHTYELLOW_EX = 103 + LIGHTBLUE_EX = 104 + LIGHTMAGENTA_EX = 105 + LIGHTCYAN_EX = 106 + LIGHTWHITE_EX = 107 + + +class AnsiStyle(AnsiCodes): + BRIGHT = 1 + DIM = 2 + NORMAL = 22 + RESET_ALL = 0 + +Fore = AnsiFore() +Back = AnsiBack() +Style = AnsiStyle() +Cursor = AnsiCursor() diff --git a/venv/lib/python3.10/site-packages/colorama/ansitowin32.py b/venv/lib/python3.10/site-packages/colorama/ansitowin32.py new file mode 100644 index 0000000..abf209e --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/ansitowin32.py @@ -0,0 +1,277 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import re +import sys +import os + +from .ansi import AnsiFore, AnsiBack, AnsiStyle, Style, BEL +from .winterm import enable_vt_processing, WinTerm, WinColor, WinStyle +from .win32 import windll, winapi_test + + +winterm = None +if windll is not None: + winterm = WinTerm() + + +class StreamWrapper(object): + ''' + Wraps a stream (such as stdout), acting as a transparent proxy for all + attribute access apart from method 'write()', which is delegated to our + Converter instance. + ''' + def __init__(self, wrapped, converter): + # double-underscore everything to prevent clashes with names of + # attributes on the wrapped stream object. + self.__wrapped = wrapped + self.__convertor = converter + + def __getattr__(self, name): + return getattr(self.__wrapped, name) + + def __enter__(self, *args, **kwargs): + # special method lookup bypasses __getattr__/__getattribute__, see + # https://stackoverflow.com/questions/12632894/why-doesnt-getattr-work-with-exit + # thus, contextlib magic methods are not proxied via __getattr__ + return self.__wrapped.__enter__(*args, **kwargs) + + def __exit__(self, *args, **kwargs): + return self.__wrapped.__exit__(*args, **kwargs) + + def __setstate__(self, state): + self.__dict__ = state + + def __getstate__(self): + return self.__dict__ + + def write(self, text): + self.__convertor.write(text) + + def isatty(self): + stream = self.__wrapped + if 'PYCHARM_HOSTED' in os.environ: + if stream is not None and (stream is sys.__stdout__ or stream is sys.__stderr__): + return True + try: + stream_isatty = stream.isatty + except AttributeError: + return False + else: + return stream_isatty() + + @property + def closed(self): + stream = self.__wrapped + try: + return stream.closed + # AttributeError in the case that the stream doesn't support being closed + # ValueError for the case that the stream has already been detached when atexit runs + except (AttributeError, ValueError): + return True + + +class AnsiToWin32(object): + ''' + Implements a 'write()' method which, on Windows, will strip ANSI character + sequences from the text, and if outputting to a tty, will convert them into + win32 function calls. + ''' + ANSI_CSI_RE = re.compile('\001?\033\\[((?:\\d|;)*)([a-zA-Z])\002?') # Control Sequence Introducer + ANSI_OSC_RE = re.compile('\001?\033\\]([^\a]*)(\a)\002?') # Operating System Command + + def __init__(self, wrapped, convert=None, strip=None, autoreset=False): + # The wrapped stream (normally sys.stdout or sys.stderr) + self.wrapped = wrapped + + # should we reset colors to defaults after every .write() + self.autoreset = autoreset + + # create the proxy wrapping our output stream + self.stream = StreamWrapper(wrapped, self) + + on_windows = os.name == 'nt' + # We test if the WinAPI works, because even if we are on Windows + # we may be using a terminal that doesn't support the WinAPI + # (e.g. Cygwin Terminal). In this case it's up to the terminal + # to support the ANSI codes. + conversion_supported = on_windows and winapi_test() + try: + fd = wrapped.fileno() + except Exception: + fd = -1 + system_has_native_ansi = not on_windows or enable_vt_processing(fd) + have_tty = not self.stream.closed and self.stream.isatty() + need_conversion = conversion_supported and not system_has_native_ansi + + # should we strip ANSI sequences from our output? + if strip is None: + strip = need_conversion or not have_tty + self.strip = strip + + # should we should convert ANSI sequences into win32 calls? + if convert is None: + convert = need_conversion and have_tty + self.convert = convert + + # dict of ansi codes to win32 functions and parameters + self.win32_calls = self.get_win32_calls() + + # are we wrapping stderr? + self.on_stderr = self.wrapped is sys.stderr + + def should_wrap(self): + ''' + True if this class is actually needed. If false, then the output + stream will not be affected, nor will win32 calls be issued, so + wrapping stdout is not actually required. This will generally be + False on non-Windows platforms, unless optional functionality like + autoreset has been requested using kwargs to init() + ''' + return self.convert or self.strip or self.autoreset + + def get_win32_calls(self): + if self.convert and winterm: + return { + AnsiStyle.RESET_ALL: (winterm.reset_all, ), + AnsiStyle.BRIGHT: (winterm.style, WinStyle.BRIGHT), + AnsiStyle.DIM: (winterm.style, WinStyle.NORMAL), + AnsiStyle.NORMAL: (winterm.style, WinStyle.NORMAL), + AnsiFore.BLACK: (winterm.fore, WinColor.BLACK), + AnsiFore.RED: (winterm.fore, WinColor.RED), + AnsiFore.GREEN: (winterm.fore, WinColor.GREEN), + AnsiFore.YELLOW: (winterm.fore, WinColor.YELLOW), + AnsiFore.BLUE: (winterm.fore, WinColor.BLUE), + AnsiFore.MAGENTA: (winterm.fore, WinColor.MAGENTA), + AnsiFore.CYAN: (winterm.fore, WinColor.CYAN), + AnsiFore.WHITE: (winterm.fore, WinColor.GREY), + AnsiFore.RESET: (winterm.fore, ), + AnsiFore.LIGHTBLACK_EX: (winterm.fore, WinColor.BLACK, True), + AnsiFore.LIGHTRED_EX: (winterm.fore, WinColor.RED, True), + AnsiFore.LIGHTGREEN_EX: (winterm.fore, WinColor.GREEN, True), + AnsiFore.LIGHTYELLOW_EX: (winterm.fore, WinColor.YELLOW, True), + AnsiFore.LIGHTBLUE_EX: (winterm.fore, WinColor.BLUE, True), + AnsiFore.LIGHTMAGENTA_EX: (winterm.fore, WinColor.MAGENTA, True), + AnsiFore.LIGHTCYAN_EX: (winterm.fore, WinColor.CYAN, True), + AnsiFore.LIGHTWHITE_EX: (winterm.fore, WinColor.GREY, True), + AnsiBack.BLACK: (winterm.back, WinColor.BLACK), + AnsiBack.RED: (winterm.back, WinColor.RED), + AnsiBack.GREEN: (winterm.back, WinColor.GREEN), + AnsiBack.YELLOW: (winterm.back, WinColor.YELLOW), + AnsiBack.BLUE: (winterm.back, WinColor.BLUE), + AnsiBack.MAGENTA: (winterm.back, WinColor.MAGENTA), + AnsiBack.CYAN: (winterm.back, WinColor.CYAN), + AnsiBack.WHITE: (winterm.back, WinColor.GREY), + AnsiBack.RESET: (winterm.back, ), + AnsiBack.LIGHTBLACK_EX: (winterm.back, WinColor.BLACK, True), + AnsiBack.LIGHTRED_EX: (winterm.back, WinColor.RED, True), + AnsiBack.LIGHTGREEN_EX: (winterm.back, WinColor.GREEN, True), + AnsiBack.LIGHTYELLOW_EX: (winterm.back, WinColor.YELLOW, True), + AnsiBack.LIGHTBLUE_EX: (winterm.back, WinColor.BLUE, True), + AnsiBack.LIGHTMAGENTA_EX: (winterm.back, WinColor.MAGENTA, True), + AnsiBack.LIGHTCYAN_EX: (winterm.back, WinColor.CYAN, True), + AnsiBack.LIGHTWHITE_EX: (winterm.back, WinColor.GREY, True), + } + return dict() + + def write(self, text): + if self.strip or self.convert: + self.write_and_convert(text) + else: + self.wrapped.write(text) + self.wrapped.flush() + if self.autoreset: + self.reset_all() + + + def reset_all(self): + if self.convert: + self.call_win32('m', (0,)) + elif not self.strip and not self.stream.closed: + self.wrapped.write(Style.RESET_ALL) + + + def write_and_convert(self, text): + ''' + Write the given text to our wrapped stream, stripping any ANSI + sequences from the text, and optionally converting them into win32 + calls. + ''' + cursor = 0 + text = self.convert_osc(text) + for match in self.ANSI_CSI_RE.finditer(text): + start, end = match.span() + self.write_plain_text(text, cursor, start) + self.convert_ansi(*match.groups()) + cursor = end + self.write_plain_text(text, cursor, len(text)) + + + def write_plain_text(self, text, start, end): + if start < end: + self.wrapped.write(text[start:end]) + self.wrapped.flush() + + + def convert_ansi(self, paramstring, command): + if self.convert: + params = self.extract_params(command, paramstring) + self.call_win32(command, params) + + + def extract_params(self, command, paramstring): + if command in 'Hf': + params = tuple(int(p) if len(p) != 0 else 1 for p in paramstring.split(';')) + while len(params) < 2: + # defaults: + params = params + (1,) + else: + params = tuple(int(p) for p in paramstring.split(';') if len(p) != 0) + if len(params) == 0: + # defaults: + if command in 'JKm': + params = (0,) + elif command in 'ABCD': + params = (1,) + + return params + + + def call_win32(self, command, params): + if command == 'm': + for param in params: + if param in self.win32_calls: + func_args = self.win32_calls[param] + func = func_args[0] + args = func_args[1:] + kwargs = dict(on_stderr=self.on_stderr) + func(*args, **kwargs) + elif command in 'J': + winterm.erase_screen(params[0], on_stderr=self.on_stderr) + elif command in 'K': + winterm.erase_line(params[0], on_stderr=self.on_stderr) + elif command in 'Hf': # cursor position - absolute + winterm.set_cursor_position(params, on_stderr=self.on_stderr) + elif command in 'ABCD': # cursor position - relative + n = params[0] + # A - up, B - down, C - forward, D - back + x, y = {'A': (0, -n), 'B': (0, n), 'C': (n, 0), 'D': (-n, 0)}[command] + winterm.cursor_adjust(x, y, on_stderr=self.on_stderr) + + + def convert_osc(self, text): + for match in self.ANSI_OSC_RE.finditer(text): + start, end = match.span() + text = text[:start] + text[end:] + paramstring, command = match.groups() + if command == BEL: + if paramstring.count(";") == 1: + params = paramstring.split(";") + # 0 - change title and icon (we will only change title) + # 1 - change icon (we don't support this) + # 2 - change title + if params[0] in '02': + winterm.set_title(params[1]) + return text + + + def flush(self): + self.wrapped.flush() diff --git a/venv/lib/python3.10/site-packages/colorama/initialise.py b/venv/lib/python3.10/site-packages/colorama/initialise.py new file mode 100644 index 0000000..d5fd4b7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/initialise.py @@ -0,0 +1,121 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import atexit +import contextlib +import sys + +from .ansitowin32 import AnsiToWin32 + + +def _wipe_internal_state_for_tests(): + global orig_stdout, orig_stderr + orig_stdout = None + orig_stderr = None + + global wrapped_stdout, wrapped_stderr + wrapped_stdout = None + wrapped_stderr = None + + global atexit_done + atexit_done = False + + global fixed_windows_console + fixed_windows_console = False + + try: + # no-op if it wasn't registered + atexit.unregister(reset_all) + except AttributeError: + # python 2: no atexit.unregister. Oh well, we did our best. + pass + + +def reset_all(): + if AnsiToWin32 is not None: # Issue #74: objects might become None at exit + AnsiToWin32(orig_stdout).reset_all() + + +def init(autoreset=False, convert=None, strip=None, wrap=True): + + if not wrap and any([autoreset, convert, strip]): + raise ValueError('wrap=False conflicts with any other arg=True') + + global wrapped_stdout, wrapped_stderr + global orig_stdout, orig_stderr + + orig_stdout = sys.stdout + orig_stderr = sys.stderr + + if sys.stdout is None: + wrapped_stdout = None + else: + sys.stdout = wrapped_stdout = \ + wrap_stream(orig_stdout, convert, strip, autoreset, wrap) + if sys.stderr is None: + wrapped_stderr = None + else: + sys.stderr = wrapped_stderr = \ + wrap_stream(orig_stderr, convert, strip, autoreset, wrap) + + global atexit_done + if not atexit_done: + atexit.register(reset_all) + atexit_done = True + + +def deinit(): + if orig_stdout is not None: + sys.stdout = orig_stdout + if orig_stderr is not None: + sys.stderr = orig_stderr + + +def just_fix_windows_console(): + global fixed_windows_console + + if sys.platform != "win32": + return + if fixed_windows_console: + return + if wrapped_stdout is not None or wrapped_stderr is not None: + # Someone already ran init() and it did stuff, so we won't second-guess them + return + + # On newer versions of Windows, AnsiToWin32.__init__ will implicitly enable the + # native ANSI support in the console as a side-effect. We only need to actually + # replace sys.stdout/stderr if we're in the old-style conversion mode. + new_stdout = AnsiToWin32(sys.stdout, convert=None, strip=None, autoreset=False) + if new_stdout.convert: + sys.stdout = new_stdout + new_stderr = AnsiToWin32(sys.stderr, convert=None, strip=None, autoreset=False) + if new_stderr.convert: + sys.stderr = new_stderr + + fixed_windows_console = True + +@contextlib.contextmanager +def colorama_text(*args, **kwargs): + init(*args, **kwargs) + try: + yield + finally: + deinit() + + +def reinit(): + if wrapped_stdout is not None: + sys.stdout = wrapped_stdout + if wrapped_stderr is not None: + sys.stderr = wrapped_stderr + + +def wrap_stream(stream, convert, strip, autoreset, wrap): + if wrap: + wrapper = AnsiToWin32(stream, + convert=convert, strip=strip, autoreset=autoreset) + if wrapper.should_wrap(): + stream = wrapper.stream + return stream + + +# Use this for initial setup as well, to reduce code duplication +_wipe_internal_state_for_tests() diff --git a/venv/lib/python3.10/site-packages/colorama/tests/__init__.py b/venv/lib/python3.10/site-packages/colorama/tests/__init__.py new file mode 100644 index 0000000..8c5661e --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/tests/__init__.py @@ -0,0 +1 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. diff --git a/venv/lib/python3.10/site-packages/colorama/tests/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/colorama/tests/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5a775f7105a446f7b85e3e2dac1f4bd758515448 GIT binary patch literal 186 zcmd1j<>g`k0wwn9Om86l7{oyaj6jY95Erumi4=xl22Do4l?+87VFd9jRzD*@H&s8Y z*vQaQzn~~TD>b>KSU)o-UpF@~FEKr}NWUyKuS`EDGfBUovLquv&sfjUK)*P%BvrQ{ zF*zHkqF6sUKPSH^F*i}aB()f*IX*r!FS8^*Uaz3?7Kcr4eoARhsvXGMVkRKL!TkRhtD|g1T%ZSVUu_S`OnTyRp~Xu}K8& z8~GvaBY$aL`;^z_tuO64Gf*5LQf>J={?5!f<8$#$TCZ0WxNetz9o?)d%AZJzmk#7E zJlPn4DwM>Ek5Y|EqWWs0`5IBEM)g=v4Btph-%Lt=N$8B&O3HqjD3LO*_*KA~U*Axu zNlVWaT8h*Y&2L0aYCTceN~E1AU`2MsW0zmRddk37xiyTkd@al(t|#GW@E39vvV4FJiWeH*g(q_XBE=_E@l{Hw`dslf3<0E0 z4QhfkXo*@NOvnc-g zRAFsU|NWEmI87pFoGo{{&XlF&=pfIWQJgL$;Us(%G3RMCdFsTYhtBjUf1FNM7CTE$ zHp-)gDdZ4lWX?evrz}iDCx_TFCxkQx__{bf;zkzbyVC~7hC#NqIda@M&%>e^ypj#f zwa7*bUUJAqpynE&j!`pgIose>8C;OE(IZv|9m7S08p4$7CaTeih*iQY&a(0-Wb5g( z$qiuQ!%R{k$20$Z*!lRCZ#%El%fG-wD+ zvLddmh${=~LP5>>{mv5D3keQ{1P?-j3n9UWkl;i}@FFA@mSL#OKzJKr9^n?kI|%P0 zyoc~U!UqVL7xp2-M+hGye1h;P0`8*BM)(}zx*b3y98ZCZggZF*OMpx1e0A1q)0r)T z>Hpsm#NVV3j`jI{neAl|Kst$S$b^)@AJ^75x41dDzrEG#b8~eYJNDXuX0e0BQFalL z2Ocu~QLtU0O>Vu?CYL4;Y>Qh#FbR_=2zVt3l9V3C_+ASFJX+)k!!48DMEC+>0ilC{ z=Scx@qh)1)8ax?-rC6$ET81@On-e3r9v;g$?ik|M?e(EC$B_ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/colorama/tests/__pycache__/ansitowin32_test.cpython-310.pyc b/venv/lib/python3.10/site-packages/colorama/tests/__pycache__/ansitowin32_test.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aaf08f7e653a7f1de1a5dfb06da2b1b37ca4c506 GIT binary patch literal 11589 zcmb_iON<=HdG6QD^v=!>cS(v`K17Ms%OgtM7wK3Tn$n6dF%gHfxDunamGN+@cR8z> z>1B7XNRF4blVxDpfFc<2C5Zx1&WZQHmt1lQ;7cyK1n3-+AP5j%auEU~3Pk4n{_1(p zN|fapbaho%*XyhQUF}ayWDWcdXMRxoRlzX+orT_?i^8k8!v8{|3}x1hhPiAutYyn& z*{a(OXW40_mQ$wDa`D8jryH5&jA>jknmZiBb8kIw8vIM$n67)rXqq>SRu0dcdbTmX zJl@DH=Nc2s6Vh&%v^&>n=hXB4@96d_rPB2sjmhQ7#?Q0StQx;#sBzEPvX}RuoKq7hPe}Q3Z(8Nwvw{sTwZ(bvxGYy;@;=sV6s*|2 z90j%J>iLWD#FBS2I)Cv>P+4F10#+?~VRWhzda=`})S3k|9y@ch7F~`i)%OZ^Ja(b7 zTB~00tMA2*q^b2vRK0fJ(jAX4HpAMIf2G!3n2#qgidShQecvAi}hr6pLE*ph>Jk>WpuDi<7+dmr_2iGZF z;d4kLW6QX0M&>34-Lh_5o5o#h(^|7P%{6<&_{1bdTsH2RrGgWX%z_+}I9mxrFNl_~ z8}WEhX)3=_u0&A)FrCn=uf*8~(9~0jGdJ``+%tk{H2%z+x#l;#nYD0!?&X>Fz+dyK zQ8-hp`!6*r&C045%)IY4-=C@1uFkCAimv(1g`;z`Ghr?AURuY7;f-*n>ev0C(x}Wt zSYbF*!45_K4en5xPmZqNigV1I4;L>5{>@u^FmRYgk~XvE9jtZ$B zOj9=kEHT)H=kZvzQm>aQ!DM6hZKCt(K;Bi(EQl0GOD?7Q2(_Y$50wis6^;vV;Y&|o2{rwGxP#^&a3YU;+Q;whjn%OkBtdAxH2V3KC1+?Sf zzh#?7)15QI{WpLP|L@=eN)Av;b!f~gX;9J{6mo@7TX29m!6jX-`=O`Wpd3U+Y=*J5 zvOb8z?mirVSp=DI81IK9U?P#j|G>jZtM%NMV39QLLxc1%hD*@+88Tfoz&TdgjvV5G zHKroa#79SN+fiCm3NUguox7P47)=7B=Xx>fMUZ?rSjPJ&d*A0f!Bdz{!3{FF#rZ{W zW$o%lWOH7J6Y9dQfSH1OtIQFC8GCaO6F!w1nl6)Z&!TmX>eh8i_O4H!Ahu5Nhw)f2)vKd$aWpp8?73Z`5~1f%?g`l1z9gCf$rLjSg=a8$|@U? zA9$e`wKd~71_(%TZ7V_rq?tqkw9O3VZ$z;pjc3@PyM3Y)UDD+FW-WRJl^so(GxOxT z>4EiWI{+_#cA#x!9PKeLj>5=*{A`pyduqGt%6d(VkUoN-5ytBru1^V>G9jwTX);?F zl4f~m-Y4pn##L20DUB$k9AkLC?U(vChP>O+)~}-wVZbf(qdky^5CyRKsIN`YP$Cnl zg-2+YCkC|(HY&E7+@DF#onr*DNur-qVC&j?A}oWKSvhJ$rnwxFZ=l-*fN27tEM)K|)@=xU!O9QNrsQ3n+*Lix<8Ci-G1tXmm{2 zx6yIiT+u|p(xz3mk~_>dl)#;LQ_4yV+O!z7skKZ}c2Tz1#+2P>;5wzH*sffy-ZO*W z!zhJp4}nlT#8YDAmfiA3T94BXQeB+{C&SN(coPyd07$ zNjm()%&;acSi4V;f^DGn_IP~{T|Nq4f?5iwr8}r)1SL1YY)mjruVsf&J1cMnzmJg$ z;{%ulq+UTO&a^S>z!h9zrKsd>u@Zw!R(sm_!ji8!kC1#Hjl-Qtx`+|8ytU746}H7} zu$QGOrA_N-20xX>AchIb^6R)<9xC>Om9Km=-o7 zb}pjxcudqq88jn`0ct|aXYDiyFodY>F|duiI8rW6X|u1~QA1$^?~B5x!AgpPwPx+M zT89SF8EV-_Pn7%w<`lalBWxOL5Xj2$=5wQ$UsxZHf4ub#xZy9ikzF z>N9(yUV};MH`Y)7Is0ShyN%ZQN7&dzZ`A8=SL!vz21ifSeJG#sBr@$@wMaH&8_Ov4 z2%k7B5gG`ah54XEq;XbDBZg_T*d`Ij`A#&a%#Pc#h*TUqsuES=6w-~x;Od?oL65`J z-r~X;9-@_i|Bf7}+kt6|Ajbpe^Vad-2#ldUql_0qrI3=hfQ-TJ+E@_M zwMwn*{_lctkjym@oe-N*#5fs8gGK${1yidw8Y_>4%X_u;@JwSpx^=l(L)bS8{|YU8 ze9PVDqaiWWPahH#cO8}wQ0O87^$&(m7~gIinRw=qk?G^nzxy~vVL$-@fiV3&xJHNu zf$8t26OjPj*DpGW8Bua&RtR+XWc$I}jyi}Rj;-FZZEf&e-!5?44Jtw;|h+7!ZTat>@MTw8bDE*i6IvB6HtC()OuDXpALxAY#A+=qwPO za>pjxJ`CjtwN(UR=sEuly6?oITr+32PK`q1EA~2s#fWezFi1jlw1p5pewyJrT0bhq zfXGKVl%X@}sP;Oi5=?%&*DD*Uo$sv`k(7j*k*6;seoUfOxAFA-@F;^t0XH!CHj*l? zz8`fI^;mF{$q^>q{pjXMx4|NkzhmY#B&|y$5#~Y3BW+o)s?s3>h*Y5(As9lf>4#pq z_OL{_3WHwfv;Nt|67?uQ^7wy?E<$!8j)Ubq%vsKZtbO2f>&FL-oHJ>*PJX=w_E8TP z)}fvsqCj6>=;ayE2W{szz2IOnf>*C&okKLy7t9!{eQ|(d#A;1MaS9?j&3r;JL4;ZS z7763m>`n;dJ6{F2MlB3+UrPDv#UbG-ZG;;7*9|K&>`N9&*gK z9eIqH#owb3G49-iHgdhR@ygd+V;^x)Bh!u$F-s!v)yO0h8rE6^f1DBBivT!uZ$8nz zJgYPBI*NMNO7!e5*=DyCyo3JWQ)PLxv`M-{^7n1rYQKg6D5UOF0p6ztcK;9)vfzD* zQf6YKWfhCDIp4}ach1fii!B>waVy8tLa})4_&4z=KL=}hzPPYZJa(*j{CI3O5Kii9 zRr;XX#ji8hWHP|MQxyAWw93`$?;r4%aA>wi-BIbK|95f>>h9sN3p>$OaJm_;J$wh+Y0?REkeU{g$&BB5^;@r5prG@Z>@3`A1wqAFA{l zI+BX4+%*WvIXEV5#9L4y-W3h9=!|J~V4%SBpT@qM>7&0PCPL(VVCQ7x)_8P?2gTQfhp z=G6Xoi(m8SYO$N?Zm-s368jXtdJG3edXkAdUiCL{G?CVN>}4)?hRK^uDoA3d>ML)6 zJmb9B%zju!NLqQ}f8xa?j7(1&9<`f;H+}fOTL(w&db!iEZ?h>Xx!E>*dkuPmoBh!* zerj|DrLYrJ(-y@bgk$>{P)cwW^`W4Ya2S}ph2y}U=QtE>m*{vxy_sr~pQF$YLfKYR z47sYE45-2p-GzG!L080`U{f=~pHaIbHxa~Ro6cG`v3Qst@8<93K9P@s(0?8Wj&fX? zjL|#h=zb@9`enY|FY@hvN09Je43Y4jQkBxW{bN3Zi#D#Px(|%ISoS8tBtMBCEwpdr zlpmj8!3)MmG4PBh^fwUjqWD#akQL;Yh^}ks3@RfP^4l;?DIzJ%_0KpA$Halc!bnPJ zR-)SbUKuioXIVJp=#43@|F&($2bhYs8GrYy&!&B7*xJ`-c^+&o%rhN%eu=^0q<%Gb z=V51tPxOw$AsmNW0d2ZCy;7@tOgn-*O{DVa*>V3^~WyaABblG^Hp4lKVxmae`WlHhEa!}1DKz)C*d+V z7{Db*Qd+rjd8}p^+=C&>*1tLlqT)Tg7G7_hIshH{|75H BV+jBN literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/colorama/tests/__pycache__/initialise_test.cpython-310.pyc b/venv/lib/python3.10/site-packages/colorama/tests/__pycache__/initialise_test.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0dac367cc396c5244f7b80e665fe8afc7ba6e584 GIT binary patch literal 6886 zcmbtZ&2QYs73Yv#F15Q_OR{WBj$}2yH#a2I()^%;zQtG6Y-B^yAMGKbN8CjIM zav-6WaF4>NMb~>gf+OKE?}AHC_<(XsBgv1i27kF_pv%M3=&ZhU++4TY*?nX{645H8%$$9iNgyRLVkb&zv zQS8RT*$kx%lr(V!TSWC%#6)B~Ls`9-uZ@z+)R6o2EMR;eWRZ3vk3)I1aIMGH~P!<~4}i{^qb zo^$8oc&|n>%zpGuy1I$yc?n=&`$l`F%<4Z0yBbVX(At`Q63H zi^V$)xAqVtqQzS1htjRPi%QLlWF?;Kdy!CjUuf(lxk$wK8`Ib@B7#dsvz)QIpirav zI*swMMn)a8Sa*!r1k7>mo+c-OI<#aFucR1C?*S~1B$gPEUShQxZH$mob>b~gVvZ6( z3TTtWj)g04g}cElTF=P>EoQL-YfiRl%|;B6o5N^QL-b1kQbWwP_1NI-nZdHQ8Rxj( zYFlw$jj&Z^<;#neP@M=%ok63Cb52p~dg@;rf;0g^&GYEACIalOb3;M_q?ND7)m zr8%BXXqg=?6ion3unAUXIx}CCb)DHSny1^s?U^uI!mnYK?~|~SoUz(G*DE=4qb}(Y zwo7`w*ou|dnPf(aWf3VS&#xw;kds4?OYq} z25`C%A$RG@0-)RQly~(+P6`P0e1PXU?M`{%P+whBRu0!^&VbQh_1*dgcdxxgbI3VO zt;^su?6;Mngowc1@P+dzb`UyhNF`qIU?fHIb*v6*R#F-&X!TJeiHNtUpFoYM$$s=r zwx(j;ReZ#h1lZRT6c;Euz$A2ved}-=6MqMAJTimJT6AWYrD^$7;HeKpBzh1Z8gd*f z$uRuK_%p%D>QFez5df7iUwR`&22$IC}9 zw6`54pd}h{tbpVq4S5%!hea|>sb=@__G(7ytx!aP;_yzeT;K7Lzj=$%E0~-zYP1-A zdw|hnrVsdYrc6a^1q#VE!pM6pe@H|Q3(x0=5xE*>ig>?Gp9*O@tzG!@KY zXGqy!&ve^aY;2p)U{hps_|DPy5WBn3Z+9wVRV-O19?9yGQWj!Bj_3+AD)0`I!pxu) zZg0}$Ys5blxCQWEGRkcJ-_2K!kw7|YB=66!W2u&pp%jf7m0N#m@jSxMX8ZZAn5*)~ zSZ58PXUyG+LlxL0nbJ@dU&@%fk&T6)rS5ja_wT|SQB2mO70iFGd=4I`d~R`o(c@Pb z$+r9{)+VwqBUiiylSo15Jp&~luQh})k7G~XJaa`dbL3fmP1MW{6Y zaVX`f)~*zc)t=CTVF-g7!W|5w1VGwUTGUZin5%0m6B;Td~f!gM!cDh5ZMaI1+;+yFyXH7hgZ^W_mHg;msywD!! zb<+0@r0TU0>R-B2GeAl9qwg&2MSnn}ks8S|KBg+?E(Jh-Cumz~!6>jPc9xxE^Z#j{@6p}B zq>&Xu^fyr7l5RDN+`TdE7#Wj%Nus?nw$amr>C_$VwZ?k1Vs_0a^k9npm?8Rd2lQ3y z*4GjFcAwIY$ij~3qWS*HduOK9emV}ZLVLomV z)i0`ZN>qyQYzWz{zjp`6pn!;_amdwDj8xigpUx7?i(Fg>$TQeeULZjAt2%l}rTHIF^G5{UBk&UfR3gY51a1-d zkiZ=RYXmx`(TV&gfS{@|qLgiGWxc>`)6UtpWtLb82RSQ8Z}gy#poQYF#H>7ukjXNW zG{1(Y=SQqu$DOKeeCKfLsbrqA@4{-&x;yrF< z*mh)&;(@eD=LRw*IYWSM3?v=zhn63fqYUIR;pYIFb0hazNQaKzZh{t}?T}cj^gX1Q zQ;K^6WSUr6bAI%G+0BEbljVR&DOf8m>4+uYAke4Ij!x-}^#zTfBgAoAW{J9oNm3qF zt_GgyJ?tB6+l;e^hMbA@);Y{TA1*su5szB9+MpJ>XL@b-1i9^&_PfvjsKqwVeW`6S zrEFY%e7&XW>M?TgeRZ;<)t>0I$`hk^k9`%PztZGK2oGwXeRY`<)BBF&%LSMK~TRzUrqj)H`Q$J>VRP>cK`40Bzkso;iJro$#1bbXG_GVQQw- vs3=aQFoe&tSDGhLrXipBdy$(V)?$gw7j31Kf6P@4T0tacEH8*@N zUbx&(wa5+P69vX$xUnvn??#)RPzWy0_5f;B#`kTEdE8n9(sV>M_}%jMi>VuSU4892j(kCjy8e)vBgj<;=M3vlbW{yiv&^uethRiSQc8QK}jpzE1_ z3C;_b<7~(f*t@W~j3`z4fFsjApE21ceQ``>gyq0mGO*o1Y^`N?69ePuFv5L{hpjUFen7i17%yo*Ho0vr&JiBW43Ld;H+K+i) z7NEtz*ce|4yu3G9sn{Zl65Ml_!0qQ?w_yQCGMV%yR4BYKbN?v6&y(hvg0<@Y^(na6 z=YI*fs2KaOxlF**am7G5x3xq4h@69N2qgn~ViYR5Ft@8E+icV-juwGO*Z}&^FNd;L zs5AzGC1IPw9+v71SqUoM81^BGJ18zg_I4TB;s=EH7?yF|%A_;$d7m!+J$!HtpcBhi z+g55iPV7d$0Mb6^s_<7_w?G{5cQnMci0%K-aD4B|5H5a~;M6!!tN%B*LA*`w1 x7eUC&yp>=}bY*csAJ``-#+1GAFg3r(B7TPVnd1U1=q+WAnrcfmA6is9`w!4rH`D+C literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/colorama/tests/__pycache__/utils.cpython-310.pyc b/venv/lib/python3.10/site-packages/colorama/tests/__pycache__/utils.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e109720285a13ce7a563cd7a7e4f048322c35c8a GIT binary patch literal 1586 zcmaJ>%}?A$6rUM;yS+c_H1Vc zk|m2o1o!?O{7ZA~sb_AzwC{~sSWxL$@A=J}kN0~Y^F*f;5E$PyKjq)Lg#3w<*#SE8 z8c0omal&aqN*Ys&GAmf=#EzAn!i`fUfGUvpJJ(zpE3G=3%H#5q8 z-Z~{GH1g5=H{rHh}p+)>WT`)M{=GsKki$Tocwn z`l9;3_(>0Uv;GgYRkU-{J_75YJ_L3+KYQ)eMQPVBV_x52!QX>3cuw9$hO=v_#GoOe zH|k4ZpNS@W^oUO2pFmCg2AQ7FS{^`p`#oluP{zfm^_aX5XN)UkzH~!f$~;2=8)U>JMKdJ_4IY4Z>%5lbA@( zR*7aOzFuiZ#@4|QDP*V9TL@j-QHiqBUf2~HdtF?`na07Gz zr*G(rnfqmHZT-!!KPT%OgU#>1>op{H7}JDDo=Z{L8k9?*lIR9Bsb(dr1YYsY7&J%Y z;chC+$FNOd<+9@dDrkZFbnzc{yhuVOdw4}?f{V@vO+;cH8I}u)MP(yz0oX@d8^?@Z pA+UGM*tVIlN$^+eR`CkMt1wL=4Z*rkyH3|-Za|p_)Iyr0{{k6^Gk*X8 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/colorama/tests/__pycache__/winterm_test.cpython-310.pyc b/venv/lib/python3.10/site-packages/colorama/tests/__pycache__/winterm_test.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..64296e616e0b8f72d36f846a1204363c03444075 GIT binary patch literal 3179 zcma)8%X1Sq7?*a}`|v9!I6&!RC^PMhJ0&j3bf)w*d60(8K>RM=a0^dG9mwB z(1tEG zZvbl|>orrkO)k^rKyqb8K_^yu`Lxq}5QkjKnxU+FN&BhF^@6m$H85ZZj(FIKmy<9N zy4FZ{LarR>YjP2_aoUrQ1&swL@*e;te%j=4s9Rgl3)PfL=HZxu)Ub3qVu?)a;dJa z@^m?gWfJm6TW}sP^*1-USc^9kRTMn!i`ai2gncg1ja4C#l8bcZSw9F>&fiP~htJ~x z%y0V=jeKM&OY(42c@a1Ta56uqT&&_xm4#d!5%CF3_FqunN+MqG%DJ1j>OGNkc{`Q$ zPMF+?f;f1>Mg2LCpV!0A<9cr=-Ady5*_+?gWhdn~dhkckko6JIb=V9H9z_!5nNsa9hPj%Hihw{ z2Q7)zYU}+C6>U8V)}wxgXi4g$?W{d|kUNB!LJOtf#He%Jk3B<)3ligP2}oULRLNzc zb-Zr=?OAd3u}%u|OjCP;xh`cplv9sP!}@@mk=%jDDMeR{QxW^1-go|AFbTI zd;g(w?k%patTz{hr+b$+)>iK{j|_1IM}CZemdxN&R4F2d;8SRA`4RNU>i|GH&~DQT zb&Y8#mNtO(+O@D&rS9w9E2j-Hn&kYL*@c*a%%Q*Thsy9%7F%0XVAg=<9{M*%pgRdK91AV

bYAJv-k(3 zZE{5z9LmD1_8}`;0=;`U**w7HDp36HRn$fVVLYBe5O%Aa&aUrSkB8Bx&)VO{3z|6{ zSXw?2RpVTC7e>B6svw5!VGKbw>$+VJ5aQ>ca7Z?d4wP}67@7Is6%sb&TLwO_{Xr+B z%Z>55)a1YGbfQlzxWn``aWJB zGKoMU#b*eZa+E1|q;h*^ zi2^_giav&1uza3YygapM;5!W^pA{RvcDYQoKCT>ZxxQbkh}$q&xqY}oAXNfAL6``7 z!KIO47Oyy2&c{8e!dlcz;G!f1+<+|P)dy;p32}*H5#fvtDEG&Vx}Wic Zk$CR9kjo87ct!lashSnj?dPfW=6@gV#6182 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/colorama/tests/ansi_test.py b/venv/lib/python3.10/site-packages/colorama/tests/ansi_test.py new file mode 100644 index 0000000..0a20c80 --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/tests/ansi_test.py @@ -0,0 +1,76 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import sys +from unittest import TestCase, main + +from ..ansi import Back, Fore, Style +from ..ansitowin32 import AnsiToWin32 + +stdout_orig = sys.stdout +stderr_orig = sys.stderr + + +class AnsiTest(TestCase): + + def setUp(self): + # sanity check: stdout should be a file or StringIO object. + # It will only be AnsiToWin32 if init() has previously wrapped it + self.assertNotEqual(type(sys.stdout), AnsiToWin32) + self.assertNotEqual(type(sys.stderr), AnsiToWin32) + + def tearDown(self): + sys.stdout = stdout_orig + sys.stderr = stderr_orig + + + def testForeAttributes(self): + self.assertEqual(Fore.BLACK, '\033[30m') + self.assertEqual(Fore.RED, '\033[31m') + self.assertEqual(Fore.GREEN, '\033[32m') + self.assertEqual(Fore.YELLOW, '\033[33m') + self.assertEqual(Fore.BLUE, '\033[34m') + self.assertEqual(Fore.MAGENTA, '\033[35m') + self.assertEqual(Fore.CYAN, '\033[36m') + self.assertEqual(Fore.WHITE, '\033[37m') + self.assertEqual(Fore.RESET, '\033[39m') + + # Check the light, extended versions. + self.assertEqual(Fore.LIGHTBLACK_EX, '\033[90m') + self.assertEqual(Fore.LIGHTRED_EX, '\033[91m') + self.assertEqual(Fore.LIGHTGREEN_EX, '\033[92m') + self.assertEqual(Fore.LIGHTYELLOW_EX, '\033[93m') + self.assertEqual(Fore.LIGHTBLUE_EX, '\033[94m') + self.assertEqual(Fore.LIGHTMAGENTA_EX, '\033[95m') + self.assertEqual(Fore.LIGHTCYAN_EX, '\033[96m') + self.assertEqual(Fore.LIGHTWHITE_EX, '\033[97m') + + + def testBackAttributes(self): + self.assertEqual(Back.BLACK, '\033[40m') + self.assertEqual(Back.RED, '\033[41m') + self.assertEqual(Back.GREEN, '\033[42m') + self.assertEqual(Back.YELLOW, '\033[43m') + self.assertEqual(Back.BLUE, '\033[44m') + self.assertEqual(Back.MAGENTA, '\033[45m') + self.assertEqual(Back.CYAN, '\033[46m') + self.assertEqual(Back.WHITE, '\033[47m') + self.assertEqual(Back.RESET, '\033[49m') + + # Check the light, extended versions. + self.assertEqual(Back.LIGHTBLACK_EX, '\033[100m') + self.assertEqual(Back.LIGHTRED_EX, '\033[101m') + self.assertEqual(Back.LIGHTGREEN_EX, '\033[102m') + self.assertEqual(Back.LIGHTYELLOW_EX, '\033[103m') + self.assertEqual(Back.LIGHTBLUE_EX, '\033[104m') + self.assertEqual(Back.LIGHTMAGENTA_EX, '\033[105m') + self.assertEqual(Back.LIGHTCYAN_EX, '\033[106m') + self.assertEqual(Back.LIGHTWHITE_EX, '\033[107m') + + + def testStyleAttributes(self): + self.assertEqual(Style.DIM, '\033[2m') + self.assertEqual(Style.NORMAL, '\033[22m') + self.assertEqual(Style.BRIGHT, '\033[1m') + + +if __name__ == '__main__': + main() diff --git a/venv/lib/python3.10/site-packages/colorama/tests/ansitowin32_test.py b/venv/lib/python3.10/site-packages/colorama/tests/ansitowin32_test.py new file mode 100644 index 0000000..91ca551 --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/tests/ansitowin32_test.py @@ -0,0 +1,294 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +from io import StringIO, TextIOWrapper +from unittest import TestCase, main +try: + from contextlib import ExitStack +except ImportError: + # python 2 + from contextlib2 import ExitStack + +try: + from unittest.mock import MagicMock, Mock, patch +except ImportError: + from mock import MagicMock, Mock, patch + +from ..ansitowin32 import AnsiToWin32, StreamWrapper +from ..win32 import ENABLE_VIRTUAL_TERMINAL_PROCESSING +from .utils import osname + + +class StreamWrapperTest(TestCase): + + def testIsAProxy(self): + mockStream = Mock() + wrapper = StreamWrapper(mockStream, None) + self.assertTrue( wrapper.random_attr is mockStream.random_attr ) + + def testDelegatesWrite(self): + mockStream = Mock() + mockConverter = Mock() + wrapper = StreamWrapper(mockStream, mockConverter) + wrapper.write('hello') + self.assertTrue(mockConverter.write.call_args, (('hello',), {})) + + def testDelegatesContext(self): + mockConverter = Mock() + s = StringIO() + with StreamWrapper(s, mockConverter) as fp: + fp.write(u'hello') + self.assertTrue(s.closed) + + def testProxyNoContextManager(self): + mockStream = MagicMock() + mockStream.__enter__.side_effect = AttributeError() + mockConverter = Mock() + with self.assertRaises(AttributeError) as excinfo: + with StreamWrapper(mockStream, mockConverter) as wrapper: + wrapper.write('hello') + + def test_closed_shouldnt_raise_on_closed_stream(self): + stream = StringIO() + stream.close() + wrapper = StreamWrapper(stream, None) + self.assertEqual(wrapper.closed, True) + + def test_closed_shouldnt_raise_on_detached_stream(self): + stream = TextIOWrapper(StringIO()) + stream.detach() + wrapper = StreamWrapper(stream, None) + self.assertEqual(wrapper.closed, True) + +class AnsiToWin32Test(TestCase): + + def testInit(self): + mockStdout = Mock() + auto = Mock() + stream = AnsiToWin32(mockStdout, autoreset=auto) + self.assertEqual(stream.wrapped, mockStdout) + self.assertEqual(stream.autoreset, auto) + + @patch('colorama.ansitowin32.winterm', None) + @patch('colorama.ansitowin32.winapi_test', lambda *_: True) + def testStripIsTrueOnWindows(self): + with osname('nt'): + mockStdout = Mock() + stream = AnsiToWin32(mockStdout) + self.assertTrue(stream.strip) + + def testStripIsFalseOffWindows(self): + with osname('posix'): + mockStdout = Mock(closed=False) + stream = AnsiToWin32(mockStdout) + self.assertFalse(stream.strip) + + def testWriteStripsAnsi(self): + mockStdout = Mock() + stream = AnsiToWin32(mockStdout) + stream.wrapped = Mock() + stream.write_and_convert = Mock() + stream.strip = True + + stream.write('abc') + + self.assertFalse(stream.wrapped.write.called) + self.assertEqual(stream.write_and_convert.call_args, (('abc',), {})) + + def testWriteDoesNotStripAnsi(self): + mockStdout = Mock() + stream = AnsiToWin32(mockStdout) + stream.wrapped = Mock() + stream.write_and_convert = Mock() + stream.strip = False + stream.convert = False + + stream.write('abc') + + self.assertFalse(stream.write_and_convert.called) + self.assertEqual(stream.wrapped.write.call_args, (('abc',), {})) + + def assert_autoresets(self, convert, autoreset=True): + stream = AnsiToWin32(Mock()) + stream.convert = convert + stream.reset_all = Mock() + stream.autoreset = autoreset + stream.winterm = Mock() + + stream.write('abc') + + self.assertEqual(stream.reset_all.called, autoreset) + + def testWriteAutoresets(self): + self.assert_autoresets(convert=True) + self.assert_autoresets(convert=False) + self.assert_autoresets(convert=True, autoreset=False) + self.assert_autoresets(convert=False, autoreset=False) + + def testWriteAndConvertWritesPlainText(self): + stream = AnsiToWin32(Mock()) + stream.write_and_convert( 'abc' ) + self.assertEqual( stream.wrapped.write.call_args, (('abc',), {}) ) + + def testWriteAndConvertStripsAllValidAnsi(self): + stream = AnsiToWin32(Mock()) + stream.call_win32 = Mock() + data = [ + 'abc\033[mdef', + 'abc\033[0mdef', + 'abc\033[2mdef', + 'abc\033[02mdef', + 'abc\033[002mdef', + 'abc\033[40mdef', + 'abc\033[040mdef', + 'abc\033[0;1mdef', + 'abc\033[40;50mdef', + 'abc\033[50;30;40mdef', + 'abc\033[Adef', + 'abc\033[0Gdef', + 'abc\033[1;20;128Hdef', + ] + for datum in data: + stream.wrapped.write.reset_mock() + stream.write_and_convert( datum ) + self.assertEqual( + [args[0] for args in stream.wrapped.write.call_args_list], + [ ('abc',), ('def',) ] + ) + + def testWriteAndConvertSkipsEmptySnippets(self): + stream = AnsiToWin32(Mock()) + stream.call_win32 = Mock() + stream.write_and_convert( '\033[40m\033[41m' ) + self.assertFalse( stream.wrapped.write.called ) + + def testWriteAndConvertCallsWin32WithParamsAndCommand(self): + stream = AnsiToWin32(Mock()) + stream.convert = True + stream.call_win32 = Mock() + stream.extract_params = Mock(return_value='params') + data = { + 'abc\033[adef': ('a', 'params'), + 'abc\033[;;bdef': ('b', 'params'), + 'abc\033[0cdef': ('c', 'params'), + 'abc\033[;;0;;Gdef': ('G', 'params'), + 'abc\033[1;20;128Hdef': ('H', 'params'), + } + for datum, expected in data.items(): + stream.call_win32.reset_mock() + stream.write_and_convert( datum ) + self.assertEqual( stream.call_win32.call_args[0], expected ) + + def test_reset_all_shouldnt_raise_on_closed_orig_stdout(self): + stream = StringIO() + converter = AnsiToWin32(stream) + stream.close() + + converter.reset_all() + + def test_wrap_shouldnt_raise_on_closed_orig_stdout(self): + stream = StringIO() + stream.close() + with \ + patch("colorama.ansitowin32.os.name", "nt"), \ + patch("colorama.ansitowin32.winapi_test", lambda: True): + converter = AnsiToWin32(stream) + self.assertTrue(converter.strip) + self.assertFalse(converter.convert) + + def test_wrap_shouldnt_raise_on_missing_closed_attr(self): + with \ + patch("colorama.ansitowin32.os.name", "nt"), \ + patch("colorama.ansitowin32.winapi_test", lambda: True): + converter = AnsiToWin32(object()) + self.assertTrue(converter.strip) + self.assertFalse(converter.convert) + + def testExtractParams(self): + stream = AnsiToWin32(Mock()) + data = { + '': (0,), + ';;': (0,), + '2': (2,), + ';;002;;': (2,), + '0;1': (0, 1), + ';;003;;456;;': (3, 456), + '11;22;33;44;55': (11, 22, 33, 44, 55), + } + for datum, expected in data.items(): + self.assertEqual(stream.extract_params('m', datum), expected) + + def testCallWin32UsesLookup(self): + listener = Mock() + stream = AnsiToWin32(listener) + stream.win32_calls = { + 1: (lambda *_, **__: listener(11),), + 2: (lambda *_, **__: listener(22),), + 3: (lambda *_, **__: listener(33),), + } + stream.call_win32('m', (3, 1, 99, 2)) + self.assertEqual( + [a[0][0] for a in listener.call_args_list], + [33, 11, 22] ) + + def test_osc_codes(self): + mockStdout = Mock() + stream = AnsiToWin32(mockStdout, convert=True) + with patch('colorama.ansitowin32.winterm') as winterm: + data = [ + '\033]0\x07', # missing arguments + '\033]0;foo\x08', # wrong OSC command + '\033]0;colorama_test_title\x07', # should work + '\033]1;colorama_test_title\x07', # wrong set command + '\033]2;colorama_test_title\x07', # should work + '\033]' + ';' * 64 + '\x08', # see issue #247 + ] + for code in data: + stream.write(code) + self.assertEqual(winterm.set_title.call_count, 2) + + def test_native_windows_ansi(self): + with ExitStack() as stack: + def p(a, b): + stack.enter_context(patch(a, b, create=True)) + # Pretend to be on Windows + p("colorama.ansitowin32.os.name", "nt") + p("colorama.ansitowin32.winapi_test", lambda: True) + p("colorama.win32.winapi_test", lambda: True) + p("colorama.winterm.win32.windll", "non-None") + p("colorama.winterm.get_osfhandle", lambda _: 1234) + + # Pretend that our mock stream has native ANSI support + p( + "colorama.winterm.win32.GetConsoleMode", + lambda _: ENABLE_VIRTUAL_TERMINAL_PROCESSING, + ) + SetConsoleMode = Mock() + p("colorama.winterm.win32.SetConsoleMode", SetConsoleMode) + + stdout = Mock() + stdout.closed = False + stdout.isatty.return_value = True + stdout.fileno.return_value = 1 + + # Our fake console says it has native vt support, so AnsiToWin32 should + # enable that support and do nothing else. + stream = AnsiToWin32(stdout) + SetConsoleMode.assert_called_with(1234, ENABLE_VIRTUAL_TERMINAL_PROCESSING) + self.assertFalse(stream.strip) + self.assertFalse(stream.convert) + self.assertFalse(stream.should_wrap()) + + # Now let's pretend we're on an old Windows console, that doesn't have + # native ANSI support. + p("colorama.winterm.win32.GetConsoleMode", lambda _: 0) + SetConsoleMode = Mock() + p("colorama.winterm.win32.SetConsoleMode", SetConsoleMode) + + stream = AnsiToWin32(stdout) + SetConsoleMode.assert_called_with(1234, ENABLE_VIRTUAL_TERMINAL_PROCESSING) + self.assertTrue(stream.strip) + self.assertTrue(stream.convert) + self.assertTrue(stream.should_wrap()) + + +if __name__ == '__main__': + main() diff --git a/venv/lib/python3.10/site-packages/colorama/tests/initialise_test.py b/venv/lib/python3.10/site-packages/colorama/tests/initialise_test.py new file mode 100644 index 0000000..89f9b07 --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/tests/initialise_test.py @@ -0,0 +1,189 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import sys +from unittest import TestCase, main, skipUnless + +try: + from unittest.mock import patch, Mock +except ImportError: + from mock import patch, Mock + +from ..ansitowin32 import StreamWrapper +from ..initialise import init, just_fix_windows_console, _wipe_internal_state_for_tests +from .utils import osname, replace_by + +orig_stdout = sys.stdout +orig_stderr = sys.stderr + + +class InitTest(TestCase): + + @skipUnless(sys.stdout.isatty(), "sys.stdout is not a tty") + def setUp(self): + # sanity check + self.assertNotWrapped() + + def tearDown(self): + _wipe_internal_state_for_tests() + sys.stdout = orig_stdout + sys.stderr = orig_stderr + + def assertWrapped(self): + self.assertIsNot(sys.stdout, orig_stdout, 'stdout should be wrapped') + self.assertIsNot(sys.stderr, orig_stderr, 'stderr should be wrapped') + self.assertTrue(isinstance(sys.stdout, StreamWrapper), + 'bad stdout wrapper') + self.assertTrue(isinstance(sys.stderr, StreamWrapper), + 'bad stderr wrapper') + + def assertNotWrapped(self): + self.assertIs(sys.stdout, orig_stdout, 'stdout should not be wrapped') + self.assertIs(sys.stderr, orig_stderr, 'stderr should not be wrapped') + + @patch('colorama.initialise.reset_all') + @patch('colorama.ansitowin32.winapi_test', lambda *_: True) + @patch('colorama.ansitowin32.enable_vt_processing', lambda *_: False) + def testInitWrapsOnWindows(self, _): + with osname("nt"): + init() + self.assertWrapped() + + @patch('colorama.initialise.reset_all') + @patch('colorama.ansitowin32.winapi_test', lambda *_: False) + def testInitDoesntWrapOnEmulatedWindows(self, _): + with osname("nt"): + init() + self.assertNotWrapped() + + def testInitDoesntWrapOnNonWindows(self): + with osname("posix"): + init() + self.assertNotWrapped() + + def testInitDoesntWrapIfNone(self): + with replace_by(None): + init() + # We can't use assertNotWrapped here because replace_by(None) + # changes stdout/stderr already. + self.assertIsNone(sys.stdout) + self.assertIsNone(sys.stderr) + + def testInitAutoresetOnWrapsOnAllPlatforms(self): + with osname("posix"): + init(autoreset=True) + self.assertWrapped() + + def testInitWrapOffDoesntWrapOnWindows(self): + with osname("nt"): + init(wrap=False) + self.assertNotWrapped() + + def testInitWrapOffIncompatibleWithAutoresetOn(self): + self.assertRaises(ValueError, lambda: init(autoreset=True, wrap=False)) + + @patch('colorama.win32.SetConsoleTextAttribute') + @patch('colorama.initialise.AnsiToWin32') + def testAutoResetPassedOn(self, mockATW32, _): + with osname("nt"): + init(autoreset=True) + self.assertEqual(len(mockATW32.call_args_list), 2) + self.assertEqual(mockATW32.call_args_list[1][1]['autoreset'], True) + self.assertEqual(mockATW32.call_args_list[0][1]['autoreset'], True) + + @patch('colorama.initialise.AnsiToWin32') + def testAutoResetChangeable(self, mockATW32): + with osname("nt"): + init() + + init(autoreset=True) + self.assertEqual(len(mockATW32.call_args_list), 4) + self.assertEqual(mockATW32.call_args_list[2][1]['autoreset'], True) + self.assertEqual(mockATW32.call_args_list[3][1]['autoreset'], True) + + init() + self.assertEqual(len(mockATW32.call_args_list), 6) + self.assertEqual( + mockATW32.call_args_list[4][1]['autoreset'], False) + self.assertEqual( + mockATW32.call_args_list[5][1]['autoreset'], False) + + + @patch('colorama.initialise.atexit.register') + def testAtexitRegisteredOnlyOnce(self, mockRegister): + init() + self.assertTrue(mockRegister.called) + mockRegister.reset_mock() + init() + self.assertFalse(mockRegister.called) + + +class JustFixWindowsConsoleTest(TestCase): + def _reset(self): + _wipe_internal_state_for_tests() + sys.stdout = orig_stdout + sys.stderr = orig_stderr + + def tearDown(self): + self._reset() + + @patch("colorama.ansitowin32.winapi_test", lambda: True) + def testJustFixWindowsConsole(self): + if sys.platform != "win32": + # just_fix_windows_console should be a no-op + just_fix_windows_console() + self.assertIs(sys.stdout, orig_stdout) + self.assertIs(sys.stderr, orig_stderr) + else: + def fake_std(): + # Emulate stdout=not a tty, stderr=tty + # to check that we handle both cases correctly + stdout = Mock() + stdout.closed = False + stdout.isatty.return_value = False + stdout.fileno.return_value = 1 + sys.stdout = stdout + + stderr = Mock() + stderr.closed = False + stderr.isatty.return_value = True + stderr.fileno.return_value = 2 + sys.stderr = stderr + + for native_ansi in [False, True]: + with patch( + 'colorama.ansitowin32.enable_vt_processing', + lambda *_: native_ansi + ): + self._reset() + fake_std() + + # Regular single-call test + prev_stdout = sys.stdout + prev_stderr = sys.stderr + just_fix_windows_console() + self.assertIs(sys.stdout, prev_stdout) + if native_ansi: + self.assertIs(sys.stderr, prev_stderr) + else: + self.assertIsNot(sys.stderr, prev_stderr) + + # second call without resetting is always a no-op + prev_stdout = sys.stdout + prev_stderr = sys.stderr + just_fix_windows_console() + self.assertIs(sys.stdout, prev_stdout) + self.assertIs(sys.stderr, prev_stderr) + + self._reset() + fake_std() + + # If init() runs first, just_fix_windows_console should be a no-op + init() + prev_stdout = sys.stdout + prev_stderr = sys.stderr + just_fix_windows_console() + self.assertIs(prev_stdout, sys.stdout) + self.assertIs(prev_stderr, sys.stderr) + + +if __name__ == '__main__': + main() diff --git a/venv/lib/python3.10/site-packages/colorama/tests/isatty_test.py b/venv/lib/python3.10/site-packages/colorama/tests/isatty_test.py new file mode 100644 index 0000000..0f84e4b --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/tests/isatty_test.py @@ -0,0 +1,57 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import sys +from unittest import TestCase, main + +from ..ansitowin32 import StreamWrapper, AnsiToWin32 +from .utils import pycharm, replace_by, replace_original_by, StreamTTY, StreamNonTTY + + +def is_a_tty(stream): + return StreamWrapper(stream, None).isatty() + +class IsattyTest(TestCase): + + def test_TTY(self): + tty = StreamTTY() + self.assertTrue(is_a_tty(tty)) + with pycharm(): + self.assertTrue(is_a_tty(tty)) + + def test_nonTTY(self): + non_tty = StreamNonTTY() + self.assertFalse(is_a_tty(non_tty)) + with pycharm(): + self.assertFalse(is_a_tty(non_tty)) + + def test_withPycharm(self): + with pycharm(): + self.assertTrue(is_a_tty(sys.stderr)) + self.assertTrue(is_a_tty(sys.stdout)) + + def test_withPycharmTTYOverride(self): + tty = StreamTTY() + with pycharm(), replace_by(tty): + self.assertTrue(is_a_tty(tty)) + + def test_withPycharmNonTTYOverride(self): + non_tty = StreamNonTTY() + with pycharm(), replace_by(non_tty): + self.assertFalse(is_a_tty(non_tty)) + + def test_withPycharmNoneOverride(self): + with pycharm(): + with replace_by(None), replace_original_by(None): + self.assertFalse(is_a_tty(None)) + self.assertFalse(is_a_tty(StreamNonTTY())) + self.assertTrue(is_a_tty(StreamTTY())) + + def test_withPycharmStreamWrapped(self): + with pycharm(): + self.assertTrue(AnsiToWin32(StreamTTY()).stream.isatty()) + self.assertFalse(AnsiToWin32(StreamNonTTY()).stream.isatty()) + self.assertTrue(AnsiToWin32(sys.stdout).stream.isatty()) + self.assertTrue(AnsiToWin32(sys.stderr).stream.isatty()) + + +if __name__ == '__main__': + main() diff --git a/venv/lib/python3.10/site-packages/colorama/tests/utils.py b/venv/lib/python3.10/site-packages/colorama/tests/utils.py new file mode 100644 index 0000000..472fafb --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/tests/utils.py @@ -0,0 +1,49 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +from contextlib import contextmanager +from io import StringIO +import sys +import os + + +class StreamTTY(StringIO): + def isatty(self): + return True + +class StreamNonTTY(StringIO): + def isatty(self): + return False + +@contextmanager +def osname(name): + orig = os.name + os.name = name + yield + os.name = orig + +@contextmanager +def replace_by(stream): + orig_stdout = sys.stdout + orig_stderr = sys.stderr + sys.stdout = stream + sys.stderr = stream + yield + sys.stdout = orig_stdout + sys.stderr = orig_stderr + +@contextmanager +def replace_original_by(stream): + orig_stdout = sys.__stdout__ + orig_stderr = sys.__stderr__ + sys.__stdout__ = stream + sys.__stderr__ = stream + yield + sys.__stdout__ = orig_stdout + sys.__stderr__ = orig_stderr + +@contextmanager +def pycharm(): + os.environ["PYCHARM_HOSTED"] = "1" + non_tty = StreamNonTTY() + with replace_by(non_tty), replace_original_by(non_tty): + yield + del os.environ["PYCHARM_HOSTED"] diff --git a/venv/lib/python3.10/site-packages/colorama/tests/winterm_test.py b/venv/lib/python3.10/site-packages/colorama/tests/winterm_test.py new file mode 100644 index 0000000..d0955f9 --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/tests/winterm_test.py @@ -0,0 +1,131 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import sys +from unittest import TestCase, main, skipUnless + +try: + from unittest.mock import Mock, patch +except ImportError: + from mock import Mock, patch + +from ..winterm import WinColor, WinStyle, WinTerm + + +class WinTermTest(TestCase): + + @patch('colorama.winterm.win32') + def testInit(self, mockWin32): + mockAttr = Mock() + mockAttr.wAttributes = 7 + 6 * 16 + 8 + mockWin32.GetConsoleScreenBufferInfo.return_value = mockAttr + term = WinTerm() + self.assertEqual(term._fore, 7) + self.assertEqual(term._back, 6) + self.assertEqual(term._style, 8) + + @skipUnless(sys.platform.startswith("win"), "requires Windows") + def testGetAttrs(self): + term = WinTerm() + + term._fore = 0 + term._back = 0 + term._style = 0 + self.assertEqual(term.get_attrs(), 0) + + term._fore = WinColor.YELLOW + self.assertEqual(term.get_attrs(), WinColor.YELLOW) + + term._back = WinColor.MAGENTA + self.assertEqual( + term.get_attrs(), + WinColor.YELLOW + WinColor.MAGENTA * 16) + + term._style = WinStyle.BRIGHT + self.assertEqual( + term.get_attrs(), + WinColor.YELLOW + WinColor.MAGENTA * 16 + WinStyle.BRIGHT) + + @patch('colorama.winterm.win32') + def testResetAll(self, mockWin32): + mockAttr = Mock() + mockAttr.wAttributes = 1 + 2 * 16 + 8 + mockWin32.GetConsoleScreenBufferInfo.return_value = mockAttr + term = WinTerm() + + term.set_console = Mock() + term._fore = -1 + term._back = -1 + term._style = -1 + + term.reset_all() + + self.assertEqual(term._fore, 1) + self.assertEqual(term._back, 2) + self.assertEqual(term._style, 8) + self.assertEqual(term.set_console.called, True) + + @skipUnless(sys.platform.startswith("win"), "requires Windows") + def testFore(self): + term = WinTerm() + term.set_console = Mock() + term._fore = 0 + + term.fore(5) + + self.assertEqual(term._fore, 5) + self.assertEqual(term.set_console.called, True) + + @skipUnless(sys.platform.startswith("win"), "requires Windows") + def testBack(self): + term = WinTerm() + term.set_console = Mock() + term._back = 0 + + term.back(5) + + self.assertEqual(term._back, 5) + self.assertEqual(term.set_console.called, True) + + @skipUnless(sys.platform.startswith("win"), "requires Windows") + def testStyle(self): + term = WinTerm() + term.set_console = Mock() + term._style = 0 + + term.style(22) + + self.assertEqual(term._style, 22) + self.assertEqual(term.set_console.called, True) + + @patch('colorama.winterm.win32') + def testSetConsole(self, mockWin32): + mockAttr = Mock() + mockAttr.wAttributes = 0 + mockWin32.GetConsoleScreenBufferInfo.return_value = mockAttr + term = WinTerm() + term.windll = Mock() + + term.set_console() + + self.assertEqual( + mockWin32.SetConsoleTextAttribute.call_args, + ((mockWin32.STDOUT, term.get_attrs()), {}) + ) + + @patch('colorama.winterm.win32') + def testSetConsoleOnStderr(self, mockWin32): + mockAttr = Mock() + mockAttr.wAttributes = 0 + mockWin32.GetConsoleScreenBufferInfo.return_value = mockAttr + term = WinTerm() + term.windll = Mock() + + term.set_console(on_stderr=True) + + self.assertEqual( + mockWin32.SetConsoleTextAttribute.call_args, + ((mockWin32.STDERR, term.get_attrs()), {}) + ) + + +if __name__ == '__main__': + main() diff --git a/venv/lib/python3.10/site-packages/colorama/win32.py b/venv/lib/python3.10/site-packages/colorama/win32.py new file mode 100644 index 0000000..841b0e2 --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/win32.py @@ -0,0 +1,180 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. + +# from winbase.h +STDOUT = -11 +STDERR = -12 + +ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004 + +try: + import ctypes + from ctypes import LibraryLoader + windll = LibraryLoader(ctypes.WinDLL) + from ctypes import wintypes +except (AttributeError, ImportError): + windll = None + SetConsoleTextAttribute = lambda *_: None + winapi_test = lambda *_: None +else: + from ctypes import byref, Structure, c_char, POINTER + + COORD = wintypes._COORD + + class CONSOLE_SCREEN_BUFFER_INFO(Structure): + """struct in wincon.h.""" + _fields_ = [ + ("dwSize", COORD), + ("dwCursorPosition", COORD), + ("wAttributes", wintypes.WORD), + ("srWindow", wintypes.SMALL_RECT), + ("dwMaximumWindowSize", COORD), + ] + def __str__(self): + return '(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)' % ( + self.dwSize.Y, self.dwSize.X + , self.dwCursorPosition.Y, self.dwCursorPosition.X + , self.wAttributes + , self.srWindow.Top, self.srWindow.Left, self.srWindow.Bottom, self.srWindow.Right + , self.dwMaximumWindowSize.Y, self.dwMaximumWindowSize.X + ) + + _GetStdHandle = windll.kernel32.GetStdHandle + _GetStdHandle.argtypes = [ + wintypes.DWORD, + ] + _GetStdHandle.restype = wintypes.HANDLE + + _GetConsoleScreenBufferInfo = windll.kernel32.GetConsoleScreenBufferInfo + _GetConsoleScreenBufferInfo.argtypes = [ + wintypes.HANDLE, + POINTER(CONSOLE_SCREEN_BUFFER_INFO), + ] + _GetConsoleScreenBufferInfo.restype = wintypes.BOOL + + _SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute + _SetConsoleTextAttribute.argtypes = [ + wintypes.HANDLE, + wintypes.WORD, + ] + _SetConsoleTextAttribute.restype = wintypes.BOOL + + _SetConsoleCursorPosition = windll.kernel32.SetConsoleCursorPosition + _SetConsoleCursorPosition.argtypes = [ + wintypes.HANDLE, + COORD, + ] + _SetConsoleCursorPosition.restype = wintypes.BOOL + + _FillConsoleOutputCharacterA = windll.kernel32.FillConsoleOutputCharacterA + _FillConsoleOutputCharacterA.argtypes = [ + wintypes.HANDLE, + c_char, + wintypes.DWORD, + COORD, + POINTER(wintypes.DWORD), + ] + _FillConsoleOutputCharacterA.restype = wintypes.BOOL + + _FillConsoleOutputAttribute = windll.kernel32.FillConsoleOutputAttribute + _FillConsoleOutputAttribute.argtypes = [ + wintypes.HANDLE, + wintypes.WORD, + wintypes.DWORD, + COORD, + POINTER(wintypes.DWORD), + ] + _FillConsoleOutputAttribute.restype = wintypes.BOOL + + _SetConsoleTitleW = windll.kernel32.SetConsoleTitleW + _SetConsoleTitleW.argtypes = [ + wintypes.LPCWSTR + ] + _SetConsoleTitleW.restype = wintypes.BOOL + + _GetConsoleMode = windll.kernel32.GetConsoleMode + _GetConsoleMode.argtypes = [ + wintypes.HANDLE, + POINTER(wintypes.DWORD) + ] + _GetConsoleMode.restype = wintypes.BOOL + + _SetConsoleMode = windll.kernel32.SetConsoleMode + _SetConsoleMode.argtypes = [ + wintypes.HANDLE, + wintypes.DWORD + ] + _SetConsoleMode.restype = wintypes.BOOL + + def _winapi_test(handle): + csbi = CONSOLE_SCREEN_BUFFER_INFO() + success = _GetConsoleScreenBufferInfo( + handle, byref(csbi)) + return bool(success) + + def winapi_test(): + return any(_winapi_test(h) for h in + (_GetStdHandle(STDOUT), _GetStdHandle(STDERR))) + + def GetConsoleScreenBufferInfo(stream_id=STDOUT): + handle = _GetStdHandle(stream_id) + csbi = CONSOLE_SCREEN_BUFFER_INFO() + success = _GetConsoleScreenBufferInfo( + handle, byref(csbi)) + return csbi + + def SetConsoleTextAttribute(stream_id, attrs): + handle = _GetStdHandle(stream_id) + return _SetConsoleTextAttribute(handle, attrs) + + def SetConsoleCursorPosition(stream_id, position, adjust=True): + position = COORD(*position) + # If the position is out of range, do nothing. + if position.Y <= 0 or position.X <= 0: + return + # Adjust for Windows' SetConsoleCursorPosition: + # 1. being 0-based, while ANSI is 1-based. + # 2. expecting (x,y), while ANSI uses (y,x). + adjusted_position = COORD(position.Y - 1, position.X - 1) + if adjust: + # Adjust for viewport's scroll position + sr = GetConsoleScreenBufferInfo(STDOUT).srWindow + adjusted_position.Y += sr.Top + adjusted_position.X += sr.Left + # Resume normal processing + handle = _GetStdHandle(stream_id) + return _SetConsoleCursorPosition(handle, adjusted_position) + + def FillConsoleOutputCharacter(stream_id, char, length, start): + handle = _GetStdHandle(stream_id) + char = c_char(char.encode()) + length = wintypes.DWORD(length) + num_written = wintypes.DWORD(0) + # Note that this is hard-coded for ANSI (vs wide) bytes. + success = _FillConsoleOutputCharacterA( + handle, char, length, start, byref(num_written)) + return num_written.value + + def FillConsoleOutputAttribute(stream_id, attr, length, start): + ''' FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )''' + handle = _GetStdHandle(stream_id) + attribute = wintypes.WORD(attr) + length = wintypes.DWORD(length) + num_written = wintypes.DWORD(0) + # Note that this is hard-coded for ANSI (vs wide) bytes. + return _FillConsoleOutputAttribute( + handle, attribute, length, start, byref(num_written)) + + def SetConsoleTitle(title): + return _SetConsoleTitleW(title) + + def GetConsoleMode(handle): + mode = wintypes.DWORD() + success = _GetConsoleMode(handle, byref(mode)) + if not success: + raise ctypes.WinError() + return mode.value + + def SetConsoleMode(handle, mode): + success = _SetConsoleMode(handle, mode) + if not success: + raise ctypes.WinError() diff --git a/venv/lib/python3.10/site-packages/colorama/winterm.py b/venv/lib/python3.10/site-packages/colorama/winterm.py new file mode 100644 index 0000000..aad867e --- /dev/null +++ b/venv/lib/python3.10/site-packages/colorama/winterm.py @@ -0,0 +1,195 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +try: + from msvcrt import get_osfhandle +except ImportError: + def get_osfhandle(_): + raise OSError("This isn't windows!") + + +from . import win32 + +# from wincon.h +class WinColor(object): + BLACK = 0 + BLUE = 1 + GREEN = 2 + CYAN = 3 + RED = 4 + MAGENTA = 5 + YELLOW = 6 + GREY = 7 + +# from wincon.h +class WinStyle(object): + NORMAL = 0x00 # dim text, dim background + BRIGHT = 0x08 # bright text, dim background + BRIGHT_BACKGROUND = 0x80 # dim text, bright background + +class WinTerm(object): + + def __init__(self): + self._default = win32.GetConsoleScreenBufferInfo(win32.STDOUT).wAttributes + self.set_attrs(self._default) + self._default_fore = self._fore + self._default_back = self._back + self._default_style = self._style + # In order to emulate LIGHT_EX in windows, we borrow the BRIGHT style. + # So that LIGHT_EX colors and BRIGHT style do not clobber each other, + # we track them separately, since LIGHT_EX is overwritten by Fore/Back + # and BRIGHT is overwritten by Style codes. + self._light = 0 + + def get_attrs(self): + return self._fore + self._back * 16 + (self._style | self._light) + + def set_attrs(self, value): + self._fore = value & 7 + self._back = (value >> 4) & 7 + self._style = value & (WinStyle.BRIGHT | WinStyle.BRIGHT_BACKGROUND) + + def reset_all(self, on_stderr=None): + self.set_attrs(self._default) + self.set_console(attrs=self._default) + self._light = 0 + + def fore(self, fore=None, light=False, on_stderr=False): + if fore is None: + fore = self._default_fore + self._fore = fore + # Emulate LIGHT_EX with BRIGHT Style + if light: + self._light |= WinStyle.BRIGHT + else: + self._light &= ~WinStyle.BRIGHT + self.set_console(on_stderr=on_stderr) + + def back(self, back=None, light=False, on_stderr=False): + if back is None: + back = self._default_back + self._back = back + # Emulate LIGHT_EX with BRIGHT_BACKGROUND Style + if light: + self._light |= WinStyle.BRIGHT_BACKGROUND + else: + self._light &= ~WinStyle.BRIGHT_BACKGROUND + self.set_console(on_stderr=on_stderr) + + def style(self, style=None, on_stderr=False): + if style is None: + style = self._default_style + self._style = style + self.set_console(on_stderr=on_stderr) + + def set_console(self, attrs=None, on_stderr=False): + if attrs is None: + attrs = self.get_attrs() + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + win32.SetConsoleTextAttribute(handle, attrs) + + def get_position(self, handle): + position = win32.GetConsoleScreenBufferInfo(handle).dwCursorPosition + # Because Windows coordinates are 0-based, + # and win32.SetConsoleCursorPosition expects 1-based. + position.X += 1 + position.Y += 1 + return position + + def set_cursor_position(self, position=None, on_stderr=False): + if position is None: + # I'm not currently tracking the position, so there is no default. + # position = self.get_position() + return + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + win32.SetConsoleCursorPosition(handle, position) + + def cursor_adjust(self, x, y, on_stderr=False): + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + position = self.get_position(handle) + adjusted_position = (position.Y + y, position.X + x) + win32.SetConsoleCursorPosition(handle, adjusted_position, adjust=False) + + def erase_screen(self, mode=0, on_stderr=False): + # 0 should clear from the cursor to the end of the screen. + # 1 should clear from the cursor to the beginning of the screen. + # 2 should clear the entire screen, and move cursor to (1,1) + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + csbi = win32.GetConsoleScreenBufferInfo(handle) + # get the number of character cells in the current buffer + cells_in_screen = csbi.dwSize.X * csbi.dwSize.Y + # get number of character cells before current cursor position + cells_before_cursor = csbi.dwSize.X * csbi.dwCursorPosition.Y + csbi.dwCursorPosition.X + if mode == 0: + from_coord = csbi.dwCursorPosition + cells_to_erase = cells_in_screen - cells_before_cursor + elif mode == 1: + from_coord = win32.COORD(0, 0) + cells_to_erase = cells_before_cursor + elif mode == 2: + from_coord = win32.COORD(0, 0) + cells_to_erase = cells_in_screen + else: + # invalid mode + return + # fill the entire screen with blanks + win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord) + # now set the buffer's attributes accordingly + win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord) + if mode == 2: + # put the cursor where needed + win32.SetConsoleCursorPosition(handle, (1, 1)) + + def erase_line(self, mode=0, on_stderr=False): + # 0 should clear from the cursor to the end of the line. + # 1 should clear from the cursor to the beginning of the line. + # 2 should clear the entire line. + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + csbi = win32.GetConsoleScreenBufferInfo(handle) + if mode == 0: + from_coord = csbi.dwCursorPosition + cells_to_erase = csbi.dwSize.X - csbi.dwCursorPosition.X + elif mode == 1: + from_coord = win32.COORD(0, csbi.dwCursorPosition.Y) + cells_to_erase = csbi.dwCursorPosition.X + elif mode == 2: + from_coord = win32.COORD(0, csbi.dwCursorPosition.Y) + cells_to_erase = csbi.dwSize.X + else: + # invalid mode + return + # fill the entire screen with blanks + win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord) + # now set the buffer's attributes accordingly + win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord) + + def set_title(self, title): + win32.SetConsoleTitle(title) + + +def enable_vt_processing(fd): + if win32.windll is None or not win32.winapi_test(): + return False + + try: + handle = get_osfhandle(fd) + mode = win32.GetConsoleMode(handle) + win32.SetConsoleMode( + handle, + mode | win32.ENABLE_VIRTUAL_TERMINAL_PROCESSING, + ) + + mode = win32.GetConsoleMode(handle) + if mode & win32.ENABLE_VIRTUAL_TERMINAL_PROCESSING: + return True + # Can get TypeError in testsuite where 'fd' is a Mock() + except (OSError, TypeError): + return False diff --git a/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/LICENSE.txt b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/LICENSE.txt new file mode 100644 index 0000000..3e01d05 --- /dev/null +++ b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/LICENSE.txt @@ -0,0 +1,27 @@ +Copyright (c) 2005-2025, Michele Simionato +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. diff --git a/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/METADATA b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/METADATA new file mode 100644 index 0000000..be5072e --- /dev/null +++ b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/METADATA @@ -0,0 +1,124 @@ +Metadata-Version: 2.2 +Name: decorator +Version: 5.2.1 +Summary: Decorators for Humans +Author-email: Michele Simionato +License: BSD-2-Clause +Keywords: decorators +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Topic :: Software Development :: Libraries +Classifier: Topic :: Utilities +Requires-Python: >=3.8 +Description-Content-Type: text/x-rst +License-File: LICENSE.txt + +Decorators for Humans +===================== + +The goal of the decorator module is to make it easy to define +signature-preserving function decorators and decorator factories. +It also includes an implementation of multiple dispatch and other niceties +(please check the docs). It is released under a two-clauses +BSD license, i.e. basically you can do whatever you want with it but I am not +responsible. + +Installation +------------- + +If you are lazy, just perform + + ``$ pip install decorator`` + +which will install just the module on your system. + +If you prefer to install the full distribution from source, including +the documentation, clone the `GitHub repo`_ or download the tarball_, unpack it and run + + ``$ pip install .`` + +in the main directory, possibly as superuser. + +.. _tarball: https://pypi.org/project/decorator/#files +.. _GitHub repo: https://github.com/micheles/decorator + +Testing +-------- + +If you have the source code installation you can run the tests with + + `$ python src/tests/test.py -v` + +or (if you have setuptools installed) + + `$ python setup.py test` + +Notice that you may run into trouble if in your system there +is an older version of the decorator module; in such a case remove the +old version. It is safe even to copy the module `decorator.py` over +an existing one, since we kept backward-compatibility for a long time. + +Repository +--------------- + +The project is hosted on GitHub. You can look at the source here: + + https://github.com/micheles/decorator + +Documentation +--------------- + +The documentation has been moved to https://github.com/micheles/decorator/blob/master/docs/documentation.md + +From there you can get a PDF version by simply using the print +functionality of your browser. + +Here is the documentation for previous versions of the module: + +https://github.com/micheles/decorator/blob/4.3.2/docs/tests.documentation.rst +https://github.com/micheles/decorator/blob/4.2.1/docs/tests.documentation.rst +https://github.com/micheles/decorator/blob/4.1.2/docs/tests.documentation.rst +https://github.com/micheles/decorator/blob/4.0.0/documentation.rst +https://github.com/micheles/decorator/blob/3.4.2/documentation.rst + +For the impatient +----------------- + +Here is an example of how to define a family of decorators tracing slow +operations: + +.. code-block:: python + + from decorator import decorator + + @decorator + def warn_slow(func, timelimit=60, *args, **kw): + t0 = time.time() + result = func(*args, **kw) + dt = time.time() - t0 + if dt > timelimit: + logging.warning('%s took %d seconds', func.__name__, dt) + else: + logging.info('%s took %d seconds', func.__name__, dt) + return result + + @warn_slow # warn if it takes more than 1 minute + def preprocess_input_files(inputdir, tempdir): + ... + + @warn_slow(timelimit=600) # warn if it takes more than 10 minutes + def run_calculation(tempdir, outdir): + ... + +Enjoy! diff --git a/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/RECORD b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/RECORD new file mode 100644 index 0000000..9305e88 --- /dev/null +++ b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/RECORD @@ -0,0 +1,9 @@ +__pycache__/decorator.cpython-310.pyc,, +decorator-5.2.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +decorator-5.2.1.dist-info/LICENSE.txt,sha256=kU7m7Xil78FzvaaY8nCERMqdFA_MQIDGDQUD1A2znaY,1308 +decorator-5.2.1.dist-info/METADATA,sha256=i76fp7lNo0QbinX3NBJjSu_GhVp9A8iuab--m-8mKB4,3934 +decorator-5.2.1.dist-info/RECORD,, +decorator-5.2.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91 +decorator-5.2.1.dist-info/pbr.json,sha256=AL84oUUWQHwkd8OCPhLRo2NJjU5MDdmXMqRHv-posqs,47 +decorator-5.2.1.dist-info/top_level.txt,sha256=Kn6eQjo83ctWxXVyBMOYt0_YpjRjBznKYVuNyuC_DSI,10 +decorator.py,sha256=cWnO6cKKohQrXNEG1-Fauiw8djwE3f2PA2gJGofwgXA,17067 diff --git a/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/WHEEL b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/WHEEL new file mode 100644 index 0000000..505164b --- /dev/null +++ b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (75.8.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/pbr.json b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/pbr.json new file mode 100644 index 0000000..cd04599 --- /dev/null +++ b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/pbr.json @@ -0,0 +1 @@ +{"is_release": false, "git_version": "8608a46"} \ No newline at end of file diff --git a/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/top_level.txt b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/top_level.txt new file mode 100644 index 0000000..3fe18a4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/decorator-5.2.1.dist-info/top_level.txt @@ -0,0 +1 @@ +decorator diff --git a/venv/lib/python3.10/site-packages/decorator.py b/venv/lib/python3.10/site-packages/decorator.py new file mode 100644 index 0000000..40a39f2 --- /dev/null +++ b/venv/lib/python3.10/site-packages/decorator.py @@ -0,0 +1,459 @@ +# ######################### LICENSE ############################ # + +# Copyright (c) 2005-2025, Michele Simionato +# All rights reserved. + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: + +# Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# Redistributions in bytecode form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. + +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. + +""" +Decorator module, see +https://github.com/micheles/decorator/blob/master/docs/documentation.md +for the documentation. +""" +import re +import sys +import inspect +import operator +import itertools +import functools +from contextlib import _GeneratorContextManager +from inspect import getfullargspec, iscoroutinefunction, isgeneratorfunction + +__version__ = '5.2.1' + +DEF = re.compile(r'\s*def\s*([_\w][_\w\d]*)\s*\(') +POS = inspect.Parameter.POSITIONAL_OR_KEYWORD +EMPTY = inspect.Parameter.empty + + +# this is not used anymore in the core, but kept for backward compatibility +class FunctionMaker(object): + """ + An object with the ability to create functions with a given signature. + It has attributes name, doc, module, signature, defaults, dict and + methods update and make. + """ + + # Atomic get-and-increment provided by the GIL + _compile_count = itertools.count() + + # make pylint happy + args = varargs = varkw = defaults = kwonlyargs = kwonlydefaults = () + + def __init__(self, func=None, name=None, signature=None, + defaults=None, doc=None, module=None, funcdict=None): + self.shortsignature = signature + if func: + # func can be a class or a callable, but not an instance method + self.name = func.__name__ + if self.name == '': # small hack for lambda functions + self.name = '_lambda_' + self.doc = func.__doc__ + self.module = func.__module__ + if inspect.isroutine(func) or isinstance(func, functools.partial): + argspec = getfullargspec(func) + self.annotations = getattr(func, '__annotations__', {}) + for a in ('args', 'varargs', 'varkw', 'defaults', 'kwonlyargs', + 'kwonlydefaults'): + setattr(self, a, getattr(argspec, a)) + for i, arg in enumerate(self.args): + setattr(self, 'arg%d' % i, arg) + allargs = list(self.args) + allshortargs = list(self.args) + if self.varargs: + allargs.append('*' + self.varargs) + allshortargs.append('*' + self.varargs) + elif self.kwonlyargs: + allargs.append('*') # single star syntax + for a in self.kwonlyargs: + allargs.append('%s=None' % a) + allshortargs.append('%s=%s' % (a, a)) + if self.varkw: + allargs.append('**' + self.varkw) + allshortargs.append('**' + self.varkw) + self.signature = ', '.join(allargs) + self.shortsignature = ', '.join(allshortargs) + self.dict = func.__dict__.copy() + # func=None happens when decorating a caller + if name: + self.name = name + if signature is not None: + self.signature = signature + if defaults: + self.defaults = defaults + if doc: + self.doc = doc + if module: + self.module = module + if funcdict: + self.dict = funcdict + # check existence required attributes + assert hasattr(self, 'name') + if not hasattr(self, 'signature'): + raise TypeError('You are decorating a non function: %s' % func) + + def update(self, func, **kw): + """ + Update the signature of func with the data in self + """ + func.__name__ = self.name + func.__doc__ = getattr(self, 'doc', None) + func.__dict__ = getattr(self, 'dict', {}) + func.__defaults__ = self.defaults + func.__kwdefaults__ = self.kwonlydefaults or None + func.__annotations__ = getattr(self, 'annotations', None) + try: + frame = sys._getframe(3) + except AttributeError: # for IronPython and similar implementations + callermodule = '?' + else: + callermodule = frame.f_globals.get('__name__', '?') + func.__module__ = getattr(self, 'module', callermodule) + func.__dict__.update(kw) + + def make(self, src_templ, evaldict=None, addsource=False, **attrs): + """ + Make a new function from a given template and update the signature + """ + src = src_templ % vars(self) # expand name and signature + evaldict = evaldict or {} + mo = DEF.search(src) + if mo is None: + raise SyntaxError('not a valid function template\n%s' % src) + name = mo.group(1) # extract the function name + names = set([name] + [arg.strip(' *') for arg in + self.shortsignature.split(',')]) + for n in names: + if n in ('_func_', '_call_'): + raise NameError('%s is overridden in\n%s' % (n, src)) + + if not src.endswith('\n'): # add a newline for old Pythons + src += '\n' + + # Ensure each generated function has a unique filename for profilers + # (such as cProfile) that depend on the tuple of (, + # , ) being unique. + filename = '' % next(self._compile_count) + try: + code = compile(src, filename, 'single') + exec(code, evaldict) + except Exception: + print('Error in generated code:', file=sys.stderr) + print(src, file=sys.stderr) + raise + func = evaldict[name] + if addsource: + attrs['__source__'] = src + self.update(func, **attrs) + return func + + @classmethod + def create(cls, obj, body, evaldict, defaults=None, + doc=None, module=None, addsource=True, **attrs): + """ + Create a function from the strings name, signature and body. + evaldict is the evaluation dictionary. If addsource is true an + attribute __source__ is added to the result. The attributes attrs + are added, if any. + """ + if isinstance(obj, str): # "name(signature)" + name, rest = obj.strip().split('(', 1) + signature = rest[:-1] # strip a right parens + func = None + else: # a function + name = None + signature = None + func = obj + self = cls(func, name, signature, defaults, doc, module) + ibody = '\n'.join(' ' + line for line in body.splitlines()) + caller = evaldict.get('_call_') # when called from `decorate` + if caller and iscoroutinefunction(caller): + body = ('async def %(name)s(%(signature)s):\n' + ibody).replace( + 'return', 'return await') + else: + body = 'def %(name)s(%(signature)s):\n' + ibody + return self.make(body, evaldict, addsource, **attrs) + + +def fix(args, kwargs, sig): + """ + Fix args and kwargs to be consistent with the signature + """ + ba = sig.bind(*args, **kwargs) + ba.apply_defaults() # needed for test_dan_schult + return ba.args, ba.kwargs + + +def decorate(func, caller, extras=(), kwsyntax=False): + """ + Decorates a function/generator/coroutine using a caller. + If kwsyntax is True calling the decorated functions with keyword + syntax will pass the named arguments inside the ``kw`` dictionary, + even if such argument are positional, similarly to what functools.wraps + does. By default kwsyntax is False and the the arguments are untouched. + """ + sig = inspect.signature(func) + if isinstance(func, functools.partial): + func = functools.update_wrapper(func, func.func) + if iscoroutinefunction(caller): + async def fun(*args, **kw): + if not kwsyntax: + args, kw = fix(args, kw, sig) + return await caller(func, *(extras + args), **kw) + elif isgeneratorfunction(caller): + def fun(*args, **kw): + if not kwsyntax: + args, kw = fix(args, kw, sig) + for res in caller(func, *(extras + args), **kw): + yield res + else: + def fun(*args, **kw): + if not kwsyntax: + args, kw = fix(args, kw, sig) + return caller(func, *(extras + args), **kw) + + fun.__name__ = func.__name__ + fun.__doc__ = func.__doc__ + fun.__wrapped__ = func + fun.__signature__ = sig + fun.__qualname__ = func.__qualname__ + # builtin functions like defaultdict.__setitem__ lack many attributes + try: + fun.__defaults__ = func.__defaults__ + except AttributeError: + pass + try: + fun.__kwdefaults__ = func.__kwdefaults__ + except AttributeError: + pass + try: + fun.__annotations__ = func.__annotations__ + except AttributeError: + pass + try: + fun.__module__ = func.__module__ + except AttributeError: + pass + try: + fun.__name__ = func.__name__ + except AttributeError: # happens with old versions of numpy.vectorize + func.__name__ == 'noname' + try: + fun.__dict__.update(func.__dict__) + except AttributeError: + pass + return fun + + +def decoratorx(caller): + """ + A version of "decorator" implemented via "exec" and not via the + Signature object. Use this if you are want to preserve the `.__code__` + object properties (https://github.com/micheles/decorator/issues/129). + """ + def dec(func): + return FunctionMaker.create( + func, + "return _call_(_func_, %(shortsignature)s)", + dict(_call_=caller, _func_=func), + __wrapped__=func, __qualname__=func.__qualname__) + return dec + + +def decorator(caller, _func=None, kwsyntax=False): + """ + decorator(caller) converts a caller function into a decorator + """ + if _func is not None: # return a decorated function + # this is obsolete behavior; you should use decorate instead + return decorate(_func, caller, (), kwsyntax) + # else return a decorator function + sig = inspect.signature(caller) + dec_params = [p for p in sig.parameters.values() if p.kind is POS] + + def dec(func=None, *args, **kw): + na = len(args) + 1 + extras = args + tuple(kw.get(p.name, p.default) + for p in dec_params[na:] + if p.default is not EMPTY) + if func is None: + return lambda func: decorate(func, caller, extras, kwsyntax) + else: + return decorate(func, caller, extras, kwsyntax) + dec.__signature__ = sig.replace(parameters=dec_params) + dec.__name__ = caller.__name__ + dec.__doc__ = caller.__doc__ + dec.__wrapped__ = caller + dec.__qualname__ = caller.__qualname__ + dec.__kwdefaults__ = getattr(caller, '__kwdefaults__', None) + dec.__dict__.update(caller.__dict__) + return dec + + +# ####################### contextmanager ####################### # + + +class ContextManager(_GeneratorContextManager): + def __init__(self, g, *a, **k): + _GeneratorContextManager.__init__(self, g, a, k) + + def __call__(self, func): + def caller(f, *a, **k): + with self.__class__(self.func, *self.args, **self.kwds): + return f(*a, **k) + return decorate(func, caller) + + +_contextmanager = decorator(ContextManager) + + +def contextmanager(func): + # Enable Pylint config: contextmanager-decorators=decorator.contextmanager + return _contextmanager(func) + + +# ############################ dispatch_on ############################ # + +def append(a, vancestors): + """ + Append ``a`` to the list of the virtual ancestors, unless it is already + included. + """ + add = True + for j, va in enumerate(vancestors): + if issubclass(va, a): + add = False + break + if issubclass(a, va): + vancestors[j] = a + add = False + if add: + vancestors.append(a) + + +# inspired from simplegeneric by P.J. Eby and functools.singledispatch +def dispatch_on(*dispatch_args): + """ + Factory of decorators turning a function into a generic function + dispatching on the given arguments. + """ + assert dispatch_args, 'No dispatch args passed' + dispatch_str = '(%s,)' % ', '.join(dispatch_args) + + def check(arguments, wrong=operator.ne, msg=''): + """Make sure one passes the expected number of arguments""" + if wrong(len(arguments), len(dispatch_args)): + raise TypeError('Expected %d arguments, got %d%s' % + (len(dispatch_args), len(arguments), msg)) + + def gen_func_dec(func): + """Decorator turning a function into a generic function""" + + # first check the dispatch arguments + argset = set(getfullargspec(func).args) + if not set(dispatch_args) <= argset: + raise NameError('Unknown dispatch arguments %s' % dispatch_str) + + typemap = {} + + def vancestors(*types): + """ + Get a list of sets of virtual ancestors for the given types + """ + check(types) + ras = [[] for _ in range(len(dispatch_args))] + for types_ in typemap: + for t, type_, ra in zip(types, types_, ras): + if issubclass(t, type_) and type_ not in t.mro(): + append(type_, ra) + return [set(ra) for ra in ras] + + def ancestors(*types): + """ + Get a list of virtual MROs, one for each type + """ + check(types) + lists = [] + for t, vas in zip(types, vancestors(*types)): + n_vas = len(vas) + if n_vas > 1: + raise RuntimeError( + 'Ambiguous dispatch for %s: %s' % (t, vas)) + elif n_vas == 1: + va, = vas + mro = type('t', (t, va), {}).mro()[1:] + else: + mro = t.mro() + lists.append(mro[:-1]) # discard t and object + return lists + + def register(*types): + """ + Decorator to register an implementation for the given types + """ + check(types) + + def dec(f): + check(getfullargspec(f).args, operator.lt, ' in ' + f.__name__) + typemap[types] = f + return f + return dec + + def dispatch_info(*types): + """ + An utility to introspect the dispatch algorithm + """ + check(types) + lst = [] + for ancs in itertools.product(*ancestors(*types)): + lst.append(tuple(a.__name__ for a in ancs)) + return lst + + def _dispatch(dispatch_args, *args, **kw): + types = tuple(type(arg) for arg in dispatch_args) + try: # fast path + f = typemap[types] + except KeyError: + pass + else: + return f(*args, **kw) + combinations = itertools.product(*ancestors(*types)) + next(combinations) # the first one has been already tried + for types_ in combinations: + f = typemap.get(types_) + if f is not None: + return f(*args, **kw) + + # else call the default implementation + return func(*args, **kw) + + return FunctionMaker.create( + func, 'return _f_(%s, %%(shortsignature)s)' % dispatch_str, + dict(_f_=_dispatch), register=register, default=func, + typemap=typemap, vancestors=vancestors, ancestors=ancestors, + dispatch_info=dispatch_info, __wrapped__=func) + + gen_func_dec.__name__ = 'dispatch_on' + dispatch_str + return gen_func_dec diff --git a/venv/lib/python3.10/site-packages/distutils-precedence.pth b/venv/lib/python3.10/site-packages/distutils-precedence.pth new file mode 100644 index 0000000..6de4198 --- /dev/null +++ b/venv/lib/python3.10/site-packages/distutils-precedence.pth @@ -0,0 +1 @@ +import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.environ.get(var, 'stdlib') == 'local'; enabled and __import__('_distutils_hack').add_shim(); diff --git a/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/METADATA b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/METADATA new file mode 100644 index 0000000..46028fb --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/METADATA @@ -0,0 +1,91 @@ +Metadata-Version: 2.4 +Name: Flask +Version: 3.1.2 +Summary: A simple framework for building complex web applications. +Maintainer-email: Pallets +Requires-Python: >=3.9 +Description-Content-Type: text/markdown +License-Expression: BSD-3-Clause +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Framework :: Flask +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Classifier: Topic :: Internet :: WWW/HTTP :: WSGI +Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application +Classifier: Topic :: Software Development :: Libraries :: Application Frameworks +Classifier: Typing :: Typed +License-File: LICENSE.txt +Requires-Dist: blinker>=1.9.0 +Requires-Dist: click>=8.1.3 +Requires-Dist: importlib-metadata>=3.6.0; python_version < '3.10' +Requires-Dist: itsdangerous>=2.2.0 +Requires-Dist: jinja2>=3.1.2 +Requires-Dist: markupsafe>=2.1.1 +Requires-Dist: werkzeug>=3.1.0 +Requires-Dist: asgiref>=3.2 ; extra == "async" +Requires-Dist: python-dotenv ; extra == "dotenv" +Project-URL: Changes, https://flask.palletsprojects.com/page/changes/ +Project-URL: Chat, https://discord.gg/pallets +Project-URL: Documentation, https://flask.palletsprojects.com/ +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Source, https://github.com/pallets/flask/ +Provides-Extra: async +Provides-Extra: dotenv + +

+ +# Flask + +Flask is a lightweight [WSGI] web application framework. It is designed +to make getting started quick and easy, with the ability to scale up to +complex applications. It began as a simple wrapper around [Werkzeug] +and [Jinja], and has become one of the most popular Python web +application frameworks. + +Flask offers suggestions, but doesn't enforce any dependencies or +project layout. It is up to the developer to choose the tools and +libraries they want to use. There are many extensions provided by the +community that make adding new functionality easy. + +[WSGI]: https://wsgi.readthedocs.io/ +[Werkzeug]: https://werkzeug.palletsprojects.com/ +[Jinja]: https://jinja.palletsprojects.com/ + +## A Simple Example + +```python +# save this as app.py +from flask import Flask + +app = Flask(__name__) + +@app.route("/") +def hello(): + return "Hello, World!" +``` + +``` +$ flask run + * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) +``` + +## Donate + +The Pallets organization develops and supports Flask and the libraries +it uses. In order to grow the community of contributors and users, and +allow the maintainers to devote more time to the projects, [please +donate today]. + +[please donate today]: https://palletsprojects.com/donate + +## Contributing + +See our [detailed contributing documentation][contrib] for many ways to +contribute, including reporting issues, requesting features, asking or answering +questions, and making PRs. + +[contrib]: https://palletsprojects.com/contributing/ + diff --git a/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/RECORD b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/RECORD new file mode 100644 index 0000000..0e53a1c --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/RECORD @@ -0,0 +1,58 @@ +../../../bin/flask,sha256=MbTYUNx70KphT3LNltAXh68MDHsHgrFNyFRP5AEj2Q4,241 +flask-3.1.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +flask-3.1.2.dist-info/METADATA,sha256=oRg63DAAIcoLAr7kzTgIEKfm8_4HMTRpmWmIptdY_js,3167 +flask-3.1.2.dist-info/RECORD,, +flask-3.1.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +flask-3.1.2.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82 +flask-3.1.2.dist-info/entry_points.txt,sha256=bBP7hTOS5fz9zLtC7sPofBZAlMkEvBxu7KqS6l5lvc4,40 +flask-3.1.2.dist-info/licenses/LICENSE.txt,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475 +flask/__init__.py,sha256=mHvJN9Swtl1RDtjCqCIYyIniK_SZ_l_hqUynOzgpJ9o,2701 +flask/__main__.py,sha256=bYt9eEaoRQWdejEHFD8REx9jxVEdZptECFsV7F49Ink,30 +flask/__pycache__/__init__.cpython-310.pyc,, +flask/__pycache__/__main__.cpython-310.pyc,, +flask/__pycache__/app.cpython-310.pyc,, +flask/__pycache__/blueprints.cpython-310.pyc,, +flask/__pycache__/cli.cpython-310.pyc,, +flask/__pycache__/config.cpython-310.pyc,, +flask/__pycache__/ctx.cpython-310.pyc,, +flask/__pycache__/debughelpers.cpython-310.pyc,, +flask/__pycache__/globals.cpython-310.pyc,, +flask/__pycache__/helpers.cpython-310.pyc,, +flask/__pycache__/logging.cpython-310.pyc,, +flask/__pycache__/sessions.cpython-310.pyc,, +flask/__pycache__/signals.cpython-310.pyc,, +flask/__pycache__/templating.cpython-310.pyc,, +flask/__pycache__/testing.cpython-310.pyc,, +flask/__pycache__/typing.cpython-310.pyc,, +flask/__pycache__/views.cpython-310.pyc,, +flask/__pycache__/wrappers.cpython-310.pyc,, +flask/app.py,sha256=XGqgFRsLgBhzIoB2HSftoMTIM3hjDiH6rdV7c3g3IKc,61744 +flask/blueprints.py,sha256=p5QE2lY18GItbdr_RKRpZ8Do17g0PvQGIgZkSUDhX2k,4541 +flask/cli.py,sha256=Pfh72-BxlvoH0QHCDOc1HvXG7Kq5Xetf3zzNz2kNSHk,37184 +flask/config.py,sha256=PiqF0DPam6HW0FH4CH1hpXTBe30NSzjPEOwrz1b6kt0,13219 +flask/ctx.py,sha256=sPKzahqtgxaS7O0y9E_NzUJNUDyTD6M4GkDrVu2fU3Y,15064 +flask/debughelpers.py,sha256=PGIDhStW_efRjpaa3zHIpo-htStJOR41Ip3OJWPYBwo,6080 +flask/globals.py,sha256=XdQZmStBmPIs8t93tjx6pO7Bm3gobAaONWkFcUHaGas,1713 +flask/helpers.py,sha256=rJZge7_J288J1UQv5-kNf4oEaw332PP8NTW0QRIBbXE,23517 +flask/json/__init__.py,sha256=hLNR898paqoefdeAhraa5wyJy-bmRB2k2dV4EgVy2Z8,5602 +flask/json/__pycache__/__init__.cpython-310.pyc,, +flask/json/__pycache__/provider.cpython-310.pyc,, +flask/json/__pycache__/tag.cpython-310.pyc,, +flask/json/provider.py,sha256=5imEzY5HjV2HoUVrQbJLqXCzMNpZXfD0Y1XqdLV2XBA,7672 +flask/json/tag.py,sha256=DhaNwuIOhdt2R74oOC9Y4Z8ZprxFYiRb5dUP5byyINw,9281 +flask/logging.py,sha256=8sM3WMTubi1cBb2c_lPkWpN0J8dMAqrgKRYLLi1dCVI,2377 +flask/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +flask/sansio/README.md,sha256=-0X1tECnilmz1cogx-YhNw5d7guK7GKrq_DEV2OzlU0,228 +flask/sansio/__pycache__/app.cpython-310.pyc,, +flask/sansio/__pycache__/blueprints.cpython-310.pyc,, +flask/sansio/__pycache__/scaffold.cpython-310.pyc,, +flask/sansio/app.py,sha256=5EbxwHOchgcpZqQyalA9vyDBopknOvDg6BVwXFyFD2s,38099 +flask/sansio/blueprints.py,sha256=Tqe-7EkZ-tbWchm8iDoCfD848f0_3nLv6NNjeIPvHwM,24637 +flask/sansio/scaffold.py,sha256=wSASXYdFRWJmqcL0Xq-T7N-PDVUSiFGvjO9kPZg58bk,30371 +flask/sessions.py,sha256=duvYGmCGh_H3cgMuy2oeSjrCsCvLylF4CBKOXpN0Qms,15480 +flask/signals.py,sha256=V7lMUww7CqgJ2ThUBn1PiatZtQanOyt7OZpu2GZI-34,750 +flask/templating.py,sha256=IHsdsF-eBJPCJE0AJLCi1VhhnytOGdzHCn3yThz87c4,7536 +flask/testing.py,sha256=zzC7XxhBWOP9H697IV_4SG7Lg3Lzb5PWiyEP93_KQXE,10117 +flask/typing.py,sha256=L-L5t2jKgS0aOmVhioQ_ylqcgiVFnA6yxO-RLNhq-GU,3293 +flask/views.py,sha256=xzJx6oJqGElThtEghZN7ZQGMw5TDFyuRxUkecwRuAoA,6962 +flask/wrappers.py,sha256=jUkv4mVek2Iq4hwxd4RvqrIMb69Bv0PElDgWLmd5ORo,9406 diff --git a/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/REQUESTED b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/WHEEL b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/WHEEL new file mode 100644 index 0000000..d8b9936 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.12.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/entry_points.txt b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/entry_points.txt new file mode 100644 index 0000000..eec6733 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +flask=flask.cli:main + diff --git a/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/licenses/LICENSE.txt b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/licenses/LICENSE.txt new file mode 100644 index 0000000..9d227a0 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask-3.1.2.dist-info/licenses/LICENSE.txt @@ -0,0 +1,28 @@ +Copyright 2010 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.10/site-packages/flask/__init__.py b/venv/lib/python3.10/site-packages/flask/__init__.py new file mode 100644 index 0000000..1fdc50c --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/__init__.py @@ -0,0 +1,61 @@ +from __future__ import annotations + +import typing as t + +from . import json as json +from .app import Flask as Flask +from .blueprints import Blueprint as Blueprint +from .config import Config as Config +from .ctx import after_this_request as after_this_request +from .ctx import copy_current_request_context as copy_current_request_context +from .ctx import has_app_context as has_app_context +from .ctx import has_request_context as has_request_context +from .globals import current_app as current_app +from .globals import g as g +from .globals import request as request +from .globals import session as session +from .helpers import abort as abort +from .helpers import flash as flash +from .helpers import get_flashed_messages as get_flashed_messages +from .helpers import get_template_attribute as get_template_attribute +from .helpers import make_response as make_response +from .helpers import redirect as redirect +from .helpers import send_file as send_file +from .helpers import send_from_directory as send_from_directory +from .helpers import stream_with_context as stream_with_context +from .helpers import url_for as url_for +from .json import jsonify as jsonify +from .signals import appcontext_popped as appcontext_popped +from .signals import appcontext_pushed as appcontext_pushed +from .signals import appcontext_tearing_down as appcontext_tearing_down +from .signals import before_render_template as before_render_template +from .signals import got_request_exception as got_request_exception +from .signals import message_flashed as message_flashed +from .signals import request_finished as request_finished +from .signals import request_started as request_started +from .signals import request_tearing_down as request_tearing_down +from .signals import template_rendered as template_rendered +from .templating import render_template as render_template +from .templating import render_template_string as render_template_string +from .templating import stream_template as stream_template +from .templating import stream_template_string as stream_template_string +from .wrappers import Request as Request +from .wrappers import Response as Response + +if not t.TYPE_CHECKING: + + def __getattr__(name: str) -> t.Any: + if name == "__version__": + import importlib.metadata + import warnings + + warnings.warn( + "The '__version__' attribute is deprecated and will be removed in" + " Flask 3.2. Use feature detection or" + " 'importlib.metadata.version(\"flask\")' instead.", + DeprecationWarning, + stacklevel=2, + ) + return importlib.metadata.version("flask") + + raise AttributeError(name) diff --git a/venv/lib/python3.10/site-packages/flask/__main__.py b/venv/lib/python3.10/site-packages/flask/__main__.py new file mode 100644 index 0000000..4e28416 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/__main__.py @@ -0,0 +1,3 @@ +from .cli import main + +main() diff --git a/venv/lib/python3.10/site-packages/flask/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dc63c8e7ef1d765a3505f1eb3b01b3b38e4f83b1 GIT binary patch literal 2321 zcmb`INpl-T6vt;q%V@Q1*_L;EyvlN7jh6sL5hxN9mZB;}C82=6bd5AEY3!bb?v@>c za{;b7@de<>SDGuQe1%Yz;=Q(%xXcx){MT>(-P6nK_u6r_S~B3XXa5|$1o|5vZhkWG z@Tp;#(y$D}H++*Dp-D^=+2R(-_!&RTvtf?pz{~hKo)2weYtHjRSR_TwHZO%`Qr2AH zm9R>xnv1{_WI}TZxJGK4%fORlQgek*g>_QbTm_yc)0!uMXUL4^8t^Qc)jY`?;T)OM zJOw;Y<~7%W7s!Ii7aWJ1zsl0nj63?WJU8F@G4o=JP*7^)-*2wJH*kv z$aCR3S=YS8H^NP_sd*WAi)?9L0p2Ftnpc5$$d2YU;3jEmc7S)uuI6>%7HMhT0Nx{e znm2*(kUN^UfbWvKnz#9W*d}ewJHRe+H8+6|$bsfv;6rk#xy6sdV{)u{5BMIrXBsSX z`ks8_ANsC;@LQI=?^{pdw4WNSqgR+4Ei)~9Q4}jr1#u)FzcR1Q?5T_+Xv}@iJ$VLD ze8`6^5kaKjA%7A_y`T?N_j-y6ss@3ig8evT65E%%adJt!Lm^nC#y;)Fkz&uWy*BV9 z^^)X7kl=+%Mv_dXsC^1F^&ybljF$uf+!eGS{r*(c|z%R z%#5vDiuf)Hn`wn7qr*zGkr%Qw z123g{!PHPhuXC#XAiC^gN{>Hy2j<}K1n^kiw|s*eFHHSwzOb&WQ_IgN zxDox_%ZzDUnWx!5a(@0#^QocoSH`dAFJ{YroR%p)X99DOQh_u5^!u{`bDB5ort>z( zoIpB0lo9Jf>iLcr`OZbaxzk~eU}1a?UJyCD=A7g9QQP@eGN;Ep*baji6=WjJH>HK~#Hl@+Ih}YguBJyqK)z?h9hf*RzMVnbgXg~t z@e%yIe&!D1kh!Pw=nQ|iJrat5Se;x}tqrj@bG{67`DV2O{Rp_SE36nBBe zK1v(i57H8)y&=XO&K0AV=GA2a5lKyz8X}8M2Fg-kHl?M`_;!>cuRB9w!wo5H-LI>j zivo}+qTqjNQN{+l&*P5ArKq4)MVUaU>Ba%$38a>oL~9DAjxvpcdlIuK4U{>Qd6Wf| zMUd2%K|jL5m(W^9SwUGvSwnG9)=@T4Hc_@f($c65VY^}*-5r!B$}YASE(B~H*VaOB z554NMAHI1+PriI~^7U7bztFMOr+h=O-qOPTF!qO>eS*azzXz!p1*>9J%>VD3wC5ZS1Hd@()Gda!aJ;GfK1WUihUrKA`FIahJ<-pD` z><+U!iu&L%?%w&x>C2mc1kP;S*rB5waw0&I10lf30|?~74&u(6xMfV*P*Se8anN=$ z!HthT!GunJ^x0#fCBuuICrd1izObya$c3Irs_2;+teL7&@FSK@RcN)CCNs3WVv~|) iS9f9YB&fY&n);?Rot918TS=YY1Y7$jtZy4YKllRZb2Fm= literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/__pycache__/app.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/__pycache__/app.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8c0b14d0f0ed4e5aeff96975da8827cdd658e4bb GIT binary patch literal 50880 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 GSNRW_x_DUt literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/__pycache__/cli.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/__pycache__/cli.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9180bb355d7230620e45836cdd6a5507c620bfb GIT binary patch literal 29985 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/__pycache__/config.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/__pycache__/config.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8d1a5c9c1dc10a019689b58742edd193d88cfbf5 GIT binary patch literal 13410 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/__pycache__/ctx.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/__pycache__/ctx.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a5366d2dcbc6da665eb0adb2c57c4ef5c7e52f07 GIT binary patch literal 14858 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 BM7jU~ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/__pycache__/debughelpers.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/__pycache__/debughelpers.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..36e081713f5394a640b38d7bd6d896d32259642f GIT binary patch literal 6596 zcmb7ITaOz@cJAtKl1&chqLDPZdA+rk9qnu+j#o~i^+YRM*3Hg($Brz=Hnl>l$tn(; zYIajqO^v2Q240T<8_09=Vh9)kK>)pEf&79zD`!GxDr~?HN{A zS6A2NT)y+wN#^Hk7OtOF{xSTo6PESA^sxUb;o)7&V*0;P5td+))n`q{sBTAg)4|<| z+)JviqdHrg$YU-7!)}L$6nYtI%`}56tW=W^Fpe~_jHCpU1HJ8lW zT6Cnp++1eXElbRa`V&jk zmYQ#MrILIL|3RE`o%AJd$uyOUOZtKtZEqJ$>=# zZ?6qh(!*BtS{Nl4`av9QO11V##*fybu(dYWPP<9`R^#VyuIVt97Y0H50ea}QP88?| zYeKe$n_U?Vq|%MSwwl8nNAS}w3eWPGY5AUj9lU*)1pGQG2LwDXJW+)`xMD%n#2jiR zQHRhM^X2O_*Ud1J`d4zh5ct1L1m00eAF?z?(dbYYE{3p!O>P#riCTm6J6*{`Ap;(2 zo_2$jhbeCdv5_aF@CfgCa8N&esWrAs-DBPx>J%L|Wh_uc!_d1la(7)(8I``Zp5kk`t+(rp+-GcL`6XdNl+}&w zM_(jEo~jVGnkGDG!&FHml9TLs_BmNFJ-#H;uuTq0hS(Y!>4^lAhNE)%IMivwNVp&N zWx74USg_lDgOJp-f5*r=m4V<%ho9>Yqcj`@DqTb0{spq`b8wlk-Q|55#1k#WNwKVU z5~ngw;Z)>PsX~W-2wxJIm%2R0Y?z~PtZi&icavcx_*AtrZqvGc`Pw1VzD7I7H;Pu> zZ)Em)-X;{7UN$PEFHQP6iOO%Sk#(;!W+^na!~Vfy)l;D z=Xr{JBd=a26M8&QSI*Ip1N@MnMcB@t+lWwVG zO9N4+lHDhn0&$E|2@f=B2qM}FG}pscA-#2;TdU>VrH$v6O_@eeW$sPYn7h3sjPr6Z z7|2-UPG4_QZ!M#aI*OI6W3;6@eeL&ywB40DcUr?vUNSSjymw$$v7uLJ>!(rFnPnI90y0rilo=x5xAd}(C$pbSNtT4jn*2DdkGdwD&;M|dXW zi+7r|TxQwnL#H*}Hdf2UuF12_*41&Utx$m&ZLQixom$biPVMtlEKspX#VQp)qhf~0 zMU9L@Eu)};w1>j8Tvl@zmQ8CL4F@hV99&GlhVlT4dS6=|Cd#7nq~3JDwp^=OBFE29 z+=QC0!_96dLy9`n0Gj=eu?zXQEeGV{8-Ssk!1WQ&60too#;&m}T@2EdFUH|; zqmS==@X^L6Jct2Ym_&mj3^k_+OiM<8Gt66WUZUP_z4?m*koT!Y4dwP*134Y1`icRDSw&FS zN6v0VR0xJm&7)fC?O3~2QQfVLoM(V+Ks3Q}Z6iBzb&9x!ivsNkpU-8N&Yd@qJC%H> z^$^$%RZLVs-AEt^X9-wC5b;lMe~1t5bBz~l?FD;Bk$Yrc8ib}-1OY;J!WhGBg=rUK z0XM>kVx~rD?>6{NituTOeJKPXU8KH(If=IRd2#X97~fKn@sq5=YyIT6sgg z3Sq6ze;ppos<-N79{>g_Y(z<=EAKR%}T!|&fe zKwGeJ1T}EizVF|^PX=d@4F)fyZmST0_ed73!GK55B4fROe@Yh)VGH-~H)^KuI+PsD znCH6juF2#y(SX)dK+rl+EdUh>9|fsgHy^jL+XL4O&pDcBcwYJ1`kHlYL-XoQ$Dp~3 z{d!p=NYkL*^(QO!4fFBMdIhN39%X=awj=#gxO!1a8&~7)12{<9pvVTJWcqznvPxJ_)$9QJ~UA{nwo8Q|=}_g6uDsjDF#Od{f5qDMnU zj9HpE`nPDii=Sa@HarGC15Y8pvA?rz`w!li_Wx(=f1U{U+Y%g@R;KSCnwHvFT{D!}P_6Cq^`K`Ke9gQTsg)$D_&!QMqV)xIP(WF0H5Y z=|aav^xl|!=g~3hsbk3ciRn?OV!#$8m^E_dAJ`!=1lpyh9THVFq~9w@e+paQqx}Wb zwAC7V6&6AL3#IJY*T0##ut&Y4MHU>`wS1gO_2}{(zb;aDM278Ckz^CR$6*FUP zJV(7meKa>c_&>Zes$zYX>WKMqJzfwCc&?tZ29a3AT;5Y>TpzijddZ?>0=``u)o0(H z5l6=JcYUY97ZpX7 zBEnT?z4EGzhkc4g$WGFGgBf#SpYo?B4XVg-bCJ;@jON9X$1hq|MH34A&SY_Dv zg8H0Ze?bL>UL{cEb19O}k#7{Ed}?t*@z`J?P*$~*Rxd9@*#x28~(NTZ(RG;2OGEY#mRd;$>ggl zt;O3?lt@szNV+au)yRpFvl}-!V+CMm5h)BcvJpwo+?KgL`NnH`dw$-T=(mi-DH frcIEmTOKr0hve~NWm7IY%jKmrwIA0`FC6(JB1q%P literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/__pycache__/globals.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/__pycache__/globals.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8af4fa7e39e9d72afcd571ef2dad706271f1c0f7 GIT binary patch literal 1585 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 GOz~gbq0-#| literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/__pycache__/sessions.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/__pycache__/sessions.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a7b81920746e494ac00402d8e668d2e4b2bd35b GIT binary patch literal 14266 zcmb7LOK=?5b)BB+`Cu^kkraO-r55Fc9Ge`7q8;0a>=FfmCM*)9F_2}A;+knpH-H9u zKI-lv2pEiAA*-BJ%BfU2|H^_)oCSB;W|68avWT!Zlo9So` zO=CXmW;?lt9_90mynHJ(iugB&vQncYWx6}jnP^N%K9794QI>qco$OQ^70DNopK44= zzT{4KW*RfdPgrGlwlmk5(=v8(`-Jy_jBv7X3MG^7OP$k=(^9MAp6Q%zoR$0(^5+`o zw9Gd$*0eSABxB9kCHp+uzr2w>mwB9PTtLaJHHVTpduCW-UwEuHE~4y&brNMK?Te`U z3f@myFX8>A$JxfK_T1x4!?0ep4C`gAQo#TzBoeX20)rH}R!pnSmWR9h-UnyWi_FUwOy0>dt1@3F4mNS%Q)}ktrfq$*esASa<@_zz z^mkC9xN3hqu>Anp(yHzEF+sb{S*L$GUfw467m%?t4b93lvX<7!*}7G+bSwWvf2=j~ zc7D5HO@8K3cC|>+gjV$-G|1Abu7}CAWV%O~6`GCCooC-GLqI zD-fGD>&8Fkb9jU(v&aOQ1MRVP0K&Wl?FC`7E8ZNwS2d5t)vR|4|9EGaaCs^@&Dq5%cQnIpnJ4u+(gJ&5qq{f|$)t&lCkFr7L zaptLZpdA1=xDkP4r4><%7sbG?)uH*RPDcTV`c`MBR09io)>J7lvz~dLU0H+5yoMt0 z5|fim4r^IB(d#w`eeMSze{=f?<5t=S}%n$6l~oAXf{O*o6VH|e;#Gu#3OSm>nHU63!gTpFb6aZ zb70DgyzuN02V!6n4p31Qu>uX$&mL&cw0g$7jL(>zkgAG&IN59hfPtKyW-~^rYbfx( zz+{L3Z{T$ePei?nw*Tt*nI^r3Ma$kW2X4@&XvDv?n0!K9JUmH?$e3w*T+Z`|sxrOn z_%J$0R{9Q}PZWozwf!^W=7<>{J0w-vMBgHAYunSW77r* zL79!N(*|VPo(Ev>VDsX>Z#Wx6kT*S4>IH&-<^$7liEK5)_&|_6UY$|*Wb<^AQJ#r*0?Ci?R3|?N8gW5`ORZOfy z#uZ6LmAyxDm5>Rb3y-zm(_laB|6mQHr?!DXH<`b&ZnsU)0xLs}HjFp1v35-#uK`w9 zkG3dP*rWl5eU8h4aqK#6v6{I;A4XQNg%ucst^=c$dsx(E4VGDDbJM%r{AvO=NxgHd!sJ>A%{aOYyNLHC7sQnTPPx0 zVT}r{_+nuf73d1{ZPzwo)%1J)u!w}8!-7J65&6`7lSzADMyDnopUxWXnsWX^v7pKK z<7NA=P&qBzwhk993+v^LNXCoSb(rx}koJ=GrZr>DA~#{(5C=$al<|$OkKUNHzG$7c z&LCGo?yPkVxhd2;Z@rA%G`?N1E+RK$eaU*wx`f=U^;_2K*5{C$v%YLyv8u?Ou)bnl zvuenlwC15bUkzs?%~|eZH{USZw)sWygd(N90w?}%?DYmP9Uj;e2d9G_zXP+K_Il5= zpj-Ir*?kv1P<})KA{ZPBXVTa1mebxcAep|gYkNEU_F(feWs-)OGOwhAWEhb{$Sdb1 zx<_g3!Fd@!DJZkFUtqO`7Hrxsgh8AivA&F`z{hfu0@ya}9f?O9>4EA3bKDrXMzj=6 zS7y#(tzP$X0HaGGO?%7iZrX`WIMm4AI$aXbhK>{JuEUPQIAf=#R)xXgASufX2KfWW zg1V*MGuPR%LHLMaM&BJMhbpq(9Z;3(8PP~6vElVPYFx1_7FrS8#TRT5=WI-|-Rpp< zma#qX1H&JzOI<3x8eV#0&!%PZYp`VoMu*rV?0$9>3pNrqD=`uQT%6RW5eunNeV@+h^QTN$8L79D}+7~ zu&qdVW0hEl*pR}!Rzx|O7R-4yU*#!?KLPGQzr;ZX-PP<4VLArIgo9WJ4=H4_lA+uH z=}r8f0(ufNtx=XDD<%W_flu&%Vvj<6=9+M#77+;+Z6uPdv^-z{<7#P{0PYrJ%LU#Tp{#;r<*LaWA1@Pcm+yPXrZ7M7$GCK zdtE?{haz{cW_++^cZZOsr`g`>8{3(37 zMbS`3q^P_J`PIr}MK#l^YDDO&v{j}-OhG@x=85X|2ChZLBp2MCN&nY^B}36BUpJi1 z0c=IAEa^w=MbTW4mCiG*J_o!e8?ZCLqI?K%&au1L^QeaBh|wkL?J9Fd61CU5z))VqQ~$gBXI|rZS66`liL2j zE^gWF9dQXvW79#*FcGa$d4xO=wPW!V9wbDhcp;bwWpe6t?{E@7c^G=YER@fkD&hiZBcRlQxux5e~j*k8mNJz~coEOz&3 z1xDQ{Jd2b=tqZ;GA}WxQZ}LxOuz(nv2{ZFBkKVm^_vZ2nEFFQ{RJ-A}q6}$nEN|9s zBugi%tSIv)g*aESM2ts5ZP0e%j?0O+Fz)KNmsUku;;1IO2wxgIA&i7ITNAJj0yuNV)jiKIE+aTjev;X{+8@&KpJqw ziLA_oYO%F>*pE_v7sW(zG4TyZwnNHx|K{55Rx9aFaSg3tL~KAt#ASnZPh)}fXQ(`8 zz|H&j?<_CgT%+o)-n+L3neQp9iG0A`Nqc@CU*n!yk##>5&m$Vn>4dYRJs;1!nG`oj z!k@;hJ5~5}b!X*c85gPe{@=wMTJvB-j_~I8+S>hlD|bE|%byex&y4UiZg)J{PNv8fPy63Mx=)Df<^2BV>dLnp?h0cX zd?xw+XdL;DNVN(H#3oo`vnS*ePxaR)T77Bp{naH%9o(d0JZ>y9sH(?PDUA$jmj51$ zS6Lrpv7~4e#W_gM_{V&_ZN>uj&x%6Olgo7+!M5d$6d-{2JLW?km_|Z(m}<~1B5*4-8p9@gvFlYpinfBS1mA9iU(5aAKfe}5-2bgv429imIJ&yOe2{hO<6%f!N^cX7s+ zv>fhwu``9!>7+C~Kcc#+UXG{U>6D@R5c4KE{Es_ICgVCAa+f5saS+gyvty18vo?;Y4*{A%Zl3LXJc+_ldvDjvOKuRf z!}G~FaVV=9_a7f|i8s|^2O}<(sL_ywO~&W{8}%gSUMQTy^P{Tuo87zWE#+hB+t^&xm7UAHZUTRnvpl2=lk&bY<@}foeF6xV9*M0Dx)> zF_kFHLUjm#Zx(5p+gR+s9xn@cwrZ#P$$zV-f6o#szuJ)x5T2E)jBNmr)3 zYwoGznITRn*PLD>=P>Ybbpw$If5++fLEjOP=jjd(J3!sE<9QTn-l$zqVaJ*crMX68RQp z`Z#DID)0xF|0F!a<@iL(whkRa3OqWHi&1HZ!43*bJUa>@KYIo%RlH?a4JX?;HI79+Ue_aN8;4eVfU5n0&a^kQPz=`%EfX4PpMok&rVN! ztp5ofTwg#;3<4PD*Y|Mpq1Hc-f;Lqk{xMG*0?jlzJ`Z@uE5lnxP>z3jR}NC6+Z3%9 zw&pEd*R1(l=5=hFyjb8Gp1NO9Gj1*4uOlArxG*Ak!XqHmZMy?YA!hyd&1=_j@qC8|c#KuhLjr~Za@DOPV^@MGa#tflbtsf*jAcKtUFg5Z%XmYRE_ENm#>F{> zM%8Rsj3$pes+c`)bp}{=isW+rq1<%M{kcEZ>7T`wUUyrNvzR%!J+B|rXgp}h1YtfZds*pQbLALR~mR%Vd#CdpR1AYfyL41C5? z{XqB6<6Y+wV~_`13r~yBGLN-K`TePb+;-_eKge6!kFt-z-lzIO;hFXUYU-I_V(+&# zY~m0HXD)Jx9?&=sq5BZd~ZoC$HQd?nyc{*XCjN0fg;cMAj#Meo(>!5H@JSZJZ9F(o> zk6^W>Yl{$Mo>tWDVgGLQKBe9tO=6^Jj`VaUm_5io=I9l)pF_WugUN&Puy<%UE`*Qv zO^q)sii27$gavgR5b6vT^Qt^TX?8f74xg0ba8y`|J?Xs=Q1~2HyxE8`}0{9hr* zzX~9{5LSl&75=9(p=T>u9e{J{NGa+JsznUEu&VVmut%I8T#g1Xpd zg;G|}={jy8X3M8wjj;wy4WIw$%HkLxKQzXwuk(*THU|7NCfwlVHW|*edvJ;6FMj-* zx!#8SAko_11C|zoJ^pP}s0AL8SYlHuELBPG;euSU5rt>sdwew_6|BNRo5T4YkvlAr z4z`e7Dsc;XI(rCpDkp65$YK%o*X z{xF9>Mo@4iG!>&6sFd;kh6(oyp-xIJ6QegQy`>D0uYAB4J3$;q_RO$Z!PjM{3 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/__pycache__/signals.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/__pycache__/signals.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77662bb64252fb00c4b2983f1f5bfb677d1b1fbc GIT binary patch literal 815 zcmY+C%Z}496hQ5y(?|N6K|Cb>ph%f8utGwJFPP2jy0P5mw#_uLjqS`MERpyQSn^BW zvSPyru;Rw8N2w!O$2Zs4KDOm_nh(~?wlNomVb z8CCHzrUc?|WZ8q>kFz}fNtb<3J*0uBGo+!XKGMk304eb_L>hY7tM>Uv{?Qy86MW4+Kn`?xKe8=EIe3T zq?3Qq`JrlG_#`Bi!nNk8VE7i&P08Dw>&3ZC7~9mg*1(v?OCoNtDhsg(t=sEyLuQJt z;H7c>1Gp!B7WCaw{}^CF-vxbk)OSIj1$`Ivagx_zt-fpZv6|OsPx`K-f12NMWe0tC z67u>k=(D5#FQT8JqwoIRWII_wc5B{UeaMuSx3IP*D@vJGT;Q4M><+|TRu-#FJ=&cV z?=P?3W~RVrfUjbY876D%?lI;M>{30t;m1nmbqSv+u47(fHzAX#A16^lPrn)c52X+c AVgLXD literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/__pycache__/templating.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/__pycache__/templating.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5519f9f47433596c712d9ff0b6b1837dd4255fd5 GIT binary patch literal 7088 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 B*AV~! literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/__pycache__/testing.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/__pycache__/testing.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..73f4a6a329948d06d5481aa2e164074bfa8c5100 GIT binary patch literal 9839 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 Ef5IvbO8@`> literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/__pycache__/views.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fab0abd5953dd9e99cdfa6a6fc5ea21b4ca9f4dc GIT binary patch literal 5553 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 BAqoHh literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/app.py b/venv/lib/python3.10/site-packages/flask/app.py new file mode 100644 index 0000000..1232b03 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/app.py @@ -0,0 +1,1536 @@ +from __future__ import annotations + +import collections.abc as cabc +import os +import sys +import typing as t +import weakref +from datetime import timedelta +from inspect import iscoroutinefunction +from itertools import chain +from types import TracebackType +from urllib.parse import quote as _url_quote + +import click +from werkzeug.datastructures import Headers +from werkzeug.datastructures import ImmutableDict +from werkzeug.exceptions import BadRequestKeyError +from werkzeug.exceptions import HTTPException +from werkzeug.exceptions import InternalServerError +from werkzeug.routing import BuildError +from werkzeug.routing import MapAdapter +from werkzeug.routing import RequestRedirect +from werkzeug.routing import RoutingException +from werkzeug.routing import Rule +from werkzeug.serving import is_running_from_reloader +from werkzeug.wrappers import Response as BaseResponse +from werkzeug.wsgi import get_host + +from . import cli +from . import typing as ft +from .ctx import AppContext +from .ctx import RequestContext +from .globals import _cv_app +from .globals import _cv_request +from .globals import current_app +from .globals import g +from .globals import request +from .globals import request_ctx +from .globals import session +from .helpers import get_debug_flag +from .helpers import get_flashed_messages +from .helpers import get_load_dotenv +from .helpers import send_from_directory +from .sansio.app import App +from .sansio.scaffold import _sentinel +from .sessions import SecureCookieSessionInterface +from .sessions import SessionInterface +from .signals import appcontext_tearing_down +from .signals import got_request_exception +from .signals import request_finished +from .signals import request_started +from .signals import request_tearing_down +from .templating import Environment +from .wrappers import Request +from .wrappers import Response + +if t.TYPE_CHECKING: # pragma: no cover + from _typeshed.wsgi import StartResponse + from _typeshed.wsgi import WSGIEnvironment + + from .testing import FlaskClient + from .testing import FlaskCliRunner + from .typing import HeadersValue + +T_shell_context_processor = t.TypeVar( + "T_shell_context_processor", bound=ft.ShellContextProcessorCallable +) +T_teardown = t.TypeVar("T_teardown", bound=ft.TeardownCallable) +T_template_filter = t.TypeVar("T_template_filter", bound=ft.TemplateFilterCallable) +T_template_global = t.TypeVar("T_template_global", bound=ft.TemplateGlobalCallable) +T_template_test = t.TypeVar("T_template_test", bound=ft.TemplateTestCallable) + + +def _make_timedelta(value: timedelta | int | None) -> timedelta | None: + if value is None or isinstance(value, timedelta): + return value + + return timedelta(seconds=value) + + +class Flask(App): + """The flask object implements a WSGI application and acts as the central + object. It is passed the name of the module or package of the + application. Once it is created it will act as a central registry for + the view functions, the URL rules, template configuration and much more. + + The name of the package is used to resolve resources from inside the + package or the folder the module is contained in depending on if the + package parameter resolves to an actual python package (a folder with + an :file:`__init__.py` file inside) or a standard module (just a ``.py`` file). + + For more information about resource loading, see :func:`open_resource`. + + Usually you create a :class:`Flask` instance in your main module or + in the :file:`__init__.py` file of your package like this:: + + from flask import Flask + app = Flask(__name__) + + .. admonition:: About the First Parameter + + The idea of the first parameter is to give Flask an idea of what + belongs to your application. This name is used to find resources + on the filesystem, can be used by extensions to improve debugging + information and a lot more. + + So it's important what you provide there. If you are using a single + module, `__name__` is always the correct value. If you however are + using a package, it's usually recommended to hardcode the name of + your package there. + + For example if your application is defined in :file:`yourapplication/app.py` + you should create it with one of the two versions below:: + + app = Flask('yourapplication') + app = Flask(__name__.split('.')[0]) + + Why is that? The application will work even with `__name__`, thanks + to how resources are looked up. However it will make debugging more + painful. Certain extensions can make assumptions based on the + import name of your application. For example the Flask-SQLAlchemy + extension will look for the code in your application that triggered + an SQL query in debug mode. If the import name is not properly set + up, that debugging information is lost. (For example it would only + pick up SQL queries in `yourapplication.app` and not + `yourapplication.views.frontend`) + + .. versionadded:: 0.7 + The `static_url_path`, `static_folder`, and `template_folder` + parameters were added. + + .. versionadded:: 0.8 + The `instance_path` and `instance_relative_config` parameters were + added. + + .. versionadded:: 0.11 + The `root_path` parameter was added. + + .. versionadded:: 1.0 + The ``host_matching`` and ``static_host`` parameters were added. + + .. versionadded:: 1.0 + The ``subdomain_matching`` parameter was added. Subdomain + matching needs to be enabled manually now. Setting + :data:`SERVER_NAME` does not implicitly enable it. + + :param import_name: the name of the application package + :param static_url_path: can be used to specify a different path for the + static files on the web. Defaults to the name + of the `static_folder` folder. + :param static_folder: The folder with static files that is served at + ``static_url_path``. Relative to the application ``root_path`` + or an absolute path. Defaults to ``'static'``. + :param static_host: the host to use when adding the static route. + Defaults to None. Required when using ``host_matching=True`` + with a ``static_folder`` configured. + :param host_matching: set ``url_map.host_matching`` attribute. + Defaults to False. + :param subdomain_matching: consider the subdomain relative to + :data:`SERVER_NAME` when matching routes. Defaults to False. + :param template_folder: the folder that contains the templates that should + be used by the application. Defaults to + ``'templates'`` folder in the root path of the + application. + :param instance_path: An alternative instance path for the application. + By default the folder ``'instance'`` next to the + package or module is assumed to be the instance + path. + :param instance_relative_config: if set to ``True`` relative filenames + for loading the config are assumed to + be relative to the instance path instead + of the application root. + :param root_path: The path to the root of the application files. + This should only be set manually when it can't be detected + automatically, such as for namespace packages. + """ + + default_config = ImmutableDict( + { + "DEBUG": None, + "TESTING": False, + "PROPAGATE_EXCEPTIONS": None, + "SECRET_KEY": None, + "SECRET_KEY_FALLBACKS": None, + "PERMANENT_SESSION_LIFETIME": timedelta(days=31), + "USE_X_SENDFILE": False, + "TRUSTED_HOSTS": None, + "SERVER_NAME": None, + "APPLICATION_ROOT": "/", + "SESSION_COOKIE_NAME": "session", + "SESSION_COOKIE_DOMAIN": None, + "SESSION_COOKIE_PATH": None, + "SESSION_COOKIE_HTTPONLY": True, + "SESSION_COOKIE_SECURE": False, + "SESSION_COOKIE_PARTITIONED": False, + "SESSION_COOKIE_SAMESITE": None, + "SESSION_REFRESH_EACH_REQUEST": True, + "MAX_CONTENT_LENGTH": None, + "MAX_FORM_MEMORY_SIZE": 500_000, + "MAX_FORM_PARTS": 1_000, + "SEND_FILE_MAX_AGE_DEFAULT": None, + "TRAP_BAD_REQUEST_ERRORS": None, + "TRAP_HTTP_EXCEPTIONS": False, + "EXPLAIN_TEMPLATE_LOADING": False, + "PREFERRED_URL_SCHEME": "http", + "TEMPLATES_AUTO_RELOAD": None, + "MAX_COOKIE_SIZE": 4093, + "PROVIDE_AUTOMATIC_OPTIONS": True, + } + ) + + #: The class that is used for request objects. See :class:`~flask.Request` + #: for more information. + request_class: type[Request] = Request + + #: The class that is used for response objects. See + #: :class:`~flask.Response` for more information. + response_class: type[Response] = Response + + #: the session interface to use. By default an instance of + #: :class:`~flask.sessions.SecureCookieSessionInterface` is used here. + #: + #: .. versionadded:: 0.8 + session_interface: SessionInterface = SecureCookieSessionInterface() + + def __init__( + self, + import_name: str, + static_url_path: str | None = None, + static_folder: str | os.PathLike[str] | None = "static", + static_host: str | None = None, + host_matching: bool = False, + subdomain_matching: bool = False, + template_folder: str | os.PathLike[str] | None = "templates", + instance_path: str | None = None, + instance_relative_config: bool = False, + root_path: str | None = None, + ): + super().__init__( + import_name=import_name, + static_url_path=static_url_path, + static_folder=static_folder, + static_host=static_host, + host_matching=host_matching, + subdomain_matching=subdomain_matching, + template_folder=template_folder, + instance_path=instance_path, + instance_relative_config=instance_relative_config, + root_path=root_path, + ) + + #: The Click command group for registering CLI commands for this + #: object. The commands are available from the ``flask`` command + #: once the application has been discovered and blueprints have + #: been registered. + self.cli = cli.AppGroup() + + # Set the name of the Click group in case someone wants to add + # the app's commands to another CLI tool. + self.cli.name = self.name + + # Add a static route using the provided static_url_path, static_host, + # and static_folder if there is a configured static_folder. + # Note we do this without checking if static_folder exists. + # For one, it might be created while the server is running (e.g. during + # development). Also, Google App Engine stores static files somewhere + if self.has_static_folder: + assert bool(static_host) == host_matching, ( + "Invalid static_host/host_matching combination" + ) + # Use a weakref to avoid creating a reference cycle between the app + # and the view function (see #3761). + self_ref = weakref.ref(self) + self.add_url_rule( + f"{self.static_url_path}/", + endpoint="static", + host=static_host, + view_func=lambda **kw: self_ref().send_static_file(**kw), # type: ignore # noqa: B950 + ) + + def get_send_file_max_age(self, filename: str | None) -> int | None: + """Used by :func:`send_file` to determine the ``max_age`` cache + value for a given file path if it wasn't passed. + + By default, this returns :data:`SEND_FILE_MAX_AGE_DEFAULT` from + the configuration of :data:`~flask.current_app`. This defaults + to ``None``, which tells the browser to use conditional requests + instead of a timed cache, which is usually preferable. + + Note this is a duplicate of the same method in the Flask + class. + + .. versionchanged:: 2.0 + The default configuration is ``None`` instead of 12 hours. + + .. versionadded:: 0.9 + """ + value = current_app.config["SEND_FILE_MAX_AGE_DEFAULT"] + + if value is None: + return None + + if isinstance(value, timedelta): + return int(value.total_seconds()) + + return value # type: ignore[no-any-return] + + def send_static_file(self, filename: str) -> Response: + """The view function used to serve files from + :attr:`static_folder`. A route is automatically registered for + this view at :attr:`static_url_path` if :attr:`static_folder` is + set. + + Note this is a duplicate of the same method in the Flask + class. + + .. versionadded:: 0.5 + + """ + if not self.has_static_folder: + raise RuntimeError("'static_folder' must be set to serve static_files.") + + # send_file only knows to call get_send_file_max_age on the app, + # call it here so it works for blueprints too. + max_age = self.get_send_file_max_age(filename) + return send_from_directory( + t.cast(str, self.static_folder), filename, max_age=max_age + ) + + def open_resource( + self, resource: str, mode: str = "rb", encoding: str | None = None + ) -> t.IO[t.AnyStr]: + """Open a resource file relative to :attr:`root_path` for reading. + + For example, if the file ``schema.sql`` is next to the file + ``app.py`` where the ``Flask`` app is defined, it can be opened + with: + + .. code-block:: python + + with app.open_resource("schema.sql") as f: + conn.executescript(f.read()) + + :param resource: Path to the resource relative to :attr:`root_path`. + :param mode: Open the file in this mode. Only reading is supported, + valid values are ``"r"`` (or ``"rt"``) and ``"rb"``. + :param encoding: Open the file with this encoding when opening in text + mode. This is ignored when opening in binary mode. + + .. versionchanged:: 3.1 + Added the ``encoding`` parameter. + """ + if mode not in {"r", "rt", "rb"}: + raise ValueError("Resources can only be opened for reading.") + + path = os.path.join(self.root_path, resource) + + if mode == "rb": + return open(path, mode) # pyright: ignore + + return open(path, mode, encoding=encoding) + + def open_instance_resource( + self, resource: str, mode: str = "rb", encoding: str | None = "utf-8" + ) -> t.IO[t.AnyStr]: + """Open a resource file relative to the application's instance folder + :attr:`instance_path`. Unlike :meth:`open_resource`, files in the + instance folder can be opened for writing. + + :param resource: Path to the resource relative to :attr:`instance_path`. + :param mode: Open the file in this mode. + :param encoding: Open the file with this encoding when opening in text + mode. This is ignored when opening in binary mode. + + .. versionchanged:: 3.1 + Added the ``encoding`` parameter. + """ + path = os.path.join(self.instance_path, resource) + + if "b" in mode: + return open(path, mode) + + return open(path, mode, encoding=encoding) + + def create_jinja_environment(self) -> Environment: + """Create the Jinja environment based on :attr:`jinja_options` + and the various Jinja-related methods of the app. Changing + :attr:`jinja_options` after this will have no effect. Also adds + Flask-related globals and filters to the environment. + + .. versionchanged:: 0.11 + ``Environment.auto_reload`` set in accordance with + ``TEMPLATES_AUTO_RELOAD`` configuration option. + + .. versionadded:: 0.5 + """ + options = dict(self.jinja_options) + + if "autoescape" not in options: + options["autoescape"] = self.select_jinja_autoescape + + if "auto_reload" not in options: + auto_reload = self.config["TEMPLATES_AUTO_RELOAD"] + + if auto_reload is None: + auto_reload = self.debug + + options["auto_reload"] = auto_reload + + rv = self.jinja_environment(self, **options) + rv.globals.update( + url_for=self.url_for, + get_flashed_messages=get_flashed_messages, + config=self.config, + # request, session and g are normally added with the + # context processor for efficiency reasons but for imported + # templates we also want the proxies in there. + request=request, + session=session, + g=g, + ) + rv.policies["json.dumps_function"] = self.json.dumps + return rv + + def create_url_adapter(self, request: Request | None) -> MapAdapter | None: + """Creates a URL adapter for the given request. The URL adapter + is created at a point where the request context is not yet set + up so the request is passed explicitly. + + .. versionchanged:: 3.1 + If :data:`SERVER_NAME` is set, it does not restrict requests to + only that domain, for both ``subdomain_matching`` and + ``host_matching``. + + .. versionchanged:: 1.0 + :data:`SERVER_NAME` no longer implicitly enables subdomain + matching. Use :attr:`subdomain_matching` instead. + + .. versionchanged:: 0.9 + This can be called outside a request when the URL adapter is created + for an application context. + + .. versionadded:: 0.6 + """ + if request is not None: + if (trusted_hosts := self.config["TRUSTED_HOSTS"]) is not None: + request.trusted_hosts = trusted_hosts + + # Check trusted_hosts here until bind_to_environ does. + request.host = get_host(request.environ, request.trusted_hosts) # pyright: ignore + subdomain = None + server_name = self.config["SERVER_NAME"] + + if self.url_map.host_matching: + # Don't pass SERVER_NAME, otherwise it's used and the actual + # host is ignored, which breaks host matching. + server_name = None + elif not self.subdomain_matching: + # Werkzeug doesn't implement subdomain matching yet. Until then, + # disable it by forcing the current subdomain to the default, or + # the empty string. + subdomain = self.url_map.default_subdomain or "" + + return self.url_map.bind_to_environ( + request.environ, server_name=server_name, subdomain=subdomain + ) + + # Need at least SERVER_NAME to match/build outside a request. + if self.config["SERVER_NAME"] is not None: + return self.url_map.bind( + self.config["SERVER_NAME"], + script_name=self.config["APPLICATION_ROOT"], + url_scheme=self.config["PREFERRED_URL_SCHEME"], + ) + + return None + + def raise_routing_exception(self, request: Request) -> t.NoReturn: + """Intercept routing exceptions and possibly do something else. + + In debug mode, intercept a routing redirect and replace it with + an error if the body will be discarded. + + With modern Werkzeug this shouldn't occur, since it now uses a + 308 status which tells the browser to resend the method and + body. + + .. versionchanged:: 2.1 + Don't intercept 307 and 308 redirects. + + :meta private: + :internal: + """ + if ( + not self.debug + or not isinstance(request.routing_exception, RequestRedirect) + or request.routing_exception.code in {307, 308} + or request.method in {"GET", "HEAD", "OPTIONS"} + ): + raise request.routing_exception # type: ignore[misc] + + from .debughelpers import FormDataRoutingRedirect + + raise FormDataRoutingRedirect(request) + + def update_template_context(self, context: dict[str, t.Any]) -> None: + """Update the template context with some commonly used variables. + This injects request, session, config and g into the template + context as well as everything template context processors want + to inject. Note that the as of Flask 0.6, the original values + in the context will not be overridden if a context processor + decides to return a value with the same key. + + :param context: the context as a dictionary that is updated in place + to add extra variables. + """ + names: t.Iterable[str | None] = (None,) + + # A template may be rendered outside a request context. + if request: + names = chain(names, reversed(request.blueprints)) + + # The values passed to render_template take precedence. Keep a + # copy to re-apply after all context functions. + orig_ctx = context.copy() + + for name in names: + if name in self.template_context_processors: + for func in self.template_context_processors[name]: + context.update(self.ensure_sync(func)()) + + context.update(orig_ctx) + + def make_shell_context(self) -> dict[str, t.Any]: + """Returns the shell context for an interactive shell for this + application. This runs all the registered shell context + processors. + + .. versionadded:: 0.11 + """ + rv = {"app": self, "g": g} + for processor in self.shell_context_processors: + rv.update(processor()) + return rv + + def run( + self, + host: str | None = None, + port: int | None = None, + debug: bool | None = None, + load_dotenv: bool = True, + **options: t.Any, + ) -> None: + """Runs the application on a local development server. + + Do not use ``run()`` in a production setting. It is not intended to + meet security and performance requirements for a production server. + Instead, see :doc:`/deploying/index` for WSGI server recommendations. + + If the :attr:`debug` flag is set the server will automatically reload + for code changes and show a debugger in case an exception happened. + + If you want to run the application in debug mode, but disable the + code execution on the interactive debugger, you can pass + ``use_evalex=False`` as parameter. This will keep the debugger's + traceback screen active, but disable code execution. + + It is not recommended to use this function for development with + automatic reloading as this is badly supported. Instead you should + be using the :command:`flask` command line script's ``run`` support. + + .. admonition:: Keep in Mind + + Flask will suppress any server error with a generic error page + unless it is in debug mode. As such to enable just the + interactive debugger without the code reloading, you have to + invoke :meth:`run` with ``debug=True`` and ``use_reloader=False``. + Setting ``use_debugger`` to ``True`` without being in debug mode + won't catch any exceptions because there won't be any to + catch. + + :param host: the hostname to listen on. Set this to ``'0.0.0.0'`` to + have the server available externally as well. Defaults to + ``'127.0.0.1'`` or the host in the ``SERVER_NAME`` config variable + if present. + :param port: the port of the webserver. Defaults to ``5000`` or the + port defined in the ``SERVER_NAME`` config variable if present. + :param debug: if given, enable or disable debug mode. See + :attr:`debug`. + :param load_dotenv: Load the nearest :file:`.env` and :file:`.flaskenv` + files to set environment variables. Will also change the working + directory to the directory containing the first file found. + :param options: the options to be forwarded to the underlying Werkzeug + server. See :func:`werkzeug.serving.run_simple` for more + information. + + .. versionchanged:: 1.0 + If installed, python-dotenv will be used to load environment + variables from :file:`.env` and :file:`.flaskenv` files. + + The :envvar:`FLASK_DEBUG` environment variable will override :attr:`debug`. + + Threaded mode is enabled by default. + + .. versionchanged:: 0.10 + The default port is now picked from the ``SERVER_NAME`` + variable. + """ + # Ignore this call so that it doesn't start another server if + # the 'flask run' command is used. + if os.environ.get("FLASK_RUN_FROM_CLI") == "true": + if not is_running_from_reloader(): + click.secho( + " * Ignoring a call to 'app.run()' that would block" + " the current 'flask' CLI command.\n" + " Only call 'app.run()' in an 'if __name__ ==" + ' "__main__"\' guard.', + fg="red", + ) + + return + + if get_load_dotenv(load_dotenv): + cli.load_dotenv() + + # if set, env var overrides existing value + if "FLASK_DEBUG" in os.environ: + self.debug = get_debug_flag() + + # debug passed to method overrides all other sources + if debug is not None: + self.debug = bool(debug) + + server_name = self.config.get("SERVER_NAME") + sn_host = sn_port = None + + if server_name: + sn_host, _, sn_port = server_name.partition(":") + + if not host: + if sn_host: + host = sn_host + else: + host = "127.0.0.1" + + if port or port == 0: + port = int(port) + elif sn_port: + port = int(sn_port) + else: + port = 5000 + + options.setdefault("use_reloader", self.debug) + options.setdefault("use_debugger", self.debug) + options.setdefault("threaded", True) + + cli.show_server_banner(self.debug, self.name) + + from werkzeug.serving import run_simple + + try: + run_simple(t.cast(str, host), port, self, **options) + finally: + # reset the first request information if the development server + # reset normally. This makes it possible to restart the server + # without reloader and that stuff from an interactive shell. + self._got_first_request = False + + def test_client(self, use_cookies: bool = True, **kwargs: t.Any) -> FlaskClient: + """Creates a test client for this application. For information + about unit testing head over to :doc:`/testing`. + + Note that if you are testing for assertions or exceptions in your + application code, you must set ``app.testing = True`` in order for the + exceptions to propagate to the test client. Otherwise, the exception + will be handled by the application (not visible to the test client) and + the only indication of an AssertionError or other exception will be a + 500 status code response to the test client. See the :attr:`testing` + attribute. For example:: + + app.testing = True + client = app.test_client() + + The test client can be used in a ``with`` block to defer the closing down + of the context until the end of the ``with`` block. This is useful if + you want to access the context locals for testing:: + + with app.test_client() as c: + rv = c.get('/?vodka=42') + assert request.args['vodka'] == '42' + + Additionally, you may pass optional keyword arguments that will then + be passed to the application's :attr:`test_client_class` constructor. + For example:: + + from flask.testing import FlaskClient + + class CustomClient(FlaskClient): + def __init__(self, *args, **kwargs): + self._authentication = kwargs.pop("authentication") + super(CustomClient,self).__init__( *args, **kwargs) + + app.test_client_class = CustomClient + client = app.test_client(authentication='Basic ....') + + See :class:`~flask.testing.FlaskClient` for more information. + + .. versionchanged:: 0.4 + added support for ``with`` block usage for the client. + + .. versionadded:: 0.7 + The `use_cookies` parameter was added as well as the ability + to override the client to be used by setting the + :attr:`test_client_class` attribute. + + .. versionchanged:: 0.11 + Added `**kwargs` to support passing additional keyword arguments to + the constructor of :attr:`test_client_class`. + """ + cls = self.test_client_class + if cls is None: + from .testing import FlaskClient as cls + return cls( # type: ignore + self, self.response_class, use_cookies=use_cookies, **kwargs + ) + + def test_cli_runner(self, **kwargs: t.Any) -> FlaskCliRunner: + """Create a CLI runner for testing CLI commands. + See :ref:`testing-cli`. + + Returns an instance of :attr:`test_cli_runner_class`, by default + :class:`~flask.testing.FlaskCliRunner`. The Flask app object is + passed as the first argument. + + .. versionadded:: 1.0 + """ + cls = self.test_cli_runner_class + + if cls is None: + from .testing import FlaskCliRunner as cls + + return cls(self, **kwargs) # type: ignore + + def handle_http_exception( + self, e: HTTPException + ) -> HTTPException | ft.ResponseReturnValue: + """Handles an HTTP exception. By default this will invoke the + registered error handlers and fall back to returning the + exception as response. + + .. versionchanged:: 1.0.3 + ``RoutingException``, used internally for actions such as + slash redirects during routing, is not passed to error + handlers. + + .. versionchanged:: 1.0 + Exceptions are looked up by code *and* by MRO, so + ``HTTPException`` subclasses can be handled with a catch-all + handler for the base ``HTTPException``. + + .. versionadded:: 0.3 + """ + # Proxy exceptions don't have error codes. We want to always return + # those unchanged as errors + if e.code is None: + return e + + # RoutingExceptions are used internally to trigger routing + # actions, such as slash redirects raising RequestRedirect. They + # are not raised or handled in user code. + if isinstance(e, RoutingException): + return e + + handler = self._find_error_handler(e, request.blueprints) + if handler is None: + return e + return self.ensure_sync(handler)(e) # type: ignore[no-any-return] + + def handle_user_exception( + self, e: Exception + ) -> HTTPException | ft.ResponseReturnValue: + """This method is called whenever an exception occurs that + should be handled. A special case is :class:`~werkzeug + .exceptions.HTTPException` which is forwarded to the + :meth:`handle_http_exception` method. This function will either + return a response value or reraise the exception with the same + traceback. + + .. versionchanged:: 1.0 + Key errors raised from request data like ``form`` show the + bad key in debug mode rather than a generic bad request + message. + + .. versionadded:: 0.7 + """ + if isinstance(e, BadRequestKeyError) and ( + self.debug or self.config["TRAP_BAD_REQUEST_ERRORS"] + ): + e.show_exception = True + + if isinstance(e, HTTPException) and not self.trap_http_exception(e): + return self.handle_http_exception(e) + + handler = self._find_error_handler(e, request.blueprints) + + if handler is None: + raise + + return self.ensure_sync(handler)(e) # type: ignore[no-any-return] + + def handle_exception(self, e: Exception) -> Response: + """Handle an exception that did not have an error handler + associated with it, or that was raised from an error handler. + This always causes a 500 ``InternalServerError``. + + Always sends the :data:`got_request_exception` signal. + + If :data:`PROPAGATE_EXCEPTIONS` is ``True``, such as in debug + mode, the error will be re-raised so that the debugger can + display it. Otherwise, the original exception is logged, and + an :exc:`~werkzeug.exceptions.InternalServerError` is returned. + + If an error handler is registered for ``InternalServerError`` or + ``500``, it will be used. For consistency, the handler will + always receive the ``InternalServerError``. The original + unhandled exception is available as ``e.original_exception``. + + .. versionchanged:: 1.1.0 + Always passes the ``InternalServerError`` instance to the + handler, setting ``original_exception`` to the unhandled + error. + + .. versionchanged:: 1.1.0 + ``after_request`` functions and other finalization is done + even for the default 500 response when there is no handler. + + .. versionadded:: 0.3 + """ + exc_info = sys.exc_info() + got_request_exception.send(self, _async_wrapper=self.ensure_sync, exception=e) + propagate = self.config["PROPAGATE_EXCEPTIONS"] + + if propagate is None: + propagate = self.testing or self.debug + + if propagate: + # Re-raise if called with an active exception, otherwise + # raise the passed in exception. + if exc_info[1] is e: + raise + + raise e + + self.log_exception(exc_info) + server_error: InternalServerError | ft.ResponseReturnValue + server_error = InternalServerError(original_exception=e) + handler = self._find_error_handler(server_error, request.blueprints) + + if handler is not None: + server_error = self.ensure_sync(handler)(server_error) + + return self.finalize_request(server_error, from_error_handler=True) + + def log_exception( + self, + exc_info: (tuple[type, BaseException, TracebackType] | tuple[None, None, None]), + ) -> None: + """Logs an exception. This is called by :meth:`handle_exception` + if debugging is disabled and right before the handler is called. + The default implementation logs the exception as error on the + :attr:`logger`. + + .. versionadded:: 0.8 + """ + self.logger.error( + f"Exception on {request.path} [{request.method}]", exc_info=exc_info + ) + + def dispatch_request(self) -> ft.ResponseReturnValue: + """Does the request dispatching. Matches the URL and returns the + return value of the view or error handler. This does not have to + be a response object. In order to convert the return value to a + proper response object, call :func:`make_response`. + + .. versionchanged:: 0.7 + This no longer does the exception handling, this code was + moved to the new :meth:`full_dispatch_request`. + """ + req = request_ctx.request + if req.routing_exception is not None: + self.raise_routing_exception(req) + rule: Rule = req.url_rule # type: ignore[assignment] + # if we provide automatic options for this URL and the + # request came with the OPTIONS method, reply automatically + if ( + getattr(rule, "provide_automatic_options", False) + and req.method == "OPTIONS" + ): + return self.make_default_options_response() + # otherwise dispatch to the handler for that endpoint + view_args: dict[str, t.Any] = req.view_args # type: ignore[assignment] + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] + + def full_dispatch_request(self) -> Response: + """Dispatches the request and on top of that performs request + pre and postprocessing as well as HTTP exception catching and + error handling. + + .. versionadded:: 0.7 + """ + self._got_first_request = True + + try: + request_started.send(self, _async_wrapper=self.ensure_sync) + rv = self.preprocess_request() + if rv is None: + rv = self.dispatch_request() + except Exception as e: + rv = self.handle_user_exception(e) + return self.finalize_request(rv) + + def finalize_request( + self, + rv: ft.ResponseReturnValue | HTTPException, + from_error_handler: bool = False, + ) -> Response: + """Given the return value from a view function this finalizes + the request by converting it into a response and invoking the + postprocessing functions. This is invoked for both normal + request dispatching as well as error handlers. + + Because this means that it might be called as a result of a + failure a special safe mode is available which can be enabled + with the `from_error_handler` flag. If enabled, failures in + response processing will be logged and otherwise ignored. + + :internal: + """ + response = self.make_response(rv) + try: + response = self.process_response(response) + request_finished.send( + self, _async_wrapper=self.ensure_sync, response=response + ) + except Exception: + if not from_error_handler: + raise + self.logger.exception( + "Request finalizing failed with an error while handling an error" + ) + return response + + def make_default_options_response(self) -> Response: + """This method is called to create the default ``OPTIONS`` response. + This can be changed through subclassing to change the default + behavior of ``OPTIONS`` responses. + + .. versionadded:: 0.7 + """ + adapter = request_ctx.url_adapter + methods = adapter.allowed_methods() # type: ignore[union-attr] + rv = self.response_class() + rv.allow.update(methods) + return rv + + def ensure_sync(self, func: t.Callable[..., t.Any]) -> t.Callable[..., t.Any]: + """Ensure that the function is synchronous for WSGI workers. + Plain ``def`` functions are returned as-is. ``async def`` + functions are wrapped to run and wait for the response. + + Override this method to change how the app runs async views. + + .. versionadded:: 2.0 + """ + if iscoroutinefunction(func): + return self.async_to_sync(func) + + return func + + def async_to_sync( + self, func: t.Callable[..., t.Coroutine[t.Any, t.Any, t.Any]] + ) -> t.Callable[..., t.Any]: + """Return a sync function that will run the coroutine function. + + .. code-block:: python + + result = app.async_to_sync(func)(*args, **kwargs) + + Override this method to change how the app converts async code + to be synchronously callable. + + .. versionadded:: 2.0 + """ + try: + from asgiref.sync import async_to_sync as asgiref_async_to_sync + except ImportError: + raise RuntimeError( + "Install Flask with the 'async' extra in order to use async views." + ) from None + + return asgiref_async_to_sync(func) + + def url_for( + self, + /, + endpoint: str, + *, + _anchor: str | None = None, + _method: str | None = None, + _scheme: str | None = None, + _external: bool | None = None, + **values: t.Any, + ) -> str: + """Generate a URL to the given endpoint with the given values. + + This is called by :func:`flask.url_for`, and can be called + directly as well. + + An *endpoint* is the name of a URL rule, usually added with + :meth:`@app.route() `, and usually the same name as the + view function. A route defined in a :class:`~flask.Blueprint` + will prepend the blueprint's name separated by a ``.`` to the + endpoint. + + In some cases, such as email messages, you want URLs to include + the scheme and domain, like ``https://example.com/hello``. When + not in an active request, URLs will be external by default, but + this requires setting :data:`SERVER_NAME` so Flask knows what + domain to use. :data:`APPLICATION_ROOT` and + :data:`PREFERRED_URL_SCHEME` should also be configured as + needed. This config is only used when not in an active request. + + Functions can be decorated with :meth:`url_defaults` to modify + keyword arguments before the URL is built. + + If building fails for some reason, such as an unknown endpoint + or incorrect values, the app's :meth:`handle_url_build_error` + method is called. If that returns a string, that is returned, + otherwise a :exc:`~werkzeug.routing.BuildError` is raised. + + :param endpoint: The endpoint name associated with the URL to + generate. If this starts with a ``.``, the current blueprint + name (if any) will be used. + :param _anchor: If given, append this as ``#anchor`` to the URL. + :param _method: If given, generate the URL associated with this + method for the endpoint. + :param _scheme: If given, the URL will have this scheme if it + is external. + :param _external: If given, prefer the URL to be internal + (False) or require it to be external (True). External URLs + include the scheme and domain. When not in an active + request, URLs are external by default. + :param values: Values to use for the variable parts of the URL + rule. Unknown keys are appended as query string arguments, + like ``?a=b&c=d``. + + .. versionadded:: 2.2 + Moved from ``flask.url_for``, which calls this method. + """ + req_ctx = _cv_request.get(None) + + if req_ctx is not None: + url_adapter = req_ctx.url_adapter + blueprint_name = req_ctx.request.blueprint + + # If the endpoint starts with "." and the request matches a + # blueprint, the endpoint is relative to the blueprint. + if endpoint[:1] == ".": + if blueprint_name is not None: + endpoint = f"{blueprint_name}{endpoint}" + else: + endpoint = endpoint[1:] + + # When in a request, generate a URL without scheme and + # domain by default, unless a scheme is given. + if _external is None: + _external = _scheme is not None + else: + app_ctx = _cv_app.get(None) + + # If called by helpers.url_for, an app context is active, + # use its url_adapter. Otherwise, app.url_for was called + # directly, build an adapter. + if app_ctx is not None: + url_adapter = app_ctx.url_adapter + else: + url_adapter = self.create_url_adapter(None) + + if url_adapter is None: + raise RuntimeError( + "Unable to build URLs outside an active request" + " without 'SERVER_NAME' configured. Also configure" + " 'APPLICATION_ROOT' and 'PREFERRED_URL_SCHEME' as" + " needed." + ) + + # When outside a request, generate a URL with scheme and + # domain by default. + if _external is None: + _external = True + + # It is an error to set _scheme when _external=False, in order + # to avoid accidental insecure URLs. + if _scheme is not None and not _external: + raise ValueError("When specifying '_scheme', '_external' must be True.") + + self.inject_url_defaults(endpoint, values) + + try: + rv = url_adapter.build( # type: ignore[union-attr] + endpoint, + values, + method=_method, + url_scheme=_scheme, + force_external=_external, + ) + except BuildError as error: + values.update( + _anchor=_anchor, _method=_method, _scheme=_scheme, _external=_external + ) + return self.handle_url_build_error(error, endpoint, values) + + if _anchor is not None: + _anchor = _url_quote(_anchor, safe="%!#$&'()*+,/:;=?@") + rv = f"{rv}#{_anchor}" + + return rv + + def make_response(self, rv: ft.ResponseReturnValue) -> Response: + """Convert the return value from a view function to an instance of + :attr:`response_class`. + + :param rv: the return value from the view function. The view function + must return a response. Returning ``None``, or the view ending + without returning, is not allowed. The following types are allowed + for ``view_rv``: + + ``str`` + A response object is created with the string encoded to UTF-8 + as the body. + + ``bytes`` + A response object is created with the bytes as the body. + + ``dict`` + A dictionary that will be jsonify'd before being returned. + + ``list`` + A list that will be jsonify'd before being returned. + + ``generator`` or ``iterator`` + A generator that returns ``str`` or ``bytes`` to be + streamed as the response. + + ``tuple`` + Either ``(body, status, headers)``, ``(body, status)``, or + ``(body, headers)``, where ``body`` is any of the other types + allowed here, ``status`` is a string or an integer, and + ``headers`` is a dictionary or a list of ``(key, value)`` + tuples. If ``body`` is a :attr:`response_class` instance, + ``status`` overwrites the exiting value and ``headers`` are + extended. + + :attr:`response_class` + The object is returned unchanged. + + other :class:`~werkzeug.wrappers.Response` class + The object is coerced to :attr:`response_class`. + + :func:`callable` + The function is called as a WSGI application. The result is + used to create a response object. + + .. versionchanged:: 2.2 + A generator will be converted to a streaming response. + A list will be converted to a JSON response. + + .. versionchanged:: 1.1 + A dict will be converted to a JSON response. + + .. versionchanged:: 0.9 + Previously a tuple was interpreted as the arguments for the + response object. + """ + + status: int | None = None + headers: HeadersValue | None = None + + # unpack tuple returns + if isinstance(rv, tuple): + len_rv = len(rv) + + # a 3-tuple is unpacked directly + if len_rv == 3: + rv, status, headers = rv # type: ignore[misc] + # decide if a 2-tuple has status or headers + elif len_rv == 2: + if isinstance(rv[1], (Headers, dict, tuple, list)): + rv, headers = rv # pyright: ignore + else: + rv, status = rv # type: ignore[assignment,misc] + # other sized tuples are not allowed + else: + raise TypeError( + "The view function did not return a valid response tuple." + " The tuple must have the form (body, status, headers)," + " (body, status), or (body, headers)." + ) + + # the body must not be None + if rv is None: + raise TypeError( + f"The view function for {request.endpoint!r} did not" + " return a valid response. The function either returned" + " None or ended without a return statement." + ) + + # make sure the body is an instance of the response class + if not isinstance(rv, self.response_class): + if isinstance(rv, (str, bytes, bytearray)) or isinstance(rv, cabc.Iterator): + # let the response class set the status and headers instead of + # waiting to do it manually, so that the class can handle any + # special logic + rv = self.response_class( + rv, # pyright: ignore + status=status, + headers=headers, # type: ignore[arg-type] + ) + status = headers = None + elif isinstance(rv, (dict, list)): + rv = self.json.response(rv) + elif isinstance(rv, BaseResponse) or callable(rv): + # evaluate a WSGI callable, or coerce a different response + # class to the correct type + try: + rv = self.response_class.force_type( + rv, # type: ignore[arg-type] + request.environ, + ) + except TypeError as e: + raise TypeError( + f"{e}\nThe view function did not return a valid" + " response. The return type must be a string," + " dict, list, tuple with headers or status," + " Response instance, or WSGI callable, but it" + f" was a {type(rv).__name__}." + ).with_traceback(sys.exc_info()[2]) from None + else: + raise TypeError( + "The view function did not return a valid" + " response. The return type must be a string," + " dict, list, tuple with headers or status," + " Response instance, or WSGI callable, but it was a" + f" {type(rv).__name__}." + ) + + rv = t.cast(Response, rv) + # prefer the status if it was provided + if status is not None: + if isinstance(status, (str, bytes, bytearray)): + rv.status = status + else: + rv.status_code = status + + # extend existing headers with provided headers + if headers: + rv.headers.update(headers) + + return rv + + def preprocess_request(self) -> ft.ResponseReturnValue | None: + """Called before the request is dispatched. Calls + :attr:`url_value_preprocessors` registered with the app and the + current blueprint (if any). Then calls :attr:`before_request_funcs` + registered with the app and the blueprint. + + If any :meth:`before_request` handler returns a non-None value, the + value is handled as if it was the return value from the view, and + further request handling is stopped. + """ + names = (None, *reversed(request.blueprints)) + + for name in names: + if name in self.url_value_preprocessors: + for url_func in self.url_value_preprocessors[name]: + url_func(request.endpoint, request.view_args) + + for name in names: + if name in self.before_request_funcs: + for before_func in self.before_request_funcs[name]: + rv = self.ensure_sync(before_func)() + + if rv is not None: + return rv # type: ignore[no-any-return] + + return None + + def process_response(self, response: Response) -> Response: + """Can be overridden in order to modify the response object + before it's sent to the WSGI server. By default this will + call all the :meth:`after_request` decorated functions. + + .. versionchanged:: 0.5 + As of Flask 0.5 the functions registered for after request + execution are called in reverse order of registration. + + :param response: a :attr:`response_class` object. + :return: a new response object or the same, has to be an + instance of :attr:`response_class`. + """ + ctx = request_ctx._get_current_object() # type: ignore[attr-defined] + + for func in ctx._after_request_functions: + response = self.ensure_sync(func)(response) + + for name in chain(request.blueprints, (None,)): + if name in self.after_request_funcs: + for func in reversed(self.after_request_funcs[name]): + response = self.ensure_sync(func)(response) + + if not self.session_interface.is_null_session(ctx.session): + self.session_interface.save_session(self, ctx.session, response) + + return response + + def do_teardown_request( + self, + exc: BaseException | None = _sentinel, # type: ignore[assignment] + ) -> None: + """Called after the request is dispatched and the response is + returned, right before the request context is popped. + + This calls all functions decorated with + :meth:`teardown_request`, and :meth:`Blueprint.teardown_request` + if a blueprint handled the request. Finally, the + :data:`request_tearing_down` signal is sent. + + This is called by + :meth:`RequestContext.pop() `, + which may be delayed during testing to maintain access to + resources. + + :param exc: An unhandled exception raised while dispatching the + request. Detected from the current exception information if + not passed. Passed to each teardown function. + + .. versionchanged:: 0.9 + Added the ``exc`` argument. + """ + if exc is _sentinel: + exc = sys.exc_info()[1] + + for name in chain(request.blueprints, (None,)): + if name in self.teardown_request_funcs: + for func in reversed(self.teardown_request_funcs[name]): + self.ensure_sync(func)(exc) + + request_tearing_down.send(self, _async_wrapper=self.ensure_sync, exc=exc) + + def do_teardown_appcontext( + self, + exc: BaseException | None = _sentinel, # type: ignore[assignment] + ) -> None: + """Called right before the application context is popped. + + When handling a request, the application context is popped + after the request context. See :meth:`do_teardown_request`. + + This calls all functions decorated with + :meth:`teardown_appcontext`. Then the + :data:`appcontext_tearing_down` signal is sent. + + This is called by + :meth:`AppContext.pop() `. + + .. versionadded:: 0.9 + """ + if exc is _sentinel: + exc = sys.exc_info()[1] + + for func in reversed(self.teardown_appcontext_funcs): + self.ensure_sync(func)(exc) + + appcontext_tearing_down.send(self, _async_wrapper=self.ensure_sync, exc=exc) + + def app_context(self) -> AppContext: + """Create an :class:`~flask.ctx.AppContext`. Use as a ``with`` + block to push the context, which will make :data:`current_app` + point at this application. + + An application context is automatically pushed by + :meth:`RequestContext.push() ` + when handling a request, and when running a CLI command. Use + this to manually create a context outside of these situations. + + :: + + with app.app_context(): + init_db() + + See :doc:`/appcontext`. + + .. versionadded:: 0.9 + """ + return AppContext(self) + + def request_context(self, environ: WSGIEnvironment) -> RequestContext: + """Create a :class:`~flask.ctx.RequestContext` representing a + WSGI environment. Use a ``with`` block to push the context, + which will make :data:`request` point at this request. + + See :doc:`/reqcontext`. + + Typically you should not call this from your own code. A request + context is automatically pushed by the :meth:`wsgi_app` when + handling a request. Use :meth:`test_request_context` to create + an environment and context instead of this method. + + :param environ: a WSGI environment + """ + return RequestContext(self, environ) + + def test_request_context(self, *args: t.Any, **kwargs: t.Any) -> RequestContext: + """Create a :class:`~flask.ctx.RequestContext` for a WSGI + environment created from the given values. This is mostly useful + during testing, where you may want to run a function that uses + request data without dispatching a full request. + + See :doc:`/reqcontext`. + + Use a ``with`` block to push the context, which will make + :data:`request` point at the request for the created + environment. :: + + with app.test_request_context(...): + generate_report() + + When using the shell, it may be easier to push and pop the + context manually to avoid indentation. :: + + ctx = app.test_request_context(...) + ctx.push() + ... + ctx.pop() + + Takes the same arguments as Werkzeug's + :class:`~werkzeug.test.EnvironBuilder`, with some defaults from + the application. See the linked Werkzeug docs for most of the + available arguments. Flask-specific behavior is listed here. + + :param path: URL path being requested. + :param base_url: Base URL where the app is being served, which + ``path`` is relative to. If not given, built from + :data:`PREFERRED_URL_SCHEME`, ``subdomain``, + :data:`SERVER_NAME`, and :data:`APPLICATION_ROOT`. + :param subdomain: Subdomain name to append to + :data:`SERVER_NAME`. + :param url_scheme: Scheme to use instead of + :data:`PREFERRED_URL_SCHEME`. + :param data: The request body, either as a string or a dict of + form keys and values. + :param json: If given, this is serialized as JSON and passed as + ``data``. Also defaults ``content_type`` to + ``application/json``. + :param args: other positional arguments passed to + :class:`~werkzeug.test.EnvironBuilder`. + :param kwargs: other keyword arguments passed to + :class:`~werkzeug.test.EnvironBuilder`. + """ + from .testing import EnvironBuilder + + builder = EnvironBuilder(self, *args, **kwargs) + + try: + return self.request_context(builder.get_environ()) + finally: + builder.close() + + def wsgi_app( + self, environ: WSGIEnvironment, start_response: StartResponse + ) -> cabc.Iterable[bytes]: + """The actual WSGI application. This is not implemented in + :meth:`__call__` so that middlewares can be applied without + losing a reference to the app object. Instead of doing this:: + + app = MyMiddleware(app) + + It's a better idea to do this instead:: + + app.wsgi_app = MyMiddleware(app.wsgi_app) + + Then you still have the original application object around and + can continue to call methods on it. + + .. versionchanged:: 0.7 + Teardown events for the request and app contexts are called + even if an unhandled error occurs. Other events may not be + called depending on when an error occurs during dispatch. + See :ref:`callbacks-and-errors`. + + :param environ: A WSGI environment. + :param start_response: A callable accepting a status code, + a list of headers, and an optional exception context to + start the response. + """ + ctx = self.request_context(environ) + error: BaseException | None = None + try: + try: + ctx.push() + response = self.full_dispatch_request() + except Exception as e: + error = e + response = self.handle_exception(e) + except: # noqa: B001 + error = sys.exc_info()[1] + raise + return response(environ, start_response) + finally: + if "werkzeug.debug.preserve_context" in environ: + environ["werkzeug.debug.preserve_context"](_cv_app.get()) + environ["werkzeug.debug.preserve_context"](_cv_request.get()) + + if error is not None and self.should_ignore_error(error): + error = None + + ctx.pop(error) + + def __call__( + self, environ: WSGIEnvironment, start_response: StartResponse + ) -> cabc.Iterable[bytes]: + """The WSGI server calls the Flask application object as the + WSGI application. This calls :meth:`wsgi_app`, which can be + wrapped to apply middleware. + """ + return self.wsgi_app(environ, start_response) diff --git a/venv/lib/python3.10/site-packages/flask/blueprints.py b/venv/lib/python3.10/site-packages/flask/blueprints.py new file mode 100644 index 0000000..b6d4e43 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/blueprints.py @@ -0,0 +1,128 @@ +from __future__ import annotations + +import os +import typing as t +from datetime import timedelta + +from .cli import AppGroup +from .globals import current_app +from .helpers import send_from_directory +from .sansio.blueprints import Blueprint as SansioBlueprint +from .sansio.blueprints import BlueprintSetupState as BlueprintSetupState # noqa +from .sansio.scaffold import _sentinel + +if t.TYPE_CHECKING: # pragma: no cover + from .wrappers import Response + + +class Blueprint(SansioBlueprint): + def __init__( + self, + name: str, + import_name: str, + static_folder: str | os.PathLike[str] | None = None, + static_url_path: str | None = None, + template_folder: str | os.PathLike[str] | None = None, + url_prefix: str | None = None, + subdomain: str | None = None, + url_defaults: dict[str, t.Any] | None = None, + root_path: str | None = None, + cli_group: str | None = _sentinel, # type: ignore + ) -> None: + super().__init__( + name, + import_name, + static_folder, + static_url_path, + template_folder, + url_prefix, + subdomain, + url_defaults, + root_path, + cli_group, + ) + + #: The Click command group for registering CLI commands for this + #: object. The commands are available from the ``flask`` command + #: once the application has been discovered and blueprints have + #: been registered. + self.cli = AppGroup() + + # Set the name of the Click group in case someone wants to add + # the app's commands to another CLI tool. + self.cli.name = self.name + + def get_send_file_max_age(self, filename: str | None) -> int | None: + """Used by :func:`send_file` to determine the ``max_age`` cache + value for a given file path if it wasn't passed. + + By default, this returns :data:`SEND_FILE_MAX_AGE_DEFAULT` from + the configuration of :data:`~flask.current_app`. This defaults + to ``None``, which tells the browser to use conditional requests + instead of a timed cache, which is usually preferable. + + Note this is a duplicate of the same method in the Flask + class. + + .. versionchanged:: 2.0 + The default configuration is ``None`` instead of 12 hours. + + .. versionadded:: 0.9 + """ + value = current_app.config["SEND_FILE_MAX_AGE_DEFAULT"] + + if value is None: + return None + + if isinstance(value, timedelta): + return int(value.total_seconds()) + + return value # type: ignore[no-any-return] + + def send_static_file(self, filename: str) -> Response: + """The view function used to serve files from + :attr:`static_folder`. A route is automatically registered for + this view at :attr:`static_url_path` if :attr:`static_folder` is + set. + + Note this is a duplicate of the same method in the Flask + class. + + .. versionadded:: 0.5 + + """ + if not self.has_static_folder: + raise RuntimeError("'static_folder' must be set to serve static_files.") + + # send_file only knows to call get_send_file_max_age on the app, + # call it here so it works for blueprints too. + max_age = self.get_send_file_max_age(filename) + return send_from_directory( + t.cast(str, self.static_folder), filename, max_age=max_age + ) + + def open_resource( + self, resource: str, mode: str = "rb", encoding: str | None = "utf-8" + ) -> t.IO[t.AnyStr]: + """Open a resource file relative to :attr:`root_path` for reading. The + blueprint-relative equivalent of the app's :meth:`~.Flask.open_resource` + method. + + :param resource: Path to the resource relative to :attr:`root_path`. + :param mode: Open the file in this mode. Only reading is supported, + valid values are ``"r"`` (or ``"rt"``) and ``"rb"``. + :param encoding: Open the file with this encoding when opening in text + mode. This is ignored when opening in binary mode. + + .. versionchanged:: 3.1 + Added the ``encoding`` parameter. + """ + if mode not in {"r", "rt", "rb"}: + raise ValueError("Resources can only be opened for reading.") + + path = os.path.join(self.root_path, resource) + + if mode == "rb": + return open(path, mode) # pyright: ignore + + return open(path, mode, encoding=encoding) diff --git a/venv/lib/python3.10/site-packages/flask/cli.py b/venv/lib/python3.10/site-packages/flask/cli.py new file mode 100644 index 0000000..ed11f25 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/cli.py @@ -0,0 +1,1135 @@ +from __future__ import annotations + +import ast +import collections.abc as cabc +import importlib.metadata +import inspect +import os +import platform +import re +import sys +import traceback +import typing as t +from functools import update_wrapper +from operator import itemgetter +from types import ModuleType + +import click +from click.core import ParameterSource +from werkzeug import run_simple +from werkzeug.serving import is_running_from_reloader +from werkzeug.utils import import_string + +from .globals import current_app +from .helpers import get_debug_flag +from .helpers import get_load_dotenv + +if t.TYPE_CHECKING: + import ssl + + from _typeshed.wsgi import StartResponse + from _typeshed.wsgi import WSGIApplication + from _typeshed.wsgi import WSGIEnvironment + + from .app import Flask + + +class NoAppException(click.UsageError): + """Raised if an application cannot be found or loaded.""" + + +def find_best_app(module: ModuleType) -> Flask: + """Given a module instance this tries to find the best possible + application in the module or raises an exception. + """ + from . import Flask + + # Search for the most common names first. + for attr_name in ("app", "application"): + app = getattr(module, attr_name, None) + + if isinstance(app, Flask): + return app + + # Otherwise find the only object that is a Flask instance. + matches = [v for v in module.__dict__.values() if isinstance(v, Flask)] + + if len(matches) == 1: + return matches[0] + elif len(matches) > 1: + raise NoAppException( + "Detected multiple Flask applications in module" + f" '{module.__name__}'. Use '{module.__name__}:name'" + " to specify the correct one." + ) + + # Search for app factory functions. + for attr_name in ("create_app", "make_app"): + app_factory = getattr(module, attr_name, None) + + if inspect.isfunction(app_factory): + try: + app = app_factory() + + if isinstance(app, Flask): + return app + except TypeError as e: + if not _called_with_wrong_args(app_factory): + raise + + raise NoAppException( + f"Detected factory '{attr_name}' in module '{module.__name__}'," + " but could not call it without arguments. Use" + f" '{module.__name__}:{attr_name}(args)'" + " to specify arguments." + ) from e + + raise NoAppException( + "Failed to find Flask application or factory in module" + f" '{module.__name__}'. Use '{module.__name__}:name'" + " to specify one." + ) + + +def _called_with_wrong_args(f: t.Callable[..., Flask]) -> bool: + """Check whether calling a function raised a ``TypeError`` because + the call failed or because something in the factory raised the + error. + + :param f: The function that was called. + :return: ``True`` if the call failed. + """ + tb = sys.exc_info()[2] + + try: + while tb is not None: + if tb.tb_frame.f_code is f.__code__: + # In the function, it was called successfully. + return False + + tb = tb.tb_next + + # Didn't reach the function. + return True + finally: + # Delete tb to break a circular reference. + # https://docs.python.org/2/library/sys.html#sys.exc_info + del tb + + +def find_app_by_string(module: ModuleType, app_name: str) -> Flask: + """Check if the given string is a variable name or a function. Call + a function to get the app instance, or return the variable directly. + """ + from . import Flask + + # Parse app_name as a single expression to determine if it's a valid + # attribute name or function call. + try: + expr = ast.parse(app_name.strip(), mode="eval").body + except SyntaxError: + raise NoAppException( + f"Failed to parse {app_name!r} as an attribute name or function call." + ) from None + + if isinstance(expr, ast.Name): + name = expr.id + args = [] + kwargs = {} + elif isinstance(expr, ast.Call): + # Ensure the function name is an attribute name only. + if not isinstance(expr.func, ast.Name): + raise NoAppException( + f"Function reference must be a simple name: {app_name!r}." + ) + + name = expr.func.id + + # Parse the positional and keyword arguments as literals. + try: + args = [ast.literal_eval(arg) for arg in expr.args] + kwargs = { + kw.arg: ast.literal_eval(kw.value) + for kw in expr.keywords + if kw.arg is not None + } + except ValueError: + # literal_eval gives cryptic error messages, show a generic + # message with the full expression instead. + raise NoAppException( + f"Failed to parse arguments as literal values: {app_name!r}." + ) from None + else: + raise NoAppException( + f"Failed to parse {app_name!r} as an attribute name or function call." + ) + + try: + attr = getattr(module, name) + except AttributeError as e: + raise NoAppException( + f"Failed to find attribute {name!r} in {module.__name__!r}." + ) from e + + # If the attribute is a function, call it with any args and kwargs + # to get the real application. + if inspect.isfunction(attr): + try: + app = attr(*args, **kwargs) + except TypeError as e: + if not _called_with_wrong_args(attr): + raise + + raise NoAppException( + f"The factory {app_name!r} in module" + f" {module.__name__!r} could not be called with the" + " specified arguments." + ) from e + else: + app = attr + + if isinstance(app, Flask): + return app + + raise NoAppException( + "A valid Flask application was not obtained from" + f" '{module.__name__}:{app_name}'." + ) + + +def prepare_import(path: str) -> str: + """Given a filename this will try to calculate the python path, add it + to the search path and return the actual module name that is expected. + """ + path = os.path.realpath(path) + + fname, ext = os.path.splitext(path) + if ext == ".py": + path = fname + + if os.path.basename(path) == "__init__": + path = os.path.dirname(path) + + module_name = [] + + # move up until outside package structure (no __init__.py) + while True: + path, name = os.path.split(path) + module_name.append(name) + + if not os.path.exists(os.path.join(path, "__init__.py")): + break + + if sys.path[0] != path: + sys.path.insert(0, path) + + return ".".join(module_name[::-1]) + + +@t.overload +def locate_app( + module_name: str, app_name: str | None, raise_if_not_found: t.Literal[True] = True +) -> Flask: ... + + +@t.overload +def locate_app( + module_name: str, app_name: str | None, raise_if_not_found: t.Literal[False] = ... +) -> Flask | None: ... + + +def locate_app( + module_name: str, app_name: str | None, raise_if_not_found: bool = True +) -> Flask | None: + try: + __import__(module_name) + except ImportError: + # Reraise the ImportError if it occurred within the imported module. + # Determine this by checking whether the trace has a depth > 1. + if sys.exc_info()[2].tb_next: # type: ignore[union-attr] + raise NoAppException( + f"While importing {module_name!r}, an ImportError was" + f" raised:\n\n{traceback.format_exc()}" + ) from None + elif raise_if_not_found: + raise NoAppException(f"Could not import {module_name!r}.") from None + else: + return None + + module = sys.modules[module_name] + + if app_name is None: + return find_best_app(module) + else: + return find_app_by_string(module, app_name) + + +def get_version(ctx: click.Context, param: click.Parameter, value: t.Any) -> None: + if not value or ctx.resilient_parsing: + return + + flask_version = importlib.metadata.version("flask") + werkzeug_version = importlib.metadata.version("werkzeug") + + click.echo( + f"Python {platform.python_version()}\n" + f"Flask {flask_version}\n" + f"Werkzeug {werkzeug_version}", + color=ctx.color, + ) + ctx.exit() + + +version_option = click.Option( + ["--version"], + help="Show the Flask version.", + expose_value=False, + callback=get_version, + is_flag=True, + is_eager=True, +) + + +class ScriptInfo: + """Helper object to deal with Flask applications. This is usually not + necessary to interface with as it's used internally in the dispatching + to click. In future versions of Flask this object will most likely play + a bigger role. Typically it's created automatically by the + :class:`FlaskGroup` but you can also manually create it and pass it + onwards as click object. + + .. versionchanged:: 3.1 + Added the ``load_dotenv_defaults`` parameter and attribute. + """ + + def __init__( + self, + app_import_path: str | None = None, + create_app: t.Callable[..., Flask] | None = None, + set_debug_flag: bool = True, + load_dotenv_defaults: bool = True, + ) -> None: + #: Optionally the import path for the Flask application. + self.app_import_path = app_import_path + #: Optionally a function that is passed the script info to create + #: the instance of the application. + self.create_app = create_app + #: A dictionary with arbitrary data that can be associated with + #: this script info. + self.data: dict[t.Any, t.Any] = {} + self.set_debug_flag = set_debug_flag + + self.load_dotenv_defaults = get_load_dotenv(load_dotenv_defaults) + """Whether default ``.flaskenv`` and ``.env`` files should be loaded. + + ``ScriptInfo`` doesn't load anything, this is for reference when doing + the load elsewhere during processing. + + .. versionadded:: 3.1 + """ + + self._loaded_app: Flask | None = None + + def load_app(self) -> Flask: + """Loads the Flask app (if not yet loaded) and returns it. Calling + this multiple times will just result in the already loaded app to + be returned. + """ + if self._loaded_app is not None: + return self._loaded_app + app: Flask | None = None + if self.create_app is not None: + app = self.create_app() + else: + if self.app_import_path: + path, name = ( + re.split(r":(?![\\/])", self.app_import_path, maxsplit=1) + [None] + )[:2] + import_name = prepare_import(path) + app = locate_app(import_name, name) + else: + for path in ("wsgi.py", "app.py"): + import_name = prepare_import(path) + app = locate_app(import_name, None, raise_if_not_found=False) + + if app is not None: + break + + if app is None: + raise NoAppException( + "Could not locate a Flask application. Use the" + " 'flask --app' option, 'FLASK_APP' environment" + " variable, or a 'wsgi.py' or 'app.py' file in the" + " current directory." + ) + + if self.set_debug_flag: + # Update the app's debug flag through the descriptor so that + # other values repopulate as well. + app.debug = get_debug_flag() + + self._loaded_app = app + return app + + +pass_script_info = click.make_pass_decorator(ScriptInfo, ensure=True) + +F = t.TypeVar("F", bound=t.Callable[..., t.Any]) + + +def with_appcontext(f: F) -> F: + """Wraps a callback so that it's guaranteed to be executed with the + script's application context. + + Custom commands (and their options) registered under ``app.cli`` or + ``blueprint.cli`` will always have an app context available, this + decorator is not required in that case. + + .. versionchanged:: 2.2 + The app context is active for subcommands as well as the + decorated callback. The app context is always available to + ``app.cli`` command and parameter callbacks. + """ + + @click.pass_context + def decorator(ctx: click.Context, /, *args: t.Any, **kwargs: t.Any) -> t.Any: + if not current_app: + app = ctx.ensure_object(ScriptInfo).load_app() + ctx.with_resource(app.app_context()) + + return ctx.invoke(f, *args, **kwargs) + + return update_wrapper(decorator, f) # type: ignore[return-value] + + +class AppGroup(click.Group): + """This works similar to a regular click :class:`~click.Group` but it + changes the behavior of the :meth:`command` decorator so that it + automatically wraps the functions in :func:`with_appcontext`. + + Not to be confused with :class:`FlaskGroup`. + """ + + def command( # type: ignore[override] + self, *args: t.Any, **kwargs: t.Any + ) -> t.Callable[[t.Callable[..., t.Any]], click.Command]: + """This works exactly like the method of the same name on a regular + :class:`click.Group` but it wraps callbacks in :func:`with_appcontext` + unless it's disabled by passing ``with_appcontext=False``. + """ + wrap_for_ctx = kwargs.pop("with_appcontext", True) + + def decorator(f: t.Callable[..., t.Any]) -> click.Command: + if wrap_for_ctx: + f = with_appcontext(f) + return super(AppGroup, self).command(*args, **kwargs)(f) # type: ignore[no-any-return] + + return decorator + + def group( # type: ignore[override] + self, *args: t.Any, **kwargs: t.Any + ) -> t.Callable[[t.Callable[..., t.Any]], click.Group]: + """This works exactly like the method of the same name on a regular + :class:`click.Group` but it defaults the group class to + :class:`AppGroup`. + """ + kwargs.setdefault("cls", AppGroup) + return super().group(*args, **kwargs) # type: ignore[no-any-return] + + +def _set_app(ctx: click.Context, param: click.Option, value: str | None) -> str | None: + if value is None: + return None + + info = ctx.ensure_object(ScriptInfo) + info.app_import_path = value + return value + + +# This option is eager so the app will be available if --help is given. +# --help is also eager, so --app must be before it in the param list. +# no_args_is_help bypasses eager processing, so this option must be +# processed manually in that case to ensure FLASK_APP gets picked up. +_app_option = click.Option( + ["-A", "--app"], + metavar="IMPORT", + help=( + "The Flask application or factory function to load, in the form 'module:name'." + " Module can be a dotted import or file path. Name is not required if it is" + " 'app', 'application', 'create_app', or 'make_app', and can be 'name(args)' to" + " pass arguments." + ), + is_eager=True, + expose_value=False, + callback=_set_app, +) + + +def _set_debug(ctx: click.Context, param: click.Option, value: bool) -> bool | None: + # If the flag isn't provided, it will default to False. Don't use + # that, let debug be set by env in that case. + source = ctx.get_parameter_source(param.name) # type: ignore[arg-type] + + if source is not None and source in ( + ParameterSource.DEFAULT, + ParameterSource.DEFAULT_MAP, + ): + return None + + # Set with env var instead of ScriptInfo.load so that it can be + # accessed early during a factory function. + os.environ["FLASK_DEBUG"] = "1" if value else "0" + return value + + +_debug_option = click.Option( + ["--debug/--no-debug"], + help="Set debug mode.", + expose_value=False, + callback=_set_debug, +) + + +def _env_file_callback( + ctx: click.Context, param: click.Option, value: str | None +) -> str | None: + try: + import dotenv # noqa: F401 + except ImportError: + # Only show an error if a value was passed, otherwise we still want to + # call load_dotenv and show a message without exiting. + if value is not None: + raise click.BadParameter( + "python-dotenv must be installed to load an env file.", + ctx=ctx, + param=param, + ) from None + + # Load if a value was passed, or we want to load default files, or both. + if value is not None or ctx.obj.load_dotenv_defaults: + load_dotenv(value, load_defaults=ctx.obj.load_dotenv_defaults) + + return value + + +# This option is eager so env vars are loaded as early as possible to be +# used by other options. +_env_file_option = click.Option( + ["-e", "--env-file"], + type=click.Path(exists=True, dir_okay=False), + help=( + "Load environment variables from this file, taking precedence over" + " those set by '.env' and '.flaskenv'. Variables set directly in the" + " environment take highest precedence. python-dotenv must be installed." + ), + is_eager=True, + expose_value=False, + callback=_env_file_callback, +) + + +class FlaskGroup(AppGroup): + """Special subclass of the :class:`AppGroup` group that supports + loading more commands from the configured Flask app. Normally a + developer does not have to interface with this class but there are + some very advanced use cases for which it makes sense to create an + instance of this. see :ref:`custom-scripts`. + + :param add_default_commands: if this is True then the default run and + shell commands will be added. + :param add_version_option: adds the ``--version`` option. + :param create_app: an optional callback that is passed the script info and + returns the loaded app. + :param load_dotenv: Load the nearest :file:`.env` and :file:`.flaskenv` + files to set environment variables. Will also change the working + directory to the directory containing the first file found. + :param set_debug_flag: Set the app's debug flag. + + .. versionchanged:: 3.1 + ``-e path`` takes precedence over default ``.env`` and ``.flaskenv`` files. + + .. versionchanged:: 2.2 + Added the ``-A/--app``, ``--debug/--no-debug``, ``-e/--env-file`` options. + + .. versionchanged:: 2.2 + An app context is pushed when running ``app.cli`` commands, so + ``@with_appcontext`` is no longer required for those commands. + + .. versionchanged:: 1.0 + If installed, python-dotenv will be used to load environment variables + from :file:`.env` and :file:`.flaskenv` files. + """ + + def __init__( + self, + add_default_commands: bool = True, + create_app: t.Callable[..., Flask] | None = None, + add_version_option: bool = True, + load_dotenv: bool = True, + set_debug_flag: bool = True, + **extra: t.Any, + ) -> None: + params: list[click.Parameter] = list(extra.pop("params", None) or ()) + # Processing is done with option callbacks instead of a group + # callback. This allows users to make a custom group callback + # without losing the behavior. --env-file must come first so + # that it is eagerly evaluated before --app. + params.extend((_env_file_option, _app_option, _debug_option)) + + if add_version_option: + params.append(version_option) + + if "context_settings" not in extra: + extra["context_settings"] = {} + + extra["context_settings"].setdefault("auto_envvar_prefix", "FLASK") + + super().__init__(params=params, **extra) + + self.create_app = create_app + self.load_dotenv = load_dotenv + self.set_debug_flag = set_debug_flag + + if add_default_commands: + self.add_command(run_command) + self.add_command(shell_command) + self.add_command(routes_command) + + self._loaded_plugin_commands = False + + def _load_plugin_commands(self) -> None: + if self._loaded_plugin_commands: + return + + if sys.version_info >= (3, 10): + from importlib import metadata + else: + # Use a backport on Python < 3.10. We technically have + # importlib.metadata on 3.8+, but the API changed in 3.10, + # so use the backport for consistency. + import importlib_metadata as metadata # pyright: ignore + + for ep in metadata.entry_points(group="flask.commands"): + self.add_command(ep.load(), ep.name) + + self._loaded_plugin_commands = True + + def get_command(self, ctx: click.Context, name: str) -> click.Command | None: + self._load_plugin_commands() + # Look up built-in and plugin commands, which should be + # available even if the app fails to load. + rv = super().get_command(ctx, name) + + if rv is not None: + return rv + + info = ctx.ensure_object(ScriptInfo) + + # Look up commands provided by the app, showing an error and + # continuing if the app couldn't be loaded. + try: + app = info.load_app() + except NoAppException as e: + click.secho(f"Error: {e.format_message()}\n", err=True, fg="red") + return None + + # Push an app context for the loaded app unless it is already + # active somehow. This makes the context available to parameter + # and command callbacks without needing @with_appcontext. + if not current_app or current_app._get_current_object() is not app: # type: ignore[attr-defined] + ctx.with_resource(app.app_context()) + + return app.cli.get_command(ctx, name) + + def list_commands(self, ctx: click.Context) -> list[str]: + self._load_plugin_commands() + # Start with the built-in and plugin commands. + rv = set(super().list_commands(ctx)) + info = ctx.ensure_object(ScriptInfo) + + # Add commands provided by the app, showing an error and + # continuing if the app couldn't be loaded. + try: + rv.update(info.load_app().cli.list_commands(ctx)) + except NoAppException as e: + # When an app couldn't be loaded, show the error message + # without the traceback. + click.secho(f"Error: {e.format_message()}\n", err=True, fg="red") + except Exception: + # When any other errors occurred during loading, show the + # full traceback. + click.secho(f"{traceback.format_exc()}\n", err=True, fg="red") + + return sorted(rv) + + def make_context( + self, + info_name: str | None, + args: list[str], + parent: click.Context | None = None, + **extra: t.Any, + ) -> click.Context: + # Set a flag to tell app.run to become a no-op. If app.run was + # not in a __name__ == __main__ guard, it would start the server + # when importing, blocking whatever command is being called. + os.environ["FLASK_RUN_FROM_CLI"] = "true" + + if "obj" not in extra and "obj" not in self.context_settings: + extra["obj"] = ScriptInfo( + create_app=self.create_app, + set_debug_flag=self.set_debug_flag, + load_dotenv_defaults=self.load_dotenv, + ) + + return super().make_context(info_name, args, parent=parent, **extra) + + def parse_args(self, ctx: click.Context, args: list[str]) -> list[str]: + if (not args and self.no_args_is_help) or ( + len(args) == 1 and args[0] in self.get_help_option_names(ctx) + ): + # Attempt to load --env-file and --app early in case they + # were given as env vars. Otherwise no_args_is_help will not + # see commands from app.cli. + _env_file_option.handle_parse_result(ctx, {}, []) + _app_option.handle_parse_result(ctx, {}, []) + + return super().parse_args(ctx, args) + + +def _path_is_ancestor(path: str, other: str) -> bool: + """Take ``other`` and remove the length of ``path`` from it. Then join it + to ``path``. If it is the original value, ``path`` is an ancestor of + ``other``.""" + return os.path.join(path, other[len(path) :].lstrip(os.sep)) == other + + +def load_dotenv( + path: str | os.PathLike[str] | None = None, load_defaults: bool = True +) -> bool: + """Load "dotenv" files to set environment variables. A given path takes + precedence over ``.env``, which takes precedence over ``.flaskenv``. After + loading and combining these files, values are only set if the key is not + already set in ``os.environ``. + + This is a no-op if `python-dotenv`_ is not installed. + + .. _python-dotenv: https://github.com/theskumar/python-dotenv#readme + + :param path: Load the file at this location. + :param load_defaults: Search for and load the default ``.flaskenv`` and + ``.env`` files. + :return: ``True`` if at least one env var was loaded. + + .. versionchanged:: 3.1 + Added the ``load_defaults`` parameter. A given path takes precedence + over default files. + + .. versionchanged:: 2.0 + The current directory is not changed to the location of the + loaded file. + + .. versionchanged:: 2.0 + When loading the env files, set the default encoding to UTF-8. + + .. versionchanged:: 1.1.0 + Returns ``False`` when python-dotenv is not installed, or when + the given path isn't a file. + + .. versionadded:: 1.0 + """ + try: + import dotenv + except ImportError: + if path or os.path.isfile(".env") or os.path.isfile(".flaskenv"): + click.secho( + " * Tip: There are .env files present. Install python-dotenv" + " to use them.", + fg="yellow", + err=True, + ) + + return False + + data: dict[str, str | None] = {} + + if load_defaults: + for default_name in (".flaskenv", ".env"): + if not (default_path := dotenv.find_dotenv(default_name, usecwd=True)): + continue + + data |= dotenv.dotenv_values(default_path, encoding="utf-8") + + if path is not None and os.path.isfile(path): + data |= dotenv.dotenv_values(path, encoding="utf-8") + + for key, value in data.items(): + if key in os.environ or value is None: + continue + + os.environ[key] = value + + return bool(data) # True if at least one env var was loaded. + + +def show_server_banner(debug: bool, app_import_path: str | None) -> None: + """Show extra startup messages the first time the server is run, + ignoring the reloader. + """ + if is_running_from_reloader(): + return + + if app_import_path is not None: + click.echo(f" * Serving Flask app '{app_import_path}'") + + if debug is not None: + click.echo(f" * Debug mode: {'on' if debug else 'off'}") + + +class CertParamType(click.ParamType): + """Click option type for the ``--cert`` option. Allows either an + existing file, the string ``'adhoc'``, or an import for a + :class:`~ssl.SSLContext` object. + """ + + name = "path" + + def __init__(self) -> None: + self.path_type = click.Path(exists=True, dir_okay=False, resolve_path=True) + + def convert( + self, value: t.Any, param: click.Parameter | None, ctx: click.Context | None + ) -> t.Any: + try: + import ssl + except ImportError: + raise click.BadParameter( + 'Using "--cert" requires Python to be compiled with SSL support.', + ctx, + param, + ) from None + + try: + return self.path_type(value, param, ctx) + except click.BadParameter: + value = click.STRING(value, param, ctx).lower() + + if value == "adhoc": + try: + import cryptography # noqa: F401 + except ImportError: + raise click.BadParameter( + "Using ad-hoc certificates requires the cryptography library.", + ctx, + param, + ) from None + + return value + + obj = import_string(value, silent=True) + + if isinstance(obj, ssl.SSLContext): + return obj + + raise + + +def _validate_key(ctx: click.Context, param: click.Parameter, value: t.Any) -> t.Any: + """The ``--key`` option must be specified when ``--cert`` is a file. + Modifies the ``cert`` param to be a ``(cert, key)`` pair if needed. + """ + cert = ctx.params.get("cert") + is_adhoc = cert == "adhoc" + + try: + import ssl + except ImportError: + is_context = False + else: + is_context = isinstance(cert, ssl.SSLContext) + + if value is not None: + if is_adhoc: + raise click.BadParameter( + 'When "--cert" is "adhoc", "--key" is not used.', ctx, param + ) + + if is_context: + raise click.BadParameter( + 'When "--cert" is an SSLContext object, "--key" is not used.', + ctx, + param, + ) + + if not cert: + raise click.BadParameter('"--cert" must also be specified.', ctx, param) + + ctx.params["cert"] = cert, value + + else: + if cert and not (is_adhoc or is_context): + raise click.BadParameter('Required when using "--cert".', ctx, param) + + return value + + +class SeparatedPathType(click.Path): + """Click option type that accepts a list of values separated by the + OS's path separator (``:``, ``;`` on Windows). Each value is + validated as a :class:`click.Path` type. + """ + + def convert( + self, value: t.Any, param: click.Parameter | None, ctx: click.Context | None + ) -> t.Any: + items = self.split_envvar_value(value) + # can't call no-arg super() inside list comprehension until Python 3.12 + super_convert = super().convert + return [super_convert(item, param, ctx) for item in items] + + +@click.command("run", short_help="Run a development server.") +@click.option("--host", "-h", default="127.0.0.1", help="The interface to bind to.") +@click.option("--port", "-p", default=5000, help="The port to bind to.") +@click.option( + "--cert", + type=CertParamType(), + help="Specify a certificate file to use HTTPS.", + is_eager=True, +) +@click.option( + "--key", + type=click.Path(exists=True, dir_okay=False, resolve_path=True), + callback=_validate_key, + expose_value=False, + help="The key file to use when specifying a certificate.", +) +@click.option( + "--reload/--no-reload", + default=None, + help="Enable or disable the reloader. By default the reloader " + "is active if debug is enabled.", +) +@click.option( + "--debugger/--no-debugger", + default=None, + help="Enable or disable the debugger. By default the debugger " + "is active if debug is enabled.", +) +@click.option( + "--with-threads/--without-threads", + default=True, + help="Enable or disable multithreading.", +) +@click.option( + "--extra-files", + default=None, + type=SeparatedPathType(), + help=( + "Extra files that trigger a reload on change. Multiple paths" + f" are separated by {os.path.pathsep!r}." + ), +) +@click.option( + "--exclude-patterns", + default=None, + type=SeparatedPathType(), + help=( + "Files matching these fnmatch patterns will not trigger a reload" + " on change. Multiple patterns are separated by" + f" {os.path.pathsep!r}." + ), +) +@pass_script_info +def run_command( + info: ScriptInfo, + host: str, + port: int, + reload: bool, + debugger: bool, + with_threads: bool, + cert: ssl.SSLContext | tuple[str, str | None] | t.Literal["adhoc"] | None, + extra_files: list[str] | None, + exclude_patterns: list[str] | None, +) -> None: + """Run a local development server. + + This server is for development purposes only. It does not provide + the stability, security, or performance of production WSGI servers. + + The reloader and debugger are enabled by default with the '--debug' + option. + """ + try: + app: WSGIApplication = info.load_app() # pyright: ignore + except Exception as e: + if is_running_from_reloader(): + # When reloading, print out the error immediately, but raise + # it later so the debugger or server can handle it. + traceback.print_exc() + err = e + + def app( + environ: WSGIEnvironment, start_response: StartResponse + ) -> cabc.Iterable[bytes]: + raise err from None + + else: + # When not reloading, raise the error immediately so the + # command fails. + raise e from None + + debug = get_debug_flag() + + if reload is None: + reload = debug + + if debugger is None: + debugger = debug + + show_server_banner(debug, info.app_import_path) + + run_simple( + host, + port, + app, + use_reloader=reload, + use_debugger=debugger, + threaded=with_threads, + ssl_context=cert, + extra_files=extra_files, + exclude_patterns=exclude_patterns, + ) + + +run_command.params.insert(0, _debug_option) + + +@click.command("shell", short_help="Run a shell in the app context.") +@with_appcontext +def shell_command() -> None: + """Run an interactive Python shell in the context of a given + Flask application. The application will populate the default + namespace of this shell according to its configuration. + + This is useful for executing small snippets of management code + without having to manually configure the application. + """ + import code + + banner = ( + f"Python {sys.version} on {sys.platform}\n" + f"App: {current_app.import_name}\n" + f"Instance: {current_app.instance_path}" + ) + ctx: dict[str, t.Any] = {} + + # Support the regular Python interpreter startup script if someone + # is using it. + startup = os.environ.get("PYTHONSTARTUP") + if startup and os.path.isfile(startup): + with open(startup) as f: + eval(compile(f.read(), startup, "exec"), ctx) + + ctx.update(current_app.make_shell_context()) + + # Site, customize, or startup script can set a hook to call when + # entering interactive mode. The default one sets up readline with + # tab and history completion. + interactive_hook = getattr(sys, "__interactivehook__", None) + + if interactive_hook is not None: + try: + import readline + from rlcompleter import Completer + except ImportError: + pass + else: + # rlcompleter uses __main__.__dict__ by default, which is + # flask.__main__. Use the shell context instead. + readline.set_completer(Completer(ctx).complete) + + interactive_hook() + + code.interact(banner=banner, local=ctx) + + +@click.command("routes", short_help="Show the routes for the app.") +@click.option( + "--sort", + "-s", + type=click.Choice(("endpoint", "methods", "domain", "rule", "match")), + default="endpoint", + help=( + "Method to sort routes by. 'match' is the order that Flask will match routes" + " when dispatching a request." + ), +) +@click.option("--all-methods", is_flag=True, help="Show HEAD and OPTIONS methods.") +@with_appcontext +def routes_command(sort: str, all_methods: bool) -> None: + """Show all registered routes with endpoints and methods.""" + rules = list(current_app.url_map.iter_rules()) + + if not rules: + click.echo("No routes were registered.") + return + + ignored_methods = set() if all_methods else {"HEAD", "OPTIONS"} + host_matching = current_app.url_map.host_matching + has_domain = any(rule.host if host_matching else rule.subdomain for rule in rules) + rows = [] + + for rule in rules: + row = [ + rule.endpoint, + ", ".join(sorted((rule.methods or set()) - ignored_methods)), + ] + + if has_domain: + row.append((rule.host if host_matching else rule.subdomain) or "") + + row.append(rule.rule) + rows.append(row) + + headers = ["Endpoint", "Methods"] + sorts = ["endpoint", "methods"] + + if has_domain: + headers.append("Host" if host_matching else "Subdomain") + sorts.append("domain") + + headers.append("Rule") + sorts.append("rule") + + try: + rows.sort(key=itemgetter(sorts.index(sort))) + except ValueError: + pass + + rows.insert(0, headers) + widths = [max(len(row[i]) for row in rows) for i in range(len(headers))] + rows.insert(1, ["-" * w for w in widths]) + template = " ".join(f"{{{i}:<{w}}}" for i, w in enumerate(widths)) + + for row in rows: + click.echo(template.format(*row)) + + +cli = FlaskGroup( + name="flask", + help="""\ +A general utility script for Flask applications. + +An application to load must be given with the '--app' option, +'FLASK_APP' environment variable, or with a 'wsgi.py' or 'app.py' file +in the current directory. +""", +) + + +def main() -> None: + cli.main() + + +if __name__ == "__main__": + main() diff --git a/venv/lib/python3.10/site-packages/flask/config.py b/venv/lib/python3.10/site-packages/flask/config.py new file mode 100644 index 0000000..34ef1a5 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/config.py @@ -0,0 +1,367 @@ +from __future__ import annotations + +import errno +import json +import os +import types +import typing as t + +from werkzeug.utils import import_string + +if t.TYPE_CHECKING: + import typing_extensions as te + + from .sansio.app import App + + +T = t.TypeVar("T") + + +class ConfigAttribute(t.Generic[T]): + """Makes an attribute forward to the config""" + + def __init__( + self, name: str, get_converter: t.Callable[[t.Any], T] | None = None + ) -> None: + self.__name__ = name + self.get_converter = get_converter + + @t.overload + def __get__(self, obj: None, owner: None) -> te.Self: ... + + @t.overload + def __get__(self, obj: App, owner: type[App]) -> T: ... + + def __get__(self, obj: App | None, owner: type[App] | None = None) -> T | te.Self: + if obj is None: + return self + + rv = obj.config[self.__name__] + + if self.get_converter is not None: + rv = self.get_converter(rv) + + return rv # type: ignore[no-any-return] + + def __set__(self, obj: App, value: t.Any) -> None: + obj.config[self.__name__] = value + + +class Config(dict): # type: ignore[type-arg] + """Works exactly like a dict but provides ways to fill it from files + or special dictionaries. There are two common patterns to populate the + config. + + Either you can fill the config from a config file:: + + app.config.from_pyfile('yourconfig.cfg') + + Or alternatively you can define the configuration options in the + module that calls :meth:`from_object` or provide an import path to + a module that should be loaded. It is also possible to tell it to + use the same module and with that provide the configuration values + just before the call:: + + DEBUG = True + SECRET_KEY = 'development key' + app.config.from_object(__name__) + + In both cases (loading from any Python file or loading from modules), + only uppercase keys are added to the config. This makes it possible to use + lowercase values in the config file for temporary values that are not added + to the config or to define the config keys in the same file that implements + the application. + + Probably the most interesting way to load configurations is from an + environment variable pointing to a file:: + + app.config.from_envvar('YOURAPPLICATION_SETTINGS') + + In this case before launching the application you have to set this + environment variable to the file you want to use. On Linux and OS X + use the export statement:: + + export YOURAPPLICATION_SETTINGS='/path/to/config/file' + + On windows use `set` instead. + + :param root_path: path to which files are read relative from. When the + config object is created by the application, this is + the application's :attr:`~flask.Flask.root_path`. + :param defaults: an optional dictionary of default values + """ + + def __init__( + self, + root_path: str | os.PathLike[str], + defaults: dict[str, t.Any] | None = None, + ) -> None: + super().__init__(defaults or {}) + self.root_path = root_path + + def from_envvar(self, variable_name: str, silent: bool = False) -> bool: + """Loads a configuration from an environment variable pointing to + a configuration file. This is basically just a shortcut with nicer + error messages for this line of code:: + + app.config.from_pyfile(os.environ['YOURAPPLICATION_SETTINGS']) + + :param variable_name: name of the environment variable + :param silent: set to ``True`` if you want silent failure for missing + files. + :return: ``True`` if the file was loaded successfully. + """ + rv = os.environ.get(variable_name) + if not rv: + if silent: + return False + raise RuntimeError( + f"The environment variable {variable_name!r} is not set" + " and as such configuration could not be loaded. Set" + " this variable and make it point to a configuration" + " file" + ) + return self.from_pyfile(rv, silent=silent) + + def from_prefixed_env( + self, prefix: str = "FLASK", *, loads: t.Callable[[str], t.Any] = json.loads + ) -> bool: + """Load any environment variables that start with ``FLASK_``, + dropping the prefix from the env key for the config key. Values + are passed through a loading function to attempt to convert them + to more specific types than strings. + + Keys are loaded in :func:`sorted` order. + + The default loading function attempts to parse values as any + valid JSON type, including dicts and lists. + + Specific items in nested dicts can be set by separating the + keys with double underscores (``__``). If an intermediate key + doesn't exist, it will be initialized to an empty dict. + + :param prefix: Load env vars that start with this prefix, + separated with an underscore (``_``). + :param loads: Pass each string value to this function and use + the returned value as the config value. If any error is + raised it is ignored and the value remains a string. The + default is :func:`json.loads`. + + .. versionadded:: 2.1 + """ + prefix = f"{prefix}_" + + for key in sorted(os.environ): + if not key.startswith(prefix): + continue + + value = os.environ[key] + key = key.removeprefix(prefix) + + try: + value = loads(value) + except Exception: + # Keep the value as a string if loading failed. + pass + + if "__" not in key: + # A non-nested key, set directly. + self[key] = value + continue + + # Traverse nested dictionaries with keys separated by "__". + current = self + *parts, tail = key.split("__") + + for part in parts: + # If an intermediate dict does not exist, create it. + if part not in current: + current[part] = {} + + current = current[part] + + current[tail] = value + + return True + + def from_pyfile( + self, filename: str | os.PathLike[str], silent: bool = False + ) -> bool: + """Updates the values in the config from a Python file. This function + behaves as if the file was imported as module with the + :meth:`from_object` function. + + :param filename: the filename of the config. This can either be an + absolute filename or a filename relative to the + root path. + :param silent: set to ``True`` if you want silent failure for missing + files. + :return: ``True`` if the file was loaded successfully. + + .. versionadded:: 0.7 + `silent` parameter. + """ + filename = os.path.join(self.root_path, filename) + d = types.ModuleType("config") + d.__file__ = filename + try: + with open(filename, mode="rb") as config_file: + exec(compile(config_file.read(), filename, "exec"), d.__dict__) + except OSError as e: + if silent and e.errno in (errno.ENOENT, errno.EISDIR, errno.ENOTDIR): + return False + e.strerror = f"Unable to load configuration file ({e.strerror})" + raise + self.from_object(d) + return True + + def from_object(self, obj: object | str) -> None: + """Updates the values from the given object. An object can be of one + of the following two types: + + - a string: in this case the object with that name will be imported + - an actual object reference: that object is used directly + + Objects are usually either modules or classes. :meth:`from_object` + loads only the uppercase attributes of the module/class. A ``dict`` + object will not work with :meth:`from_object` because the keys of a + ``dict`` are not attributes of the ``dict`` class. + + Example of module-based configuration:: + + app.config.from_object('yourapplication.default_config') + from yourapplication import default_config + app.config.from_object(default_config) + + Nothing is done to the object before loading. If the object is a + class and has ``@property`` attributes, it needs to be + instantiated before being passed to this method. + + You should not use this function to load the actual configuration but + rather configuration defaults. The actual config should be loaded + with :meth:`from_pyfile` and ideally from a location not within the + package because the package might be installed system wide. + + See :ref:`config-dev-prod` for an example of class-based configuration + using :meth:`from_object`. + + :param obj: an import name or object + """ + if isinstance(obj, str): + obj = import_string(obj) + for key in dir(obj): + if key.isupper(): + self[key] = getattr(obj, key) + + def from_file( + self, + filename: str | os.PathLike[str], + load: t.Callable[[t.IO[t.Any]], t.Mapping[str, t.Any]], + silent: bool = False, + text: bool = True, + ) -> bool: + """Update the values in the config from a file that is loaded + using the ``load`` parameter. The loaded data is passed to the + :meth:`from_mapping` method. + + .. code-block:: python + + import json + app.config.from_file("config.json", load=json.load) + + import tomllib + app.config.from_file("config.toml", load=tomllib.load, text=False) + + :param filename: The path to the data file. This can be an + absolute path or relative to the config root path. + :param load: A callable that takes a file handle and returns a + mapping of loaded data from the file. + :type load: ``Callable[[Reader], Mapping]`` where ``Reader`` + implements a ``read`` method. + :param silent: Ignore the file if it doesn't exist. + :param text: Open the file in text or binary mode. + :return: ``True`` if the file was loaded successfully. + + .. versionchanged:: 2.3 + The ``text`` parameter was added. + + .. versionadded:: 2.0 + """ + filename = os.path.join(self.root_path, filename) + + try: + with open(filename, "r" if text else "rb") as f: + obj = load(f) + except OSError as e: + if silent and e.errno in (errno.ENOENT, errno.EISDIR): + return False + + e.strerror = f"Unable to load configuration file ({e.strerror})" + raise + + return self.from_mapping(obj) + + def from_mapping( + self, mapping: t.Mapping[str, t.Any] | None = None, **kwargs: t.Any + ) -> bool: + """Updates the config like :meth:`update` ignoring items with + non-upper keys. + + :return: Always returns ``True``. + + .. versionadded:: 0.11 + """ + mappings: dict[str, t.Any] = {} + if mapping is not None: + mappings.update(mapping) + mappings.update(kwargs) + for key, value in mappings.items(): + if key.isupper(): + self[key] = value + return True + + def get_namespace( + self, namespace: str, lowercase: bool = True, trim_namespace: bool = True + ) -> dict[str, t.Any]: + """Returns a dictionary containing a subset of configuration options + that match the specified namespace/prefix. Example usage:: + + app.config['IMAGE_STORE_TYPE'] = 'fs' + app.config['IMAGE_STORE_PATH'] = '/var/app/images' + app.config['IMAGE_STORE_BASE_URL'] = 'http://img.website.com' + image_store_config = app.config.get_namespace('IMAGE_STORE_') + + The resulting dictionary `image_store_config` would look like:: + + { + 'type': 'fs', + 'path': '/var/app/images', + 'base_url': 'http://img.website.com' + } + + This is often useful when configuration options map directly to + keyword arguments in functions or class constructors. + + :param namespace: a configuration namespace + :param lowercase: a flag indicating if the keys of the resulting + dictionary should be lowercase + :param trim_namespace: a flag indicating if the keys of the resulting + dictionary should not include the namespace + + .. versionadded:: 0.11 + """ + rv = {} + for k, v in self.items(): + if not k.startswith(namespace): + continue + if trim_namespace: + key = k[len(namespace) :] + else: + key = k + if lowercase: + key = key.lower() + rv[key] = v + return rv + + def __repr__(self) -> str: + return f"<{type(self).__name__} {dict.__repr__(self)}>" diff --git a/venv/lib/python3.10/site-packages/flask/ctx.py b/venv/lib/python3.10/site-packages/flask/ctx.py new file mode 100644 index 0000000..222e818 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/ctx.py @@ -0,0 +1,449 @@ +from __future__ import annotations + +import contextvars +import sys +import typing as t +from functools import update_wrapper +from types import TracebackType + +from werkzeug.exceptions import HTTPException + +from . import typing as ft +from .globals import _cv_app +from .globals import _cv_request +from .signals import appcontext_popped +from .signals import appcontext_pushed + +if t.TYPE_CHECKING: # pragma: no cover + from _typeshed.wsgi import WSGIEnvironment + + from .app import Flask + from .sessions import SessionMixin + from .wrappers import Request + + +# a singleton sentinel value for parameter defaults +_sentinel = object() + + +class _AppCtxGlobals: + """A plain object. Used as a namespace for storing data during an + application context. + + Creating an app context automatically creates this object, which is + made available as the :data:`g` proxy. + + .. describe:: 'key' in g + + Check whether an attribute is present. + + .. versionadded:: 0.10 + + .. describe:: iter(g) + + Return an iterator over the attribute names. + + .. versionadded:: 0.10 + """ + + # Define attr methods to let mypy know this is a namespace object + # that has arbitrary attributes. + + def __getattr__(self, name: str) -> t.Any: + try: + return self.__dict__[name] + except KeyError: + raise AttributeError(name) from None + + def __setattr__(self, name: str, value: t.Any) -> None: + self.__dict__[name] = value + + def __delattr__(self, name: str) -> None: + try: + del self.__dict__[name] + except KeyError: + raise AttributeError(name) from None + + def get(self, name: str, default: t.Any | None = None) -> t.Any: + """Get an attribute by name, or a default value. Like + :meth:`dict.get`. + + :param name: Name of attribute to get. + :param default: Value to return if the attribute is not present. + + .. versionadded:: 0.10 + """ + return self.__dict__.get(name, default) + + def pop(self, name: str, default: t.Any = _sentinel) -> t.Any: + """Get and remove an attribute by name. Like :meth:`dict.pop`. + + :param name: Name of attribute to pop. + :param default: Value to return if the attribute is not present, + instead of raising a ``KeyError``. + + .. versionadded:: 0.11 + """ + if default is _sentinel: + return self.__dict__.pop(name) + else: + return self.__dict__.pop(name, default) + + def setdefault(self, name: str, default: t.Any = None) -> t.Any: + """Get the value of an attribute if it is present, otherwise + set and return a default value. Like :meth:`dict.setdefault`. + + :param name: Name of attribute to get. + :param default: Value to set and return if the attribute is not + present. + + .. versionadded:: 0.11 + """ + return self.__dict__.setdefault(name, default) + + def __contains__(self, item: str) -> bool: + return item in self.__dict__ + + def __iter__(self) -> t.Iterator[str]: + return iter(self.__dict__) + + def __repr__(self) -> str: + ctx = _cv_app.get(None) + if ctx is not None: + return f"" + return object.__repr__(self) + + +def after_this_request( + f: ft.AfterRequestCallable[t.Any], +) -> ft.AfterRequestCallable[t.Any]: + """Executes a function after this request. This is useful to modify + response objects. The function is passed the response object and has + to return the same or a new one. + + Example:: + + @app.route('/') + def index(): + @after_this_request + def add_header(response): + response.headers['X-Foo'] = 'Parachute' + return response + return 'Hello World!' + + This is more useful if a function other than the view function wants to + modify a response. For instance think of a decorator that wants to add + some headers without converting the return value into a response object. + + .. versionadded:: 0.9 + """ + ctx = _cv_request.get(None) + + if ctx is None: + raise RuntimeError( + "'after_this_request' can only be used when a request" + " context is active, such as in a view function." + ) + + ctx._after_request_functions.append(f) + return f + + +F = t.TypeVar("F", bound=t.Callable[..., t.Any]) + + +def copy_current_request_context(f: F) -> F: + """A helper function that decorates a function to retain the current + request context. This is useful when working with greenlets. The moment + the function is decorated a copy of the request context is created and + then pushed when the function is called. The current session is also + included in the copied request context. + + Example:: + + import gevent + from flask import copy_current_request_context + + @app.route('/') + def index(): + @copy_current_request_context + def do_some_work(): + # do some work here, it can access flask.request or + # flask.session like you would otherwise in the view function. + ... + gevent.spawn(do_some_work) + return 'Regular response' + + .. versionadded:: 0.10 + """ + ctx = _cv_request.get(None) + + if ctx is None: + raise RuntimeError( + "'copy_current_request_context' can only be used when a" + " request context is active, such as in a view function." + ) + + ctx = ctx.copy() + + def wrapper(*args: t.Any, **kwargs: t.Any) -> t.Any: + with ctx: + return ctx.app.ensure_sync(f)(*args, **kwargs) + + return update_wrapper(wrapper, f) # type: ignore[return-value] + + +def has_request_context() -> bool: + """If you have code that wants to test if a request context is there or + not this function can be used. For instance, you may want to take advantage + of request information if the request object is available, but fail + silently if it is unavailable. + + :: + + class User(db.Model): + + def __init__(self, username, remote_addr=None): + self.username = username + if remote_addr is None and has_request_context(): + remote_addr = request.remote_addr + self.remote_addr = remote_addr + + Alternatively you can also just test any of the context bound objects + (such as :class:`request` or :class:`g`) for truthness:: + + class User(db.Model): + + def __init__(self, username, remote_addr=None): + self.username = username + if remote_addr is None and request: + remote_addr = request.remote_addr + self.remote_addr = remote_addr + + .. versionadded:: 0.7 + """ + return _cv_request.get(None) is not None + + +def has_app_context() -> bool: + """Works like :func:`has_request_context` but for the application + context. You can also just do a boolean check on the + :data:`current_app` object instead. + + .. versionadded:: 0.9 + """ + return _cv_app.get(None) is not None + + +class AppContext: + """The app context contains application-specific information. An app + context is created and pushed at the beginning of each request if + one is not already active. An app context is also pushed when + running CLI commands. + """ + + def __init__(self, app: Flask) -> None: + self.app = app + self.url_adapter = app.create_url_adapter(None) + self.g: _AppCtxGlobals = app.app_ctx_globals_class() + self._cv_tokens: list[contextvars.Token[AppContext]] = [] + + def push(self) -> None: + """Binds the app context to the current context.""" + self._cv_tokens.append(_cv_app.set(self)) + appcontext_pushed.send(self.app, _async_wrapper=self.app.ensure_sync) + + def pop(self, exc: BaseException | None = _sentinel) -> None: # type: ignore + """Pops the app context.""" + try: + if len(self._cv_tokens) == 1: + if exc is _sentinel: + exc = sys.exc_info()[1] + self.app.do_teardown_appcontext(exc) + finally: + ctx = _cv_app.get() + _cv_app.reset(self._cv_tokens.pop()) + + if ctx is not self: + raise AssertionError( + f"Popped wrong app context. ({ctx!r} instead of {self!r})" + ) + + appcontext_popped.send(self.app, _async_wrapper=self.app.ensure_sync) + + def __enter__(self) -> AppContext: + self.push() + return self + + def __exit__( + self, + exc_type: type | None, + exc_value: BaseException | None, + tb: TracebackType | None, + ) -> None: + self.pop(exc_value) + + +class RequestContext: + """The request context contains per-request information. The Flask + app creates and pushes it at the beginning of the request, then pops + it at the end of the request. It will create the URL adapter and + request object for the WSGI environment provided. + + Do not attempt to use this class directly, instead use + :meth:`~flask.Flask.test_request_context` and + :meth:`~flask.Flask.request_context` to create this object. + + When the request context is popped, it will evaluate all the + functions registered on the application for teardown execution + (:meth:`~flask.Flask.teardown_request`). + + The request context is automatically popped at the end of the + request. When using the interactive debugger, the context will be + restored so ``request`` is still accessible. Similarly, the test + client can preserve the context after the request ends. However, + teardown functions may already have closed some resources such as + database connections. + """ + + def __init__( + self, + app: Flask, + environ: WSGIEnvironment, + request: Request | None = None, + session: SessionMixin | None = None, + ) -> None: + self.app = app + if request is None: + request = app.request_class(environ) + request.json_module = app.json + self.request: Request = request + self.url_adapter = None + try: + self.url_adapter = app.create_url_adapter(self.request) + except HTTPException as e: + self.request.routing_exception = e + self.flashes: list[tuple[str, str]] | None = None + self.session: SessionMixin | None = session + # Functions that should be executed after the request on the response + # object. These will be called before the regular "after_request" + # functions. + self._after_request_functions: list[ft.AfterRequestCallable[t.Any]] = [] + + self._cv_tokens: list[ + tuple[contextvars.Token[RequestContext], AppContext | None] + ] = [] + + def copy(self) -> RequestContext: + """Creates a copy of this request context with the same request object. + This can be used to move a request context to a different greenlet. + Because the actual request object is the same this cannot be used to + move a request context to a different thread unless access to the + request object is locked. + + .. versionadded:: 0.10 + + .. versionchanged:: 1.1 + The current session object is used instead of reloading the original + data. This prevents `flask.session` pointing to an out-of-date object. + """ + return self.__class__( + self.app, + environ=self.request.environ, + request=self.request, + session=self.session, + ) + + def match_request(self) -> None: + """Can be overridden by a subclass to hook into the matching + of the request. + """ + try: + result = self.url_adapter.match(return_rule=True) # type: ignore + self.request.url_rule, self.request.view_args = result # type: ignore + except HTTPException as e: + self.request.routing_exception = e + + def push(self) -> None: + # Before we push the request context we have to ensure that there + # is an application context. + app_ctx = _cv_app.get(None) + + if app_ctx is None or app_ctx.app is not self.app: + app_ctx = self.app.app_context() + app_ctx.push() + else: + app_ctx = None + + self._cv_tokens.append((_cv_request.set(self), app_ctx)) + + # Open the session at the moment that the request context is available. + # This allows a custom open_session method to use the request context. + # Only open a new session if this is the first time the request was + # pushed, otherwise stream_with_context loses the session. + if self.session is None: + session_interface = self.app.session_interface + self.session = session_interface.open_session(self.app, self.request) + + if self.session is None: + self.session = session_interface.make_null_session(self.app) + + # Match the request URL after loading the session, so that the + # session is available in custom URL converters. + if self.url_adapter is not None: + self.match_request() + + def pop(self, exc: BaseException | None = _sentinel) -> None: # type: ignore + """Pops the request context and unbinds it by doing that. This will + also trigger the execution of functions registered by the + :meth:`~flask.Flask.teardown_request` decorator. + + .. versionchanged:: 0.9 + Added the `exc` argument. + """ + clear_request = len(self._cv_tokens) == 1 + + try: + if clear_request: + if exc is _sentinel: + exc = sys.exc_info()[1] + self.app.do_teardown_request(exc) + + request_close = getattr(self.request, "close", None) + if request_close is not None: + request_close() + finally: + ctx = _cv_request.get() + token, app_ctx = self._cv_tokens.pop() + _cv_request.reset(token) + + # get rid of circular dependencies at the end of the request + # so that we don't require the GC to be active. + if clear_request: + ctx.request.environ["werkzeug.request"] = None + + if app_ctx is not None: + app_ctx.pop(exc) + + if ctx is not self: + raise AssertionError( + f"Popped wrong request context. ({ctx!r} instead of {self!r})" + ) + + def __enter__(self) -> RequestContext: + self.push() + return self + + def __exit__( + self, + exc_type: type | None, + exc_value: BaseException | None, + tb: TracebackType | None, + ) -> None: + self.pop(exc_value) + + def __repr__(self) -> str: + return ( + f"<{type(self).__name__} {self.request.url!r}" + f" [{self.request.method}] of {self.app.name}>" + ) diff --git a/venv/lib/python3.10/site-packages/flask/debughelpers.py b/venv/lib/python3.10/site-packages/flask/debughelpers.py new file mode 100644 index 0000000..2c8c4c4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/debughelpers.py @@ -0,0 +1,178 @@ +from __future__ import annotations + +import typing as t + +from jinja2.loaders import BaseLoader +from werkzeug.routing import RequestRedirect + +from .blueprints import Blueprint +from .globals import request_ctx +from .sansio.app import App + +if t.TYPE_CHECKING: + from .sansio.scaffold import Scaffold + from .wrappers import Request + + +class UnexpectedUnicodeError(AssertionError, UnicodeError): + """Raised in places where we want some better error reporting for + unexpected unicode or binary data. + """ + + +class DebugFilesKeyError(KeyError, AssertionError): + """Raised from request.files during debugging. The idea is that it can + provide a better error message than just a generic KeyError/BadRequest. + """ + + def __init__(self, request: Request, key: str) -> None: + form_matches = request.form.getlist(key) + buf = [ + f"You tried to access the file {key!r} in the request.files" + " dictionary but it does not exist. The mimetype for the" + f" request is {request.mimetype!r} instead of" + " 'multipart/form-data' which means that no file contents" + " were transmitted. To fix this error you should provide" + ' enctype="multipart/form-data" in your form.' + ] + if form_matches: + names = ", ".join(repr(x) for x in form_matches) + buf.append( + "\n\nThe browser instead transmitted some file names. " + f"This was submitted: {names}" + ) + self.msg = "".join(buf) + + def __str__(self) -> str: + return self.msg + + +class FormDataRoutingRedirect(AssertionError): + """This exception is raised in debug mode if a routing redirect + would cause the browser to drop the method or body. This happens + when method is not GET, HEAD or OPTIONS and the status code is not + 307 or 308. + """ + + def __init__(self, request: Request) -> None: + exc = request.routing_exception + assert isinstance(exc, RequestRedirect) + buf = [ + f"A request was sent to '{request.url}', but routing issued" + f" a redirect to the canonical URL '{exc.new_url}'." + ] + + if f"{request.base_url}/" == exc.new_url.partition("?")[0]: + buf.append( + " The URL was defined with a trailing slash. Flask" + " will redirect to the URL with a trailing slash if it" + " was accessed without one." + ) + + buf.append( + " Send requests to the canonical URL, or use 307 or 308 for" + " routing redirects. Otherwise, browsers will drop form" + " data.\n\n" + "This exception is only raised in debug mode." + ) + super().__init__("".join(buf)) + + +def attach_enctype_error_multidict(request: Request) -> None: + """Patch ``request.files.__getitem__`` to raise a descriptive error + about ``enctype=multipart/form-data``. + + :param request: The request to patch. + :meta private: + """ + oldcls = request.files.__class__ + + class newcls(oldcls): # type: ignore[valid-type, misc] + def __getitem__(self, key: str) -> t.Any: + try: + return super().__getitem__(key) + except KeyError as e: + if key not in request.form: + raise + + raise DebugFilesKeyError(request, key).with_traceback( + e.__traceback__ + ) from None + + newcls.__name__ = oldcls.__name__ + newcls.__module__ = oldcls.__module__ + request.files.__class__ = newcls + + +def _dump_loader_info(loader: BaseLoader) -> t.Iterator[str]: + yield f"class: {type(loader).__module__}.{type(loader).__name__}" + for key, value in sorted(loader.__dict__.items()): + if key.startswith("_"): + continue + if isinstance(value, (tuple, list)): + if not all(isinstance(x, str) for x in value): + continue + yield f"{key}:" + for item in value: + yield f" - {item}" + continue + elif not isinstance(value, (str, int, float, bool)): + continue + yield f"{key}: {value!r}" + + +def explain_template_loading_attempts( + app: App, + template: str, + attempts: list[ + tuple[ + BaseLoader, + Scaffold, + tuple[str, str | None, t.Callable[[], bool] | None] | None, + ] + ], +) -> None: + """This should help developers understand what failed""" + info = [f"Locating template {template!r}:"] + total_found = 0 + blueprint = None + if request_ctx and request_ctx.request.blueprint is not None: + blueprint = request_ctx.request.blueprint + + for idx, (loader, srcobj, triple) in enumerate(attempts): + if isinstance(srcobj, App): + src_info = f"application {srcobj.import_name!r}" + elif isinstance(srcobj, Blueprint): + src_info = f"blueprint {srcobj.name!r} ({srcobj.import_name})" + else: + src_info = repr(srcobj) + + info.append(f"{idx + 1:5}: trying loader of {src_info}") + + for line in _dump_loader_info(loader): + info.append(f" {line}") + + if triple is None: + detail = "no match" + else: + detail = f"found ({triple[1] or ''!r})" + total_found += 1 + info.append(f" -> {detail}") + + seems_fishy = False + if total_found == 0: + info.append("Error: the template could not be found.") + seems_fishy = True + elif total_found > 1: + info.append("Warning: multiple loaders returned a match for the template.") + seems_fishy = True + + if blueprint is not None and seems_fishy: + info.append( + " The template was looked up from an endpoint that belongs" + f" to the blueprint {blueprint!r}." + ) + info.append(" Maybe you did not place a template in the right folder?") + info.append(" See https://flask.palletsprojects.com/blueprints/#templates") + + app.logger.info("\n".join(info)) diff --git a/venv/lib/python3.10/site-packages/flask/globals.py b/venv/lib/python3.10/site-packages/flask/globals.py new file mode 100644 index 0000000..e2c410c --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/globals.py @@ -0,0 +1,51 @@ +from __future__ import annotations + +import typing as t +from contextvars import ContextVar + +from werkzeug.local import LocalProxy + +if t.TYPE_CHECKING: # pragma: no cover + from .app import Flask + from .ctx import _AppCtxGlobals + from .ctx import AppContext + from .ctx import RequestContext + from .sessions import SessionMixin + from .wrappers import Request + + +_no_app_msg = """\ +Working outside of application context. + +This typically means that you attempted to use functionality that needed +the current application. To solve this, set up an application context +with app.app_context(). See the documentation for more information.\ +""" +_cv_app: ContextVar[AppContext] = ContextVar("flask.app_ctx") +app_ctx: AppContext = LocalProxy( # type: ignore[assignment] + _cv_app, unbound_message=_no_app_msg +) +current_app: Flask = LocalProxy( # type: ignore[assignment] + _cv_app, "app", unbound_message=_no_app_msg +) +g: _AppCtxGlobals = LocalProxy( # type: ignore[assignment] + _cv_app, "g", unbound_message=_no_app_msg +) + +_no_req_msg = """\ +Working outside of request context. + +This typically means that you attempted to use functionality that needed +an active HTTP request. Consult the documentation on testing for +information about how to avoid this problem.\ +""" +_cv_request: ContextVar[RequestContext] = ContextVar("flask.request_ctx") +request_ctx: RequestContext = LocalProxy( # type: ignore[assignment] + _cv_request, unbound_message=_no_req_msg +) +request: Request = LocalProxy( # type: ignore[assignment] + _cv_request, "request", unbound_message=_no_req_msg +) +session: SessionMixin = LocalProxy( # type: ignore[assignment] + _cv_request, "session", unbound_message=_no_req_msg +) diff --git a/venv/lib/python3.10/site-packages/flask/helpers.py b/venv/lib/python3.10/site-packages/flask/helpers.py new file mode 100644 index 0000000..5d412c9 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/helpers.py @@ -0,0 +1,641 @@ +from __future__ import annotations + +import importlib.util +import os +import sys +import typing as t +from datetime import datetime +from functools import cache +from functools import update_wrapper + +import werkzeug.utils +from werkzeug.exceptions import abort as _wz_abort +from werkzeug.utils import redirect as _wz_redirect +from werkzeug.wrappers import Response as BaseResponse + +from .globals import _cv_app +from .globals import _cv_request +from .globals import current_app +from .globals import request +from .globals import request_ctx +from .globals import session +from .signals import message_flashed + +if t.TYPE_CHECKING: # pragma: no cover + from .wrappers import Response + + +def get_debug_flag() -> bool: + """Get whether debug mode should be enabled for the app, indicated by the + :envvar:`FLASK_DEBUG` environment variable. The default is ``False``. + """ + val = os.environ.get("FLASK_DEBUG") + return bool(val and val.lower() not in {"0", "false", "no"}) + + +def get_load_dotenv(default: bool = True) -> bool: + """Get whether the user has disabled loading default dotenv files by + setting :envvar:`FLASK_SKIP_DOTENV`. The default is ``True``, load + the files. + + :param default: What to return if the env var isn't set. + """ + val = os.environ.get("FLASK_SKIP_DOTENV") + + if not val: + return default + + return val.lower() in ("0", "false", "no") + + +@t.overload +def stream_with_context( + generator_or_function: t.Iterator[t.AnyStr], +) -> t.Iterator[t.AnyStr]: ... + + +@t.overload +def stream_with_context( + generator_or_function: t.Callable[..., t.Iterator[t.AnyStr]], +) -> t.Callable[[t.Iterator[t.AnyStr]], t.Iterator[t.AnyStr]]: ... + + +def stream_with_context( + generator_or_function: t.Iterator[t.AnyStr] | t.Callable[..., t.Iterator[t.AnyStr]], +) -> t.Iterator[t.AnyStr] | t.Callable[[t.Iterator[t.AnyStr]], t.Iterator[t.AnyStr]]: + """Wrap a response generator function so that it runs inside the current + request context. This keeps :data:`request`, :data:`session`, and :data:`g` + available, even though at the point the generator runs the request context + will typically have ended. + + Use it as a decorator on a generator function: + + .. code-block:: python + + from flask import stream_with_context, request, Response + + @app.get("/stream") + def streamed_response(): + @stream_with_context + def generate(): + yield "Hello " + yield request.args["name"] + yield "!" + + return Response(generate()) + + Or use it as a wrapper around a created generator: + + .. code-block:: python + + from flask import stream_with_context, request, Response + + @app.get("/stream") + def streamed_response(): + def generate(): + yield "Hello " + yield request.args["name"] + yield "!" + + return Response(stream_with_context(generate())) + + .. versionadded:: 0.9 + """ + try: + gen = iter(generator_or_function) # type: ignore[arg-type] + except TypeError: + + def decorator(*args: t.Any, **kwargs: t.Any) -> t.Any: + gen = generator_or_function(*args, **kwargs) # type: ignore[operator] + return stream_with_context(gen) + + return update_wrapper(decorator, generator_or_function) # type: ignore[arg-type] + + def generator() -> t.Iterator[t.AnyStr]: + if (req_ctx := _cv_request.get(None)) is None: + raise RuntimeError( + "'stream_with_context' can only be used when a request" + " context is active, such as in a view function." + ) + + app_ctx = _cv_app.get() + # Setup code below will run the generator to this point, so that the + # current contexts are recorded. The contexts must be pushed after, + # otherwise their ContextVar will record the wrong event loop during + # async view functions. + yield None # type: ignore[misc] + + # Push the app context first, so that the request context does not + # automatically create and push a different app context. + with app_ctx, req_ctx: + try: + yield from gen + finally: + # Clean up in case the user wrapped a WSGI iterator. + if hasattr(gen, "close"): + gen.close() + + # Execute the generator to the sentinel value. This ensures the context is + # preserved in the generator's state. Further iteration will push the + # context and yield from the original iterator. + wrapped_g = generator() + next(wrapped_g) + return wrapped_g + + +def make_response(*args: t.Any) -> Response: + """Sometimes it is necessary to set additional headers in a view. Because + views do not have to return response objects but can return a value that + is converted into a response object by Flask itself, it becomes tricky to + add headers to it. This function can be called instead of using a return + and you will get a response object which you can use to attach headers. + + If view looked like this and you want to add a new header:: + + def index(): + return render_template('index.html', foo=42) + + You can now do something like this:: + + def index(): + response = make_response(render_template('index.html', foo=42)) + response.headers['X-Parachutes'] = 'parachutes are cool' + return response + + This function accepts the very same arguments you can return from a + view function. This for example creates a response with a 404 error + code:: + + response = make_response(render_template('not_found.html'), 404) + + The other use case of this function is to force the return value of a + view function into a response which is helpful with view + decorators:: + + response = make_response(view_function()) + response.headers['X-Parachutes'] = 'parachutes are cool' + + Internally this function does the following things: + + - if no arguments are passed, it creates a new response argument + - if one argument is passed, :meth:`flask.Flask.make_response` + is invoked with it. + - if more than one argument is passed, the arguments are passed + to the :meth:`flask.Flask.make_response` function as tuple. + + .. versionadded:: 0.6 + """ + if not args: + return current_app.response_class() + if len(args) == 1: + args = args[0] + return current_app.make_response(args) + + +def url_for( + endpoint: str, + *, + _anchor: str | None = None, + _method: str | None = None, + _scheme: str | None = None, + _external: bool | None = None, + **values: t.Any, +) -> str: + """Generate a URL to the given endpoint with the given values. + + This requires an active request or application context, and calls + :meth:`current_app.url_for() `. See that method + for full documentation. + + :param endpoint: The endpoint name associated with the URL to + generate. If this starts with a ``.``, the current blueprint + name (if any) will be used. + :param _anchor: If given, append this as ``#anchor`` to the URL. + :param _method: If given, generate the URL associated with this + method for the endpoint. + :param _scheme: If given, the URL will have this scheme if it is + external. + :param _external: If given, prefer the URL to be internal (False) or + require it to be external (True). External URLs include the + scheme and domain. When not in an active request, URLs are + external by default. + :param values: Values to use for the variable parts of the URL rule. + Unknown keys are appended as query string arguments, like + ``?a=b&c=d``. + + .. versionchanged:: 2.2 + Calls ``current_app.url_for``, allowing an app to override the + behavior. + + .. versionchanged:: 0.10 + The ``_scheme`` parameter was added. + + .. versionchanged:: 0.9 + The ``_anchor`` and ``_method`` parameters were added. + + .. versionchanged:: 0.9 + Calls ``app.handle_url_build_error`` on build errors. + """ + return current_app.url_for( + endpoint, + _anchor=_anchor, + _method=_method, + _scheme=_scheme, + _external=_external, + **values, + ) + + +def redirect( + location: str, code: int = 302, Response: type[BaseResponse] | None = None +) -> BaseResponse: + """Create a redirect response object. + + If :data:`~flask.current_app` is available, it will use its + :meth:`~flask.Flask.redirect` method, otherwise it will use + :func:`werkzeug.utils.redirect`. + + :param location: The URL to redirect to. + :param code: The status code for the redirect. + :param Response: The response class to use. Not used when + ``current_app`` is active, which uses ``app.response_class``. + + .. versionadded:: 2.2 + Calls ``current_app.redirect`` if available instead of always + using Werkzeug's default ``redirect``. + """ + if current_app: + return current_app.redirect(location, code=code) + + return _wz_redirect(location, code=code, Response=Response) + + +def abort(code: int | BaseResponse, *args: t.Any, **kwargs: t.Any) -> t.NoReturn: + """Raise an :exc:`~werkzeug.exceptions.HTTPException` for the given + status code. + + If :data:`~flask.current_app` is available, it will call its + :attr:`~flask.Flask.aborter` object, otherwise it will use + :func:`werkzeug.exceptions.abort`. + + :param code: The status code for the exception, which must be + registered in ``app.aborter``. + :param args: Passed to the exception. + :param kwargs: Passed to the exception. + + .. versionadded:: 2.2 + Calls ``current_app.aborter`` if available instead of always + using Werkzeug's default ``abort``. + """ + if current_app: + current_app.aborter(code, *args, **kwargs) + + _wz_abort(code, *args, **kwargs) + + +def get_template_attribute(template_name: str, attribute: str) -> t.Any: + """Loads a macro (or variable) a template exports. This can be used to + invoke a macro from within Python code. If you for example have a + template named :file:`_cider.html` with the following contents: + + .. sourcecode:: html+jinja + + {% macro hello(name) %}Hello {{ name }}!{% endmacro %} + + You can access this from Python code like this:: + + hello = get_template_attribute('_cider.html', 'hello') + return hello('World') + + .. versionadded:: 0.2 + + :param template_name: the name of the template + :param attribute: the name of the variable of macro to access + """ + return getattr(current_app.jinja_env.get_template(template_name).module, attribute) + + +def flash(message: str, category: str = "message") -> None: + """Flashes a message to the next request. In order to remove the + flashed message from the session and to display it to the user, + the template has to call :func:`get_flashed_messages`. + + .. versionchanged:: 0.3 + `category` parameter added. + + :param message: the message to be flashed. + :param category: the category for the message. The following values + are recommended: ``'message'`` for any kind of message, + ``'error'`` for errors, ``'info'`` for information + messages and ``'warning'`` for warnings. However any + kind of string can be used as category. + """ + # Original implementation: + # + # session.setdefault('_flashes', []).append((category, message)) + # + # This assumed that changes made to mutable structures in the session are + # always in sync with the session object, which is not true for session + # implementations that use external storage for keeping their keys/values. + flashes = session.get("_flashes", []) + flashes.append((category, message)) + session["_flashes"] = flashes + app = current_app._get_current_object() # type: ignore + message_flashed.send( + app, + _async_wrapper=app.ensure_sync, + message=message, + category=category, + ) + + +def get_flashed_messages( + with_categories: bool = False, category_filter: t.Iterable[str] = () +) -> list[str] | list[tuple[str, str]]: + """Pulls all flashed messages from the session and returns them. + Further calls in the same request to the function will return + the same messages. By default just the messages are returned, + but when `with_categories` is set to ``True``, the return value will + be a list of tuples in the form ``(category, message)`` instead. + + Filter the flashed messages to one or more categories by providing those + categories in `category_filter`. This allows rendering categories in + separate html blocks. The `with_categories` and `category_filter` + arguments are distinct: + + * `with_categories` controls whether categories are returned with message + text (``True`` gives a tuple, where ``False`` gives just the message text). + * `category_filter` filters the messages down to only those matching the + provided categories. + + See :doc:`/patterns/flashing` for examples. + + .. versionchanged:: 0.3 + `with_categories` parameter added. + + .. versionchanged:: 0.9 + `category_filter` parameter added. + + :param with_categories: set to ``True`` to also receive categories. + :param category_filter: filter of categories to limit return values. Only + categories in the list will be returned. + """ + flashes = request_ctx.flashes + if flashes is None: + flashes = session.pop("_flashes") if "_flashes" in session else [] + request_ctx.flashes = flashes + if category_filter: + flashes = list(filter(lambda f: f[0] in category_filter, flashes)) + if not with_categories: + return [x[1] for x in flashes] + return flashes + + +def _prepare_send_file_kwargs(**kwargs: t.Any) -> dict[str, t.Any]: + if kwargs.get("max_age") is None: + kwargs["max_age"] = current_app.get_send_file_max_age + + kwargs.update( + environ=request.environ, + use_x_sendfile=current_app.config["USE_X_SENDFILE"], + response_class=current_app.response_class, + _root_path=current_app.root_path, + ) + return kwargs + + +def send_file( + path_or_file: os.PathLike[t.AnyStr] | str | t.IO[bytes], + mimetype: str | None = None, + as_attachment: bool = False, + download_name: str | None = None, + conditional: bool = True, + etag: bool | str = True, + last_modified: datetime | int | float | None = None, + max_age: None | (int | t.Callable[[str | None], int | None]) = None, +) -> Response: + """Send the contents of a file to the client. + + The first argument can be a file path or a file-like object. Paths + are preferred in most cases because Werkzeug can manage the file and + get extra information from the path. Passing a file-like object + requires that the file is opened in binary mode, and is mostly + useful when building a file in memory with :class:`io.BytesIO`. + + Never pass file paths provided by a user. The path is assumed to be + trusted, so a user could craft a path to access a file you didn't + intend. Use :func:`send_from_directory` to safely serve + user-requested paths from within a directory. + + If the WSGI server sets a ``file_wrapper`` in ``environ``, it is + used, otherwise Werkzeug's built-in wrapper is used. Alternatively, + if the HTTP server supports ``X-Sendfile``, configuring Flask with + ``USE_X_SENDFILE = True`` will tell the server to send the given + path, which is much more efficient than reading it in Python. + + :param path_or_file: The path to the file to send, relative to the + current working directory if a relative path is given. + Alternatively, a file-like object opened in binary mode. Make + sure the file pointer is seeked to the start of the data. + :param mimetype: The MIME type to send for the file. If not + provided, it will try to detect it from the file name. + :param as_attachment: Indicate to a browser that it should offer to + save the file instead of displaying it. + :param download_name: The default name browsers will use when saving + the file. Defaults to the passed file name. + :param conditional: Enable conditional and range responses based on + request headers. Requires passing a file path and ``environ``. + :param etag: Calculate an ETag for the file, which requires passing + a file path. Can also be a string to use instead. + :param last_modified: The last modified time to send for the file, + in seconds. If not provided, it will try to detect it from the + file path. + :param max_age: How long the client should cache the file, in + seconds. If set, ``Cache-Control`` will be ``public``, otherwise + it will be ``no-cache`` to prefer conditional caching. + + .. versionchanged:: 2.0 + ``download_name`` replaces the ``attachment_filename`` + parameter. If ``as_attachment=False``, it is passed with + ``Content-Disposition: inline`` instead. + + .. versionchanged:: 2.0 + ``max_age`` replaces the ``cache_timeout`` parameter. + ``conditional`` is enabled and ``max_age`` is not set by + default. + + .. versionchanged:: 2.0 + ``etag`` replaces the ``add_etags`` parameter. It can be a + string to use instead of generating one. + + .. versionchanged:: 2.0 + Passing a file-like object that inherits from + :class:`~io.TextIOBase` will raise a :exc:`ValueError` rather + than sending an empty file. + + .. versionadded:: 2.0 + Moved the implementation to Werkzeug. This is now a wrapper to + pass some Flask-specific arguments. + + .. versionchanged:: 1.1 + ``filename`` may be a :class:`~os.PathLike` object. + + .. versionchanged:: 1.1 + Passing a :class:`~io.BytesIO` object supports range requests. + + .. versionchanged:: 1.0.3 + Filenames are encoded with ASCII instead of Latin-1 for broader + compatibility with WSGI servers. + + .. versionchanged:: 1.0 + UTF-8 filenames as specified in :rfc:`2231` are supported. + + .. versionchanged:: 0.12 + The filename is no longer automatically inferred from file + objects. If you want to use automatic MIME and etag support, + pass a filename via ``filename_or_fp`` or + ``attachment_filename``. + + .. versionchanged:: 0.12 + ``attachment_filename`` is preferred over ``filename`` for MIME + detection. + + .. versionchanged:: 0.9 + ``cache_timeout`` defaults to + :meth:`Flask.get_send_file_max_age`. + + .. versionchanged:: 0.7 + MIME guessing and etag support for file-like objects was + removed because it was unreliable. Pass a filename if you are + able to, otherwise attach an etag yourself. + + .. versionchanged:: 0.5 + The ``add_etags``, ``cache_timeout`` and ``conditional`` + parameters were added. The default behavior is to add etags. + + .. versionadded:: 0.2 + """ + return werkzeug.utils.send_file( # type: ignore[return-value] + **_prepare_send_file_kwargs( + path_or_file=path_or_file, + environ=request.environ, + mimetype=mimetype, + as_attachment=as_attachment, + download_name=download_name, + conditional=conditional, + etag=etag, + last_modified=last_modified, + max_age=max_age, + ) + ) + + +def send_from_directory( + directory: os.PathLike[str] | str, + path: os.PathLike[str] | str, + **kwargs: t.Any, +) -> Response: + """Send a file from within a directory using :func:`send_file`. + + .. code-block:: python + + @app.route("/uploads/") + def download_file(name): + return send_from_directory( + app.config['UPLOAD_FOLDER'], name, as_attachment=True + ) + + This is a secure way to serve files from a folder, such as static + files or uploads. Uses :func:`~werkzeug.security.safe_join` to + ensure the path coming from the client is not maliciously crafted to + point outside the specified directory. + + If the final path does not point to an existing regular file, + raises a 404 :exc:`~werkzeug.exceptions.NotFound` error. + + :param directory: The directory that ``path`` must be located under, + relative to the current application's root path. This *must not* + be a value provided by the client, otherwise it becomes insecure. + :param path: The path to the file to send, relative to + ``directory``. + :param kwargs: Arguments to pass to :func:`send_file`. + + .. versionchanged:: 2.0 + ``path`` replaces the ``filename`` parameter. + + .. versionadded:: 2.0 + Moved the implementation to Werkzeug. This is now a wrapper to + pass some Flask-specific arguments. + + .. versionadded:: 0.5 + """ + return werkzeug.utils.send_from_directory( # type: ignore[return-value] + directory, path, **_prepare_send_file_kwargs(**kwargs) + ) + + +def get_root_path(import_name: str) -> str: + """Find the root path of a package, or the path that contains a + module. If it cannot be found, returns the current working + directory. + + Not to be confused with the value returned by :func:`find_package`. + + :meta private: + """ + # Module already imported and has a file attribute. Use that first. + mod = sys.modules.get(import_name) + + if mod is not None and hasattr(mod, "__file__") and mod.__file__ is not None: + return os.path.dirname(os.path.abspath(mod.__file__)) + + # Next attempt: check the loader. + try: + spec = importlib.util.find_spec(import_name) + + if spec is None: + raise ValueError + except (ImportError, ValueError): + loader = None + else: + loader = spec.loader + + # Loader does not exist or we're referring to an unloaded main + # module or a main module without path (interactive sessions), go + # with the current working directory. + if loader is None: + return os.getcwd() + + if hasattr(loader, "get_filename"): + filepath = loader.get_filename(import_name) # pyright: ignore + else: + # Fall back to imports. + __import__(import_name) + mod = sys.modules[import_name] + filepath = getattr(mod, "__file__", None) + + # If we don't have a file path it might be because it is a + # namespace package. In this case pick the root path from the + # first module that is contained in the package. + if filepath is None: + raise RuntimeError( + "No root path can be found for the provided module" + f" {import_name!r}. This can happen because the module" + " came from an import hook that does not provide file" + " name information or because it's a namespace package." + " In this case the root path needs to be explicitly" + " provided." + ) + + # filepath is import_name.py for a module, or __init__.py for a package. + return os.path.dirname(os.path.abspath(filepath)) # type: ignore[no-any-return] + + +@cache +def _split_blueprint_path(name: str) -> list[str]: + out: list[str] = [name] + + if "." in name: + out.extend(_split_blueprint_path(name.rpartition(".")[0])) + + return out diff --git a/venv/lib/python3.10/site-packages/flask/json/__init__.py b/venv/lib/python3.10/site-packages/flask/json/__init__.py new file mode 100644 index 0000000..c0941d0 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/json/__init__.py @@ -0,0 +1,170 @@ +from __future__ import annotations + +import json as _json +import typing as t + +from ..globals import current_app +from .provider import _default + +if t.TYPE_CHECKING: # pragma: no cover + from ..wrappers import Response + + +def dumps(obj: t.Any, **kwargs: t.Any) -> str: + """Serialize data as JSON. + + If :data:`~flask.current_app` is available, it will use its + :meth:`app.json.dumps() ` + method, otherwise it will use :func:`json.dumps`. + + :param obj: The data to serialize. + :param kwargs: Arguments passed to the ``dumps`` implementation. + + .. versionchanged:: 2.3 + The ``app`` parameter was removed. + + .. versionchanged:: 2.2 + Calls ``current_app.json.dumps``, allowing an app to override + the behavior. + + .. versionchanged:: 2.0.2 + :class:`decimal.Decimal` is supported by converting to a string. + + .. versionchanged:: 2.0 + ``encoding`` will be removed in Flask 2.1. + + .. versionchanged:: 1.0.3 + ``app`` can be passed directly, rather than requiring an app + context for configuration. + """ + if current_app: + return current_app.json.dumps(obj, **kwargs) + + kwargs.setdefault("default", _default) + return _json.dumps(obj, **kwargs) + + +def dump(obj: t.Any, fp: t.IO[str], **kwargs: t.Any) -> None: + """Serialize data as JSON and write to a file. + + If :data:`~flask.current_app` is available, it will use its + :meth:`app.json.dump() ` + method, otherwise it will use :func:`json.dump`. + + :param obj: The data to serialize. + :param fp: A file opened for writing text. Should use the UTF-8 + encoding to be valid JSON. + :param kwargs: Arguments passed to the ``dump`` implementation. + + .. versionchanged:: 2.3 + The ``app`` parameter was removed. + + .. versionchanged:: 2.2 + Calls ``current_app.json.dump``, allowing an app to override + the behavior. + + .. versionchanged:: 2.0 + Writing to a binary file, and the ``encoding`` argument, will be + removed in Flask 2.1. + """ + if current_app: + current_app.json.dump(obj, fp, **kwargs) + else: + kwargs.setdefault("default", _default) + _json.dump(obj, fp, **kwargs) + + +def loads(s: str | bytes, **kwargs: t.Any) -> t.Any: + """Deserialize data as JSON. + + If :data:`~flask.current_app` is available, it will use its + :meth:`app.json.loads() ` + method, otherwise it will use :func:`json.loads`. + + :param s: Text or UTF-8 bytes. + :param kwargs: Arguments passed to the ``loads`` implementation. + + .. versionchanged:: 2.3 + The ``app`` parameter was removed. + + .. versionchanged:: 2.2 + Calls ``current_app.json.loads``, allowing an app to override + the behavior. + + .. versionchanged:: 2.0 + ``encoding`` will be removed in Flask 2.1. The data must be a + string or UTF-8 bytes. + + .. versionchanged:: 1.0.3 + ``app`` can be passed directly, rather than requiring an app + context for configuration. + """ + if current_app: + return current_app.json.loads(s, **kwargs) + + return _json.loads(s, **kwargs) + + +def load(fp: t.IO[t.AnyStr], **kwargs: t.Any) -> t.Any: + """Deserialize data as JSON read from a file. + + If :data:`~flask.current_app` is available, it will use its + :meth:`app.json.load() ` + method, otherwise it will use :func:`json.load`. + + :param fp: A file opened for reading text or UTF-8 bytes. + :param kwargs: Arguments passed to the ``load`` implementation. + + .. versionchanged:: 2.3 + The ``app`` parameter was removed. + + .. versionchanged:: 2.2 + Calls ``current_app.json.load``, allowing an app to override + the behavior. + + .. versionchanged:: 2.2 + The ``app`` parameter will be removed in Flask 2.3. + + .. versionchanged:: 2.0 + ``encoding`` will be removed in Flask 2.1. The file must be text + mode, or binary mode with UTF-8 bytes. + """ + if current_app: + return current_app.json.load(fp, **kwargs) + + return _json.load(fp, **kwargs) + + +def jsonify(*args: t.Any, **kwargs: t.Any) -> Response: + """Serialize the given arguments as JSON, and return a + :class:`~flask.Response` object with the ``application/json`` + mimetype. A dict or list returned from a view will be converted to a + JSON response automatically without needing to call this. + + This requires an active request or application context, and calls + :meth:`app.json.response() `. + + In debug mode, the output is formatted with indentation to make it + easier to read. This may also be controlled by the provider. + + Either positional or keyword arguments can be given, not both. + If no arguments are given, ``None`` is serialized. + + :param args: A single value to serialize, or multiple values to + treat as a list to serialize. + :param kwargs: Treat as a dict to serialize. + + .. versionchanged:: 2.2 + Calls ``current_app.json.response``, allowing an app to override + the behavior. + + .. versionchanged:: 2.0.2 + :class:`decimal.Decimal` is supported by converting to a string. + + .. versionchanged:: 0.11 + Added support for serializing top-level arrays. This was a + security risk in ancient browsers. See :ref:`security-json`. + + .. versionadded:: 0.2 + """ + return current_app.json.response(*args, **kwargs) # type: ignore[return-value] diff --git a/venv/lib/python3.10/site-packages/flask/json/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/json/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..01d3d7f875c56e454fb21eb9055a742a88ae9f5f GIT binary patch literal 5999 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 OrT%gKLH(oE2mc3G^vNXv literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/json/__pycache__/provider.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/json/__pycache__/provider.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fe5bfee8ddcfc576e992f994fe469863261c3cd5 GIT binary patch literal 7691 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 RO8?cgLg`vBRPP>J`WG@96BYmf literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/json/__pycache__/tag.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/json/__pycache__/tag.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ac9d62b2e738efbe26c769fd4bc0b34d45c4aa39 GIT binary patch literal 11649 zcmbtaO>7)TcAoC};c!R}fAnMhS}m`=(s-$%?e%)SjBH4j?2TfZc1$@=Myt#;r<&x5 zJ=1h`4=GM4BUpKn1jr%?76_08i%19%K!+Ry1jr$W06}udAwYltonuZu>yikYIN$fG zduB)uEjv3>7puCetLnY?z4xl$>tJfCl)>-CvEON3eLj=S;Z_dxR3$=pW%cDM48ld$u+!^(oZnYI9cRhZ$8?)1PP5^nJT_1g#l0i`J}n z|=H#(80SKX%9aJm@hMC+}v z6b1doJlyfnk{KN3M((_`(v6%}Ed+K_t88xa7|AdYT zIu{~m-QAK&1CAi|+`+sP2ISs4gdz*ILTB4^wp+gMsBU{xnAwWFcIdeH@A$0{tXOp# zjawVu&b+hb`d#mKqfy#)TN*rE?yd+=`VvjZY=9i)thKNO2!ayoc-s!9z)TmMKwW4w z!0b{>0ZFaZ9T`DhSDl+f(o6wGq3HlZBLI}pxQgW?p{CWru)!LUyXJs)AX>1VYW4#b~lVlz(Kl*0w}<74&-W$MpeYw43u|i#SfYri;K?YPP86$N+M4z z)OHM%?}S08%00B&0;5#yGS09HC>UD)Vltw#C_@OMdOh@mD6H3=H=K(X228jxU+Iq_ zE8lR0m1YloP8Hoc1?(|KoTPnEq>MnRoq zJ$=$!w>BUWEDen|rohu=#>K75Z7~(--Xau%FfAxEi&t(RSkSQd=}QjnI+@E%5&zWue|oE@(2cW zvf*`-MiJ)6i&||DqjDdAeB(O)7T$ODMt76Xtw+&jokP%o0_o6`))%%}CrZ70`K04~LxL_a}=azzw*Ccb&AM3oX zkqbNn>{`2-Iyiv6+r7#)?SZ+lTG-wiYzFsD)u$Qi3>=28F6kq9xMIgSf>rkND5KBd z-jkaP>p|OFxD&qe@(&hZ5AMLwh6^n}xYTw#E@oZ8Tw4o%Yh}Se^t;uUUs?zO=1cI8 z8yFETh$X-jL1zIwsc!DX#X3OPit6>Zu|`M|N_KB1;dM3bjPs(3Px4XqYG)_TtptI8 zfPNflg#O1oR$l1NAlnUuNbi4XFJcF&SUJE)~slEPC zY^W2gkjr$w@PTQAE)e^4>2g};^dQ))_Dvu?1;{YY3lzd(!iD>QfUfFqao;bn*hj%w zV$I%1-(yN5m+eibG$egbrDA263O>C5T(kl#kRZaZ8E7r^_5B-m-KRoauj>Q4N=_@< zYX@7N`U(ohu}g!!k4WD|6usFY3QXUV8M>}pP`G(V@O1kCRYZ`e(hMrQnLD^1Si9Ck zt3`#fddtI98az=(`z0c-9?TbFDG;pLZNkfVeIi{Qba5VNMb(O}pW&`AuoxwuEN1uw zor15KY;U4ZnY*@B$%(S+6MXt4i&H2buc*op@oYSH(_Q1CvG)iSF_1k|oav*sC*T*{Y_G#; zE4*u%lLUN^QGH=yFN@jtOOjGQ0CMu_8vO<39KmBm)_prT8ri$neM?yztY@PfTle8j z?&R+jwlef5OJC5`R>tDe;H(tqNK>5ky-u9#;I$#n@hD@wSq_{CM`2oku!hORXF;%* z{pFl(|4(l!;ePd??c}!cN@liBAVrx7y2(x6vv=)3htvDHjqTbGvT%a-$xNcP_EK!u z>p=M;p3%R;g05D;_b5AL*hLEmXcQn4s~ub+EyJXB%IZz0I~-*hxyL?x9W?gtQDKii z!OqP7#HN6$|NG^aU&06sw)Z9;98wF}i0BLMCmT6x^=5}QVhr4pp68R7P&^vfRn`|+ zyu{*V7O$`nI`?Vffb4-1eh-6h;|j|tid4cv&VsDQ$~n!xCayg{QhtRBNCUh_0Vh;J zjX}wBP&T82c`pw&ECE(iaq&aE`cmf%(fh2?S7P`v&pauHmoty7C2;clxTjxdF~Xb* z^m^zNS68xn<#hECn4>pLWNL-S(fGa0DpW+-pBHzn2bqVN>zVuX4B4e7RU`fJkpeE9 zsjQHOuLVbPd*Vm-Jwny`eK;1l75ky}Gy79}*~l7aj3HRYcJ-y$+K8>KN0xzTUoLU! zGF6V@hc|y0bBkMeHq(2)Pe+2x>Ser`xqkR&b?^Ys((;-y#F}?8iSDEQUOMIRY;R`& zl*0%c+mA2-*8o?C8uz!b!Zuf-?1(F1DqGBJ-ai~uoP7_bc)%~KF;xVv@;K6utCE=Z zX~vvT8&gw|%uHN_p4{x>KxfRP?L^|IlBLJ#j#UHWBZ7qTx#t~x~f}@{e zkm$n+;HbargE;CxU^I2Wg1s2}!*seit2eWMx&!`*bb-m%<02~5WvZ0nxTSv`_lB_A z-@T?m{3Bel?V{D28(!z2JuHqy>(@1fA7Y`OaIr}gVhRPc<*a7Up`g`Q(VH5$_rUCL zZr~2WFGnGaWC?ZePjDsZqw;dmr=U-N#7*wAV8d9`%bZgzlaq-N8lG&(2Q6gqM2%)Q`L1SdG_ehHB)vE-@P%veQV-XKjf` zh3=|XHP1Gjs~_G#U_egYh#K<=*JFUAf)64A$)~3$4?wsGWWA`P{CmsuXTnB zM0<)jANcNy@5N(l9s+ui9w|;@^lxwpSZ2%_*l_A;Fr~dDOdnVe<)oB4Ql6!>VlfIn z1n1x4lJzFdQ8!ud8=!Oiu<41;zhkGM^GF{uRZM;mo>w?>6g&yWzs5Bcq_ORg*E%RKVS@C1B2SjkBQGb1>2LpCkE6`TYYs-$o(tSX}lH+3_ID z`NIM#yVf1N`X$ad&aQiRM=n5t{Ua_BSit~9miPwZ8pHD=C#SgnnVljozV@V39~9Q1 zwqy+x{5>ZTTf$Zo*PdS%tt&&~nZQcd5j(qy@O3I8^-GF~JRM0SMf9)i6cNe0U9$8c zVj5wNCk~sO;`ujr_5q*LMaVNOd+4ET$l6aGHa!LO@BQhI4Y6&sMja}o7AE-@P9#EN z>wu7m@he1Ugv$Q+0Wa?ryfLrnje8|;!kb(x)~3`sl~)D450uBp#*57JO87rtn^w;y zLH`-`tt99_i+ju@=W286c_anSpms#Ppw6miQ9G)Nc%%5X#M<0l=toU zLa^ZuQYmd(`Xo<`fKfkFoP>0lx^*LQ4=z$`NU2ChQi8h3B=Y=*@DQ?&bTN{$X?v>0 zfPNYRLP#GuLng6O2hxf{<#rI254ubqr#UC)>p1KtW?DtEG}xw3L%2p`yUaj4+(D9C z^%Rn|9Q|T{TE1~M_T7`$p#3-HptJwx2oJk&uFtyNma0;(4?LS@kg93LjKCr1G9VD= z17>pvq0c=p;#3kwZp5BZ#rPs#mlvlxLtFOs%6KKII;EiF@%6-{83;j5d8R};| z-dT#ru|{3;Oi!jLn_Ee|_ja5|{-){a^IS47S-B@A;KJE;Br!xv(;p2@pK>}{CWa6x z%kAdwWbWm6^ZM+r9iG_DgA3MHMxTgmW$oq>MYDg7qr#7^-5h&%kviMWs%$r-D`;mQ z;Cb?i-$+P1znjG!enrBsCUWk_VEIQ$BGGXr#|?5!j8oDq1L!7@B+wR-`*Wc!DdCHv zLnhY-6-wD%bv|KQ9+?euc8aJBNdQ&8g5X@~Z?I4@y6FuvCCP%q&qW961-;GmE7L9B zUA!~N84+Pz=f28ev77RIY!SEbIskfS; zUA@WTQx+1kl9<35Hl+|<_R-A1;7dNDc%*=QMA@2wMi=cFYtBAIr&D4FXNEm)mgkMW zie5wm3Wb2;?J~pJCheqWQA5P=p=D$F<;^-i^t6^58h4C%!UVZ}Mr4FmSk&Ozr%JHvGh)t3>hM~d(S84jX>%$0{JHUU_$vcEL)a7#vaxg%!lDgg8HD}?kx`JA5HXdx-rnL zwHC54CR?gs!v-pO{R8|N3c3?D5>(P7!tZgui|@PEDr5s+X(sKQHEEYn9<_U?MlwPk z*uw=nBg!0?6*6!^E-?3^pBWDRJ+Mt!nQ=Yimf)bsBaY5t^b0aNt8xrNGgN5$EBUVo zLQ|#^gf0z&&<`^EL(urLqb~cdhxiUm{}2!D5A?i;d#{rXq~=Vf_v%REhh`ZSg+Ab; z`O+%Ea=sTzSQB0uD?!0Fb^xU`!YyPx8;qIs6o< zf=agcU2t5?u*pBujLLUv{HlybAUSWEqa-4QaAn9bKe6VYSc?e%PA?1+ z7_A@BCqxQ;?7f;Y6=rTU(&Zza!wDg8Kt__RlSq}-yZRnJ=#g&|`Au3I+m>$z%yz{! z3dB-h>&S>vR}`#7`1tJyq#{oeAwpY!y?RelGB_*QL*1ysuYc92zXQ6 z!+F-kM`+giqb1pvX3%N(OqYXNdY5%`mjX}kvOYBS*#7YJ%j|!J1ygO38+)R0{{D1HKS2X|t literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/json/provider.py b/venv/lib/python3.10/site-packages/flask/json/provider.py new file mode 100644 index 0000000..ea7e475 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/json/provider.py @@ -0,0 +1,215 @@ +from __future__ import annotations + +import dataclasses +import decimal +import json +import typing as t +import uuid +import weakref +from datetime import date + +from werkzeug.http import http_date + +if t.TYPE_CHECKING: # pragma: no cover + from werkzeug.sansio.response import Response + + from ..sansio.app import App + + +class JSONProvider: + """A standard set of JSON operations for an application. Subclasses + of this can be used to customize JSON behavior or use different + JSON libraries. + + To implement a provider for a specific library, subclass this base + class and implement at least :meth:`dumps` and :meth:`loads`. All + other methods have default implementations. + + To use a different provider, either subclass ``Flask`` and set + :attr:`~flask.Flask.json_provider_class` to a provider class, or set + :attr:`app.json ` to an instance of the class. + + :param app: An application instance. This will be stored as a + :class:`weakref.proxy` on the :attr:`_app` attribute. + + .. versionadded:: 2.2 + """ + + def __init__(self, app: App) -> None: + self._app: App = weakref.proxy(app) + + def dumps(self, obj: t.Any, **kwargs: t.Any) -> str: + """Serialize data as JSON. + + :param obj: The data to serialize. + :param kwargs: May be passed to the underlying JSON library. + """ + raise NotImplementedError + + def dump(self, obj: t.Any, fp: t.IO[str], **kwargs: t.Any) -> None: + """Serialize data as JSON and write to a file. + + :param obj: The data to serialize. + :param fp: A file opened for writing text. Should use the UTF-8 + encoding to be valid JSON. + :param kwargs: May be passed to the underlying JSON library. + """ + fp.write(self.dumps(obj, **kwargs)) + + def loads(self, s: str | bytes, **kwargs: t.Any) -> t.Any: + """Deserialize data as JSON. + + :param s: Text or UTF-8 bytes. + :param kwargs: May be passed to the underlying JSON library. + """ + raise NotImplementedError + + def load(self, fp: t.IO[t.AnyStr], **kwargs: t.Any) -> t.Any: + """Deserialize data as JSON read from a file. + + :param fp: A file opened for reading text or UTF-8 bytes. + :param kwargs: May be passed to the underlying JSON library. + """ + return self.loads(fp.read(), **kwargs) + + def _prepare_response_obj( + self, args: tuple[t.Any, ...], kwargs: dict[str, t.Any] + ) -> t.Any: + if args and kwargs: + raise TypeError("app.json.response() takes either args or kwargs, not both") + + if not args and not kwargs: + return None + + if len(args) == 1: + return args[0] + + return args or kwargs + + def response(self, *args: t.Any, **kwargs: t.Any) -> Response: + """Serialize the given arguments as JSON, and return a + :class:`~flask.Response` object with the ``application/json`` + mimetype. + + The :func:`~flask.json.jsonify` function calls this method for + the current application. + + Either positional or keyword arguments can be given, not both. + If no arguments are given, ``None`` is serialized. + + :param args: A single value to serialize, or multiple values to + treat as a list to serialize. + :param kwargs: Treat as a dict to serialize. + """ + obj = self._prepare_response_obj(args, kwargs) + return self._app.response_class(self.dumps(obj), mimetype="application/json") + + +def _default(o: t.Any) -> t.Any: + if isinstance(o, date): + return http_date(o) + + if isinstance(o, (decimal.Decimal, uuid.UUID)): + return str(o) + + if dataclasses and dataclasses.is_dataclass(o): + return dataclasses.asdict(o) # type: ignore[arg-type] + + if hasattr(o, "__html__"): + return str(o.__html__()) + + raise TypeError(f"Object of type {type(o).__name__} is not JSON serializable") + + +class DefaultJSONProvider(JSONProvider): + """Provide JSON operations using Python's built-in :mod:`json` + library. Serializes the following additional data types: + + - :class:`datetime.datetime` and :class:`datetime.date` are + serialized to :rfc:`822` strings. This is the same as the HTTP + date format. + - :class:`uuid.UUID` is serialized to a string. + - :class:`dataclasses.dataclass` is passed to + :func:`dataclasses.asdict`. + - :class:`~markupsafe.Markup` (or any object with a ``__html__`` + method) will call the ``__html__`` method to get a string. + """ + + default: t.Callable[[t.Any], t.Any] = staticmethod(_default) # type: ignore[assignment] + """Apply this function to any object that :meth:`json.dumps` does + not know how to serialize. It should return a valid JSON type or + raise a ``TypeError``. + """ + + ensure_ascii = True + """Replace non-ASCII characters with escape sequences. This may be + more compatible with some clients, but can be disabled for better + performance and size. + """ + + sort_keys = True + """Sort the keys in any serialized dicts. This may be useful for + some caching situations, but can be disabled for better performance. + When enabled, keys must all be strings, they are not converted + before sorting. + """ + + compact: bool | None = None + """If ``True``, or ``None`` out of debug mode, the :meth:`response` + output will not add indentation, newlines, or spaces. If ``False``, + or ``None`` in debug mode, it will use a non-compact representation. + """ + + mimetype = "application/json" + """The mimetype set in :meth:`response`.""" + + def dumps(self, obj: t.Any, **kwargs: t.Any) -> str: + """Serialize data as JSON to a string. + + Keyword arguments are passed to :func:`json.dumps`. Sets some + parameter defaults from the :attr:`default`, + :attr:`ensure_ascii`, and :attr:`sort_keys` attributes. + + :param obj: The data to serialize. + :param kwargs: Passed to :func:`json.dumps`. + """ + kwargs.setdefault("default", self.default) + kwargs.setdefault("ensure_ascii", self.ensure_ascii) + kwargs.setdefault("sort_keys", self.sort_keys) + return json.dumps(obj, **kwargs) + + def loads(self, s: str | bytes, **kwargs: t.Any) -> t.Any: + """Deserialize data as JSON from a string or bytes. + + :param s: Text or UTF-8 bytes. + :param kwargs: Passed to :func:`json.loads`. + """ + return json.loads(s, **kwargs) + + def response(self, *args: t.Any, **kwargs: t.Any) -> Response: + """Serialize the given arguments as JSON, and return a + :class:`~flask.Response` object with it. The response mimetype + will be "application/json" and can be changed with + :attr:`mimetype`. + + If :attr:`compact` is ``False`` or debug mode is enabled, the + output will be formatted to be easier to read. + + Either positional or keyword arguments can be given, not both. + If no arguments are given, ``None`` is serialized. + + :param args: A single value to serialize, or multiple values to + treat as a list to serialize. + :param kwargs: Treat as a dict to serialize. + """ + obj = self._prepare_response_obj(args, kwargs) + dump_args: dict[str, t.Any] = {} + + if (self.compact is None and self._app.debug) or self.compact is False: + dump_args.setdefault("indent", 2) + else: + dump_args.setdefault("separators", (",", ":")) + + return self._app.response_class( + f"{self.dumps(obj, **dump_args)}\n", mimetype=self.mimetype + ) diff --git a/venv/lib/python3.10/site-packages/flask/json/tag.py b/venv/lib/python3.10/site-packages/flask/json/tag.py new file mode 100644 index 0000000..8dc3629 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/json/tag.py @@ -0,0 +1,327 @@ +""" +Tagged JSON +~~~~~~~~~~~ + +A compact representation for lossless serialization of non-standard JSON +types. :class:`~flask.sessions.SecureCookieSessionInterface` uses this +to serialize the session data, but it may be useful in other places. It +can be extended to support other types. + +.. autoclass:: TaggedJSONSerializer + :members: + +.. autoclass:: JSONTag + :members: + +Let's see an example that adds support for +:class:`~collections.OrderedDict`. Dicts don't have an order in JSON, so +to handle this we will dump the items as a list of ``[key, value]`` +pairs. Subclass :class:`JSONTag` and give it the new key ``' od'`` to +identify the type. The session serializer processes dicts first, so +insert the new tag at the front of the order since ``OrderedDict`` must +be processed before ``dict``. + +.. code-block:: python + + from flask.json.tag import JSONTag + + class TagOrderedDict(JSONTag): + __slots__ = ('serializer',) + key = ' od' + + def check(self, value): + return isinstance(value, OrderedDict) + + def to_json(self, value): + return [[k, self.serializer.tag(v)] for k, v in iteritems(value)] + + def to_python(self, value): + return OrderedDict(value) + + app.session_interface.serializer.register(TagOrderedDict, index=0) +""" + +from __future__ import annotations + +import typing as t +from base64 import b64decode +from base64 import b64encode +from datetime import datetime +from uuid import UUID + +from markupsafe import Markup +from werkzeug.http import http_date +from werkzeug.http import parse_date + +from ..json import dumps +from ..json import loads + + +class JSONTag: + """Base class for defining type tags for :class:`TaggedJSONSerializer`.""" + + __slots__ = ("serializer",) + + #: The tag to mark the serialized object with. If empty, this tag is + #: only used as an intermediate step during tagging. + key: str = "" + + def __init__(self, serializer: TaggedJSONSerializer) -> None: + """Create a tagger for the given serializer.""" + self.serializer = serializer + + def check(self, value: t.Any) -> bool: + """Check if the given value should be tagged by this tag.""" + raise NotImplementedError + + def to_json(self, value: t.Any) -> t.Any: + """Convert the Python object to an object that is a valid JSON type. + The tag will be added later.""" + raise NotImplementedError + + def to_python(self, value: t.Any) -> t.Any: + """Convert the JSON representation back to the correct type. The tag + will already be removed.""" + raise NotImplementedError + + def tag(self, value: t.Any) -> dict[str, t.Any]: + """Convert the value to a valid JSON type and add the tag structure + around it.""" + return {self.key: self.to_json(value)} + + +class TagDict(JSONTag): + """Tag for 1-item dicts whose only key matches a registered tag. + + Internally, the dict key is suffixed with `__`, and the suffix is removed + when deserializing. + """ + + __slots__ = () + key = " di" + + def check(self, value: t.Any) -> bool: + return ( + isinstance(value, dict) + and len(value) == 1 + and next(iter(value)) in self.serializer.tags + ) + + def to_json(self, value: t.Any) -> t.Any: + key = next(iter(value)) + return {f"{key}__": self.serializer.tag(value[key])} + + def to_python(self, value: t.Any) -> t.Any: + key = next(iter(value)) + return {key[:-2]: value[key]} + + +class PassDict(JSONTag): + __slots__ = () + + def check(self, value: t.Any) -> bool: + return isinstance(value, dict) + + def to_json(self, value: t.Any) -> t.Any: + # JSON objects may only have string keys, so don't bother tagging the + # key here. + return {k: self.serializer.tag(v) for k, v in value.items()} + + tag = to_json + + +class TagTuple(JSONTag): + __slots__ = () + key = " t" + + def check(self, value: t.Any) -> bool: + return isinstance(value, tuple) + + def to_json(self, value: t.Any) -> t.Any: + return [self.serializer.tag(item) for item in value] + + def to_python(self, value: t.Any) -> t.Any: + return tuple(value) + + +class PassList(JSONTag): + __slots__ = () + + def check(self, value: t.Any) -> bool: + return isinstance(value, list) + + def to_json(self, value: t.Any) -> t.Any: + return [self.serializer.tag(item) for item in value] + + tag = to_json + + +class TagBytes(JSONTag): + __slots__ = () + key = " b" + + def check(self, value: t.Any) -> bool: + return isinstance(value, bytes) + + def to_json(self, value: t.Any) -> t.Any: + return b64encode(value).decode("ascii") + + def to_python(self, value: t.Any) -> t.Any: + return b64decode(value) + + +class TagMarkup(JSONTag): + """Serialize anything matching the :class:`~markupsafe.Markup` API by + having a ``__html__`` method to the result of that method. Always + deserializes to an instance of :class:`~markupsafe.Markup`.""" + + __slots__ = () + key = " m" + + def check(self, value: t.Any) -> bool: + return callable(getattr(value, "__html__", None)) + + def to_json(self, value: t.Any) -> t.Any: + return str(value.__html__()) + + def to_python(self, value: t.Any) -> t.Any: + return Markup(value) + + +class TagUUID(JSONTag): + __slots__ = () + key = " u" + + def check(self, value: t.Any) -> bool: + return isinstance(value, UUID) + + def to_json(self, value: t.Any) -> t.Any: + return value.hex + + def to_python(self, value: t.Any) -> t.Any: + return UUID(value) + + +class TagDateTime(JSONTag): + __slots__ = () + key = " d" + + def check(self, value: t.Any) -> bool: + return isinstance(value, datetime) + + def to_json(self, value: t.Any) -> t.Any: + return http_date(value) + + def to_python(self, value: t.Any) -> t.Any: + return parse_date(value) + + +class TaggedJSONSerializer: + """Serializer that uses a tag system to compactly represent objects that + are not JSON types. Passed as the intermediate serializer to + :class:`itsdangerous.Serializer`. + + The following extra types are supported: + + * :class:`dict` + * :class:`tuple` + * :class:`bytes` + * :class:`~markupsafe.Markup` + * :class:`~uuid.UUID` + * :class:`~datetime.datetime` + """ + + __slots__ = ("tags", "order") + + #: Tag classes to bind when creating the serializer. Other tags can be + #: added later using :meth:`~register`. + default_tags = [ + TagDict, + PassDict, + TagTuple, + PassList, + TagBytes, + TagMarkup, + TagUUID, + TagDateTime, + ] + + def __init__(self) -> None: + self.tags: dict[str, JSONTag] = {} + self.order: list[JSONTag] = [] + + for cls in self.default_tags: + self.register(cls) + + def register( + self, + tag_class: type[JSONTag], + force: bool = False, + index: int | None = None, + ) -> None: + """Register a new tag with this serializer. + + :param tag_class: tag class to register. Will be instantiated with this + serializer instance. + :param force: overwrite an existing tag. If false (default), a + :exc:`KeyError` is raised. + :param index: index to insert the new tag in the tag order. Useful when + the new tag is a special case of an existing tag. If ``None`` + (default), the tag is appended to the end of the order. + + :raise KeyError: if the tag key is already registered and ``force`` is + not true. + """ + tag = tag_class(self) + key = tag.key + + if key: + if not force and key in self.tags: + raise KeyError(f"Tag '{key}' is already registered.") + + self.tags[key] = tag + + if index is None: + self.order.append(tag) + else: + self.order.insert(index, tag) + + def tag(self, value: t.Any) -> t.Any: + """Convert a value to a tagged representation if necessary.""" + for tag in self.order: + if tag.check(value): + return tag.tag(value) + + return value + + def untag(self, value: dict[str, t.Any]) -> t.Any: + """Convert a tagged representation back to the original type.""" + if len(value) != 1: + return value + + key = next(iter(value)) + + if key not in self.tags: + return value + + return self.tags[key].to_python(value[key]) + + def _untag_scan(self, value: t.Any) -> t.Any: + if isinstance(value, dict): + # untag each item recursively + value = {k: self._untag_scan(v) for k, v in value.items()} + # untag the dict itself + value = self.untag(value) + elif isinstance(value, list): + # untag each item recursively + value = [self._untag_scan(item) for item in value] + + return value + + def dumps(self, value: t.Any) -> str: + """Tag the value and dump it to a compact JSON string.""" + return dumps(self.tag(value), separators=(",", ":")) + + def loads(self, value: str) -> t.Any: + """Load data from a JSON string and deserialized any tagged objects.""" + return self._untag_scan(loads(value)) diff --git a/venv/lib/python3.10/site-packages/flask/logging.py b/venv/lib/python3.10/site-packages/flask/logging.py new file mode 100644 index 0000000..0cb8f43 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/logging.py @@ -0,0 +1,79 @@ +from __future__ import annotations + +import logging +import sys +import typing as t + +from werkzeug.local import LocalProxy + +from .globals import request + +if t.TYPE_CHECKING: # pragma: no cover + from .sansio.app import App + + +@LocalProxy +def wsgi_errors_stream() -> t.TextIO: + """Find the most appropriate error stream for the application. If a request + is active, log to ``wsgi.errors``, otherwise use ``sys.stderr``. + + If you configure your own :class:`logging.StreamHandler`, you may want to + use this for the stream. If you are using file or dict configuration and + can't import this directly, you can refer to it as + ``ext://flask.logging.wsgi_errors_stream``. + """ + if request: + return request.environ["wsgi.errors"] # type: ignore[no-any-return] + + return sys.stderr + + +def has_level_handler(logger: logging.Logger) -> bool: + """Check if there is a handler in the logging chain that will handle the + given logger's :meth:`effective level <~logging.Logger.getEffectiveLevel>`. + """ + level = logger.getEffectiveLevel() + current = logger + + while current: + if any(handler.level <= level for handler in current.handlers): + return True + + if not current.propagate: + break + + current = current.parent # type: ignore + + return False + + +#: Log messages to :func:`~flask.logging.wsgi_errors_stream` with the format +#: ``[%(asctime)s] %(levelname)s in %(module)s: %(message)s``. +default_handler = logging.StreamHandler(wsgi_errors_stream) # type: ignore +default_handler.setFormatter( + logging.Formatter("[%(asctime)s] %(levelname)s in %(module)s: %(message)s") +) + + +def create_logger(app: App) -> logging.Logger: + """Get the Flask app's logger and configure it if needed. + + The logger name will be the same as + :attr:`app.import_name `. + + When :attr:`~flask.Flask.debug` is enabled, set the logger level to + :data:`logging.DEBUG` if it is not set. + + If there is no handler for the logger's effective level, add a + :class:`~logging.StreamHandler` for + :func:`~flask.logging.wsgi_errors_stream` with a basic format. + """ + logger = logging.getLogger(app.name) + + if app.debug and not logger.level: + logger.setLevel(logging.DEBUG) + + if not has_level_handler(logger): + logger.addHandler(default_handler) + + return logger diff --git a/venv/lib/python3.10/site-packages/flask/py.typed b/venv/lib/python3.10/site-packages/flask/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/flask/sansio/README.md b/venv/lib/python3.10/site-packages/flask/sansio/README.md new file mode 100644 index 0000000..623ac19 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/sansio/README.md @@ -0,0 +1,6 @@ +# Sansio + +This folder contains code that can be used by alternative Flask +implementations, for example Quart. The code therefore cannot do any +IO, nor be part of a likely IO path. Finally this code cannot use the +Flask globals. diff --git a/venv/lib/python3.10/site-packages/flask/sansio/__pycache__/app.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/sansio/__pycache__/app.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a7ac375ab4a386fe93588eaaafa7659d3a6cb2c7 GIT binary patch literal 28645 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 NC$i~MB|r7%{{za~x?TVP literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/sansio/__pycache__/scaffold.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask/sansio/__pycache__/scaffold.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b1d1ac988d7cd26b85c3730db33ddb3dc38dd1e3 GIT binary patch literal 23855 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask/sansio/app.py b/venv/lib/python3.10/site-packages/flask/sansio/app.py new file mode 100644 index 0000000..a2592fe --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/sansio/app.py @@ -0,0 +1,964 @@ +from __future__ import annotations + +import logging +import os +import sys +import typing as t +from datetime import timedelta +from itertools import chain + +from werkzeug.exceptions import Aborter +from werkzeug.exceptions import BadRequest +from werkzeug.exceptions import BadRequestKeyError +from werkzeug.routing import BuildError +from werkzeug.routing import Map +from werkzeug.routing import Rule +from werkzeug.sansio.response import Response +from werkzeug.utils import cached_property +from werkzeug.utils import redirect as _wz_redirect + +from .. import typing as ft +from ..config import Config +from ..config import ConfigAttribute +from ..ctx import _AppCtxGlobals +from ..helpers import _split_blueprint_path +from ..helpers import get_debug_flag +from ..json.provider import DefaultJSONProvider +from ..json.provider import JSONProvider +from ..logging import create_logger +from ..templating import DispatchingJinjaLoader +from ..templating import Environment +from .scaffold import _endpoint_from_view_func +from .scaffold import find_package +from .scaffold import Scaffold +from .scaffold import setupmethod + +if t.TYPE_CHECKING: # pragma: no cover + from werkzeug.wrappers import Response as BaseResponse + + from ..testing import FlaskClient + from ..testing import FlaskCliRunner + from .blueprints import Blueprint + +T_shell_context_processor = t.TypeVar( + "T_shell_context_processor", bound=ft.ShellContextProcessorCallable +) +T_teardown = t.TypeVar("T_teardown", bound=ft.TeardownCallable) +T_template_filter = t.TypeVar("T_template_filter", bound=ft.TemplateFilterCallable) +T_template_global = t.TypeVar("T_template_global", bound=ft.TemplateGlobalCallable) +T_template_test = t.TypeVar("T_template_test", bound=ft.TemplateTestCallable) + + +def _make_timedelta(value: timedelta | int | None) -> timedelta | None: + if value is None or isinstance(value, timedelta): + return value + + return timedelta(seconds=value) + + +class App(Scaffold): + """The flask object implements a WSGI application and acts as the central + object. It is passed the name of the module or package of the + application. Once it is created it will act as a central registry for + the view functions, the URL rules, template configuration and much more. + + The name of the package is used to resolve resources from inside the + package or the folder the module is contained in depending on if the + package parameter resolves to an actual python package (a folder with + an :file:`__init__.py` file inside) or a standard module (just a ``.py`` file). + + For more information about resource loading, see :func:`open_resource`. + + Usually you create a :class:`Flask` instance in your main module or + in the :file:`__init__.py` file of your package like this:: + + from flask import Flask + app = Flask(__name__) + + .. admonition:: About the First Parameter + + The idea of the first parameter is to give Flask an idea of what + belongs to your application. This name is used to find resources + on the filesystem, can be used by extensions to improve debugging + information and a lot more. + + So it's important what you provide there. If you are using a single + module, `__name__` is always the correct value. If you however are + using a package, it's usually recommended to hardcode the name of + your package there. + + For example if your application is defined in :file:`yourapplication/app.py` + you should create it with one of the two versions below:: + + app = Flask('yourapplication') + app = Flask(__name__.split('.')[0]) + + Why is that? The application will work even with `__name__`, thanks + to how resources are looked up. However it will make debugging more + painful. Certain extensions can make assumptions based on the + import name of your application. For example the Flask-SQLAlchemy + extension will look for the code in your application that triggered + an SQL query in debug mode. If the import name is not properly set + up, that debugging information is lost. (For example it would only + pick up SQL queries in `yourapplication.app` and not + `yourapplication.views.frontend`) + + .. versionadded:: 0.7 + The `static_url_path`, `static_folder`, and `template_folder` + parameters were added. + + .. versionadded:: 0.8 + The `instance_path` and `instance_relative_config` parameters were + added. + + .. versionadded:: 0.11 + The `root_path` parameter was added. + + .. versionadded:: 1.0 + The ``host_matching`` and ``static_host`` parameters were added. + + .. versionadded:: 1.0 + The ``subdomain_matching`` parameter was added. Subdomain + matching needs to be enabled manually now. Setting + :data:`SERVER_NAME` does not implicitly enable it. + + :param import_name: the name of the application package + :param static_url_path: can be used to specify a different path for the + static files on the web. Defaults to the name + of the `static_folder` folder. + :param static_folder: The folder with static files that is served at + ``static_url_path``. Relative to the application ``root_path`` + or an absolute path. Defaults to ``'static'``. + :param static_host: the host to use when adding the static route. + Defaults to None. Required when using ``host_matching=True`` + with a ``static_folder`` configured. + :param host_matching: set ``url_map.host_matching`` attribute. + Defaults to False. + :param subdomain_matching: consider the subdomain relative to + :data:`SERVER_NAME` when matching routes. Defaults to False. + :param template_folder: the folder that contains the templates that should + be used by the application. Defaults to + ``'templates'`` folder in the root path of the + application. + :param instance_path: An alternative instance path for the application. + By default the folder ``'instance'`` next to the + package or module is assumed to be the instance + path. + :param instance_relative_config: if set to ``True`` relative filenames + for loading the config are assumed to + be relative to the instance path instead + of the application root. + :param root_path: The path to the root of the application files. + This should only be set manually when it can't be detected + automatically, such as for namespace packages. + """ + + #: The class of the object assigned to :attr:`aborter`, created by + #: :meth:`create_aborter`. That object is called by + #: :func:`flask.abort` to raise HTTP errors, and can be + #: called directly as well. + #: + #: Defaults to :class:`werkzeug.exceptions.Aborter`. + #: + #: .. versionadded:: 2.2 + aborter_class = Aborter + + #: The class that is used for the Jinja environment. + #: + #: .. versionadded:: 0.11 + jinja_environment = Environment + + #: The class that is used for the :data:`~flask.g` instance. + #: + #: Example use cases for a custom class: + #: + #: 1. Store arbitrary attributes on flask.g. + #: 2. Add a property for lazy per-request database connectors. + #: 3. Return None instead of AttributeError on unexpected attributes. + #: 4. Raise exception if an unexpected attr is set, a "controlled" flask.g. + #: + #: In Flask 0.9 this property was called `request_globals_class` but it + #: was changed in 0.10 to :attr:`app_ctx_globals_class` because the + #: flask.g object is now application context scoped. + #: + #: .. versionadded:: 0.10 + app_ctx_globals_class = _AppCtxGlobals + + #: The class that is used for the ``config`` attribute of this app. + #: Defaults to :class:`~flask.Config`. + #: + #: Example use cases for a custom class: + #: + #: 1. Default values for certain config options. + #: 2. Access to config values through attributes in addition to keys. + #: + #: .. versionadded:: 0.11 + config_class = Config + + #: The testing flag. Set this to ``True`` to enable the test mode of + #: Flask extensions (and in the future probably also Flask itself). + #: For example this might activate test helpers that have an + #: additional runtime cost which should not be enabled by default. + #: + #: If this is enabled and PROPAGATE_EXCEPTIONS is not changed from the + #: default it's implicitly enabled. + #: + #: This attribute can also be configured from the config with the + #: ``TESTING`` configuration key. Defaults to ``False``. + testing = ConfigAttribute[bool]("TESTING") + + #: If a secret key is set, cryptographic components can use this to + #: sign cookies and other things. Set this to a complex random value + #: when you want to use the secure cookie for instance. + #: + #: This attribute can also be configured from the config with the + #: :data:`SECRET_KEY` configuration key. Defaults to ``None``. + secret_key = ConfigAttribute[t.Union[str, bytes, None]]("SECRET_KEY") + + #: A :class:`~datetime.timedelta` which is used to set the expiration + #: date of a permanent session. The default is 31 days which makes a + #: permanent session survive for roughly one month. + #: + #: This attribute can also be configured from the config with the + #: ``PERMANENT_SESSION_LIFETIME`` configuration key. Defaults to + #: ``timedelta(days=31)`` + permanent_session_lifetime = ConfigAttribute[timedelta]( + "PERMANENT_SESSION_LIFETIME", + get_converter=_make_timedelta, # type: ignore[arg-type] + ) + + json_provider_class: type[JSONProvider] = DefaultJSONProvider + """A subclass of :class:`~flask.json.provider.JSONProvider`. An + instance is created and assigned to :attr:`app.json` when creating + the app. + + The default, :class:`~flask.json.provider.DefaultJSONProvider`, uses + Python's built-in :mod:`json` library. A different provider can use + a different JSON library. + + .. versionadded:: 2.2 + """ + + #: Options that are passed to the Jinja environment in + #: :meth:`create_jinja_environment`. Changing these options after + #: the environment is created (accessing :attr:`jinja_env`) will + #: have no effect. + #: + #: .. versionchanged:: 1.1.0 + #: This is a ``dict`` instead of an ``ImmutableDict`` to allow + #: easier configuration. + #: + jinja_options: dict[str, t.Any] = {} + + #: The rule object to use for URL rules created. This is used by + #: :meth:`add_url_rule`. Defaults to :class:`werkzeug.routing.Rule`. + #: + #: .. versionadded:: 0.7 + url_rule_class = Rule + + #: The map object to use for storing the URL rules and routing + #: configuration parameters. Defaults to :class:`werkzeug.routing.Map`. + #: + #: .. versionadded:: 1.1.0 + url_map_class = Map + + #: The :meth:`test_client` method creates an instance of this test + #: client class. Defaults to :class:`~flask.testing.FlaskClient`. + #: + #: .. versionadded:: 0.7 + test_client_class: type[FlaskClient] | None = None + + #: The :class:`~click.testing.CliRunner` subclass, by default + #: :class:`~flask.testing.FlaskCliRunner` that is used by + #: :meth:`test_cli_runner`. Its ``__init__`` method should take a + #: Flask app object as the first argument. + #: + #: .. versionadded:: 1.0 + test_cli_runner_class: type[FlaskCliRunner] | None = None + + default_config: dict[str, t.Any] + response_class: type[Response] + + def __init__( + self, + import_name: str, + static_url_path: str | None = None, + static_folder: str | os.PathLike[str] | None = "static", + static_host: str | None = None, + host_matching: bool = False, + subdomain_matching: bool = False, + template_folder: str | os.PathLike[str] | None = "templates", + instance_path: str | None = None, + instance_relative_config: bool = False, + root_path: str | None = None, + ) -> None: + super().__init__( + import_name=import_name, + static_folder=static_folder, + static_url_path=static_url_path, + template_folder=template_folder, + root_path=root_path, + ) + + if instance_path is None: + instance_path = self.auto_find_instance_path() + elif not os.path.isabs(instance_path): + raise ValueError( + "If an instance path is provided it must be absolute." + " A relative path was given instead." + ) + + #: Holds the path to the instance folder. + #: + #: .. versionadded:: 0.8 + self.instance_path = instance_path + + #: The configuration dictionary as :class:`Config`. This behaves + #: exactly like a regular dictionary but supports additional methods + #: to load a config from files. + self.config = self.make_config(instance_relative_config) + + #: An instance of :attr:`aborter_class` created by + #: :meth:`make_aborter`. This is called by :func:`flask.abort` + #: to raise HTTP errors, and can be called directly as well. + #: + #: .. versionadded:: 2.2 + #: Moved from ``flask.abort``, which calls this object. + self.aborter = self.make_aborter() + + self.json: JSONProvider = self.json_provider_class(self) + """Provides access to JSON methods. Functions in ``flask.json`` + will call methods on this provider when the application context + is active. Used for handling JSON requests and responses. + + An instance of :attr:`json_provider_class`. Can be customized by + changing that attribute on a subclass, or by assigning to this + attribute afterwards. + + The default, :class:`~flask.json.provider.DefaultJSONProvider`, + uses Python's built-in :mod:`json` library. A different provider + can use a different JSON library. + + .. versionadded:: 2.2 + """ + + #: A list of functions that are called by + #: :meth:`handle_url_build_error` when :meth:`.url_for` raises a + #: :exc:`~werkzeug.routing.BuildError`. Each function is called + #: with ``error``, ``endpoint`` and ``values``. If a function + #: returns ``None`` or raises a ``BuildError``, it is skipped. + #: Otherwise, its return value is returned by ``url_for``. + #: + #: .. versionadded:: 0.9 + self.url_build_error_handlers: list[ + t.Callable[[Exception, str, dict[str, t.Any]], str] + ] = [] + + #: A list of functions that are called when the application context + #: is destroyed. Since the application context is also torn down + #: if the request ends this is the place to store code that disconnects + #: from databases. + #: + #: .. versionadded:: 0.9 + self.teardown_appcontext_funcs: list[ft.TeardownCallable] = [] + + #: A list of shell context processor functions that should be run + #: when a shell context is created. + #: + #: .. versionadded:: 0.11 + self.shell_context_processors: list[ft.ShellContextProcessorCallable] = [] + + #: Maps registered blueprint names to blueprint objects. The + #: dict retains the order the blueprints were registered in. + #: Blueprints can be registered multiple times, this dict does + #: not track how often they were attached. + #: + #: .. versionadded:: 0.7 + self.blueprints: dict[str, Blueprint] = {} + + #: a place where extensions can store application specific state. For + #: example this is where an extension could store database engines and + #: similar things. + #: + #: The key must match the name of the extension module. For example in + #: case of a "Flask-Foo" extension in `flask_foo`, the key would be + #: ``'foo'``. + #: + #: .. versionadded:: 0.7 + self.extensions: dict[str, t.Any] = {} + + #: The :class:`~werkzeug.routing.Map` for this instance. You can use + #: this to change the routing converters after the class was created + #: but before any routes are connected. Example:: + #: + #: from werkzeug.routing import BaseConverter + #: + #: class ListConverter(BaseConverter): + #: def to_python(self, value): + #: return value.split(',') + #: def to_url(self, values): + #: return ','.join(super(ListConverter, self).to_url(value) + #: for value in values) + #: + #: app = Flask(__name__) + #: app.url_map.converters['list'] = ListConverter + self.url_map = self.url_map_class(host_matching=host_matching) + + self.subdomain_matching = subdomain_matching + + # tracks internally if the application already handled at least one + # request. + self._got_first_request = False + + def _check_setup_finished(self, f_name: str) -> None: + if self._got_first_request: + raise AssertionError( + f"The setup method '{f_name}' can no longer be called" + " on the application. It has already handled its first" + " request, any changes will not be applied" + " consistently.\n" + "Make sure all imports, decorators, functions, etc." + " needed to set up the application are done before" + " running it." + ) + + @cached_property + def name(self) -> str: + """The name of the application. This is usually the import name + with the difference that it's guessed from the run file if the + import name is main. This name is used as a display name when + Flask needs the name of the application. It can be set and overridden + to change the value. + + .. versionadded:: 0.8 + """ + if self.import_name == "__main__": + fn: str | None = getattr(sys.modules["__main__"], "__file__", None) + if fn is None: + return "__main__" + return os.path.splitext(os.path.basename(fn))[0] + return self.import_name + + @cached_property + def logger(self) -> logging.Logger: + """A standard Python :class:`~logging.Logger` for the app, with + the same name as :attr:`name`. + + In debug mode, the logger's :attr:`~logging.Logger.level` will + be set to :data:`~logging.DEBUG`. + + If there are no handlers configured, a default handler will be + added. See :doc:`/logging` for more information. + + .. versionchanged:: 1.1.0 + The logger takes the same name as :attr:`name` rather than + hard-coding ``"flask.app"``. + + .. versionchanged:: 1.0.0 + Behavior was simplified. The logger is always named + ``"flask.app"``. The level is only set during configuration, + it doesn't check ``app.debug`` each time. Only one format is + used, not different ones depending on ``app.debug``. No + handlers are removed, and a handler is only added if no + handlers are already configured. + + .. versionadded:: 0.3 + """ + return create_logger(self) + + @cached_property + def jinja_env(self) -> Environment: + """The Jinja environment used to load templates. + + The environment is created the first time this property is + accessed. Changing :attr:`jinja_options` after that will have no + effect. + """ + return self.create_jinja_environment() + + def create_jinja_environment(self) -> Environment: + raise NotImplementedError() + + def make_config(self, instance_relative: bool = False) -> Config: + """Used to create the config attribute by the Flask constructor. + The `instance_relative` parameter is passed in from the constructor + of Flask (there named `instance_relative_config`) and indicates if + the config should be relative to the instance path or the root path + of the application. + + .. versionadded:: 0.8 + """ + root_path = self.root_path + if instance_relative: + root_path = self.instance_path + defaults = dict(self.default_config) + defaults["DEBUG"] = get_debug_flag() + return self.config_class(root_path, defaults) + + def make_aborter(self) -> Aborter: + """Create the object to assign to :attr:`aborter`. That object + is called by :func:`flask.abort` to raise HTTP errors, and can + be called directly as well. + + By default, this creates an instance of :attr:`aborter_class`, + which defaults to :class:`werkzeug.exceptions.Aborter`. + + .. versionadded:: 2.2 + """ + return self.aborter_class() + + def auto_find_instance_path(self) -> str: + """Tries to locate the instance path if it was not provided to the + constructor of the application class. It will basically calculate + the path to a folder named ``instance`` next to your main file or + the package. + + .. versionadded:: 0.8 + """ + prefix, package_path = find_package(self.import_name) + if prefix is None: + return os.path.join(package_path, "instance") + return os.path.join(prefix, "var", f"{self.name}-instance") + + def create_global_jinja_loader(self) -> DispatchingJinjaLoader: + """Creates the loader for the Jinja environment. Can be used to + override just the loader and keeping the rest unchanged. It's + discouraged to override this function. Instead one should override + the :meth:`jinja_loader` function instead. + + The global loader dispatches between the loaders of the application + and the individual blueprints. + + .. versionadded:: 0.7 + """ + return DispatchingJinjaLoader(self) + + def select_jinja_autoescape(self, filename: str) -> bool: + """Returns ``True`` if autoescaping should be active for the given + template name. If no template name is given, returns `True`. + + .. versionchanged:: 2.2 + Autoescaping is now enabled by default for ``.svg`` files. + + .. versionadded:: 0.5 + """ + if filename is None: + return True + return filename.endswith((".html", ".htm", ".xml", ".xhtml", ".svg")) + + @property + def debug(self) -> bool: + """Whether debug mode is enabled. When using ``flask run`` to start the + development server, an interactive debugger will be shown for unhandled + exceptions, and the server will be reloaded when code changes. This maps to the + :data:`DEBUG` config key. It may not behave as expected if set late. + + **Do not enable debug mode when deploying in production.** + + Default: ``False`` + """ + return self.config["DEBUG"] # type: ignore[no-any-return] + + @debug.setter + def debug(self, value: bool) -> None: + self.config["DEBUG"] = value + + if self.config["TEMPLATES_AUTO_RELOAD"] is None: + self.jinja_env.auto_reload = value + + @setupmethod + def register_blueprint(self, blueprint: Blueprint, **options: t.Any) -> None: + """Register a :class:`~flask.Blueprint` on the application. Keyword + arguments passed to this method will override the defaults set on the + blueprint. + + Calls the blueprint's :meth:`~flask.Blueprint.register` method after + recording the blueprint in the application's :attr:`blueprints`. + + :param blueprint: The blueprint to register. + :param url_prefix: Blueprint routes will be prefixed with this. + :param subdomain: Blueprint routes will match on this subdomain. + :param url_defaults: Blueprint routes will use these default values for + view arguments. + :param options: Additional keyword arguments are passed to + :class:`~flask.blueprints.BlueprintSetupState`. They can be + accessed in :meth:`~flask.Blueprint.record` callbacks. + + .. versionchanged:: 2.0.1 + The ``name`` option can be used to change the (pre-dotted) + name the blueprint is registered with. This allows the same + blueprint to be registered multiple times with unique names + for ``url_for``. + + .. versionadded:: 0.7 + """ + blueprint.register(self, options) + + def iter_blueprints(self) -> t.ValuesView[Blueprint]: + """Iterates over all blueprints by the order they were registered. + + .. versionadded:: 0.11 + """ + return self.blueprints.values() + + @setupmethod + def add_url_rule( + self, + rule: str, + endpoint: str | None = None, + view_func: ft.RouteCallable | None = None, + provide_automatic_options: bool | None = None, + **options: t.Any, + ) -> None: + if endpoint is None: + endpoint = _endpoint_from_view_func(view_func) # type: ignore + options["endpoint"] = endpoint + methods = options.pop("methods", None) + + # if the methods are not given and the view_func object knows its + # methods we can use that instead. If neither exists, we go with + # a tuple of only ``GET`` as default. + if methods is None: + methods = getattr(view_func, "methods", None) or ("GET",) + if isinstance(methods, str): + raise TypeError( + "Allowed methods must be a list of strings, for" + ' example: @app.route(..., methods=["POST"])' + ) + methods = {item.upper() for item in methods} + + # Methods that should always be added + required_methods: set[str] = set(getattr(view_func, "required_methods", ())) + + # starting with Flask 0.8 the view_func object can disable and + # force-enable the automatic options handling. + if provide_automatic_options is None: + provide_automatic_options = getattr( + view_func, "provide_automatic_options", None + ) + + if provide_automatic_options is None: + if "OPTIONS" not in methods and self.config["PROVIDE_AUTOMATIC_OPTIONS"]: + provide_automatic_options = True + required_methods.add("OPTIONS") + else: + provide_automatic_options = False + + # Add the required methods now. + methods |= required_methods + + rule_obj = self.url_rule_class(rule, methods=methods, **options) + rule_obj.provide_automatic_options = provide_automatic_options # type: ignore[attr-defined] + + self.url_map.add(rule_obj) + if view_func is not None: + old_func = self.view_functions.get(endpoint) + if old_func is not None and old_func != view_func: + raise AssertionError( + "View function mapping is overwriting an existing" + f" endpoint function: {endpoint}" + ) + self.view_functions[endpoint] = view_func + + @setupmethod + def template_filter( + self, name: str | None = None + ) -> t.Callable[[T_template_filter], T_template_filter]: + """A decorator that is used to register custom template filter. + You can specify a name for the filter, otherwise the function + name will be used. Example:: + + @app.template_filter() + def reverse(s): + return s[::-1] + + :param name: the optional name of the filter, otherwise the + function name will be used. + """ + + def decorator(f: T_template_filter) -> T_template_filter: + self.add_template_filter(f, name=name) + return f + + return decorator + + @setupmethod + def add_template_filter( + self, f: ft.TemplateFilterCallable, name: str | None = None + ) -> None: + """Register a custom template filter. Works exactly like the + :meth:`template_filter` decorator. + + :param name: the optional name of the filter, otherwise the + function name will be used. + """ + self.jinja_env.filters[name or f.__name__] = f + + @setupmethod + def template_test( + self, name: str | None = None + ) -> t.Callable[[T_template_test], T_template_test]: + """A decorator that is used to register custom template test. + You can specify a name for the test, otherwise the function + name will be used. Example:: + + @app.template_test() + def is_prime(n): + if n == 2: + return True + for i in range(2, int(math.ceil(math.sqrt(n))) + 1): + if n % i == 0: + return False + return True + + .. versionadded:: 0.10 + + :param name: the optional name of the test, otherwise the + function name will be used. + """ + + def decorator(f: T_template_test) -> T_template_test: + self.add_template_test(f, name=name) + return f + + return decorator + + @setupmethod + def add_template_test( + self, f: ft.TemplateTestCallable, name: str | None = None + ) -> None: + """Register a custom template test. Works exactly like the + :meth:`template_test` decorator. + + .. versionadded:: 0.10 + + :param name: the optional name of the test, otherwise the + function name will be used. + """ + self.jinja_env.tests[name or f.__name__] = f + + @setupmethod + def template_global( + self, name: str | None = None + ) -> t.Callable[[T_template_global], T_template_global]: + """A decorator that is used to register a custom template global function. + You can specify a name for the global function, otherwise the function + name will be used. Example:: + + @app.template_global() + def double(n): + return 2 * n + + .. versionadded:: 0.10 + + :param name: the optional name of the global function, otherwise the + function name will be used. + """ + + def decorator(f: T_template_global) -> T_template_global: + self.add_template_global(f, name=name) + return f + + return decorator + + @setupmethod + def add_template_global( + self, f: ft.TemplateGlobalCallable, name: str | None = None + ) -> None: + """Register a custom template global function. Works exactly like the + :meth:`template_global` decorator. + + .. versionadded:: 0.10 + + :param name: the optional name of the global function, otherwise the + function name will be used. + """ + self.jinja_env.globals[name or f.__name__] = f + + @setupmethod + def teardown_appcontext(self, f: T_teardown) -> T_teardown: + """Registers a function to be called when the application + context is popped. The application context is typically popped + after the request context for each request, at the end of CLI + commands, or after a manually pushed context ends. + + .. code-block:: python + + with app.app_context(): + ... + + When the ``with`` block exits (or ``ctx.pop()`` is called), the + teardown functions are called just before the app context is + made inactive. Since a request context typically also manages an + application context it would also be called when you pop a + request context. + + When a teardown function was called because of an unhandled + exception it will be passed an error object. If an + :meth:`errorhandler` is registered, it will handle the exception + and the teardown will not receive it. + + Teardown functions must avoid raising exceptions. If they + execute code that might fail they must surround that code with a + ``try``/``except`` block and log any errors. + + The return values of teardown functions are ignored. + + .. versionadded:: 0.9 + """ + self.teardown_appcontext_funcs.append(f) + return f + + @setupmethod + def shell_context_processor( + self, f: T_shell_context_processor + ) -> T_shell_context_processor: + """Registers a shell context processor function. + + .. versionadded:: 0.11 + """ + self.shell_context_processors.append(f) + return f + + def _find_error_handler( + self, e: Exception, blueprints: list[str] + ) -> ft.ErrorHandlerCallable | None: + """Return a registered error handler for an exception in this order: + blueprint handler for a specific code, app handler for a specific code, + blueprint handler for an exception class, app handler for an exception + class, or ``None`` if a suitable handler is not found. + """ + exc_class, code = self._get_exc_class_and_code(type(e)) + names = (*blueprints, None) + + for c in (code, None) if code is not None else (None,): + for name in names: + handler_map = self.error_handler_spec[name][c] + + if not handler_map: + continue + + for cls in exc_class.__mro__: + handler = handler_map.get(cls) + + if handler is not None: + return handler + return None + + def trap_http_exception(self, e: Exception) -> bool: + """Checks if an HTTP exception should be trapped or not. By default + this will return ``False`` for all exceptions except for a bad request + key error if ``TRAP_BAD_REQUEST_ERRORS`` is set to ``True``. It + also returns ``True`` if ``TRAP_HTTP_EXCEPTIONS`` is set to ``True``. + + This is called for all HTTP exceptions raised by a view function. + If it returns ``True`` for any exception the error handler for this + exception is not called and it shows up as regular exception in the + traceback. This is helpful for debugging implicitly raised HTTP + exceptions. + + .. versionchanged:: 1.0 + Bad request errors are not trapped by default in debug mode. + + .. versionadded:: 0.8 + """ + if self.config["TRAP_HTTP_EXCEPTIONS"]: + return True + + trap_bad_request = self.config["TRAP_BAD_REQUEST_ERRORS"] + + # if unset, trap key errors in debug mode + if ( + trap_bad_request is None + and self.debug + and isinstance(e, BadRequestKeyError) + ): + return True + + if trap_bad_request: + return isinstance(e, BadRequest) + + return False + + def should_ignore_error(self, error: BaseException | None) -> bool: + """This is called to figure out if an error should be ignored + or not as far as the teardown system is concerned. If this + function returns ``True`` then the teardown handlers will not be + passed the error. + + .. versionadded:: 0.10 + """ + return False + + def redirect(self, location: str, code: int = 302) -> BaseResponse: + """Create a redirect response object. + + This is called by :func:`flask.redirect`, and can be called + directly as well. + + :param location: The URL to redirect to. + :param code: The status code for the redirect. + + .. versionadded:: 2.2 + Moved from ``flask.redirect``, which calls this method. + """ + return _wz_redirect( + location, + code=code, + Response=self.response_class, # type: ignore[arg-type] + ) + + def inject_url_defaults(self, endpoint: str, values: dict[str, t.Any]) -> None: + """Injects the URL defaults for the given endpoint directly into + the values dictionary passed. This is used internally and + automatically called on URL building. + + .. versionadded:: 0.7 + """ + names: t.Iterable[str | None] = (None,) + + # url_for may be called outside a request context, parse the + # passed endpoint instead of using request.blueprints. + if "." in endpoint: + names = chain( + names, reversed(_split_blueprint_path(endpoint.rpartition(".")[0])) + ) + + for name in names: + if name in self.url_default_functions: + for func in self.url_default_functions[name]: + func(endpoint, values) + + def handle_url_build_error( + self, error: BuildError, endpoint: str, values: dict[str, t.Any] + ) -> str: + """Called by :meth:`.url_for` if a + :exc:`~werkzeug.routing.BuildError` was raised. If this returns + a value, it will be returned by ``url_for``, otherwise the error + will be re-raised. + + Each function in :attr:`url_build_error_handlers` is called with + ``error``, ``endpoint`` and ``values``. If a function returns + ``None`` or raises a ``BuildError``, it is skipped. Otherwise, + its return value is returned by ``url_for``. + + :param error: The active ``BuildError`` being handled. + :param endpoint: The endpoint being built. + :param values: The keyword arguments passed to ``url_for``. + """ + for handler in self.url_build_error_handlers: + try: + rv = handler(error, endpoint, values) + except BuildError as e: + # make error available outside except block + error = e + else: + if rv is not None: + return rv + + # Re-raise if called with an active exception, otherwise raise + # the passed in exception. + if error is sys.exc_info()[1]: + raise + + raise error diff --git a/venv/lib/python3.10/site-packages/flask/sansio/blueprints.py b/venv/lib/python3.10/site-packages/flask/sansio/blueprints.py new file mode 100644 index 0000000..4f912cc --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/sansio/blueprints.py @@ -0,0 +1,632 @@ +from __future__ import annotations + +import os +import typing as t +from collections import defaultdict +from functools import update_wrapper + +from .. import typing as ft +from .scaffold import _endpoint_from_view_func +from .scaffold import _sentinel +from .scaffold import Scaffold +from .scaffold import setupmethod + +if t.TYPE_CHECKING: # pragma: no cover + from .app import App + +DeferredSetupFunction = t.Callable[["BlueprintSetupState"], None] +T_after_request = t.TypeVar("T_after_request", bound=ft.AfterRequestCallable[t.Any]) +T_before_request = t.TypeVar("T_before_request", bound=ft.BeforeRequestCallable) +T_error_handler = t.TypeVar("T_error_handler", bound=ft.ErrorHandlerCallable) +T_teardown = t.TypeVar("T_teardown", bound=ft.TeardownCallable) +T_template_context_processor = t.TypeVar( + "T_template_context_processor", bound=ft.TemplateContextProcessorCallable +) +T_template_filter = t.TypeVar("T_template_filter", bound=ft.TemplateFilterCallable) +T_template_global = t.TypeVar("T_template_global", bound=ft.TemplateGlobalCallable) +T_template_test = t.TypeVar("T_template_test", bound=ft.TemplateTestCallable) +T_url_defaults = t.TypeVar("T_url_defaults", bound=ft.URLDefaultCallable) +T_url_value_preprocessor = t.TypeVar( + "T_url_value_preprocessor", bound=ft.URLValuePreprocessorCallable +) + + +class BlueprintSetupState: + """Temporary holder object for registering a blueprint with the + application. An instance of this class is created by the + :meth:`~flask.Blueprint.make_setup_state` method and later passed + to all register callback functions. + """ + + def __init__( + self, + blueprint: Blueprint, + app: App, + options: t.Any, + first_registration: bool, + ) -> None: + #: a reference to the current application + self.app = app + + #: a reference to the blueprint that created this setup state. + self.blueprint = blueprint + + #: a dictionary with all options that were passed to the + #: :meth:`~flask.Flask.register_blueprint` method. + self.options = options + + #: as blueprints can be registered multiple times with the + #: application and not everything wants to be registered + #: multiple times on it, this attribute can be used to figure + #: out if the blueprint was registered in the past already. + self.first_registration = first_registration + + subdomain = self.options.get("subdomain") + if subdomain is None: + subdomain = self.blueprint.subdomain + + #: The subdomain that the blueprint should be active for, ``None`` + #: otherwise. + self.subdomain = subdomain + + url_prefix = self.options.get("url_prefix") + if url_prefix is None: + url_prefix = self.blueprint.url_prefix + #: The prefix that should be used for all URLs defined on the + #: blueprint. + self.url_prefix = url_prefix + + self.name = self.options.get("name", blueprint.name) + self.name_prefix = self.options.get("name_prefix", "") + + #: A dictionary with URL defaults that is added to each and every + #: URL that was defined with the blueprint. + self.url_defaults = dict(self.blueprint.url_values_defaults) + self.url_defaults.update(self.options.get("url_defaults", ())) + + def add_url_rule( + self, + rule: str, + endpoint: str | None = None, + view_func: ft.RouteCallable | None = None, + **options: t.Any, + ) -> None: + """A helper method to register a rule (and optionally a view function) + to the application. The endpoint is automatically prefixed with the + blueprint's name. + """ + if self.url_prefix is not None: + if rule: + rule = "/".join((self.url_prefix.rstrip("/"), rule.lstrip("/"))) + else: + rule = self.url_prefix + options.setdefault("subdomain", self.subdomain) + if endpoint is None: + endpoint = _endpoint_from_view_func(view_func) # type: ignore + defaults = self.url_defaults + if "defaults" in options: + defaults = dict(defaults, **options.pop("defaults")) + + self.app.add_url_rule( + rule, + f"{self.name_prefix}.{self.name}.{endpoint}".lstrip("."), + view_func, + defaults=defaults, + **options, + ) + + +class Blueprint(Scaffold): + """Represents a blueprint, a collection of routes and other + app-related functions that can be registered on a real application + later. + + A blueprint is an object that allows defining application functions + without requiring an application object ahead of time. It uses the + same decorators as :class:`~flask.Flask`, but defers the need for an + application by recording them for later registration. + + Decorating a function with a blueprint creates a deferred function + that is called with :class:`~flask.blueprints.BlueprintSetupState` + when the blueprint is registered on an application. + + See :doc:`/blueprints` for more information. + + :param name: The name of the blueprint. Will be prepended to each + endpoint name. + :param import_name: The name of the blueprint package, usually + ``__name__``. This helps locate the ``root_path`` for the + blueprint. + :param static_folder: A folder with static files that should be + served by the blueprint's static route. The path is relative to + the blueprint's root path. Blueprint static files are disabled + by default. + :param static_url_path: The url to serve static files from. + Defaults to ``static_folder``. If the blueprint does not have + a ``url_prefix``, the app's static route will take precedence, + and the blueprint's static files won't be accessible. + :param template_folder: A folder with templates that should be added + to the app's template search path. The path is relative to the + blueprint's root path. Blueprint templates are disabled by + default. Blueprint templates have a lower precedence than those + in the app's templates folder. + :param url_prefix: A path to prepend to all of the blueprint's URLs, + to make them distinct from the rest of the app's routes. + :param subdomain: A subdomain that blueprint routes will match on by + default. + :param url_defaults: A dict of default values that blueprint routes + will receive by default. + :param root_path: By default, the blueprint will automatically set + this based on ``import_name``. In certain situations this + automatic detection can fail, so the path can be specified + manually instead. + + .. versionchanged:: 1.1.0 + Blueprints have a ``cli`` group to register nested CLI commands. + The ``cli_group`` parameter controls the name of the group under + the ``flask`` command. + + .. versionadded:: 0.7 + """ + + _got_registered_once = False + + def __init__( + self, + name: str, + import_name: str, + static_folder: str | os.PathLike[str] | None = None, + static_url_path: str | None = None, + template_folder: str | os.PathLike[str] | None = None, + url_prefix: str | None = None, + subdomain: str | None = None, + url_defaults: dict[str, t.Any] | None = None, + root_path: str | None = None, + cli_group: str | None = _sentinel, # type: ignore[assignment] + ): + super().__init__( + import_name=import_name, + static_folder=static_folder, + static_url_path=static_url_path, + template_folder=template_folder, + root_path=root_path, + ) + + if not name: + raise ValueError("'name' may not be empty.") + + if "." in name: + raise ValueError("'name' may not contain a dot '.' character.") + + self.name = name + self.url_prefix = url_prefix + self.subdomain = subdomain + self.deferred_functions: list[DeferredSetupFunction] = [] + + if url_defaults is None: + url_defaults = {} + + self.url_values_defaults = url_defaults + self.cli_group = cli_group + self._blueprints: list[tuple[Blueprint, dict[str, t.Any]]] = [] + + def _check_setup_finished(self, f_name: str) -> None: + if self._got_registered_once: + raise AssertionError( + f"The setup method '{f_name}' can no longer be called on the blueprint" + f" '{self.name}'. It has already been registered at least once, any" + " changes will not be applied consistently.\n" + "Make sure all imports, decorators, functions, etc. needed to set up" + " the blueprint are done before registering it." + ) + + @setupmethod + def record(self, func: DeferredSetupFunction) -> None: + """Registers a function that is called when the blueprint is + registered on the application. This function is called with the + state as argument as returned by the :meth:`make_setup_state` + method. + """ + self.deferred_functions.append(func) + + @setupmethod + def record_once(self, func: DeferredSetupFunction) -> None: + """Works like :meth:`record` but wraps the function in another + function that will ensure the function is only called once. If the + blueprint is registered a second time on the application, the + function passed is not called. + """ + + def wrapper(state: BlueprintSetupState) -> None: + if state.first_registration: + func(state) + + self.record(update_wrapper(wrapper, func)) + + def make_setup_state( + self, app: App, options: dict[str, t.Any], first_registration: bool = False + ) -> BlueprintSetupState: + """Creates an instance of :meth:`~flask.blueprints.BlueprintSetupState` + object that is later passed to the register callback functions. + Subclasses can override this to return a subclass of the setup state. + """ + return BlueprintSetupState(self, app, options, first_registration) + + @setupmethod + def register_blueprint(self, blueprint: Blueprint, **options: t.Any) -> None: + """Register a :class:`~flask.Blueprint` on this blueprint. Keyword + arguments passed to this method will override the defaults set + on the blueprint. + + .. versionchanged:: 2.0.1 + The ``name`` option can be used to change the (pre-dotted) + name the blueprint is registered with. This allows the same + blueprint to be registered multiple times with unique names + for ``url_for``. + + .. versionadded:: 2.0 + """ + if blueprint is self: + raise ValueError("Cannot register a blueprint on itself") + self._blueprints.append((blueprint, options)) + + def register(self, app: App, options: dict[str, t.Any]) -> None: + """Called by :meth:`Flask.register_blueprint` to register all + views and callbacks registered on the blueprint with the + application. Creates a :class:`.BlueprintSetupState` and calls + each :meth:`record` callback with it. + + :param app: The application this blueprint is being registered + with. + :param options: Keyword arguments forwarded from + :meth:`~Flask.register_blueprint`. + + .. versionchanged:: 2.3 + Nested blueprints now correctly apply subdomains. + + .. versionchanged:: 2.1 + Registering the same blueprint with the same name multiple + times is an error. + + .. versionchanged:: 2.0.1 + Nested blueprints are registered with their dotted name. + This allows different blueprints with the same name to be + nested at different locations. + + .. versionchanged:: 2.0.1 + The ``name`` option can be used to change the (pre-dotted) + name the blueprint is registered with. This allows the same + blueprint to be registered multiple times with unique names + for ``url_for``. + """ + name_prefix = options.get("name_prefix", "") + self_name = options.get("name", self.name) + name = f"{name_prefix}.{self_name}".lstrip(".") + + if name in app.blueprints: + bp_desc = "this" if app.blueprints[name] is self else "a different" + existing_at = f" '{name}'" if self_name != name else "" + + raise ValueError( + f"The name '{self_name}' is already registered for" + f" {bp_desc} blueprint{existing_at}. Use 'name=' to" + f" provide a unique name." + ) + + first_bp_registration = not any(bp is self for bp in app.blueprints.values()) + first_name_registration = name not in app.blueprints + + app.blueprints[name] = self + self._got_registered_once = True + state = self.make_setup_state(app, options, first_bp_registration) + + if self.has_static_folder: + state.add_url_rule( + f"{self.static_url_path}/", + view_func=self.send_static_file, # type: ignore[attr-defined] + endpoint="static", + ) + + # Merge blueprint data into parent. + if first_bp_registration or first_name_registration: + self._merge_blueprint_funcs(app, name) + + for deferred in self.deferred_functions: + deferred(state) + + cli_resolved_group = options.get("cli_group", self.cli_group) + + if self.cli.commands: + if cli_resolved_group is None: + app.cli.commands.update(self.cli.commands) + elif cli_resolved_group is _sentinel: + self.cli.name = name + app.cli.add_command(self.cli) + else: + self.cli.name = cli_resolved_group + app.cli.add_command(self.cli) + + for blueprint, bp_options in self._blueprints: + bp_options = bp_options.copy() + bp_url_prefix = bp_options.get("url_prefix") + bp_subdomain = bp_options.get("subdomain") + + if bp_subdomain is None: + bp_subdomain = blueprint.subdomain + + if state.subdomain is not None and bp_subdomain is not None: + bp_options["subdomain"] = bp_subdomain + "." + state.subdomain + elif bp_subdomain is not None: + bp_options["subdomain"] = bp_subdomain + elif state.subdomain is not None: + bp_options["subdomain"] = state.subdomain + + if bp_url_prefix is None: + bp_url_prefix = blueprint.url_prefix + + if state.url_prefix is not None and bp_url_prefix is not None: + bp_options["url_prefix"] = ( + state.url_prefix.rstrip("/") + "/" + bp_url_prefix.lstrip("/") + ) + elif bp_url_prefix is not None: + bp_options["url_prefix"] = bp_url_prefix + elif state.url_prefix is not None: + bp_options["url_prefix"] = state.url_prefix + + bp_options["name_prefix"] = name + blueprint.register(app, bp_options) + + def _merge_blueprint_funcs(self, app: App, name: str) -> None: + def extend( + bp_dict: dict[ft.AppOrBlueprintKey, list[t.Any]], + parent_dict: dict[ft.AppOrBlueprintKey, list[t.Any]], + ) -> None: + for key, values in bp_dict.items(): + key = name if key is None else f"{name}.{key}" + parent_dict[key].extend(values) + + for key, value in self.error_handler_spec.items(): + key = name if key is None else f"{name}.{key}" + value = defaultdict( + dict, + { + code: {exc_class: func for exc_class, func in code_values.items()} + for code, code_values in value.items() + }, + ) + app.error_handler_spec[key] = value + + for endpoint, func in self.view_functions.items(): + app.view_functions[endpoint] = func + + extend(self.before_request_funcs, app.before_request_funcs) + extend(self.after_request_funcs, app.after_request_funcs) + extend( + self.teardown_request_funcs, + app.teardown_request_funcs, + ) + extend(self.url_default_functions, app.url_default_functions) + extend(self.url_value_preprocessors, app.url_value_preprocessors) + extend(self.template_context_processors, app.template_context_processors) + + @setupmethod + def add_url_rule( + self, + rule: str, + endpoint: str | None = None, + view_func: ft.RouteCallable | None = None, + provide_automatic_options: bool | None = None, + **options: t.Any, + ) -> None: + """Register a URL rule with the blueprint. See :meth:`.Flask.add_url_rule` for + full documentation. + + The URL rule is prefixed with the blueprint's URL prefix. The endpoint name, + used with :func:`url_for`, is prefixed with the blueprint's name. + """ + if endpoint and "." in endpoint: + raise ValueError("'endpoint' may not contain a dot '.' character.") + + if view_func and hasattr(view_func, "__name__") and "." in view_func.__name__: + raise ValueError("'view_func' name may not contain a dot '.' character.") + + self.record( + lambda s: s.add_url_rule( + rule, + endpoint, + view_func, + provide_automatic_options=provide_automatic_options, + **options, + ) + ) + + @setupmethod + def app_template_filter( + self, name: str | None = None + ) -> t.Callable[[T_template_filter], T_template_filter]: + """Register a template filter, available in any template rendered by the + application. Equivalent to :meth:`.Flask.template_filter`. + + :param name: the optional name of the filter, otherwise the + function name will be used. + """ + + def decorator(f: T_template_filter) -> T_template_filter: + self.add_app_template_filter(f, name=name) + return f + + return decorator + + @setupmethod + def add_app_template_filter( + self, f: ft.TemplateFilterCallable, name: str | None = None + ) -> None: + """Register a template filter, available in any template rendered by the + application. Works like the :meth:`app_template_filter` decorator. Equivalent to + :meth:`.Flask.add_template_filter`. + + :param name: the optional name of the filter, otherwise the + function name will be used. + """ + + def register_template(state: BlueprintSetupState) -> None: + state.app.jinja_env.filters[name or f.__name__] = f + + self.record_once(register_template) + + @setupmethod + def app_template_test( + self, name: str | None = None + ) -> t.Callable[[T_template_test], T_template_test]: + """Register a template test, available in any template rendered by the + application. Equivalent to :meth:`.Flask.template_test`. + + .. versionadded:: 0.10 + + :param name: the optional name of the test, otherwise the + function name will be used. + """ + + def decorator(f: T_template_test) -> T_template_test: + self.add_app_template_test(f, name=name) + return f + + return decorator + + @setupmethod + def add_app_template_test( + self, f: ft.TemplateTestCallable, name: str | None = None + ) -> None: + """Register a template test, available in any template rendered by the + application. Works like the :meth:`app_template_test` decorator. Equivalent to + :meth:`.Flask.add_template_test`. + + .. versionadded:: 0.10 + + :param name: the optional name of the test, otherwise the + function name will be used. + """ + + def register_template(state: BlueprintSetupState) -> None: + state.app.jinja_env.tests[name or f.__name__] = f + + self.record_once(register_template) + + @setupmethod + def app_template_global( + self, name: str | None = None + ) -> t.Callable[[T_template_global], T_template_global]: + """Register a template global, available in any template rendered by the + application. Equivalent to :meth:`.Flask.template_global`. + + .. versionadded:: 0.10 + + :param name: the optional name of the global, otherwise the + function name will be used. + """ + + def decorator(f: T_template_global) -> T_template_global: + self.add_app_template_global(f, name=name) + return f + + return decorator + + @setupmethod + def add_app_template_global( + self, f: ft.TemplateGlobalCallable, name: str | None = None + ) -> None: + """Register a template global, available in any template rendered by the + application. Works like the :meth:`app_template_global` decorator. Equivalent to + :meth:`.Flask.add_template_global`. + + .. versionadded:: 0.10 + + :param name: the optional name of the global, otherwise the + function name will be used. + """ + + def register_template(state: BlueprintSetupState) -> None: + state.app.jinja_env.globals[name or f.__name__] = f + + self.record_once(register_template) + + @setupmethod + def before_app_request(self, f: T_before_request) -> T_before_request: + """Like :meth:`before_request`, but before every request, not only those handled + by the blueprint. Equivalent to :meth:`.Flask.before_request`. + """ + self.record_once( + lambda s: s.app.before_request_funcs.setdefault(None, []).append(f) + ) + return f + + @setupmethod + def after_app_request(self, f: T_after_request) -> T_after_request: + """Like :meth:`after_request`, but after every request, not only those handled + by the blueprint. Equivalent to :meth:`.Flask.after_request`. + """ + self.record_once( + lambda s: s.app.after_request_funcs.setdefault(None, []).append(f) + ) + return f + + @setupmethod + def teardown_app_request(self, f: T_teardown) -> T_teardown: + """Like :meth:`teardown_request`, but after every request, not only those + handled by the blueprint. Equivalent to :meth:`.Flask.teardown_request`. + """ + self.record_once( + lambda s: s.app.teardown_request_funcs.setdefault(None, []).append(f) + ) + return f + + @setupmethod + def app_context_processor( + self, f: T_template_context_processor + ) -> T_template_context_processor: + """Like :meth:`context_processor`, but for templates rendered by every view, not + only by the blueprint. Equivalent to :meth:`.Flask.context_processor`. + """ + self.record_once( + lambda s: s.app.template_context_processors.setdefault(None, []).append(f) + ) + return f + + @setupmethod + def app_errorhandler( + self, code: type[Exception] | int + ) -> t.Callable[[T_error_handler], T_error_handler]: + """Like :meth:`errorhandler`, but for every request, not only those handled by + the blueprint. Equivalent to :meth:`.Flask.errorhandler`. + """ + + def decorator(f: T_error_handler) -> T_error_handler: + def from_blueprint(state: BlueprintSetupState) -> None: + state.app.errorhandler(code)(f) + + self.record_once(from_blueprint) + return f + + return decorator + + @setupmethod + def app_url_value_preprocessor( + self, f: T_url_value_preprocessor + ) -> T_url_value_preprocessor: + """Like :meth:`url_value_preprocessor`, but for every request, not only those + handled by the blueprint. Equivalent to :meth:`.Flask.url_value_preprocessor`. + """ + self.record_once( + lambda s: s.app.url_value_preprocessors.setdefault(None, []).append(f) + ) + return f + + @setupmethod + def app_url_defaults(self, f: T_url_defaults) -> T_url_defaults: + """Like :meth:`url_defaults`, but for every request, not only those handled by + the blueprint. Equivalent to :meth:`.Flask.url_defaults`. + """ + self.record_once( + lambda s: s.app.url_default_functions.setdefault(None, []).append(f) + ) + return f diff --git a/venv/lib/python3.10/site-packages/flask/sansio/scaffold.py b/venv/lib/python3.10/site-packages/flask/sansio/scaffold.py new file mode 100644 index 0000000..0e96f15 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/sansio/scaffold.py @@ -0,0 +1,792 @@ +from __future__ import annotations + +import importlib.util +import os +import pathlib +import sys +import typing as t +from collections import defaultdict +from functools import update_wrapper + +from jinja2 import BaseLoader +from jinja2 import FileSystemLoader +from werkzeug.exceptions import default_exceptions +from werkzeug.exceptions import HTTPException +from werkzeug.utils import cached_property + +from .. import typing as ft +from ..helpers import get_root_path +from ..templating import _default_template_ctx_processor + +if t.TYPE_CHECKING: # pragma: no cover + from click import Group + +# a singleton sentinel value for parameter defaults +_sentinel = object() + +F = t.TypeVar("F", bound=t.Callable[..., t.Any]) +T_after_request = t.TypeVar("T_after_request", bound=ft.AfterRequestCallable[t.Any]) +T_before_request = t.TypeVar("T_before_request", bound=ft.BeforeRequestCallable) +T_error_handler = t.TypeVar("T_error_handler", bound=ft.ErrorHandlerCallable) +T_teardown = t.TypeVar("T_teardown", bound=ft.TeardownCallable) +T_template_context_processor = t.TypeVar( + "T_template_context_processor", bound=ft.TemplateContextProcessorCallable +) +T_url_defaults = t.TypeVar("T_url_defaults", bound=ft.URLDefaultCallable) +T_url_value_preprocessor = t.TypeVar( + "T_url_value_preprocessor", bound=ft.URLValuePreprocessorCallable +) +T_route = t.TypeVar("T_route", bound=ft.RouteCallable) + + +def setupmethod(f: F) -> F: + f_name = f.__name__ + + def wrapper_func(self: Scaffold, *args: t.Any, **kwargs: t.Any) -> t.Any: + self._check_setup_finished(f_name) + return f(self, *args, **kwargs) + + return t.cast(F, update_wrapper(wrapper_func, f)) + + +class Scaffold: + """Common behavior shared between :class:`~flask.Flask` and + :class:`~flask.blueprints.Blueprint`. + + :param import_name: The import name of the module where this object + is defined. Usually :attr:`__name__` should be used. + :param static_folder: Path to a folder of static files to serve. + If this is set, a static route will be added. + :param static_url_path: URL prefix for the static route. + :param template_folder: Path to a folder containing template files. + for rendering. If this is set, a Jinja loader will be added. + :param root_path: The path that static, template, and resource files + are relative to. Typically not set, it is discovered based on + the ``import_name``. + + .. versionadded:: 2.0 + """ + + cli: Group + name: str + _static_folder: str | None = None + _static_url_path: str | None = None + + def __init__( + self, + import_name: str, + static_folder: str | os.PathLike[str] | None = None, + static_url_path: str | None = None, + template_folder: str | os.PathLike[str] | None = None, + root_path: str | None = None, + ): + #: The name of the package or module that this object belongs + #: to. Do not change this once it is set by the constructor. + self.import_name = import_name + + self.static_folder = static_folder + self.static_url_path = static_url_path + + #: The path to the templates folder, relative to + #: :attr:`root_path`, to add to the template loader. ``None`` if + #: templates should not be added. + self.template_folder = template_folder + + if root_path is None: + root_path = get_root_path(self.import_name) + + #: Absolute path to the package on the filesystem. Used to look + #: up resources contained in the package. + self.root_path = root_path + + #: A dictionary mapping endpoint names to view functions. + #: + #: To register a view function, use the :meth:`route` decorator. + #: + #: This data structure is internal. It should not be modified + #: directly and its format may change at any time. + self.view_functions: dict[str, ft.RouteCallable] = {} + + #: A data structure of registered error handlers, in the format + #: ``{scope: {code: {class: handler}}}``. The ``scope`` key is + #: the name of a blueprint the handlers are active for, or + #: ``None`` for all requests. The ``code`` key is the HTTP + #: status code for ``HTTPException``, or ``None`` for + #: other exceptions. The innermost dictionary maps exception + #: classes to handler functions. + #: + #: To register an error handler, use the :meth:`errorhandler` + #: decorator. + #: + #: This data structure is internal. It should not be modified + #: directly and its format may change at any time. + self.error_handler_spec: dict[ + ft.AppOrBlueprintKey, + dict[int | None, dict[type[Exception], ft.ErrorHandlerCallable]], + ] = defaultdict(lambda: defaultdict(dict)) + + #: A data structure of functions to call at the beginning of + #: each request, in the format ``{scope: [functions]}``. The + #: ``scope`` key is the name of a blueprint the functions are + #: active for, or ``None`` for all requests. + #: + #: To register a function, use the :meth:`before_request` + #: decorator. + #: + #: This data structure is internal. It should not be modified + #: directly and its format may change at any time. + self.before_request_funcs: dict[ + ft.AppOrBlueprintKey, list[ft.BeforeRequestCallable] + ] = defaultdict(list) + + #: A data structure of functions to call at the end of each + #: request, in the format ``{scope: [functions]}``. The + #: ``scope`` key is the name of a blueprint the functions are + #: active for, or ``None`` for all requests. + #: + #: To register a function, use the :meth:`after_request` + #: decorator. + #: + #: This data structure is internal. It should not be modified + #: directly and its format may change at any time. + self.after_request_funcs: dict[ + ft.AppOrBlueprintKey, list[ft.AfterRequestCallable[t.Any]] + ] = defaultdict(list) + + #: A data structure of functions to call at the end of each + #: request even if an exception is raised, in the format + #: ``{scope: [functions]}``. The ``scope`` key is the name of a + #: blueprint the functions are active for, or ``None`` for all + #: requests. + #: + #: To register a function, use the :meth:`teardown_request` + #: decorator. + #: + #: This data structure is internal. It should not be modified + #: directly and its format may change at any time. + self.teardown_request_funcs: dict[ + ft.AppOrBlueprintKey, list[ft.TeardownCallable] + ] = defaultdict(list) + + #: A data structure of functions to call to pass extra context + #: values when rendering templates, in the format + #: ``{scope: [functions]}``. The ``scope`` key is the name of a + #: blueprint the functions are active for, or ``None`` for all + #: requests. + #: + #: To register a function, use the :meth:`context_processor` + #: decorator. + #: + #: This data structure is internal. It should not be modified + #: directly and its format may change at any time. + self.template_context_processors: dict[ + ft.AppOrBlueprintKey, list[ft.TemplateContextProcessorCallable] + ] = defaultdict(list, {None: [_default_template_ctx_processor]}) + + #: A data structure of functions to call to modify the keyword + #: arguments passed to the view function, in the format + #: ``{scope: [functions]}``. The ``scope`` key is the name of a + #: blueprint the functions are active for, or ``None`` for all + #: requests. + #: + #: To register a function, use the + #: :meth:`url_value_preprocessor` decorator. + #: + #: This data structure is internal. It should not be modified + #: directly and its format may change at any time. + self.url_value_preprocessors: dict[ + ft.AppOrBlueprintKey, + list[ft.URLValuePreprocessorCallable], + ] = defaultdict(list) + + #: A data structure of functions to call to modify the keyword + #: arguments when generating URLs, in the format + #: ``{scope: [functions]}``. The ``scope`` key is the name of a + #: blueprint the functions are active for, or ``None`` for all + #: requests. + #: + #: To register a function, use the :meth:`url_defaults` + #: decorator. + #: + #: This data structure is internal. It should not be modified + #: directly and its format may change at any time. + self.url_default_functions: dict[ + ft.AppOrBlueprintKey, list[ft.URLDefaultCallable] + ] = defaultdict(list) + + def __repr__(self) -> str: + return f"<{type(self).__name__} {self.name!r}>" + + def _check_setup_finished(self, f_name: str) -> None: + raise NotImplementedError + + @property + def static_folder(self) -> str | None: + """The absolute path to the configured static folder. ``None`` + if no static folder is set. + """ + if self._static_folder is not None: + return os.path.join(self.root_path, self._static_folder) + else: + return None + + @static_folder.setter + def static_folder(self, value: str | os.PathLike[str] | None) -> None: + if value is not None: + value = os.fspath(value).rstrip(r"\/") + + self._static_folder = value + + @property + def has_static_folder(self) -> bool: + """``True`` if :attr:`static_folder` is set. + + .. versionadded:: 0.5 + """ + return self.static_folder is not None + + @property + def static_url_path(self) -> str | None: + """The URL prefix that the static route will be accessible from. + + If it was not configured during init, it is derived from + :attr:`static_folder`. + """ + if self._static_url_path is not None: + return self._static_url_path + + if self.static_folder is not None: + basename = os.path.basename(self.static_folder) + return f"/{basename}".rstrip("/") + + return None + + @static_url_path.setter + def static_url_path(self, value: str | None) -> None: + if value is not None: + value = value.rstrip("/") + + self._static_url_path = value + + @cached_property + def jinja_loader(self) -> BaseLoader | None: + """The Jinja loader for this object's templates. By default this + is a class :class:`jinja2.loaders.FileSystemLoader` to + :attr:`template_folder` if it is set. + + .. versionadded:: 0.5 + """ + if self.template_folder is not None: + return FileSystemLoader(os.path.join(self.root_path, self.template_folder)) + else: + return None + + def _method_route( + self, + method: str, + rule: str, + options: dict[str, t.Any], + ) -> t.Callable[[T_route], T_route]: + if "methods" in options: + raise TypeError("Use the 'route' decorator to use the 'methods' argument.") + + return self.route(rule, methods=[method], **options) + + @setupmethod + def get(self, rule: str, **options: t.Any) -> t.Callable[[T_route], T_route]: + """Shortcut for :meth:`route` with ``methods=["GET"]``. + + .. versionadded:: 2.0 + """ + return self._method_route("GET", rule, options) + + @setupmethod + def post(self, rule: str, **options: t.Any) -> t.Callable[[T_route], T_route]: + """Shortcut for :meth:`route` with ``methods=["POST"]``. + + .. versionadded:: 2.0 + """ + return self._method_route("POST", rule, options) + + @setupmethod + def put(self, rule: str, **options: t.Any) -> t.Callable[[T_route], T_route]: + """Shortcut for :meth:`route` with ``methods=["PUT"]``. + + .. versionadded:: 2.0 + """ + return self._method_route("PUT", rule, options) + + @setupmethod + def delete(self, rule: str, **options: t.Any) -> t.Callable[[T_route], T_route]: + """Shortcut for :meth:`route` with ``methods=["DELETE"]``. + + .. versionadded:: 2.0 + """ + return self._method_route("DELETE", rule, options) + + @setupmethod + def patch(self, rule: str, **options: t.Any) -> t.Callable[[T_route], T_route]: + """Shortcut for :meth:`route` with ``methods=["PATCH"]``. + + .. versionadded:: 2.0 + """ + return self._method_route("PATCH", rule, options) + + @setupmethod + def route(self, rule: str, **options: t.Any) -> t.Callable[[T_route], T_route]: + """Decorate a view function to register it with the given URL + rule and options. Calls :meth:`add_url_rule`, which has more + details about the implementation. + + .. code-block:: python + + @app.route("/") + def index(): + return "Hello, World!" + + See :ref:`url-route-registrations`. + + The endpoint name for the route defaults to the name of the view + function if the ``endpoint`` parameter isn't passed. + + The ``methods`` parameter defaults to ``["GET"]``. ``HEAD`` and + ``OPTIONS`` are added automatically. + + :param rule: The URL rule string. + :param options: Extra options passed to the + :class:`~werkzeug.routing.Rule` object. + """ + + def decorator(f: T_route) -> T_route: + endpoint = options.pop("endpoint", None) + self.add_url_rule(rule, endpoint, f, **options) + return f + + return decorator + + @setupmethod + def add_url_rule( + self, + rule: str, + endpoint: str | None = None, + view_func: ft.RouteCallable | None = None, + provide_automatic_options: bool | None = None, + **options: t.Any, + ) -> None: + """Register a rule for routing incoming requests and building + URLs. The :meth:`route` decorator is a shortcut to call this + with the ``view_func`` argument. These are equivalent: + + .. code-block:: python + + @app.route("/") + def index(): + ... + + .. code-block:: python + + def index(): + ... + + app.add_url_rule("/", view_func=index) + + See :ref:`url-route-registrations`. + + The endpoint name for the route defaults to the name of the view + function if the ``endpoint`` parameter isn't passed. An error + will be raised if a function has already been registered for the + endpoint. + + The ``methods`` parameter defaults to ``["GET"]``. ``HEAD`` is + always added automatically, and ``OPTIONS`` is added + automatically by default. + + ``view_func`` does not necessarily need to be passed, but if the + rule should participate in routing an endpoint name must be + associated with a view function at some point with the + :meth:`endpoint` decorator. + + .. code-block:: python + + app.add_url_rule("/", endpoint="index") + + @app.endpoint("index") + def index(): + ... + + If ``view_func`` has a ``required_methods`` attribute, those + methods are added to the passed and automatic methods. If it + has a ``provide_automatic_methods`` attribute, it is used as the + default if the parameter is not passed. + + :param rule: The URL rule string. + :param endpoint: The endpoint name to associate with the rule + and view function. Used when routing and building URLs. + Defaults to ``view_func.__name__``. + :param view_func: The view function to associate with the + endpoint name. + :param provide_automatic_options: Add the ``OPTIONS`` method and + respond to ``OPTIONS`` requests automatically. + :param options: Extra options passed to the + :class:`~werkzeug.routing.Rule` object. + """ + raise NotImplementedError + + @setupmethod + def endpoint(self, endpoint: str) -> t.Callable[[F], F]: + """Decorate a view function to register it for the given + endpoint. Used if a rule is added without a ``view_func`` with + :meth:`add_url_rule`. + + .. code-block:: python + + app.add_url_rule("/ex", endpoint="example") + + @app.endpoint("example") + def example(): + ... + + :param endpoint: The endpoint name to associate with the view + function. + """ + + def decorator(f: F) -> F: + self.view_functions[endpoint] = f + return f + + return decorator + + @setupmethod + def before_request(self, f: T_before_request) -> T_before_request: + """Register a function to run before each request. + + For example, this can be used to open a database connection, or + to load the logged in user from the session. + + .. code-block:: python + + @app.before_request + def load_user(): + if "user_id" in session: + g.user = db.session.get(session["user_id"]) + + The function will be called without any arguments. If it returns + a non-``None`` value, the value is handled as if it was the + return value from the view, and further request handling is + stopped. + + This is available on both app and blueprint objects. When used on an app, this + executes before every request. When used on a blueprint, this executes before + every request that the blueprint handles. To register with a blueprint and + execute before every request, use :meth:`.Blueprint.before_app_request`. + """ + self.before_request_funcs.setdefault(None, []).append(f) + return f + + @setupmethod + def after_request(self, f: T_after_request) -> T_after_request: + """Register a function to run after each request to this object. + + The function is called with the response object, and must return + a response object. This allows the functions to modify or + replace the response before it is sent. + + If a function raises an exception, any remaining + ``after_request`` functions will not be called. Therefore, this + should not be used for actions that must execute, such as to + close resources. Use :meth:`teardown_request` for that. + + This is available on both app and blueprint objects. When used on an app, this + executes after every request. When used on a blueprint, this executes after + every request that the blueprint handles. To register with a blueprint and + execute after every request, use :meth:`.Blueprint.after_app_request`. + """ + self.after_request_funcs.setdefault(None, []).append(f) + return f + + @setupmethod + def teardown_request(self, f: T_teardown) -> T_teardown: + """Register a function to be called when the request context is + popped. Typically this happens at the end of each request, but + contexts may be pushed manually as well during testing. + + .. code-block:: python + + with app.test_request_context(): + ... + + When the ``with`` block exits (or ``ctx.pop()`` is called), the + teardown functions are called just before the request context is + made inactive. + + When a teardown function was called because of an unhandled + exception it will be passed an error object. If an + :meth:`errorhandler` is registered, it will handle the exception + and the teardown will not receive it. + + Teardown functions must avoid raising exceptions. If they + execute code that might fail they must surround that code with a + ``try``/``except`` block and log any errors. + + The return values of teardown functions are ignored. + + This is available on both app and blueprint objects. When used on an app, this + executes after every request. When used on a blueprint, this executes after + every request that the blueprint handles. To register with a blueprint and + execute after every request, use :meth:`.Blueprint.teardown_app_request`. + """ + self.teardown_request_funcs.setdefault(None, []).append(f) + return f + + @setupmethod + def context_processor( + self, + f: T_template_context_processor, + ) -> T_template_context_processor: + """Registers a template context processor function. These functions run before + rendering a template. The keys of the returned dict are added as variables + available in the template. + + This is available on both app and blueprint objects. When used on an app, this + is called for every rendered template. When used on a blueprint, this is called + for templates rendered from the blueprint's views. To register with a blueprint + and affect every template, use :meth:`.Blueprint.app_context_processor`. + """ + self.template_context_processors[None].append(f) + return f + + @setupmethod + def url_value_preprocessor( + self, + f: T_url_value_preprocessor, + ) -> T_url_value_preprocessor: + """Register a URL value preprocessor function for all view + functions in the application. These functions will be called before the + :meth:`before_request` functions. + + The function can modify the values captured from the matched url before + they are passed to the view. For example, this can be used to pop a + common language code value and place it in ``g`` rather than pass it to + every view. + + The function is passed the endpoint name and values dict. The return + value is ignored. + + This is available on both app and blueprint objects. When used on an app, this + is called for every request. When used on a blueprint, this is called for + requests that the blueprint handles. To register with a blueprint and affect + every request, use :meth:`.Blueprint.app_url_value_preprocessor`. + """ + self.url_value_preprocessors[None].append(f) + return f + + @setupmethod + def url_defaults(self, f: T_url_defaults) -> T_url_defaults: + """Callback function for URL defaults for all view functions of the + application. It's called with the endpoint and values and should + update the values passed in place. + + This is available on both app and blueprint objects. When used on an app, this + is called for every request. When used on a blueprint, this is called for + requests that the blueprint handles. To register with a blueprint and affect + every request, use :meth:`.Blueprint.app_url_defaults`. + """ + self.url_default_functions[None].append(f) + return f + + @setupmethod + def errorhandler( + self, code_or_exception: type[Exception] | int + ) -> t.Callable[[T_error_handler], T_error_handler]: + """Register a function to handle errors by code or exception class. + + A decorator that is used to register a function given an + error code. Example:: + + @app.errorhandler(404) + def page_not_found(error): + return 'This page does not exist', 404 + + You can also register handlers for arbitrary exceptions:: + + @app.errorhandler(DatabaseError) + def special_exception_handler(error): + return 'Database connection failed', 500 + + This is available on both app and blueprint objects. When used on an app, this + can handle errors from every request. When used on a blueprint, this can handle + errors from requests that the blueprint handles. To register with a blueprint + and affect every request, use :meth:`.Blueprint.app_errorhandler`. + + .. versionadded:: 0.7 + Use :meth:`register_error_handler` instead of modifying + :attr:`error_handler_spec` directly, for application wide error + handlers. + + .. versionadded:: 0.7 + One can now additionally also register custom exception types + that do not necessarily have to be a subclass of the + :class:`~werkzeug.exceptions.HTTPException` class. + + :param code_or_exception: the code as integer for the handler, or + an arbitrary exception + """ + + def decorator(f: T_error_handler) -> T_error_handler: + self.register_error_handler(code_or_exception, f) + return f + + return decorator + + @setupmethod + def register_error_handler( + self, + code_or_exception: type[Exception] | int, + f: ft.ErrorHandlerCallable, + ) -> None: + """Alternative error attach function to the :meth:`errorhandler` + decorator that is more straightforward to use for non decorator + usage. + + .. versionadded:: 0.7 + """ + exc_class, code = self._get_exc_class_and_code(code_or_exception) + self.error_handler_spec[None][code][exc_class] = f + + @staticmethod + def _get_exc_class_and_code( + exc_class_or_code: type[Exception] | int, + ) -> tuple[type[Exception], int | None]: + """Get the exception class being handled. For HTTP status codes + or ``HTTPException`` subclasses, return both the exception and + status code. + + :param exc_class_or_code: Any exception class, or an HTTP status + code as an integer. + """ + exc_class: type[Exception] + + if isinstance(exc_class_or_code, int): + try: + exc_class = default_exceptions[exc_class_or_code] + except KeyError: + raise ValueError( + f"'{exc_class_or_code}' is not a recognized HTTP" + " error code. Use a subclass of HTTPException with" + " that code instead." + ) from None + else: + exc_class = exc_class_or_code + + if isinstance(exc_class, Exception): + raise TypeError( + f"{exc_class!r} is an instance, not a class. Handlers" + " can only be registered for Exception classes or HTTP" + " error codes." + ) + + if not issubclass(exc_class, Exception): + raise ValueError( + f"'{exc_class.__name__}' is not a subclass of Exception." + " Handlers can only be registered for Exception classes" + " or HTTP error codes." + ) + + if issubclass(exc_class, HTTPException): + return exc_class, exc_class.code + else: + return exc_class, None + + +def _endpoint_from_view_func(view_func: ft.RouteCallable) -> str: + """Internal helper that returns the default endpoint for a given + function. This always is the function name. + """ + assert view_func is not None, "expected view func if endpoint is not provided." + return view_func.__name__ + + +def _find_package_path(import_name: str) -> str: + """Find the path that contains the package or module.""" + root_mod_name, _, _ = import_name.partition(".") + + try: + root_spec = importlib.util.find_spec(root_mod_name) + + if root_spec is None: + raise ValueError("not found") + except (ImportError, ValueError): + # ImportError: the machinery told us it does not exist + # ValueError: + # - the module name was invalid + # - the module name is __main__ + # - we raised `ValueError` due to `root_spec` being `None` + return os.getcwd() + + if root_spec.submodule_search_locations: + if root_spec.origin is None or root_spec.origin == "namespace": + # namespace package + package_spec = importlib.util.find_spec(import_name) + + if package_spec is not None and package_spec.submodule_search_locations: + # Pick the path in the namespace that contains the submodule. + package_path = pathlib.Path( + os.path.commonpath(package_spec.submodule_search_locations) + ) + search_location = next( + location + for location in root_spec.submodule_search_locations + if package_path.is_relative_to(location) + ) + else: + # Pick the first path. + search_location = root_spec.submodule_search_locations[0] + + return os.path.dirname(search_location) + else: + # package with __init__.py + return os.path.dirname(os.path.dirname(root_spec.origin)) + else: + # module + return os.path.dirname(root_spec.origin) # type: ignore[type-var, return-value] + + +def find_package(import_name: str) -> tuple[str | None, str]: + """Find the prefix that a package is installed under, and the path + that it would be imported from. + + The prefix is the directory containing the standard directory + hierarchy (lib, bin, etc.). If the package is not installed to the + system (:attr:`sys.prefix`) or a virtualenv (``site-packages``), + ``None`` is returned. + + The path is the entry in :attr:`sys.path` that contains the package + for import. If the package is not installed, it's assumed that the + package was imported from the current working directory. + """ + package_path = _find_package_path(import_name) + py_prefix = os.path.abspath(sys.prefix) + + # installed to the system + if pathlib.PurePath(package_path).is_relative_to(py_prefix): + return py_prefix, package_path + + site_parent, site_folder = os.path.split(package_path) + + # installed to a virtualenv + if site_folder.lower() == "site-packages": + parent, folder = os.path.split(site_parent) + + # Windows (prefix/lib/site-packages) + if folder.lower() == "lib": + return parent, package_path + + # Unix (prefix/lib/pythonX.Y/site-packages) + if os.path.basename(parent).lower() == "lib": + return os.path.dirname(parent), package_path + + # something else (prefix/site-packages) + return site_parent, package_path + + # not installed + return None, package_path diff --git a/venv/lib/python3.10/site-packages/flask/sessions.py b/venv/lib/python3.10/site-packages/flask/sessions.py new file mode 100644 index 0000000..0a357d9 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/sessions.py @@ -0,0 +1,399 @@ +from __future__ import annotations + +import collections.abc as c +import hashlib +import typing as t +from collections.abc import MutableMapping +from datetime import datetime +from datetime import timezone + +from itsdangerous import BadSignature +from itsdangerous import URLSafeTimedSerializer +from werkzeug.datastructures import CallbackDict + +from .json.tag import TaggedJSONSerializer + +if t.TYPE_CHECKING: # pragma: no cover + import typing_extensions as te + + from .app import Flask + from .wrappers import Request + from .wrappers import Response + + +class SessionMixin(MutableMapping[str, t.Any]): + """Expands a basic dictionary with session attributes.""" + + @property + def permanent(self) -> bool: + """This reflects the ``'_permanent'`` key in the dict.""" + return self.get("_permanent", False) + + @permanent.setter + def permanent(self, value: bool) -> None: + self["_permanent"] = bool(value) + + #: Some implementations can detect whether a session is newly + #: created, but that is not guaranteed. Use with caution. The mixin + # default is hard-coded ``False``. + new = False + + #: Some implementations can detect changes to the session and set + #: this when that happens. The mixin default is hard coded to + #: ``True``. + modified = True + + #: Some implementations can detect when session data is read or + #: written and set this when that happens. The mixin default is hard + #: coded to ``True``. + accessed = True + + +class SecureCookieSession(CallbackDict[str, t.Any], SessionMixin): + """Base class for sessions based on signed cookies. + + This session backend will set the :attr:`modified` and + :attr:`accessed` attributes. It cannot reliably track whether a + session is new (vs. empty), so :attr:`new` remains hard coded to + ``False``. + """ + + #: When data is changed, this is set to ``True``. Only the session + #: dictionary itself is tracked; if the session contains mutable + #: data (for example a nested dict) then this must be set to + #: ``True`` manually when modifying that data. The session cookie + #: will only be written to the response if this is ``True``. + modified = False + + #: When data is read or written, this is set to ``True``. Used by + # :class:`.SecureCookieSessionInterface` to add a ``Vary: Cookie`` + #: header, which allows caching proxies to cache different pages for + #: different users. + accessed = False + + def __init__( + self, + initial: c.Mapping[str, t.Any] | c.Iterable[tuple[str, t.Any]] | None = None, + ) -> None: + def on_update(self: te.Self) -> None: + self.modified = True + self.accessed = True + + super().__init__(initial, on_update) + + def __getitem__(self, key: str) -> t.Any: + self.accessed = True + return super().__getitem__(key) + + def get(self, key: str, default: t.Any = None) -> t.Any: + self.accessed = True + return super().get(key, default) + + def setdefault(self, key: str, default: t.Any = None) -> t.Any: + self.accessed = True + return super().setdefault(key, default) + + +class NullSession(SecureCookieSession): + """Class used to generate nicer error messages if sessions are not + available. Will still allow read-only access to the empty session + but fail on setting. + """ + + def _fail(self, *args: t.Any, **kwargs: t.Any) -> t.NoReturn: + raise RuntimeError( + "The session is unavailable because no secret " + "key was set. Set the secret_key on the " + "application to something unique and secret." + ) + + __setitem__ = __delitem__ = clear = pop = popitem = update = setdefault = _fail # noqa: B950 + del _fail + + +class SessionInterface: + """The basic interface you have to implement in order to replace the + default session interface which uses werkzeug's securecookie + implementation. The only methods you have to implement are + :meth:`open_session` and :meth:`save_session`, the others have + useful defaults which you don't need to change. + + The session object returned by the :meth:`open_session` method has to + provide a dictionary like interface plus the properties and methods + from the :class:`SessionMixin`. We recommend just subclassing a dict + and adding that mixin:: + + class Session(dict, SessionMixin): + pass + + If :meth:`open_session` returns ``None`` Flask will call into + :meth:`make_null_session` to create a session that acts as replacement + if the session support cannot work because some requirement is not + fulfilled. The default :class:`NullSession` class that is created + will complain that the secret key was not set. + + To replace the session interface on an application all you have to do + is to assign :attr:`flask.Flask.session_interface`:: + + app = Flask(__name__) + app.session_interface = MySessionInterface() + + Multiple requests with the same session may be sent and handled + concurrently. When implementing a new session interface, consider + whether reads or writes to the backing store must be synchronized. + There is no guarantee on the order in which the session for each + request is opened or saved, it will occur in the order that requests + begin and end processing. + + .. versionadded:: 0.8 + """ + + #: :meth:`make_null_session` will look here for the class that should + #: be created when a null session is requested. Likewise the + #: :meth:`is_null_session` method will perform a typecheck against + #: this type. + null_session_class = NullSession + + #: A flag that indicates if the session interface is pickle based. + #: This can be used by Flask extensions to make a decision in regards + #: to how to deal with the session object. + #: + #: .. versionadded:: 0.10 + pickle_based = False + + def make_null_session(self, app: Flask) -> NullSession: + """Creates a null session which acts as a replacement object if the + real session support could not be loaded due to a configuration + error. This mainly aids the user experience because the job of the + null session is to still support lookup without complaining but + modifications are answered with a helpful error message of what + failed. + + This creates an instance of :attr:`null_session_class` by default. + """ + return self.null_session_class() + + def is_null_session(self, obj: object) -> bool: + """Checks if a given object is a null session. Null sessions are + not asked to be saved. + + This checks if the object is an instance of :attr:`null_session_class` + by default. + """ + return isinstance(obj, self.null_session_class) + + def get_cookie_name(self, app: Flask) -> str: + """The name of the session cookie. Uses``app.config["SESSION_COOKIE_NAME"]``.""" + return app.config["SESSION_COOKIE_NAME"] # type: ignore[no-any-return] + + def get_cookie_domain(self, app: Flask) -> str | None: + """The value of the ``Domain`` parameter on the session cookie. If not set, + browsers will only send the cookie to the exact domain it was set from. + Otherwise, they will send it to any subdomain of the given value as well. + + Uses the :data:`SESSION_COOKIE_DOMAIN` config. + + .. versionchanged:: 2.3 + Not set by default, does not fall back to ``SERVER_NAME``. + """ + return app.config["SESSION_COOKIE_DOMAIN"] # type: ignore[no-any-return] + + def get_cookie_path(self, app: Flask) -> str: + """Returns the path for which the cookie should be valid. The + default implementation uses the value from the ``SESSION_COOKIE_PATH`` + config var if it's set, and falls back to ``APPLICATION_ROOT`` or + uses ``/`` if it's ``None``. + """ + return app.config["SESSION_COOKIE_PATH"] or app.config["APPLICATION_ROOT"] # type: ignore[no-any-return] + + def get_cookie_httponly(self, app: Flask) -> bool: + """Returns True if the session cookie should be httponly. This + currently just returns the value of the ``SESSION_COOKIE_HTTPONLY`` + config var. + """ + return app.config["SESSION_COOKIE_HTTPONLY"] # type: ignore[no-any-return] + + def get_cookie_secure(self, app: Flask) -> bool: + """Returns True if the cookie should be secure. This currently + just returns the value of the ``SESSION_COOKIE_SECURE`` setting. + """ + return app.config["SESSION_COOKIE_SECURE"] # type: ignore[no-any-return] + + def get_cookie_samesite(self, app: Flask) -> str | None: + """Return ``'Strict'`` or ``'Lax'`` if the cookie should use the + ``SameSite`` attribute. This currently just returns the value of + the :data:`SESSION_COOKIE_SAMESITE` setting. + """ + return app.config["SESSION_COOKIE_SAMESITE"] # type: ignore[no-any-return] + + def get_cookie_partitioned(self, app: Flask) -> bool: + """Returns True if the cookie should be partitioned. By default, uses + the value of :data:`SESSION_COOKIE_PARTITIONED`. + + .. versionadded:: 3.1 + """ + return app.config["SESSION_COOKIE_PARTITIONED"] # type: ignore[no-any-return] + + def get_expiration_time(self, app: Flask, session: SessionMixin) -> datetime | None: + """A helper method that returns an expiration date for the session + or ``None`` if the session is linked to the browser session. The + default implementation returns now + the permanent session + lifetime configured on the application. + """ + if session.permanent: + return datetime.now(timezone.utc) + app.permanent_session_lifetime + return None + + def should_set_cookie(self, app: Flask, session: SessionMixin) -> bool: + """Used by session backends to determine if a ``Set-Cookie`` header + should be set for this session cookie for this response. If the session + has been modified, the cookie is set. If the session is permanent and + the ``SESSION_REFRESH_EACH_REQUEST`` config is true, the cookie is + always set. + + This check is usually skipped if the session was deleted. + + .. versionadded:: 0.11 + """ + + return session.modified or ( + session.permanent and app.config["SESSION_REFRESH_EACH_REQUEST"] + ) + + def open_session(self, app: Flask, request: Request) -> SessionMixin | None: + """This is called at the beginning of each request, after + pushing the request context, before matching the URL. + + This must return an object which implements a dictionary-like + interface as well as the :class:`SessionMixin` interface. + + This will return ``None`` to indicate that loading failed in + some way that is not immediately an error. The request + context will fall back to using :meth:`make_null_session` + in this case. + """ + raise NotImplementedError() + + def save_session( + self, app: Flask, session: SessionMixin, response: Response + ) -> None: + """This is called at the end of each request, after generating + a response, before removing the request context. It is skipped + if :meth:`is_null_session` returns ``True``. + """ + raise NotImplementedError() + + +session_json_serializer = TaggedJSONSerializer() + + +def _lazy_sha1(string: bytes = b"") -> t.Any: + """Don't access ``hashlib.sha1`` until runtime. FIPS builds may not include + SHA-1, in which case the import and use as a default would fail before the + developer can configure something else. + """ + return hashlib.sha1(string) + + +class SecureCookieSessionInterface(SessionInterface): + """The default session interface that stores sessions in signed cookies + through the :mod:`itsdangerous` module. + """ + + #: the salt that should be applied on top of the secret key for the + #: signing of cookie based sessions. + salt = "cookie-session" + #: the hash function to use for the signature. The default is sha1 + digest_method = staticmethod(_lazy_sha1) + #: the name of the itsdangerous supported key derivation. The default + #: is hmac. + key_derivation = "hmac" + #: A python serializer for the payload. The default is a compact + #: JSON derived serializer with support for some extra Python types + #: such as datetime objects or tuples. + serializer = session_json_serializer + session_class = SecureCookieSession + + def get_signing_serializer(self, app: Flask) -> URLSafeTimedSerializer | None: + if not app.secret_key: + return None + + keys: list[str | bytes] = [] + + if fallbacks := app.config["SECRET_KEY_FALLBACKS"]: + keys.extend(fallbacks) + + keys.append(app.secret_key) # itsdangerous expects current key at top + return URLSafeTimedSerializer( + keys, # type: ignore[arg-type] + salt=self.salt, + serializer=self.serializer, + signer_kwargs={ + "key_derivation": self.key_derivation, + "digest_method": self.digest_method, + }, + ) + + def open_session(self, app: Flask, request: Request) -> SecureCookieSession | None: + s = self.get_signing_serializer(app) + if s is None: + return None + val = request.cookies.get(self.get_cookie_name(app)) + if not val: + return self.session_class() + max_age = int(app.permanent_session_lifetime.total_seconds()) + try: + data = s.loads(val, max_age=max_age) + return self.session_class(data) + except BadSignature: + return self.session_class() + + def save_session( + self, app: Flask, session: SessionMixin, response: Response + ) -> None: + name = self.get_cookie_name(app) + domain = self.get_cookie_domain(app) + path = self.get_cookie_path(app) + secure = self.get_cookie_secure(app) + partitioned = self.get_cookie_partitioned(app) + samesite = self.get_cookie_samesite(app) + httponly = self.get_cookie_httponly(app) + + # Add a "Vary: Cookie" header if the session was accessed at all. + if session.accessed: + response.vary.add("Cookie") + + # If the session is modified to be empty, remove the cookie. + # If the session is empty, return without setting the cookie. + if not session: + if session.modified: + response.delete_cookie( + name, + domain=domain, + path=path, + secure=secure, + partitioned=partitioned, + samesite=samesite, + httponly=httponly, + ) + response.vary.add("Cookie") + + return + + if not self.should_set_cookie(app, session): + return + + expires = self.get_expiration_time(app, session) + val = self.get_signing_serializer(app).dumps(dict(session)) # type: ignore[union-attr] + response.set_cookie( + name, + val, + expires=expires, + httponly=httponly, + domain=domain, + path=path, + secure=secure, + partitioned=partitioned, + samesite=samesite, + ) + response.vary.add("Cookie") diff --git a/venv/lib/python3.10/site-packages/flask/signals.py b/venv/lib/python3.10/site-packages/flask/signals.py new file mode 100644 index 0000000..444fda9 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/signals.py @@ -0,0 +1,17 @@ +from __future__ import annotations + +from blinker import Namespace + +# This namespace is only for signals provided by Flask itself. +_signals = Namespace() + +template_rendered = _signals.signal("template-rendered") +before_render_template = _signals.signal("before-render-template") +request_started = _signals.signal("request-started") +request_finished = _signals.signal("request-finished") +request_tearing_down = _signals.signal("request-tearing-down") +got_request_exception = _signals.signal("got-request-exception") +appcontext_tearing_down = _signals.signal("appcontext-tearing-down") +appcontext_pushed = _signals.signal("appcontext-pushed") +appcontext_popped = _signals.signal("appcontext-popped") +message_flashed = _signals.signal("message-flashed") diff --git a/venv/lib/python3.10/site-packages/flask/templating.py b/venv/lib/python3.10/site-packages/flask/templating.py new file mode 100644 index 0000000..16d480f --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/templating.py @@ -0,0 +1,219 @@ +from __future__ import annotations + +import typing as t + +from jinja2 import BaseLoader +from jinja2 import Environment as BaseEnvironment +from jinja2 import Template +from jinja2 import TemplateNotFound + +from .globals import _cv_app +from .globals import _cv_request +from .globals import current_app +from .globals import request +from .helpers import stream_with_context +from .signals import before_render_template +from .signals import template_rendered + +if t.TYPE_CHECKING: # pragma: no cover + from .app import Flask + from .sansio.app import App + from .sansio.scaffold import Scaffold + + +def _default_template_ctx_processor() -> dict[str, t.Any]: + """Default template context processor. Injects `request`, + `session` and `g`. + """ + appctx = _cv_app.get(None) + reqctx = _cv_request.get(None) + rv: dict[str, t.Any] = {} + if appctx is not None: + rv["g"] = appctx.g + if reqctx is not None: + rv["request"] = reqctx.request + rv["session"] = reqctx.session + return rv + + +class Environment(BaseEnvironment): + """Works like a regular Jinja environment but has some additional + knowledge of how Flask's blueprint works so that it can prepend the + name of the blueprint to referenced templates if necessary. + """ + + def __init__(self, app: App, **options: t.Any) -> None: + if "loader" not in options: + options["loader"] = app.create_global_jinja_loader() + BaseEnvironment.__init__(self, **options) + self.app = app + + +class DispatchingJinjaLoader(BaseLoader): + """A loader that looks for templates in the application and all + the blueprint folders. + """ + + def __init__(self, app: App) -> None: + self.app = app + + def get_source( + self, environment: BaseEnvironment, template: str + ) -> tuple[str, str | None, t.Callable[[], bool] | None]: + if self.app.config["EXPLAIN_TEMPLATE_LOADING"]: + return self._get_source_explained(environment, template) + return self._get_source_fast(environment, template) + + def _get_source_explained( + self, environment: BaseEnvironment, template: str + ) -> tuple[str, str | None, t.Callable[[], bool] | None]: + attempts = [] + rv: tuple[str, str | None, t.Callable[[], bool] | None] | None + trv: None | (tuple[str, str | None, t.Callable[[], bool] | None]) = None + + for srcobj, loader in self._iter_loaders(template): + try: + rv = loader.get_source(environment, template) + if trv is None: + trv = rv + except TemplateNotFound: + rv = None + attempts.append((loader, srcobj, rv)) + + from .debughelpers import explain_template_loading_attempts + + explain_template_loading_attempts(self.app, template, attempts) + + if trv is not None: + return trv + raise TemplateNotFound(template) + + def _get_source_fast( + self, environment: BaseEnvironment, template: str + ) -> tuple[str, str | None, t.Callable[[], bool] | None]: + for _srcobj, loader in self._iter_loaders(template): + try: + return loader.get_source(environment, template) + except TemplateNotFound: + continue + raise TemplateNotFound(template) + + def _iter_loaders(self, template: str) -> t.Iterator[tuple[Scaffold, BaseLoader]]: + loader = self.app.jinja_loader + if loader is not None: + yield self.app, loader + + for blueprint in self.app.iter_blueprints(): + loader = blueprint.jinja_loader + if loader is not None: + yield blueprint, loader + + def list_templates(self) -> list[str]: + result = set() + loader = self.app.jinja_loader + if loader is not None: + result.update(loader.list_templates()) + + for blueprint in self.app.iter_blueprints(): + loader = blueprint.jinja_loader + if loader is not None: + for template in loader.list_templates(): + result.add(template) + + return list(result) + + +def _render(app: Flask, template: Template, context: dict[str, t.Any]) -> str: + app.update_template_context(context) + before_render_template.send( + app, _async_wrapper=app.ensure_sync, template=template, context=context + ) + rv = template.render(context) + template_rendered.send( + app, _async_wrapper=app.ensure_sync, template=template, context=context + ) + return rv + + +def render_template( + template_name_or_list: str | Template | list[str | Template], + **context: t.Any, +) -> str: + """Render a template by name with the given context. + + :param template_name_or_list: The name of the template to render. If + a list is given, the first name to exist will be rendered. + :param context: The variables to make available in the template. + """ + app = current_app._get_current_object() # type: ignore[attr-defined] + template = app.jinja_env.get_or_select_template(template_name_or_list) + return _render(app, template, context) + + +def render_template_string(source: str, **context: t.Any) -> str: + """Render a template from the given source string with the given + context. + + :param source: The source code of the template to render. + :param context: The variables to make available in the template. + """ + app = current_app._get_current_object() # type: ignore[attr-defined] + template = app.jinja_env.from_string(source) + return _render(app, template, context) + + +def _stream( + app: Flask, template: Template, context: dict[str, t.Any] +) -> t.Iterator[str]: + app.update_template_context(context) + before_render_template.send( + app, _async_wrapper=app.ensure_sync, template=template, context=context + ) + + def generate() -> t.Iterator[str]: + yield from template.generate(context) + template_rendered.send( + app, _async_wrapper=app.ensure_sync, template=template, context=context + ) + + rv = generate() + + # If a request context is active, keep it while generating. + if request: + rv = stream_with_context(rv) + + return rv + + +def stream_template( + template_name_or_list: str | Template | list[str | Template], + **context: t.Any, +) -> t.Iterator[str]: + """Render a template by name with the given context as a stream. + This returns an iterator of strings, which can be used as a + streaming response from a view. + + :param template_name_or_list: The name of the template to render. If + a list is given, the first name to exist will be rendered. + :param context: The variables to make available in the template. + + .. versionadded:: 2.2 + """ + app = current_app._get_current_object() # type: ignore[attr-defined] + template = app.jinja_env.get_or_select_template(template_name_or_list) + return _stream(app, template, context) + + +def stream_template_string(source: str, **context: t.Any) -> t.Iterator[str]: + """Render a template from the given source string with the given + context as a stream. This returns an iterator of strings, which can + be used as a streaming response from a view. + + :param source: The source code of the template to render. + :param context: The variables to make available in the template. + + .. versionadded:: 2.2 + """ + app = current_app._get_current_object() # type: ignore[attr-defined] + template = app.jinja_env.from_string(source) + return _stream(app, template, context) diff --git a/venv/lib/python3.10/site-packages/flask/testing.py b/venv/lib/python3.10/site-packages/flask/testing.py new file mode 100644 index 0000000..55eb12f --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/testing.py @@ -0,0 +1,298 @@ +from __future__ import annotations + +import importlib.metadata +import typing as t +from contextlib import contextmanager +from contextlib import ExitStack +from copy import copy +from types import TracebackType +from urllib.parse import urlsplit + +import werkzeug.test +from click.testing import CliRunner +from click.testing import Result +from werkzeug.test import Client +from werkzeug.wrappers import Request as BaseRequest + +from .cli import ScriptInfo +from .sessions import SessionMixin + +if t.TYPE_CHECKING: # pragma: no cover + from _typeshed.wsgi import WSGIEnvironment + from werkzeug.test import TestResponse + + from .app import Flask + + +class EnvironBuilder(werkzeug.test.EnvironBuilder): + """An :class:`~werkzeug.test.EnvironBuilder`, that takes defaults from the + application. + + :param app: The Flask application to configure the environment from. + :param path: URL path being requested. + :param base_url: Base URL where the app is being served, which + ``path`` is relative to. If not given, built from + :data:`PREFERRED_URL_SCHEME`, ``subdomain``, + :data:`SERVER_NAME`, and :data:`APPLICATION_ROOT`. + :param subdomain: Subdomain name to append to :data:`SERVER_NAME`. + :param url_scheme: Scheme to use instead of + :data:`PREFERRED_URL_SCHEME`. + :param json: If given, this is serialized as JSON and passed as + ``data``. Also defaults ``content_type`` to + ``application/json``. + :param args: other positional arguments passed to + :class:`~werkzeug.test.EnvironBuilder`. + :param kwargs: other keyword arguments passed to + :class:`~werkzeug.test.EnvironBuilder`. + """ + + def __init__( + self, + app: Flask, + path: str = "/", + base_url: str | None = None, + subdomain: str | None = None, + url_scheme: str | None = None, + *args: t.Any, + **kwargs: t.Any, + ) -> None: + assert not (base_url or subdomain or url_scheme) or ( + base_url is not None + ) != bool(subdomain or url_scheme), ( + 'Cannot pass "subdomain" or "url_scheme" with "base_url".' + ) + + if base_url is None: + http_host = app.config.get("SERVER_NAME") or "localhost" + app_root = app.config["APPLICATION_ROOT"] + + if subdomain: + http_host = f"{subdomain}.{http_host}" + + if url_scheme is None: + url_scheme = app.config["PREFERRED_URL_SCHEME"] + + url = urlsplit(path) + base_url = ( + f"{url.scheme or url_scheme}://{url.netloc or http_host}" + f"/{app_root.lstrip('/')}" + ) + path = url.path + + if url.query: + path = f"{path}?{url.query}" + + self.app = app + super().__init__(path, base_url, *args, **kwargs) + + def json_dumps(self, obj: t.Any, **kwargs: t.Any) -> str: + """Serialize ``obj`` to a JSON-formatted string. + + The serialization will be configured according to the config associated + with this EnvironBuilder's ``app``. + """ + return self.app.json.dumps(obj, **kwargs) + + +_werkzeug_version = "" + + +def _get_werkzeug_version() -> str: + global _werkzeug_version + + if not _werkzeug_version: + _werkzeug_version = importlib.metadata.version("werkzeug") + + return _werkzeug_version + + +class FlaskClient(Client): + """Works like a regular Werkzeug test client but has knowledge about + Flask's contexts to defer the cleanup of the request context until + the end of a ``with`` block. For general information about how to + use this class refer to :class:`werkzeug.test.Client`. + + .. versionchanged:: 0.12 + `app.test_client()` includes preset default environment, which can be + set after instantiation of the `app.test_client()` object in + `client.environ_base`. + + Basic usage is outlined in the :doc:`/testing` chapter. + """ + + application: Flask + + def __init__(self, *args: t.Any, **kwargs: t.Any) -> None: + super().__init__(*args, **kwargs) + self.preserve_context = False + self._new_contexts: list[t.ContextManager[t.Any]] = [] + self._context_stack = ExitStack() + self.environ_base = { + "REMOTE_ADDR": "127.0.0.1", + "HTTP_USER_AGENT": f"Werkzeug/{_get_werkzeug_version()}", + } + + @contextmanager + def session_transaction( + self, *args: t.Any, **kwargs: t.Any + ) -> t.Iterator[SessionMixin]: + """When used in combination with a ``with`` statement this opens a + session transaction. This can be used to modify the session that + the test client uses. Once the ``with`` block is left the session is + stored back. + + :: + + with client.session_transaction() as session: + session['value'] = 42 + + Internally this is implemented by going through a temporary test + request context and since session handling could depend on + request variables this function accepts the same arguments as + :meth:`~flask.Flask.test_request_context` which are directly + passed through. + """ + if self._cookies is None: + raise TypeError( + "Cookies are disabled. Create a client with 'use_cookies=True'." + ) + + app = self.application + ctx = app.test_request_context(*args, **kwargs) + self._add_cookies_to_wsgi(ctx.request.environ) + + with ctx: + sess = app.session_interface.open_session(app, ctx.request) + + if sess is None: + raise RuntimeError("Session backend did not open a session.") + + yield sess + resp = app.response_class() + + if app.session_interface.is_null_session(sess): + return + + with ctx: + app.session_interface.save_session(app, sess, resp) + + self._update_cookies_from_response( + ctx.request.host.partition(":")[0], + ctx.request.path, + resp.headers.getlist("Set-Cookie"), + ) + + def _copy_environ(self, other: WSGIEnvironment) -> WSGIEnvironment: + out = {**self.environ_base, **other} + + if self.preserve_context: + out["werkzeug.debug.preserve_context"] = self._new_contexts.append + + return out + + def _request_from_builder_args( + self, args: tuple[t.Any, ...], kwargs: dict[str, t.Any] + ) -> BaseRequest: + kwargs["environ_base"] = self._copy_environ(kwargs.get("environ_base", {})) + builder = EnvironBuilder(self.application, *args, **kwargs) + + try: + return builder.get_request() + finally: + builder.close() + + def open( + self, + *args: t.Any, + buffered: bool = False, + follow_redirects: bool = False, + **kwargs: t.Any, + ) -> TestResponse: + if args and isinstance( + args[0], (werkzeug.test.EnvironBuilder, dict, BaseRequest) + ): + if isinstance(args[0], werkzeug.test.EnvironBuilder): + builder = copy(args[0]) + builder.environ_base = self._copy_environ(builder.environ_base or {}) # type: ignore[arg-type] + request = builder.get_request() + elif isinstance(args[0], dict): + request = EnvironBuilder.from_environ( + args[0], app=self.application, environ_base=self._copy_environ({}) + ).get_request() + else: + # isinstance(args[0], BaseRequest) + request = copy(args[0]) + request.environ = self._copy_environ(request.environ) + else: + # request is None + request = self._request_from_builder_args(args, kwargs) + + # Pop any previously preserved contexts. This prevents contexts + # from being preserved across redirects or multiple requests + # within a single block. + self._context_stack.close() + + response = super().open( + request, + buffered=buffered, + follow_redirects=follow_redirects, + ) + response.json_module = self.application.json # type: ignore[assignment] + + # Re-push contexts that were preserved during the request. + for cm in self._new_contexts: + self._context_stack.enter_context(cm) + + self._new_contexts.clear() + return response + + def __enter__(self) -> FlaskClient: + if self.preserve_context: + raise RuntimeError("Cannot nest client invocations") + self.preserve_context = True + return self + + def __exit__( + self, + exc_type: type | None, + exc_value: BaseException | None, + tb: TracebackType | None, + ) -> None: + self.preserve_context = False + self._context_stack.close() + + +class FlaskCliRunner(CliRunner): + """A :class:`~click.testing.CliRunner` for testing a Flask app's + CLI commands. Typically created using + :meth:`~flask.Flask.test_cli_runner`. See :ref:`testing-cli`. + """ + + def __init__(self, app: Flask, **kwargs: t.Any) -> None: + self.app = app + super().__init__(**kwargs) + + def invoke( # type: ignore + self, cli: t.Any = None, args: t.Any = None, **kwargs: t.Any + ) -> Result: + """Invokes a CLI command in an isolated environment. See + :meth:`CliRunner.invoke ` for + full method documentation. See :ref:`testing-cli` for examples. + + If the ``obj`` argument is not given, passes an instance of + :class:`~flask.cli.ScriptInfo` that knows how to load the Flask + app being tested. + + :param cli: Command object to invoke. Default is the app's + :attr:`~flask.app.Flask.cli` group. + :param args: List of strings to invoke the command with. + + :return: a :class:`~click.testing.Result` object. + """ + if cli is None: + cli = self.app.cli + + if "obj" not in kwargs: + kwargs["obj"] = ScriptInfo(create_app=lambda: self.app) + + return super().invoke(cli, args, **kwargs) diff --git a/venv/lib/python3.10/site-packages/flask/typing.py b/venv/lib/python3.10/site-packages/flask/typing.py new file mode 100644 index 0000000..6b70c40 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/typing.py @@ -0,0 +1,93 @@ +from __future__ import annotations + +import collections.abc as cabc +import typing as t + +if t.TYPE_CHECKING: # pragma: no cover + from _typeshed.wsgi import WSGIApplication # noqa: F401 + from werkzeug.datastructures import Headers # noqa: F401 + from werkzeug.sansio.response import Response # noqa: F401 + +# The possible types that are directly convertible or are a Response object. +ResponseValue = t.Union[ + "Response", + str, + bytes, + list[t.Any], + # Only dict is actually accepted, but Mapping allows for TypedDict. + t.Mapping[str, t.Any], + t.Iterator[str], + t.Iterator[bytes], + cabc.AsyncIterable[str], # for Quart, until App is generic. + cabc.AsyncIterable[bytes], +] + +# the possible types for an individual HTTP header +# This should be a Union, but mypy doesn't pass unless it's a TypeVar. +HeaderValue = t.Union[str, list[str], tuple[str, ...]] + +# the possible types for HTTP headers +HeadersValue = t.Union[ + "Headers", + t.Mapping[str, HeaderValue], + t.Sequence[tuple[str, HeaderValue]], +] + +# The possible types returned by a route function. +ResponseReturnValue = t.Union[ + ResponseValue, + tuple[ResponseValue, HeadersValue], + tuple[ResponseValue, int], + tuple[ResponseValue, int, HeadersValue], + "WSGIApplication", +] + +# Allow any subclass of werkzeug.Response, such as the one from Flask, +# as a callback argument. Using werkzeug.Response directly makes a +# callback annotated with flask.Response fail type checking. +ResponseClass = t.TypeVar("ResponseClass", bound="Response") + +AppOrBlueprintKey = t.Optional[str] # The App key is None, whereas blueprints are named +AfterRequestCallable = t.Union[ + t.Callable[[ResponseClass], ResponseClass], + t.Callable[[ResponseClass], t.Awaitable[ResponseClass]], +] +BeforeFirstRequestCallable = t.Union[ + t.Callable[[], None], t.Callable[[], t.Awaitable[None]] +] +BeforeRequestCallable = t.Union[ + t.Callable[[], t.Optional[ResponseReturnValue]], + t.Callable[[], t.Awaitable[t.Optional[ResponseReturnValue]]], +] +ShellContextProcessorCallable = t.Callable[[], dict[str, t.Any]] +TeardownCallable = t.Union[ + t.Callable[[t.Optional[BaseException]], None], + t.Callable[[t.Optional[BaseException]], t.Awaitable[None]], +] +TemplateContextProcessorCallable = t.Union[ + t.Callable[[], dict[str, t.Any]], + t.Callable[[], t.Awaitable[dict[str, t.Any]]], +] +TemplateFilterCallable = t.Callable[..., t.Any] +TemplateGlobalCallable = t.Callable[..., t.Any] +TemplateTestCallable = t.Callable[..., bool] +URLDefaultCallable = t.Callable[[str, dict[str, t.Any]], None] +URLValuePreprocessorCallable = t.Callable[ + [t.Optional[str], t.Optional[dict[str, t.Any]]], None +] + +# This should take Exception, but that either breaks typing the argument +# with a specific exception, or decorating multiple times with different +# exceptions (and using a union type on the argument). +# https://github.com/pallets/flask/issues/4095 +# https://github.com/pallets/flask/issues/4295 +# https://github.com/pallets/flask/issues/4297 +ErrorHandlerCallable = t.Union[ + t.Callable[[t.Any], ResponseReturnValue], + t.Callable[[t.Any], t.Awaitable[ResponseReturnValue]], +] + +RouteCallable = t.Union[ + t.Callable[..., ResponseReturnValue], + t.Callable[..., t.Awaitable[ResponseReturnValue]], +] diff --git a/venv/lib/python3.10/site-packages/flask/views.py b/venv/lib/python3.10/site-packages/flask/views.py new file mode 100644 index 0000000..53fe976 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/views.py @@ -0,0 +1,191 @@ +from __future__ import annotations + +import typing as t + +from . import typing as ft +from .globals import current_app +from .globals import request + +F = t.TypeVar("F", bound=t.Callable[..., t.Any]) + +http_method_funcs = frozenset( + ["get", "post", "head", "options", "delete", "put", "trace", "patch"] +) + + +class View: + """Subclass this class and override :meth:`dispatch_request` to + create a generic class-based view. Call :meth:`as_view` to create a + view function that creates an instance of the class with the given + arguments and calls its ``dispatch_request`` method with any URL + variables. + + See :doc:`views` for a detailed guide. + + .. code-block:: python + + class Hello(View): + init_every_request = False + + def dispatch_request(self, name): + return f"Hello, {name}!" + + app.add_url_rule( + "/hello/", view_func=Hello.as_view("hello") + ) + + Set :attr:`methods` on the class to change what methods the view + accepts. + + Set :attr:`decorators` on the class to apply a list of decorators to + the generated view function. Decorators applied to the class itself + will not be applied to the generated view function! + + Set :attr:`init_every_request` to ``False`` for efficiency, unless + you need to store request-global data on ``self``. + """ + + #: The methods this view is registered for. Uses the same default + #: (``["GET", "HEAD", "OPTIONS"]``) as ``route`` and + #: ``add_url_rule`` by default. + methods: t.ClassVar[t.Collection[str] | None] = None + + #: Control whether the ``OPTIONS`` method is handled automatically. + #: Uses the same default (``True``) as ``route`` and + #: ``add_url_rule`` by default. + provide_automatic_options: t.ClassVar[bool | None] = None + + #: A list of decorators to apply, in order, to the generated view + #: function. Remember that ``@decorator`` syntax is applied bottom + #: to top, so the first decorator in the list would be the bottom + #: decorator. + #: + #: .. versionadded:: 0.8 + decorators: t.ClassVar[list[t.Callable[..., t.Any]]] = [] + + #: Create a new instance of this view class for every request by + #: default. If a view subclass sets this to ``False``, the same + #: instance is used for every request. + #: + #: A single instance is more efficient, especially if complex setup + #: is done during init. However, storing data on ``self`` is no + #: longer safe across requests, and :data:`~flask.g` should be used + #: instead. + #: + #: .. versionadded:: 2.2 + init_every_request: t.ClassVar[bool] = True + + def dispatch_request(self) -> ft.ResponseReturnValue: + """The actual view function behavior. Subclasses must override + this and return a valid response. Any variables from the URL + rule are passed as keyword arguments. + """ + raise NotImplementedError() + + @classmethod + def as_view( + cls, name: str, *class_args: t.Any, **class_kwargs: t.Any + ) -> ft.RouteCallable: + """Convert the class into a view function that can be registered + for a route. + + By default, the generated view will create a new instance of the + view class for every request and call its + :meth:`dispatch_request` method. If the view class sets + :attr:`init_every_request` to ``False``, the same instance will + be used for every request. + + Except for ``name``, all other arguments passed to this method + are forwarded to the view class ``__init__`` method. + + .. versionchanged:: 2.2 + Added the ``init_every_request`` class attribute. + """ + if cls.init_every_request: + + def view(**kwargs: t.Any) -> ft.ResponseReturnValue: + self = view.view_class( # type: ignore[attr-defined] + *class_args, **class_kwargs + ) + return current_app.ensure_sync(self.dispatch_request)(**kwargs) # type: ignore[no-any-return] + + else: + self = cls(*class_args, **class_kwargs) # pyright: ignore + + def view(**kwargs: t.Any) -> ft.ResponseReturnValue: + return current_app.ensure_sync(self.dispatch_request)(**kwargs) # type: ignore[no-any-return] + + if cls.decorators: + view.__name__ = name + view.__module__ = cls.__module__ + for decorator in cls.decorators: + view = decorator(view) + + # We attach the view class to the view function for two reasons: + # first of all it allows us to easily figure out what class-based + # view this thing came from, secondly it's also used for instantiating + # the view class so you can actually replace it with something else + # for testing purposes and debugging. + view.view_class = cls # type: ignore + view.__name__ = name + view.__doc__ = cls.__doc__ + view.__module__ = cls.__module__ + view.methods = cls.methods # type: ignore + view.provide_automatic_options = cls.provide_automatic_options # type: ignore + return view + + +class MethodView(View): + """Dispatches request methods to the corresponding instance methods. + For example, if you implement a ``get`` method, it will be used to + handle ``GET`` requests. + + This can be useful for defining a REST API. + + :attr:`methods` is automatically set based on the methods defined on + the class. + + See :doc:`views` for a detailed guide. + + .. code-block:: python + + class CounterAPI(MethodView): + def get(self): + return str(session.get("counter", 0)) + + def post(self): + session["counter"] = session.get("counter", 0) + 1 + return redirect(url_for("counter")) + + app.add_url_rule( + "/counter", view_func=CounterAPI.as_view("counter") + ) + """ + + def __init_subclass__(cls, **kwargs: t.Any) -> None: + super().__init_subclass__(**kwargs) + + if "methods" not in cls.__dict__: + methods = set() + + for base in cls.__bases__: + if getattr(base, "methods", None): + methods.update(base.methods) # type: ignore[attr-defined] + + for key in http_method_funcs: + if hasattr(cls, key): + methods.add(key.upper()) + + if methods: + cls.methods = methods + + def dispatch_request(self, **kwargs: t.Any) -> ft.ResponseReturnValue: + meth = getattr(self, request.method.lower(), None) + + # If the request method is HEAD and we don't have a handler for it + # retry with GET. + if meth is None and request.method == "HEAD": + meth = getattr(self, "get", None) + + assert meth is not None, f"Unimplemented method {request.method!r}" + return current_app.ensure_sync(meth)(**kwargs) # type: ignore[no-any-return] diff --git a/venv/lib/python3.10/site-packages/flask/wrappers.py b/venv/lib/python3.10/site-packages/flask/wrappers.py new file mode 100644 index 0000000..bab6102 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask/wrappers.py @@ -0,0 +1,257 @@ +from __future__ import annotations + +import typing as t + +from werkzeug.exceptions import BadRequest +from werkzeug.exceptions import HTTPException +from werkzeug.wrappers import Request as RequestBase +from werkzeug.wrappers import Response as ResponseBase + +from . import json +from .globals import current_app +from .helpers import _split_blueprint_path + +if t.TYPE_CHECKING: # pragma: no cover + from werkzeug.routing import Rule + + +class Request(RequestBase): + """The request object used by default in Flask. Remembers the + matched endpoint and view arguments. + + It is what ends up as :class:`~flask.request`. If you want to replace + the request object used you can subclass this and set + :attr:`~flask.Flask.request_class` to your subclass. + + The request object is a :class:`~werkzeug.wrappers.Request` subclass and + provides all of the attributes Werkzeug defines plus a few Flask + specific ones. + """ + + json_module: t.Any = json + + #: The internal URL rule that matched the request. This can be + #: useful to inspect which methods are allowed for the URL from + #: a before/after handler (``request.url_rule.methods``) etc. + #: Though if the request's method was invalid for the URL rule, + #: the valid list is available in ``routing_exception.valid_methods`` + #: instead (an attribute of the Werkzeug exception + #: :exc:`~werkzeug.exceptions.MethodNotAllowed`) + #: because the request was never internally bound. + #: + #: .. versionadded:: 0.6 + url_rule: Rule | None = None + + #: A dict of view arguments that matched the request. If an exception + #: happened when matching, this will be ``None``. + view_args: dict[str, t.Any] | None = None + + #: If matching the URL failed, this is the exception that will be + #: raised / was raised as part of the request handling. This is + #: usually a :exc:`~werkzeug.exceptions.NotFound` exception or + #: something similar. + routing_exception: HTTPException | None = None + + _max_content_length: int | None = None + _max_form_memory_size: int | None = None + _max_form_parts: int | None = None + + @property + def max_content_length(self) -> int | None: + """The maximum number of bytes that will be read during this request. If + this limit is exceeded, a 413 :exc:`~werkzeug.exceptions.RequestEntityTooLarge` + error is raised. If it is set to ``None``, no limit is enforced at the + Flask application level. However, if it is ``None`` and the request has + no ``Content-Length`` header and the WSGI server does not indicate that + it terminates the stream, then no data is read to avoid an infinite + stream. + + Each request defaults to the :data:`MAX_CONTENT_LENGTH` config, which + defaults to ``None``. It can be set on a specific ``request`` to apply + the limit to that specific view. This should be set appropriately based + on an application's or view's specific needs. + + .. versionchanged:: 3.1 + This can be set per-request. + + .. versionchanged:: 0.6 + This is configurable through Flask config. + """ + if self._max_content_length is not None: + return self._max_content_length + + if not current_app: + return super().max_content_length + + return current_app.config["MAX_CONTENT_LENGTH"] # type: ignore[no-any-return] + + @max_content_length.setter + def max_content_length(self, value: int | None) -> None: + self._max_content_length = value + + @property + def max_form_memory_size(self) -> int | None: + """The maximum size in bytes any non-file form field may be in a + ``multipart/form-data`` body. If this limit is exceeded, a 413 + :exc:`~werkzeug.exceptions.RequestEntityTooLarge` error is raised. If it + is set to ``None``, no limit is enforced at the Flask application level. + + Each request defaults to the :data:`MAX_FORM_MEMORY_SIZE` config, which + defaults to ``500_000``. It can be set on a specific ``request`` to + apply the limit to that specific view. This should be set appropriately + based on an application's or view's specific needs. + + .. versionchanged:: 3.1 + This is configurable through Flask config. + """ + if self._max_form_memory_size is not None: + return self._max_form_memory_size + + if not current_app: + return super().max_form_memory_size + + return current_app.config["MAX_FORM_MEMORY_SIZE"] # type: ignore[no-any-return] + + @max_form_memory_size.setter + def max_form_memory_size(self, value: int | None) -> None: + self._max_form_memory_size = value + + @property # type: ignore[override] + def max_form_parts(self) -> int | None: + """The maximum number of fields that may be present in a + ``multipart/form-data`` body. If this limit is exceeded, a 413 + :exc:`~werkzeug.exceptions.RequestEntityTooLarge` error is raised. If it + is set to ``None``, no limit is enforced at the Flask application level. + + Each request defaults to the :data:`MAX_FORM_PARTS` config, which + defaults to ``1_000``. It can be set on a specific ``request`` to apply + the limit to that specific view. This should be set appropriately based + on an application's or view's specific needs. + + .. versionchanged:: 3.1 + This is configurable through Flask config. + """ + if self._max_form_parts is not None: + return self._max_form_parts + + if not current_app: + return super().max_form_parts + + return current_app.config["MAX_FORM_PARTS"] # type: ignore[no-any-return] + + @max_form_parts.setter + def max_form_parts(self, value: int | None) -> None: + self._max_form_parts = value + + @property + def endpoint(self) -> str | None: + """The endpoint that matched the request URL. + + This will be ``None`` if matching failed or has not been + performed yet. + + This in combination with :attr:`view_args` can be used to + reconstruct the same URL or a modified URL. + """ + if self.url_rule is not None: + return self.url_rule.endpoint # type: ignore[no-any-return] + + return None + + @property + def blueprint(self) -> str | None: + """The registered name of the current blueprint. + + This will be ``None`` if the endpoint is not part of a + blueprint, or if URL matching failed or has not been performed + yet. + + This does not necessarily match the name the blueprint was + created with. It may have been nested, or registered with a + different name. + """ + endpoint = self.endpoint + + if endpoint is not None and "." in endpoint: + return endpoint.rpartition(".")[0] + + return None + + @property + def blueprints(self) -> list[str]: + """The registered names of the current blueprint upwards through + parent blueprints. + + This will be an empty list if there is no current blueprint, or + if URL matching failed. + + .. versionadded:: 2.0.1 + """ + name = self.blueprint + + if name is None: + return [] + + return _split_blueprint_path(name) + + def _load_form_data(self) -> None: + super()._load_form_data() + + # In debug mode we're replacing the files multidict with an ad-hoc + # subclass that raises a different error for key errors. + if ( + current_app + and current_app.debug + and self.mimetype != "multipart/form-data" + and not self.files + ): + from .debughelpers import attach_enctype_error_multidict + + attach_enctype_error_multidict(self) + + def on_json_loading_failed(self, e: ValueError | None) -> t.Any: + try: + return super().on_json_loading_failed(e) + except BadRequest as ebr: + if current_app and current_app.debug: + raise + + raise BadRequest() from ebr + + +class Response(ResponseBase): + """The response object that is used by default in Flask. Works like the + response object from Werkzeug but is set to have an HTML mimetype by + default. Quite often you don't have to create this object yourself because + :meth:`~flask.Flask.make_response` will take care of that for you. + + If you want to replace the response object used you can subclass this and + set :attr:`~flask.Flask.response_class` to your subclass. + + .. versionchanged:: 1.0 + JSON support is added to the response, like the request. This is useful + when testing to get the test client response data as JSON. + + .. versionchanged:: 1.0 + + Added :attr:`max_cookie_size`. + """ + + default_mimetype: str | None = "text/html" + + json_module = json + + autocorrect_location_header = False + + @property + def max_cookie_size(self) -> int: # type: ignore + """Read-only view of the :data:`MAX_COOKIE_SIZE` config key. + + See :attr:`~werkzeug.wrappers.Response.max_cookie_size` in + Werkzeug's docs. + """ + if current_app: + return current_app.config["MAX_COOKIE_SIZE"] # type: ignore[no-any-return] + + # return Werkzeug's default when not in an app context + return super().max_cookie_size diff --git a/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/METADATA b/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/METADATA new file mode 100644 index 0000000..44bd264 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/METADATA @@ -0,0 +1,144 @@ +Metadata-Version: 2.4 +Name: flask-cors +Version: 6.0.2 +Summary: A Flask extension simplifying CORS support +Author-email: Cory Dolphin +License-Expression: MIT +Project-URL: Homepage, https://corydolphin.github.io/flask-cors/ +Project-URL: Repository, https://github.com/corydolphin/flask-cors +Project-URL: Documentation, https://corydolphin.github.io/flask-cors/ +Keywords: python +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Requires-Python: <4.0,>=3.9 +Description-Content-Type: text/x-rst +Requires-Dist: flask>=0.9 +Requires-Dist: Werkzeug>=0.7 + +Flask-CORS +========== + +|Build Status| |Latest Version| |Supported Python versions| +|License| + +A Flask extension for handling Cross Origin Resource Sharing (CORS), making cross-origin AJAX possible. + +This package has a simple philosophy: when you want to enable CORS, you wish to enable it for all use cases on a domain. +This means no mucking around with different allowed headers, methods, etc. + +By default, submission of cookies across domains is disabled due to the security implications. +Please see the documentation for how to enable credential'ed requests, and please make sure you add some sort of `CSRF `__ protection before doing so! + +Installation +------------ + +Install the extension with using pip, or easy\_install. + +.. code:: bash + + $ pip install -U flask-cors + +Usage +----- + +This package exposes a Flask extension which by default enables CORS support on all routes, for all origins and methods. +It allows parameterization of all CORS headers on a per-resource level. +The package also contains a decorator, for those who prefer this approach. + +Simple Usage +~~~~~~~~~~~~ + +In the simplest case, initialize the Flask-Cors extension with default arguments in order to allow CORS for all domains on all routes. +See the full list of options in the `documentation `__. + +.. code:: python + + + from flask import Flask + from flask_cors import CORS + + app = Flask(__name__) + CORS(app) + + @app.route("/") + def helloWorld(): + return "Hello, cross-origin-world!" + +Resource specific CORS +^^^^^^^^^^^^^^^^^^^^^^ + +Alternatively, you can specify CORS options on a resource and origin level of granularity by passing a dictionary as the `resources` option, mapping paths to a set of options. +See the full list of options in the `documentation `__. + +.. code:: python + + app = Flask(__name__) + cors = CORS(app, resources={r"/api/*": {"origins": "*"}}) + + @app.route("/api/v1/users") + def list_users(): + return "user example" + +Route specific CORS via decorator +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This extension also exposes a simple decorator to decorate flask routes with. +Simply add ``@cross_origin()`` below a call to Flask's ``@app.route(..)`` to allow CORS on a given route. +See the full list of options in the `decorator documentation `__. + +.. code:: python + + @app.route("/") + @cross_origin() + def helloWorld(): + return "Hello, cross-origin-world!" + +Documentation +------------- + +For a full list of options, please see the full `documentation `__ + +Troubleshooting +--------------- + +If things aren't working as you expect, enable logging to help understand what is going on under the hood, and why. + +.. code:: python + + logging.getLogger('flask_cors').level = logging.DEBUG + + + +Set Up Your Development Environment +--- +The development environment uses `uv` for Python version management as well as dependency management. +There are helpful Makefile targets to do everything you need. Use `make test` to get started! + + +Contributing +------------ + +Questions, comments or improvements? +Please create an issue on `Github `__, tweet at `@corydolphin `__ or send me an email. +I do my best to include every contribution proposed in any way that I can. + +Credits +------- + +This Flask extension is based upon the `Decorator for the HTTP Access Control `__ written by Armin Ronacher. + +.. |Build Status| image:: https://github.com/corydolphin/flask-cors/actions/workflows/unittests.yaml/badge.svg + :target: https://travis-ci.org/corydolphin/flask-cors +.. |Latest Version| image:: https://img.shields.io/pypi/v/Flask-Cors.svg + :target: https://pypi.python.org/pypi/Flask-Cors/ +.. |Supported Python versions| image:: https://img.shields.io/pypi/pyversions/Flask-Cors.svg + :target: https://img.shields.io/pypi/pyversions/Flask-Cors.svg +.. |License| image:: http://img.shields.io/:license-mit-blue.svg + :target: https://pypi.python.org/pypi/Flask-Cors/ diff --git a/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/RECORD b/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/RECORD new file mode 100644 index 0000000..06db143 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/RECORD @@ -0,0 +1,16 @@ +flask_cors-6.0.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +flask_cors-6.0.2.dist-info/METADATA,sha256=xYYixYpXPBqR21WrRmV6PMSlRh7OQ5J3A4G9WD6k_-M,5327 +flask_cors-6.0.2.dist-info/RECORD,, +flask_cors-6.0.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +flask_cors-6.0.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 +flask_cors-6.0.2.dist-info/top_level.txt,sha256=aWye_0QNZPp_QtPF4ZluLHqnyVLT9CPJsfiGhwqkWuo,11 +flask_cors/__init__.py,sha256=Hnwpy4nxEz4tlcB3enWNXUBctcjgxRnUqa5B5zDabQ4,522 +flask_cors/__pycache__/__init__.cpython-310.pyc,, +flask_cors/__pycache__/core.cpython-310.pyc,, +flask_cors/__pycache__/decorator.cpython-310.pyc,, +flask_cors/__pycache__/extension.cpython-310.pyc,, +flask_cors/__pycache__/version.cpython-310.pyc,, +flask_cors/core.py,sha256=S8Wv7dz9e0FcR386TkBT-T8_VRsjFQGhNiR0jIpUYiY,14416 +flask_cors/decorator.py,sha256=YnPIDyWAfz60t2yxLgoOZLzgWWjZEvxQAPTTV4qfsss,4706 +flask_cors/extension.py,sha256=ONk6eNJiYT7HPEtmmySG8KgjzvAs9xtcJHNYvWLAS9s,8268 +flask_cors/version.py,sha256=lze97Y7ToUnpENKGAhOoSKx1zlZQe6ZfCSr8M50_K1g,22 diff --git a/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/REQUESTED b/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/WHEEL b/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/WHEEL new file mode 100644 index 0000000..e7fa31b --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/top_level.txt b/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/top_level.txt new file mode 100644 index 0000000..27af988 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask_cors-6.0.2.dist-info/top_level.txt @@ -0,0 +1 @@ +flask_cors diff --git a/venv/lib/python3.10/site-packages/flask_cors/__init__.py b/venv/lib/python3.10/site-packages/flask_cors/__init__.py new file mode 100644 index 0000000..732d401 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask_cors/__init__.py @@ -0,0 +1,17 @@ +from .decorator import cross_origin +from .extension import CORS +from .version import __version__ + +__all__ = ["CORS", "__version__", "cross_origin"] + +# Set default logging handler to avoid "No handler found" warnings. +import logging +from logging import NullHandler + +# Set initial level to WARN. Users must manually enable logging for +# flask_cors to see our logging. +rootlogger = logging.getLogger(__name__) +rootlogger.addHandler(NullHandler()) + +if rootlogger.level == logging.NOTSET: + rootlogger.setLevel(logging.WARN) diff --git a/venv/lib/python3.10/site-packages/flask_cors/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask_cors/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a7b315467ce7fc34f67dd5fc9a0877be65d688d1 GIT binary patch literal 539 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 B6IcKM literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask_cors/__pycache__/decorator.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask_cors/__pycache__/decorator.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7d7644dbec40edd54c895c37abd80b77545e2acb GIT binary patch literal 4469 zcma)AO>ZN|5uFc86t$APw%17kNE0mxP(sV#!ioZz1U5>p6AlNANxt8*GLw63&~<{5o3*TA#Ns1 zy``kpYbDFQW!DkT^#ieTsKE_OW$|!)sJwwbpPS}=nUM@4ZR?Ppi@82yN@hl| zi^z=Dt+6Mmovx!~90M8)xE38|A17p?G(O;2Y}lA9o(Ka3WS7UWyr8Q!BvmwwQq7_i z9&l6nl}H!`wMnFPbS_vR(?K-M;3}M7XHN!L0KUTNNQTx>BEx793C*-YXc!P-`ar5g zGoArzYNEi-E|DgD!cGM{RRGq-dw~c$Y$7vjOpjz1hm40I(=s8NhDyNbfQ^+j!cqvh z85rZ5Z7ZoYJBqOEvm(@NPpY9%6KiZbWqsKWY+6F#qJ_R`$BGD%-!#}E|KkW8V9AQ2 zn!8d@h^CTB5s&%lpXxR%@hLIPVy>8YIffuL39DnH)zu=^ks)%mQBgY7o!SvBE@A|c zr+|mJMf$ApoR--UMN~K0up zBe`1bK%NyPTusM}to`Rf0IUpAWvNWNg-YRvO+#HqVIIq0zu7(Ruy1#_b~^0o;Suf+ zpB_IsJUGJRcX)cbb-ev;hwbd{?;h`dKLfkMQie;Fz~}ISe5pmhOyhaj#b6D)NJGM< z`2cAoDRP)hcf`Qf(^=MSu(_M1C*E1DT2$&u@A4zW`X?-^zdZRw6<& zB85_9zAhseKu<_HTVO7bkv4~G{~=GAAq}Yn6ahq_PbaryzK%jB$~Erlytei>dMDCv z>-=8gAoR|(Zk3Dc87k-bd5a9t*?26K(fvS)kZKc;XVPJdN~EpCMaiW7WVVWdm|D!X z7OD)@H%eciGTFLb({Qq7Q=z*pQ=??uwU)cv(?w6JaG?NKJC-JnDGJt&+EyUt85LNb zhHS=dQYNCRv(qFp2CnhI*27RH9F={B(9IOJbF;8rY;veXDF$m*zzJ0P7u6<3`wgTH z`pb;JuL|vfx>;G@OD#KxHgum?bp_orb3`R+oFcYEZQ~4;;(e5=i;Y!-6x&m{+ zgOLbJw$6E+6@E}<0e#rMX?LKky&Z->^OxPNp{U58;b>Z2Z)I!cuk|eyvEdYPgW9TQ zi>;kiD6`mQQ0Bw_MHGhtSK%h9<=Co)qDZb)rL^9p$@P=ZP9S*f_rI|&lDI7$q&2%(5lF)Q;UVGQ7YiFZ4qH##0{|{|&k()3|c3aMxdW0^9LOvZXby%F%ZH?DeQ{1=VTJM(boUN77@ul=-T7T>s+PK1u?U+zEM zEBCc;nwS2icZD7jXnfNO{VT9?=>t>aKv7$&&}KQu?Paw@4?ZrrkB&}}1Nma%X#N}9 z7?vuiiKliWZ*Vo#`Qq7y{cTnqVuN<Be}11}gnx{qx^%pcxR|F%Qo0 zhTa%Z+h_aHjk-r%A5Zd!Mb8`dt4>nEL%oK}viHbacHi@sy%o3NzWQ=Du|;Wzn0C{DAXTD63LOCluq!Hjx9Lq58*{6oMyM~e0D=tPmE+n)Lb ze$X&5GSMTCS;a>?y z{gy5?su*4DIxDkQ$a}qrOXK;9*Z4^N4!7-h@@6cDX#IwH%TkN;inbW?1se;isX`)F zQw=ok!s?@toYhSWH0{HTP|!r5&ffjL`Zc*hixgg2*X+f*w)7P`=PVXqQ#sJ2;w5Lr LeMG_ZR{Z}0OX^T= literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask_cors/__pycache__/extension.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask_cors/__pycache__/extension.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5e666c48c0f569049c2fc539766f0add770a6a98 GIT binary patch literal 7959 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 RX6zY9ICbZ2#rk4q@xOFWNGt#V literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask_cors/__pycache__/version.cpython-310.pyc b/venv/lib/python3.10/site-packages/flask_cors/__pycache__/version.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a410946e1bb0ef41ddb0bc1602977398a4063c6b GIT binary patch literal 202 zcmd1j<>g`kf(5+QnPNctF^Gc<7=auIATH(r5-AK(3@MDk44O<;tY&%!dPaVljJLSs z1f0RUCeG<^U7 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/flask_cors/core.py b/venv/lib/python3.10/site-packages/flask_cors/core.py new file mode 100644 index 0000000..8df343c --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask_cors/core.py @@ -0,0 +1,399 @@ +import logging +import re +from collections.abc import Iterable +from datetime import timedelta + +from flask import current_app, request +from werkzeug.datastructures import Headers, MultiDict + +LOG = logging.getLogger(__name__) + +# Response Headers +ACL_ORIGIN = "Access-Control-Allow-Origin" +ACL_METHODS = "Access-Control-Allow-Methods" +ACL_ALLOW_HEADERS = "Access-Control-Allow-Headers" +ACL_EXPOSE_HEADERS = "Access-Control-Expose-Headers" +ACL_CREDENTIALS = "Access-Control-Allow-Credentials" +ACL_MAX_AGE = "Access-Control-Max-Age" +ACL_RESPONSE_PRIVATE_NETWORK = "Access-Control-Allow-Private-Network" + +# Request Header +ACL_REQUEST_METHOD = "Access-Control-Request-Method" +ACL_REQUEST_HEADERS = "Access-Control-Request-Headers" +ACL_REQUEST_HEADER_PRIVATE_NETWORK = "Access-Control-Request-Private-Network" + +ALL_METHODS = ["GET", "HEAD", "POST", "OPTIONS", "PUT", "PATCH", "DELETE"] +CONFIG_OPTIONS = [ + "CORS_ORIGINS", + "CORS_METHODS", + "CORS_ALLOW_HEADERS", + "CORS_EXPOSE_HEADERS", + "CORS_SUPPORTS_CREDENTIALS", + "CORS_MAX_AGE", + "CORS_SEND_WILDCARD", + "CORS_AUTOMATIC_OPTIONS", + "CORS_VARY_HEADER", + "CORS_RESOURCES", + "CORS_INTERCEPT_EXCEPTIONS", + "CORS_ALWAYS_SEND", + "CORS_ALLOW_PRIVATE_NETWORK", +] +# Attribute added to request object by decorator to indicate that CORS +# was evaluated, in case the decorator and extension are both applied +# to a view. +FLASK_CORS_EVALUATED = "_FLASK_CORS_EVALUATED" + +# Strange, but this gets the type of a compiled regex, which is otherwise not +# exposed in a public API. +RegexObject = type(re.compile("")) +DEFAULT_OPTIONS = dict( + origins="*", + methods=ALL_METHODS, + allow_headers="*", + expose_headers=None, + supports_credentials=False, + max_age=None, + send_wildcard=False, + automatic_options=True, + vary_header=True, + resources=r"/*", + intercept_exceptions=True, + always_send=True, + allow_private_network=False, +) + + +def parse_resources(resources): + if isinstance(resources, dict): + # To make the API more consistent with the decorator, allow a + # resource of '*', which is not actually a valid regexp. + resources = [(re_fix(k), v) for k, v in resources.items()] + + # Sort patterns with static (literal) paths first, then by regex specificity + def sort_key(pair): + pattern, _ = pair + if isinstance(pattern, RegexObject): + return (1, 0, -pattern.pattern.count("/"), -len(pattern.pattern)) + elif probably_regex(pattern): + return (1, 1, -pattern.count("/"), -len(pattern)) + else: + return (0, 0, -pattern.count("/"), -len(pattern)) + + return sorted(resources, key=sort_key) + + elif isinstance(resources, str): + return [(re_fix(resources), {})] + + elif isinstance(resources, Iterable): + return [(re_fix(r), {}) for r in resources] + + # Type of compiled regex is not part of the public API. Test for this + # at runtime. + elif isinstance(resources, RegexObject): + return [(re_fix(resources), {})] + + else: + raise ValueError("Unexpected value for resources argument.") + + +def get_regexp_pattern(regexp): + """ + Helper that returns regexp pattern from given value. + + :param regexp: regular expression to stringify + :type regexp: _sre.SRE_Pattern or str + :returns: string representation of given regexp pattern + :rtype: str + """ + try: + return regexp.pattern + except AttributeError: + return str(regexp) + + +def get_cors_origins(options, request_origin): + origins = options.get("origins") + wildcard = r".*" in origins + + # If the Origin header is not present terminate this set of steps. + # The request is outside the scope of this specification.-- W3Spec + if request_origin: + LOG.debug("CORS request received with 'Origin' %s", request_origin) + + # If the allowed origins is an asterisk or 'wildcard', always match + if wildcard and options.get("send_wildcard"): + LOG.debug("Allowed origins are set to '*'. Sending wildcard CORS header.") + return ["*"] + # If the value of the Origin header is a case-insensitive match + # for any of the values in list of origins. + # NOTE: Per RFC 1035 and RFC 4343 schemes and hostnames are case insensitive. + elif try_match_any_pattern(request_origin, origins, caseSensitive=False): + LOG.debug( + "The request's Origin header matches. Sending CORS headers.", + ) + # Add a single Access-Control-Allow-Origin header, with either + # the value of the Origin header or the string "*" as value. + # -- W3Spec + return [request_origin] + else: + LOG.debug("The request's Origin header does not match any of allowed origins.") + return None + + elif options.get("always_send"): + if wildcard: + # If wildcard is in the origins, even if 'send_wildcard' is False, + # simply send the wildcard. Unless supports_credentials is True, + # since that is forbidden by the spec.. + # It is the most-likely to be correct thing to do (the only other + # option is to return nothing, which almost certainly not what + # the developer wants if the '*' origin was specified. + if options.get("supports_credentials"): + return None + else: + return ["*"] + else: + # Return all origins that are not regexes. + return sorted([o for o in origins if not probably_regex(o)]) + + # Terminate these steps, return the original request untouched. + else: + LOG.debug( + "The request did not contain an 'Origin' header. This means the browser or client did not request CORS, ensure the Origin Header is set." + ) + return None + + +def get_allow_headers(options, acl_request_headers): + if acl_request_headers: + request_headers = [h.strip() for h in acl_request_headers.split(",")] + + # any header that matches in the allow_headers + matching_headers = filter(lambda h: try_match_any_pattern(h, options.get("allow_headers"), caseSensitive=False), request_headers) + + return ", ".join(sorted(matching_headers)) + + return None + + +def get_cors_headers(options, request_headers, request_method): + origins_to_set = get_cors_origins(options, request_headers.get("Origin")) + headers = MultiDict() + + if not origins_to_set: # CORS is not enabled for this route + return headers + + for origin in origins_to_set: + headers.add(ACL_ORIGIN, origin) + + headers[ACL_EXPOSE_HEADERS] = options.get("expose_headers") + + if options.get("supports_credentials"): + headers[ACL_CREDENTIALS] = "true" # case sensitive + + if ( + ACL_REQUEST_HEADER_PRIVATE_NETWORK in request_headers + and request_headers.get(ACL_REQUEST_HEADER_PRIVATE_NETWORK) == "true" + ): + allow_private_network = "true" if options.get("allow_private_network") else "false" + headers[ACL_RESPONSE_PRIVATE_NETWORK] = allow_private_network + + # This is a preflight request + # http://www.w3.org/TR/cors/#resource-preflight-requests + if request_method == "OPTIONS": + acl_request_method = request_headers.get(ACL_REQUEST_METHOD, "").upper() + + # If there is no Access-Control-Request-Method header or if parsing + # failed, do not set any additional headers + if acl_request_method and acl_request_method in options.get("methods"): + # If method is not a case-sensitive match for any of the values in + # list of methods do not set any additional headers and terminate + # this set of steps. + headers[ACL_ALLOW_HEADERS] = get_allow_headers(options, request_headers.get(ACL_REQUEST_HEADERS)) + headers[ACL_MAX_AGE] = options.get("max_age") + headers[ACL_METHODS] = options.get("methods") + else: + LOG.info( + "The request's Access-Control-Request-Method header does not match allowed methods. CORS headers will not be applied." + ) + + # http://www.w3.org/TR/cors/#resource-implementation + if options.get("vary_header"): + # Only set header if the origin returned will vary dynamically, + # i.e. if we are not returning an asterisk, and there are multiple + # origins that can be matched. + if headers[ACL_ORIGIN] == "*": + pass + elif ( + len(options.get("origins")) > 1 + or len(origins_to_set) > 1 + or any(map(probably_regex, options.get("origins"))) + ): + headers.add("Vary", "Origin") + + return MultiDict((k, v) for k, v in headers.items() if v) + + +def set_cors_headers(resp, options): + """ + Performs the actual evaluation of Flask-CORS options and actually + modifies the response object. + + This function is used both in the decorator and the after_request + callback + """ + + # If CORS has already been evaluated via the decorator, skip + if hasattr(resp, FLASK_CORS_EVALUATED): + LOG.debug("CORS have been already evaluated, skipping") + return resp + + # Some libraries, like OAuthlib, set resp.headers to non Multidict + # objects (Werkzeug Headers work as well). This is a problem because + # headers allow repeated values. + if not isinstance(resp.headers, Headers) and not isinstance(resp.headers, MultiDict): + resp.headers = MultiDict(resp.headers) + + headers_to_set = get_cors_headers(options, request.headers, request.method) + + LOG.debug("Settings CORS headers: %s", str(headers_to_set)) + + for k, v in headers_to_set.items(): + resp.headers.add(k, v) + + return resp + + +def probably_regex(maybe_regex): + if isinstance(maybe_regex, RegexObject): + return True + else: + common_regex_chars = ["*", "\\", "]", "?", "$", "^", "[", "]", "(", ")"] + # Use common characters used in regular expressions as a proxy + # for if this string is in fact a regex. + return any(c in maybe_regex for c in common_regex_chars) + + +def re_fix(reg): + """ + Replace the invalid regex r'*' with the valid, wildcard regex r'/.*' to + enable the CORS app extension to have a more user friendly api. + """ + return r".*" if reg == r"*" else reg + + +def try_match_any_pattern(inst, patterns, caseSensitive=True): + return any(try_match_pattern(inst, pattern, caseSensitive) for pattern in patterns) + +def try_match_pattern(value, pattern, caseSensitive=True): + """ + Safely attempts to match a pattern or string to a value. This + function can be used to match request origins, headers, or paths. + The value of caseSensitive should be set in accordance to the + data being compared e.g. origins and headers are case insensitive + whereas paths are case-sensitive + """ + if isinstance(pattern, RegexObject): + return re.match(pattern, value) + if probably_regex(pattern): + flags = 0 if caseSensitive else re.IGNORECASE + try: + return re.match(pattern, value, flags=flags) + except re.error: + return False + try: + v = str(value) + p = str(pattern) + return v == p if caseSensitive else v.casefold() == p.casefold() + except Exception: + return value == pattern + +def get_cors_options(appInstance, *dicts): + """ + Compute CORS options for an application by combining the DEFAULT_OPTIONS, + the app's configuration-specified options and any dictionaries passed. The + last specified option wins. + """ + options = DEFAULT_OPTIONS.copy() + options.update(get_app_kwarg_dict(appInstance)) + if dicts: + for d in dicts: + options.update(d) + + return serialize_options(options) + + +def get_app_kwarg_dict(appInstance=None): + """Returns the dictionary of CORS specific app configurations.""" + app = appInstance or current_app + + # In order to support blueprints which do not have a config attribute + app_config = getattr(app, "config", {}) + + return {k.lower().replace("cors_", ""): app_config.get(k) for k in CONFIG_OPTIONS if app_config.get(k) is not None} + + +def flexible_str(obj): + """ + A more flexible str function which intelligently handles stringifying + strings, lists and other iterables. The results are lexographically sorted + to ensure generated responses are consistent when iterables such as Set + are used. + """ + if obj is None: + return None + elif not isinstance(obj, str) and isinstance(obj, Iterable): + return ", ".join(str(item) for item in sorted(obj)) + else: + return str(obj) + + +def serialize_option(options_dict, key, upper=False): + if key in options_dict: + value = flexible_str(options_dict[key]) + options_dict[key] = value.upper() if upper else value + + +def ensure_iterable(inst): + """ + Wraps scalars or string types as a list, or returns the iterable instance. + """ + if isinstance(inst, str) or not isinstance(inst, Iterable): + return [inst] + else: + return inst + + +def sanitize_regex_param(param): + return [re_fix(x) for x in ensure_iterable(param)] + + +def serialize_options(opts): + """ + A helper method to serialize and processes the options dictionary. + """ + options = (opts or {}).copy() + + for key in opts.keys(): + if key not in DEFAULT_OPTIONS: + LOG.warning("Unknown option passed to Flask-CORS: %s", key) + + # Ensure origins is a list of allowed origins with at least one entry. + options["origins"] = sanitize_regex_param(options.get("origins")) + options["allow_headers"] = sanitize_regex_param(options.get("allow_headers")) + + # This is expressly forbidden by the spec. Raise a value error so people + # don't get burned in production. + if r".*" in options["origins"] and options["supports_credentials"] and options["send_wildcard"]: + raise ValueError( + "Cannot use supports_credentials in conjunction with" + "an origin string of '*'. See: " + "http://www.w3.org/TR/cors/#resource-requests" + ) + + serialize_option(options, "expose_headers") + serialize_option(options, "methods", upper=True) + + if isinstance(options.get("max_age"), timedelta): + options["max_age"] = str(int(options["max_age"].total_seconds())) + + return options diff --git a/venv/lib/python3.10/site-packages/flask_cors/decorator.py b/venv/lib/python3.10/site-packages/flask_cors/decorator.py new file mode 100644 index 0000000..f8915b6 --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask_cors/decorator.py @@ -0,0 +1,129 @@ +import logging +from functools import update_wrapper + +from flask import current_app, make_response, request + +from .core import FLASK_CORS_EVALUATED, get_cors_options, set_cors_headers + +LOG = logging.getLogger(__name__) + + +def cross_origin(*args, **kwargs): + """ + This function is the decorator which is used to wrap a Flask route with. + In the simplest case, simply use the default parameters to allow all + origins in what is the most permissive configuration. If this method + modifies state or performs authentication which may be brute-forced, you + should add some degree of protection, such as Cross Site Request Forgery + protection. + + :param origins: + The origin, or list of origins to allow requests from. + The origin(s) may be regular expressions, case-sensitive strings, + or else an asterisk + + Default : '*' + :type origins: list, string or regex + + :param methods: + The method or list of methods which the allowed origins are allowed to + access for non-simple requests. + + Default : [GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE] + :type methods: list or string + + :param expose_headers: + The header or list which are safe to expose to the API of a CORS API + specification. + + Default : None + :type expose_headers: list or string + + :param allow_headers: + The header or list of header field names which can be used when this + resource is accessed by allowed origins. The header(s) may be regular + expressions, case-sensitive strings, or else an asterisk. + + Default : '*', allow all headers + :type allow_headers: list, string or regex + + :param supports_credentials: + Allows users to make authenticated requests. If true, injects the + `Access-Control-Allow-Credentials` header in responses. This allows + cookies and credentials to be submitted across domains. + + :note: This option cannot be used in conjunction with a '*' origin + + Default : False + :type supports_credentials: bool + + :param max_age: + The maximum time for which this CORS request maybe cached. This value + is set as the `Access-Control-Max-Age` header. + + Default : None + :type max_age: timedelta, integer, string or None + + :param send_wildcard: If True, and the origins parameter is `*`, a wildcard + `Access-Control-Allow-Origin` header is sent, rather than the + request's `Origin` header. + + Default : False + :type send_wildcard: bool + + :param vary_header: + If True, the header Vary: Origin will be returned as per the W3 + implementation guidelines. + + Setting this header when the `Access-Control-Allow-Origin` is + dynamically generated (e.g. when there is more than one allowed + origin, and an Origin than '*' is returned) informs CDNs and other + caches that the CORS headers are dynamic, and cannot be cached. + + If False, the Vary header will never be injected or altered. + + Default : True + :type vary_header: bool + + :param automatic_options: + Only applies to the `cross_origin` decorator. If True, Flask-CORS will + override Flask's default OPTIONS handling to return CORS headers for + OPTIONS requests. + + Default : True + :type automatic_options: bool + + """ + _options = kwargs + + def decorator(f): + LOG.debug("Enabling %s for cross_origin using options:%s", f, _options) + + # If True, intercept OPTIONS requests by modifying the view function, + # replicating Flask's default behavior, and wrapping the response with + # CORS headers. + # + # If f.provide_automatic_options is unset or True, Flask's route + # decorator (which is actually wraps the function object we return) + # intercepts OPTIONS handling, and requests will not have CORS headers + if _options.get("automatic_options", True): + f.required_methods = getattr(f, "required_methods", set()) + f.required_methods.add("OPTIONS") + f.provide_automatic_options = False + + def wrapped_function(*args, **kwargs): + # Handle setting of Flask-Cors parameters + options = get_cors_options(current_app, _options) + + if options.get("automatic_options") and request.method == "OPTIONS": + resp = current_app.make_default_options_response() + else: + resp = make_response(f(*args, **kwargs)) + + set_cors_headers(resp, options) + setattr(resp, FLASK_CORS_EVALUATED, True) + return resp + + return update_wrapper(wrapped_function, f) + + return decorator diff --git a/venv/lib/python3.10/site-packages/flask_cors/extension.py b/venv/lib/python3.10/site-packages/flask_cors/extension.py new file mode 100644 index 0000000..434f65e --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask_cors/extension.py @@ -0,0 +1,206 @@ +import logging +from urllib.parse import unquote + +from flask import request + +from .core import ACL_ORIGIN, get_cors_options, get_regexp_pattern, parse_resources, set_cors_headers, try_match_pattern + +LOG = logging.getLogger(__name__) + + +class CORS: + """ + Initializes Cross Origin Resource sharing for the application. The + arguments are identical to `cross_origin`, with the addition of a + `resources` parameter. The resources parameter defines a series of regular + expressions for resource paths to match and optionally, the associated + options to be applied to the particular resource. These options are + identical to the arguments to `cross_origin`. + + The settings for CORS are determined in the following order + + 1. Resource level settings (e.g when passed as a dictionary) + 2. Keyword argument settings + 3. App level configuration settings (e.g. CORS_*) + 4. Default settings + + Note: as it is possible for multiple regular expressions to match a + resource path, the regular expressions are first sorted by length, + from longest to shortest, in order to attempt to match the most + specific regular expression. This allows the definition of a + number of specific resource options, with a wildcard fallback + for all other resources. + + :param resources: + The series of regular expression and (optionally) associated CORS + options to be applied to the given resource path. + + If the argument is a dictionary, it's keys must be regular expressions, + and the values must be a dictionary of kwargs, identical to the kwargs + of this function. + + If the argument is a list, it is expected to be a list of regular + expressions, for which the app-wide configured options are applied. + + If the argument is a string, it is expected to be a regular expression + for which the app-wide configured options are applied. + + Default : Match all and apply app-level configuration + + :type resources: dict, iterable or string + + :param origins: + The origin, or list of origins to allow requests from. + The origin(s) may be regular expressions, case-sensitive strings, + or else an asterisk. + + .. note:: + + origins must include the schema and the port (if not port 80), + e.g., + `CORS(app, origins=["http://localhost:8000", "https://example.com"])`. + + Default : '*' + :type origins: list, string or regex + + :param methods: + The method or list of methods which the allowed origins are allowed to + access for non-simple requests. + + Default : [GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE] + :type methods: list or string + + :param expose_headers: + The header or list which are safe to expose to the API of a CORS API + specification. + + Default : None + :type expose_headers: list or string + + :param allow_headers: + The header or list of header field names which can be used when this + resource is accessed by allowed origins. The header(s) may be regular + expressions, case-sensitive strings, or else an asterisk. + + Default : '*', allow all headers + :type allow_headers: list, string or regex + + :param supports_credentials: + Allows users to make authenticated requests. If true, injects the + `Access-Control-Allow-Credentials` header in responses. This allows + cookies and credentials to be submitted across domains. + + :note: This option cannot be used in conjunction with a '*' origin + + Default : False + :type supports_credentials: bool + + :param max_age: + The maximum time for which this CORS request maybe cached. This value + is set as the `Access-Control-Max-Age` header. + + Default : None + :type max_age: timedelta, integer, string or None + + :param send_wildcard: If True, and the origins parameter is `*`, a wildcard + `Access-Control-Allow-Origin` header is sent, rather than the + request's `Origin` header. + + Default : False + :type send_wildcard: bool + + :param vary_header: + If True, the header Vary: Origin will be returned as per the W3 + implementation guidelines. + + Setting this header when the `Access-Control-Allow-Origin` is + dynamically generated (e.g. when there is more than one allowed + origin, and an Origin than '*' is returned) informs CDNs and other + caches that the CORS headers are dynamic, and cannot be cached. + + If False, the Vary header will never be injected or altered. + + Default : True + :type vary_header: bool + + :param allow_private_network: + If True, the response header `Access-Control-Allow-Private-Network` + will be set with the value 'true' whenever the request header + `Access-Control-Request-Private-Network` has a value 'true'. + + If False, the response header `Access-Control-Allow-Private-Network` + will be set with the value 'false' whenever the request header + `Access-Control-Request-Private-Network` has a value of 'true'. + + If the request header `Access-Control-Request-Private-Network` is + not present or has a value other than 'true', the response header + `Access-Control-Allow-Private-Network` will not be set. + + Default : True + :type allow_private_network: bool + """ + + def __init__(self, app=None, **kwargs): + self._options = kwargs + if app is not None: + self.init_app(app, **kwargs) + + def init_app(self, app, **kwargs): + # The resources and options may be specified in the App Config, the CORS constructor + # or the kwargs to the call to init_app. + options = get_cors_options(app, self._options, kwargs) + + # Flatten our resources into a list of the form + # (pattern_or_regexp, dictionary_of_options) + resources = parse_resources(options.get("resources")) + + # Compute the options for each resource by combining the options from + # the app's configuration, the constructor, the kwargs to init_app, and + # finally the options specified in the resources dictionary. + resources = [(pattern, get_cors_options(app, options, opts)) for (pattern, opts) in resources] + + # Create a human-readable form of these resources by converting the compiled + # regular expressions into strings. + resources_human = {get_regexp_pattern(pattern): opts for (pattern, opts) in resources} + LOG.debug("Configuring CORS with resources: %s", resources_human) + + cors_after_request = make_after_request_function(resources) + app.after_request(cors_after_request) + + # Wrap exception handlers with cross_origin + # These error handlers will still respect the behavior of the route + if options.get("intercept_exceptions", True): + + def _after_request_decorator(f): + def wrapped_function(*args, **kwargs): + return cors_after_request(app.make_response(f(*args, **kwargs))) + + return wrapped_function + + if hasattr(app, "handle_exception"): + app.handle_exception = _after_request_decorator(app.handle_exception) + app.handle_user_exception = _after_request_decorator(app.handle_user_exception) + + +def make_after_request_function(resources): + def cors_after_request(resp): + # If CORS headers are set in a view decorator, pass + if resp.headers is not None and resp.headers.get(ACL_ORIGIN): + LOG.debug("CORS have been already evaluated, skipping") + return resp + normalized_path = unquote(request.path) + for res_regex, res_options in resources: + if try_match_pattern(normalized_path, res_regex, caseSensitive=True): + LOG.debug( + "Request to '%r' matches CORS resource '%s'. Using options: %s", + request.path, + get_regexp_pattern(res_regex), + res_options, + ) + set_cors_headers(resp, res_options) + break + else: + LOG.debug("No CORS rule matches") + return resp + + return cors_after_request diff --git a/venv/lib/python3.10/site-packages/flask_cors/version.py b/venv/lib/python3.10/site-packages/flask_cors/version.py new file mode 100644 index 0000000..7f229cf --- /dev/null +++ b/venv/lib/python3.10/site-packages/flask_cors/version.py @@ -0,0 +1 @@ +__version__ = "6.0.2" diff --git a/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/LICENSE.txt b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/LICENSE.txt new file mode 100644 index 0000000..275cafd --- /dev/null +++ b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (c) 2013-2024 Python Charmers, Australia + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/METADATA b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/METADATA new file mode 100644 index 0000000..3d0e551 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/METADATA @@ -0,0 +1,112 @@ +Metadata-Version: 2.1 +Name: future +Version: 1.0.0 +Summary: Clean single-source support for Python 3 and 2 +Home-page: https://python-future.org +Author: Ed Schofield +Author-email: ed@pythoncharmers.com +License: MIT +Project-URL: Source, https://github.com/PythonCharmers/python-future +Keywords: future past python3 migration futurize backport six 2to3 modernize pasteurize 3to2 +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: License :: OSI Approved +Classifier: License :: OSI Approved :: MIT License +Classifier: Development Status :: 6 - Mature +Classifier: Intended Audience :: Developers +Requires-Python: >=2.6, !=3.0.*, !=3.1.*, !=3.2.* +License-File: LICENSE.txt + + +future: Easy, safe support for Python 2/3 compatibility +======================================================= + +``future`` is the missing compatibility layer between Python 2 and Python +3. It allows you to use a single, clean Python 3.x-compatible codebase to +support both Python 2 and Python 3 with minimal overhead. + +It is designed to be used as follows:: + + from __future__ import (absolute_import, division, + print_function, unicode_literals) + from builtins import ( + bytes, dict, int, list, object, range, str, + ascii, chr, hex, input, next, oct, open, + pow, round, super, + filter, map, zip) + +followed by predominantly standard, idiomatic Python 3 code that then runs +similarly on Python 2.6/2.7 and Python 3.3+. + +The imports have no effect on Python 3. On Python 2, they shadow the +corresponding builtins, which normally have different semantics on Python 3 +versus 2, to provide their Python 3 semantics. + + +Standard library reorganization +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``future`` supports the standard library reorganization (PEP 3108) through the +following Py3 interfaces: + + >>> # Top-level packages with Py3 names provided on Py2: + >>> import html.parser + >>> import queue + >>> import tkinter.dialog + >>> import xmlrpc.client + >>> # etc. + + >>> # Aliases provided for extensions to existing Py2 module names: + >>> from future.standard_library import install_aliases + >>> install_aliases() + + >>> from collections import Counter, OrderedDict # backported to Py2.6 + >>> from collections import UserDict, UserList, UserString + >>> import urllib.request + >>> from itertools import filterfalse, zip_longest + >>> from subprocess import getoutput, getstatusoutput + + +Automatic conversion +-------------------- + +An included script called `futurize +`_ aids in converting +code (from either Python 2 or Python 3) to code compatible with both +platforms. It is similar to ``python-modernize`` but goes further in +providing Python 3 compatibility through the use of the backported types +and builtin functions in ``future``. + + +Documentation +------------- + +See: https://python-future.org + + +Credits +------- + +:Author: Ed Schofield, Jordan M. Adler, et al +:Sponsor: Python Charmers: https://pythoncharmers.com +:Others: See docs/credits.rst or https://python-future.org/credits.html + + +Licensing +--------- +Copyright 2013-2024 Python Charmers, Australia. +The software is distributed under an MIT licence. See LICENSE.txt. + diff --git a/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/RECORD b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/RECORD new file mode 100644 index 0000000..dab21bb --- /dev/null +++ b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/RECORD @@ -0,0 +1,417 @@ +../../../bin/futurize,sha256=1XI700osjuILaR4Y77YdAkKcZEZJ-u3rwKeYMKNdPdE,248 +../../../bin/pasteurize,sha256=BitBlxDAMLABv_38PcLgTZ25alhlH7I7YWW09dnam4Y,250 +future-1.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +future-1.0.0.dist-info/LICENSE.txt,sha256=vroEEDw6n_-Si1nHfV--sDo-S9DXrD0eH4mUoh4w7js,1075 +future-1.0.0.dist-info/METADATA,sha256=MNNaUKMRbZAmVYq5Am_-1NtYZ1ViECpSa8VsQjXbkT4,3959 +future-1.0.0.dist-info/RECORD,, +future-1.0.0.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92 +future-1.0.0.dist-info/entry_points.txt,sha256=U9LtP60KSNXoj58mzV5TbotBF371gTWzrKrzJIH80Kw,88 +future-1.0.0.dist-info/top_level.txt,sha256=DT0C3az2gb-uJaj-fs0h4WwHYlJVDp0EvLdud1y5Zyw,38 +future/__init__.py,sha256=T9PNLu6ycmVtpETLxRurmufuRAaosICWmWdAExZb5a8,2938 +future/__pycache__/__init__.cpython-310.pyc,, +future/backports/__init__.py,sha256=5QXvQ_jc5Xx6p4dSaHnZXPZazBEunKDKhbUjxZ0XD1I,530 +future/backports/__pycache__/__init__.cpython-310.pyc,, +future/backports/__pycache__/_markupbase.cpython-310.pyc,, +future/backports/__pycache__/datetime.cpython-310.pyc,, +future/backports/__pycache__/misc.cpython-310.pyc,, +future/backports/__pycache__/socket.cpython-310.pyc,, +future/backports/__pycache__/socketserver.cpython-310.pyc,, +future/backports/__pycache__/total_ordering.cpython-310.pyc,, +future/backports/_markupbase.py,sha256=MDPTCykLq4J7Aea3PvYotATEE0CG4R_SjlxfJaLXTJM,16215 +future/backports/datetime.py,sha256=jITCStolfadhCEhejFd99wCo59mBDF0Ruj8l7QcG7Ms,75553 +future/backports/email/__init__.py,sha256=eH3AJr3FkuBy_D6yS1V2K76Q2CQ93y2zmAMWmn8FbHI,2269 +future/backports/email/__pycache__/__init__.cpython-310.pyc,, +future/backports/email/__pycache__/_encoded_words.cpython-310.pyc,, +future/backports/email/__pycache__/_header_value_parser.cpython-310.pyc,, +future/backports/email/__pycache__/_parseaddr.cpython-310.pyc,, +future/backports/email/__pycache__/_policybase.cpython-310.pyc,, +future/backports/email/__pycache__/base64mime.cpython-310.pyc,, +future/backports/email/__pycache__/charset.cpython-310.pyc,, +future/backports/email/__pycache__/encoders.cpython-310.pyc,, +future/backports/email/__pycache__/errors.cpython-310.pyc,, +future/backports/email/__pycache__/feedparser.cpython-310.pyc,, +future/backports/email/__pycache__/generator.cpython-310.pyc,, +future/backports/email/__pycache__/header.cpython-310.pyc,, +future/backports/email/__pycache__/headerregistry.cpython-310.pyc,, +future/backports/email/__pycache__/iterators.cpython-310.pyc,, +future/backports/email/__pycache__/message.cpython-310.pyc,, +future/backports/email/__pycache__/parser.cpython-310.pyc,, +future/backports/email/__pycache__/policy.cpython-310.pyc,, +future/backports/email/__pycache__/quoprimime.cpython-310.pyc,, +future/backports/email/__pycache__/utils.cpython-310.pyc,, +future/backports/email/_encoded_words.py,sha256=m1vTRfxAQdg4VyWO7PF-1ih1mmq97V-BPyHHkuEwSME,8443 +future/backports/email/_header_value_parser.py,sha256=GmSdr5PpG3xzedMiElSJOsQ6IwE3Tl5SNwp4m6ZT4aE,104692 +future/backports/email/_parseaddr.py,sha256=KewEnos0YDM-SYX503z7E1MmVbG5VRaKjxjcl0Ipjbs,17389 +future/backports/email/_policybase.py,sha256=2lJD9xouiz4uHvWGQ6j1nwlwWVQGwwzpy5JZoeQqhUc,14647 +future/backports/email/base64mime.py,sha256=gXZFxh66jk6D2UqAmjRbmmyhOXbGUWZmFcdVOIolaYE,3761 +future/backports/email/charset.py,sha256=CfE4iV2zAq6MQC0CHXHLnwTNW71zmhNITbzOcfxE4vY,17439 +future/backports/email/encoders.py,sha256=Nn4Pcx1rOdRgoSIzB6T5RWHl5zxClbf32wgE6D0tUt8,2800 +future/backports/email/errors.py,sha256=tRX8PP5g7mk2bAxL1jTCYrbfhD2gPZFNrh4_GJRM8OQ,3680 +future/backports/email/feedparser.py,sha256=bvmhb4cdY-ipextPK2K2sDgMsNvTspmuQfYyCxc4zSc,22736 +future/backports/email/generator.py,sha256=lpaLhZHneguvZ2QgRu7Figkjb7zmY28AGhj9iZTdI7s,19520 +future/backports/email/header.py,sha256=uBHbNKO-yx5I9KBflernJpyy3fX4gImCB1QE7ICApLs,24448 +future/backports/email/headerregistry.py,sha256=ZPbvLKXD0NMLSU4jXlVHfGyGcLMrFm-GQVURu_XHj88,20637 +future/backports/email/iterators.py,sha256=kMRYFGy3SVVpo7HG7JJr2ZAlOoaX6CVPzKYwDSvLfV0,2348 +future/backports/email/message.py,sha256=I6WW5cZDza7uwLOGJSvsDhGZC9K_Q570Lk2gt_vDUXM,35237 +future/backports/email/mime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +future/backports/email/mime/__pycache__/__init__.cpython-310.pyc,, +future/backports/email/mime/__pycache__/application.cpython-310.pyc,, +future/backports/email/mime/__pycache__/audio.cpython-310.pyc,, +future/backports/email/mime/__pycache__/base.cpython-310.pyc,, +future/backports/email/mime/__pycache__/image.cpython-310.pyc,, +future/backports/email/mime/__pycache__/message.cpython-310.pyc,, +future/backports/email/mime/__pycache__/multipart.cpython-310.pyc,, +future/backports/email/mime/__pycache__/nonmultipart.cpython-310.pyc,, +future/backports/email/mime/__pycache__/text.cpython-310.pyc,, +future/backports/email/mime/application.py,sha256=m-5a4mSxu2E32XAImnp9x9eMVX5Vme2iNgn2dMMNyss,1401 +future/backports/email/mime/audio.py,sha256=2ognalFRadcsUYQYMUZbjv5i1xJbFhQN643doMuI7M4,2815 +future/backports/email/mime/base.py,sha256=wV3ClQyMsOqmkXSXbk_wd_zPoPTvBx8kAIzq3rdM4lE,875 +future/backports/email/mime/image.py,sha256=DpQk1sB-IMmO43AF4uadsXyf_y5TdEzJLfyhqR48bIw,1907 +future/backports/email/mime/message.py,sha256=pFsMhXW07aRjsLq1peO847PApWFAl28-Z2Z7BP1Dn74,1429 +future/backports/email/mime/multipart.py,sha256=j4Lf_sJmuwTbfgdQ6R35_t1_ha2DynJBJDvpjwbNObE,1699 +future/backports/email/mime/nonmultipart.py,sha256=Ciba1Z8d2yLDDpxgDJuk3Bb-TqcpE9HCd8KfbW5vgl4,832 +future/backports/email/mime/text.py,sha256=zV98BjoR4S_nX8c47x43LnsnifeGhIfNGwSAh575bs0,1552 +future/backports/email/parser.py,sha256=NpTjmvjv6YDH6eImMJEYiIn_K7qe9-pPz3DmzTdMZUU,5310 +future/backports/email/policy.py,sha256=gpcbhVRXuCohkK6MUqopTs1lv4E4-ZVUO6OVncoGEJE,8823 +future/backports/email/quoprimime.py,sha256=w93W5XgdFpyGaDqDBJrnXF_v_npH5r20WuAxmrAzyQg,10923 +future/backports/email/utils.py,sha256=vpfN0E8UjNbNw-2NFBQGCo4TNgrghMsqzpEYW5C_fBs,14270 +future/backports/html/__init__.py,sha256=FKwqFtWMCoGNkhU97OPnR1fZSh6etAKfN1FU1KvXcV8,924 +future/backports/html/__pycache__/__init__.cpython-310.pyc,, +future/backports/html/__pycache__/entities.cpython-310.pyc,, +future/backports/html/__pycache__/parser.cpython-310.pyc,, +future/backports/html/entities.py,sha256=kzoRnQyGk_3DgoucHLhL5QL1pglK9nvmxhPIGZFDTnc,75428 +future/backports/html/parser.py,sha256=G2tUObvbHSotNt06JLY-BP1swaZNfDYFd_ENWDjPmRg,19770 +future/backports/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +future/backports/http/__pycache__/__init__.cpython-310.pyc,, +future/backports/http/__pycache__/client.cpython-310.pyc,, +future/backports/http/__pycache__/cookiejar.cpython-310.pyc,, +future/backports/http/__pycache__/cookies.cpython-310.pyc,, +future/backports/http/__pycache__/server.cpython-310.pyc,, +future/backports/http/client.py,sha256=76EbhEZOtvdHFcU-jrjivoff13oQ9IMbdkZEdf5kQzQ,47602 +future/backports/http/cookiejar.py,sha256=jqb27uvv8wB2mJm6kF9aC0w7B03nO6rzQ0_CF35yArg,76608 +future/backports/http/cookies.py,sha256=DsyDUGDEbCXAA9Jq6suswSc76uSZqUu39adDDNj8XGw,21581 +future/backports/http/server.py,sha256=1CaMxgzHf9lYhmTJyE7topgjRIlIn9cnjgw8YEvwJV4,45523 +future/backports/misc.py,sha256=EGnCVRmU-_7xrzss1rqqCqwqlQVywaPAxxLogBeNpw4,33063 +future/backports/socket.py,sha256=DH1V6IjKPpJ0tln8bYvxvQ7qnvZG-UoQtMA5yVleHiU,15663 +future/backports/socketserver.py,sha256=Twvyk5FqVnOeiNcbVsyMDPTF1mNlkKfyofG7tKxTdD8,24286 +future/backports/test/__init__.py,sha256=9dXxIZnkI095YfHC-XIaVF6d31GjeY1Ag8TEzcFgepM,264 +future/backports/test/__pycache__/__init__.cpython-310.pyc,, +future/backports/test/__pycache__/pystone.cpython-310.pyc,, +future/backports/test/__pycache__/ssl_servers.cpython-310.pyc,, +future/backports/test/__pycache__/support.cpython-310.pyc,, +future/backports/test/badcert.pem,sha256=JioQeRZkHH8hGsWJjAF3U1zQvcWqhyzG6IOEJpTY9SE,1928 +future/backports/test/badkey.pem,sha256=gaBK9px_gG7DmrLKxfD6f6i-toAmARBTVfs-YGFRQF0,2162 +future/backports/test/dh512.pem,sha256=dUTsjtLbK-femrorUrTGF8qvLjhTiT_n4Uo5V6u__Gs,402 +future/backports/test/https_svn_python_org_root.pem,sha256=wOB3Onnc62Iu9kEFd8GcHhd_suucYjpJNA3jyfHeJWA,2569 +future/backports/test/keycert.passwd.pem,sha256=ZBfnVLpbBtAOf_2gCdiQ-yrBHmRsNzSf8VC3UpQZIjg,1830 +future/backports/test/keycert.pem,sha256=xPXi5idPcQVbrhgxBqF2TNGm6sSZ2aLVVEt6DWzplL8,1783 +future/backports/test/keycert2.pem,sha256=DB46FEAYv8BWwQJ-5RzC696FxPN7CON-Qsi-R4poJgc,1795 +future/backports/test/nokia.pem,sha256=s00x0uPDSaa5DHJ_CwzlVhg3OVdJ47f4zgqQdd0SAfQ,1923 +future/backports/test/nullbytecert.pem,sha256=NFRYWhmP_qT3jGfVjR6-iaC-EQdhIFjiXtTLN5ZPKnE,5435 +future/backports/test/nullcert.pem,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +future/backports/test/pystone.py,sha256=fvyoJ_tVovTNaxbJmdJMwr9F6SngY-U4ibULnd_wUqA,7427 +future/backports/test/sha256.pem,sha256=3wB-GQqEc7jq-PYwYAQaPbtTvvr7stk_DVmZxFgehfA,8344 +future/backports/test/ssl_cert.pem,sha256=M607jJNeIeHG9BlTf_jaQkPJI4nOxSJPn-zmEAaW43M,867 +future/backports/test/ssl_key.passwd.pem,sha256=I_WH4sBw9Vs9Z-BvmuXY0aw8tx8avv6rm5UL4S_pP00,963 +future/backports/test/ssl_key.pem,sha256=VKGU-R3UYaZpVTXl7chWl4vEYEDeob69SfvRTQ8aq_4,916 +future/backports/test/ssl_servers.py,sha256=-pd7HMZljuZfFRAbCAiAP_2G04orITJFj-S9ddr6o84,7209 +future/backports/test/support.py,sha256=oTQ09QrLcbmFZXhMGqPz3VrYZddgxpJGEJPQhwfiG2k,69620 +future/backports/total_ordering.py,sha256=O3M57_IisQ-zW5hW20uxkfk4fTGsr0EF2tAKx3BksQo,1929 +future/backports/urllib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +future/backports/urllib/__pycache__/__init__.cpython-310.pyc,, +future/backports/urllib/__pycache__/error.cpython-310.pyc,, +future/backports/urllib/__pycache__/parse.cpython-310.pyc,, +future/backports/urllib/__pycache__/request.cpython-310.pyc,, +future/backports/urllib/__pycache__/response.cpython-310.pyc,, +future/backports/urllib/__pycache__/robotparser.cpython-310.pyc,, +future/backports/urllib/error.py,sha256=ktikuK9ag4lS4f8Z0k5p1F11qF40N2AiOtjbXiF97ew,2715 +future/backports/urllib/parse.py,sha256=67avrYqV1UK7i_22goRUrvJ8SffzjRdTja9wzq_ynXY,35792 +future/backports/urllib/request.py,sha256=aR9ZMzfhV1C2Qk3wFsGvkwxqtdPTdsJVGRt5DUCwgJ8,96276 +future/backports/urllib/response.py,sha256=ooQyswwbb-9N6IVi1Kwjss1aR-Kvm8ZNezoyVEonp8c,3180 +future/backports/urllib/robotparser.py,sha256=pnAGTbKhdbCq_9yMZp7m8hj5q_NJpyQX6oQIZuYcnkw,6865 +future/backports/xmlrpc/__init__.py,sha256=h61ciVTdVvu8oEUXv4dHf_Tc5XUXDH3RKB1-8fQhSsg,38 +future/backports/xmlrpc/__pycache__/__init__.cpython-310.pyc,, +future/backports/xmlrpc/__pycache__/client.cpython-310.pyc,, +future/backports/xmlrpc/__pycache__/server.cpython-310.pyc,, +future/backports/xmlrpc/client.py,sha256=TIHPztKRlrStphmO_PfYOQxsy2xugzWKz77STC1OZ1U,48175 +future/backports/xmlrpc/server.py,sha256=W_RW5hgYbNV2LGbnvngzm7akacRdK-XFY-Cy2HL-qsY,37285 +future/builtins/__init__.py,sha256=rDAHzkhfXHSaye72FgzQz-HPN3yYBu-VXSs5PUJGA6o,1688 +future/builtins/__pycache__/__init__.cpython-310.pyc,, +future/builtins/__pycache__/disabled.cpython-310.pyc,, +future/builtins/__pycache__/iterators.cpython-310.pyc,, +future/builtins/__pycache__/misc.cpython-310.pyc,, +future/builtins/__pycache__/new_min_max.cpython-310.pyc,, +future/builtins/__pycache__/newnext.cpython-310.pyc,, +future/builtins/__pycache__/newround.cpython-310.pyc,, +future/builtins/__pycache__/newsuper.cpython-310.pyc,, +future/builtins/disabled.py,sha256=Ysq74bsmwntpq7dzkwTAD7IHKrkXy66vJlPshVwgVBI,2109 +future/builtins/iterators.py,sha256=l1Zawm2x82oqOuGGtCZRE76Ej98sMlHQwu9fZLK5RrA,1396 +future/builtins/misc.py,sha256=hctlKKWUyN0Eoodxg4ySQHEqARTukOLR4L5K5c6PW9k,4550 +future/builtins/new_min_max.py,sha256=7qQ4iiG4GDgRzjPzzzmg9pdby35Mtt6xNOOsyqHnIGY,1757 +future/builtins/newnext.py,sha256=oxXB8baXqJv29YG40aCS9UXk9zObyoOjya8BJ7NdBJM,2009 +future/builtins/newround.py,sha256=7YTWjBgfIAvSEl7hLCWgemhjqdKtzohbO18yMErKz4E,3190 +future/builtins/newsuper.py,sha256=3Ygqq-8l3wh9gNvGbW5nAiTYT5WxxgSKN6RhNj7qi74,3849 +future/moves/__init__.py,sha256=MsAW69Xp_fqUo4xODufcKM6AZf-ozHaz44WPZdsDFJA,220 +future/moves/__pycache__/__init__.cpython-310.pyc,, +future/moves/__pycache__/_dummy_thread.cpython-310.pyc,, +future/moves/__pycache__/_markupbase.cpython-310.pyc,, +future/moves/__pycache__/_thread.cpython-310.pyc,, +future/moves/__pycache__/builtins.cpython-310.pyc,, +future/moves/__pycache__/collections.cpython-310.pyc,, +future/moves/__pycache__/configparser.cpython-310.pyc,, +future/moves/__pycache__/copyreg.cpython-310.pyc,, +future/moves/__pycache__/itertools.cpython-310.pyc,, +future/moves/__pycache__/multiprocessing.cpython-310.pyc,, +future/moves/__pycache__/pickle.cpython-310.pyc,, +future/moves/__pycache__/queue.cpython-310.pyc,, +future/moves/__pycache__/reprlib.cpython-310.pyc,, +future/moves/__pycache__/socketserver.cpython-310.pyc,, +future/moves/__pycache__/subprocess.cpython-310.pyc,, +future/moves/__pycache__/sys.cpython-310.pyc,, +future/moves/__pycache__/winreg.cpython-310.pyc,, +future/moves/_dummy_thread.py,sha256=ULUtLk1Luw9I1h-YPitnU3gqCbvNPoKC28N_Bk8jkR8,348 +future/moves/_markupbase.py,sha256=W9wh_Gu3jDAMIhVBV1ZnCkJwYLHRk_v_su_HLALBkZQ,171 +future/moves/_thread.py,sha256=rwY7L4BZMFPlrp_i6T2Un4_iKYwnrXJ-yV6FJZN8YDo,163 +future/moves/builtins.py,sha256=4sjjKiylecJeL9da_RaBZjdymX2jtMs84oA9lCqb4Ug,281 +future/moves/collections.py,sha256=OKQ-TfUgms_2bnZRn4hrclLDoiN2i-HSWcjs3BC2iY8,417 +future/moves/configparser.py,sha256=TNy226uCbljjU-DjAVo7j7Effbj5zxXvDh0SdXehbzk,146 +future/moves/copyreg.py,sha256=Y3UjLXIMSOxZggXtvZucE9yv4tkKZtVan45z8eix4sU,438 +future/moves/dbm/__init__.py,sha256=_VkvQHC2UcIgZFPRroiX_P0Fs7HNqS_69flR0-oq2B8,488 +future/moves/dbm/__pycache__/__init__.cpython-310.pyc,, +future/moves/dbm/__pycache__/dumb.cpython-310.pyc,, +future/moves/dbm/__pycache__/gnu.cpython-310.pyc,, +future/moves/dbm/__pycache__/ndbm.cpython-310.pyc,, +future/moves/dbm/dumb.py,sha256=HKdjjtO3EyP9EKi1Hgxh_eUU6yCQ0fBX9NN3n-zb8JE,166 +future/moves/dbm/gnu.py,sha256=XoCSEpZ2QaOgo2h1m80GW7NUgj_b93BKtbcuwgtnaKo,162 +future/moves/dbm/ndbm.py,sha256=OFnreyo_1YHDBl5YUm9gCzKlN1MHgWbfSQAZVls2jaM,162 +future/moves/html/__init__.py,sha256=BSUFSHxXf2kGvHozlnrB1nn6bPE6p4PpN3DwA_Z5geo,1016 +future/moves/html/__pycache__/__init__.cpython-310.pyc,, +future/moves/html/__pycache__/entities.cpython-310.pyc,, +future/moves/html/__pycache__/parser.cpython-310.pyc,, +future/moves/html/entities.py,sha256=lVvchdjK_RzRj759eg4RMvGWHfgBbj0tKGOoZ8dbRyY,177 +future/moves/html/parser.py,sha256=V2XpHLKLCxQum3N9xlO3IUccAD7BIykZMqdEcWET3vY,167 +future/moves/http/__init__.py,sha256=Mx1v_Tcks4udHCtDM8q2xnYUiQ01gD7EpPyeQwsP3-Q,71 +future/moves/http/__pycache__/__init__.cpython-310.pyc,, +future/moves/http/__pycache__/client.cpython-310.pyc,, +future/moves/http/__pycache__/cookiejar.cpython-310.pyc,, +future/moves/http/__pycache__/cookies.cpython-310.pyc,, +future/moves/http/__pycache__/server.cpython-310.pyc,, +future/moves/http/client.py,sha256=hqEBq7GDXZidd1AscKnSyjSoMcuj8rERqGTmD7VheDQ,165 +future/moves/http/cookiejar.py,sha256=Frr9ZZCg-145ymy0VGpiPJhvBEpJtVqRBYPaKhgT1Z4,173 +future/moves/http/cookies.py,sha256=PPrHa1_oDbu3D_BhJGc6PvMgY1KoxyYq1jqeJwEcMvE,233 +future/moves/http/server.py,sha256=8YQlSCShjAsB5rr5foVvZgp3IzwYFvTmGZCHhBSDtaI,606 +future/moves/itertools.py,sha256=PVxFHRlBQl9ElS0cuGFPcUtj53eHX7Z1DmggzGfgQ6c,158 +future/moves/multiprocessing.py,sha256=4L37igVf2NwBhXqmCHRA3slZ7lJeiQLzZdrGSGOOZ08,191 +future/moves/pickle.py,sha256=r8j9skzfE8ZCeHyh_OB-WucOkRTIHN7zpRM7l7V3qS4,229 +future/moves/queue.py,sha256=uxvLCChF-zxWWgrY1a_wxt8rp2jILdwO4PrnkBW6VTE,160 +future/moves/reprlib.py,sha256=Nt5sUgMQ3jeVIukqSHOvB0UIsl6Y5t-mmT_13mpZmiY,161 +future/moves/socketserver.py,sha256=v8ZLurDxHOgsubYm1iefjlpnnJQcx2VuRUGt9FCJB9k,174 +future/moves/subprocess.py,sha256=oqRSMfFZkxM4MXkt3oD5N6eBwmmJ6rQ9KPhvSQKT_hM,251 +future/moves/sys.py,sha256=HOMRX4Loim75FMbWawd3oEwuGNJR-ClMREEFkVpBsRs,132 +future/moves/test/__init__.py,sha256=yB9F-fDQpzu1v8cBoKgIrL2ScUNqjlkqEztYrGVCQ-0,110 +future/moves/test/__pycache__/__init__.cpython-310.pyc,, +future/moves/test/__pycache__/support.cpython-310.pyc,, +future/moves/test/support.py,sha256=TG5h0FVGwyJGtKQEXMhWtD4G9WZagHrMI_CeL9NlZYc,484 +future/moves/tkinter/__init__.py,sha256=jV9vDx3wRl0bsoclU8oSe-5SqHQ3YpCbStmqtXnq1p4,620 +future/moves/tkinter/__pycache__/__init__.cpython-310.pyc,, +future/moves/tkinter/__pycache__/colorchooser.cpython-310.pyc,, +future/moves/tkinter/__pycache__/commondialog.cpython-310.pyc,, +future/moves/tkinter/__pycache__/constants.cpython-310.pyc,, +future/moves/tkinter/__pycache__/dialog.cpython-310.pyc,, +future/moves/tkinter/__pycache__/dnd.cpython-310.pyc,, +future/moves/tkinter/__pycache__/filedialog.cpython-310.pyc,, +future/moves/tkinter/__pycache__/font.cpython-310.pyc,, +future/moves/tkinter/__pycache__/messagebox.cpython-310.pyc,, +future/moves/tkinter/__pycache__/scrolledtext.cpython-310.pyc,, +future/moves/tkinter/__pycache__/simpledialog.cpython-310.pyc,, +future/moves/tkinter/__pycache__/tix.cpython-310.pyc,, +future/moves/tkinter/__pycache__/ttk.cpython-310.pyc,, +future/moves/tkinter/colorchooser.py,sha256=kprlmpRtvDbW5Gq43H1mi2KmNJ2kuzLQOba0a5EwDkU,333 +future/moves/tkinter/commondialog.py,sha256=mdUbq1IZqOGaSA7_8R367IukDCsMfzXiVHrTQQpp7Z0,333 +future/moves/tkinter/constants.py,sha256=0qRUrZLRPdVxueABL9KTzzEWEsk6xM1rOjxK6OHxXtA,324 +future/moves/tkinter/dialog.py,sha256=ksp-zvs-_A90P9RNHS8S27f1k8f48zG2Bel2jwZV5y0,311 +future/moves/tkinter/dnd.py,sha256=C_Ah0Urnyf2XKE5u-oP6mWi16RzMSXgMA1uhBSAwKY8,306 +future/moves/tkinter/filedialog.py,sha256=yNr30k-hDY1aMJHNsKqRqHqOOlzYKCubfQ3HjY1ZlrE,534 +future/moves/tkinter/font.py,sha256=TXarflhJRxqepaRNSDw6JFUVGz5P1T1C4_uF9VRqj3w,309 +future/moves/tkinter/messagebox.py,sha256=WJt4t83kLmr_UnpCWFuLoyazZr3wAUOEl6ADn3osoEA,327 +future/moves/tkinter/scrolledtext.py,sha256=DRzN8aBAlDBUo1B2KDHzdpRSzXBfH4rOOz0iuHXbQcg,329 +future/moves/tkinter/simpledialog.py,sha256=6MhuVhZCJV4XfPpPSUWKlDLLGEi0Y2ZlGQ9TbsmJFL0,329 +future/moves/tkinter/tix.py,sha256=aNeOfbWSGmcN69UmEGf4tJ-QIxLT6SU5ynzm1iWgepA,302 +future/moves/tkinter/ttk.py,sha256=rRrJpDjcP2gjQNukECu4F026P-CkW-3Ca2tN6Oia-Fw,302 +future/moves/urllib/__init__.py,sha256=yB9F-fDQpzu1v8cBoKgIrL2ScUNqjlkqEztYrGVCQ-0,110 +future/moves/urllib/__pycache__/__init__.cpython-310.pyc,, +future/moves/urllib/__pycache__/error.cpython-310.pyc,, +future/moves/urllib/__pycache__/parse.cpython-310.pyc,, +future/moves/urllib/__pycache__/request.cpython-310.pyc,, +future/moves/urllib/__pycache__/response.cpython-310.pyc,, +future/moves/urllib/__pycache__/robotparser.cpython-310.pyc,, +future/moves/urllib/error.py,sha256=gfrKzv-6W5OjzNIfjvJaQkxABRLym2KwjfKFXSdDB60,479 +future/moves/urllib/parse.py,sha256=xLLUMIIB5MreCdYzRZ5zIRWrhTRCoMO8RZEH4WPFQDY,1045 +future/moves/urllib/request.py,sha256=ttIzq60PwjRyrLQUGdAtfYvs4fziVwvcLe2Kw-hvE0g,3496 +future/moves/urllib/response.py,sha256=ZEZML0FpbB--GIeBFPvSzbtlVJ6EsR4tCI4qB7D8sFQ,342 +future/moves/urllib/robotparser.py,sha256=j24p6dMNzUpGZtT3BQxwRoE-F88iWmBpKgu0tRV61FQ,179 +future/moves/winreg.py,sha256=2zNAG59QI7vFlCj7kqDh0JrAYTpexOnI55PEAIjYhqo,163 +future/moves/xmlrpc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +future/moves/xmlrpc/__pycache__/__init__.cpython-310.pyc,, +future/moves/xmlrpc/__pycache__/client.cpython-310.pyc,, +future/moves/xmlrpc/__pycache__/server.cpython-310.pyc,, +future/moves/xmlrpc/client.py,sha256=2PfnL5IbKVwdKP7C8B1OUviEtuBObwoH4pAPfvHIvQc,143 +future/moves/xmlrpc/server.py,sha256=ESDXdpUgTKyeFmCDSnJmBp8zONjJklsRJOvy4OtaALc,143 +future/standard_library/__init__.py,sha256=Nwbaqikyeh77wSiro-BHNjSsCmSmuLGAe91d4c5q_QE,28065 +future/standard_library/__pycache__/__init__.cpython-310.pyc,, +future/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +future/tests/__pycache__/__init__.cpython-310.pyc,, +future/tests/__pycache__/base.cpython-310.pyc,, +future/tests/base.py,sha256=7LTAKHJgUxOwmffD1kgcErVt2VouKcldPnq4iruqk_k,19956 +future/types/__init__.py,sha256=5fBxWqf_OTQ8jZ7k2TS34rFH14togeR488F4zBHIQ-s,6831 +future/types/__pycache__/__init__.cpython-310.pyc,, +future/types/__pycache__/newbytes.cpython-310.pyc,, +future/types/__pycache__/newdict.cpython-310.pyc,, +future/types/__pycache__/newint.cpython-310.pyc,, +future/types/__pycache__/newlist.cpython-310.pyc,, +future/types/__pycache__/newmemoryview.cpython-310.pyc,, +future/types/__pycache__/newobject.cpython-310.pyc,, +future/types/__pycache__/newopen.cpython-310.pyc,, +future/types/__pycache__/newrange.cpython-310.pyc,, +future/types/__pycache__/newstr.cpython-310.pyc,, +future/types/newbytes.py,sha256=D_kNDD9sbNJir2cUxxePiAuw2OW5irxVnu55uHmuK9E,16303 +future/types/newdict.py,sha256=go-Lbl2MRWZJJRlwTAUlJNJRkg986YYeV0jCqEUEFNc,2011 +future/types/newint.py,sha256=HH90HS2Y1ApS02LDpKzqt9V1Lwtp6tktMIYjavZUIh8,13406 +future/types/newlist.py,sha256=-H5-fXodd-UQgTFnZBJdwE68CrgIL_jViYdv4w7q2rU,2284 +future/types/newmemoryview.py,sha256=LnARgiKqQ2zLwwDZ3owu1atoonPQkOneWMfxJCwB4_o,712 +future/types/newobject.py,sha256=AX_n8GwlDR2IY-xIwZCvu0Olj_Ca2aS57nlTihnFr-I,3358 +future/types/newopen.py,sha256=lcRNHWZ1UjEn_0_XKis1ZA5U6l-4c-CHlC0WX1sY4NI,810 +future/types/newrange.py,sha256=fcCL1imqqH-lqWsY9Lnml9d-WbJOtXrayAUPoUbM7Ck,5296 +future/types/newstr.py,sha256=e0brkurI0IK--4ToQEO4Cz1FECZav4CyUGMKxlrcmK4,15758 +future/utils/__init__.py,sha256=Er_tUl6bS4xp7_M1Z3hZrgM9hAGrRUvCAdcHDRgSOdE,21960 +future/utils/__pycache__/__init__.cpython-310.pyc,, +future/utils/__pycache__/surrogateescape.cpython-310.pyc,, +future/utils/surrogateescape.py,sha256=7u4V4XlW83P5YSAJS2f92YUF8vsWthsiTnmAshOJL_M,6097 +libfuturize/__init__.py,sha256=CZA_KgvTQOPAY1_MrlJeQ6eMh2Eei4_KIv4JuyAkpfw,31 +libfuturize/__pycache__/__init__.cpython-310.pyc,, +libfuturize/__pycache__/fixer_util.cpython-310.pyc,, +libfuturize/__pycache__/main.cpython-310.pyc,, +libfuturize/fixer_util.py,sha256=hOmX8XLnicGJ6RGwlUxslhuhzhPc0cZimlylFQAeDOo,17357 +libfuturize/fixes/__init__.py,sha256=5KEpUnjVsFCCsr_-zrikvJbLf9zslEJnFTH_5pBc33I,5236 +libfuturize/fixes/__pycache__/__init__.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_UserDict.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_absolute_import.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_add__future__imports_except_unicode_literals.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_basestring.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_bytes.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_cmp.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_division.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_division_safe.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_execfile.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_future_builtins.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_future_standard_library.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_future_standard_library_urllib.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_input.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_metaclass.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_next_call.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_object.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_oldstr_wrap.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_order___future__imports.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_print.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_print_with_import.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_raise.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_remove_old__future__imports.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_unicode_keep_u.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_unicode_literals_import.cpython-310.pyc,, +libfuturize/fixes/__pycache__/fix_xrange_with_import.cpython-310.pyc,, +libfuturize/fixes/fix_UserDict.py,sha256=jL4jXnGaUQTkG8RKfGXbU_HVTkB3MWZMQwUkqMAjB6I,3840 +libfuturize/fixes/fix_absolute_import.py,sha256=vkrF2FyQR5lSz2WmdqywzkEJVTC0eq4gh_REWBKHh7w,3140 +libfuturize/fixes/fix_add__future__imports_except_unicode_literals.py,sha256=Fr219VAzR8KWXc2_bfiqLl10EgxAWjL6cI3Mowt--VU,662 +libfuturize/fixes/fix_basestring.py,sha256=bHkKuMzhr5FMXwjXlMOjsod4S3rQkVdbzhoWV4-tl3Y,394 +libfuturize/fixes/fix_bytes.py,sha256=AhzOJes6EnPwgzboDjvURANbWKqciG6ZGaYW07PYQK8,685 +libfuturize/fixes/fix_cmp.py,sha256=Blq_Z0IGkYiKS83QzZ5wUgpJyZfQiZoEsWJ1VPyXgFY,701 +libfuturize/fixes/fix_division.py,sha256=gnrAi7stquiVUyi_De1H8q--43iQaSUX0CjnOmQ6O2w,228 +libfuturize/fixes/fix_division_safe.py,sha256=oz407p0Woc2EKw7jZHUL4CpDs81FFpekRum58NKsNp4,3631 +libfuturize/fixes/fix_execfile.py,sha256=I5AcJ6vPZ7i70TChaq9inxqnZ4C04-yJyfAItGa8E3c,921 +libfuturize/fixes/fix_future_builtins.py,sha256=QBCRpD9XA7tbtfP4wmOF2DXquB4lq-eupkQj-QAxp0s,2027 +libfuturize/fixes/fix_future_standard_library.py,sha256=FVtflFt38efHe_SEX6k3m6IYAtKWjA4rAPZrlCv6yA0,733 +libfuturize/fixes/fix_future_standard_library_urllib.py,sha256=Rf81XcAXA-vwNvrhskf5sLExbR--Wkr5fiUcMYGAKzs,1001 +libfuturize/fixes/fix_input.py,sha256=bhaPNtMrZNbjWIDQCR7Iue5BxBj4rf0RJQ9_jiwvb-s,687 +libfuturize/fixes/fix_metaclass.py,sha256=_CS1NDXYM-Mh6xpogLK_GtYx3rUUptu1-Z0Rx3lC9eQ,9570 +libfuturize/fixes/fix_next_call.py,sha256=01STG86Av9o5QcpQDJ6UbPhvxt9kKrkatiPeddXRgvA,3158 +libfuturize/fixes/fix_object.py,sha256=qalFIjn0VTWXG5sGOOoCvO65omjX5_9d40SUpwUjBdw,407 +libfuturize/fixes/fix_oldstr_wrap.py,sha256=UCR6Q2l-pVqJSrRTnQAWMlaqBoX7oX1VpG_w6Q0XcyY,1214 +libfuturize/fixes/fix_order___future__imports.py,sha256=ACUCw5NEGWvj6XA9rNj8BYha3ktxLvkM5Ssh5cyV644,829 +libfuturize/fixes/fix_print.py,sha256=nbJdv5DbxtWzJIRIQ0tr7FfGkMkHScJTLzvpxv_hSNw,3881 +libfuturize/fixes/fix_print_with_import.py,sha256=hVWn70Q1DPMUiHMyEqgUx-6sM1AylLj78v9pMc4LFw8,735 +libfuturize/fixes/fix_raise.py,sha256=CkjqiSvHHD-enaLxYMkH-Nsi92NGShFLWd3fG-exmI4,3904 +libfuturize/fixes/fix_remove_old__future__imports.py,sha256=j4EC1KEVgXhuQAqhYHnAruUjW6uczPjV_fTCSOLMuAw,851 +libfuturize/fixes/fix_unicode_keep_u.py,sha256=M8fcFxHeFnWVOKoQRpkMsnpd9qmUFubI2oFhO4ZPk7A,779 +libfuturize/fixes/fix_unicode_literals_import.py,sha256=wq-hb-9Yx3Az4ol-ylXZJPEDZ81EaPZeIy5VvpA0CEY,367 +libfuturize/fixes/fix_xrange_with_import.py,sha256=f074qStjMz3OtLjt1bKKZSxQnRbbb7HzEbqHt9wgqdw,479 +libfuturize/main.py,sha256=feICmcv0dzWhutvwz0unnIVxusbSlQZFDaxObkHebs8,13733 +libpasteurize/__init__.py,sha256=CZA_KgvTQOPAY1_MrlJeQ6eMh2Eei4_KIv4JuyAkpfw,31 +libpasteurize/__pycache__/__init__.cpython-310.pyc,, +libpasteurize/__pycache__/main.cpython-310.pyc,, +libpasteurize/fixes/__init__.py,sha256=ccdv-2MGjQMbq8XuEZBndHmbzGRrZnabksjXZLUv044,3719 +libpasteurize/fixes/__pycache__/__init__.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/feature_base.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_add_all__future__imports.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_add_all_future_builtins.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_add_future_standard_library_import.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_annotations.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_division.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_features.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_fullargspec.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_future_builtins.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_getcwd.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_imports.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_imports2.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_kwargs.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_memoryview.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_metaclass.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_newstyle.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_next.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_printfunction.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_raise.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_raise_.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_throw.cpython-310.pyc,, +libpasteurize/fixes/__pycache__/fix_unpacking.cpython-310.pyc,, +libpasteurize/fixes/feature_base.py,sha256=v7yLjBDBUPeNUc-YHGGlIsJDOQzFAM4Vo0RN5F1JHVU,1723 +libpasteurize/fixes/fix_add_all__future__imports.py,sha256=mHet1LgbHn9GfgCYGNZXKo-rseDWreAvUcAjZwdgeTE,676 +libpasteurize/fixes/fix_add_all_future_builtins.py,sha256=scfkY-Sz5j0yDtLYls2ENOcqEMPVxeDm9gFYYPINPB8,1269 +libpasteurize/fixes/fix_add_future_standard_library_import.py,sha256=thTRbkBzy_SJjZ0bJteTp0sBTx8Wr69xFakH4styf7Y,663 +libpasteurize/fixes/fix_annotations.py,sha256=VT_AorKY9AYWYZUZ17_CeUrJlEA7VGkwVLDQlwD1Bxo,1581 +libpasteurize/fixes/fix_division.py,sha256=_TD_c5KniAYqEm11O7NJF0v2WEhYSNkRGcKG_94ZOas,904 +libpasteurize/fixes/fix_features.py,sha256=NZn0n34_MYZpLNwyP1Tf51hOiN58Rg7A8tA9pK1S8-c,2675 +libpasteurize/fixes/fix_fullargspec.py,sha256=VlZuIU6QNrClmRuvC4mtLICL3yMCi-RcGCnS9fD4b-Q,438 +libpasteurize/fixes/fix_future_builtins.py,sha256=SlCK9I9u05m19Lr1wxlJxF8toZ5yu0yXBeDLxUN9_fw,1450 +libpasteurize/fixes/fix_getcwd.py,sha256=uebvTvFboLqsROFCwdnzoP6ThziM0skz9TDXHoJcFsQ,873 +libpasteurize/fixes/fix_imports.py,sha256=KH4Q-qMzsuN5VcfE1ZGS337yHhxbgrmLoRtpHtr2A94,5026 +libpasteurize/fixes/fix_imports2.py,sha256=bs2V5Yv0v_8xLx-lNj9kNEAK2dLYXUXkZ2hxECg01CU,8580 +libpasteurize/fixes/fix_kwargs.py,sha256=NB_Ap8YJk-9ncoJRbOiPY_VMIigFgVB8m8AuY29DDhE,5991 +libpasteurize/fixes/fix_memoryview.py,sha256=Fwayx_ezpr22tbJ0-QrKdJ-FZTpU-m7y78l1h_N4xxc,551 +libpasteurize/fixes/fix_metaclass.py,sha256=IcE2KjaDG8jUR3FYXECzOC_cr2pr5r95W1NTbMrK8Wc,3260 +libpasteurize/fixes/fix_newstyle.py,sha256=78sazKOHm9DUoMyW4VdvQpMXZhicbXzorVPRhBpSUrM,888 +libpasteurize/fixes/fix_next.py,sha256=VHqcyORRNVqKJ51jJ1OkhwxHuXRgp8qaldyqcMvA4J0,1233 +libpasteurize/fixes/fix_printfunction.py,sha256=NDIfqVmUJBG3H9E6nrnN0cWZK8ch9pL4F-nMexdsa38,401 +libpasteurize/fixes/fix_raise.py,sha256=zQ_AcMsGmCbtKMgrxZGcHLYNscw6tqXFvHQxgqtNbU8,1099 +libpasteurize/fixes/fix_raise_.py,sha256=9STp633frUfYASjYzqhwxx_MXePNmMhfJClowRj8FLY,1225 +libpasteurize/fixes/fix_throw.py,sha256=_ZREVre-WttUvk4sWjrqUNqm9Q1uFaATECN0_-PXKbk,835 +libpasteurize/fixes/fix_unpacking.py,sha256=xZqxMYHgdeuIkermtY-evisvcKlGCPi5vg5t5pt-XCY,6041 +libpasteurize/main.py,sha256=dVHYTQQeJonuOFDNrenJZl-rKHgOQKRMPP1OqnJogWQ,8186 +past/__init__.py,sha256=2DxcQt5zgPH-e-TSDS2l7hI94A9eG7pPgD-V5FgH084,2892 +past/__pycache__/__init__.cpython-310.pyc,, +past/builtins/__init__.py,sha256=7j_4OsUlN6q2eKr14do7mRQ1GwXRoXAMUR0A1fJpAls,1805 +past/builtins/__pycache__/__init__.cpython-310.pyc,, +past/builtins/__pycache__/misc.cpython-310.pyc,, +past/builtins/__pycache__/noniterators.cpython-310.pyc,, +past/builtins/misc.py,sha256=I76Mpx_3wnHpJg7Ub9SZOBRqEFo02YgimZJpfoq17_0,5598 +past/builtins/noniterators.py,sha256=LtdELnd7KyYdXg7GkW25cgkEPUC0ggZ5AYMtDe9N95I,9370 +past/translation/__init__.py,sha256=oTtrOHD8ToM9c9RXat_BhjKhN33N7_Vg4HGS0if-UbU,14914 +past/translation/__pycache__/__init__.cpython-310.pyc,, +past/types/__init__.py,sha256=RyJlgqg9uJ8oF-kJT9QlfhfdmhiMh3fShmtvd2CQycY,879 +past/types/__pycache__/__init__.cpython-310.pyc,, +past/types/__pycache__/basestring.cpython-310.pyc,, +past/types/__pycache__/olddict.cpython-310.pyc,, +past/types/__pycache__/oldstr.cpython-310.pyc,, +past/types/basestring.py,sha256=lO66aHgOV02vka6kosnR6GWK0iNC0G28Nugb1MP69-E,774 +past/types/olddict.py,sha256=0YtffZ55VY6AyQ_rwu4DZ4vcRsp6dz-dQzczeyN8hLk,2721 +past/types/oldstr.py,sha256=JuF8VBBI4OGSgZ3PyhU6LxSAiTfEWzdHUx0Hwg13WSY,4333 +past/utils/__init__.py,sha256=e8l1sOfdiDJ3dkckBWLNWvC1ahC5BX5haHC2TGdNgA8,2633 +past/utils/__pycache__/__init__.cpython-310.pyc,, diff --git a/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/WHEEL b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/WHEEL new file mode 100644 index 0000000..7e68873 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.41.2) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/entry_points.txt b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/entry_points.txt new file mode 100644 index 0000000..74aec27 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +futurize = libfuturize.main:main +pasteurize = libpasteurize.main:main diff --git a/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/top_level.txt b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/top_level.txt new file mode 100644 index 0000000..58f5843 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future-1.0.0.dist-info/top_level.txt @@ -0,0 +1,4 @@ +future +libfuturize +libpasteurize +past diff --git a/venv/lib/python3.10/site-packages/future/__init__.py b/venv/lib/python3.10/site-packages/future/__init__.py new file mode 100644 index 0000000..b097fd8 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/__init__.py @@ -0,0 +1,92 @@ +""" +future: Easy, safe support for Python 2/3 compatibility +======================================================= + +``future`` is the missing compatibility layer between Python 2 and Python +3. It allows you to use a single, clean Python 3.x-compatible codebase to +support both Python 2 and Python 3 with minimal overhead. + +It is designed to be used as follows:: + + from __future__ import (absolute_import, division, + print_function, unicode_literals) + from builtins import ( + bytes, dict, int, list, object, range, str, + ascii, chr, hex, input, next, oct, open, + pow, round, super, + filter, map, zip) + +followed by predominantly standard, idiomatic Python 3 code that then runs +similarly on Python 2.6/2.7 and Python 3.3+. + +The imports have no effect on Python 3. On Python 2, they shadow the +corresponding builtins, which normally have different semantics on Python 3 +versus 2, to provide their Python 3 semantics. + + +Standard library reorganization +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``future`` supports the standard library reorganization (PEP 3108) through the +following Py3 interfaces: + + >>> # Top-level packages with Py3 names provided on Py2: + >>> import html.parser + >>> import queue + >>> import tkinter.dialog + >>> import xmlrpc.client + >>> # etc. + + >>> # Aliases provided for extensions to existing Py2 module names: + >>> from future.standard_library import install_aliases + >>> install_aliases() + + >>> from collections import Counter, OrderedDict # backported to Py2.6 + >>> from collections import UserDict, UserList, UserString + >>> import urllib.request + >>> from itertools import filterfalse, zip_longest + >>> from subprocess import getoutput, getstatusoutput + + +Automatic conversion +-------------------- + +An included script called `futurize +`_ aids in converting +code (from either Python 2 or Python 3) to code compatible with both +platforms. It is similar to ``python-modernize`` but goes further in +providing Python 3 compatibility through the use of the backported types +and builtin functions in ``future``. + + +Documentation +------------- + +See: https://python-future.org + + +Credits +------- + +:Author: Ed Schofield, Jordan M. Adler, et al +:Sponsor: Python Charmers: https://pythoncharmers.com +:Others: See docs/credits.rst or https://python-future.org/credits.html + + +Licensing +--------- +Copyright 2013-2024 Python Charmers, Australia. +The software is distributed under an MIT licence. See LICENSE.txt. + +""" + +__title__ = 'future' +__author__ = 'Ed Schofield' +__license__ = 'MIT' +__copyright__ = 'Copyright 2013-2024 Python Charmers (https://pythoncharmers.com)' +__ver_major__ = 1 +__ver_minor__ = 0 +__ver_patch__ = 0 +__ver_sub__ = '' +__version__ = "%d.%d.%d%s" % (__ver_major__, __ver_minor__, + __ver_patch__, __ver_sub__) diff --git a/venv/lib/python3.10/site-packages/future/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f48579d5a88c190960fc72cb00c22860753cfb01 GIT binary patch literal 3091 zcmbVOO>f*b5M3w!3ex~R6}=RgA_!okYsua%(sYp;F&rOKq=`|dm%Yebk-K6-i7H9i zUKi;9>0k1-r~HLp+DA$I;ce0umA!(#W;pZa%^R8r4_F7sms`K6>-(L~@8M?o*uc#* z{M-|qL}%C$Yr{2hXLv{49o`k|!*#JS+z^|?P5idR)^J;F%MH0Hx8(MC{j<*Sp160` z*=76-EW^f?udE!<33t;jIX;%;s{w z&64Nmq#XH7Qm&j+#pLz^r1?}@8cBaCWigL~cp=&w){p3gC$6=*bTl;;c|(ef^1bd=2WgU zw=e~VJj$z5zj-vN+24g`~oe9FGCZk~x_8df}@Z7DHee7v?ft zv(#8CU1pvg2I<{?;rf+A+f5b8EoSvLg|6u>g zE9il%CheG~(zQ);cz8$;>5VD(w7ig-N}j&s6X}``3?>E7aoeUY z8gP1pn$f|y?W)Y@Ix4w!(yqSxxssJ!edyoSp+rJ)Z6>R4uX1h6G)lEXW#%s*lJqGs z4&B+reWVpMWhuHKqG$$LgnkBYV9ynLt4Y5{xe*n_s7`5-LM;@HOhhx3(bi4*+WgSX z9;``tv*J94mFGKXo>_Rc+Z37v_SVs~u8z@)b;G^30@M@Fp#!jaNF!h$B&rd%(`hey z{IAY_0^q?xm%`P{T1UdwnTK5c4cE$Qc%gqqt;q&JnXg$b8{%~!5@fc7}5e5)F%DME9Fp4j`qflmw2HPw{>9xk=2 z^pv6mxNBybx|Zx|=6&e~aa`7ubFZx;Ixgn3m6F9uQK0GJc|u$X#9KhILJ)x;Pz`kU zP7Q^`^uaWosTD0Ib05uR8l77jZuPVZ(~OmxdvGv!^{~XKYUM9jou9Wsf`!sT5G023 zsPZ&1pzye|^`fd^O|Lbat@i^fyMg8Yu1ByLhgQGEpJ^!_3)8!mKlpD3SDp4^R}duY zxk;-Wjn)X%ty)0OB(^IbMH$w|ps@08Rz$`IsBvcOfapZfS(=%#k{Sc!dt(Lm2R}q~ zBy<=!GHfT<;0#Lb!uKuS#~HUdn6bKS+CGnfJR7_YXyF?|fFw-n;@T^+0K*Oi zjc65$3$|kLf=nUv7jGcmSS*!M9rnu?$0x7OP9lHhQHPt&hP~IHEaP@_7iQPb{zE{t zbGuB-cm7U>qZh)a$i+&VJq&2fCL3SK;v$BSwO!wj4)$XQ{o0#Nued=nP7-V(eUe1w d^k(~MqyC2h3HLcp>z(x<*VmT+HgU)P{0n<+`hfrd literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/__init__.py b/venv/lib/python3.10/site-packages/future/backports/__init__.py new file mode 100644 index 0000000..c71e065 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/__init__.py @@ -0,0 +1,26 @@ +""" +future.backports package +""" + +from __future__ import absolute_import + +import sys + +__future_module__ = True +from future.standard_library import import_top_level_modules + + +if sys.version_info[0] >= 3: + import_top_level_modules() + + +from .misc import (ceil, + OrderedDict, + Counter, + ChainMap, + check_output, + count, + recursive_repr, + _count_elements, + cmp_to_key + ) diff --git a/venv/lib/python3.10/site-packages/future/backports/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9a2e516d8a519d448d8e16e7769be1e011d21bd3 GIT binary patch literal 645 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/__pycache__/datetime.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/__pycache__/datetime.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df6b9f7a623b5a2f1bdedfc554bfa2ff687c0bd4 GIT binary patch literal 48664 zcmb`w3!EIsc^^34)AOF4T`U$0U;%PVDTUTk^n&h1o)J=pb3x^cc~i zu`hJw3oH}&|9{op(=$5@kW3bs>gww1dVE#&)%U8e8v_H`82;``eV}^R4kPv-coY3g zrvn*@kV_j0JPbG#HN~9-oR!+(O)%vLv2BJTaA!c(RsUNKK_Aom?|s`P7TWaKy7Gh4cahJ8=hKg z7wo}TV^bsc(9}A6&D5wpJhgr<#utT<^5U>`k~9?alTb zxZdS#vA0|{rncgGC$4wnTEummv(3Kiyy^br)3Fa5&Q^P?bN5Kh9$Ftm+7~75Zu@R$ z8`Cy0?N^v)Z?nfy<~Ult9j)Gu>keFZ*gNeK(s$bT*!SXEvUl0LalOZ$u=n74uf5ma zhwCnTzkMIByX^z^L0l*7L-zf+?y(=RAH;R9eb_#N>%J#q_Cxm3S7Y{3Cx1CUwcpuq zKYZD6_LuKN>=FBzeH{NDwNJd3K-vMM4cRAOOqwEZu=ReJtJvD&d}6hX9y#T ze<)!HU5ridnBF+OVfyart<&44 z*H3Ss-Z_2m^u+X@>Almtrgu+|Oz)e%f4VrmW%|zP()1nE4^6L~9-m$_eR%r8>3gQ{ zLisP&PAp(GVjZBo(tDa8Ink)kD93Y(cExk{c+~}`SgG4Z<yl2nFix(%Vm3n2Oq2}a;-OWbbarY=^vEf#|hPt%JYwoU9>*puVc?-4TY(r(G zTxOHPPo6%*>MBLIv7}~L{&nJxlF?4v)eBX(+NdKwv{bLoG;F6_t9p*A)Lf($7FD(G zm1mdgGoH>hSUKx9YD=C|t}ZM#l!r`l*HgG8&R+5yz7$`mEb?A8mg+X|Q3Ni@#@Tsi z#w(faY`x-DFF0kq*N#8?(*DUAlkM^U80YTGeX&tvz-ZoFi>^MMb zO)3L|U(QoJS6K&+L-7q?|oxanFvsdpLpw^u*$& zwpE^4SX{>zv+0`+#keXUs1EKx@F!orKUNx;ynZKAuCr5Wl(8*AOl=5bd=R+}AIz|e z!5`xxkhbBb1uQ=rv(58nV-4bQiN_Ziw{$vym1y31$*HK~?uU!}iq+X-&8aLFnX;?s z)Lf^ycjCH*vNS|(#IC=NiUfohK#Ms$Kvg5i&`y`DZkgpw;7&Tf%~W?F-ql<-6&sTt z)18R0xf^23Mhn~22*%frkHyyWYK_G<@S5N~nw)Iz51L$GS~%;dVq+GQ`I1{a>tLok z#iuLvrHZ;#+~<0H#LN={`0ER7`$klz#u#j3z$sBOm5jjJAVK#@y0fOtvdg;cG7H;} zTrQ!KHj9Sh_^p_&Vb6}?sf|8a=;Vp!4Yk>} zPRBgFw~;+gG#_NWyNU~qx_6Fa)zk56z382*c>eR?F4FNlnsJ>Vzs`X`cX??S$|sM% zbh`Z1Wcis>lV_g1rlHVINHx8~TF`K)*30tveiY!6#@J>K8J3YY)OOsg4v2^Fv>zbs zcmN0;0|3xz4*Pklu^Au$IAqup%@el;0y7jBl{4em)%sj9Sb$s1H?0SN?zll(m^>wc8E;N%tLI~zVc#UZ0f!K143(W&yUN)DF zWzIJs9UC)k*_0=yJc;}H;&Nx{JIqtQmB3qOD{fmOv6f{gMu@Bu>tpw$gjT{%fHpjg zr?{#oP-hbN$4D!-OrkkEWv6GcSs`Zz`1v`MkUbw?d=78memU7ndREK4j7`p+mbYSd zZhg$oKN4F`d5KmED{p{?WLZ!DnaRleeCMPIZ zkTHfOCTmh}fm|lnxyfB8rd4|x$f8WQlb}u(8g@HXKKayvy?bAh$Ua6AOnFJKP;Mvc zZU)3jrA*tXx2-zz%N#@$Z?w(&0sQv0)7+}qA0=}$6QYlmlM@iwj|uuR3UygWdVRsj z8--LMUa&R*4I*xAuy`H8giRY8@Y`w>EOm^{7?^Cwv7FlR$DOn7_%jtyI>#3gJj2EC z^b#ICy;MWm(p)=!+F5MJPtADk_+;ZkJATrcDW&oHGY#ZAv*fhnFFH12=ax{Ksv>^{ zSxnKB%rwlb zx1CguyHxXfo18C$_E@Os-hUC9WpgZ;7G{HGC>tqV_@Bs)O_ss=4Xgk=2CR;T z;g^_;5e3X+cx>Wv&Yrl}(;H*U*;d*%(V28BE7Zd`{pVln^V|X= zItla=TZ*ZN?F9D)8}##K0w>-|UWv8hWTxvMMOi82{VagRydSgE%a(^pVP`Iz>SL|g z73*qjIoHbJsez~2<$NnQpRf(IYp#{c;hCLV&IA4Ayp(O)`PVd(9at{33X(GL8pu-B zdOBtoxKDLbH^-JC3TWk91FeD{G#iufg5ka{2#Ia9q>TsB#v!!vt3aP@n)S+p z(=^A&O9Sm>WpU9#;qjVNZ>Q!Qui}AuN}a2?jHr3cEi5jOuIeD887@)Vsd*LU@;(J- zu~wOJ+SYudT30VHEsgay%Y3CFMa0og>N%}n_LdfFPCGptyqIo=v8f=IsXG__cdW%F z_gvekss~w;Idcx|o^-!$xz)LP+c>A*!zYH@yOav$i>k87#V?KdW#n?Xek?2|{EH`n z0f=6^|0VG(c{6V^)iSd3lvk#Y7^8TH$T}aUGhg1sJt&NmJD?Pc}j7PR<%CcXr~t(?;OVsP?VI4n(OWH z+VV`LRx9i0Wxmj`|D5#^;judfL;V<{U8D_n%@E<;gBxj>q1FfigH`9Q^-SOotli64 zaa?O`GJhp=vUxz)HlZig&XT6#Ac$B}_2MK21r1fi7=RGmRjfC>;*N25N6BhuAswi@ zUZpB~&0o}nkS8)ylGwwEDV3kM5U9gBgI}=L5P^m5H2>@vPICFi3 z0e3hZ_q&xg!G`+ZIaoDjgOsok^6+hn&Fr9|G+s~IESp+^xhFy5B zc*t`-Bs|y2aAIH=1qxtkTwSTj8+k~$iq0#GkSaNLb5t19U`W7ej@uIxTr8LO7Gz8@B)H6>_zVz7f=MXvm9!AvX_-s3adl~cqde~oQ6h@V2t4_^!lfV@& zM}cT@)ELGONKcR=p!-vJ&_zlSvLVX*EN)gpmy0ZbE@%(K-6*iYBJ-hYhETm5OpxK0 z{O3sxRlFbYulLFG2mR+@Mg)!^)co>K*lE1~l>a=_0{i8|IXkI-0ol*j%r-=@k#IKl12ctclGy+{t^gJScx4g=LY1BPQbm zOlh$(?WC@@oz%6cIktF}A>$JChinapjDkNsWE`x{4}*X~Dsy4Q6Su1weFCDQe7AbeGP~)GDqE_FlTol_!%FIN$V|z1><9 zVtnp|WmItod&OO2nEUWeMM8OXjK3LAJz#t-%9uAbDLiimIGfwp*i5Cq!-LpjVX*?) zA2+F@*U+0)Jc6^*f0ilm*kGq|SgtewL(?PTn{J@6{_r>QLB zq60%bhxm}aM$+^4u)P*}2b_Vag0I&a^z~XpzFupMuh$y(^;&Cf=(F(7h%*9hTG74> z@lkuLeK)S_eLd9%d%L{@_Zxlv)R?cI+T`n}Hv9UiJAD1r7GFPgr>~zX`ueH6eErl` zUq5xX)=o`rvmdq}LHXnMF(AW7W%sCj2atNs0dwtgl6mK#?x@brI?4eZ5$;Xi#RjBI zT83WK$^oiAiugOdv`85{6e0}_R0T>7_ppAlyI8U9U7VYqs?4D5fY6oqb{CiG6b3KW zmbg2D&c+2A3;$s-Z!l$g-&+8eS6!@Kf{Y9*5gV<%1RBzNca;vAYQB?j&CK^TG` zx|T-$aB(NO0{~8#6ah|%=-kpovH0S-OOF(bk2*7zC1?VklDcNWK@@A%^N^Q%6OwW* z4*s7dLGbSv)gCBEkftm6d4{s$;Ezi%+`hk$)nsD}UQXke0aI&$4TCfej4h>52|GR# zYb7aX^QCKG3Mp^H^Ehyu(0%G@kz7FU2gzJ+*^s-Oog9ftN`85uH2{g)fJoFHB=xB8 zz)~{?f&r4Y$NY5MEvM_2odRo%80yFiZTY-BPqgxv4cU_3EBBD7c@`*7+kcwD(+oDO zn*S773ry)JrA4N+rT__{8OrxQB>6j+kb+Au?um4ucVjGiT z8^e)!-Eec=`H?arDS$OcYqh>0-%cqx(PD23=MALnV@myyv~4hG8}8mBd{Dx3E6Nn9 zEcPSxj{RH#hiLup_uocdh%I6$uPG@IxoAkbAC`N86$nef*8R~=%5oNM&DufBv#m^v zLZ5K_kXw&`vXu!(oT4Iu5=L3(CvyF!U#pBd#_wB@kYzNHg}Z->SQ$@^!Kyy+{M7FOHx5NaMOvz0^TTq}z(k2#b^-`AYCP}29k0eiTW z_Bpemh!Ev@V1?@sF&KiHwECZb7f39{VjKSJF&#nt|B{s0Up;dDLqA~n&#@U-V?S@| zXCHcX;<)5~J#p-K^+SIhk6k|oI!=;)^-E72zkc&uUpUg-7Gm4t-J$-l>VkA=6l)+< zoWr2eO9dfw+KJg(0|M4W8S=ezZ3_bESw(8E9mhr@;uS?%tCpFhKxjA@L1$cJ(%)zB z514o0)CEVOpo_vPm)5l7Gc{Me!bd3|Zz|H-c_RvG>w@~y0q=d+M5aTZ!XGn<(xOuYxQFy_mjD`Ynq{kr=kEiht@A$?r{!tb) z1j$U0a|mfHAuCUZ;=E%S%#YCAW$c2S1`HvXLrQWiv$-Z5#0ekhD=6YndO%5TD>fff z!?3{s^D=MDQz;gk2b(w#re!`h3#~ZK2_PNV3TeTLJQPWSZl(-5@-}Hv%;Ci3jRJV^ zaS$TK+F8GiR4|ic3H(2lJ88NxuHE+u*xmd zm#4?(O|_j;l~*CKhAairlzB+OzzAFGDPIR<)n4q>V4vp!IZ30;JvFI*33WB|;}NlY zSG&+LVLwmfDm{ce2Q32zG0w+T#x@rr?w+Oi6{a4*6#jCkA_no>KhhUU9eZJy1Q7@` zmfs=dOg!IUH1CSS2(prLdE%j31JXG6;R&4^g9kdga*4tfRbkqzEU}ub>e16$D`Lh?&&yFd$Y^-(b)) z7Y95R7f^k_%bpM|4g)hlTWeT1o9jE^?aI5NA9z>#@dhU)`$1`{v;h|Za-Rms^KatS zHwcDgyjkc}N9?z1E$a7?9|f~}m@+bw{mSR_Z=-zm2Z%(6!$+mJt$?6I1)L!LASj^y zmth5?o#sdB=hYcx>PNXqg~VJ>HhCU$mk_ZT^Kn6OAerW|C@({i>m^Rd)Q{q|Yf;gj z0JyVN6($?rQwxyxQy}2junXbTZYLU;Ei24@FpE z-`npEtbd56(Hn_LZ#H!IM*T}vtp1Qe&m84CTRK}V{~4kDuaKd;N%Cw(lR$asRYm+7 z0yx`(I<*DODZmKqBVY_9AtE9D-&lXYMi6OBP2WW;ME)TFGI~(7ZVa-7e~gDH+HVX{ zG@5~tmN1?ZNa)5`T2k9Roc$&q^yZ*a=E~*2WP`|>rJ+`Vs^raX@JOCjXStZSv;YpN zT|>UlGGb*gOe~kb$I7@=dvTjQT~SSl+bFptP7oy{Y#4H=lGR=_ef8TvLx$D52@SXM5q+GTGTX)GxAW z{pP_?*=ux31_m(1zBmvR%+2Ol2LbkG?HV7h&pzYhK{5z_HsjH2}sM`n7#pD&j| z>eFK8Lb<$#y(C)VrcMGEq%_D{^f!X=qc3#zmHiC++Qf}+y9YJKEJWchI5g>P0xECa zTcoOu(p#j-oC|up-2v<33CzLony%7rYW!8F@m<*B{p$bZ z)1Fbtmdo0-s$Aa1PUww1O?vd^kO^cl5(RybwW}|9t)n&4qI)boFcT_I$hRPz0|KX& zHc5A244|giRuT;0P_$9Z@D3WpxgBZH8FiiD zS)~zmC=iaI5$gX&rta$bXw~Z9*pB?+OpL+6QLZnp$8Xkylks_*ZvhZ&)_&o&eG|t*Uf#+T76)=29p5iUxCeRmyUr{9WqVR$lgr9Kb=qK&1BXvE&WSdRtC0YnRFtZO2^ZX$KlSx zeLkH;n2h|h@H~}|OX*ePkn>N}ud%Y9X7Do%eii`;DG|ifnXt%!G6^k``4@=I;MeuX z*?J5=cP|>;tD45)KwmBGB(-81D(4j9qMSxNjkqYN5%(3;Q(6CjW=<=nr$V)~uaYh} zg{eUt_mcyccyA5ja_AEAVZ`O&CE{y+74?X(qF!g85CygIKTbjI+=&C8`Vi$^zLI*Y zucW@)S5j~DmDJbHW;6eu`URd|cOJyPVAQ$0#;u3$=ecNKj(q2$8ewXmoYHQw}7 zWyvtBUOe&=g&xJ7c(R9y#YP=AU>B=6J`|!L+I;xcKO-iGfkvG<#M(1#d#ANU{816n z=}pybgbBNfxP$Z*hN%^`6Q=@jtL;JkqHt(%!SUk&q8NAvFnCsDhN|NhcPgi1v&p5y z(#78M29hY6XFh2s^_e7`xkIxiXSkIHe`KA)t@Q_S6Kt)j1PU9fMAD?H1mQL;!8RhR z9Ew;^OE6WcgC?sFK~b21p<&63Ux8Q~DlQn0UjfTcD`J|FLp?_Z5)?Vi1Uq?*mR07_ z3agx^F?~5BCg;iK3z7Nb&nN=*xNm?H3i&FpKIfm zA%`VY5wXcqRx`0FCND9_F`#;)36Ce;ZA0gR+JeedKj1S)v(kGtU}BT@5mae{5C;zZ3Y$*$NM& z20{FCh7y!z3+HW;%PAVc!$Lq#-n1+-ZY866Bm`(tTSgRTu>cW&_SEU8-Xrr}R$_6d z7%p%IPUvY^nt;XP3#hW45ura*OF8Ls+wkNBgBU4mrP~xTMh*j{{8mHe zu%wF?6V+ObDg?SRszV&+o+c**QT-BXe}hd;LzLUhN>k-Q7wz1&w#KB1Tv0E_^^o-p z)0g@;wSohCuz6qfsx!qWlrz^*INBVXM~keF@Kk4TrjrL&gF|V>;wj=cYBM5hM(k)X zHb8WaU<|I4dZWI(>8M7a{m{obv@HvtLtK9hT?uCXgNXM|gdULPIEX%m{Iy_=3n`58 zP&mf^Te*9pmY)BrHJjdq!Ic^t(h#vD+lokpa?}W%$yoL*S$b>j&G!m zTbvqS1m2B+?cs+XF4|u4XlOFDbN}9bdv_K0;eQ8tFqgb)d!57`Y`x5+AQE|ZR}qEm zE$z_T7Xf#xns)gXghyE%PoYo147gL%JFPw}HfW%%>#+PC;h?MkmBaW?5MW$|c>WR- za$Eo*vg^me2>JStIjH0u^0`3K+8mIf4Yuj7aplV8(%{N2^+^VU?Rmp9unA!J}w%x&j|a8~%_GpiBsa zFJ(gbm;5^)FGz+iywC*zE*5f**dsOfsFC)D$K|+GaS5jh=GZl#6d*?a7+z7_tNn(x zQ{gTzl zIR~)}?S&5bAx++t%YVwYB$1mtUfO8F{zCS;;Ca^+0iZin3AaxOWxF^_F)A>d-}Wbh zsA*B2Uh*EzAS*L7f>h>+37$HADzfI!oC9LS{~a&kZ}&6L>^^yNN96Hyj&FAfQiBVZ zf4if;B`)44o+Zvaw`cOyna6eqi>rU;ncBomWnrQ+GqH4j&krulo!@_O52!vlW+3h- z!q<4#?ts0U$C)Hha2nHJY>)}b#{bBP$N4mpX~Mz<5Dg!#04RaVH7D9#&;1CzHJqGeTE!$?Ay;81ebh+ZRp-3gm(Iyum-)M z%DcC%0(md76Zh?71tiM)c7b%+_rnU(0xG<@qIgQD1u^;iwJ*ycBBC^$ThQec<+C>) z^yi*XMnXjug(=Xs)?O9HLmh@V3Gp6-3MR9>*#beNX|%xS$`= zBhEcTYF^QqfUx)JBXmLpGwh5{8~!7|6Str-xTaR493rdczlZ*~z!NgsOaqV(#uOLGF^PNZzGMa6``vvqhz%TBTV@tGXxJvGCFiDEX7_%N;%VfZF=hMpI^(>)JC?BYO7 z6=zax_-5e2l!-~~$330=DYQ$$w^XR*gJDz4M}*@H@YHl@zb-SW)FIRSv6HDJqBCR!L#ru9a2x z6RRVa#&?`WeTP^S47aV4qQiYFs=TE-Vf9{$I^nieQc!tlWtF|XBt{R(&1WOM)XD=c zUm`^Ota#iEcr#cD(V~WyL6R!$H4JrWzmwnY0%QjsnW$?^&_y_&goa z_^w4lhjDJ3m-gfMKYsT9-hGj;9zh@VX?YxS;=iWefp4jiQ2!q*HEtxHgnnT{{WsRw zZ{wwm_c$sLGBF>JiGf<83nL&`$Z@;x#!Wa~wvp$iDwYOS%fON?eRvH%n|QQP73=Vq z$HVP%@Gxf2b& zjLHW7mK(dTr?K~IW>nq3N-KF-JP;0_C7jukp}5Z*b)I##m^@TSqS<#XTefHtmsm1>YDW^ptFl_#|(pCNopu?d9B zlY(WUdM!+Wo0M)f$~rkvKL(Sf1b0U4k$$XYyliR9$TGTA#`5J^y%v{PtPIC9Kub6$ zu#r9L)@U?G=!(LrH1%~^hdXvo{<)m&h=!e5OaGyXm3Xq9~MF*OB zoNk_knG}MZ`e+E0Q85)~U@-v6;cIeoa)Ly=4G{sq;?&g?fvDe$ylt@=+Zo%*KveQ{ z4A86GAtSE$9kNz$S&vSVLZw(9cU3J*weg~mORz9Vhrle&f? z>l$V7Z3Hv;b^URNI)|0C_7OLMDQz z$pw|Gp+_OO8zGSdA0%`9<41ThE z8p{lxNAs_8JwJ_yunrV=Kh$(+e2%Lg&k#B^X^-NMP}UU0Qn36@SqX4z}Fjwm3V5S*6RdVGqQePPvj0#=^AYkW+0zIyOb-q$M*? z{2fs_Q>_Ihgw0H<}vbneK`_x#9H;(8qYF4p%&#m9k7{Skb zB+PplD!~anE6!E07BCs;^wag|nL+1ukAQZovtf8db))Z=2JWGKouJ-kiQ%+68qR&u zfrAqH8skr44S?IZ?LaRUT9jMod#t39@9Qq4X7@3A;tT zw)|JSc41DYkU%+$8&Xn`Yr~A40}g9s<1+Zsx(Ujj2J>)@EYC1u)EESum?Cu^`sYzk zyt8;0Jo3TfL!3?BOPUNvAR!geG0I9XO%ju!HAydl^oNJFIa3OO?EGLG2eUOB z-k8c|D7h}+v8W<_fVFdx*V`5gX{UpC+X-#e*$q0`OMj1G<9>HHnC{mtM( z*B^4nj^XE$LhIUJkNUQ0mg753fz4PF@xV4Mg?M0_mPR~qpOQg5aGwIdfOMWRmGfPv zk*tGwg`>2gh=qQ{fS%Io(UR%r

$@-tm_V1Y8#x7PyeqLrEc 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

    3O-mz`hg9v4 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/__pycache__/misc.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/__pycache__/misc.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d15ed89dada3873f49b0a662806537a9799df324 GIT binary patch literal 28818 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 z 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/__pycache__/socket.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/__pycache__/socket.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..69f50389f4d9e5732a9ad2a9bb945849c640c71e GIT binary patch literal 14248 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/__pycache__/total_ordering.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/__pycache__/total_ordering.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7a3fc464979a06abff05021499430ebb17c905e0 GIT binary patch literal 2288 zcmb7GL2uhO6ecA~c2vhrlWc3Zi+1#(QsNHXR-{3JZao$Q0_>1&5EPMirMf78?eI;!``zUH7SrprNPI?NAkVL?>#+QuC96n+UKpG)8ATz z{E3sx&4S4@=(-PtlYPP|w=%j<1sz%3K62CsNLXg)Y@boWtv$jW?!G1a4EbK`^bhZa zRQ`7-=1>;?j^7Wy4Elj@q=~agDlSx74E?n5kA>2yEVMsXDI73zvDHtte=r#iPXcdG z2>;NS@sltFi4Mkdoq<%tFx7e@wzsyv==%dW%!P^5Ob0%iHitrscj_lvc!}h~Kafhv z*Mj>4CG!gh(Y;53=eHd$_ zluezImDVv;8b&8##xZWmX4a?$vzBR>1m!cEl2<>J1j4_0`uKSkYYh=eq>9Zv9I^2S zX_je>dJd7p1gJA17mz4iS8fyyO%x>v@kK)(`yO!1XY}P6IkPIJ zMK-7$3Bgxt9xEjOitte8A{^=d_SfN9$&pBm4%19N%;O>+3KbrU;yBFGgK&{ukAm&3 zP^U&b9LLEK?9kz0VkSz22QVK?1;?*OAJVdF?__a)z~kLDF#0#TyiQKv%lTj@lS!QE zU0@cQ@y?mJ>CUL`>Yew9!VFtn5%cWbWz`*=c7WW2KKEjc%yGTZ2G)ax4aBp7b_~Q^ zyGI&Ci+0Eu^MoEjd1#=01GKAEAait@WdxN=3k`3ud12#v|7%ph|3-d)ggO!U>vh%{ z%r0ke157@?-QPM>YTb>z{scAOz0vC$3Dyva`>3-a63z!^$AjCEs8M!4Fe^U2U3ZNI z_}vKK&n~d&F@=t)E)oX`M(p%)KG6n>H;ap0tzX-luzI_-Su~# z`nykiE0wKaT!!wnsf`{de8y{w<\"'")])]) + File "/home/travis/build/edschofield/python-future/future/tests/test_htmlparser.py", line 93, in _run_check + collector = self.get_collector() + File "/home/travis/build/edschofield/python-future/future/tests/test_htmlparser.py", line 617, in get_collector + return EventCollector(strict=True) + File "/home/travis/build/edschofield/python-future/future/tests/test_htmlparser.py", line 27, in __init__ + html.parser.HTMLParser.__init__(self, *args, **kw) + File "/home/travis/build/edschofield/python-future/future/backports/html/parser.py", line 135, in __init__ + self.reset() + File "/home/travis/build/edschofield/python-future/future/backports/html/parser.py", line 143, in reset + _markupbase.ParserBase.reset(self) + +TypeError: unbound method reset() must be called with ParserBase instance as first argument (got EventCollector instance instead) + +This module is used as a foundation for the html.parser module. It has no +documented public API and should not be used directly. + +""" + +import re + +_declname_match = re.compile(r'[a-zA-Z][-_.a-zA-Z0-9]*\s*').match +_declstringlit_match = re.compile(r'(\'[^\']*\'|"[^"]*")\s*').match +_commentclose = re.compile(r'--\s*>') +_markedsectionclose = re.compile(r']\s*]\s*>') + +# An analysis of the MS-Word extensions is available at +# http://www.planetpublish.com/xmlarena/xap/Thursday/WordtoXML.pdf + +_msmarkedsectionclose = re.compile(r']\s*>') + +del re + + +class ParserBase(object): + """Parser base class which provides some common support methods used + by the SGML/HTML and XHTML parsers.""" + + def __init__(self): + if self.__class__ is ParserBase: + raise RuntimeError( + "_markupbase.ParserBase must be subclassed") + + def error(self, message): + raise NotImplementedError( + "subclasses of ParserBase must override error()") + + def reset(self): + self.lineno = 1 + self.offset = 0 + + def getpos(self): + """Return current line number and offset.""" + return self.lineno, self.offset + + # Internal -- update line number and offset. This should be + # called for each piece of data exactly once, in order -- in other + # words the concatenation of all the input strings to this + # function should be exactly the entire input. + def updatepos(self, i, j): + if i >= j: + return j + rawdata = self.rawdata + nlines = rawdata.count("\n", i, j) + if nlines: + self.lineno = self.lineno + nlines + pos = rawdata.rindex("\n", i, j) # Should not fail + self.offset = j-(pos+1) + else: + self.offset = self.offset + j-i + return j + + _decl_otherchars = '' + + # Internal -- parse declaration (for use by subclasses). + def parse_declaration(self, i): + # This is some sort of declaration; in "HTML as + # deployed," this should only be the document type + # declaration (""). + # ISO 8879:1986, however, has more complex + # declaration syntax for elements in , including: + # --comment-- + # [marked section] + # name in the following list: ENTITY, DOCTYPE, ELEMENT, + # ATTLIST, NOTATION, SHORTREF, USEMAP, + # LINKTYPE, LINK, IDLINK, USELINK, SYSTEM + rawdata = self.rawdata + j = i + 2 + assert rawdata[i:j] == "": + # the empty comment + return j + 1 + if rawdata[j:j+1] in ("-", ""): + # Start of comment followed by buffer boundary, + # or just a buffer boundary. + return -1 + # A simple, practical version could look like: ((name|stringlit) S*) + '>' + n = len(rawdata) + if rawdata[j:j+2] == '--': #comment + # Locate --.*-- as the body of the comment + return self.parse_comment(i) + elif rawdata[j] == '[': #marked section + # Locate [statusWord [...arbitrary SGML...]] as the body of the marked section + # Where statusWord is one of TEMP, CDATA, IGNORE, INCLUDE, RCDATA + # Note that this is extended by Microsoft Office "Save as Web" function + # to include [if...] and [endif]. + return self.parse_marked_section(i) + else: #all other declaration elements + decltype, j = self._scan_name(j, i) + if j < 0: + return j + if decltype == "doctype": + self._decl_otherchars = '' + while j < n: + c = rawdata[j] + if c == ">": + # end of declaration syntax + data = rawdata[i+2:j] + if decltype == "doctype": + self.handle_decl(data) + else: + # According to the HTML5 specs sections "8.2.4.44 Bogus + # comment state" and "8.2.4.45 Markup declaration open + # state", a comment token should be emitted. + # Calling unknown_decl provides more flexibility though. + self.unknown_decl(data) + return j + 1 + if c in "\"'": + m = _declstringlit_match(rawdata, j) + if not m: + return -1 # incomplete + j = m.end() + elif c in "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ": + name, j = self._scan_name(j, i) + elif c in self._decl_otherchars: + j = j + 1 + elif c == "[": + # this could be handled in a separate doctype parser + if decltype == "doctype": + j = self._parse_doctype_subset(j + 1, i) + elif decltype in set(["attlist", "linktype", "link", "element"]): + # must tolerate []'d groups in a content model in an element declaration + # also in data attribute specifications of attlist declaration + # also link type declaration subsets in linktype declarations + # also link attribute specification lists in link declarations + self.error("unsupported '[' char in %s declaration" % decltype) + else: + self.error("unexpected '[' char in declaration") + else: + self.error( + "unexpected %r char in declaration" % rawdata[j]) + if j < 0: + return j + return -1 # incomplete + + # Internal -- parse a marked section + # Override this to handle MS-word extension syntax content + def parse_marked_section(self, i, report=1): + rawdata= self.rawdata + assert rawdata[i:i+3] == ' ending + match= _markedsectionclose.search(rawdata, i+3) + elif sectName in set(["if", "else", "endif"]): + # look for MS Office ]> ending + match= _msmarkedsectionclose.search(rawdata, i+3) + else: + self.error('unknown status keyword %r in marked section' % rawdata[i+3:j]) + if not match: + return -1 + if report: + j = match.start(0) + self.unknown_decl(rawdata[i+3: j]) + return match.end(0) + + # Internal -- parse comment, return length or -1 if not terminated + def parse_comment(self, i, report=1): + rawdata = self.rawdata + if rawdata[i:i+4] != ' delimiter transport-padding + # --> CRLF body-part + for body_part in msgtexts: + # delimiter transport-padding CRLF + self.write(self._NL + '--' + boundary + self._NL) + # body-part + self._fp.write(body_part) + # close-delimiter transport-padding + self.write(self._NL + '--' + boundary + '--') + if msg.epilogue is not None: + self.write(self._NL) + if self._mangle_from_: + epilogue = fcre.sub('>From ', msg.epilogue) + else: + epilogue = msg.epilogue + self._write_lines(epilogue) + + def _handle_multipart_signed(self, msg): + # The contents of signed parts has to stay unmodified in order to keep + # the signature intact per RFC1847 2.1, so we disable header wrapping. + # RDM: This isn't enough to completely preserve the part, but it helps. + p = self.policy + self.policy = p.clone(max_line_length=0) + try: + self._handle_multipart(msg) + finally: + self.policy = p + + def _handle_message_delivery_status(self, msg): + # We can't just write the headers directly to self's file object + # because this will leave an extra newline between the last header + # block and the boundary. Sigh. + blocks = [] + for part in msg.get_payload(): + s = self._new_buffer() + g = self.clone(s) + g.flatten(part, unixfrom=False, linesep=self._NL) + text = s.getvalue() + lines = text.split(self._encoded_NL) + # Strip off the unnecessary trailing empty line + if lines and lines[-1] == self._encoded_EMPTY: + blocks.append(self._encoded_NL.join(lines[:-1])) + else: + blocks.append(text) + # Now join all the blocks with an empty line. This has the lovely + # effect of separating each block with an empty line, but not adding + # an extra one after the last one. + self._fp.write(self._encoded_NL.join(blocks)) + + def _handle_message(self, msg): + s = self._new_buffer() + g = self.clone(s) + # The payload of a message/rfc822 part should be a multipart sequence + # of length 1. The zeroth element of the list should be the Message + # object for the subpart. Extract that object, stringify it, and + # write it out. + # Except, it turns out, when it's a string instead, which happens when + # and only when HeaderParser is used on a message of mime type + # message/rfc822. Such messages are generated by, for example, + # Groupwise when forwarding unadorned messages. (Issue 7970.) So + # in that case we just emit the string body. + payload = msg._payload + if isinstance(payload, list): + g.flatten(msg.get_payload(0), unixfrom=False, linesep=self._NL) + payload = s.getvalue() + else: + payload = self._encode(payload) + self._fp.write(payload) + + # This used to be a module level function; we use a classmethod for this + # and _compile_re so we can continue to provide the module level function + # for backward compatibility by doing + # _make_boudary = Generator._make_boundary + # at the end of the module. It *is* internal, so we could drop that... + @classmethod + def _make_boundary(cls, text=None): + # Craft a random boundary. If text is given, ensure that the chosen + # boundary doesn't appear in the text. + token = random.randrange(sys.maxsize) + boundary = ('=' * 15) + (_fmt % token) + '==' + if text is None: + return boundary + b = boundary + counter = 0 + while True: + cre = cls._compile_re('^--' + re.escape(b) + '(--)?$', re.MULTILINE) + if not cre.search(text): + break + b = boundary + '.' + str(counter) + counter += 1 + return b + + @classmethod + def _compile_re(cls, s, flags): + return re.compile(s, flags) + +class BytesGenerator(Generator): + """Generates a bytes version of a Message object tree. + + Functionally identical to the base Generator except that the output is + bytes and not string. When surrogates were used in the input to encode + bytes, these are decoded back to bytes for output. If the policy has + cte_type set to 7bit, then the message is transformed such that the + non-ASCII bytes are properly content transfer encoded, using the charset + unknown-8bit. + + The outfp object must accept bytes in its write method. + """ + + # Bytes versions of this constant for use in manipulating data from + # the BytesIO buffer. + _encoded_EMPTY = b'' + + def write(self, s): + self._fp.write(str(s).encode('ascii', 'surrogateescape')) + + def _new_buffer(self): + return BytesIO() + + def _encode(self, s): + return s.encode('ascii') + + def _write_headers(self, msg): + # This is almost the same as the string version, except for handling + # strings with 8bit bytes. + for h, v in msg.raw_items(): + self._fp.write(self.policy.fold_binary(h, v)) + # A blank line always separates headers from body + self.write(self._NL) + + def _handle_text(self, msg): + # If the string has surrogates the original source was bytes, so + # just write it back out. + if msg._payload is None: + return + if _has_surrogates(msg._payload) and not self.policy.cte_type=='7bit': + if self._mangle_from_: + msg._payload = fcre.sub(">From ", msg._payload) + self._write_lines(msg._payload) + else: + super(BytesGenerator,self)._handle_text(msg) + + # Default body handler + _writeBody = _handle_text + + @classmethod + def _compile_re(cls, s, flags): + return re.compile(s.encode('ascii'), flags) + + +_FMT = '[Non-text (%(type)s) part of message omitted, filename %(filename)s]' + +class DecodedGenerator(Generator): + """Generates a text representation of a message. + + Like the Generator base class, except that non-text parts are substituted + with a format string representing the part. + """ + def __init__(self, outfp, mangle_from_=True, maxheaderlen=78, fmt=None): + """Like Generator.__init__() except that an additional optional + argument is allowed. + + Walks through all subparts of a message. If the subpart is of main + type `text', then it prints the decoded payload of the subpart. + + Otherwise, fmt is a format string that is used instead of the message + payload. fmt is expanded with the following keywords (in + %(keyword)s format): + + type : Full MIME type of the non-text part + maintype : Main MIME type of the non-text part + subtype : Sub-MIME type of the non-text part + filename : Filename of the non-text part + description: Description associated with the non-text part + encoding : Content transfer encoding of the non-text part + + The default value for fmt is None, meaning + + [Non-text (%(type)s) part of message omitted, filename %(filename)s] + """ + Generator.__init__(self, outfp, mangle_from_, maxheaderlen) + if fmt is None: + self._fmt = _FMT + else: + self._fmt = fmt + + def _dispatch(self, msg): + for part in msg.walk(): + maintype = part.get_content_maintype() + if maintype == 'text': + print(part.get_payload(decode=False), file=self) + elif maintype == 'multipart': + # Just skip this + pass + else: + print(self._fmt % { + 'type' : part.get_content_type(), + 'maintype' : part.get_content_maintype(), + 'subtype' : part.get_content_subtype(), + 'filename' : part.get_filename('[no filename]'), + 'description': part.get('Content-Description', + '[no description]'), + 'encoding' : part.get('Content-Transfer-Encoding', + '[no encoding]'), + }, file=self) + + +# Helper used by Generator._make_boundary +_width = len(repr(sys.maxsize-1)) +_fmt = '%%0%dd' % _width + +# Backward compatibility +_make_boundary = Generator._make_boundary diff --git a/venv/lib/python3.10/site-packages/future/backports/email/header.py b/venv/lib/python3.10/site-packages/future/backports/email/header.py new file mode 100644 index 0000000..63bf038 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/header.py @@ -0,0 +1,581 @@ +# Copyright (C) 2002-2007 Python Software Foundation +# Author: Ben Gertzfield, Barry Warsaw +# Contact: email-sig@python.org + +"""Header encoding and decoding functionality.""" +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future.builtins import bytes, range, str, super, zip + +__all__ = [ + 'Header', + 'decode_header', + 'make_header', + ] + +import re +import binascii + +from future.backports import email +from future.backports.email import base64mime +from future.backports.email.errors import HeaderParseError +import future.backports.email.charset as _charset + +# Helpers +from future.backports.email.quoprimime import _max_append, header_decode + +Charset = _charset.Charset + +NL = '\n' +SPACE = ' ' +BSPACE = b' ' +SPACE8 = ' ' * 8 +EMPTYSTRING = '' +MAXLINELEN = 78 +FWS = ' \t' + +USASCII = Charset('us-ascii') +UTF8 = Charset('utf-8') + +# Match encoded-word strings in the form =?charset?q?Hello_World?= +ecre = re.compile(r''' + =\? # literal =? + (?P[^?]*?) # non-greedy up to the next ? is the charset + \? # literal ? + (?P[qb]) # either a "q" or a "b", case insensitive + \? # literal ? + (?P.*?) # non-greedy up to the next ?= is the encoded string + \?= # literal ?= + ''', re.VERBOSE | re.IGNORECASE | re.MULTILINE) + +# Field name regexp, including trailing colon, but not separating whitespace, +# according to RFC 2822. Character range is from tilde to exclamation mark. +# For use with .match() +fcre = re.compile(r'[\041-\176]+:$') + +# Find a header embedded in a putative header value. Used to check for +# header injection attack. +_embeded_header = re.compile(r'\n[^ \t]+:') + + +def decode_header(header): + """Decode a message header value without converting charset. + + Returns a list of (string, charset) pairs containing each of the decoded + parts of the header. Charset is None for non-encoded parts of the header, + otherwise a lower-case string containing the name of the character set + specified in the encoded string. + + header may be a string that may or may not contain RFC2047 encoded words, + or it may be a Header object. + + An email.errors.HeaderParseError may be raised when certain decoding error + occurs (e.g. a base64 decoding exception). + """ + # If it is a Header object, we can just return the encoded chunks. + if hasattr(header, '_chunks'): + return [(_charset._encode(string, str(charset)), str(charset)) + for string, charset in header._chunks] + # If no encoding, just return the header with no charset. + if not ecre.search(header): + return [(header, None)] + # First step is to parse all the encoded parts into triplets of the form + # (encoded_string, encoding, charset). For unencoded strings, the last + # two parts will be None. + words = [] + for line in header.splitlines(): + parts = ecre.split(line) + first = True + while parts: + unencoded = parts.pop(0) + if first: + unencoded = unencoded.lstrip() + first = False + if unencoded: + words.append((unencoded, None, None)) + if parts: + charset = parts.pop(0).lower() + encoding = parts.pop(0).lower() + encoded = parts.pop(0) + words.append((encoded, encoding, charset)) + # Now loop over words and remove words that consist of whitespace + # between two encoded strings. + import sys + droplist = [] + for n, w in enumerate(words): + if n>1 and w[1] and words[n-2][1] and words[n-1][0].isspace(): + droplist.append(n-1) + for d in reversed(droplist): + del words[d] + + # The next step is to decode each encoded word by applying the reverse + # base64 or quopri transformation. decoded_words is now a list of the + # form (decoded_word, charset). + decoded_words = [] + for encoded_string, encoding, charset in words: + if encoding is None: + # This is an unencoded word. + decoded_words.append((encoded_string, charset)) + elif encoding == 'q': + word = header_decode(encoded_string) + decoded_words.append((word, charset)) + elif encoding == 'b': + paderr = len(encoded_string) % 4 # Postel's law: add missing padding + if paderr: + encoded_string += '==='[:4 - paderr] + try: + word = base64mime.decode(encoded_string) + except binascii.Error: + raise HeaderParseError('Base64 decoding error') + else: + decoded_words.append((word, charset)) + else: + raise AssertionError('Unexpected encoding: ' + encoding) + # Now convert all words to bytes and collapse consecutive runs of + # similarly encoded words. + collapsed = [] + last_word = last_charset = None + for word, charset in decoded_words: + if isinstance(word, str): + word = bytes(word, 'raw-unicode-escape') + if last_word is None: + last_word = word + last_charset = charset + elif charset != last_charset: + collapsed.append((last_word, last_charset)) + last_word = word + last_charset = charset + elif last_charset is None: + last_word += BSPACE + word + else: + last_word += word + collapsed.append((last_word, last_charset)) + return collapsed + + +def make_header(decoded_seq, maxlinelen=None, header_name=None, + continuation_ws=' '): + """Create a Header from a sequence of pairs as returned by decode_header() + + decode_header() takes a header value string and returns a sequence of + pairs of the format (decoded_string, charset) where charset is the string + name of the character set. + + This function takes one of those sequence of pairs and returns a Header + instance. Optional maxlinelen, header_name, and continuation_ws are as in + the Header constructor. + """ + h = Header(maxlinelen=maxlinelen, header_name=header_name, + continuation_ws=continuation_ws) + for s, charset in decoded_seq: + # None means us-ascii but we can simply pass it on to h.append() + if charset is not None and not isinstance(charset, Charset): + charset = Charset(charset) + h.append(s, charset) + return h + + +class Header(object): + def __init__(self, s=None, charset=None, + maxlinelen=None, header_name=None, + continuation_ws=' ', errors='strict'): + """Create a MIME-compliant header that can contain many character sets. + + Optional s is the initial header value. If None, the initial header + value is not set. You can later append to the header with .append() + method calls. s may be a byte string or a Unicode string, but see the + .append() documentation for semantics. + + Optional charset serves two purposes: it has the same meaning as the + charset argument to the .append() method. It also sets the default + character set for all subsequent .append() calls that omit the charset + argument. If charset is not provided in the constructor, the us-ascii + charset is used both as s's initial charset and as the default for + subsequent .append() calls. + + The maximum line length can be specified explicitly via maxlinelen. For + splitting the first line to a shorter value (to account for the field + header which isn't included in s, e.g. `Subject') pass in the name of + the field in header_name. The default maxlinelen is 78 as recommended + by RFC 2822. + + continuation_ws must be RFC 2822 compliant folding whitespace (usually + either a space or a hard tab) which will be prepended to continuation + lines. + + errors is passed through to the .append() call. + """ + if charset is None: + charset = USASCII + elif not isinstance(charset, Charset): + charset = Charset(charset) + self._charset = charset + self._continuation_ws = continuation_ws + self._chunks = [] + if s is not None: + self.append(s, charset, errors) + if maxlinelen is None: + maxlinelen = MAXLINELEN + self._maxlinelen = maxlinelen + if header_name is None: + self._headerlen = 0 + else: + # Take the separating colon and space into account. + self._headerlen = len(header_name) + 2 + + def __str__(self): + """Return the string value of the header.""" + self._normalize() + uchunks = [] + lastcs = None + lastspace = None + for string, charset in self._chunks: + # We must preserve spaces between encoded and non-encoded word + # boundaries, which means for us we need to add a space when we go + # from a charset to None/us-ascii, or from None/us-ascii to a + # charset. Only do this for the second and subsequent chunks. + # Don't add a space if the None/us-ascii string already has + # a space (trailing or leading depending on transition) + nextcs = charset + if nextcs == _charset.UNKNOWN8BIT: + original_bytes = string.encode('ascii', 'surrogateescape') + string = original_bytes.decode('ascii', 'replace') + if uchunks: + hasspace = string and self._nonctext(string[0]) + if lastcs not in (None, 'us-ascii'): + if nextcs in (None, 'us-ascii') and not hasspace: + uchunks.append(SPACE) + nextcs = None + elif nextcs not in (None, 'us-ascii') and not lastspace: + uchunks.append(SPACE) + lastspace = string and self._nonctext(string[-1]) + lastcs = nextcs + uchunks.append(string) + return EMPTYSTRING.join(uchunks) + + # Rich comparison operators for equality only. BAW: does it make sense to + # have or explicitly disable <, <=, >, >= operators? + def __eq__(self, other): + # other may be a Header or a string. Both are fine so coerce + # ourselves to a unicode (of the unencoded header value), swap the + # args and do another comparison. + return other == str(self) + + def __ne__(self, other): + return not self == other + + def append(self, s, charset=None, errors='strict'): + """Append a string to the MIME header. + + Optional charset, if given, should be a Charset instance or the name + of a character set (which will be converted to a Charset instance). A + value of None (the default) means that the charset given in the + constructor is used. + + s may be a byte string or a Unicode string. If it is a byte string + (i.e. isinstance(s, str) is false), then charset is the encoding of + that byte string, and a UnicodeError will be raised if the string + cannot be decoded with that charset. If s is a Unicode string, then + charset is a hint specifying the character set of the characters in + the string. In either case, when producing an RFC 2822 compliant + header using RFC 2047 rules, the string will be encoded using the + output codec of the charset. If the string cannot be encoded to the + output codec, a UnicodeError will be raised. + + Optional `errors' is passed as the errors argument to the decode + call if s is a byte string. + """ + if charset is None: + charset = self._charset + elif not isinstance(charset, Charset): + charset = Charset(charset) + if not isinstance(s, str): + input_charset = charset.input_codec or 'us-ascii' + if input_charset == _charset.UNKNOWN8BIT: + s = s.decode('us-ascii', 'surrogateescape') + else: + s = s.decode(input_charset, errors) + # Ensure that the bytes we're storing can be decoded to the output + # character set, otherwise an early error is raised. + output_charset = charset.output_codec or 'us-ascii' + if output_charset != _charset.UNKNOWN8BIT: + try: + s.encode(output_charset, errors) + except UnicodeEncodeError: + if output_charset!='us-ascii': + raise + charset = UTF8 + self._chunks.append((s, charset)) + + def _nonctext(self, s): + """True if string s is not a ctext character of RFC822. + """ + return s.isspace() or s in ('(', ')', '\\') + + def encode(self, splitchars=';, \t', maxlinelen=None, linesep='\n'): + r"""Encode a message header into an RFC-compliant format. + + There are many issues involved in converting a given string for use in + an email header. Only certain character sets are readable in most + email clients, and as header strings can only contain a subset of + 7-bit ASCII, care must be taken to properly convert and encode (with + Base64 or quoted-printable) header strings. In addition, there is a + 75-character length limit on any given encoded header field, so + line-wrapping must be performed, even with double-byte character sets. + + Optional maxlinelen specifies the maximum length of each generated + line, exclusive of the linesep string. Individual lines may be longer + than maxlinelen if a folding point cannot be found. The first line + will be shorter by the length of the header name plus ": " if a header + name was specified at Header construction time. The default value for + maxlinelen is determined at header construction time. + + Optional splitchars is a string containing characters which should be + given extra weight by the splitting algorithm during normal header + wrapping. This is in very rough support of RFC 2822's `higher level + syntactic breaks': split points preceded by a splitchar are preferred + during line splitting, with the characters preferred in the order in + which they appear in the string. Space and tab may be included in the + string to indicate whether preference should be given to one over the + other as a split point when other split chars do not appear in the line + being split. Splitchars does not affect RFC 2047 encoded lines. + + Optional linesep is a string to be used to separate the lines of + the value. The default value is the most useful for typical + Python applications, but it can be set to \r\n to produce RFC-compliant + line separators when needed. + """ + self._normalize() + if maxlinelen is None: + maxlinelen = self._maxlinelen + # A maxlinelen of 0 means don't wrap. For all practical purposes, + # choosing a huge number here accomplishes that and makes the + # _ValueFormatter algorithm much simpler. + if maxlinelen == 0: + maxlinelen = 1000000 + formatter = _ValueFormatter(self._headerlen, maxlinelen, + self._continuation_ws, splitchars) + lastcs = None + hasspace = lastspace = None + for string, charset in self._chunks: + if hasspace is not None: + hasspace = string and self._nonctext(string[0]) + import sys + if lastcs not in (None, 'us-ascii'): + if not hasspace or charset not in (None, 'us-ascii'): + formatter.add_transition() + elif charset not in (None, 'us-ascii') and not lastspace: + formatter.add_transition() + lastspace = string and self._nonctext(string[-1]) + lastcs = charset + hasspace = False + lines = string.splitlines() + if lines: + formatter.feed('', lines[0], charset) + else: + formatter.feed('', '', charset) + for line in lines[1:]: + formatter.newline() + if charset.header_encoding is not None: + formatter.feed(self._continuation_ws, ' ' + line.lstrip(), + charset) + else: + sline = line.lstrip() + fws = line[:len(line)-len(sline)] + formatter.feed(fws, sline, charset) + if len(lines) > 1: + formatter.newline() + if self._chunks: + formatter.add_transition() + value = formatter._str(linesep) + if _embeded_header.search(value): + raise HeaderParseError("header value appears to contain " + "an embedded header: {!r}".format(value)) + return value + + def _normalize(self): + # Step 1: Normalize the chunks so that all runs of identical charsets + # get collapsed into a single unicode string. + chunks = [] + last_charset = None + last_chunk = [] + for string, charset in self._chunks: + if charset == last_charset: + last_chunk.append(string) + else: + if last_charset is not None: + chunks.append((SPACE.join(last_chunk), last_charset)) + last_chunk = [string] + last_charset = charset + if last_chunk: + chunks.append((SPACE.join(last_chunk), last_charset)) + self._chunks = chunks + + +class _ValueFormatter(object): + def __init__(self, headerlen, maxlen, continuation_ws, splitchars): + self._maxlen = maxlen + self._continuation_ws = continuation_ws + self._continuation_ws_len = len(continuation_ws) + self._splitchars = splitchars + self._lines = [] + self._current_line = _Accumulator(headerlen) + + def _str(self, linesep): + self.newline() + return linesep.join(self._lines) + + def __str__(self): + return self._str(NL) + + def newline(self): + end_of_line = self._current_line.pop() + if end_of_line != (' ', ''): + self._current_line.push(*end_of_line) + if len(self._current_line) > 0: + if self._current_line.is_onlyws(): + self._lines[-1] += str(self._current_line) + else: + self._lines.append(str(self._current_line)) + self._current_line.reset() + + def add_transition(self): + self._current_line.push(' ', '') + + def feed(self, fws, string, charset): + # If the charset has no header encoding (i.e. it is an ASCII encoding) + # then we must split the header at the "highest level syntactic break" + # possible. Note that we don't have a lot of smarts about field + # syntax; we just try to break on semi-colons, then commas, then + # whitespace. Eventually, this should be pluggable. + if charset.header_encoding is None: + self._ascii_split(fws, string, self._splitchars) + return + # Otherwise, we're doing either a Base64 or a quoted-printable + # encoding which means we don't need to split the line on syntactic + # breaks. We can basically just find enough characters to fit on the + # current line, minus the RFC 2047 chrome. What makes this trickier + # though is that we have to split at octet boundaries, not character + # boundaries but it's only safe to split at character boundaries so at + # best we can only get close. + encoded_lines = charset.header_encode_lines(string, self._maxlengths()) + # The first element extends the current line, but if it's None then + # nothing more fit on the current line so start a new line. + try: + first_line = encoded_lines.pop(0) + except IndexError: + # There are no encoded lines, so we're done. + return + if first_line is not None: + self._append_chunk(fws, first_line) + try: + last_line = encoded_lines.pop() + except IndexError: + # There was only one line. + return + self.newline() + self._current_line.push(self._continuation_ws, last_line) + # Everything else are full lines in themselves. + for line in encoded_lines: + self._lines.append(self._continuation_ws + line) + + def _maxlengths(self): + # The first line's length. + yield self._maxlen - len(self._current_line) + while True: + yield self._maxlen - self._continuation_ws_len + + def _ascii_split(self, fws, string, splitchars): + # The RFC 2822 header folding algorithm is simple in principle but + # complex in practice. Lines may be folded any place where "folding + # white space" appears by inserting a linesep character in front of the + # FWS. The complication is that not all spaces or tabs qualify as FWS, + # and we are also supposed to prefer to break at "higher level + # syntactic breaks". We can't do either of these without intimate + # knowledge of the structure of structured headers, which we don't have + # here. So the best we can do here is prefer to break at the specified + # splitchars, and hope that we don't choose any spaces or tabs that + # aren't legal FWS. (This is at least better than the old algorithm, + # where we would sometimes *introduce* FWS after a splitchar, or the + # algorithm before that, where we would turn all white space runs into + # single spaces or tabs.) + parts = re.split("(["+FWS+"]+)", fws+string) + if parts[0]: + parts[:0] = [''] + else: + parts.pop(0) + for fws, part in zip(*[iter(parts)]*2): + self._append_chunk(fws, part) + + def _append_chunk(self, fws, string): + self._current_line.push(fws, string) + if len(self._current_line) > self._maxlen: + # Find the best split point, working backward from the end. + # There might be none, on a long first line. + for ch in self._splitchars: + for i in range(self._current_line.part_count()-1, 0, -1): + if ch.isspace(): + fws = self._current_line[i][0] + if fws and fws[0]==ch: + break + prevpart = self._current_line[i-1][1] + if prevpart and prevpart[-1]==ch: + break + else: + continue + break + else: + fws, part = self._current_line.pop() + if self._current_line._initial_size > 0: + # There will be a header, so leave it on a line by itself. + self.newline() + if not fws: + # We don't use continuation_ws here because the whitespace + # after a header should always be a space. + fws = ' ' + self._current_line.push(fws, part) + return + remainder = self._current_line.pop_from(i) + self._lines.append(str(self._current_line)) + self._current_line.reset(remainder) + + +class _Accumulator(list): + + def __init__(self, initial_size=0): + self._initial_size = initial_size + super().__init__() + + def push(self, fws, string): + self.append((fws, string)) + + def pop_from(self, i=0): + popped = self[i:] + self[i:] = [] + return popped + + def pop(self): + if self.part_count()==0: + return ('', '') + return super().pop() + + def __len__(self): + return sum((len(fws)+len(part) for fws, part in self), + self._initial_size) + + def __str__(self): + return EMPTYSTRING.join((EMPTYSTRING.join((fws, part)) + for fws, part in self)) + + def reset(self, startval=None): + if startval is None: + startval = [] + self[:] = startval + self._initial_size = 0 + + def is_onlyws(self): + return self._initial_size==0 and (not self or str(self).isspace()) + + def part_count(self): + return super().__len__() diff --git a/venv/lib/python3.10/site-packages/future/backports/email/headerregistry.py b/venv/lib/python3.10/site-packages/future/backports/email/headerregistry.py new file mode 100644 index 0000000..9aaad65 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/headerregistry.py @@ -0,0 +1,592 @@ +"""Representing and manipulating email headers via custom objects. + +This module provides an implementation of the HeaderRegistry API. +The implementation is designed to flexibly follow RFC5322 rules. + +Eventually HeaderRegistry will be a public API, but it isn't yet, +and will probably change some before that happens. + +""" +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import + +from future.builtins import super +from future.builtins import str +from future.utils import text_to_native_str +from future.backports.email import utils +from future.backports.email import errors +from future.backports.email import _header_value_parser as parser + +class Address(object): + + def __init__(self, display_name='', username='', domain='', addr_spec=None): + """Create an object represeting a full email address. + + An address can have a 'display_name', a 'username', and a 'domain'. In + addition to specifying the username and domain separately, they may be + specified together by using the addr_spec keyword *instead of* the + username and domain keywords. If an addr_spec string is specified it + must be properly quoted according to RFC 5322 rules; an error will be + raised if it is not. + + An Address object has display_name, username, domain, and addr_spec + attributes, all of which are read-only. The addr_spec and the string + value of the object are both quoted according to RFC5322 rules, but + without any Content Transfer Encoding. + + """ + # This clause with its potential 'raise' may only happen when an + # application program creates an Address object using an addr_spec + # keyword. The email library code itself must always supply username + # and domain. + if addr_spec is not None: + if username or domain: + raise TypeError("addrspec specified when username and/or " + "domain also specified") + a_s, rest = parser.get_addr_spec(addr_spec) + if rest: + raise ValueError("Invalid addr_spec; only '{}' " + "could be parsed from '{}'".format( + a_s, addr_spec)) + if a_s.all_defects: + raise a_s.all_defects[0] + username = a_s.local_part + domain = a_s.domain + self._display_name = display_name + self._username = username + self._domain = domain + + @property + def display_name(self): + return self._display_name + + @property + def username(self): + return self._username + + @property + def domain(self): + return self._domain + + @property + def addr_spec(self): + """The addr_spec (username@domain) portion of the address, quoted + according to RFC 5322 rules, but with no Content Transfer Encoding. + """ + nameset = set(self.username) + if len(nameset) > len(nameset-parser.DOT_ATOM_ENDS): + lp = parser.quote_string(self.username) + else: + lp = self.username + if self.domain: + return lp + '@' + self.domain + if not lp: + return '<>' + return lp + + def __repr__(self): + return "Address(display_name={!r}, username={!r}, domain={!r})".format( + self.display_name, self.username, self.domain) + + def __str__(self): + nameset = set(self.display_name) + if len(nameset) > len(nameset-parser.SPECIALS): + disp = parser.quote_string(self.display_name) + else: + disp = self.display_name + if disp: + addr_spec = '' if self.addr_spec=='<>' else self.addr_spec + return "{} <{}>".format(disp, addr_spec) + return self.addr_spec + + def __eq__(self, other): + if type(other) != type(self): + return False + return (self.display_name == other.display_name and + self.username == other.username and + self.domain == other.domain) + + +class Group(object): + + def __init__(self, display_name=None, addresses=None): + """Create an object representing an address group. + + An address group consists of a display_name followed by colon and an + list of addresses (see Address) terminated by a semi-colon. The Group + is created by specifying a display_name and a possibly empty list of + Address objects. A Group can also be used to represent a single + address that is not in a group, which is convenient when manipulating + lists that are a combination of Groups and individual Addresses. In + this case the display_name should be set to None. In particular, the + string representation of a Group whose display_name is None is the same + as the Address object, if there is one and only one Address object in + the addresses list. + + """ + self._display_name = display_name + self._addresses = tuple(addresses) if addresses else tuple() + + @property + def display_name(self): + return self._display_name + + @property + def addresses(self): + return self._addresses + + def __repr__(self): + return "Group(display_name={!r}, addresses={!r}".format( + self.display_name, self.addresses) + + def __str__(self): + if self.display_name is None and len(self.addresses)==1: + return str(self.addresses[0]) + disp = self.display_name + if disp is not None: + nameset = set(disp) + if len(nameset) > len(nameset-parser.SPECIALS): + disp = parser.quote_string(disp) + adrstr = ", ".join(str(x) for x in self.addresses) + adrstr = ' ' + adrstr if adrstr else adrstr + return "{}:{};".format(disp, adrstr) + + def __eq__(self, other): + if type(other) != type(self): + return False + return (self.display_name == other.display_name and + self.addresses == other.addresses) + + +# Header Classes # + +class BaseHeader(str): + + """Base class for message headers. + + Implements generic behavior and provides tools for subclasses. + + A subclass must define a classmethod named 'parse' that takes an unfolded + value string and a dictionary as its arguments. The dictionary will + contain one key, 'defects', initialized to an empty list. After the call + the dictionary must contain two additional keys: parse_tree, set to the + parse tree obtained from parsing the header, and 'decoded', set to the + string value of the idealized representation of the data from the value. + (That is, encoded words are decoded, and values that have canonical + representations are so represented.) + + The defects key is intended to collect parsing defects, which the message + parser will subsequently dispose of as appropriate. The parser should not, + insofar as practical, raise any errors. Defects should be added to the + list instead. The standard header parsers register defects for RFC + compliance issues, for obsolete RFC syntax, and for unrecoverable parsing + errors. + + The parse method may add additional keys to the dictionary. In this case + the subclass must define an 'init' method, which will be passed the + dictionary as its keyword arguments. The method should use (usually by + setting them as the value of similarly named attributes) and remove all the + extra keys added by its parse method, and then use super to call its parent + class with the remaining arguments and keywords. + + The subclass should also make sure that a 'max_count' attribute is defined + that is either None or 1. XXX: need to better define this API. + + """ + + def __new__(cls, name, value): + kwds = {'defects': []} + cls.parse(value, kwds) + if utils._has_surrogates(kwds['decoded']): + kwds['decoded'] = utils._sanitize(kwds['decoded']) + self = str.__new__(cls, kwds['decoded']) + # del kwds['decoded'] + self.init(name, **kwds) + return self + + def init(self, name, **_3to2kwargs): + defects = _3to2kwargs['defects']; del _3to2kwargs['defects'] + parse_tree = _3to2kwargs['parse_tree']; del _3to2kwargs['parse_tree'] + self._name = name + self._parse_tree = parse_tree + self._defects = defects + + @property + def name(self): + return self._name + + @property + def defects(self): + return tuple(self._defects) + + def __reduce__(self): + return ( + _reconstruct_header, + ( + self.__class__.__name__, + self.__class__.__bases__, + str(self), + ), + self.__dict__) + + @classmethod + def _reconstruct(cls, value): + return str.__new__(cls, value) + + def fold(self, **_3to2kwargs): + policy = _3to2kwargs['policy']; del _3to2kwargs['policy'] + """Fold header according to policy. + + The parsed representation of the header is folded according to + RFC5322 rules, as modified by the policy. If the parse tree + contains surrogateescaped bytes, the bytes are CTE encoded using + the charset 'unknown-8bit". + + Any non-ASCII characters in the parse tree are CTE encoded using + charset utf-8. XXX: make this a policy setting. + + The returned value is an ASCII-only string possibly containing linesep + characters, and ending with a linesep character. The string includes + the header name and the ': ' separator. + + """ + # At some point we need to only put fws here if it was in the source. + header = parser.Header([ + parser.HeaderLabel([ + parser.ValueTerminal(self.name, 'header-name'), + parser.ValueTerminal(':', 'header-sep')]), + parser.CFWSList([parser.WhiteSpaceTerminal(' ', 'fws')]), + self._parse_tree]) + return header.fold(policy=policy) + + +def _reconstruct_header(cls_name, bases, value): + return type(text_to_native_str(cls_name), bases, {})._reconstruct(value) + + +class UnstructuredHeader(object): + + max_count = None + value_parser = staticmethod(parser.get_unstructured) + + @classmethod + def parse(cls, value, kwds): + kwds['parse_tree'] = cls.value_parser(value) + kwds['decoded'] = str(kwds['parse_tree']) + + +class UniqueUnstructuredHeader(UnstructuredHeader): + + max_count = 1 + + +class DateHeader(object): + + """Header whose value consists of a single timestamp. + + Provides an additional attribute, datetime, which is either an aware + datetime using a timezone, or a naive datetime if the timezone + in the input string is -0000. Also accepts a datetime as input. + The 'value' attribute is the normalized form of the timestamp, + which means it is the output of format_datetime on the datetime. + """ + + max_count = None + + # This is used only for folding, not for creating 'decoded'. + value_parser = staticmethod(parser.get_unstructured) + + @classmethod + def parse(cls, value, kwds): + if not value: + kwds['defects'].append(errors.HeaderMissingRequiredValue()) + kwds['datetime'] = None + kwds['decoded'] = '' + kwds['parse_tree'] = parser.TokenList() + return + if isinstance(value, str): + value = utils.parsedate_to_datetime(value) + kwds['datetime'] = value + kwds['decoded'] = utils.format_datetime(kwds['datetime']) + kwds['parse_tree'] = cls.value_parser(kwds['decoded']) + + def init(self, *args, **kw): + self._datetime = kw.pop('datetime') + super().init(*args, **kw) + + @property + def datetime(self): + return self._datetime + + +class UniqueDateHeader(DateHeader): + + max_count = 1 + + +class AddressHeader(object): + + max_count = None + + @staticmethod + def value_parser(value): + address_list, value = parser.get_address_list(value) + assert not value, 'this should not happen' + return address_list + + @classmethod + def parse(cls, value, kwds): + if isinstance(value, str): + # We are translating here from the RFC language (address/mailbox) + # to our API language (group/address). + kwds['parse_tree'] = address_list = cls.value_parser(value) + groups = [] + for addr in address_list.addresses: + groups.append(Group(addr.display_name, + [Address(mb.display_name or '', + mb.local_part or '', + mb.domain or '') + for mb in addr.all_mailboxes])) + defects = list(address_list.all_defects) + else: + # Assume it is Address/Group stuff + if not hasattr(value, '__iter__'): + value = [value] + groups = [Group(None, [item]) if not hasattr(item, 'addresses') + else item + for item in value] + defects = [] + kwds['groups'] = groups + kwds['defects'] = defects + kwds['decoded'] = ', '.join([str(item) for item in groups]) + if 'parse_tree' not in kwds: + kwds['parse_tree'] = cls.value_parser(kwds['decoded']) + + def init(self, *args, **kw): + self._groups = tuple(kw.pop('groups')) + self._addresses = None + super().init(*args, **kw) + + @property + def groups(self): + return self._groups + + @property + def addresses(self): + if self._addresses is None: + self._addresses = tuple([address for group in self._groups + for address in group.addresses]) + return self._addresses + + +class UniqueAddressHeader(AddressHeader): + + max_count = 1 + + +class SingleAddressHeader(AddressHeader): + + @property + def address(self): + if len(self.addresses)!=1: + raise ValueError(("value of single address header {} is not " + "a single address").format(self.name)) + return self.addresses[0] + + +class UniqueSingleAddressHeader(SingleAddressHeader): + + max_count = 1 + + +class MIMEVersionHeader(object): + + max_count = 1 + + value_parser = staticmethod(parser.parse_mime_version) + + @classmethod + def parse(cls, value, kwds): + kwds['parse_tree'] = parse_tree = cls.value_parser(value) + kwds['decoded'] = str(parse_tree) + kwds['defects'].extend(parse_tree.all_defects) + kwds['major'] = None if parse_tree.minor is None else parse_tree.major + kwds['minor'] = parse_tree.minor + if parse_tree.minor is not None: + kwds['version'] = '{}.{}'.format(kwds['major'], kwds['minor']) + else: + kwds['version'] = None + + def init(self, *args, **kw): + self._version = kw.pop('version') + self._major = kw.pop('major') + self._minor = kw.pop('minor') + super().init(*args, **kw) + + @property + def major(self): + return self._major + + @property + def minor(self): + return self._minor + + @property + def version(self): + return self._version + + +class ParameterizedMIMEHeader(object): + + # Mixin that handles the params dict. Must be subclassed and + # a property value_parser for the specific header provided. + + max_count = 1 + + @classmethod + def parse(cls, value, kwds): + kwds['parse_tree'] = parse_tree = cls.value_parser(value) + kwds['decoded'] = str(parse_tree) + kwds['defects'].extend(parse_tree.all_defects) + if parse_tree.params is None: + kwds['params'] = {} + else: + # The MIME RFCs specify that parameter ordering is arbitrary. + kwds['params'] = dict((utils._sanitize(name).lower(), + utils._sanitize(value)) + for name, value in parse_tree.params) + + def init(self, *args, **kw): + self._params = kw.pop('params') + super().init(*args, **kw) + + @property + def params(self): + return self._params.copy() + + +class ContentTypeHeader(ParameterizedMIMEHeader): + + value_parser = staticmethod(parser.parse_content_type_header) + + def init(self, *args, **kw): + super().init(*args, **kw) + self._maintype = utils._sanitize(self._parse_tree.maintype) + self._subtype = utils._sanitize(self._parse_tree.subtype) + + @property + def maintype(self): + return self._maintype + + @property + def subtype(self): + return self._subtype + + @property + def content_type(self): + return self.maintype + '/' + self.subtype + + +class ContentDispositionHeader(ParameterizedMIMEHeader): + + value_parser = staticmethod(parser.parse_content_disposition_header) + + def init(self, *args, **kw): + super().init(*args, **kw) + cd = self._parse_tree.content_disposition + self._content_disposition = cd if cd is None else utils._sanitize(cd) + + @property + def content_disposition(self): + return self._content_disposition + + +class ContentTransferEncodingHeader(object): + + max_count = 1 + + value_parser = staticmethod(parser.parse_content_transfer_encoding_header) + + @classmethod + def parse(cls, value, kwds): + kwds['parse_tree'] = parse_tree = cls.value_parser(value) + kwds['decoded'] = str(parse_tree) + kwds['defects'].extend(parse_tree.all_defects) + + def init(self, *args, **kw): + super().init(*args, **kw) + self._cte = utils._sanitize(self._parse_tree.cte) + + @property + def cte(self): + return self._cte + + +# The header factory # + +_default_header_map = { + 'subject': UniqueUnstructuredHeader, + 'date': UniqueDateHeader, + 'resent-date': DateHeader, + 'orig-date': UniqueDateHeader, + 'sender': UniqueSingleAddressHeader, + 'resent-sender': SingleAddressHeader, + 'to': UniqueAddressHeader, + 'resent-to': AddressHeader, + 'cc': UniqueAddressHeader, + 'resent-cc': AddressHeader, + 'bcc': UniqueAddressHeader, + 'resent-bcc': AddressHeader, + 'from': UniqueAddressHeader, + 'resent-from': AddressHeader, + 'reply-to': UniqueAddressHeader, + 'mime-version': MIMEVersionHeader, + 'content-type': ContentTypeHeader, + 'content-disposition': ContentDispositionHeader, + 'content-transfer-encoding': ContentTransferEncodingHeader, + } + +class HeaderRegistry(object): + + """A header_factory and header registry.""" + + def __init__(self, base_class=BaseHeader, default_class=UnstructuredHeader, + use_default_map=True): + """Create a header_factory that works with the Policy API. + + base_class is the class that will be the last class in the created + header class's __bases__ list. default_class is the class that will be + used if "name" (see __call__) does not appear in the registry. + use_default_map controls whether or not the default mapping of names to + specialized classes is copied in to the registry when the factory is + created. The default is True. + + """ + self.registry = {} + self.base_class = base_class + self.default_class = default_class + if use_default_map: + self.registry.update(_default_header_map) + + def map_to_type(self, name, cls): + """Register cls as the specialized class for handling "name" headers. + + """ + self.registry[name.lower()] = cls + + def __getitem__(self, name): + cls = self.registry.get(name.lower(), self.default_class) + return type(text_to_native_str('_'+cls.__name__), (cls, self.base_class), {}) + + def __call__(self, name, value): + """Create a header instance for header 'name' from 'value'. + + Creates a header instance by creating a specialized class for parsing + and representing the specified header by combining the factory + base_class with a specialized class from the registry or the + default_class, and passing the name and value to the constructed + class's constructor. + + """ + return self[name](name, value) diff --git a/venv/lib/python3.10/site-packages/future/backports/email/iterators.py b/venv/lib/python3.10/site-packages/future/backports/email/iterators.py new file mode 100644 index 0000000..82d320f --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/iterators.py @@ -0,0 +1,74 @@ +# Copyright (C) 2001-2006 Python Software Foundation +# Author: Barry Warsaw +# Contact: email-sig@python.org + +"""Various types of useful iterators and generators.""" +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import + +__all__ = [ + 'body_line_iterator', + 'typed_subpart_iterator', + 'walk', + # Do not include _structure() since it's part of the debugging API. + ] + +import sys +from io import StringIO + + +# This function will become a method of the Message class +def walk(self): + """Walk over the message tree, yielding each subpart. + + The walk is performed in depth-first order. This method is a + generator. + """ + yield self + if self.is_multipart(): + for subpart in self.get_payload(): + for subsubpart in subpart.walk(): + yield subsubpart + + +# These two functions are imported into the Iterators.py interface module. +def body_line_iterator(msg, decode=False): + """Iterate over the parts, returning string payloads line-by-line. + + Optional decode (default False) is passed through to .get_payload(). + """ + for subpart in msg.walk(): + payload = subpart.get_payload(decode=decode) + if isinstance(payload, str): + for line in StringIO(payload): + yield line + + +def typed_subpart_iterator(msg, maintype='text', subtype=None): + """Iterate over the subparts with a given MIME type. + + Use `maintype' as the main MIME type to match against; this defaults to + "text". Optional `subtype' is the MIME subtype to match against; if + omitted, only the main type is matched. + """ + for subpart in msg.walk(): + if subpart.get_content_maintype() == maintype: + if subtype is None or subpart.get_content_subtype() == subtype: + yield subpart + + +def _structure(msg, fp=None, level=0, include_default=False): + """A handy debugging aid""" + if fp is None: + fp = sys.stdout + tab = ' ' * (level * 4) + print(tab + msg.get_content_type(), end='', file=fp) + if include_default: + print(' [%s]' % msg.get_default_type(), file=fp) + else: + print(file=fp) + if msg.is_multipart(): + for subpart in msg.get_payload(): + _structure(subpart, fp, level+1, include_default) diff --git a/venv/lib/python3.10/site-packages/future/backports/email/message.py b/venv/lib/python3.10/site-packages/future/backports/email/message.py new file mode 100644 index 0000000..d8d9615 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/message.py @@ -0,0 +1,882 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2001-2007 Python Software Foundation +# Author: Barry Warsaw +# Contact: email-sig@python.org + +"""Basic message object for the email package object model.""" +from __future__ import absolute_import, division, unicode_literals +from future.builtins import list, range, str, zip + +__all__ = ['Message'] + +import re +import uu +import base64 +import binascii +from io import BytesIO, StringIO + +# Intrapackage imports +from future.utils import as_native_str +from future.backports.email import utils +from future.backports.email import errors +from future.backports.email._policybase import compat32 +from future.backports.email import charset as _charset +from future.backports.email._encoded_words import decode_b +Charset = _charset.Charset + +SEMISPACE = '; ' + +# Regular expression that matches `special' characters in parameters, the +# existence of which force quoting of the parameter value. +tspecials = re.compile(r'[ \(\)<>@,;:\\"/\[\]\?=]') + + +def _splitparam(param): + # Split header parameters. BAW: this may be too simple. It isn't + # strictly RFC 2045 (section 5.1) compliant, but it catches most headers + # found in the wild. We may eventually need a full fledged parser. + # RDM: we might have a Header here; for now just stringify it. + a, sep, b = str(param).partition(';') + if not sep: + return a.strip(), None + return a.strip(), b.strip() + +def _formatparam(param, value=None, quote=True): + """Convenience function to format and return a key=value pair. + + This will quote the value if needed or if quote is true. If value is a + three tuple (charset, language, value), it will be encoded according + to RFC2231 rules. If it contains non-ascii characters it will likewise + be encoded according to RFC2231 rules, using the utf-8 charset and + a null language. + """ + if value is not None and len(value) > 0: + # A tuple is used for RFC 2231 encoded parameter values where items + # are (charset, language, value). charset is a string, not a Charset + # instance. RFC 2231 encoded values are never quoted, per RFC. + if isinstance(value, tuple): + # Encode as per RFC 2231 + param += '*' + value = utils.encode_rfc2231(value[2], value[0], value[1]) + return '%s=%s' % (param, value) + else: + try: + value.encode('ascii') + except UnicodeEncodeError: + param += '*' + value = utils.encode_rfc2231(value, 'utf-8', '') + return '%s=%s' % (param, value) + # BAW: Please check this. I think that if quote is set it should + # force quoting even if not necessary. + if quote or tspecials.search(value): + return '%s="%s"' % (param, utils.quote(value)) + else: + return '%s=%s' % (param, value) + else: + return param + +def _parseparam(s): + # RDM This might be a Header, so for now stringify it. + s = ';' + str(s) + plist = [] + while s[:1] == ';': + s = s[1:] + end = s.find(';') + while end > 0 and (s.count('"', 0, end) - s.count('\\"', 0, end)) % 2: + end = s.find(';', end + 1) + if end < 0: + end = len(s) + f = s[:end] + if '=' in f: + i = f.index('=') + f = f[:i].strip().lower() + '=' + f[i+1:].strip() + plist.append(f.strip()) + s = s[end:] + return plist + + +def _unquotevalue(value): + # This is different than utils.collapse_rfc2231_value() because it doesn't + # try to convert the value to a unicode. Message.get_param() and + # Message.get_params() are both currently defined to return the tuple in + # the face of RFC 2231 parameters. + if isinstance(value, tuple): + return value[0], value[1], utils.unquote(value[2]) + else: + return utils.unquote(value) + + +class Message(object): + """Basic message object. + + A message object is defined as something that has a bunch of RFC 2822 + headers and a payload. It may optionally have an envelope header + (a.k.a. Unix-From or From_ header). If the message is a container (i.e. a + multipart or a message/rfc822), then the payload is a list of Message + objects, otherwise it is a string. + + Message objects implement part of the `mapping' interface, which assumes + there is exactly one occurrence of the header per message. Some headers + do in fact appear multiple times (e.g. Received) and for those headers, + you must use the explicit API to set or get all the headers. Not all of + the mapping methods are implemented. + """ + def __init__(self, policy=compat32): + self.policy = policy + self._headers = list() + self._unixfrom = None + self._payload = None + self._charset = None + # Defaults for multipart messages + self.preamble = self.epilogue = None + self.defects = [] + # Default content type + self._default_type = 'text/plain' + + @as_native_str(encoding='utf-8') + def __str__(self): + """Return the entire formatted message as a string. + This includes the headers, body, and envelope header. + """ + return self.as_string() + + def as_string(self, unixfrom=False, maxheaderlen=0): + """Return the entire formatted message as a (unicode) string. + Optional `unixfrom' when True, means include the Unix From_ envelope + header. + + This is a convenience method and may not generate the message exactly + as you intend. For more flexibility, use the flatten() method of a + Generator instance. + """ + from future.backports.email.generator import Generator + fp = StringIO() + g = Generator(fp, mangle_from_=False, maxheaderlen=maxheaderlen) + g.flatten(self, unixfrom=unixfrom) + return fp.getvalue() + + def is_multipart(self): + """Return True if the message consists of multiple parts.""" + return isinstance(self._payload, list) + + # + # Unix From_ line + # + def set_unixfrom(self, unixfrom): + self._unixfrom = unixfrom + + def get_unixfrom(self): + return self._unixfrom + + # + # Payload manipulation. + # + def attach(self, payload): + """Add the given payload to the current payload. + + The current payload will always be a list of objects after this method + is called. If you want to set the payload to a scalar object, use + set_payload() instead. + """ + if self._payload is None: + self._payload = [payload] + else: + self._payload.append(payload) + + def get_payload(self, i=None, decode=False): + """Return a reference to the payload. + + The payload will either be a list object or a string. If you mutate + the list object, you modify the message's payload in place. Optional + i returns that index into the payload. + + Optional decode is a flag indicating whether the payload should be + decoded or not, according to the Content-Transfer-Encoding header + (default is False). + + When True and the message is not a multipart, the payload will be + decoded if this header's value is `quoted-printable' or `base64'. If + some other encoding is used, or the header is missing, or if the + payload has bogus data (i.e. bogus base64 or uuencoded data), the + payload is returned as-is. + + If the message is a multipart and the decode flag is True, then None + is returned. + """ + # Here is the logic table for this code, based on the email5.0.0 code: + # i decode is_multipart result + # ------ ------ ------------ ------------------------------ + # None True True None + # i True True None + # None False True _payload (a list) + # i False True _payload element i (a Message) + # i False False error (not a list) + # i True False error (not a list) + # None False False _payload + # None True False _payload decoded (bytes) + # Note that Barry planned to factor out the 'decode' case, but that + # isn't so easy now that we handle the 8 bit data, which needs to be + # converted in both the decode and non-decode path. + if self.is_multipart(): + if decode: + return None + if i is None: + return self._payload + else: + return self._payload[i] + # For backward compatibility, Use isinstance and this error message + # instead of the more logical is_multipart test. + if i is not None and not isinstance(self._payload, list): + raise TypeError('Expected list, got %s' % type(self._payload)) + payload = self._payload + # cte might be a Header, so for now stringify it. + cte = str(self.get('content-transfer-encoding', '')).lower() + # payload may be bytes here. + if isinstance(payload, str): + payload = str(payload) # for Python-Future, so surrogateescape works + if utils._has_surrogates(payload): + bpayload = payload.encode('ascii', 'surrogateescape') + if not decode: + try: + payload = bpayload.decode(self.get_param('charset', 'ascii'), 'replace') + except LookupError: + payload = bpayload.decode('ascii', 'replace') + elif decode: + try: + bpayload = payload.encode('ascii') + except UnicodeError: + # This won't happen for RFC compliant messages (messages + # containing only ASCII codepoints in the unicode input). + # If it does happen, turn the string into bytes in a way + # guaranteed not to fail. + bpayload = payload.encode('raw-unicode-escape') + if not decode: + return payload + if cte == 'quoted-printable': + return utils._qdecode(bpayload) + elif cte == 'base64': + # XXX: this is a bit of a hack; decode_b should probably be factored + # out somewhere, but I haven't figured out where yet. + value, defects = decode_b(b''.join(bpayload.splitlines())) + for defect in defects: + self.policy.handle_defect(self, defect) + return value + elif cte in ('x-uuencode', 'uuencode', 'uue', 'x-uue'): + in_file = BytesIO(bpayload) + out_file = BytesIO() + try: + uu.decode(in_file, out_file, quiet=True) + return out_file.getvalue() + except uu.Error: + # Some decoding problem + return bpayload + if isinstance(payload, str): + return bpayload + return payload + + def set_payload(self, payload, charset=None): + """Set the payload to the given value. + + Optional charset sets the message's default character set. See + set_charset() for details. + """ + self._payload = payload + if charset is not None: + self.set_charset(charset) + + def set_charset(self, charset): + """Set the charset of the payload to a given character set. + + charset can be a Charset instance, a string naming a character set, or + None. If it is a string it will be converted to a Charset instance. + If charset is None, the charset parameter will be removed from the + Content-Type field. Anything else will generate a TypeError. + + The message will be assumed to be of type text/* encoded with + charset.input_charset. It will be converted to charset.output_charset + and encoded properly, if needed, when generating the plain text + representation of the message. MIME headers (MIME-Version, + Content-Type, Content-Transfer-Encoding) will be added as needed. + """ + if charset is None: + self.del_param('charset') + self._charset = None + return + if not isinstance(charset, Charset): + charset = Charset(charset) + self._charset = charset + if 'MIME-Version' not in self: + self.add_header('MIME-Version', '1.0') + if 'Content-Type' not in self: + self.add_header('Content-Type', 'text/plain', + charset=charset.get_output_charset()) + else: + self.set_param('charset', charset.get_output_charset()) + if charset != charset.get_output_charset(): + self._payload = charset.body_encode(self._payload) + if 'Content-Transfer-Encoding' not in self: + cte = charset.get_body_encoding() + try: + cte(self) + except TypeError: + self._payload = charset.body_encode(self._payload) + self.add_header('Content-Transfer-Encoding', cte) + + def get_charset(self): + """Return the Charset instance associated with the message's payload. + """ + return self._charset + + # + # MAPPING INTERFACE (partial) + # + def __len__(self): + """Return the total number of headers, including duplicates.""" + return len(self._headers) + + def __getitem__(self, name): + """Get a header value. + + Return None if the header is missing instead of raising an exception. + + Note that if the header appeared multiple times, exactly which + occurrence gets returned is undefined. Use get_all() to get all + the values matching a header field name. + """ + return self.get(name) + + def __setitem__(self, name, val): + """Set the value of a header. + + Note: this does not overwrite an existing header with the same field + name. Use __delitem__() first to delete any existing headers. + """ + max_count = self.policy.header_max_count(name) + if max_count: + lname = name.lower() + found = 0 + for k, v in self._headers: + if k.lower() == lname: + found += 1 + if found >= max_count: + raise ValueError("There may be at most {} {} headers " + "in a message".format(max_count, name)) + self._headers.append(self.policy.header_store_parse(name, val)) + + def __delitem__(self, name): + """Delete all occurrences of a header, if present. + + Does not raise an exception if the header is missing. + """ + name = name.lower() + newheaders = list() + for k, v in self._headers: + if k.lower() != name: + newheaders.append((k, v)) + self._headers = newheaders + + def __contains__(self, name): + return name.lower() in [k.lower() for k, v in self._headers] + + def __iter__(self): + for field, value in self._headers: + yield field + + def keys(self): + """Return a list of all the message's header field names. + + These will be sorted in the order they appeared in the original + message, or were added to the message, and may contain duplicates. + Any fields deleted and re-inserted are always appended to the header + list. + """ + return [k for k, v in self._headers] + + def values(self): + """Return a list of all the message's header values. + + These will be sorted in the order they appeared in the original + message, or were added to the message, and may contain duplicates. + Any fields deleted and re-inserted are always appended to the header + list. + """ + return [self.policy.header_fetch_parse(k, v) + for k, v in self._headers] + + def items(self): + """Get all the message's header fields and values. + + These will be sorted in the order they appeared in the original + message, or were added to the message, and may contain duplicates. + Any fields deleted and re-inserted are always appended to the header + list. + """ + return [(k, self.policy.header_fetch_parse(k, v)) + for k, v in self._headers] + + def get(self, name, failobj=None): + """Get a header value. + + Like __getitem__() but return failobj instead of None when the field + is missing. + """ + name = name.lower() + for k, v in self._headers: + if k.lower() == name: + return self.policy.header_fetch_parse(k, v) + return failobj + + # + # "Internal" methods (public API, but only intended for use by a parser + # or generator, not normal application code. + # + + def set_raw(self, name, value): + """Store name and value in the model without modification. + + This is an "internal" API, intended only for use by a parser. + """ + self._headers.append((name, value)) + + def raw_items(self): + """Return the (name, value) header pairs without modification. + + This is an "internal" API, intended only for use by a generator. + """ + return iter(self._headers.copy()) + + # + # Additional useful stuff + # + + def get_all(self, name, failobj=None): + """Return a list of all the values for the named field. + + These will be sorted in the order they appeared in the original + message, and may contain duplicates. Any fields deleted and + re-inserted are always appended to the header list. + + If no such fields exist, failobj is returned (defaults to None). + """ + values = [] + name = name.lower() + for k, v in self._headers: + if k.lower() == name: + values.append(self.policy.header_fetch_parse(k, v)) + if not values: + return failobj + return values + + def add_header(self, _name, _value, **_params): + """Extended header setting. + + name is the header field to add. keyword arguments can be used to set + additional parameters for the header field, with underscores converted + to dashes. Normally the parameter will be added as key="value" unless + value is None, in which case only the key will be added. If a + parameter value contains non-ASCII characters it can be specified as a + three-tuple of (charset, language, value), in which case it will be + encoded according to RFC2231 rules. Otherwise it will be encoded using + the utf-8 charset and a language of ''. + + Examples: + + msg.add_header('content-disposition', 'attachment', filename='bud.gif') + msg.add_header('content-disposition', 'attachment', + filename=('utf-8', '', 'Fußballer.ppt')) + msg.add_header('content-disposition', 'attachment', + filename='Fußballer.ppt')) + """ + parts = [] + for k, v in _params.items(): + if v is None: + parts.append(k.replace('_', '-')) + else: + parts.append(_formatparam(k.replace('_', '-'), v)) + if _value is not None: + parts.insert(0, _value) + self[_name] = SEMISPACE.join(parts) + + def replace_header(self, _name, _value): + """Replace a header. + + Replace the first matching header found in the message, retaining + header order and case. If no matching header was found, a KeyError is + raised. + """ + _name = _name.lower() + for i, (k, v) in zip(range(len(self._headers)), self._headers): + if k.lower() == _name: + self._headers[i] = self.policy.header_store_parse(k, _value) + break + else: + raise KeyError(_name) + + # + # Use these three methods instead of the three above. + # + + def get_content_type(self): + """Return the message's content type. + + The returned string is coerced to lower case of the form + `maintype/subtype'. If there was no Content-Type header in the + message, the default type as given by get_default_type() will be + returned. Since according to RFC 2045, messages always have a default + type this will always return a value. + + RFC 2045 defines a message's default type to be text/plain unless it + appears inside a multipart/digest container, in which case it would be + message/rfc822. + """ + missing = object() + value = self.get('content-type', missing) + if value is missing: + # This should have no parameters + return self.get_default_type() + ctype = _splitparam(value)[0].lower() + # RFC 2045, section 5.2 says if its invalid, use text/plain + if ctype.count('/') != 1: + return 'text/plain' + return ctype + + def get_content_maintype(self): + """Return the message's main content type. + + This is the `maintype' part of the string returned by + get_content_type(). + """ + ctype = self.get_content_type() + return ctype.split('/')[0] + + def get_content_subtype(self): + """Returns the message's sub-content type. + + This is the `subtype' part of the string returned by + get_content_type(). + """ + ctype = self.get_content_type() + return ctype.split('/')[1] + + def get_default_type(self): + """Return the `default' content type. + + Most messages have a default content type of text/plain, except for + messages that are subparts of multipart/digest containers. Such + subparts have a default content type of message/rfc822. + """ + return self._default_type + + def set_default_type(self, ctype): + """Set the `default' content type. + + ctype should be either "text/plain" or "message/rfc822", although this + is not enforced. The default content type is not stored in the + Content-Type header. + """ + self._default_type = ctype + + def _get_params_preserve(self, failobj, header): + # Like get_params() but preserves the quoting of values. BAW: + # should this be part of the public interface? + missing = object() + value = self.get(header, missing) + if value is missing: + return failobj + params = [] + for p in _parseparam(value): + try: + name, val = p.split('=', 1) + name = name.strip() + val = val.strip() + except ValueError: + # Must have been a bare attribute + name = p.strip() + val = '' + params.append((name, val)) + params = utils.decode_params(params) + return params + + def get_params(self, failobj=None, header='content-type', unquote=True): + """Return the message's Content-Type parameters, as a list. + + The elements of the returned list are 2-tuples of key/value pairs, as + split on the `=' sign. The left hand side of the `=' is the key, + while the right hand side is the value. If there is no `=' sign in + the parameter the value is the empty string. The value is as + described in the get_param() method. + + Optional failobj is the object to return if there is no Content-Type + header. Optional header is the header to search instead of + Content-Type. If unquote is True, the value is unquoted. + """ + missing = object() + params = self._get_params_preserve(missing, header) + if params is missing: + return failobj + if unquote: + return [(k, _unquotevalue(v)) for k, v in params] + else: + return params + + def get_param(self, param, failobj=None, header='content-type', + unquote=True): + """Return the parameter value if found in the Content-Type header. + + Optional failobj is the object to return if there is no Content-Type + header, or the Content-Type header has no such parameter. Optional + header is the header to search instead of Content-Type. + + Parameter keys are always compared case insensitively. The return + value can either be a string, or a 3-tuple if the parameter was RFC + 2231 encoded. When it's a 3-tuple, the elements of the value are of + the form (CHARSET, LANGUAGE, VALUE). Note that both CHARSET and + LANGUAGE can be None, in which case you should consider VALUE to be + encoded in the us-ascii charset. You can usually ignore LANGUAGE. + The parameter value (either the returned string, or the VALUE item in + the 3-tuple) is always unquoted, unless unquote is set to False. + + If your application doesn't care whether the parameter was RFC 2231 + encoded, it can turn the return value into a string as follows: + + param = msg.get_param('foo') + param = email.utils.collapse_rfc2231_value(rawparam) + + """ + if header not in self: + return failobj + for k, v in self._get_params_preserve(failobj, header): + if k.lower() == param.lower(): + if unquote: + return _unquotevalue(v) + else: + return v + return failobj + + def set_param(self, param, value, header='Content-Type', requote=True, + charset=None, language=''): + """Set a parameter in the Content-Type header. + + If the parameter already exists in the header, its value will be + replaced with the new value. + + If header is Content-Type and has not yet been defined for this + message, it will be set to "text/plain" and the new parameter and + value will be appended as per RFC 2045. + + An alternate header can specified in the header argument, and all + parameters will be quoted as necessary unless requote is False. + + If charset is specified, the parameter will be encoded according to RFC + 2231. Optional language specifies the RFC 2231 language, defaulting + to the empty string. Both charset and language should be strings. + """ + if not isinstance(value, tuple) and charset: + value = (charset, language, value) + + if header not in self and header.lower() == 'content-type': + ctype = 'text/plain' + else: + ctype = self.get(header) + if not self.get_param(param, header=header): + if not ctype: + ctype = _formatparam(param, value, requote) + else: + ctype = SEMISPACE.join( + [ctype, _formatparam(param, value, requote)]) + else: + ctype = '' + for old_param, old_value in self.get_params(header=header, + unquote=requote): + append_param = '' + if old_param.lower() == param.lower(): + append_param = _formatparam(param, value, requote) + else: + append_param = _formatparam(old_param, old_value, requote) + if not ctype: + ctype = append_param + else: + ctype = SEMISPACE.join([ctype, append_param]) + if ctype != self.get(header): + del self[header] + self[header] = ctype + + def del_param(self, param, header='content-type', requote=True): + """Remove the given parameter completely from the Content-Type header. + + The header will be re-written in place without the parameter or its + value. All values will be quoted as necessary unless requote is + False. Optional header specifies an alternative to the Content-Type + header. + """ + if header not in self: + return + new_ctype = '' + for p, v in self.get_params(header=header, unquote=requote): + if p.lower() != param.lower(): + if not new_ctype: + new_ctype = _formatparam(p, v, requote) + else: + new_ctype = SEMISPACE.join([new_ctype, + _formatparam(p, v, requote)]) + if new_ctype != self.get(header): + del self[header] + self[header] = new_ctype + + def set_type(self, type, header='Content-Type', requote=True): + """Set the main type and subtype for the Content-Type header. + + type must be a string in the form "maintype/subtype", otherwise a + ValueError is raised. + + This method replaces the Content-Type header, keeping all the + parameters in place. If requote is False, this leaves the existing + header's quoting as is. Otherwise, the parameters will be quoted (the + default). + + An alternative header can be specified in the header argument. When + the Content-Type header is set, we'll always also add a MIME-Version + header. + """ + # BAW: should we be strict? + if not type.count('/') == 1: + raise ValueError + # Set the Content-Type, you get a MIME-Version + if header.lower() == 'content-type': + del self['mime-version'] + self['MIME-Version'] = '1.0' + if header not in self: + self[header] = type + return + params = self.get_params(header=header, unquote=requote) + del self[header] + self[header] = type + # Skip the first param; it's the old type. + for p, v in params[1:]: + self.set_param(p, v, header, requote) + + def get_filename(self, failobj=None): + """Return the filename associated with the payload if present. + + The filename is extracted from the Content-Disposition header's + `filename' parameter, and it is unquoted. If that header is missing + the `filename' parameter, this method falls back to looking for the + `name' parameter. + """ + missing = object() + filename = self.get_param('filename', missing, 'content-disposition') + if filename is missing: + filename = self.get_param('name', missing, 'content-type') + if filename is missing: + return failobj + return utils.collapse_rfc2231_value(filename).strip() + + def get_boundary(self, failobj=None): + """Return the boundary associated with the payload if present. + + The boundary is extracted from the Content-Type header's `boundary' + parameter, and it is unquoted. + """ + missing = object() + boundary = self.get_param('boundary', missing) + if boundary is missing: + return failobj + # RFC 2046 says that boundaries may begin but not end in w/s + return utils.collapse_rfc2231_value(boundary).rstrip() + + def set_boundary(self, boundary): + """Set the boundary parameter in Content-Type to 'boundary'. + + This is subtly different than deleting the Content-Type header and + adding a new one with a new boundary parameter via add_header(). The + main difference is that using the set_boundary() method preserves the + order of the Content-Type header in the original message. + + HeaderParseError is raised if the message has no Content-Type header. + """ + missing = object() + params = self._get_params_preserve(missing, 'content-type') + if params is missing: + # There was no Content-Type header, and we don't know what type + # to set it to, so raise an exception. + raise errors.HeaderParseError('No Content-Type header found') + newparams = list() + foundp = False + for pk, pv in params: + if pk.lower() == 'boundary': + newparams.append(('boundary', '"%s"' % boundary)) + foundp = True + else: + newparams.append((pk, pv)) + if not foundp: + # The original Content-Type header had no boundary attribute. + # Tack one on the end. BAW: should we raise an exception + # instead??? + newparams.append(('boundary', '"%s"' % boundary)) + # Replace the existing Content-Type header with the new value + newheaders = list() + for h, v in self._headers: + if h.lower() == 'content-type': + parts = list() + for k, v in newparams: + if v == '': + parts.append(k) + else: + parts.append('%s=%s' % (k, v)) + val = SEMISPACE.join(parts) + newheaders.append(self.policy.header_store_parse(h, val)) + + else: + newheaders.append((h, v)) + self._headers = newheaders + + def get_content_charset(self, failobj=None): + """Return the charset parameter of the Content-Type header. + + The returned string is always coerced to lower case. If there is no + Content-Type header, or if that header has no charset parameter, + failobj is returned. + """ + missing = object() + charset = self.get_param('charset', missing) + if charset is missing: + return failobj + if isinstance(charset, tuple): + # RFC 2231 encoded, so decode it, and it better end up as ascii. + pcharset = charset[0] or 'us-ascii' + try: + # LookupError will be raised if the charset isn't known to + # Python. UnicodeError will be raised if the encoded text + # contains a character not in the charset. + as_bytes = charset[2].encode('raw-unicode-escape') + charset = str(as_bytes, pcharset) + except (LookupError, UnicodeError): + charset = charset[2] + # charset characters must be in us-ascii range + try: + charset.encode('us-ascii') + except UnicodeError: + return failobj + # RFC 2046, $4.1.2 says charsets are not case sensitive + return charset.lower() + + def get_charsets(self, failobj=None): + """Return a list containing the charset(s) used in this message. + + The returned list of items describes the Content-Type headers' + charset parameter for this message and all the subparts in its + payload. + + Each item will either be a string (the value of the charset parameter + in the Content-Type header of that part) or the value of the + 'failobj' parameter (defaults to None), if the part does not have a + main MIME type of "text", or the charset is not defined. + + The list will contain one string for each part of the message, plus + one for the container message (i.e. self), so that a non-multipart + message will still return a list of length 1. + """ + return [part.get_content_charset(failobj) for part in self.walk()] + + # I.e. def walk(self): ... + from future.backports.email.iterators import walk diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/__init__.py b/venv/lib/python3.10/site-packages/future/backports/email/mime/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b21b7fd45c608bc3763b9b2712f5d770dcdf0085 GIT binary patch literal 199 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 a#r`?N$dlViG6HKO){6)6C?2t!oqqtHB4#@P literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/message.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/message.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..18d0f0b9b50259bfbfe38a2870540624f079c452 GIT binary patch literal 1475 zcmZux!H(ND5EUiak{!p{qKl&FiOnI1gN@W|FAY!xDHdtb!)}2#CtUuQ z7QDphCdkHo^outezdJcAnYGl2+6XI@lWIvTVJ%yV^a(xx@%$C#x@ame+2miy#+#A$ zs8O=eT;!#6!m!f9TFm8@v{EaOAF#RAW#dFHt6Ce^-b0}C9v1A;HUdJS!hi^$1@&VKmnISkB0#iFQi{hKp(*pPI2Fk#- zcLtw*0h9A?$p+Zm_;78Nr;O?0_`4uEmGUCF3#Oj=ZuWgSz6pn5^K z#GO!WDBB}(VdRzIwCEc6fty>IFa2OI!SM?qYV4NscaQ0YPuBmPu2ktw}pT9q&r_k|Pvfpna=<)TV z@6570y_kg3$n(dzy`FAsO8d+&X0eH3e;enyRMO>nJBHJ}ZAu5-M%%u$qdm#(kU7VS zReNNG%b{i@Bu8RrK^t08F4_=J0Kjg^{o6C2LY#LpUFk}sm-h78^RzY^&xB27sh?I% z!DTclP;`}+a-P;}U`lR%rpT+(D$_Qi~t5%|ppNQGjRKq~UQ(!42Ap5*y&4J)^nD9_=! z$n!2pSJ}aI3^?5-J;LaCTVpRIQ~zRi&wLIV;`TKFK!DEp4jR0)EdWE)A>L=bN3yRn z>8k8o^7!M%1Sv?AR@Ls6>6+U=7)Ztcl5FE|`}$tsYhp3oFq{zl4gHBfA;-agtx1{_ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/multipart.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/multipart.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..70e565d148b86eacebcf93f0340b6d41bbbfc48e GIT binary patch literal 1680 zcmZ`(QIFg-5Vn)-X79AuR@G67J{j>q7u_W-JXNYtX+fx<+m|9FRzkrWdv|^3#5vo! zV_|uMXMO_+Uic^chP?8`U+4?WB)hpS0!y}LGLxD4zOly~9UT%_Z^hrKUx$SJiOT+p zKzRz=P2mt^Mg$dsrbRFdD9Rzo;Vf+B2;^uMfjn5!*#N9VJuKo`Ovxui#A5IxSY-S| zI2(!4OENill|184vRrfL*uq$L_TubgR@B<7id&z)%lx{MtdP#}rF6+(Py?CJ=1yIz z+z6Rz<)!7?!MBl6SIQ|bOV%a=ps~P z6a7YiqLeJjhGfAewD&jRN93#c`@x3%9Bu}`fbH_`Ca`aV9&G~DMewrSlaT)r5c1qg z?xkb=e;G>-57~A-TQeaS94I(p`G5S_BG@r~!mgEHvC5iC+CIc{Q+iqY)6cOdycBJ> zPQQ>AS!XNB1&DhoGgr^s{wc@&O0u157OmR1ndM#Jw%I4UGF7=`-t@`8ZVP;8FZ|rp zrQmkWw&8E$^%mzXgh?2?LC=(jANsI4*LkghM!~parIbR7y&MPuZ=%B_oH=<}%QBY? zAgEG##WkYpJn;S^%!;qI;R3S0@O_@5cAm|VHYfnD>|8^T`MJ!Y9j?w-n4L4NoQMCu zG&Re?lk01~zNwXa&%v{l*EdPM>A37(2%E22?ONubkk0?X1iI>1W*^pvLO}7Rgz}+w z4tD5V`v4KZYklt8%D9!x^9xzBg*64{?4e!A^|i6UpIz1k+z-bd0238FX&_aV+X}Nb z5rEu!O_Dx9bI`YLIvLm)-bypdG9)<5K-v=83_C#0*h!!5dOR66k&}7>e%t%ijCQu> zpzmK3ZwqK>^*gc0kmJ=wx-x}K&)s{E9;a~Eu^TQ`+ME`=gn47rD_LHpTFujH4Gfm= zCyySc4*GXm@%#cOQo5*pZDl$K9S4m|WxocRU4WLyz`h9@#_ixh0Gxsr$Cn+T2?BGiAs_2Jk{)o<0!|Pxd~~vH iUpE?&BW! literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/nonmultipart.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/email/mime/__pycache__/nonmultipart.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..09302b4377fe4ab546f02217a66cc0b3934be246 GIT binary patch literal 981 zcmZuwL2uJA6tQjah-k zsifcNXPO4H^~-ZnV=ILBqF5wC%F=^Wp%d56u{F>#1I?;W_TEba+XtlXc&GZ@)JtWt zNf)R+4Z6rFec8p0SZO2VcVZ9V#;=+!Or_YhdwzPx8f&gq;T7sHEh@!%H{!f9veg)mIse!S{kIZxE=|F?Jp{~+vb|-Dd+6H{ z%+0F<647xmOAqXQ*h1W`1^_^NEc#>dH|YRaXbtZ@+MdXEDzlBsZQql-iy5{6Za8IQ jL_`jIywCuPl6P%kSS*?Rtw@4fGRe%7a_BLeNC!7pmkC**IO9Jc@_ z&!O7{20;=csPGC}dWlET_QCcOzq13dgCqdEcSDmN?DmU(IY^at;|r^c#>rHbwKlE|5$GC#Ve?E@-M^n{^K7AT zWrDkNU0pSWQ#Cg(LqEsOhsks3_5&CsNhoB+6EyKfUj)F5CV}vQ(ZKZJ!20o)R;~@Z zkrhPvf5h5eU2s*+Gfe%yp&dfMfNp<)VdD$h5cB?exS_9z@Lp3$viH*ej#MWBadh>N z68wb!(*K@R^aXL=t-m26*m$|GAo&|#(Ld=Q@ZW~K3O01(zwRW3(EI#X3cifwPBQ*> z6{69I?OKXbF=d%sN@krw^^mh$!dfY<@-*Y>y9x4r-Ewgx(Md1;I` zW&oF@4bxOr%B5+00^n)QSB2(c8nl6xMc(#0)!@`l2C#PEe-ZO80Q{TBOI^zN);@jm zd0ZQf`q@|&dRFoZBsKA!tnT7ME#i9Rmb&^hdh$57P>QpfXFtLT8|RH{jEomB#{#sm zEV(M;QUNeBit3d)1!w5cz6V2i&!Zz6(lK=J&6(e){WlYT{m#B{qdlvsXRs*dkP2X0 zfy%&il%}N?O@a0}O@C^5vD+D>DZC$P+Ij2v9SsivsH@lsh5=6@)LTH$y!rIRJcJqI zZkYgphllYYFj$x^0P~^%e;;m7L$2HpOWUN8l_T#sl!i+?fuFCz}(}~yxbrdM3 f$zZf?_{Em!mr$(4V%$M6hOCWg-y3^l`oRAWKZv2> literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/application.py b/venv/lib/python3.10/site-packages/future/backports/email/mime/application.py new file mode 100644 index 0000000..5cbfb17 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/mime/application.py @@ -0,0 +1,39 @@ +# Copyright (C) 2001-2006 Python Software Foundation +# Author: Keith Dart +# Contact: email-sig@python.org + +"""Class representing application/* type MIME documents.""" +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import + +from future.backports.email import encoders +from future.backports.email.mime.nonmultipart import MIMENonMultipart + +__all__ = ["MIMEApplication"] + + +class MIMEApplication(MIMENonMultipart): + """Class for generating application/* MIME documents.""" + + def __init__(self, _data, _subtype='octet-stream', + _encoder=encoders.encode_base64, **_params): + """Create an application/* type MIME document. + + _data is a string containing the raw application data. + + _subtype is the MIME content type subtype, defaulting to + 'octet-stream'. + + _encoder is a function which will perform the actual encoding for + transport of the application data, defaulting to base64 encoding. + + Any additional keyword arguments are passed to the base class + constructor, which turns them into parameters on the Content-Type + header. + """ + if _subtype is None: + raise TypeError('Invalid application MIME subtype') + MIMENonMultipart.__init__(self, 'application', _subtype, **_params) + self.set_payload(_data) + _encoder(self) diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/audio.py b/venv/lib/python3.10/site-packages/future/backports/email/mime/audio.py new file mode 100644 index 0000000..4989c11 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/mime/audio.py @@ -0,0 +1,74 @@ +# Copyright (C) 2001-2007 Python Software Foundation +# Author: Anthony Baxter +# Contact: email-sig@python.org + +"""Class representing audio/* type MIME documents.""" +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import + +__all__ = ['MIMEAudio'] + +import sndhdr + +from io import BytesIO +from future.backports.email import encoders +from future.backports.email.mime.nonmultipart import MIMENonMultipart + + +_sndhdr_MIMEmap = {'au' : 'basic', + 'wav' :'x-wav', + 'aiff':'x-aiff', + 'aifc':'x-aiff', + } + +# There are others in sndhdr that don't have MIME types. :( +# Additional ones to be added to sndhdr? midi, mp3, realaudio, wma?? +def _whatsnd(data): + """Try to identify a sound file type. + + sndhdr.what() has a pretty cruddy interface, unfortunately. This is why + we re-do it here. It would be easier to reverse engineer the Unix 'file' + command and use the standard 'magic' file, as shipped with a modern Unix. + """ + hdr = data[:512] + fakefile = BytesIO(hdr) + for testfn in sndhdr.tests: + res = testfn(hdr, fakefile) + if res is not None: + return _sndhdr_MIMEmap.get(res[0]) + return None + + +class MIMEAudio(MIMENonMultipart): + """Class for generating audio/* MIME documents.""" + + def __init__(self, _audiodata, _subtype=None, + _encoder=encoders.encode_base64, **_params): + """Create an audio/* type MIME document. + + _audiodata is a string containing the raw audio data. If this data + can be decoded by the standard Python `sndhdr' module, then the + subtype will be automatically included in the Content-Type header. + Otherwise, you can specify the specific audio subtype via the + _subtype parameter. If _subtype is not given, and no subtype can be + guessed, a TypeError is raised. + + _encoder is a function which will perform the actual encoding for + transport of the image data. It takes one argument, which is this + Image instance. It should use get_payload() and set_payload() to + change the payload to the encoded form. It should also add any + Content-Transfer-Encoding or other headers to the message as + necessary. The default encoding is Base64. + + Any additional keyword arguments are passed to the base class + constructor, which turns them into parameters on the Content-Type + header. + """ + if _subtype is None: + _subtype = _whatsnd(_audiodata) + if _subtype is None: + raise TypeError('Could not find audio MIME subtype') + MIMENonMultipart.__init__(self, 'audio', _subtype, **_params) + self.set_payload(_audiodata) + _encoder(self) diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/base.py b/venv/lib/python3.10/site-packages/future/backports/email/mime/base.py new file mode 100644 index 0000000..e77f3ca --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/mime/base.py @@ -0,0 +1,25 @@ +# Copyright (C) 2001-2006 Python Software Foundation +# Author: Barry Warsaw +# Contact: email-sig@python.org + +"""Base class for MIME specializations.""" +from __future__ import absolute_import, division, unicode_literals +from future.backports.email import message + +__all__ = ['MIMEBase'] + + +class MIMEBase(message.Message): + """Base class for MIME specializations.""" + + def __init__(self, _maintype, _subtype, **_params): + """This constructor adds a Content-Type: and a MIME-Version: header. + + The Content-Type: header is taken from the _maintype and _subtype + arguments. Additional parameters for this header are taken from the + keyword arguments. + """ + message.Message.__init__(self) + ctype = '%s/%s' % (_maintype, _subtype) + self.add_header('Content-Type', ctype, **_params) + self['MIME-Version'] = '1.0' diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/image.py b/venv/lib/python3.10/site-packages/future/backports/email/mime/image.py new file mode 100644 index 0000000..a036024 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/mime/image.py @@ -0,0 +1,48 @@ +# Copyright (C) 2001-2006 Python Software Foundation +# Author: Barry Warsaw +# Contact: email-sig@python.org + +"""Class representing image/* type MIME documents.""" +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import + +__all__ = ['MIMEImage'] + +import imghdr + +from future.backports.email import encoders +from future.backports.email.mime.nonmultipart import MIMENonMultipart + + +class MIMEImage(MIMENonMultipart): + """Class for generating image/* type MIME documents.""" + + def __init__(self, _imagedata, _subtype=None, + _encoder=encoders.encode_base64, **_params): + """Create an image/* type MIME document. + + _imagedata is a string containing the raw image data. If this data + can be decoded by the standard Python `imghdr' module, then the + subtype will be automatically included in the Content-Type header. + Otherwise, you can specify the specific image subtype via the _subtype + parameter. + + _encoder is a function which will perform the actual encoding for + transport of the image data. It takes one argument, which is this + Image instance. It should use get_payload() and set_payload() to + change the payload to the encoded form. It should also add any + Content-Transfer-Encoding or other headers to the message as + necessary. The default encoding is Base64. + + Any additional keyword arguments are passed to the base class + constructor, which turns them into parameters on the Content-Type + header. + """ + if _subtype is None: + _subtype = imghdr.what(None, _imagedata) + if _subtype is None: + raise TypeError('Could not guess image MIME subtype') + MIMENonMultipart.__init__(self, 'image', _subtype, **_params) + self.set_payload(_imagedata) + _encoder(self) diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/message.py b/venv/lib/python3.10/site-packages/future/backports/email/mime/message.py new file mode 100644 index 0000000..7f92075 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/mime/message.py @@ -0,0 +1,36 @@ +# Copyright (C) 2001-2006 Python Software Foundation +# Author: Barry Warsaw +# Contact: email-sig@python.org + +"""Class representing message/* MIME documents.""" +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import + +__all__ = ['MIMEMessage'] + +from future.backports.email import message +from future.backports.email.mime.nonmultipart import MIMENonMultipart + + +class MIMEMessage(MIMENonMultipart): + """Class representing message/* MIME documents.""" + + def __init__(self, _msg, _subtype='rfc822'): + """Create a message/* type MIME document. + + _msg is a message object and must be an instance of Message, or a + derived class of Message, otherwise a TypeError is raised. + + Optional _subtype defines the subtype of the contained message. The + default is "rfc822" (this is defined by the MIME standard, even though + the term "rfc822" is technically outdated by RFC 2822). + """ + MIMENonMultipart.__init__(self, 'message', _subtype) + if not isinstance(_msg, message.Message): + raise TypeError('Argument is not an instance of Message') + # It's convenient to use this base class method. We need to do it + # this way or we'll get an exception + message.Message.attach(self, _msg) + # And be sure our default type is set correctly + self.set_default_type('message/rfc822') diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/multipart.py b/venv/lib/python3.10/site-packages/future/backports/email/mime/multipart.py new file mode 100644 index 0000000..6d7ed3d --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/mime/multipart.py @@ -0,0 +1,49 @@ +# Copyright (C) 2002-2006 Python Software Foundation +# Author: Barry Warsaw +# Contact: email-sig@python.org + +"""Base class for MIME multipart/* type messages.""" +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import + +__all__ = ['MIMEMultipart'] + +from future.backports.email.mime.base import MIMEBase + + +class MIMEMultipart(MIMEBase): + """Base class for MIME multipart/* type messages.""" + + def __init__(self, _subtype='mixed', boundary=None, _subparts=None, + **_params): + """Creates a multipart/* type message. + + By default, creates a multipart/mixed message, with proper + Content-Type and MIME-Version headers. + + _subtype is the subtype of the multipart content type, defaulting to + `mixed'. + + boundary is the multipart boundary string. By default it is + calculated as needed. + + _subparts is a sequence of initial subparts for the payload. It + must be an iterable object, such as a list. You can always + attach new subparts to the message by using the attach() method. + + Additional parameters for the Content-Type header are taken from the + keyword arguments (or passed into the _params argument). + """ + MIMEBase.__init__(self, 'multipart', _subtype, **_params) + + # Initialise _payload to an empty list as the Message superclass's + # implementation of is_multipart assumes that _payload is a list for + # multipart messages. + self._payload = [] + + if _subparts: + for p in _subparts: + self.attach(p) + if boundary: + self.set_boundary(boundary) diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/nonmultipart.py b/venv/lib/python3.10/site-packages/future/backports/email/mime/nonmultipart.py new file mode 100644 index 0000000..08c37c3 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/mime/nonmultipart.py @@ -0,0 +1,24 @@ +# Copyright (C) 2002-2006 Python Software Foundation +# Author: Barry Warsaw +# Contact: email-sig@python.org + +"""Base class for MIME type messages that are not multipart.""" +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import + +__all__ = ['MIMENonMultipart'] + +from future.backports.email import errors +from future.backports.email.mime.base import MIMEBase + + +class MIMENonMultipart(MIMEBase): + """Base class for MIME multipart/* type messages.""" + + def attach(self, payload): + # The public API prohibits attaching multiple subparts to MIMEBase + # derived subtypes since none of them are, by definition, of content + # type multipart/* + raise errors.MultipartConversionError( + 'Cannot attach additional subparts to non-multipart/*') diff --git a/venv/lib/python3.10/site-packages/future/backports/email/mime/text.py b/venv/lib/python3.10/site-packages/future/backports/email/mime/text.py new file mode 100644 index 0000000..6269f4a --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/mime/text.py @@ -0,0 +1,44 @@ +# Copyright (C) 2001-2006 Python Software Foundation +# Author: Barry Warsaw +# Contact: email-sig@python.org + +"""Class representing text/* type MIME documents.""" +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import + +__all__ = ['MIMEText'] + +from future.backports.email.encoders import encode_7or8bit +from future.backports.email.mime.nonmultipart import MIMENonMultipart + + +class MIMEText(MIMENonMultipart): + """Class for generating text/* type MIME documents.""" + + def __init__(self, _text, _subtype='plain', _charset=None): + """Create a text/* type MIME document. + + _text is the string for this message object. + + _subtype is the MIME sub content type, defaulting to "plain". + + _charset is the character set parameter added to the Content-Type + header. This defaults to "us-ascii". Note that as a side-effect, the + Content-Transfer-Encoding header will also be set. + """ + + # If no _charset was specified, check to see if there are non-ascii + # characters present. If not, use 'us-ascii', otherwise use utf-8. + # XXX: This can be removed once #7304 is fixed. + if _charset is None: + try: + _text.encode('us-ascii') + _charset = 'us-ascii' + except UnicodeEncodeError: + _charset = 'utf-8' + + MIMENonMultipart.__init__(self, 'text', _subtype, + **{'charset': _charset}) + + self.set_payload(_text, _charset) diff --git a/venv/lib/python3.10/site-packages/future/backports/email/parser.py b/venv/lib/python3.10/site-packages/future/backports/email/parser.py new file mode 100644 index 0000000..79f0e5a --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/parser.py @@ -0,0 +1,135 @@ +# Copyright (C) 2001-2007 Python Software Foundation +# Author: Barry Warsaw, Thomas Wouters, Anthony Baxter +# Contact: email-sig@python.org + +"""A parser of RFC 2822 and MIME email messages.""" +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import + +__all__ = ['Parser', 'HeaderParser', 'BytesParser', 'BytesHeaderParser'] + +import warnings +from io import StringIO, TextIOWrapper + +from future.backports.email.feedparser import FeedParser, BytesFeedParser +from future.backports.email.message import Message +from future.backports.email._policybase import compat32 + + +class Parser(object): + def __init__(self, _class=Message, **_3to2kwargs): + """Parser of RFC 2822 and MIME email messages. + + Creates an in-memory object tree representing the email message, which + can then be manipulated and turned over to a Generator to return the + textual representation of the message. + + The string must be formatted as a block of RFC 2822 headers and header + continuation lines, optionally preceded by a `Unix-from' header. The + header block is terminated either by the end of the string or by a + blank line. + + _class is the class to instantiate for new message objects when they + must be created. This class must have a constructor that can take + zero arguments. Default is Message.Message. + + The policy keyword specifies a policy object that controls a number of + aspects of the parser's operation. The default policy maintains + backward compatibility. + + """ + if 'policy' in _3to2kwargs: policy = _3to2kwargs['policy']; del _3to2kwargs['policy'] + else: policy = compat32 + self._class = _class + self.policy = policy + + def parse(self, fp, headersonly=False): + """Create a message structure from the data in a file. + + Reads all the data from the file and returns the root of the message + structure. Optional headersonly is a flag specifying whether to stop + parsing after reading the headers or not. The default is False, + meaning it parses the entire contents of the file. + """ + feedparser = FeedParser(self._class, policy=self.policy) + if headersonly: + feedparser._set_headersonly() + while True: + data = fp.read(8192) + if not data: + break + feedparser.feed(data) + return feedparser.close() + + def parsestr(self, text, headersonly=False): + """Create a message structure from a string. + + Returns the root of the message structure. Optional headersonly is a + flag specifying whether to stop parsing after reading the headers or + not. The default is False, meaning it parses the entire contents of + the file. + """ + return self.parse(StringIO(text), headersonly=headersonly) + + + +class HeaderParser(Parser): + def parse(self, fp, headersonly=True): + return Parser.parse(self, fp, True) + + def parsestr(self, text, headersonly=True): + return Parser.parsestr(self, text, True) + + +class BytesParser(object): + + def __init__(self, *args, **kw): + """Parser of binary RFC 2822 and MIME email messages. + + Creates an in-memory object tree representing the email message, which + can then be manipulated and turned over to a Generator to return the + textual representation of the message. + + The input must be formatted as a block of RFC 2822 headers and header + continuation lines, optionally preceded by a `Unix-from' header. The + header block is terminated either by the end of the input or by a + blank line. + + _class is the class to instantiate for new message objects when they + must be created. This class must have a constructor that can take + zero arguments. Default is Message.Message. + """ + self.parser = Parser(*args, **kw) + + def parse(self, fp, headersonly=False): + """Create a message structure from the data in a binary file. + + Reads all the data from the file and returns the root of the message + structure. Optional headersonly is a flag specifying whether to stop + parsing after reading the headers or not. The default is False, + meaning it parses the entire contents of the file. + """ + fp = TextIOWrapper(fp, encoding='ascii', errors='surrogateescape') + with fp: + return self.parser.parse(fp, headersonly) + + + def parsebytes(self, text, headersonly=False): + """Create a message structure from a byte string. + + Returns the root of the message structure. Optional headersonly is a + flag specifying whether to stop parsing after reading the headers or + not. The default is False, meaning it parses the entire contents of + the file. + """ + text = text.decode('ASCII', errors='surrogateescape') + return self.parser.parsestr(text, headersonly) + + +class BytesHeaderParser(BytesParser): + def parse(self, fp, headersonly=True): + return BytesParser.parse(self, fp, headersonly=True) + + def parsebytes(self, text, headersonly=True): + return BytesParser.parsebytes(self, text, headersonly=True) diff --git a/venv/lib/python3.10/site-packages/future/backports/email/policy.py b/venv/lib/python3.10/site-packages/future/backports/email/policy.py new file mode 100644 index 0000000..2f609a2 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/policy.py @@ -0,0 +1,193 @@ +"""This will be the home for the policy that hooks in the new +code that adds all the email6 features. +""" +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future.builtins import super + +from future.standard_library.email._policybase import (Policy, Compat32, + compat32, _extend_docstrings) +from future.standard_library.email.utils import _has_surrogates +from future.standard_library.email.headerregistry import HeaderRegistry as HeaderRegistry + +__all__ = [ + 'Compat32', + 'compat32', + 'Policy', + 'EmailPolicy', + 'default', + 'strict', + 'SMTP', + 'HTTP', + ] + +@_extend_docstrings +class EmailPolicy(Policy): + + """+ + PROVISIONAL + + The API extensions enabled by this policy are currently provisional. + Refer to the documentation for details. + + This policy adds new header parsing and folding algorithms. Instead of + simple strings, headers are custom objects with custom attributes + depending on the type of the field. The folding algorithm fully + implements RFCs 2047 and 5322. + + In addition to the settable attributes listed above that apply to + all Policies, this policy adds the following additional attributes: + + refold_source -- if the value for a header in the Message object + came from the parsing of some source, this attribute + indicates whether or not a generator should refold + that value when transforming the message back into + stream form. The possible values are: + + none -- all source values use original folding + long -- source values that have any line that is + longer than max_line_length will be + refolded + all -- all values are refolded. + + The default is 'long'. + + header_factory -- a callable that takes two arguments, 'name' and + 'value', where 'name' is a header field name and + 'value' is an unfolded header field value, and + returns a string-like object that represents that + header. A default header_factory is provided that + understands some of the RFC5322 header field types. + (Currently address fields and date fields have + special treatment, while all other fields are + treated as unstructured. This list will be + completed before the extension is marked stable.) + """ + + refold_source = 'long' + header_factory = HeaderRegistry() + + def __init__(self, **kw): + # Ensure that each new instance gets a unique header factory + # (as opposed to clones, which share the factory). + if 'header_factory' not in kw: + object.__setattr__(self, 'header_factory', HeaderRegistry()) + super().__init__(**kw) + + def header_max_count(self, name): + """+ + The implementation for this class returns the max_count attribute from + the specialized header class that would be used to construct a header + of type 'name'. + """ + return self.header_factory[name].max_count + + # The logic of the next three methods is chosen such that it is possible to + # switch a Message object between a Compat32 policy and a policy derived + # from this class and have the results stay consistent. This allows a + # Message object constructed with this policy to be passed to a library + # that only handles Compat32 objects, or to receive such an object and + # convert it to use the newer style by just changing its policy. It is + # also chosen because it postpones the relatively expensive full rfc5322 + # parse until as late as possible when parsing from source, since in many + # applications only a few headers will actually be inspected. + + def header_source_parse(self, sourcelines): + """+ + The name is parsed as everything up to the ':' and returned unmodified. + The value is determined by stripping leading whitespace off the + remainder of the first line, joining all subsequent lines together, and + stripping any trailing carriage return or linefeed characters. (This + is the same as Compat32). + + """ + name, value = sourcelines[0].split(':', 1) + value = value.lstrip(' \t') + ''.join(sourcelines[1:]) + return (name, value.rstrip('\r\n')) + + def header_store_parse(self, name, value): + """+ + The name is returned unchanged. If the input value has a 'name' + attribute and it matches the name ignoring case, the value is returned + unchanged. Otherwise the name and value are passed to header_factory + method, and the resulting custom header object is returned as the + value. In this case a ValueError is raised if the input value contains + CR or LF characters. + + """ + if hasattr(value, 'name') and value.name.lower() == name.lower(): + return (name, value) + if isinstance(value, str) and len(value.splitlines())>1: + raise ValueError("Header values may not contain linefeed " + "or carriage return characters") + return (name, self.header_factory(name, value)) + + def header_fetch_parse(self, name, value): + """+ + If the value has a 'name' attribute, it is returned to unmodified. + Otherwise the name and the value with any linesep characters removed + are passed to the header_factory method, and the resulting custom + header object is returned. Any surrogateescaped bytes get turned + into the unicode unknown-character glyph. + + """ + if hasattr(value, 'name'): + return value + return self.header_factory(name, ''.join(value.splitlines())) + + def fold(self, name, value): + """+ + Header folding is controlled by the refold_source policy setting. A + value is considered to be a 'source value' if and only if it does not + have a 'name' attribute (having a 'name' attribute means it is a header + object of some sort). If a source value needs to be refolded according + to the policy, it is converted into a custom header object by passing + the name and the value with any linesep characters removed to the + header_factory method. Folding of a custom header object is done by + calling its fold method with the current policy. + + Source values are split into lines using splitlines. If the value is + not to be refolded, the lines are rejoined using the linesep from the + policy and returned. The exception is lines containing non-ascii + binary data. In that case the value is refolded regardless of the + refold_source setting, which causes the binary data to be CTE encoded + using the unknown-8bit charset. + + """ + return self._fold(name, value, refold_binary=True) + + def fold_binary(self, name, value): + """+ + The same as fold if cte_type is 7bit, except that the returned value is + bytes. + + If cte_type is 8bit, non-ASCII binary data is converted back into + bytes. Headers with binary data are not refolded, regardless of the + refold_header setting, since there is no way to know whether the binary + data consists of single byte characters or multibyte characters. + + """ + folded = self._fold(name, value, refold_binary=self.cte_type=='7bit') + return folded.encode('ascii', 'surrogateescape') + + def _fold(self, name, value, refold_binary=False): + if hasattr(value, 'name'): + return value.fold(policy=self) + maxlen = self.max_line_length if self.max_line_length else float('inf') + lines = value.splitlines() + refold = (self.refold_source == 'all' or + self.refold_source == 'long' and + (lines and len(lines[0])+len(name)+2 > maxlen or + any(len(x) > maxlen for x in lines[1:]))) + if refold or refold_binary and _has_surrogates(value): + return self.header_factory(name, ''.join(lines)).fold(policy=self) + return name + ': ' + self.linesep.join(lines) + self.linesep + + +default = EmailPolicy() +# Make the default policy use the class default header_factory +del default.header_factory +strict = default.clone(raise_on_defect=True) +SMTP = default.clone(linesep='\r\n') +HTTP = default.clone(linesep='\r\n', max_line_length=None) diff --git a/venv/lib/python3.10/site-packages/future/backports/email/quoprimime.py b/venv/lib/python3.10/site-packages/future/backports/email/quoprimime.py new file mode 100644 index 0000000..b69d158 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/quoprimime.py @@ -0,0 +1,326 @@ +# Copyright (C) 2001-2006 Python Software Foundation +# Author: Ben Gertzfield +# Contact: email-sig@python.org + +"""Quoted-printable content transfer encoding per RFCs 2045-2047. + +This module handles the content transfer encoding method defined in RFC 2045 +to encode US ASCII-like 8-bit data called `quoted-printable'. It is used to +safely encode text that is in a character set similar to the 7-bit US ASCII +character set, but that includes some 8-bit characters that are normally not +allowed in email bodies or headers. + +Quoted-printable is very space-inefficient for encoding binary files; use the +email.base64mime module for that instead. + +This module provides an interface to encode and decode both headers and bodies +with quoted-printable encoding. + +RFC 2045 defines a method for including character set information in an +`encoded-word' in a header. This method is commonly used for 8-bit real names +in To:/From:/Cc: etc. fields, as well as Subject: lines. + +This module does not do the line wrapping or end-of-line character +conversion necessary for proper internationalized headers; it only +does dumb encoding and decoding. To deal with the various line +wrapping issues, use the email.header module. +""" +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future.builtins import bytes, chr, dict, int, range, super + +__all__ = [ + 'body_decode', + 'body_encode', + 'body_length', + 'decode', + 'decodestring', + 'header_decode', + 'header_encode', + 'header_length', + 'quote', + 'unquote', + ] + +import re +import io + +from string import ascii_letters, digits, hexdigits + +CRLF = '\r\n' +NL = '\n' +EMPTYSTRING = '' + +# Build a mapping of octets to the expansion of that octet. Since we're only +# going to have 256 of these things, this isn't terribly inefficient +# space-wise. Remember that headers and bodies have different sets of safe +# characters. Initialize both maps with the full expansion, and then override +# the safe bytes with the more compact form. +_QUOPRI_HEADER_MAP = dict((c, '=%02X' % c) for c in range(256)) +_QUOPRI_BODY_MAP = _QUOPRI_HEADER_MAP.copy() + +# Safe header bytes which need no encoding. +for c in bytes(b'-!*+/' + ascii_letters.encode('ascii') + digits.encode('ascii')): + _QUOPRI_HEADER_MAP[c] = chr(c) +# Headers have one other special encoding; spaces become underscores. +_QUOPRI_HEADER_MAP[ord(' ')] = '_' + +# Safe body bytes which need no encoding. +for c in bytes(b' !"#$%&\'()*+,-./0123456789:;<>' + b'?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`' + b'abcdefghijklmnopqrstuvwxyz{|}~\t'): + _QUOPRI_BODY_MAP[c] = chr(c) + + + +# Helpers +def header_check(octet): + """Return True if the octet should be escaped with header quopri.""" + return chr(octet) != _QUOPRI_HEADER_MAP[octet] + + +def body_check(octet): + """Return True if the octet should be escaped with body quopri.""" + return chr(octet) != _QUOPRI_BODY_MAP[octet] + + +def header_length(bytearray): + """Return a header quoted-printable encoding length. + + Note that this does not include any RFC 2047 chrome added by + `header_encode()`. + + :param bytearray: An array of bytes (a.k.a. octets). + :return: The length in bytes of the byte array when it is encoded with + quoted-printable for headers. + """ + return sum(len(_QUOPRI_HEADER_MAP[octet]) for octet in bytearray) + + +def body_length(bytearray): + """Return a body quoted-printable encoding length. + + :param bytearray: An array of bytes (a.k.a. octets). + :return: The length in bytes of the byte array when it is encoded with + quoted-printable for bodies. + """ + return sum(len(_QUOPRI_BODY_MAP[octet]) for octet in bytearray) + + +def _max_append(L, s, maxlen, extra=''): + if not isinstance(s, str): + s = chr(s) + if not L: + L.append(s.lstrip()) + elif len(L[-1]) + len(s) <= maxlen: + L[-1] += extra + s + else: + L.append(s.lstrip()) + + +def unquote(s): + """Turn a string in the form =AB to the ASCII character with value 0xab""" + return chr(int(s[1:3], 16)) + + +def quote(c): + return '=%02X' % ord(c) + + + +def header_encode(header_bytes, charset='iso-8859-1'): + """Encode a single header line with quoted-printable (like) encoding. + + Defined in RFC 2045, this `Q' encoding is similar to quoted-printable, but + used specifically for email header fields to allow charsets with mostly 7 + bit characters (and some 8 bit) to remain more or less readable in non-RFC + 2045 aware mail clients. + + charset names the character set to use in the RFC 2046 header. It + defaults to iso-8859-1. + """ + # Return empty headers as an empty string. + if not header_bytes: + return '' + # Iterate over every byte, encoding if necessary. + encoded = [] + for octet in header_bytes: + encoded.append(_QUOPRI_HEADER_MAP[octet]) + # Now add the RFC chrome to each encoded chunk and glue the chunks + # together. + return '=?%s?q?%s?=' % (charset, EMPTYSTRING.join(encoded)) + + +class _body_accumulator(io.StringIO): + + def __init__(self, maxlinelen, eol, *args, **kw): + super().__init__(*args, **kw) + self.eol = eol + self.maxlinelen = self.room = maxlinelen + + def write_str(self, s): + """Add string s to the accumulated body.""" + self.write(s) + self.room -= len(s) + + def newline(self): + """Write eol, then start new line.""" + self.write_str(self.eol) + self.room = self.maxlinelen + + def write_soft_break(self): + """Write a soft break, then start a new line.""" + self.write_str('=') + self.newline() + + def write_wrapped(self, s, extra_room=0): + """Add a soft line break if needed, then write s.""" + if self.room < len(s) + extra_room: + self.write_soft_break() + self.write_str(s) + + def write_char(self, c, is_last_char): + if not is_last_char: + # Another character follows on this line, so we must leave + # extra room, either for it or a soft break, and whitespace + # need not be quoted. + self.write_wrapped(c, extra_room=1) + elif c not in ' \t': + # For this and remaining cases, no more characters follow, + # so there is no need to reserve extra room (since a hard + # break will immediately follow). + self.write_wrapped(c) + elif self.room >= 3: + # It's a whitespace character at end-of-line, and we have room + # for the three-character quoted encoding. + self.write(quote(c)) + elif self.room == 2: + # There's room for the whitespace character and a soft break. + self.write(c) + self.write_soft_break() + else: + # There's room only for a soft break. The quoted whitespace + # will be the only content on the subsequent line. + self.write_soft_break() + self.write(quote(c)) + + +def body_encode(body, maxlinelen=76, eol=NL): + """Encode with quoted-printable, wrapping at maxlinelen characters. + + Each line of encoded text will end with eol, which defaults to "\\n". Set + this to "\\r\\n" if you will be using the result of this function directly + in an email. + + Each line will be wrapped at, at most, maxlinelen characters before the + eol string (maxlinelen defaults to 76 characters, the maximum value + permitted by RFC 2045). Long lines will have the 'soft line break' + quoted-printable character "=" appended to them, so the decoded text will + be identical to the original text. + + The minimum maxlinelen is 4 to have room for a quoted character ("=XX") + followed by a soft line break. Smaller values will generate a + ValueError. + + """ + + if maxlinelen < 4: + raise ValueError("maxlinelen must be at least 4") + if not body: + return body + + # The last line may or may not end in eol, but all other lines do. + last_has_eol = (body[-1] in '\r\n') + + # This accumulator will make it easier to build the encoded body. + encoded_body = _body_accumulator(maxlinelen, eol) + + lines = body.splitlines() + last_line_no = len(lines) - 1 + for line_no, line in enumerate(lines): + last_char_index = len(line) - 1 + for i, c in enumerate(line): + if body_check(ord(c)): + c = quote(c) + encoded_body.write_char(c, i==last_char_index) + # Add an eol if input line had eol. All input lines have eol except + # possibly the last one. + if line_no < last_line_no or last_has_eol: + encoded_body.newline() + + return encoded_body.getvalue() + + + +# BAW: I'm not sure if the intent was for the signature of this function to be +# the same as base64MIME.decode() or not... +def decode(encoded, eol=NL): + """Decode a quoted-printable string. + + Lines are separated with eol, which defaults to \\n. + """ + if not encoded: + return encoded + # BAW: see comment in encode() above. Again, we're building up the + # decoded string with string concatenation, which could be done much more + # efficiently. + decoded = '' + + for line in encoded.splitlines(): + line = line.rstrip() + if not line: + decoded += eol + continue + + i = 0 + n = len(line) + while i < n: + c = line[i] + if c != '=': + decoded += c + i += 1 + # Otherwise, c == "=". Are we at the end of the line? If so, add + # a soft line break. + elif i+1 == n: + i += 1 + continue + # Decode if in form =AB + elif i+2 < n and line[i+1] in hexdigits and line[i+2] in hexdigits: + decoded += unquote(line[i:i+3]) + i += 3 + # Otherwise, not in form =AB, pass literally + else: + decoded += c + i += 1 + + if i == n: + decoded += eol + # Special case if original string did not end with eol + if encoded[-1] not in '\r\n' and decoded.endswith(eol): + decoded = decoded[:-1] + return decoded + + +# For convenience and backwards compatibility w/ standard base64 module +body_decode = decode +decodestring = decode + + + +def _unquote_match(match): + """Turn a match in the form =AB to the ASCII character with value 0xab""" + s = match.group(0) + return unquote(s) + + +# Header decoding is done a bit differently +def header_decode(s): + """Decode a string encoded with RFC 2045 MIME header `Q' encoding. + + This function does not parse a full MIME header value encoded with + quoted-printable (like =?iso-8895-1?q?Hello_World?=) -- please use + the high level email.header class for that functionality. + """ + s = s.replace('_', ' ') + return re.sub(r'=[a-fA-F0-9]{2}', _unquote_match, s, re.ASCII) diff --git a/venv/lib/python3.10/site-packages/future/backports/email/utils.py b/venv/lib/python3.10/site-packages/future/backports/email/utils.py new file mode 100644 index 0000000..4abebf7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/email/utils.py @@ -0,0 +1,400 @@ +# Copyright (C) 2001-2010 Python Software Foundation +# Author: Barry Warsaw +# Contact: email-sig@python.org + +"""Miscellaneous utilities.""" + +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import utils +from future.builtins import bytes, int, str + +__all__ = [ + 'collapse_rfc2231_value', + 'decode_params', + 'decode_rfc2231', + 'encode_rfc2231', + 'formataddr', + 'formatdate', + 'format_datetime', + 'getaddresses', + 'make_msgid', + 'mktime_tz', + 'parseaddr', + 'parsedate', + 'parsedate_tz', + 'parsedate_to_datetime', + 'unquote', + ] + +import os +import re +if utils.PY2: + re.ASCII = 0 +import time +import base64 +import random +import socket +from future.backports import datetime +from future.backports.urllib.parse import quote as url_quote, unquote as url_unquote +import warnings +from io import StringIO + +from future.backports.email._parseaddr import quote +from future.backports.email._parseaddr import AddressList as _AddressList +from future.backports.email._parseaddr import mktime_tz + +from future.backports.email._parseaddr import parsedate, parsedate_tz, _parsedate_tz + +from quopri import decodestring as _qdecode + +# Intrapackage imports +from future.backports.email.encoders import _bencode, _qencode +from future.backports.email.charset import Charset + +COMMASPACE = ', ' +EMPTYSTRING = '' +UEMPTYSTRING = '' +CRLF = '\r\n' +TICK = "'" + +specialsre = re.compile(r'[][\\()<>@,:;".]') +escapesre = re.compile(r'[\\"]') + +# How to figure out if we are processing strings that come from a byte +# source with undecodable characters. +_has_surrogates = re.compile( + '([^\ud800-\udbff]|\A)[\udc00-\udfff]([^\udc00-\udfff]|\Z)').search + +# How to deal with a string containing bytes before handing it to the +# application through the 'normal' interface. +def _sanitize(string): + # Turn any escaped bytes into unicode 'unknown' char. + original_bytes = string.encode('ascii', 'surrogateescape') + return original_bytes.decode('ascii', 'replace') + + +# Helpers + +def formataddr(pair, charset='utf-8'): + """The inverse of parseaddr(), this takes a 2-tuple of the form + (realname, email_address) and returns the string value suitable + for an RFC 2822 From, To or Cc header. + + If the first element of pair is false, then the second element is + returned unmodified. + + Optional charset if given is the character set that is used to encode + realname in case realname is not ASCII safe. Can be an instance of str or + a Charset-like object which has a header_encode method. Default is + 'utf-8'. + """ + name, address = pair + # The address MUST (per RFC) be ascii, so raise an UnicodeError if it isn't. + address.encode('ascii') + if name: + try: + name.encode('ascii') + except UnicodeEncodeError: + if isinstance(charset, str): + charset = Charset(charset) + encoded_name = charset.header_encode(name) + return "%s <%s>" % (encoded_name, address) + else: + quotes = '' + if specialsre.search(name): + quotes = '"' + name = escapesre.sub(r'\\\g<0>', name) + return '%s%s%s <%s>' % (quotes, name, quotes, address) + return address + + + +def getaddresses(fieldvalues): + """Return a list of (REALNAME, EMAIL) for each fieldvalue.""" + all = COMMASPACE.join(fieldvalues) + a = _AddressList(all) + return a.addresslist + + + +ecre = re.compile(r''' + =\? # literal =? + (?P[^?]*?) # non-greedy up to the next ? is the charset + \? # literal ? + (?P[qb]) # either a "q" or a "b", case insensitive + \? # literal ? + (?P.*?) # non-greedy up to the next ?= is the atom + \?= # literal ?= + ''', re.VERBOSE | re.IGNORECASE) + + +def _format_timetuple_and_zone(timetuple, zone): + return '%s, %02d %s %04d %02d:%02d:%02d %s' % ( + ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'][timetuple[6]], + timetuple[2], + ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][timetuple[1] - 1], + timetuple[0], timetuple[3], timetuple[4], timetuple[5], + zone) + +def formatdate(timeval=None, localtime=False, usegmt=False): + """Returns a date string as specified by RFC 2822, e.g.: + + Fri, 09 Nov 2001 01:08:47 -0000 + + Optional timeval if given is a floating point time value as accepted by + gmtime() and localtime(), otherwise the current time is used. + + Optional localtime is a flag that when True, interprets timeval, and + returns a date relative to the local timezone instead of UTC, properly + taking daylight savings time into account. + + Optional argument usegmt means that the timezone is written out as + an ascii string, not numeric one (so "GMT" instead of "+0000"). This + is needed for HTTP, and is only used when localtime==False. + """ + # Note: we cannot use strftime() because that honors the locale and RFC + # 2822 requires that day and month names be the English abbreviations. + if timeval is None: + timeval = time.time() + if localtime: + now = time.localtime(timeval) + # Calculate timezone offset, based on whether the local zone has + # daylight savings time, and whether DST is in effect. + if time.daylight and now[-1]: + offset = time.altzone + else: + offset = time.timezone + hours, minutes = divmod(abs(offset), 3600) + # Remember offset is in seconds west of UTC, but the timezone is in + # minutes east of UTC, so the signs differ. + if offset > 0: + sign = '-' + else: + sign = '+' + zone = '%s%02d%02d' % (sign, hours, minutes // 60) + else: + now = time.gmtime(timeval) + # Timezone offset is always -0000 + if usegmt: + zone = 'GMT' + else: + zone = '-0000' + return _format_timetuple_and_zone(now, zone) + +def format_datetime(dt, usegmt=False): + """Turn a datetime into a date string as specified in RFC 2822. + + If usegmt is True, dt must be an aware datetime with an offset of zero. In + this case 'GMT' will be rendered instead of the normal +0000 required by + RFC2822. This is to support HTTP headers involving date stamps. + """ + now = dt.timetuple() + if usegmt: + if dt.tzinfo is None or dt.tzinfo != datetime.timezone.utc: + raise ValueError("usegmt option requires a UTC datetime") + zone = 'GMT' + elif dt.tzinfo is None: + zone = '-0000' + else: + zone = dt.strftime("%z") + return _format_timetuple_and_zone(now, zone) + + +def make_msgid(idstring=None, domain=None): + """Returns a string suitable for RFC 2822 compliant Message-ID, e.g: + + <20020201195627.33539.96671@nightshade.la.mastaler.com> + + Optional idstring if given is a string used to strengthen the + uniqueness of the message id. Optional domain if given provides the + portion of the message id after the '@'. It defaults to the locally + defined hostname. + """ + timeval = time.time() + utcdate = time.strftime('%Y%m%d%H%M%S', time.gmtime(timeval)) + pid = os.getpid() + randint = random.randrange(100000) + if idstring is None: + idstring = '' + else: + idstring = '.' + idstring + if domain is None: + domain = socket.getfqdn() + msgid = '<%s.%s.%s%s@%s>' % (utcdate, pid, randint, idstring, domain) + return msgid + + +def parsedate_to_datetime(data): + _3to2list = list(_parsedate_tz(data)) + dtuple, tz, = [_3to2list[:-1]] + _3to2list[-1:] + if tz is None: + return datetime.datetime(*dtuple[:6]) + return datetime.datetime(*dtuple[:6], + tzinfo=datetime.timezone(datetime.timedelta(seconds=tz))) + + +def parseaddr(addr): + addrs = _AddressList(addr).addresslist + if not addrs: + return '', '' + return addrs[0] + + +# rfc822.unquote() doesn't properly de-backslash-ify in Python pre-2.3. +def unquote(str): + """Remove quotes from a string.""" + if len(str) > 1: + if str.startswith('"') and str.endswith('"'): + return str[1:-1].replace('\\\\', '\\').replace('\\"', '"') + if str.startswith('<') and str.endswith('>'): + return str[1:-1] + return str + + + +# RFC2231-related functions - parameter encoding and decoding +def decode_rfc2231(s): + """Decode string according to RFC 2231""" + parts = s.split(TICK, 2) + if len(parts) <= 2: + return None, None, s + return parts + + +def encode_rfc2231(s, charset=None, language=None): + """Encode string according to RFC 2231. + + If neither charset nor language is given, then s is returned as-is. If + charset is given but not language, the string is encoded using the empty + string for language. + """ + s = url_quote(s, safe='', encoding=charset or 'ascii') + if charset is None and language is None: + return s + if language is None: + language = '' + return "%s'%s'%s" % (charset, language, s) + + +rfc2231_continuation = re.compile(r'^(?P\w+)\*((?P[0-9]+)\*?)?$', + re.ASCII) + +def decode_params(params): + """Decode parameters list according to RFC 2231. + + params is a sequence of 2-tuples containing (param name, string value). + """ + # Copy params so we don't mess with the original + params = params[:] + new_params = [] + # Map parameter's name to a list of continuations. The values are a + # 3-tuple of the continuation number, the string value, and a flag + # specifying whether a particular segment is %-encoded. + rfc2231_params = {} + name, value = params.pop(0) + new_params.append((name, value)) + while params: + name, value = params.pop(0) + if name.endswith('*'): + encoded = True + else: + encoded = False + value = unquote(value) + mo = rfc2231_continuation.match(name) + if mo: + name, num = mo.group('name', 'num') + if num is not None: + num = int(num) + rfc2231_params.setdefault(name, []).append((num, value, encoded)) + else: + new_params.append((name, '"%s"' % quote(value))) + if rfc2231_params: + for name, continuations in rfc2231_params.items(): + value = [] + extended = False + # Sort by number + continuations.sort() + # And now append all values in numerical order, converting + # %-encodings for the encoded segments. If any of the + # continuation names ends in a *, then the entire string, after + # decoding segments and concatenating, must have the charset and + # language specifiers at the beginning of the string. + for num, s, encoded in continuations: + if encoded: + # Decode as "latin-1", so the characters in s directly + # represent the percent-encoded octet values. + # collapse_rfc2231_value treats this as an octet sequence. + s = url_unquote(s, encoding="latin-1") + extended = True + value.append(s) + value = quote(EMPTYSTRING.join(value)) + if extended: + charset, language, value = decode_rfc2231(value) + new_params.append((name, (charset, language, '"%s"' % value))) + else: + new_params.append((name, '"%s"' % value)) + return new_params + +def collapse_rfc2231_value(value, errors='replace', + fallback_charset='us-ascii'): + if not isinstance(value, tuple) or len(value) != 3: + return unquote(value) + # While value comes to us as a unicode string, we need it to be a bytes + # object. We do not want bytes() normal utf-8 decoder, we want a straight + # interpretation of the string as character bytes. + charset, language, text = value + rawbytes = bytes(text, 'raw-unicode-escape') + try: + return str(rawbytes, charset, errors) + except LookupError: + # charset is not a known codec. + return unquote(text) + + +# +# datetime doesn't provide a localtime function yet, so provide one. Code +# adapted from the patch in issue 9527. This may not be perfect, but it is +# better than not having it. +# + +def localtime(dt=None, isdst=-1): + """Return local time as an aware datetime object. + + If called without arguments, return current time. Otherwise *dt* + argument should be a datetime instance, and it is converted to the + local time zone according to the system time zone database. If *dt* is + naive (that is, dt.tzinfo is None), it is assumed to be in local time. + In this case, a positive or zero value for *isdst* causes localtime to + presume initially that summer time (for example, Daylight Saving Time) + is or is not (respectively) in effect for the specified time. A + negative value for *isdst* causes the localtime() function to attempt + to divine whether summer time is in effect for the specified time. + + """ + if dt is None: + return datetime.datetime.now(datetime.timezone.utc).astimezone() + if dt.tzinfo is not None: + return dt.astimezone() + # We have a naive datetime. Convert to a (localtime) timetuple and pass to + # system mktime together with the isdst hint. System mktime will return + # seconds since epoch. + tm = dt.timetuple()[:-1] + (isdst,) + seconds = time.mktime(tm) + localtm = time.localtime(seconds) + try: + delta = datetime.timedelta(seconds=localtm.tm_gmtoff) + tz = datetime.timezone(delta, localtm.tm_zone) + except AttributeError: + # Compute UTC offset and compare with the value implied by tm_isdst. + # If the values match, use the zone name implied by tm_isdst. + delta = dt - datetime.datetime(*time.gmtime(seconds)[:6]) + dst = time.daylight and localtm.tm_isdst > 0 + gmtoff = -(time.altzone if dst else time.timezone) + if delta == datetime.timedelta(seconds=gmtoff): + tz = datetime.timezone(delta, time.tzname[dst]) + else: + tz = datetime.timezone(delta) + return dt.replace(tzinfo=tz) diff --git a/venv/lib/python3.10/site-packages/future/backports/html/__init__.py b/venv/lib/python3.10/site-packages/future/backports/html/__init__.py new file mode 100644 index 0000000..58e133f --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/html/__init__.py @@ -0,0 +1,27 @@ +""" +General functions for HTML manipulation, backported from Py3. + +Note that this uses Python 2.7 code with the corresponding Python 3 +module names and locations. +""" + +from __future__ import unicode_literals + + +_escape_map = {ord('&'): '&', ord('<'): '<', ord('>'): '>'} +_escape_map_full = {ord('&'): '&', ord('<'): '<', ord('>'): '>', + ord('"'): '"', ord('\''): '''} + +# NB: this is a candidate for a bytes/string polymorphic interface + +def escape(s, quote=True): + """ + Replace special characters "&", "<" and ">" to HTML-safe sequences. + If the optional flag quote is true (the default), the quotation mark + characters, both double quote (") and single quote (') characters are also + translated. + """ + assert not isinstance(s, bytes), 'Pass a unicode string' + if quote: + return s.translate(_escape_map_full) + return s.translate(_escape_map) diff --git a/venv/lib/python3.10/site-packages/future/backports/html/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/html/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cc73032dccc863369cb1044c803cd30e3bb3587f GIT binary patch literal 1051 zcmZuv%}(4f5RS8(T?l^*Ql%bxa8qd^6>JI|Pz6GjdgzZ@gbJsI+KMOfN=sD2y!s~l%nJu!Vuc+T* zog*h)8DIOac+M3~aZ={75i-{}kqW;)e*X?e6XhKL!-9B=h@a4Z?eAB7n~n8Qgat_ztnkq__Ew*5@9GUYg@8C<40 z!>NqxpX#3f3)pZ%RCUT+*kU9V#^TjCs5|z$G%I#*(B8P&O$`|PU<|Dhj9cBaQd)Br z%qO3=c6N_r*A}~7)`mVfFJbGaAdGYA7T*|)&`75aiMk?LGJ*RE-NM@J9^t7)y! z9sl+*tPi|MY0R-Mcr1X!ctjPA0iVV}H(1BPUQoX$*blIgHK`k#CUAkDl{}9*JkZv8 zlhpLc!ZK}pka;F&4*>clfpsR!0Z==s zwHAam91ZN>J6FSL+*EN4?8>^FQ8d@kf6gX2#}5vvh8E%5W?*d;)C#@I7f@6i3U8{s z!G+JYADT5yulf+S^{R&!IH(5;ZJyc**VM=e1wZdf#u8IMl%*5>o5Q1XPw zMn@u*8!(h~$W?UC^YbVbgQ%#dZM(PmEYdI=8wJcMWaualTO1p`C_>}b=gy=YIS8YO=j0vfH0?=(mLX;hzsv#9q^I)ktE9{*b g{FLa}yqUepfbSzX=|vDtXTJTY@ep-T^UtF97fKf}xBvhE literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/html/__pycache__/entities.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/html/__pycache__/entities.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..085752610b4644cb36040fee5fdf0a405124044d GIT binary patch literal 144664 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/html/__pycache__/parser.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/html/__pycache__/parser.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..885a6050c4480197c7ace1e0f14eb7b6a0230dd9 GIT binary patch literal 13554 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/html/entities.py b/venv/lib/python3.10/site-packages/future/backports/html/entities.py new file mode 100644 index 0000000..5c73f69 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/html/entities.py @@ -0,0 +1,2514 @@ +"""HTML character entity references. + +Backported for python-future from Python 3.3 +""" + +from __future__ import (absolute_import, division, + print_function, unicode_literals) +from future.builtins import * + + +# maps the HTML entity name to the Unicode codepoint +name2codepoint = { + 'AElig': 0x00c6, # latin capital letter AE = latin capital ligature AE, U+00C6 ISOlat1 + 'Aacute': 0x00c1, # latin capital letter A with acute, U+00C1 ISOlat1 + 'Acirc': 0x00c2, # latin capital letter A with circumflex, U+00C2 ISOlat1 + 'Agrave': 0x00c0, # latin capital letter A with grave = latin capital letter A grave, U+00C0 ISOlat1 + 'Alpha': 0x0391, # greek capital letter alpha, U+0391 + 'Aring': 0x00c5, # latin capital letter A with ring above = latin capital letter A ring, U+00C5 ISOlat1 + 'Atilde': 0x00c3, # latin capital letter A with tilde, U+00C3 ISOlat1 + 'Auml': 0x00c4, # latin capital letter A with diaeresis, U+00C4 ISOlat1 + 'Beta': 0x0392, # greek capital letter beta, U+0392 + 'Ccedil': 0x00c7, # latin capital letter C with cedilla, U+00C7 ISOlat1 + 'Chi': 0x03a7, # greek capital letter chi, U+03A7 + 'Dagger': 0x2021, # double dagger, U+2021 ISOpub + 'Delta': 0x0394, # greek capital letter delta, U+0394 ISOgrk3 + 'ETH': 0x00d0, # latin capital letter ETH, U+00D0 ISOlat1 + 'Eacute': 0x00c9, # latin capital letter E with acute, U+00C9 ISOlat1 + 'Ecirc': 0x00ca, # latin capital letter E with circumflex, U+00CA ISOlat1 + 'Egrave': 0x00c8, # latin capital letter E with grave, U+00C8 ISOlat1 + 'Epsilon': 0x0395, # greek capital letter epsilon, U+0395 + 'Eta': 0x0397, # greek capital letter eta, U+0397 + 'Euml': 0x00cb, # latin capital letter E with diaeresis, U+00CB ISOlat1 + 'Gamma': 0x0393, # greek capital letter gamma, U+0393 ISOgrk3 + 'Iacute': 0x00cd, # latin capital letter I with acute, U+00CD ISOlat1 + 'Icirc': 0x00ce, # latin capital letter I with circumflex, U+00CE ISOlat1 + 'Igrave': 0x00cc, # latin capital letter I with grave, U+00CC ISOlat1 + 'Iota': 0x0399, # greek capital letter iota, U+0399 + 'Iuml': 0x00cf, # latin capital letter I with diaeresis, U+00CF ISOlat1 + 'Kappa': 0x039a, # greek capital letter kappa, U+039A + 'Lambda': 0x039b, # greek capital letter lambda, U+039B ISOgrk3 + 'Mu': 0x039c, # greek capital letter mu, U+039C + 'Ntilde': 0x00d1, # latin capital letter N with tilde, U+00D1 ISOlat1 + 'Nu': 0x039d, # greek capital letter nu, U+039D + 'OElig': 0x0152, # latin capital ligature OE, U+0152 ISOlat2 + 'Oacute': 0x00d3, # latin capital letter O with acute, U+00D3 ISOlat1 + 'Ocirc': 0x00d4, # latin capital letter O with circumflex, U+00D4 ISOlat1 + 'Ograve': 0x00d2, # latin capital letter O with grave, U+00D2 ISOlat1 + 'Omega': 0x03a9, # greek capital letter omega, U+03A9 ISOgrk3 + 'Omicron': 0x039f, # greek capital letter omicron, U+039F + 'Oslash': 0x00d8, # latin capital letter O with stroke = latin capital letter O slash, U+00D8 ISOlat1 + 'Otilde': 0x00d5, # latin capital letter O with tilde, U+00D5 ISOlat1 + 'Ouml': 0x00d6, # latin capital letter O with diaeresis, U+00D6 ISOlat1 + 'Phi': 0x03a6, # greek capital letter phi, U+03A6 ISOgrk3 + 'Pi': 0x03a0, # greek capital letter pi, U+03A0 ISOgrk3 + 'Prime': 0x2033, # double prime = seconds = inches, U+2033 ISOtech + 'Psi': 0x03a8, # greek capital letter psi, U+03A8 ISOgrk3 + 'Rho': 0x03a1, # greek capital letter rho, U+03A1 + 'Scaron': 0x0160, # latin capital letter S with caron, U+0160 ISOlat2 + 'Sigma': 0x03a3, # greek capital letter sigma, U+03A3 ISOgrk3 + 'THORN': 0x00de, # latin capital letter THORN, U+00DE ISOlat1 + 'Tau': 0x03a4, # greek capital letter tau, U+03A4 + 'Theta': 0x0398, # greek capital letter theta, U+0398 ISOgrk3 + 'Uacute': 0x00da, # latin capital letter U with acute, U+00DA ISOlat1 + 'Ucirc': 0x00db, # latin capital letter U with circumflex, U+00DB ISOlat1 + 'Ugrave': 0x00d9, # latin capital letter U with grave, U+00D9 ISOlat1 + 'Upsilon': 0x03a5, # greek capital letter upsilon, U+03A5 ISOgrk3 + 'Uuml': 0x00dc, # latin capital letter U with diaeresis, U+00DC ISOlat1 + 'Xi': 0x039e, # greek capital letter xi, U+039E ISOgrk3 + 'Yacute': 0x00dd, # latin capital letter Y with acute, U+00DD ISOlat1 + 'Yuml': 0x0178, # latin capital letter Y with diaeresis, U+0178 ISOlat2 + 'Zeta': 0x0396, # greek capital letter zeta, U+0396 + 'aacute': 0x00e1, # latin small letter a with acute, U+00E1 ISOlat1 + 'acirc': 0x00e2, # latin small letter a with circumflex, U+00E2 ISOlat1 + 'acute': 0x00b4, # acute accent = spacing acute, U+00B4 ISOdia + 'aelig': 0x00e6, # latin small letter ae = latin small ligature ae, U+00E6 ISOlat1 + 'agrave': 0x00e0, # latin small letter a with grave = latin small letter a grave, U+00E0 ISOlat1 + 'alefsym': 0x2135, # alef symbol = first transfinite cardinal, U+2135 NEW + 'alpha': 0x03b1, # greek small letter alpha, U+03B1 ISOgrk3 + 'amp': 0x0026, # ampersand, U+0026 ISOnum + 'and': 0x2227, # logical and = wedge, U+2227 ISOtech + 'ang': 0x2220, # angle, U+2220 ISOamso + 'aring': 0x00e5, # latin small letter a with ring above = latin small letter a ring, U+00E5 ISOlat1 + 'asymp': 0x2248, # almost equal to = asymptotic to, U+2248 ISOamsr + 'atilde': 0x00e3, # latin small letter a with tilde, U+00E3 ISOlat1 + 'auml': 0x00e4, # latin small letter a with diaeresis, U+00E4 ISOlat1 + 'bdquo': 0x201e, # double low-9 quotation mark, U+201E NEW + 'beta': 0x03b2, # greek small letter beta, U+03B2 ISOgrk3 + 'brvbar': 0x00a6, # broken bar = broken vertical bar, U+00A6 ISOnum + 'bull': 0x2022, # bullet = black small circle, U+2022 ISOpub + 'cap': 0x2229, # intersection = cap, U+2229 ISOtech + 'ccedil': 0x00e7, # latin small letter c with cedilla, U+00E7 ISOlat1 + 'cedil': 0x00b8, # cedilla = spacing cedilla, U+00B8 ISOdia + 'cent': 0x00a2, # cent sign, U+00A2 ISOnum + 'chi': 0x03c7, # greek small letter chi, U+03C7 ISOgrk3 + 'circ': 0x02c6, # modifier letter circumflex accent, U+02C6 ISOpub + 'clubs': 0x2663, # black club suit = shamrock, U+2663 ISOpub + 'cong': 0x2245, # approximately equal to, U+2245 ISOtech + 'copy': 0x00a9, # copyright sign, U+00A9 ISOnum + 'crarr': 0x21b5, # downwards arrow with corner leftwards = carriage return, U+21B5 NEW + 'cup': 0x222a, # union = cup, U+222A ISOtech + 'curren': 0x00a4, # currency sign, U+00A4 ISOnum + 'dArr': 0x21d3, # downwards double arrow, U+21D3 ISOamsa + 'dagger': 0x2020, # dagger, U+2020 ISOpub + 'darr': 0x2193, # downwards arrow, U+2193 ISOnum + 'deg': 0x00b0, # degree sign, U+00B0 ISOnum + 'delta': 0x03b4, # greek small letter delta, U+03B4 ISOgrk3 + 'diams': 0x2666, # black diamond suit, U+2666 ISOpub + 'divide': 0x00f7, # division sign, U+00F7 ISOnum + 'eacute': 0x00e9, # latin small letter e with acute, U+00E9 ISOlat1 + 'ecirc': 0x00ea, # latin small letter e with circumflex, U+00EA ISOlat1 + 'egrave': 0x00e8, # latin small letter e with grave, U+00E8 ISOlat1 + 'empty': 0x2205, # empty set = null set = diameter, U+2205 ISOamso + 'emsp': 0x2003, # em space, U+2003 ISOpub + 'ensp': 0x2002, # en space, U+2002 ISOpub + 'epsilon': 0x03b5, # greek small letter epsilon, U+03B5 ISOgrk3 + 'equiv': 0x2261, # identical to, U+2261 ISOtech + 'eta': 0x03b7, # greek small letter eta, U+03B7 ISOgrk3 + 'eth': 0x00f0, # latin small letter eth, U+00F0 ISOlat1 + 'euml': 0x00eb, # latin small letter e with diaeresis, U+00EB ISOlat1 + 'euro': 0x20ac, # euro sign, U+20AC NEW + 'exist': 0x2203, # there exists, U+2203 ISOtech + 'fnof': 0x0192, # latin small f with hook = function = florin, U+0192 ISOtech + 'forall': 0x2200, # for all, U+2200 ISOtech + 'frac12': 0x00bd, # vulgar fraction one half = fraction one half, U+00BD ISOnum + 'frac14': 0x00bc, # vulgar fraction one quarter = fraction one quarter, U+00BC ISOnum + 'frac34': 0x00be, # vulgar fraction three quarters = fraction three quarters, U+00BE ISOnum + 'frasl': 0x2044, # fraction slash, U+2044 NEW + 'gamma': 0x03b3, # greek small letter gamma, U+03B3 ISOgrk3 + 'ge': 0x2265, # greater-than or equal to, U+2265 ISOtech + 'gt': 0x003e, # greater-than sign, U+003E ISOnum + 'hArr': 0x21d4, # left right double arrow, U+21D4 ISOamsa + 'harr': 0x2194, # left right arrow, U+2194 ISOamsa + 'hearts': 0x2665, # black heart suit = valentine, U+2665 ISOpub + 'hellip': 0x2026, # horizontal ellipsis = three dot leader, U+2026 ISOpub + 'iacute': 0x00ed, # latin small letter i with acute, U+00ED ISOlat1 + 'icirc': 0x00ee, # latin small letter i with circumflex, U+00EE ISOlat1 + 'iexcl': 0x00a1, # inverted exclamation mark, U+00A1 ISOnum + 'igrave': 0x00ec, # latin small letter i with grave, U+00EC ISOlat1 + 'image': 0x2111, # blackletter capital I = imaginary part, U+2111 ISOamso + 'infin': 0x221e, # infinity, U+221E ISOtech + 'int': 0x222b, # integral, U+222B ISOtech + 'iota': 0x03b9, # greek small letter iota, U+03B9 ISOgrk3 + 'iquest': 0x00bf, # inverted question mark = turned question mark, U+00BF ISOnum + 'isin': 0x2208, # element of, U+2208 ISOtech + 'iuml': 0x00ef, # latin small letter i with diaeresis, U+00EF ISOlat1 + 'kappa': 0x03ba, # greek small letter kappa, U+03BA ISOgrk3 + 'lArr': 0x21d0, # leftwards double arrow, U+21D0 ISOtech + 'lambda': 0x03bb, # greek small letter lambda, U+03BB ISOgrk3 + 'lang': 0x2329, # left-pointing angle bracket = bra, U+2329 ISOtech + 'laquo': 0x00ab, # left-pointing double angle quotation mark = left pointing guillemet, U+00AB ISOnum + 'larr': 0x2190, # leftwards arrow, U+2190 ISOnum + 'lceil': 0x2308, # left ceiling = apl upstile, U+2308 ISOamsc + 'ldquo': 0x201c, # left double quotation mark, U+201C ISOnum + 'le': 0x2264, # less-than or equal to, U+2264 ISOtech + 'lfloor': 0x230a, # left floor = apl downstile, U+230A ISOamsc + 'lowast': 0x2217, # asterisk operator, U+2217 ISOtech + 'loz': 0x25ca, # lozenge, U+25CA ISOpub + 'lrm': 0x200e, # left-to-right mark, U+200E NEW RFC 2070 + 'lsaquo': 0x2039, # single left-pointing angle quotation mark, U+2039 ISO proposed + 'lsquo': 0x2018, # left single quotation mark, U+2018 ISOnum + 'lt': 0x003c, # less-than sign, U+003C ISOnum + 'macr': 0x00af, # macron = spacing macron = overline = APL overbar, U+00AF ISOdia + 'mdash': 0x2014, # em dash, U+2014 ISOpub + 'micro': 0x00b5, # micro sign, U+00B5 ISOnum + 'middot': 0x00b7, # middle dot = Georgian comma = Greek middle dot, U+00B7 ISOnum + 'minus': 0x2212, # minus sign, U+2212 ISOtech + 'mu': 0x03bc, # greek small letter mu, U+03BC ISOgrk3 + 'nabla': 0x2207, # nabla = backward difference, U+2207 ISOtech + 'nbsp': 0x00a0, # no-break space = non-breaking space, U+00A0 ISOnum + 'ndash': 0x2013, # en dash, U+2013 ISOpub + 'ne': 0x2260, # not equal to, U+2260 ISOtech + 'ni': 0x220b, # contains as member, U+220B ISOtech + 'not': 0x00ac, # not sign, U+00AC ISOnum + 'notin': 0x2209, # not an element of, U+2209 ISOtech + 'nsub': 0x2284, # not a subset of, U+2284 ISOamsn + 'ntilde': 0x00f1, # latin small letter n with tilde, U+00F1 ISOlat1 + 'nu': 0x03bd, # greek small letter nu, U+03BD ISOgrk3 + 'oacute': 0x00f3, # latin small letter o with acute, U+00F3 ISOlat1 + 'ocirc': 0x00f4, # latin small letter o with circumflex, U+00F4 ISOlat1 + 'oelig': 0x0153, # latin small ligature oe, U+0153 ISOlat2 + 'ograve': 0x00f2, # latin small letter o with grave, U+00F2 ISOlat1 + 'oline': 0x203e, # overline = spacing overscore, U+203E NEW + 'omega': 0x03c9, # greek small letter omega, U+03C9 ISOgrk3 + 'omicron': 0x03bf, # greek small letter omicron, U+03BF NEW + 'oplus': 0x2295, # circled plus = direct sum, U+2295 ISOamsb + 'or': 0x2228, # logical or = vee, U+2228 ISOtech + 'ordf': 0x00aa, # feminine ordinal indicator, U+00AA ISOnum + 'ordm': 0x00ba, # masculine ordinal indicator, U+00BA ISOnum + 'oslash': 0x00f8, # latin small letter o with stroke, = latin small letter o slash, U+00F8 ISOlat1 + 'otilde': 0x00f5, # latin small letter o with tilde, U+00F5 ISOlat1 + 'otimes': 0x2297, # circled times = vector product, U+2297 ISOamsb + 'ouml': 0x00f6, # latin small letter o with diaeresis, U+00F6 ISOlat1 + 'para': 0x00b6, # pilcrow sign = paragraph sign, U+00B6 ISOnum + 'part': 0x2202, # partial differential, U+2202 ISOtech + 'permil': 0x2030, # per mille sign, U+2030 ISOtech + 'perp': 0x22a5, # up tack = orthogonal to = perpendicular, U+22A5 ISOtech + 'phi': 0x03c6, # greek small letter phi, U+03C6 ISOgrk3 + 'pi': 0x03c0, # greek small letter pi, U+03C0 ISOgrk3 + 'piv': 0x03d6, # greek pi symbol, U+03D6 ISOgrk3 + 'plusmn': 0x00b1, # plus-minus sign = plus-or-minus sign, U+00B1 ISOnum + 'pound': 0x00a3, # pound sign, U+00A3 ISOnum + 'prime': 0x2032, # prime = minutes = feet, U+2032 ISOtech + 'prod': 0x220f, # n-ary product = product sign, U+220F ISOamsb + 'prop': 0x221d, # proportional to, U+221D ISOtech + 'psi': 0x03c8, # greek small letter psi, U+03C8 ISOgrk3 + 'quot': 0x0022, # quotation mark = APL quote, U+0022 ISOnum + 'rArr': 0x21d2, # rightwards double arrow, U+21D2 ISOtech + 'radic': 0x221a, # square root = radical sign, U+221A ISOtech + 'rang': 0x232a, # right-pointing angle bracket = ket, U+232A ISOtech + 'raquo': 0x00bb, # right-pointing double angle quotation mark = right pointing guillemet, U+00BB ISOnum + 'rarr': 0x2192, # rightwards arrow, U+2192 ISOnum + 'rceil': 0x2309, # right ceiling, U+2309 ISOamsc + 'rdquo': 0x201d, # right double quotation mark, U+201D ISOnum + 'real': 0x211c, # blackletter capital R = real part symbol, U+211C ISOamso + 'reg': 0x00ae, # registered sign = registered trade mark sign, U+00AE ISOnum + 'rfloor': 0x230b, # right floor, U+230B ISOamsc + 'rho': 0x03c1, # greek small letter rho, U+03C1 ISOgrk3 + 'rlm': 0x200f, # right-to-left mark, U+200F NEW RFC 2070 + 'rsaquo': 0x203a, # single right-pointing angle quotation mark, U+203A ISO proposed + 'rsquo': 0x2019, # right single quotation mark, U+2019 ISOnum + 'sbquo': 0x201a, # single low-9 quotation mark, U+201A NEW + 'scaron': 0x0161, # latin small letter s with caron, U+0161 ISOlat2 + 'sdot': 0x22c5, # dot operator, U+22C5 ISOamsb + 'sect': 0x00a7, # section sign, U+00A7 ISOnum + 'shy': 0x00ad, # soft hyphen = discretionary hyphen, U+00AD ISOnum + 'sigma': 0x03c3, # greek small letter sigma, U+03C3 ISOgrk3 + 'sigmaf': 0x03c2, # greek small letter final sigma, U+03C2 ISOgrk3 + 'sim': 0x223c, # tilde operator = varies with = similar to, U+223C ISOtech + 'spades': 0x2660, # black spade suit, U+2660 ISOpub + 'sub': 0x2282, # subset of, U+2282 ISOtech + 'sube': 0x2286, # subset of or equal to, U+2286 ISOtech + 'sum': 0x2211, # n-ary sumation, U+2211 ISOamsb + 'sup': 0x2283, # superset of, U+2283 ISOtech + 'sup1': 0x00b9, # superscript one = superscript digit one, U+00B9 ISOnum + 'sup2': 0x00b2, # superscript two = superscript digit two = squared, U+00B2 ISOnum + 'sup3': 0x00b3, # superscript three = superscript digit three = cubed, U+00B3 ISOnum + 'supe': 0x2287, # superset of or equal to, U+2287 ISOtech + 'szlig': 0x00df, # latin small letter sharp s = ess-zed, U+00DF ISOlat1 + 'tau': 0x03c4, # greek small letter tau, U+03C4 ISOgrk3 + 'there4': 0x2234, # therefore, U+2234 ISOtech + 'theta': 0x03b8, # greek small letter theta, U+03B8 ISOgrk3 + 'thetasym': 0x03d1, # greek small letter theta symbol, U+03D1 NEW + 'thinsp': 0x2009, # thin space, U+2009 ISOpub + 'thorn': 0x00fe, # latin small letter thorn with, U+00FE ISOlat1 + 'tilde': 0x02dc, # small tilde, U+02DC ISOdia + 'times': 0x00d7, # multiplication sign, U+00D7 ISOnum + 'trade': 0x2122, # trade mark sign, U+2122 ISOnum + 'uArr': 0x21d1, # upwards double arrow, U+21D1 ISOamsa + 'uacute': 0x00fa, # latin small letter u with acute, U+00FA ISOlat1 + 'uarr': 0x2191, # upwards arrow, U+2191 ISOnum + 'ucirc': 0x00fb, # latin small letter u with circumflex, U+00FB ISOlat1 + 'ugrave': 0x00f9, # latin small letter u with grave, U+00F9 ISOlat1 + 'uml': 0x00a8, # diaeresis = spacing diaeresis, U+00A8 ISOdia + 'upsih': 0x03d2, # greek upsilon with hook symbol, U+03D2 NEW + 'upsilon': 0x03c5, # greek small letter upsilon, U+03C5 ISOgrk3 + 'uuml': 0x00fc, # latin small letter u with diaeresis, U+00FC ISOlat1 + 'weierp': 0x2118, # script capital P = power set = Weierstrass p, U+2118 ISOamso + 'xi': 0x03be, # greek small letter xi, U+03BE ISOgrk3 + 'yacute': 0x00fd, # latin small letter y with acute, U+00FD ISOlat1 + 'yen': 0x00a5, # yen sign = yuan sign, U+00A5 ISOnum + 'yuml': 0x00ff, # latin small letter y with diaeresis, U+00FF ISOlat1 + 'zeta': 0x03b6, # greek small letter zeta, U+03B6 ISOgrk3 + 'zwj': 0x200d, # zero width joiner, U+200D NEW RFC 2070 + 'zwnj': 0x200c, # zero width non-joiner, U+200C NEW RFC 2070 +} + + +# maps the HTML5 named character references to the equivalent Unicode character(s) +html5 = { + 'Aacute': '\xc1', + 'aacute': '\xe1', + 'Aacute;': '\xc1', + 'aacute;': '\xe1', + 'Abreve;': '\u0102', + 'abreve;': '\u0103', + 'ac;': '\u223e', + 'acd;': '\u223f', + 'acE;': '\u223e\u0333', + 'Acirc': '\xc2', + 'acirc': '\xe2', + 'Acirc;': '\xc2', + 'acirc;': '\xe2', + 'acute': '\xb4', + 'acute;': '\xb4', + 'Acy;': '\u0410', + 'acy;': '\u0430', + 'AElig': '\xc6', + 'aelig': '\xe6', + 'AElig;': '\xc6', + 'aelig;': '\xe6', + 'af;': '\u2061', + 'Afr;': '\U0001d504', + 'afr;': '\U0001d51e', + 'Agrave': '\xc0', + 'agrave': '\xe0', + 'Agrave;': '\xc0', + 'agrave;': '\xe0', + 'alefsym;': '\u2135', + 'aleph;': '\u2135', + 'Alpha;': '\u0391', + 'alpha;': '\u03b1', + 'Amacr;': '\u0100', + 'amacr;': '\u0101', + 'amalg;': '\u2a3f', + 'AMP': '&', + 'amp': '&', + 'AMP;': '&', + 'amp;': '&', + 'And;': '\u2a53', + 'and;': '\u2227', + 'andand;': '\u2a55', + 'andd;': '\u2a5c', + 'andslope;': '\u2a58', + 'andv;': '\u2a5a', + 'ang;': '\u2220', + 'ange;': '\u29a4', + 'angle;': '\u2220', + 'angmsd;': '\u2221', + 'angmsdaa;': '\u29a8', + 'angmsdab;': '\u29a9', + 'angmsdac;': '\u29aa', + 'angmsdad;': '\u29ab', + 'angmsdae;': '\u29ac', + 'angmsdaf;': '\u29ad', + 'angmsdag;': '\u29ae', + 'angmsdah;': '\u29af', + 'angrt;': '\u221f', + 'angrtvb;': '\u22be', + 'angrtvbd;': '\u299d', + 'angsph;': '\u2222', + 'angst;': '\xc5', + 'angzarr;': '\u237c', + 'Aogon;': '\u0104', + 'aogon;': '\u0105', + 'Aopf;': '\U0001d538', + 'aopf;': '\U0001d552', + 'ap;': '\u2248', + 'apacir;': '\u2a6f', + 'apE;': '\u2a70', + 'ape;': '\u224a', + 'apid;': '\u224b', + 'apos;': "'", + 'ApplyFunction;': '\u2061', + 'approx;': '\u2248', + 'approxeq;': '\u224a', + 'Aring': '\xc5', + 'aring': '\xe5', + 'Aring;': '\xc5', + 'aring;': '\xe5', + 'Ascr;': '\U0001d49c', + 'ascr;': '\U0001d4b6', + 'Assign;': '\u2254', + 'ast;': '*', + 'asymp;': '\u2248', + 'asympeq;': '\u224d', + 'Atilde': '\xc3', + 'atilde': '\xe3', + 'Atilde;': '\xc3', + 'atilde;': '\xe3', + 'Auml': '\xc4', + 'auml': '\xe4', + 'Auml;': '\xc4', + 'auml;': '\xe4', + 'awconint;': '\u2233', + 'awint;': '\u2a11', + 'backcong;': '\u224c', + 'backepsilon;': '\u03f6', + 'backprime;': '\u2035', + 'backsim;': '\u223d', + 'backsimeq;': '\u22cd', + 'Backslash;': '\u2216', + 'Barv;': '\u2ae7', + 'barvee;': '\u22bd', + 'Barwed;': '\u2306', + 'barwed;': '\u2305', + 'barwedge;': '\u2305', + 'bbrk;': '\u23b5', + 'bbrktbrk;': '\u23b6', + 'bcong;': '\u224c', + 'Bcy;': '\u0411', + 'bcy;': '\u0431', + 'bdquo;': '\u201e', + 'becaus;': '\u2235', + 'Because;': '\u2235', + 'because;': '\u2235', + 'bemptyv;': '\u29b0', + 'bepsi;': '\u03f6', + 'bernou;': '\u212c', + 'Bernoullis;': '\u212c', + 'Beta;': '\u0392', + 'beta;': '\u03b2', + 'beth;': '\u2136', + 'between;': '\u226c', + 'Bfr;': '\U0001d505', + 'bfr;': '\U0001d51f', + 'bigcap;': '\u22c2', + 'bigcirc;': '\u25ef', + 'bigcup;': '\u22c3', + 'bigodot;': '\u2a00', + 'bigoplus;': '\u2a01', + 'bigotimes;': '\u2a02', + 'bigsqcup;': '\u2a06', + 'bigstar;': '\u2605', + 'bigtriangledown;': '\u25bd', + 'bigtriangleup;': '\u25b3', + 'biguplus;': '\u2a04', + 'bigvee;': '\u22c1', + 'bigwedge;': '\u22c0', + 'bkarow;': '\u290d', + 'blacklozenge;': '\u29eb', + 'blacksquare;': '\u25aa', + 'blacktriangle;': '\u25b4', + 'blacktriangledown;': '\u25be', + 'blacktriangleleft;': '\u25c2', + 'blacktriangleright;': '\u25b8', + 'blank;': '\u2423', + 'blk12;': '\u2592', + 'blk14;': '\u2591', + 'blk34;': '\u2593', + 'block;': '\u2588', + 'bne;': '=\u20e5', + 'bnequiv;': '\u2261\u20e5', + 'bNot;': '\u2aed', + 'bnot;': '\u2310', + 'Bopf;': '\U0001d539', + 'bopf;': '\U0001d553', + 'bot;': '\u22a5', + 'bottom;': '\u22a5', + 'bowtie;': '\u22c8', + 'boxbox;': '\u29c9', + 'boxDL;': '\u2557', + 'boxDl;': '\u2556', + 'boxdL;': '\u2555', + 'boxdl;': '\u2510', + 'boxDR;': '\u2554', + 'boxDr;': '\u2553', + 'boxdR;': '\u2552', + 'boxdr;': '\u250c', + 'boxH;': '\u2550', + 'boxh;': '\u2500', + 'boxHD;': '\u2566', + 'boxHd;': '\u2564', + 'boxhD;': '\u2565', + 'boxhd;': '\u252c', + 'boxHU;': '\u2569', + 'boxHu;': '\u2567', + 'boxhU;': '\u2568', + 'boxhu;': '\u2534', + 'boxminus;': '\u229f', + 'boxplus;': '\u229e', + 'boxtimes;': '\u22a0', + 'boxUL;': '\u255d', + 'boxUl;': '\u255c', + 'boxuL;': '\u255b', + 'boxul;': '\u2518', + 'boxUR;': '\u255a', + 'boxUr;': '\u2559', + 'boxuR;': '\u2558', + 'boxur;': '\u2514', + 'boxV;': '\u2551', + 'boxv;': '\u2502', + 'boxVH;': '\u256c', + 'boxVh;': '\u256b', + 'boxvH;': '\u256a', + 'boxvh;': '\u253c', + 'boxVL;': '\u2563', + 'boxVl;': '\u2562', + 'boxvL;': '\u2561', + 'boxvl;': '\u2524', + 'boxVR;': '\u2560', + 'boxVr;': '\u255f', + 'boxvR;': '\u255e', + 'boxvr;': '\u251c', + 'bprime;': '\u2035', + 'Breve;': '\u02d8', + 'breve;': '\u02d8', + 'brvbar': '\xa6', + 'brvbar;': '\xa6', + 'Bscr;': '\u212c', + 'bscr;': '\U0001d4b7', + 'bsemi;': '\u204f', + 'bsim;': '\u223d', + 'bsime;': '\u22cd', + 'bsol;': '\\', + 'bsolb;': '\u29c5', + 'bsolhsub;': '\u27c8', + 'bull;': '\u2022', + 'bullet;': '\u2022', + 'bump;': '\u224e', + 'bumpE;': '\u2aae', + 'bumpe;': '\u224f', + 'Bumpeq;': '\u224e', + 'bumpeq;': '\u224f', + 'Cacute;': '\u0106', + 'cacute;': '\u0107', + 'Cap;': '\u22d2', + 'cap;': '\u2229', + 'capand;': '\u2a44', + 'capbrcup;': '\u2a49', + 'capcap;': '\u2a4b', + 'capcup;': '\u2a47', + 'capdot;': '\u2a40', + 'CapitalDifferentialD;': '\u2145', + 'caps;': '\u2229\ufe00', + 'caret;': '\u2041', + 'caron;': '\u02c7', + 'Cayleys;': '\u212d', + 'ccaps;': '\u2a4d', + 'Ccaron;': '\u010c', + 'ccaron;': '\u010d', + 'Ccedil': '\xc7', + 'ccedil': '\xe7', + 'Ccedil;': '\xc7', + 'ccedil;': '\xe7', + 'Ccirc;': '\u0108', + 'ccirc;': '\u0109', + 'Cconint;': '\u2230', + 'ccups;': '\u2a4c', + 'ccupssm;': '\u2a50', + 'Cdot;': '\u010a', + 'cdot;': '\u010b', + 'cedil': '\xb8', + 'cedil;': '\xb8', + 'Cedilla;': '\xb8', + 'cemptyv;': '\u29b2', + 'cent': '\xa2', + 'cent;': '\xa2', + 'CenterDot;': '\xb7', + 'centerdot;': '\xb7', + 'Cfr;': '\u212d', + 'cfr;': '\U0001d520', + 'CHcy;': '\u0427', + 'chcy;': '\u0447', + 'check;': '\u2713', + 'checkmark;': '\u2713', + 'Chi;': '\u03a7', + 'chi;': '\u03c7', + 'cir;': '\u25cb', + 'circ;': '\u02c6', + 'circeq;': '\u2257', + 'circlearrowleft;': '\u21ba', + 'circlearrowright;': '\u21bb', + 'circledast;': '\u229b', + 'circledcirc;': '\u229a', + 'circleddash;': '\u229d', + 'CircleDot;': '\u2299', + 'circledR;': '\xae', + 'circledS;': '\u24c8', + 'CircleMinus;': '\u2296', + 'CirclePlus;': '\u2295', + 'CircleTimes;': '\u2297', + 'cirE;': '\u29c3', + 'cire;': '\u2257', + 'cirfnint;': '\u2a10', + 'cirmid;': '\u2aef', + 'cirscir;': '\u29c2', + 'ClockwiseContourIntegral;': '\u2232', + 'CloseCurlyDoubleQuote;': '\u201d', + 'CloseCurlyQuote;': '\u2019', + 'clubs;': '\u2663', + 'clubsuit;': '\u2663', + 'Colon;': '\u2237', + 'colon;': ':', + 'Colone;': '\u2a74', + 'colone;': '\u2254', + 'coloneq;': '\u2254', + 'comma;': ',', + 'commat;': '@', + 'comp;': '\u2201', + 'compfn;': '\u2218', + 'complement;': '\u2201', + 'complexes;': '\u2102', + 'cong;': '\u2245', + 'congdot;': '\u2a6d', + 'Congruent;': '\u2261', + 'Conint;': '\u222f', + 'conint;': '\u222e', + 'ContourIntegral;': '\u222e', + 'Copf;': '\u2102', + 'copf;': '\U0001d554', + 'coprod;': '\u2210', + 'Coproduct;': '\u2210', + 'COPY': '\xa9', + 'copy': '\xa9', + 'COPY;': '\xa9', + 'copy;': '\xa9', + 'copysr;': '\u2117', + 'CounterClockwiseContourIntegral;': '\u2233', + 'crarr;': '\u21b5', + 'Cross;': '\u2a2f', + 'cross;': '\u2717', + 'Cscr;': '\U0001d49e', + 'cscr;': '\U0001d4b8', + 'csub;': '\u2acf', + 'csube;': '\u2ad1', + 'csup;': '\u2ad0', + 'csupe;': '\u2ad2', + 'ctdot;': '\u22ef', + 'cudarrl;': '\u2938', + 'cudarrr;': '\u2935', + 'cuepr;': '\u22de', + 'cuesc;': '\u22df', + 'cularr;': '\u21b6', + 'cularrp;': '\u293d', + 'Cup;': '\u22d3', + 'cup;': '\u222a', + 'cupbrcap;': '\u2a48', + 'CupCap;': '\u224d', + 'cupcap;': '\u2a46', + 'cupcup;': '\u2a4a', + 'cupdot;': '\u228d', + 'cupor;': '\u2a45', + 'cups;': '\u222a\ufe00', + 'curarr;': '\u21b7', + 'curarrm;': '\u293c', + 'curlyeqprec;': '\u22de', + 'curlyeqsucc;': '\u22df', + 'curlyvee;': '\u22ce', + 'curlywedge;': '\u22cf', + 'curren': '\xa4', + 'curren;': '\xa4', + 'curvearrowleft;': '\u21b6', + 'curvearrowright;': '\u21b7', + 'cuvee;': '\u22ce', + 'cuwed;': '\u22cf', + 'cwconint;': '\u2232', + 'cwint;': '\u2231', + 'cylcty;': '\u232d', + 'Dagger;': '\u2021', + 'dagger;': '\u2020', + 'daleth;': '\u2138', + 'Darr;': '\u21a1', + 'dArr;': '\u21d3', + 'darr;': '\u2193', + 'dash;': '\u2010', + 'Dashv;': '\u2ae4', + 'dashv;': '\u22a3', + 'dbkarow;': '\u290f', + 'dblac;': '\u02dd', + 'Dcaron;': '\u010e', + 'dcaron;': '\u010f', + 'Dcy;': '\u0414', + 'dcy;': '\u0434', + 'DD;': '\u2145', + 'dd;': '\u2146', + 'ddagger;': '\u2021', + 'ddarr;': '\u21ca', + 'DDotrahd;': '\u2911', + 'ddotseq;': '\u2a77', + 'deg': '\xb0', + 'deg;': '\xb0', + 'Del;': '\u2207', + 'Delta;': '\u0394', + 'delta;': '\u03b4', + 'demptyv;': '\u29b1', + 'dfisht;': '\u297f', + 'Dfr;': '\U0001d507', + 'dfr;': '\U0001d521', + 'dHar;': '\u2965', + 'dharl;': '\u21c3', + 'dharr;': '\u21c2', + 'DiacriticalAcute;': '\xb4', + 'DiacriticalDot;': '\u02d9', + 'DiacriticalDoubleAcute;': '\u02dd', + 'DiacriticalGrave;': '`', + 'DiacriticalTilde;': '\u02dc', + 'diam;': '\u22c4', + 'Diamond;': '\u22c4', + 'diamond;': '\u22c4', + 'diamondsuit;': '\u2666', + 'diams;': '\u2666', + 'die;': '\xa8', + 'DifferentialD;': '\u2146', + 'digamma;': '\u03dd', + 'disin;': '\u22f2', + 'div;': '\xf7', + 'divide': '\xf7', + 'divide;': '\xf7', + 'divideontimes;': '\u22c7', + 'divonx;': '\u22c7', + 'DJcy;': '\u0402', + 'djcy;': '\u0452', + 'dlcorn;': '\u231e', + 'dlcrop;': '\u230d', + 'dollar;': '$', + 'Dopf;': '\U0001d53b', + 'dopf;': '\U0001d555', + 'Dot;': '\xa8', + 'dot;': '\u02d9', + 'DotDot;': '\u20dc', + 'doteq;': '\u2250', + 'doteqdot;': '\u2251', + 'DotEqual;': '\u2250', + 'dotminus;': '\u2238', + 'dotplus;': '\u2214', + 'dotsquare;': '\u22a1', + 'doublebarwedge;': '\u2306', + 'DoubleContourIntegral;': '\u222f', + 'DoubleDot;': '\xa8', + 'DoubleDownArrow;': '\u21d3', + 'DoubleLeftArrow;': '\u21d0', + 'DoubleLeftRightArrow;': '\u21d4', + 'DoubleLeftTee;': '\u2ae4', + 'DoubleLongLeftArrow;': '\u27f8', + 'DoubleLongLeftRightArrow;': '\u27fa', + 'DoubleLongRightArrow;': '\u27f9', + 'DoubleRightArrow;': '\u21d2', + 'DoubleRightTee;': '\u22a8', + 'DoubleUpArrow;': '\u21d1', + 'DoubleUpDownArrow;': '\u21d5', + 'DoubleVerticalBar;': '\u2225', + 'DownArrow;': '\u2193', + 'Downarrow;': '\u21d3', + 'downarrow;': '\u2193', + 'DownArrowBar;': '\u2913', + 'DownArrowUpArrow;': '\u21f5', + 'DownBreve;': '\u0311', + 'downdownarrows;': '\u21ca', + 'downharpoonleft;': '\u21c3', + 'downharpoonright;': '\u21c2', + 'DownLeftRightVector;': '\u2950', + 'DownLeftTeeVector;': '\u295e', + 'DownLeftVector;': '\u21bd', + 'DownLeftVectorBar;': '\u2956', + 'DownRightTeeVector;': '\u295f', + 'DownRightVector;': '\u21c1', + 'DownRightVectorBar;': '\u2957', + 'DownTee;': '\u22a4', + 'DownTeeArrow;': '\u21a7', + 'drbkarow;': '\u2910', + 'drcorn;': '\u231f', + 'drcrop;': '\u230c', + 'Dscr;': '\U0001d49f', + 'dscr;': '\U0001d4b9', + 'DScy;': '\u0405', + 'dscy;': '\u0455', + 'dsol;': '\u29f6', + 'Dstrok;': '\u0110', + 'dstrok;': '\u0111', + 'dtdot;': '\u22f1', + 'dtri;': '\u25bf', + 'dtrif;': '\u25be', + 'duarr;': '\u21f5', + 'duhar;': '\u296f', + 'dwangle;': '\u29a6', + 'DZcy;': '\u040f', + 'dzcy;': '\u045f', + 'dzigrarr;': '\u27ff', + 'Eacute': '\xc9', + 'eacute': '\xe9', + 'Eacute;': '\xc9', + 'eacute;': '\xe9', + 'easter;': '\u2a6e', + 'Ecaron;': '\u011a', + 'ecaron;': '\u011b', + 'ecir;': '\u2256', + 'Ecirc': '\xca', + 'ecirc': '\xea', + 'Ecirc;': '\xca', + 'ecirc;': '\xea', + 'ecolon;': '\u2255', + 'Ecy;': '\u042d', + 'ecy;': '\u044d', + 'eDDot;': '\u2a77', + 'Edot;': '\u0116', + 'eDot;': '\u2251', + 'edot;': '\u0117', + 'ee;': '\u2147', + 'efDot;': '\u2252', + 'Efr;': '\U0001d508', + 'efr;': '\U0001d522', + 'eg;': '\u2a9a', + 'Egrave': '\xc8', + 'egrave': '\xe8', + 'Egrave;': '\xc8', + 'egrave;': '\xe8', + 'egs;': '\u2a96', + 'egsdot;': '\u2a98', + 'el;': '\u2a99', + 'Element;': '\u2208', + 'elinters;': '\u23e7', + 'ell;': '\u2113', + 'els;': '\u2a95', + 'elsdot;': '\u2a97', + 'Emacr;': '\u0112', + 'emacr;': '\u0113', + 'empty;': '\u2205', + 'emptyset;': '\u2205', + 'EmptySmallSquare;': '\u25fb', + 'emptyv;': '\u2205', + 'EmptyVerySmallSquare;': '\u25ab', + 'emsp13;': '\u2004', + 'emsp14;': '\u2005', + 'emsp;': '\u2003', + 'ENG;': '\u014a', + 'eng;': '\u014b', + 'ensp;': '\u2002', + 'Eogon;': '\u0118', + 'eogon;': '\u0119', + 'Eopf;': '\U0001d53c', + 'eopf;': '\U0001d556', + 'epar;': '\u22d5', + 'eparsl;': '\u29e3', + 'eplus;': '\u2a71', + 'epsi;': '\u03b5', + 'Epsilon;': '\u0395', + 'epsilon;': '\u03b5', + 'epsiv;': '\u03f5', + 'eqcirc;': '\u2256', + 'eqcolon;': '\u2255', + 'eqsim;': '\u2242', + 'eqslantgtr;': '\u2a96', + 'eqslantless;': '\u2a95', + 'Equal;': '\u2a75', + 'equals;': '=', + 'EqualTilde;': '\u2242', + 'equest;': '\u225f', + 'Equilibrium;': '\u21cc', + 'equiv;': '\u2261', + 'equivDD;': '\u2a78', + 'eqvparsl;': '\u29e5', + 'erarr;': '\u2971', + 'erDot;': '\u2253', + 'Escr;': '\u2130', + 'escr;': '\u212f', + 'esdot;': '\u2250', + 'Esim;': '\u2a73', + 'esim;': '\u2242', + 'Eta;': '\u0397', + 'eta;': '\u03b7', + 'ETH': '\xd0', + 'eth': '\xf0', + 'ETH;': '\xd0', + 'eth;': '\xf0', + 'Euml': '\xcb', + 'euml': '\xeb', + 'Euml;': '\xcb', + 'euml;': '\xeb', + 'euro;': '\u20ac', + 'excl;': '!', + 'exist;': '\u2203', + 'Exists;': '\u2203', + 'expectation;': '\u2130', + 'ExponentialE;': '\u2147', + 'exponentiale;': '\u2147', + 'fallingdotseq;': '\u2252', + 'Fcy;': '\u0424', + 'fcy;': '\u0444', + 'female;': '\u2640', + 'ffilig;': '\ufb03', + 'fflig;': '\ufb00', + 'ffllig;': '\ufb04', + 'Ffr;': '\U0001d509', + 'ffr;': '\U0001d523', + 'filig;': '\ufb01', + 'FilledSmallSquare;': '\u25fc', + 'FilledVerySmallSquare;': '\u25aa', + 'fjlig;': 'fj', + 'flat;': '\u266d', + 'fllig;': '\ufb02', + 'fltns;': '\u25b1', + 'fnof;': '\u0192', + 'Fopf;': '\U0001d53d', + 'fopf;': '\U0001d557', + 'ForAll;': '\u2200', + 'forall;': '\u2200', + 'fork;': '\u22d4', + 'forkv;': '\u2ad9', + 'Fouriertrf;': '\u2131', + 'fpartint;': '\u2a0d', + 'frac12': '\xbd', + 'frac12;': '\xbd', + 'frac13;': '\u2153', + 'frac14': '\xbc', + 'frac14;': '\xbc', + 'frac15;': '\u2155', + 'frac16;': '\u2159', + 'frac18;': '\u215b', + 'frac23;': '\u2154', + 'frac25;': '\u2156', + 'frac34': '\xbe', + 'frac34;': '\xbe', + 'frac35;': '\u2157', + 'frac38;': '\u215c', + 'frac45;': '\u2158', + 'frac56;': '\u215a', + 'frac58;': '\u215d', + 'frac78;': '\u215e', + 'frasl;': '\u2044', + 'frown;': '\u2322', + 'Fscr;': '\u2131', + 'fscr;': '\U0001d4bb', + 'gacute;': '\u01f5', + 'Gamma;': '\u0393', + 'gamma;': '\u03b3', + 'Gammad;': '\u03dc', + 'gammad;': '\u03dd', + 'gap;': '\u2a86', + 'Gbreve;': '\u011e', + 'gbreve;': '\u011f', + 'Gcedil;': '\u0122', + 'Gcirc;': '\u011c', + 'gcirc;': '\u011d', + 'Gcy;': '\u0413', + 'gcy;': '\u0433', + 'Gdot;': '\u0120', + 'gdot;': '\u0121', + 'gE;': '\u2267', + 'ge;': '\u2265', + 'gEl;': '\u2a8c', + 'gel;': '\u22db', + 'geq;': '\u2265', + 'geqq;': '\u2267', + 'geqslant;': '\u2a7e', + 'ges;': '\u2a7e', + 'gescc;': '\u2aa9', + 'gesdot;': '\u2a80', + 'gesdoto;': '\u2a82', + 'gesdotol;': '\u2a84', + 'gesl;': '\u22db\ufe00', + 'gesles;': '\u2a94', + 'Gfr;': '\U0001d50a', + 'gfr;': '\U0001d524', + 'Gg;': '\u22d9', + 'gg;': '\u226b', + 'ggg;': '\u22d9', + 'gimel;': '\u2137', + 'GJcy;': '\u0403', + 'gjcy;': '\u0453', + 'gl;': '\u2277', + 'gla;': '\u2aa5', + 'glE;': '\u2a92', + 'glj;': '\u2aa4', + 'gnap;': '\u2a8a', + 'gnapprox;': '\u2a8a', + 'gnE;': '\u2269', + 'gne;': '\u2a88', + 'gneq;': '\u2a88', + 'gneqq;': '\u2269', + 'gnsim;': '\u22e7', + 'Gopf;': '\U0001d53e', + 'gopf;': '\U0001d558', + 'grave;': '`', + 'GreaterEqual;': '\u2265', + 'GreaterEqualLess;': '\u22db', + 'GreaterFullEqual;': '\u2267', + 'GreaterGreater;': '\u2aa2', + 'GreaterLess;': '\u2277', + 'GreaterSlantEqual;': '\u2a7e', + 'GreaterTilde;': '\u2273', + 'Gscr;': '\U0001d4a2', + 'gscr;': '\u210a', + 'gsim;': '\u2273', + 'gsime;': '\u2a8e', + 'gsiml;': '\u2a90', + 'GT': '>', + 'gt': '>', + 'GT;': '>', + 'Gt;': '\u226b', + 'gt;': '>', + 'gtcc;': '\u2aa7', + 'gtcir;': '\u2a7a', + 'gtdot;': '\u22d7', + 'gtlPar;': '\u2995', + 'gtquest;': '\u2a7c', + 'gtrapprox;': '\u2a86', + 'gtrarr;': '\u2978', + 'gtrdot;': '\u22d7', + 'gtreqless;': '\u22db', + 'gtreqqless;': '\u2a8c', + 'gtrless;': '\u2277', + 'gtrsim;': '\u2273', + 'gvertneqq;': '\u2269\ufe00', + 'gvnE;': '\u2269\ufe00', + 'Hacek;': '\u02c7', + 'hairsp;': '\u200a', + 'half;': '\xbd', + 'hamilt;': '\u210b', + 'HARDcy;': '\u042a', + 'hardcy;': '\u044a', + 'hArr;': '\u21d4', + 'harr;': '\u2194', + 'harrcir;': '\u2948', + 'harrw;': '\u21ad', + 'Hat;': '^', + 'hbar;': '\u210f', + 'Hcirc;': '\u0124', + 'hcirc;': '\u0125', + 'hearts;': '\u2665', + 'heartsuit;': '\u2665', + 'hellip;': '\u2026', + 'hercon;': '\u22b9', + 'Hfr;': '\u210c', + 'hfr;': '\U0001d525', + 'HilbertSpace;': '\u210b', + 'hksearow;': '\u2925', + 'hkswarow;': '\u2926', + 'hoarr;': '\u21ff', + 'homtht;': '\u223b', + 'hookleftarrow;': '\u21a9', + 'hookrightarrow;': '\u21aa', + 'Hopf;': '\u210d', + 'hopf;': '\U0001d559', + 'horbar;': '\u2015', + 'HorizontalLine;': '\u2500', + 'Hscr;': '\u210b', + 'hscr;': '\U0001d4bd', + 'hslash;': '\u210f', + 'Hstrok;': '\u0126', + 'hstrok;': '\u0127', + 'HumpDownHump;': '\u224e', + 'HumpEqual;': '\u224f', + 'hybull;': '\u2043', + 'hyphen;': '\u2010', + 'Iacute': '\xcd', + 'iacute': '\xed', + 'Iacute;': '\xcd', + 'iacute;': '\xed', + 'ic;': '\u2063', + 'Icirc': '\xce', + 'icirc': '\xee', + 'Icirc;': '\xce', + 'icirc;': '\xee', + 'Icy;': '\u0418', + 'icy;': '\u0438', + 'Idot;': '\u0130', + 'IEcy;': '\u0415', + 'iecy;': '\u0435', + 'iexcl': '\xa1', + 'iexcl;': '\xa1', + 'iff;': '\u21d4', + 'Ifr;': '\u2111', + 'ifr;': '\U0001d526', + 'Igrave': '\xcc', + 'igrave': '\xec', + 'Igrave;': '\xcc', + 'igrave;': '\xec', + 'ii;': '\u2148', + 'iiiint;': '\u2a0c', + 'iiint;': '\u222d', + 'iinfin;': '\u29dc', + 'iiota;': '\u2129', + 'IJlig;': '\u0132', + 'ijlig;': '\u0133', + 'Im;': '\u2111', + 'Imacr;': '\u012a', + 'imacr;': '\u012b', + 'image;': '\u2111', + 'ImaginaryI;': '\u2148', + 'imagline;': '\u2110', + 'imagpart;': '\u2111', + 'imath;': '\u0131', + 'imof;': '\u22b7', + 'imped;': '\u01b5', + 'Implies;': '\u21d2', + 'in;': '\u2208', + 'incare;': '\u2105', + 'infin;': '\u221e', + 'infintie;': '\u29dd', + 'inodot;': '\u0131', + 'Int;': '\u222c', + 'int;': '\u222b', + 'intcal;': '\u22ba', + 'integers;': '\u2124', + 'Integral;': '\u222b', + 'intercal;': '\u22ba', + 'Intersection;': '\u22c2', + 'intlarhk;': '\u2a17', + 'intprod;': '\u2a3c', + 'InvisibleComma;': '\u2063', + 'InvisibleTimes;': '\u2062', + 'IOcy;': '\u0401', + 'iocy;': '\u0451', + 'Iogon;': '\u012e', + 'iogon;': '\u012f', + 'Iopf;': '\U0001d540', + 'iopf;': '\U0001d55a', + 'Iota;': '\u0399', + 'iota;': '\u03b9', + 'iprod;': '\u2a3c', + 'iquest': '\xbf', + 'iquest;': '\xbf', + 'Iscr;': '\u2110', + 'iscr;': '\U0001d4be', + 'isin;': '\u2208', + 'isindot;': '\u22f5', + 'isinE;': '\u22f9', + 'isins;': '\u22f4', + 'isinsv;': '\u22f3', + 'isinv;': '\u2208', + 'it;': '\u2062', + 'Itilde;': '\u0128', + 'itilde;': '\u0129', + 'Iukcy;': '\u0406', + 'iukcy;': '\u0456', + 'Iuml': '\xcf', + 'iuml': '\xef', + 'Iuml;': '\xcf', + 'iuml;': '\xef', + 'Jcirc;': '\u0134', + 'jcirc;': '\u0135', + 'Jcy;': '\u0419', + 'jcy;': '\u0439', + 'Jfr;': '\U0001d50d', + 'jfr;': '\U0001d527', + 'jmath;': '\u0237', + 'Jopf;': '\U0001d541', + 'jopf;': '\U0001d55b', + 'Jscr;': '\U0001d4a5', + 'jscr;': '\U0001d4bf', + 'Jsercy;': '\u0408', + 'jsercy;': '\u0458', + 'Jukcy;': '\u0404', + 'jukcy;': '\u0454', + 'Kappa;': '\u039a', + 'kappa;': '\u03ba', + 'kappav;': '\u03f0', + 'Kcedil;': '\u0136', + 'kcedil;': '\u0137', + 'Kcy;': '\u041a', + 'kcy;': '\u043a', + 'Kfr;': '\U0001d50e', + 'kfr;': '\U0001d528', + 'kgreen;': '\u0138', + 'KHcy;': '\u0425', + 'khcy;': '\u0445', + 'KJcy;': '\u040c', + 'kjcy;': '\u045c', + 'Kopf;': '\U0001d542', + 'kopf;': '\U0001d55c', + 'Kscr;': '\U0001d4a6', + 'kscr;': '\U0001d4c0', + 'lAarr;': '\u21da', + 'Lacute;': '\u0139', + 'lacute;': '\u013a', + 'laemptyv;': '\u29b4', + 'lagran;': '\u2112', + 'Lambda;': '\u039b', + 'lambda;': '\u03bb', + 'Lang;': '\u27ea', + 'lang;': '\u27e8', + 'langd;': '\u2991', + 'langle;': '\u27e8', + 'lap;': '\u2a85', + 'Laplacetrf;': '\u2112', + 'laquo': '\xab', + 'laquo;': '\xab', + 'Larr;': '\u219e', + 'lArr;': '\u21d0', + 'larr;': '\u2190', + 'larrb;': '\u21e4', + 'larrbfs;': '\u291f', + 'larrfs;': '\u291d', + 'larrhk;': '\u21a9', + 'larrlp;': '\u21ab', + 'larrpl;': '\u2939', + 'larrsim;': '\u2973', + 'larrtl;': '\u21a2', + 'lat;': '\u2aab', + 'lAtail;': '\u291b', + 'latail;': '\u2919', + 'late;': '\u2aad', + 'lates;': '\u2aad\ufe00', + 'lBarr;': '\u290e', + 'lbarr;': '\u290c', + 'lbbrk;': '\u2772', + 'lbrace;': '{', + 'lbrack;': '[', + 'lbrke;': '\u298b', + 'lbrksld;': '\u298f', + 'lbrkslu;': '\u298d', + 'Lcaron;': '\u013d', + 'lcaron;': '\u013e', + 'Lcedil;': '\u013b', + 'lcedil;': '\u013c', + 'lceil;': '\u2308', + 'lcub;': '{', + 'Lcy;': '\u041b', + 'lcy;': '\u043b', + 'ldca;': '\u2936', + 'ldquo;': '\u201c', + 'ldquor;': '\u201e', + 'ldrdhar;': '\u2967', + 'ldrushar;': '\u294b', + 'ldsh;': '\u21b2', + 'lE;': '\u2266', + 'le;': '\u2264', + 'LeftAngleBracket;': '\u27e8', + 'LeftArrow;': '\u2190', + 'Leftarrow;': '\u21d0', + 'leftarrow;': '\u2190', + 'LeftArrowBar;': '\u21e4', + 'LeftArrowRightArrow;': '\u21c6', + 'leftarrowtail;': '\u21a2', + 'LeftCeiling;': '\u2308', + 'LeftDoubleBracket;': '\u27e6', + 'LeftDownTeeVector;': '\u2961', + 'LeftDownVector;': '\u21c3', + 'LeftDownVectorBar;': '\u2959', + 'LeftFloor;': '\u230a', + 'leftharpoondown;': '\u21bd', + 'leftharpoonup;': '\u21bc', + 'leftleftarrows;': '\u21c7', + 'LeftRightArrow;': '\u2194', + 'Leftrightarrow;': '\u21d4', + 'leftrightarrow;': '\u2194', + 'leftrightarrows;': '\u21c6', + 'leftrightharpoons;': '\u21cb', + 'leftrightsquigarrow;': '\u21ad', + 'LeftRightVector;': '\u294e', + 'LeftTee;': '\u22a3', + 'LeftTeeArrow;': '\u21a4', + 'LeftTeeVector;': '\u295a', + 'leftthreetimes;': '\u22cb', + 'LeftTriangle;': '\u22b2', + 'LeftTriangleBar;': '\u29cf', + 'LeftTriangleEqual;': '\u22b4', + 'LeftUpDownVector;': '\u2951', + 'LeftUpTeeVector;': '\u2960', + 'LeftUpVector;': '\u21bf', + 'LeftUpVectorBar;': '\u2958', + 'LeftVector;': '\u21bc', + 'LeftVectorBar;': '\u2952', + 'lEg;': '\u2a8b', + 'leg;': '\u22da', + 'leq;': '\u2264', + 'leqq;': '\u2266', + 'leqslant;': '\u2a7d', + 'les;': '\u2a7d', + 'lescc;': '\u2aa8', + 'lesdot;': '\u2a7f', + 'lesdoto;': '\u2a81', + 'lesdotor;': '\u2a83', + 'lesg;': '\u22da\ufe00', + 'lesges;': '\u2a93', + 'lessapprox;': '\u2a85', + 'lessdot;': '\u22d6', + 'lesseqgtr;': '\u22da', + 'lesseqqgtr;': '\u2a8b', + 'LessEqualGreater;': '\u22da', + 'LessFullEqual;': '\u2266', + 'LessGreater;': '\u2276', + 'lessgtr;': '\u2276', + 'LessLess;': '\u2aa1', + 'lesssim;': '\u2272', + 'LessSlantEqual;': '\u2a7d', + 'LessTilde;': '\u2272', + 'lfisht;': '\u297c', + 'lfloor;': '\u230a', + 'Lfr;': '\U0001d50f', + 'lfr;': '\U0001d529', + 'lg;': '\u2276', + 'lgE;': '\u2a91', + 'lHar;': '\u2962', + 'lhard;': '\u21bd', + 'lharu;': '\u21bc', + 'lharul;': '\u296a', + 'lhblk;': '\u2584', + 'LJcy;': '\u0409', + 'ljcy;': '\u0459', + 'Ll;': '\u22d8', + 'll;': '\u226a', + 'llarr;': '\u21c7', + 'llcorner;': '\u231e', + 'Lleftarrow;': '\u21da', + 'llhard;': '\u296b', + 'lltri;': '\u25fa', + 'Lmidot;': '\u013f', + 'lmidot;': '\u0140', + 'lmoust;': '\u23b0', + 'lmoustache;': '\u23b0', + 'lnap;': '\u2a89', + 'lnapprox;': '\u2a89', + 'lnE;': '\u2268', + 'lne;': '\u2a87', + 'lneq;': '\u2a87', + 'lneqq;': '\u2268', + 'lnsim;': '\u22e6', + 'loang;': '\u27ec', + 'loarr;': '\u21fd', + 'lobrk;': '\u27e6', + 'LongLeftArrow;': '\u27f5', + 'Longleftarrow;': '\u27f8', + 'longleftarrow;': '\u27f5', + 'LongLeftRightArrow;': '\u27f7', + 'Longleftrightarrow;': '\u27fa', + 'longleftrightarrow;': '\u27f7', + 'longmapsto;': '\u27fc', + 'LongRightArrow;': '\u27f6', + 'Longrightarrow;': '\u27f9', + 'longrightarrow;': '\u27f6', + 'looparrowleft;': '\u21ab', + 'looparrowright;': '\u21ac', + 'lopar;': '\u2985', + 'Lopf;': '\U0001d543', + 'lopf;': '\U0001d55d', + 'loplus;': '\u2a2d', + 'lotimes;': '\u2a34', + 'lowast;': '\u2217', + 'lowbar;': '_', + 'LowerLeftArrow;': '\u2199', + 'LowerRightArrow;': '\u2198', + 'loz;': '\u25ca', + 'lozenge;': '\u25ca', + 'lozf;': '\u29eb', + 'lpar;': '(', + 'lparlt;': '\u2993', + 'lrarr;': '\u21c6', + 'lrcorner;': '\u231f', + 'lrhar;': '\u21cb', + 'lrhard;': '\u296d', + 'lrm;': '\u200e', + 'lrtri;': '\u22bf', + 'lsaquo;': '\u2039', + 'Lscr;': '\u2112', + 'lscr;': '\U0001d4c1', + 'Lsh;': '\u21b0', + 'lsh;': '\u21b0', + 'lsim;': '\u2272', + 'lsime;': '\u2a8d', + 'lsimg;': '\u2a8f', + 'lsqb;': '[', + 'lsquo;': '\u2018', + 'lsquor;': '\u201a', + 'Lstrok;': '\u0141', + 'lstrok;': '\u0142', + 'LT': '<', + 'lt': '<', + 'LT;': '<', + 'Lt;': '\u226a', + 'lt;': '<', + 'ltcc;': '\u2aa6', + 'ltcir;': '\u2a79', + 'ltdot;': '\u22d6', + 'lthree;': '\u22cb', + 'ltimes;': '\u22c9', + 'ltlarr;': '\u2976', + 'ltquest;': '\u2a7b', + 'ltri;': '\u25c3', + 'ltrie;': '\u22b4', + 'ltrif;': '\u25c2', + 'ltrPar;': '\u2996', + 'lurdshar;': '\u294a', + 'luruhar;': '\u2966', + 'lvertneqq;': '\u2268\ufe00', + 'lvnE;': '\u2268\ufe00', + 'macr': '\xaf', + 'macr;': '\xaf', + 'male;': '\u2642', + 'malt;': '\u2720', + 'maltese;': '\u2720', + 'Map;': '\u2905', + 'map;': '\u21a6', + 'mapsto;': '\u21a6', + 'mapstodown;': '\u21a7', + 'mapstoleft;': '\u21a4', + 'mapstoup;': '\u21a5', + 'marker;': '\u25ae', + 'mcomma;': '\u2a29', + 'Mcy;': '\u041c', + 'mcy;': '\u043c', + 'mdash;': '\u2014', + 'mDDot;': '\u223a', + 'measuredangle;': '\u2221', + 'MediumSpace;': '\u205f', + 'Mellintrf;': '\u2133', + 'Mfr;': '\U0001d510', + 'mfr;': '\U0001d52a', + 'mho;': '\u2127', + 'micro': '\xb5', + 'micro;': '\xb5', + 'mid;': '\u2223', + 'midast;': '*', + 'midcir;': '\u2af0', + 'middot': '\xb7', + 'middot;': '\xb7', + 'minus;': '\u2212', + 'minusb;': '\u229f', + 'minusd;': '\u2238', + 'minusdu;': '\u2a2a', + 'MinusPlus;': '\u2213', + 'mlcp;': '\u2adb', + 'mldr;': '\u2026', + 'mnplus;': '\u2213', + 'models;': '\u22a7', + 'Mopf;': '\U0001d544', + 'mopf;': '\U0001d55e', + 'mp;': '\u2213', + 'Mscr;': '\u2133', + 'mscr;': '\U0001d4c2', + 'mstpos;': '\u223e', + 'Mu;': '\u039c', + 'mu;': '\u03bc', + 'multimap;': '\u22b8', + 'mumap;': '\u22b8', + 'nabla;': '\u2207', + 'Nacute;': '\u0143', + 'nacute;': '\u0144', + 'nang;': '\u2220\u20d2', + 'nap;': '\u2249', + 'napE;': '\u2a70\u0338', + 'napid;': '\u224b\u0338', + 'napos;': '\u0149', + 'napprox;': '\u2249', + 'natur;': '\u266e', + 'natural;': '\u266e', + 'naturals;': '\u2115', + 'nbsp': '\xa0', + 'nbsp;': '\xa0', + 'nbump;': '\u224e\u0338', + 'nbumpe;': '\u224f\u0338', + 'ncap;': '\u2a43', + 'Ncaron;': '\u0147', + 'ncaron;': '\u0148', + 'Ncedil;': '\u0145', + 'ncedil;': '\u0146', + 'ncong;': '\u2247', + 'ncongdot;': '\u2a6d\u0338', + 'ncup;': '\u2a42', + 'Ncy;': '\u041d', + 'ncy;': '\u043d', + 'ndash;': '\u2013', + 'ne;': '\u2260', + 'nearhk;': '\u2924', + 'neArr;': '\u21d7', + 'nearr;': '\u2197', + 'nearrow;': '\u2197', + 'nedot;': '\u2250\u0338', + 'NegativeMediumSpace;': '\u200b', + 'NegativeThickSpace;': '\u200b', + 'NegativeThinSpace;': '\u200b', + 'NegativeVeryThinSpace;': '\u200b', + 'nequiv;': '\u2262', + 'nesear;': '\u2928', + 'nesim;': '\u2242\u0338', + 'NestedGreaterGreater;': '\u226b', + 'NestedLessLess;': '\u226a', + 'NewLine;': '\n', + 'nexist;': '\u2204', + 'nexists;': '\u2204', + 'Nfr;': '\U0001d511', + 'nfr;': '\U0001d52b', + 'ngE;': '\u2267\u0338', + 'nge;': '\u2271', + 'ngeq;': '\u2271', + 'ngeqq;': '\u2267\u0338', + 'ngeqslant;': '\u2a7e\u0338', + 'nges;': '\u2a7e\u0338', + 'nGg;': '\u22d9\u0338', + 'ngsim;': '\u2275', + 'nGt;': '\u226b\u20d2', + 'ngt;': '\u226f', + 'ngtr;': '\u226f', + 'nGtv;': '\u226b\u0338', + 'nhArr;': '\u21ce', + 'nharr;': '\u21ae', + 'nhpar;': '\u2af2', + 'ni;': '\u220b', + 'nis;': '\u22fc', + 'nisd;': '\u22fa', + 'niv;': '\u220b', + 'NJcy;': '\u040a', + 'njcy;': '\u045a', + 'nlArr;': '\u21cd', + 'nlarr;': '\u219a', + 'nldr;': '\u2025', + 'nlE;': '\u2266\u0338', + 'nle;': '\u2270', + 'nLeftarrow;': '\u21cd', + 'nleftarrow;': '\u219a', + 'nLeftrightarrow;': '\u21ce', + 'nleftrightarrow;': '\u21ae', + 'nleq;': '\u2270', + 'nleqq;': '\u2266\u0338', + 'nleqslant;': '\u2a7d\u0338', + 'nles;': '\u2a7d\u0338', + 'nless;': '\u226e', + 'nLl;': '\u22d8\u0338', + 'nlsim;': '\u2274', + 'nLt;': '\u226a\u20d2', + 'nlt;': '\u226e', + 'nltri;': '\u22ea', + 'nltrie;': '\u22ec', + 'nLtv;': '\u226a\u0338', + 'nmid;': '\u2224', + 'NoBreak;': '\u2060', + 'NonBreakingSpace;': '\xa0', + 'Nopf;': '\u2115', + 'nopf;': '\U0001d55f', + 'not': '\xac', + 'Not;': '\u2aec', + 'not;': '\xac', + 'NotCongruent;': '\u2262', + 'NotCupCap;': '\u226d', + 'NotDoubleVerticalBar;': '\u2226', + 'NotElement;': '\u2209', + 'NotEqual;': '\u2260', + 'NotEqualTilde;': '\u2242\u0338', + 'NotExists;': '\u2204', + 'NotGreater;': '\u226f', + 'NotGreaterEqual;': '\u2271', + 'NotGreaterFullEqual;': '\u2267\u0338', + 'NotGreaterGreater;': '\u226b\u0338', + 'NotGreaterLess;': '\u2279', + 'NotGreaterSlantEqual;': '\u2a7e\u0338', + 'NotGreaterTilde;': '\u2275', + 'NotHumpDownHump;': '\u224e\u0338', + 'NotHumpEqual;': '\u224f\u0338', + 'notin;': '\u2209', + 'notindot;': '\u22f5\u0338', + 'notinE;': '\u22f9\u0338', + 'notinva;': '\u2209', + 'notinvb;': '\u22f7', + 'notinvc;': '\u22f6', + 'NotLeftTriangle;': '\u22ea', + 'NotLeftTriangleBar;': '\u29cf\u0338', + 'NotLeftTriangleEqual;': '\u22ec', + 'NotLess;': '\u226e', + 'NotLessEqual;': '\u2270', + 'NotLessGreater;': '\u2278', + 'NotLessLess;': '\u226a\u0338', + 'NotLessSlantEqual;': '\u2a7d\u0338', + 'NotLessTilde;': '\u2274', + 'NotNestedGreaterGreater;': '\u2aa2\u0338', + 'NotNestedLessLess;': '\u2aa1\u0338', + 'notni;': '\u220c', + 'notniva;': '\u220c', + 'notnivb;': '\u22fe', + 'notnivc;': '\u22fd', + 'NotPrecedes;': '\u2280', + 'NotPrecedesEqual;': '\u2aaf\u0338', + 'NotPrecedesSlantEqual;': '\u22e0', + 'NotReverseElement;': '\u220c', + 'NotRightTriangle;': '\u22eb', + 'NotRightTriangleBar;': '\u29d0\u0338', + 'NotRightTriangleEqual;': '\u22ed', + 'NotSquareSubset;': '\u228f\u0338', + 'NotSquareSubsetEqual;': '\u22e2', + 'NotSquareSuperset;': '\u2290\u0338', + 'NotSquareSupersetEqual;': '\u22e3', + 'NotSubset;': '\u2282\u20d2', + 'NotSubsetEqual;': '\u2288', + 'NotSucceeds;': '\u2281', + 'NotSucceedsEqual;': '\u2ab0\u0338', + 'NotSucceedsSlantEqual;': '\u22e1', + 'NotSucceedsTilde;': '\u227f\u0338', + 'NotSuperset;': '\u2283\u20d2', + 'NotSupersetEqual;': '\u2289', + 'NotTilde;': '\u2241', + 'NotTildeEqual;': '\u2244', + 'NotTildeFullEqual;': '\u2247', + 'NotTildeTilde;': '\u2249', + 'NotVerticalBar;': '\u2224', + 'npar;': '\u2226', + 'nparallel;': '\u2226', + 'nparsl;': '\u2afd\u20e5', + 'npart;': '\u2202\u0338', + 'npolint;': '\u2a14', + 'npr;': '\u2280', + 'nprcue;': '\u22e0', + 'npre;': '\u2aaf\u0338', + 'nprec;': '\u2280', + 'npreceq;': '\u2aaf\u0338', + 'nrArr;': '\u21cf', + 'nrarr;': '\u219b', + 'nrarrc;': '\u2933\u0338', + 'nrarrw;': '\u219d\u0338', + 'nRightarrow;': '\u21cf', + 'nrightarrow;': '\u219b', + 'nrtri;': '\u22eb', + 'nrtrie;': '\u22ed', + 'nsc;': '\u2281', + 'nsccue;': '\u22e1', + 'nsce;': '\u2ab0\u0338', + 'Nscr;': '\U0001d4a9', + 'nscr;': '\U0001d4c3', + 'nshortmid;': '\u2224', + 'nshortparallel;': '\u2226', + 'nsim;': '\u2241', + 'nsime;': '\u2244', + 'nsimeq;': '\u2244', + 'nsmid;': '\u2224', + 'nspar;': '\u2226', + 'nsqsube;': '\u22e2', + 'nsqsupe;': '\u22e3', + 'nsub;': '\u2284', + 'nsubE;': '\u2ac5\u0338', + 'nsube;': '\u2288', + 'nsubset;': '\u2282\u20d2', + 'nsubseteq;': '\u2288', + 'nsubseteqq;': '\u2ac5\u0338', + 'nsucc;': '\u2281', + 'nsucceq;': '\u2ab0\u0338', + 'nsup;': '\u2285', + 'nsupE;': '\u2ac6\u0338', + 'nsupe;': '\u2289', + 'nsupset;': '\u2283\u20d2', + 'nsupseteq;': '\u2289', + 'nsupseteqq;': '\u2ac6\u0338', + 'ntgl;': '\u2279', + 'Ntilde': '\xd1', + 'ntilde': '\xf1', + 'Ntilde;': '\xd1', + 'ntilde;': '\xf1', + 'ntlg;': '\u2278', + 'ntriangleleft;': '\u22ea', + 'ntrianglelefteq;': '\u22ec', + 'ntriangleright;': '\u22eb', + 'ntrianglerighteq;': '\u22ed', + 'Nu;': '\u039d', + 'nu;': '\u03bd', + 'num;': '#', + 'numero;': '\u2116', + 'numsp;': '\u2007', + 'nvap;': '\u224d\u20d2', + 'nVDash;': '\u22af', + 'nVdash;': '\u22ae', + 'nvDash;': '\u22ad', + 'nvdash;': '\u22ac', + 'nvge;': '\u2265\u20d2', + 'nvgt;': '>\u20d2', + 'nvHarr;': '\u2904', + 'nvinfin;': '\u29de', + 'nvlArr;': '\u2902', + 'nvle;': '\u2264\u20d2', + 'nvlt;': '<\u20d2', + 'nvltrie;': '\u22b4\u20d2', + 'nvrArr;': '\u2903', + 'nvrtrie;': '\u22b5\u20d2', + 'nvsim;': '\u223c\u20d2', + 'nwarhk;': '\u2923', + 'nwArr;': '\u21d6', + 'nwarr;': '\u2196', + 'nwarrow;': '\u2196', + 'nwnear;': '\u2927', + 'Oacute': '\xd3', + 'oacute': '\xf3', + 'Oacute;': '\xd3', + 'oacute;': '\xf3', + 'oast;': '\u229b', + 'ocir;': '\u229a', + 'Ocirc': '\xd4', + 'ocirc': '\xf4', + 'Ocirc;': '\xd4', + 'ocirc;': '\xf4', + 'Ocy;': '\u041e', + 'ocy;': '\u043e', + 'odash;': '\u229d', + 'Odblac;': '\u0150', + 'odblac;': '\u0151', + 'odiv;': '\u2a38', + 'odot;': '\u2299', + 'odsold;': '\u29bc', + 'OElig;': '\u0152', + 'oelig;': '\u0153', + 'ofcir;': '\u29bf', + 'Ofr;': '\U0001d512', + 'ofr;': '\U0001d52c', + 'ogon;': '\u02db', + 'Ograve': '\xd2', + 'ograve': '\xf2', + 'Ograve;': '\xd2', + 'ograve;': '\xf2', + 'ogt;': '\u29c1', + 'ohbar;': '\u29b5', + 'ohm;': '\u03a9', + 'oint;': '\u222e', + 'olarr;': '\u21ba', + 'olcir;': '\u29be', + 'olcross;': '\u29bb', + 'oline;': '\u203e', + 'olt;': '\u29c0', + 'Omacr;': '\u014c', + 'omacr;': '\u014d', + 'Omega;': '\u03a9', + 'omega;': '\u03c9', + 'Omicron;': '\u039f', + 'omicron;': '\u03bf', + 'omid;': '\u29b6', + 'ominus;': '\u2296', + 'Oopf;': '\U0001d546', + 'oopf;': '\U0001d560', + 'opar;': '\u29b7', + 'OpenCurlyDoubleQuote;': '\u201c', + 'OpenCurlyQuote;': '\u2018', + 'operp;': '\u29b9', + 'oplus;': '\u2295', + 'Or;': '\u2a54', + 'or;': '\u2228', + 'orarr;': '\u21bb', + 'ord;': '\u2a5d', + 'order;': '\u2134', + 'orderof;': '\u2134', + 'ordf': '\xaa', + 'ordf;': '\xaa', + 'ordm': '\xba', + 'ordm;': '\xba', + 'origof;': '\u22b6', + 'oror;': '\u2a56', + 'orslope;': '\u2a57', + 'orv;': '\u2a5b', + 'oS;': '\u24c8', + 'Oscr;': '\U0001d4aa', + 'oscr;': '\u2134', + 'Oslash': '\xd8', + 'oslash': '\xf8', + 'Oslash;': '\xd8', + 'oslash;': '\xf8', + 'osol;': '\u2298', + 'Otilde': '\xd5', + 'otilde': '\xf5', + 'Otilde;': '\xd5', + 'otilde;': '\xf5', + 'Otimes;': '\u2a37', + 'otimes;': '\u2297', + 'otimesas;': '\u2a36', + 'Ouml': '\xd6', + 'ouml': '\xf6', + 'Ouml;': '\xd6', + 'ouml;': '\xf6', + 'ovbar;': '\u233d', + 'OverBar;': '\u203e', + 'OverBrace;': '\u23de', + 'OverBracket;': '\u23b4', + 'OverParenthesis;': '\u23dc', + 'par;': '\u2225', + 'para': '\xb6', + 'para;': '\xb6', + 'parallel;': '\u2225', + 'parsim;': '\u2af3', + 'parsl;': '\u2afd', + 'part;': '\u2202', + 'PartialD;': '\u2202', + 'Pcy;': '\u041f', + 'pcy;': '\u043f', + 'percnt;': '%', + 'period;': '.', + 'permil;': '\u2030', + 'perp;': '\u22a5', + 'pertenk;': '\u2031', + 'Pfr;': '\U0001d513', + 'pfr;': '\U0001d52d', + 'Phi;': '\u03a6', + 'phi;': '\u03c6', + 'phiv;': '\u03d5', + 'phmmat;': '\u2133', + 'phone;': '\u260e', + 'Pi;': '\u03a0', + 'pi;': '\u03c0', + 'pitchfork;': '\u22d4', + 'piv;': '\u03d6', + 'planck;': '\u210f', + 'planckh;': '\u210e', + 'plankv;': '\u210f', + 'plus;': '+', + 'plusacir;': '\u2a23', + 'plusb;': '\u229e', + 'pluscir;': '\u2a22', + 'plusdo;': '\u2214', + 'plusdu;': '\u2a25', + 'pluse;': '\u2a72', + 'PlusMinus;': '\xb1', + 'plusmn': '\xb1', + 'plusmn;': '\xb1', + 'plussim;': '\u2a26', + 'plustwo;': '\u2a27', + 'pm;': '\xb1', + 'Poincareplane;': '\u210c', + 'pointint;': '\u2a15', + 'Popf;': '\u2119', + 'popf;': '\U0001d561', + 'pound': '\xa3', + 'pound;': '\xa3', + 'Pr;': '\u2abb', + 'pr;': '\u227a', + 'prap;': '\u2ab7', + 'prcue;': '\u227c', + 'prE;': '\u2ab3', + 'pre;': '\u2aaf', + 'prec;': '\u227a', + 'precapprox;': '\u2ab7', + 'preccurlyeq;': '\u227c', + 'Precedes;': '\u227a', + 'PrecedesEqual;': '\u2aaf', + 'PrecedesSlantEqual;': '\u227c', + 'PrecedesTilde;': '\u227e', + 'preceq;': '\u2aaf', + 'precnapprox;': '\u2ab9', + 'precneqq;': '\u2ab5', + 'precnsim;': '\u22e8', + 'precsim;': '\u227e', + 'Prime;': '\u2033', + 'prime;': '\u2032', + 'primes;': '\u2119', + 'prnap;': '\u2ab9', + 'prnE;': '\u2ab5', + 'prnsim;': '\u22e8', + 'prod;': '\u220f', + 'Product;': '\u220f', + 'profalar;': '\u232e', + 'profline;': '\u2312', + 'profsurf;': '\u2313', + 'prop;': '\u221d', + 'Proportion;': '\u2237', + 'Proportional;': '\u221d', + 'propto;': '\u221d', + 'prsim;': '\u227e', + 'prurel;': '\u22b0', + 'Pscr;': '\U0001d4ab', + 'pscr;': '\U0001d4c5', + 'Psi;': '\u03a8', + 'psi;': '\u03c8', + 'puncsp;': '\u2008', + 'Qfr;': '\U0001d514', + 'qfr;': '\U0001d52e', + 'qint;': '\u2a0c', + 'Qopf;': '\u211a', + 'qopf;': '\U0001d562', + 'qprime;': '\u2057', + 'Qscr;': '\U0001d4ac', + 'qscr;': '\U0001d4c6', + 'quaternions;': '\u210d', + 'quatint;': '\u2a16', + 'quest;': '?', + 'questeq;': '\u225f', + 'QUOT': '"', + 'quot': '"', + 'QUOT;': '"', + 'quot;': '"', + 'rAarr;': '\u21db', + 'race;': '\u223d\u0331', + 'Racute;': '\u0154', + 'racute;': '\u0155', + 'radic;': '\u221a', + 'raemptyv;': '\u29b3', + 'Rang;': '\u27eb', + 'rang;': '\u27e9', + 'rangd;': '\u2992', + 'range;': '\u29a5', + 'rangle;': '\u27e9', + 'raquo': '\xbb', + 'raquo;': '\xbb', + 'Rarr;': '\u21a0', + 'rArr;': '\u21d2', + 'rarr;': '\u2192', + 'rarrap;': '\u2975', + 'rarrb;': '\u21e5', + 'rarrbfs;': '\u2920', + 'rarrc;': '\u2933', + 'rarrfs;': '\u291e', + 'rarrhk;': '\u21aa', + 'rarrlp;': '\u21ac', + 'rarrpl;': '\u2945', + 'rarrsim;': '\u2974', + 'Rarrtl;': '\u2916', + 'rarrtl;': '\u21a3', + 'rarrw;': '\u219d', + 'rAtail;': '\u291c', + 'ratail;': '\u291a', + 'ratio;': '\u2236', + 'rationals;': '\u211a', + 'RBarr;': '\u2910', + 'rBarr;': '\u290f', + 'rbarr;': '\u290d', + 'rbbrk;': '\u2773', + 'rbrace;': '}', + 'rbrack;': ']', + 'rbrke;': '\u298c', + 'rbrksld;': '\u298e', + 'rbrkslu;': '\u2990', + 'Rcaron;': '\u0158', + 'rcaron;': '\u0159', + 'Rcedil;': '\u0156', + 'rcedil;': '\u0157', + 'rceil;': '\u2309', + 'rcub;': '}', + 'Rcy;': '\u0420', + 'rcy;': '\u0440', + 'rdca;': '\u2937', + 'rdldhar;': '\u2969', + 'rdquo;': '\u201d', + 'rdquor;': '\u201d', + 'rdsh;': '\u21b3', + 'Re;': '\u211c', + 'real;': '\u211c', + 'realine;': '\u211b', + 'realpart;': '\u211c', + 'reals;': '\u211d', + 'rect;': '\u25ad', + 'REG': '\xae', + 'reg': '\xae', + 'REG;': '\xae', + 'reg;': '\xae', + 'ReverseElement;': '\u220b', + 'ReverseEquilibrium;': '\u21cb', + 'ReverseUpEquilibrium;': '\u296f', + 'rfisht;': '\u297d', + 'rfloor;': '\u230b', + 'Rfr;': '\u211c', + 'rfr;': '\U0001d52f', + 'rHar;': '\u2964', + 'rhard;': '\u21c1', + 'rharu;': '\u21c0', + 'rharul;': '\u296c', + 'Rho;': '\u03a1', + 'rho;': '\u03c1', + 'rhov;': '\u03f1', + 'RightAngleBracket;': '\u27e9', + 'RightArrow;': '\u2192', + 'Rightarrow;': '\u21d2', + 'rightarrow;': '\u2192', + 'RightArrowBar;': '\u21e5', + 'RightArrowLeftArrow;': '\u21c4', + 'rightarrowtail;': '\u21a3', + 'RightCeiling;': '\u2309', + 'RightDoubleBracket;': '\u27e7', + 'RightDownTeeVector;': '\u295d', + 'RightDownVector;': '\u21c2', + 'RightDownVectorBar;': '\u2955', + 'RightFloor;': '\u230b', + 'rightharpoondown;': '\u21c1', + 'rightharpoonup;': '\u21c0', + 'rightleftarrows;': '\u21c4', + 'rightleftharpoons;': '\u21cc', + 'rightrightarrows;': '\u21c9', + 'rightsquigarrow;': '\u219d', + 'RightTee;': '\u22a2', + 'RightTeeArrow;': '\u21a6', + 'RightTeeVector;': '\u295b', + 'rightthreetimes;': '\u22cc', + 'RightTriangle;': '\u22b3', + 'RightTriangleBar;': '\u29d0', + 'RightTriangleEqual;': '\u22b5', + 'RightUpDownVector;': '\u294f', + 'RightUpTeeVector;': '\u295c', + 'RightUpVector;': '\u21be', + 'RightUpVectorBar;': '\u2954', + 'RightVector;': '\u21c0', + 'RightVectorBar;': '\u2953', + 'ring;': '\u02da', + 'risingdotseq;': '\u2253', + 'rlarr;': '\u21c4', + 'rlhar;': '\u21cc', + 'rlm;': '\u200f', + 'rmoust;': '\u23b1', + 'rmoustache;': '\u23b1', + 'rnmid;': '\u2aee', + 'roang;': '\u27ed', + 'roarr;': '\u21fe', + 'robrk;': '\u27e7', + 'ropar;': '\u2986', + 'Ropf;': '\u211d', + 'ropf;': '\U0001d563', + 'roplus;': '\u2a2e', + 'rotimes;': '\u2a35', + 'RoundImplies;': '\u2970', + 'rpar;': ')', + 'rpargt;': '\u2994', + 'rppolint;': '\u2a12', + 'rrarr;': '\u21c9', + 'Rrightarrow;': '\u21db', + 'rsaquo;': '\u203a', + 'Rscr;': '\u211b', + 'rscr;': '\U0001d4c7', + 'Rsh;': '\u21b1', + 'rsh;': '\u21b1', + 'rsqb;': ']', + 'rsquo;': '\u2019', + 'rsquor;': '\u2019', + 'rthree;': '\u22cc', + 'rtimes;': '\u22ca', + 'rtri;': '\u25b9', + 'rtrie;': '\u22b5', + 'rtrif;': '\u25b8', + 'rtriltri;': '\u29ce', + 'RuleDelayed;': '\u29f4', + 'ruluhar;': '\u2968', + 'rx;': '\u211e', + 'Sacute;': '\u015a', + 'sacute;': '\u015b', + 'sbquo;': '\u201a', + 'Sc;': '\u2abc', + 'sc;': '\u227b', + 'scap;': '\u2ab8', + 'Scaron;': '\u0160', + 'scaron;': '\u0161', + 'sccue;': '\u227d', + 'scE;': '\u2ab4', + 'sce;': '\u2ab0', + 'Scedil;': '\u015e', + 'scedil;': '\u015f', + 'Scirc;': '\u015c', + 'scirc;': '\u015d', + 'scnap;': '\u2aba', + 'scnE;': '\u2ab6', + 'scnsim;': '\u22e9', + 'scpolint;': '\u2a13', + 'scsim;': '\u227f', + 'Scy;': '\u0421', + 'scy;': '\u0441', + 'sdot;': '\u22c5', + 'sdotb;': '\u22a1', + 'sdote;': '\u2a66', + 'searhk;': '\u2925', + 'seArr;': '\u21d8', + 'searr;': '\u2198', + 'searrow;': '\u2198', + 'sect': '\xa7', + 'sect;': '\xa7', + 'semi;': ';', + 'seswar;': '\u2929', + 'setminus;': '\u2216', + 'setmn;': '\u2216', + 'sext;': '\u2736', + 'Sfr;': '\U0001d516', + 'sfr;': '\U0001d530', + 'sfrown;': '\u2322', + 'sharp;': '\u266f', + 'SHCHcy;': '\u0429', + 'shchcy;': '\u0449', + 'SHcy;': '\u0428', + 'shcy;': '\u0448', + 'ShortDownArrow;': '\u2193', + 'ShortLeftArrow;': '\u2190', + 'shortmid;': '\u2223', + 'shortparallel;': '\u2225', + 'ShortRightArrow;': '\u2192', + 'ShortUpArrow;': '\u2191', + 'shy': '\xad', + 'shy;': '\xad', + 'Sigma;': '\u03a3', + 'sigma;': '\u03c3', + 'sigmaf;': '\u03c2', + 'sigmav;': '\u03c2', + 'sim;': '\u223c', + 'simdot;': '\u2a6a', + 'sime;': '\u2243', + 'simeq;': '\u2243', + 'simg;': '\u2a9e', + 'simgE;': '\u2aa0', + 'siml;': '\u2a9d', + 'simlE;': '\u2a9f', + 'simne;': '\u2246', + 'simplus;': '\u2a24', + 'simrarr;': '\u2972', + 'slarr;': '\u2190', + 'SmallCircle;': '\u2218', + 'smallsetminus;': '\u2216', + 'smashp;': '\u2a33', + 'smeparsl;': '\u29e4', + 'smid;': '\u2223', + 'smile;': '\u2323', + 'smt;': '\u2aaa', + 'smte;': '\u2aac', + 'smtes;': '\u2aac\ufe00', + 'SOFTcy;': '\u042c', + 'softcy;': '\u044c', + 'sol;': '/', + 'solb;': '\u29c4', + 'solbar;': '\u233f', + 'Sopf;': '\U0001d54a', + 'sopf;': '\U0001d564', + 'spades;': '\u2660', + 'spadesuit;': '\u2660', + 'spar;': '\u2225', + 'sqcap;': '\u2293', + 'sqcaps;': '\u2293\ufe00', + 'sqcup;': '\u2294', + 'sqcups;': '\u2294\ufe00', + 'Sqrt;': '\u221a', + 'sqsub;': '\u228f', + 'sqsube;': '\u2291', + 'sqsubset;': '\u228f', + 'sqsubseteq;': '\u2291', + 'sqsup;': '\u2290', + 'sqsupe;': '\u2292', + 'sqsupset;': '\u2290', + 'sqsupseteq;': '\u2292', + 'squ;': '\u25a1', + 'Square;': '\u25a1', + 'square;': '\u25a1', + 'SquareIntersection;': '\u2293', + 'SquareSubset;': '\u228f', + 'SquareSubsetEqual;': '\u2291', + 'SquareSuperset;': '\u2290', + 'SquareSupersetEqual;': '\u2292', + 'SquareUnion;': '\u2294', + 'squarf;': '\u25aa', + 'squf;': '\u25aa', + 'srarr;': '\u2192', + 'Sscr;': '\U0001d4ae', + 'sscr;': '\U0001d4c8', + 'ssetmn;': '\u2216', + 'ssmile;': '\u2323', + 'sstarf;': '\u22c6', + 'Star;': '\u22c6', + 'star;': '\u2606', + 'starf;': '\u2605', + 'straightepsilon;': '\u03f5', + 'straightphi;': '\u03d5', + 'strns;': '\xaf', + 'Sub;': '\u22d0', + 'sub;': '\u2282', + 'subdot;': '\u2abd', + 'subE;': '\u2ac5', + 'sube;': '\u2286', + 'subedot;': '\u2ac3', + 'submult;': '\u2ac1', + 'subnE;': '\u2acb', + 'subne;': '\u228a', + 'subplus;': '\u2abf', + 'subrarr;': '\u2979', + 'Subset;': '\u22d0', + 'subset;': '\u2282', + 'subseteq;': '\u2286', + 'subseteqq;': '\u2ac5', + 'SubsetEqual;': '\u2286', + 'subsetneq;': '\u228a', + 'subsetneqq;': '\u2acb', + 'subsim;': '\u2ac7', + 'subsub;': '\u2ad5', + 'subsup;': '\u2ad3', + 'succ;': '\u227b', + 'succapprox;': '\u2ab8', + 'succcurlyeq;': '\u227d', + 'Succeeds;': '\u227b', + 'SucceedsEqual;': '\u2ab0', + 'SucceedsSlantEqual;': '\u227d', + 'SucceedsTilde;': '\u227f', + 'succeq;': '\u2ab0', + 'succnapprox;': '\u2aba', + 'succneqq;': '\u2ab6', + 'succnsim;': '\u22e9', + 'succsim;': '\u227f', + 'SuchThat;': '\u220b', + 'Sum;': '\u2211', + 'sum;': '\u2211', + 'sung;': '\u266a', + 'sup1': '\xb9', + 'sup1;': '\xb9', + 'sup2': '\xb2', + 'sup2;': '\xb2', + 'sup3': '\xb3', + 'sup3;': '\xb3', + 'Sup;': '\u22d1', + 'sup;': '\u2283', + 'supdot;': '\u2abe', + 'supdsub;': '\u2ad8', + 'supE;': '\u2ac6', + 'supe;': '\u2287', + 'supedot;': '\u2ac4', + 'Superset;': '\u2283', + 'SupersetEqual;': '\u2287', + 'suphsol;': '\u27c9', + 'suphsub;': '\u2ad7', + 'suplarr;': '\u297b', + 'supmult;': '\u2ac2', + 'supnE;': '\u2acc', + 'supne;': '\u228b', + 'supplus;': '\u2ac0', + 'Supset;': '\u22d1', + 'supset;': '\u2283', + 'supseteq;': '\u2287', + 'supseteqq;': '\u2ac6', + 'supsetneq;': '\u228b', + 'supsetneqq;': '\u2acc', + 'supsim;': '\u2ac8', + 'supsub;': '\u2ad4', + 'supsup;': '\u2ad6', + 'swarhk;': '\u2926', + 'swArr;': '\u21d9', + 'swarr;': '\u2199', + 'swarrow;': '\u2199', + 'swnwar;': '\u292a', + 'szlig': '\xdf', + 'szlig;': '\xdf', + 'Tab;': '\t', + 'target;': '\u2316', + 'Tau;': '\u03a4', + 'tau;': '\u03c4', + 'tbrk;': '\u23b4', + 'Tcaron;': '\u0164', + 'tcaron;': '\u0165', + 'Tcedil;': '\u0162', + 'tcedil;': '\u0163', + 'Tcy;': '\u0422', + 'tcy;': '\u0442', + 'tdot;': '\u20db', + 'telrec;': '\u2315', + 'Tfr;': '\U0001d517', + 'tfr;': '\U0001d531', + 'there4;': '\u2234', + 'Therefore;': '\u2234', + 'therefore;': '\u2234', + 'Theta;': '\u0398', + 'theta;': '\u03b8', + 'thetasym;': '\u03d1', + 'thetav;': '\u03d1', + 'thickapprox;': '\u2248', + 'thicksim;': '\u223c', + 'ThickSpace;': '\u205f\u200a', + 'thinsp;': '\u2009', + 'ThinSpace;': '\u2009', + 'thkap;': '\u2248', + 'thksim;': '\u223c', + 'THORN': '\xde', + 'thorn': '\xfe', + 'THORN;': '\xde', + 'thorn;': '\xfe', + 'Tilde;': '\u223c', + 'tilde;': '\u02dc', + 'TildeEqual;': '\u2243', + 'TildeFullEqual;': '\u2245', + 'TildeTilde;': '\u2248', + 'times': '\xd7', + 'times;': '\xd7', + 'timesb;': '\u22a0', + 'timesbar;': '\u2a31', + 'timesd;': '\u2a30', + 'tint;': '\u222d', + 'toea;': '\u2928', + 'top;': '\u22a4', + 'topbot;': '\u2336', + 'topcir;': '\u2af1', + 'Topf;': '\U0001d54b', + 'topf;': '\U0001d565', + 'topfork;': '\u2ada', + 'tosa;': '\u2929', + 'tprime;': '\u2034', + 'TRADE;': '\u2122', + 'trade;': '\u2122', + 'triangle;': '\u25b5', + 'triangledown;': '\u25bf', + 'triangleleft;': '\u25c3', + 'trianglelefteq;': '\u22b4', + 'triangleq;': '\u225c', + 'triangleright;': '\u25b9', + 'trianglerighteq;': '\u22b5', + 'tridot;': '\u25ec', + 'trie;': '\u225c', + 'triminus;': '\u2a3a', + 'TripleDot;': '\u20db', + 'triplus;': '\u2a39', + 'trisb;': '\u29cd', + 'tritime;': '\u2a3b', + 'trpezium;': '\u23e2', + 'Tscr;': '\U0001d4af', + 'tscr;': '\U0001d4c9', + 'TScy;': '\u0426', + 'tscy;': '\u0446', + 'TSHcy;': '\u040b', + 'tshcy;': '\u045b', + 'Tstrok;': '\u0166', + 'tstrok;': '\u0167', + 'twixt;': '\u226c', + 'twoheadleftarrow;': '\u219e', + 'twoheadrightarrow;': '\u21a0', + 'Uacute': '\xda', + 'uacute': '\xfa', + 'Uacute;': '\xda', + 'uacute;': '\xfa', + 'Uarr;': '\u219f', + 'uArr;': '\u21d1', + 'uarr;': '\u2191', + 'Uarrocir;': '\u2949', + 'Ubrcy;': '\u040e', + 'ubrcy;': '\u045e', + 'Ubreve;': '\u016c', + 'ubreve;': '\u016d', + 'Ucirc': '\xdb', + 'ucirc': '\xfb', + 'Ucirc;': '\xdb', + 'ucirc;': '\xfb', + 'Ucy;': '\u0423', + 'ucy;': '\u0443', + 'udarr;': '\u21c5', + 'Udblac;': '\u0170', + 'udblac;': '\u0171', + 'udhar;': '\u296e', + 'ufisht;': '\u297e', + 'Ufr;': '\U0001d518', + 'ufr;': '\U0001d532', + 'Ugrave': '\xd9', + 'ugrave': '\xf9', + 'Ugrave;': '\xd9', + 'ugrave;': '\xf9', + 'uHar;': '\u2963', + 'uharl;': '\u21bf', + 'uharr;': '\u21be', + 'uhblk;': '\u2580', + 'ulcorn;': '\u231c', + 'ulcorner;': '\u231c', + 'ulcrop;': '\u230f', + 'ultri;': '\u25f8', + 'Umacr;': '\u016a', + 'umacr;': '\u016b', + 'uml': '\xa8', + 'uml;': '\xa8', + 'UnderBar;': '_', + 'UnderBrace;': '\u23df', + 'UnderBracket;': '\u23b5', + 'UnderParenthesis;': '\u23dd', + 'Union;': '\u22c3', + 'UnionPlus;': '\u228e', + 'Uogon;': '\u0172', + 'uogon;': '\u0173', + 'Uopf;': '\U0001d54c', + 'uopf;': '\U0001d566', + 'UpArrow;': '\u2191', + 'Uparrow;': '\u21d1', + 'uparrow;': '\u2191', + 'UpArrowBar;': '\u2912', + 'UpArrowDownArrow;': '\u21c5', + 'UpDownArrow;': '\u2195', + 'Updownarrow;': '\u21d5', + 'updownarrow;': '\u2195', + 'UpEquilibrium;': '\u296e', + 'upharpoonleft;': '\u21bf', + 'upharpoonright;': '\u21be', + 'uplus;': '\u228e', + 'UpperLeftArrow;': '\u2196', + 'UpperRightArrow;': '\u2197', + 'Upsi;': '\u03d2', + 'upsi;': '\u03c5', + 'upsih;': '\u03d2', + 'Upsilon;': '\u03a5', + 'upsilon;': '\u03c5', + 'UpTee;': '\u22a5', + 'UpTeeArrow;': '\u21a5', + 'upuparrows;': '\u21c8', + 'urcorn;': '\u231d', + 'urcorner;': '\u231d', + 'urcrop;': '\u230e', + 'Uring;': '\u016e', + 'uring;': '\u016f', + 'urtri;': '\u25f9', + 'Uscr;': '\U0001d4b0', + 'uscr;': '\U0001d4ca', + 'utdot;': '\u22f0', + 'Utilde;': '\u0168', + 'utilde;': '\u0169', + 'utri;': '\u25b5', + 'utrif;': '\u25b4', + 'uuarr;': '\u21c8', + 'Uuml': '\xdc', + 'uuml': '\xfc', + 'Uuml;': '\xdc', + 'uuml;': '\xfc', + 'uwangle;': '\u29a7', + 'vangrt;': '\u299c', + 'varepsilon;': '\u03f5', + 'varkappa;': '\u03f0', + 'varnothing;': '\u2205', + 'varphi;': '\u03d5', + 'varpi;': '\u03d6', + 'varpropto;': '\u221d', + 'vArr;': '\u21d5', + 'varr;': '\u2195', + 'varrho;': '\u03f1', + 'varsigma;': '\u03c2', + 'varsubsetneq;': '\u228a\ufe00', + 'varsubsetneqq;': '\u2acb\ufe00', + 'varsupsetneq;': '\u228b\ufe00', + 'varsupsetneqq;': '\u2acc\ufe00', + 'vartheta;': '\u03d1', + 'vartriangleleft;': '\u22b2', + 'vartriangleright;': '\u22b3', + 'Vbar;': '\u2aeb', + 'vBar;': '\u2ae8', + 'vBarv;': '\u2ae9', + 'Vcy;': '\u0412', + 'vcy;': '\u0432', + 'VDash;': '\u22ab', + 'Vdash;': '\u22a9', + 'vDash;': '\u22a8', + 'vdash;': '\u22a2', + 'Vdashl;': '\u2ae6', + 'Vee;': '\u22c1', + 'vee;': '\u2228', + 'veebar;': '\u22bb', + 'veeeq;': '\u225a', + 'vellip;': '\u22ee', + 'Verbar;': '\u2016', + 'verbar;': '|', + 'Vert;': '\u2016', + 'vert;': '|', + 'VerticalBar;': '\u2223', + 'VerticalLine;': '|', + 'VerticalSeparator;': '\u2758', + 'VerticalTilde;': '\u2240', + 'VeryThinSpace;': '\u200a', + 'Vfr;': '\U0001d519', + 'vfr;': '\U0001d533', + 'vltri;': '\u22b2', + 'vnsub;': '\u2282\u20d2', + 'vnsup;': '\u2283\u20d2', + 'Vopf;': '\U0001d54d', + 'vopf;': '\U0001d567', + 'vprop;': '\u221d', + 'vrtri;': '\u22b3', + 'Vscr;': '\U0001d4b1', + 'vscr;': '\U0001d4cb', + 'vsubnE;': '\u2acb\ufe00', + 'vsubne;': '\u228a\ufe00', + 'vsupnE;': '\u2acc\ufe00', + 'vsupne;': '\u228b\ufe00', + 'Vvdash;': '\u22aa', + 'vzigzag;': '\u299a', + 'Wcirc;': '\u0174', + 'wcirc;': '\u0175', + 'wedbar;': '\u2a5f', + 'Wedge;': '\u22c0', + 'wedge;': '\u2227', + 'wedgeq;': '\u2259', + 'weierp;': '\u2118', + 'Wfr;': '\U0001d51a', + 'wfr;': '\U0001d534', + 'Wopf;': '\U0001d54e', + 'wopf;': '\U0001d568', + 'wp;': '\u2118', + 'wr;': '\u2240', + 'wreath;': '\u2240', + 'Wscr;': '\U0001d4b2', + 'wscr;': '\U0001d4cc', + 'xcap;': '\u22c2', + 'xcirc;': '\u25ef', + 'xcup;': '\u22c3', + 'xdtri;': '\u25bd', + 'Xfr;': '\U0001d51b', + 'xfr;': '\U0001d535', + 'xhArr;': '\u27fa', + 'xharr;': '\u27f7', + 'Xi;': '\u039e', + 'xi;': '\u03be', + 'xlArr;': '\u27f8', + 'xlarr;': '\u27f5', + 'xmap;': '\u27fc', + 'xnis;': '\u22fb', + 'xodot;': '\u2a00', + 'Xopf;': '\U0001d54f', + 'xopf;': '\U0001d569', + 'xoplus;': '\u2a01', + 'xotime;': '\u2a02', + 'xrArr;': '\u27f9', + 'xrarr;': '\u27f6', + 'Xscr;': '\U0001d4b3', + 'xscr;': '\U0001d4cd', + 'xsqcup;': '\u2a06', + 'xuplus;': '\u2a04', + 'xutri;': '\u25b3', + 'xvee;': '\u22c1', + 'xwedge;': '\u22c0', + 'Yacute': '\xdd', + 'yacute': '\xfd', + 'Yacute;': '\xdd', + 'yacute;': '\xfd', + 'YAcy;': '\u042f', + 'yacy;': '\u044f', + 'Ycirc;': '\u0176', + 'ycirc;': '\u0177', + 'Ycy;': '\u042b', + 'ycy;': '\u044b', + 'yen': '\xa5', + 'yen;': '\xa5', + 'Yfr;': '\U0001d51c', + 'yfr;': '\U0001d536', + 'YIcy;': '\u0407', + 'yicy;': '\u0457', + 'Yopf;': '\U0001d550', + 'yopf;': '\U0001d56a', + 'Yscr;': '\U0001d4b4', + 'yscr;': '\U0001d4ce', + 'YUcy;': '\u042e', + 'yucy;': '\u044e', + 'yuml': '\xff', + 'Yuml;': '\u0178', + 'yuml;': '\xff', + 'Zacute;': '\u0179', + 'zacute;': '\u017a', + 'Zcaron;': '\u017d', + 'zcaron;': '\u017e', + 'Zcy;': '\u0417', + 'zcy;': '\u0437', + 'Zdot;': '\u017b', + 'zdot;': '\u017c', + 'zeetrf;': '\u2128', + 'ZeroWidthSpace;': '\u200b', + 'Zeta;': '\u0396', + 'zeta;': '\u03b6', + 'Zfr;': '\u2128', + 'zfr;': '\U0001d537', + 'ZHcy;': '\u0416', + 'zhcy;': '\u0436', + 'zigrarr;': '\u21dd', + 'Zopf;': '\u2124', + 'zopf;': '\U0001d56b', + 'Zscr;': '\U0001d4b5', + 'zscr;': '\U0001d4cf', + 'zwj;': '\u200d', + 'zwnj;': '\u200c', +} + +# maps the Unicode codepoint to the HTML entity name +codepoint2name = {} + +# maps the HTML entity name to the character +# (or a character reference if the character is outside the Latin-1 range) +entitydefs = {} + +for (name, codepoint) in name2codepoint.items(): + codepoint2name[codepoint] = name + entitydefs[name] = chr(codepoint) + +del name, codepoint diff --git a/venv/lib/python3.10/site-packages/future/backports/html/parser.py b/venv/lib/python3.10/site-packages/future/backports/html/parser.py new file mode 100644 index 0000000..fb65263 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/html/parser.py @@ -0,0 +1,536 @@ +"""A parser for HTML and XHTML. + +Backported for python-future from Python 3.3. +""" + +# This file is based on sgmllib.py, but the API is slightly different. + +# XXX There should be a way to distinguish between PCDATA (parsed +# character data -- the normal case), RCDATA (replaceable character +# data -- only char and entity references and end tags are special) +# and CDATA (character data -- only end tags are special). + +from __future__ import (absolute_import, division, + print_function, unicode_literals) +from future.builtins import * +from future.backports import _markupbase +import re +import warnings + +# Regular expressions used for parsing + +interesting_normal = re.compile('[&<]') +incomplete = re.compile('&[a-zA-Z#]') + +entityref = re.compile('&([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]') +charref = re.compile('&#(?:[0-9]+|[xX][0-9a-fA-F]+)[^0-9a-fA-F]') + +starttagopen = re.compile('<[a-zA-Z]') +piclose = re.compile('>') +commentclose = re.compile(r'--\s*>') +tagfind = re.compile('([a-zA-Z][-.a-zA-Z0-9:_]*)(?:\s|/(?!>))*') +# see http://www.w3.org/TR/html5/tokenization.html#tag-open-state +# and http://www.w3.org/TR/html5/tokenization.html#tag-name-state +tagfind_tolerant = re.compile('[a-zA-Z][^\t\n\r\f />\x00]*') +# Note: +# 1) the strict attrfind isn't really strict, but we can't make it +# correctly strict without breaking backward compatibility; +# 2) if you change attrfind remember to update locatestarttagend too; +# 3) if you change attrfind and/or locatestarttagend the parser will +# explode, so don't do it. +attrfind = re.compile( + r'\s*([a-zA-Z_][-.:a-zA-Z_0-9]*)(\s*=\s*' + r'(\'[^\']*\'|"[^"]*"|[^\s"\'=<>`]*))?') +attrfind_tolerant = re.compile( + r'((?<=[\'"\s/])[^\s/>][^\s/=>]*)(\s*=+\s*' + r'(\'[^\']*\'|"[^"]*"|(?![\'"])[^>\s]*))?(?:\s|/(?!>))*') +locatestarttagend = re.compile(r""" + <[a-zA-Z][-.a-zA-Z0-9:_]* # tag name + (?:\s+ # whitespace before attribute name + (?:[a-zA-Z_][-.:a-zA-Z0-9_]* # attribute name + (?:\s*=\s* # value indicator + (?:'[^']*' # LITA-enclosed value + |\"[^\"]*\" # LIT-enclosed value + |[^'\">\s]+ # bare value + ) + )? + ) + )* + \s* # trailing whitespace +""", re.VERBOSE) +locatestarttagend_tolerant = re.compile(r""" + <[a-zA-Z][-.a-zA-Z0-9:_]* # tag name + (?:[\s/]* # optional whitespace before attribute name + (?:(?<=['"\s/])[^\s/>][^\s/=>]* # attribute name + (?:\s*=+\s* # value indicator + (?:'[^']*' # LITA-enclosed value + |"[^"]*" # LIT-enclosed value + |(?!['"])[^>\s]* # bare value + ) + (?:\s*,)* # possibly followed by a comma + )?(?:\s|/(?!>))* + )* + )? + \s* # trailing whitespace +""", re.VERBOSE) +endendtag = re.compile('>') +# the HTML 5 spec, section 8.1.2.2, doesn't allow spaces between +# ') + + +class HTMLParseError(Exception): + """Exception raised for all parse errors.""" + + def __init__(self, msg, position=(None, None)): + assert msg + self.msg = msg + self.lineno = position[0] + self.offset = position[1] + + def __str__(self): + result = self.msg + if self.lineno is not None: + result = result + ", at line %d" % self.lineno + if self.offset is not None: + result = result + ", column %d" % (self.offset + 1) + return result + + +class HTMLParser(_markupbase.ParserBase): + """Find tags and other markup and call handler functions. + + Usage: + p = HTMLParser() + p.feed(data) + ... + p.close() + + Start tags are handled by calling self.handle_starttag() or + self.handle_startendtag(); end tags by self.handle_endtag(). The + data between tags is passed from the parser to the derived class + by calling self.handle_data() with the data as argument (the data + may be split up in arbitrary chunks). Entity references are + passed by calling self.handle_entityref() with the entity + reference as the argument. Numeric character references are + passed to self.handle_charref() with the string containing the + reference as the argument. + """ + + CDATA_CONTENT_ELEMENTS = ("script", "style") + + def __init__(self, strict=False): + """Initialize and reset this instance. + + If strict is set to False (the default) the parser will parse invalid + markup, otherwise it will raise an error. Note that the strict mode + is deprecated. + """ + if strict: + warnings.warn("The strict mode is deprecated.", + DeprecationWarning, stacklevel=2) + self.strict = strict + self.reset() + + def reset(self): + """Reset this instance. Loses all unprocessed data.""" + self.rawdata = '' + self.lasttag = '???' + self.interesting = interesting_normal + self.cdata_elem = None + _markupbase.ParserBase.reset(self) + + def feed(self, data): + r"""Feed data to the parser. + + Call this as often as you want, with as little or as much text + as you want (may include '\n'). + """ + self.rawdata = self.rawdata + data + self.goahead(0) + + def close(self): + """Handle any buffered data.""" + self.goahead(1) + + def error(self, message): + raise HTMLParseError(message, self.getpos()) + + __starttag_text = None + + def get_starttag_text(self): + """Return full source of start tag: '<...>'.""" + return self.__starttag_text + + def set_cdata_mode(self, elem): + self.cdata_elem = elem.lower() + self.interesting = re.compile(r'' % self.cdata_elem, re.I) + + def clear_cdata_mode(self): + self.interesting = interesting_normal + self.cdata_elem = None + + # Internal -- handle data as far as reasonable. May leave state + # and data to be processed by a subsequent call. If 'end' is + # true, force handling all data as if followed by EOF marker. + def goahead(self, end): + rawdata = self.rawdata + i = 0 + n = len(rawdata) + while i < n: + match = self.interesting.search(rawdata, i) # < or & + if match: + j = match.start() + else: + if self.cdata_elem: + break + j = n + if i < j: self.handle_data(rawdata[i:j]) + i = self.updatepos(i, j) + if i == n: break + startswith = rawdata.startswith + if startswith('<', i): + if starttagopen.match(rawdata, i): # < + letter + k = self.parse_starttag(i) + elif startswith("', i + 1) + if k < 0: + k = rawdata.find('<', i + 1) + if k < 0: + k = i + 1 + else: + k += 1 + self.handle_data(rawdata[i:k]) + i = self.updatepos(i, k) + elif startswith("&#", i): + match = charref.match(rawdata, i) + if match: + name = match.group()[2:-1] + self.handle_charref(name) + k = match.end() + if not startswith(';', k-1): + k = k - 1 + i = self.updatepos(i, k) + continue + else: + if ";" in rawdata[i:]: #bail by consuming &# + self.handle_data(rawdata[0:2]) + i = self.updatepos(i, 2) + break + elif startswith('&', i): + match = entityref.match(rawdata, i) + if match: + name = match.group(1) + self.handle_entityref(name) + k = match.end() + if not startswith(';', k-1): + k = k - 1 + i = self.updatepos(i, k) + continue + match = incomplete.match(rawdata, i) + if match: + # match.group() will contain at least 2 chars + if end and match.group() == rawdata[i:]: + if self.strict: + self.error("EOF in middle of entity or char ref") + else: + if k <= i: + k = n + i = self.updatepos(i, i + 1) + # incomplete + break + elif (i + 1) < n: + # not the end of the buffer, and can't be confused + # with some other construct + self.handle_data("&") + i = self.updatepos(i, i + 1) + else: + break + else: + assert 0, "interesting.search() lied" + # end while + if end and i < n and not self.cdata_elem: + self.handle_data(rawdata[i:n]) + i = self.updatepos(i, n) + self.rawdata = rawdata[i:] + + # Internal -- parse html declarations, return length or -1 if not terminated + # See w3.org/TR/html5/tokenization.html#markup-declaration-open-state + # See also parse_declaration in _markupbase + def parse_html_declaration(self, i): + rawdata = self.rawdata + assert rawdata[i:i+2] == ' + gtpos = rawdata.find('>', i+9) + if gtpos == -1: + return -1 + self.handle_decl(rawdata[i+2:gtpos]) + return gtpos+1 + else: + return self.parse_bogus_comment(i) + + # Internal -- parse bogus comment, return length or -1 if not terminated + # see http://www.w3.org/TR/html5/tokenization.html#bogus-comment-state + def parse_bogus_comment(self, i, report=1): + rawdata = self.rawdata + assert rawdata[i:i+2] in ('', i+2) + if pos == -1: + return -1 + if report: + self.handle_comment(rawdata[i+2:pos]) + return pos + 1 + + # Internal -- parse processing instr, return end or -1 if not terminated + def parse_pi(self, i): + rawdata = self.rawdata + assert rawdata[i:i+2] == ' + if not match: + return -1 + j = match.start() + self.handle_pi(rawdata[i+2: j]) + j = match.end() + return j + + # Internal -- handle starttag, return end or -1 if not terminated + def parse_starttag(self, i): + self.__starttag_text = None + endpos = self.check_for_whole_start_tag(i) + if endpos < 0: + return endpos + rawdata = self.rawdata + self.__starttag_text = rawdata[i:endpos] + + # Now parse the data between i+1 and j into a tag and attrs + attrs = [] + match = tagfind.match(rawdata, i+1) + assert match, 'unexpected call to parse_starttag()' + k = match.end() + self.lasttag = tag = match.group(1).lower() + while k < endpos: + if self.strict: + m = attrfind.match(rawdata, k) + else: + m = attrfind_tolerant.match(rawdata, k) + if not m: + break + attrname, rest, attrvalue = m.group(1, 2, 3) + if not rest: + attrvalue = None + elif attrvalue[:1] == '\'' == attrvalue[-1:] or \ + attrvalue[:1] == '"' == attrvalue[-1:]: + attrvalue = attrvalue[1:-1] + if attrvalue: + attrvalue = self.unescape(attrvalue) + attrs.append((attrname.lower(), attrvalue)) + k = m.end() + + end = rawdata[k:endpos].strip() + if end not in (">", "/>"): + lineno, offset = self.getpos() + if "\n" in self.__starttag_text: + lineno = lineno + self.__starttag_text.count("\n") + offset = len(self.__starttag_text) \ + - self.__starttag_text.rfind("\n") + else: + offset = offset + len(self.__starttag_text) + if self.strict: + self.error("junk characters in start tag: %r" + % (rawdata[k:endpos][:20],)) + self.handle_data(rawdata[i:endpos]) + return endpos + if end.endswith('/>'): + # XHTML-style empty tag: + self.handle_startendtag(tag, attrs) + else: + self.handle_starttag(tag, attrs) + if tag in self.CDATA_CONTENT_ELEMENTS: + self.set_cdata_mode(tag) + return endpos + + # Internal -- check to see if we have a complete starttag; return end + # or -1 if incomplete. + def check_for_whole_start_tag(self, i): + rawdata = self.rawdata + if self.strict: + m = locatestarttagend.match(rawdata, i) + else: + m = locatestarttagend_tolerant.match(rawdata, i) + if m: + j = m.end() + next = rawdata[j:j+1] + if next == ">": + return j + 1 + if next == "/": + if rawdata.startswith("/>", j): + return j + 2 + if rawdata.startswith("/", j): + # buffer boundary + return -1 + # else bogus input + if self.strict: + self.updatepos(i, j + 1) + self.error("malformed empty start tag") + if j > i: + return j + else: + return i + 1 + if next == "": + # end of input + return -1 + if next in ("abcdefghijklmnopqrstuvwxyz=/" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"): + # end of input in or before attribute value, or we have the + # '/' from a '/>' ending + return -1 + if self.strict: + self.updatepos(i, j) + self.error("malformed start tag") + if j > i: + return j + else: + return i + 1 + raise AssertionError("we should not get here!") + + # Internal -- parse endtag, return end or -1 if incomplete + def parse_endtag(self, i): + rawdata = self.rawdata + assert rawdata[i:i+2] == " + if not match: + return -1 + gtpos = match.end() + match = endtagfind.match(rawdata, i) # + if not match: + if self.cdata_elem is not None: + self.handle_data(rawdata[i:gtpos]) + return gtpos + if self.strict: + self.error("bad end tag: %r" % (rawdata[i:gtpos],)) + # find the name: w3.org/TR/html5/tokenization.html#tag-name-state + namematch = tagfind_tolerant.match(rawdata, i+2) + if not namematch: + # w3.org/TR/html5/tokenization.html#end-tag-open-state + if rawdata[i:i+3] == '': + return i+3 + else: + return self.parse_bogus_comment(i) + tagname = namematch.group().lower() + # consume and ignore other stuff between the name and the > + # Note: this is not 100% correct, since we might have things like + # , but looking for > after tha name should cover + # most of the cases and is much simpler + gtpos = rawdata.find('>', namematch.end()) + self.handle_endtag(tagname) + return gtpos+1 + + elem = match.group(1).lower() # script or style + if self.cdata_elem is not None: + if elem != self.cdata_elem: + self.handle_data(rawdata[i:gtpos]) + return gtpos + + self.handle_endtag(elem.lower()) + self.clear_cdata_mode() + return gtpos + + # Overridable -- finish processing of start+end tag: + def handle_startendtag(self, tag, attrs): + self.handle_starttag(tag, attrs) + self.handle_endtag(tag) + + # Overridable -- handle start tag + def handle_starttag(self, tag, attrs): + pass + + # Overridable -- handle end tag + def handle_endtag(self, tag): + pass + + # Overridable -- handle character reference + def handle_charref(self, name): + pass + + # Overridable -- handle entity reference + def handle_entityref(self, name): + pass + + # Overridable -- handle data + def handle_data(self, data): + pass + + # Overridable -- handle comment + def handle_comment(self, data): + pass + + # Overridable -- handle declaration + def handle_decl(self, decl): + pass + + # Overridable -- handle processing instruction + def handle_pi(self, data): + pass + + def unknown_decl(self, data): + if self.strict: + self.error("unknown declaration: %r" % (data,)) + + # Internal -- helper to remove special character quoting + def unescape(self, s): + if '&' not in s: + return s + def replaceEntities(s): + s = s.groups()[0] + try: + if s[0] == "#": + s = s[1:] + if s[0] in ['x','X']: + c = int(s[1:].rstrip(';'), 16) + else: + c = int(s.rstrip(';')) + return chr(c) + except ValueError: + return '&#' + s + else: + from future.backports.html.entities import html5 + if s in html5: + return html5[s] + elif s.endswith(';'): + return '&' + s + for x in range(2, len(s)): + if s[:x] in html5: + return html5[s[:x]] + s[x:] + else: + return '&' + s + + return re.sub(r"&(#?[xX]?(?:[0-9a-fA-F]+;|\w{1,32};?))", + replaceEntities, s) diff --git a/venv/lib/python3.10/site-packages/future/backports/http/__init__.py b/venv/lib/python3.10/site-packages/future/backports/http/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/future/backports/http/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/http/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..032aec30c33d694c1193af9ce39f5828ab429406 GIT binary patch literal 193 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½kxRF7t$|ivgz}vM2v(u; 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

    w7iF=GgU`<2drTif_;u z|6ytqF+d^y7~dYJnknUdVmT-L9Xb%nIpN=@!!8{rbl9WAUL87^8pF`Y-$~)>FaQ?a z&FAxj`OI+E-puo`=TE7g;}?jD@1?d-+BC|H3=}pyH&D$~vnLWLFmmz=f#!4!_eh|H{y+Q9`ZJLW1NS>5Yi(kLpF0i>TU71a^B!=^R{yy^LBVU zIdAmt^X}(7?mgf=$a$0Z39ra`v$xBe;Jn4#?LEYKYZ%;lo441SL6X6XxmjNq-CgG*847;-2)lV-@ZQ;OVbW{Tq}LQ{;Uv{ca?P0Jnl;Ha zXOioHNv?U5T#0BFx=!O13FCxxTf2O$w&R8yj55{`cG>mnZ8;Qi-&N&Ygo`ac^d9Zo^I($V(9;W#CPuKbh^K71n zbrzePY(5$iNKLkZY_JNZh%F*)Ye>_HiH(H=)v#>MrRfsbMRCZ{0!)7+9^=^$&7C*?+E=xZUk^7p#qYSiT=nxFxG0&4TddhfKgXX)z&;Wx~I+d zXm9=cn;sNOI4H%j&rn7xP;ensukSd>Sa91}3O3$rHffmvNydssAqB-Vw^aMPf| z#O2g4^-daRe6GFJDgmsuV%i`ODVC(hyWdA07z-XU{W$m2SVzGMkwiLoJ|zIVJZ zvKFgnBM}e!NJuAf1ijC-I1#3zu5Ydo9w)Azo05u^%L+!@E3A^*u^W-Aj=ulFcI?1- z*E&-|$Z^{`m>E1T-UF8Hk!b29Se}?{E0QleBO|$Zc;GlkowDK_+;BG#UA|biGUA|B_hB2K#x3>d3uwSTfU8 zAP~qwxCG;f*^AT>K+x8K#RjkTSe7ah;3E#v ze5txq&4%69-wnn;7$@+y~L3w`#$ZyLrBDyYQK2e*t~K{f zgUucA8K-K)?bqpvZ%UeA>7;tV^+Sptn7sE8DEExmyZS+c;v_#)iW$nw!Jj2zOIjF4 zPoNvcH_6`$q|u^6LgB}}44QDDT?(Q7LGq#IUI5OD>gp8&Pnh${q+6%z?4)}i+FNoy zTuc~Q2L@wNO&|H=f`tKOJy;Bduu!SLDP)vrIi^*k9}UxZn*WLK(0t|UX|*PYc!DtO zgA7F2Crz=#zF>2BCsW> zNxQ+Cb#_@8*zXlnRdleu-J?@X9YPUJpkVUlAe5CE& z{k#*9@h^#KX~zFXgE+eHBw5s_D7?I7{zdifS6kWJEbSwrZWf0v-Q{&htXsPxCQA-S zVJ+>;fwsJ7LEk{^jhN?tK=-YjId~DbMS&~5JWKql$gX)@k>%D^rA~uH^NnhhC9EZ1 z@o!)k9tb@f3pExGYk}bHVXIH>T2|3?gFi%?0!s-05M>N?m62Q;u{wQ)Wq_kBHBJV) zvT}p3V0_7JOGMAfIjqIUT{DmJW`aKp46qn4jXj6erLob{q=LUp`jK_h|Mf8aIO)Hk z7{|1cd1=V4_#_^1r|v*})9uY#&>Vb&@!?6li?nI(Tx8|z7fV4WW^C47@-b*#gX7ChOjg386kc~w`PQwW3;Il+F1vZO+;18!FbA zOy>l*L`djmHlGMMY*?+)2vqNp#%Cnz6dteudr013We19W`Zy9!E)F#RP871ir?kFW zs~mL9am-==Dr82XoAMsud0N2?6x1L?5Cf%385K2;YMYqw7EVJ|Iois?kCdK&P+E6C zPCg5Ipy!VM?)nbXn5$n81s3%k*W_r6RJtC|7Bxj4uy|JA%Oo4pY zO@m?!Y<1&IJN3jN|3|1(^L|iKhAZ=G(I60g2wl5NXPV-6L#I8LL{?6lCKni`8Y0l1 zSyb2N8uD)`(OEmcs;j@IL$4qByV-u}!cC3%!T1}6)4l3}&iqJ%eXs@QBck~+PoL-E zuu|%6dYZoaFrTKEv#Ad<>EGX+Ntr!8)+3ufN9FrvQ!f=tqx9ZAq)|*Y>Wdo%$AC3| zGZy#ml17==2wsdV_WKk_wH1W8^W8%rbzkikNd0H&u}Fq_ zPQCXl>hWLF!4N^CI39R zn)^St5}jQ4tcq!_jn<7KI3|H^+BnV_<{>NI&MK&9(42(CxTW!-pzLN>P3+<0kO0Ab zrwzjheS3>Fox243^%^?XX{akK(}m=GP!jkGIN(uCG-Yrq(QZf8)f-Mn`Ly3i(!C9oW|Kr72ksQMU$3G?+d zK{FENxF%e%CNLvC+&3e!Lf*tIE&Frx&>%d&n^`bvo33qBLjig;vm}fw*31$LoDHF$ zO)b)}^voShFELAG3tuDngp&{O$vDDc6Nyb9*2$|XvzK19M?0OY?7je`ZgG=?Q-9nw z9jvRZ>@BDVVm&j$4^cXnh<-W938Vx!5e4Cwc@AM2$Yfb%&)g06?~*tgsX=%HvYKC@+pNqLJ~nzLK65C>2g3lPG|1p;dV34&vfw3e4o4hdqd7L zhQ3sfwJW`A#igQ*y33_MV`bihVKyZ~caOR}A(MNTKF7raVA0gC1I6Z39n`R;q7q=@ z$~n}yOQ92$Fk2e5)qsxOe2?NBKfC3WrHI(pn!9yOvSHCbP*PiS+pps6=VAL$t&5(x zMt)w%wvXb(c@|97kx9XSXqyruWJjE&i{lV-j~_#ET){oar{Nk?oEA4d$d`6Y{j>-q zT+^5dpKRv|NMmubEbK$@5Tb2(W$MvrN%SG7HHrmmcA>DP(oaiohfz5cxTB%1t~=w; zYB0XcLF!ABK1};zf`v&b25bo^Xp$%)lncI2<}Nt*g4lc;ek2;gaPLq#{Whc1EWnXF zlLK%~HP?lsgB~7oAxG5%N0B`JjB+31!m)K~U5E6A@Y%{cMWap{S?lPHnmg`Ry-VjJ z|G)c+J?N{)v8ZPx-vDA7BS9+C4w<^hpz@M{)CUmxdHjq3B5j%jhs2nBsdM$wPV-B} zbzMo8^_?&1aE(KI#Ep;_-SYhQu)B5R$GHHSvGhr0u#Pp`*VDQ+@pG51&gw9u!)J83 zs6(K`O&un5xTQl=hczAkfDWJ6;fp$aXRj79gC2t*&~zoQ7HPtCWTd4f)%E_v({NWl zozJi$9$!N|U^eA9z7_90 zVn%r^D!G20Y2yH%i`T*N1tQ#O=R`JQG$0UbL?M%jokxSF&&(<=hFZeTRBS{Yv`3Fe zYl_^CxCO6Ty>33p0gxmPl9k@hxkqT4E-wM!)ytgwAn5;Liv3FhSrJ&IK5v8^O^r-sRg;7KT1eE$M2gOU>yf2nxAUtj@wogGw-JR$5E#z?W#y#|Bq1A z-=H$)emCsy@A{m2@Hu{gC}QVxbLnb^DBJK^b2+<0<0qdho}uBK%i9%m|JGo{jWBK{#Tnr|En#b|JBye z|7u(4f3-dIzuFP{U+wfBH4m&L9#+l+>;BLK>w(Y%>%q_i>l4)?i`~o%i^XocLO-kt zZ6j2A%$E?<{Na=A^%4g0!RN%*zeNsJZbjp(M0t(EkSPqJ*c1h;3dK}&7d4O2qZo)> zh#D5Ru-a`pWM-x>uP!coW$pi5^(Xa(ljih!!LKW@EbC#X^=^_}2)8gMMdFdZ;{PdC zFMnzJ+1K8fetlmv>rR1U5QnGC^hG$ouZ}4e9PnzcD&IdcMduDIZRI%X(!|&t5B8cJ# z5iOtzhOY2=Nnnm+aYUL3Ca~1EGk4^3v(L;G;%*?2L>S$DV~5yn(rB?*&eCkdOrcUS zR#=)RDbbkr8~eGkkO^3rSWoKgY!EcY?w~NO5e@s_4iHIZczh4KNRsRHU(YuM9I8ONM zJkUxn^Mr112ro3hh&ixzT0Kw2z&kZ=Uq@|L z+e}kxSE=9208FPGa~l^WK3@0(?3M z3X*IddCB-afG1mr>~-PiLT?KPZbvdgS8ArD7^3YQG2Ilm_a}g1#FYt({*T2#?E}r` z9?*mY<^#b-XewPZ9BZ=q;7RL+yC4u|=mCMI^%%d!VM(a=aDn*}j8C{Zcs7iitEv9K z6JDDE4m@T91ULv;jl_-3uiXP3rear)$PH&5#OTCPuy9yCvA-X>AWnbc-~>_4rl+T0@1&i@XY!%X z-sLfZB^eG6A09I!vCx;Drmth_Vjp&xs^TPZAho$P>!RgPYjX~SfSY-|ZyA&!o^*0Z1D+;785QBg(YH?lI>)rpBCqzUaqWM_A1W|A!M4HVNoh!2+>p#{X%)?v_mzLI@JM*BKfQ z@~S!fkdru$DWY#P`_Kir$Y$2=h~}LUQ|T0~B6YUjuswuU(4w;=>$qsYd5esy+b=8C zS9CB7y@^+5k&@8m)~bG0SF%($K>t-9z^+^9%c8*co|65P4wipCyF@haItV2N z#WQ3WFCd>Fo8*Y(s4#8>)y}fb=|_26Jy%FWAN1C2RGM^UVH$>NNW#r2wZ*t>Zo5ZM z^biiI2SjyjV*D#yNUW8XNvNRxdXtIfryDGs(txkzmHsW=K0@;k-8(SsKM&pZ3pLZbEV^ zAH*Yh;~An2sa6|Qs~X>ruCZAqZjb4y(`7Y({J2N#8n+)nxc290v{ONsf=b+4H;?y{ z3mz5j-_t#CG(;UZk3{A44$svZE3ODE>y}7$d#c;=c2+-ittV=4WK4&XKo~&GR8IDaHo|q|ZbQAiIf?@4}%Dn9u;;dt`Xu5g-yM=ytbogl{D`;(T z7^ZBSKCJC5Jr=7H*T;)K|7VrkT*me*<9k*S_9r2POSQdap0gha z1+yMR*1|mzF+=1A-xCvnIE!Z!NToUN&&b_Vn>M?s(q3i_HvPWKQ)h# z_WMXPyvE{wTPZxs!v4%#34;EOw$iwj9BPef<7K-(+QN;4RmDfyoLRvD3cP>z#)AYQ z$YT(?7`{D^^WdNK+^^U&TS6(+mG8u0r;%rXT*Rc}{ z!{;J=)8sHlbSG@8Q+N`70?x!1vdRX+&Z`zG1YY=KDkc!n2XVbrS=ZLCx^?v?PUPQW zgqrmYq2oPW|B?=xcib##^X*r4`)v;GLKtZRI&B_BXI$*0Sxem9Lr1YP)nctU$V+f? zjp{h%*(aLky3&#;if`7*7QrcI^P~x2!zuLwYgULGY!1DyeOBYDgf$hfKgpNC{McXgH6sTvYtTr0HY^2%|uK*uY>NWM56maB^=X%EIjr#<58 zTz12-J#x8Thn&|O)6pKX?}RtQVN%QN*dTE*?IG%3CcL8}-mF%4b+B>jUT67$?QI2LmSE<)EH(Vu4W<;vlJnT-!n4k=zkOEy<{8}87Q!qX* zx-F@sz73z~xfHole9C-+&hA^8LAgIFwbOYcZo*cjV4g4l>^|8MuI^Q<9u0zm+HK@# z^UEkiu9du$ks~AfV9QYvwy6P&gM6avlwD(Rx^CFu*Wqz8lK}`XfYg~ zH0lo3UmJqD7f`&WZ{dQYe^DSs%Z2MBxp3s81Qt+o&0gAE4_awBA#z=?>kX}ZLksxc zMCKWSp?cFBUK=CY0S=LC`Px3_iZSPqsa+6m=d_E#8ewa^QPO^qT5Vw7X_7b5+Gx^M zzNXzcx%0-hIcLK>#z(nVD&_ZjBb39=ovX>UamwD*8u$M=dx;Og3~sywOUVmAtwEeawGU_l7#Hjdf0ye5X+~ht(w>DA2m}Yur#ZiL&?9-v@y)fwl$%o2oB9~nMx*`Mp z3*CN02XhX)i=>1UOL4AxXv!~(q^KRk>0uT-+CLExyV9~Fp4#)Vv@xL&5E;mjwo+sA zxlfA_Nhf92S7B??=U?VO_mG@>)w+k|h`iGZ zM{*wL0tANaNX~+}#g_s`b%T_WC^1bXDMh5e9fc+9e~l?aF%t>%Y5$khDPPsWCW-+k zy#AaXe4WDmpVyVivhV4ts6!vPw?({v+29?|F*|brTdH`tc>rljz0ae<+SNs6U6X^p zoIO0e6nXj?jeVXAr;$L9g@cF|AR8SRli;_M8dd}x@%0-dcA}?JoatS1C}GL7t^iOu zePdi>SU&sv)E~Cs?#cx|bpc>q2EaZl`7iC`W0- zw(b^KHdCzd$eCY-7r8VBr4O1DUBJ0V0X^uTL6_%e(AiGi5RenZDyGG<*}%zMebRt8p_jL_?0bU)n>5&K zdFbRQbaLR<2}dUz`FEI;K)^f(K`16AelMkbZw!SA|7jUG*zYK)v&enWmrBY1SshHQXi(cObo4wcY6@PGI98aofDKR2||wsSPCt} z+tlqL1F^gm^%c7V#F^&t(~c~Mn2RkG#x5q#k;28699iJuE9^}W#fY}Z|I^J)A!Uz9 z$59-snw!)CCd@lP=;2Ih*s-%BfggkazosM_1P<=jPhrTlU)9sE1HN^cgAIMP`2*^* zt)w2cF57AwWXckn`h4o!jENncG0~TEUi}sQ=^7!_F#}C5SP3FwZ>NPWz~RfHw-9hm zyOuIbz@FJ}CrVZ1RPWTwxuGb_Eizy$KV*${M;h*dAO0?;B zl$nSNSiz!CvrK-uUb|vnR1{u|B&??_MKYw_rruQ-`B&95MViP0AL{<7^oZ+y2uF-+_ovXH)z(p`IbU|u1xB9?)snI1 zF4TGf+~_+U`{GL#!nXy*NQ6^7E@Hc*Y@Mf`krx5{kaVhD>bjZc6Ok?rg`j;Y3QQZq zNv^(vUQ83^wk1ilIUVM_SB4m-x2#|^g8?{f#4+N&`zT}Ygzx_{829}eN)M7RKddD@ zTAU@rn1noCkC`M=h(o+;rZ(J~CvW_xK@=0g7r6n+qbYi4OSXUw^08S;`P(3OZYI&1 z;N%jEQl<9}C*pywIfF@CcQ$AI;wiVwvmtb^7O@A|@m5so=IMa7jFY8!pjZ%WJ?qm$ zq8O~*x>;evSZ9BVafjd$Xf3Z5ZC^3P##hfMB$GP4f@V|E_^zP%s+L35ag2uD7=V_x zGgW;H;27NdIX)wXVGvwRT75HBWIhTTACcuh8M6fgasbidJ4oP%J2TBsoQ&B5>o2s9 zrhJWZ_Viy5i}ktQ{wv}Yg$a}XQ$KE$1Q~AQM7Rgmd8g>d)DpXOE)7^;4u5B+sv=pj zyE~oEII>}Mcc=W#km=kelP-pNf7d_At#z0tG}G9j84Cqpx7h@NplzYjEx_46TN?zYbMvaiOuYJtqXku?lKyg`Z9 z!C3##@!~H;yj7tf{FDHHZww9FyDo-ORyqNfX5GSCT)xm1wl4nCYR!_ii^ot#lLxo z1L_4=@j+GmcIaYn93-1CiD&e}q3nVi6Rx?Le|k^w+MeL`XZ)X~1f~(Gx%{nwwmn!b zn|CKsX=UifBR8eTNq^nm-^RPY+iAdd`n}hu(Z$8RXAAs)sP6nn9HL6dFwK6@9L&!C zo4V?o&^GhzAH^SKUk^SShK_bnW3>&{H`Gbb%*>Q__j?uJr&51{FIlAa>x;`(|4-`C zyBv_py2It+>Czr_Q?xDzw1Qd}+2a>ao;};nuT-uq&dVJJ9eBe3pR8aV?&$E-I>@5m zrBVDVx;1TpG0J~SwaDbjzXrD( zJk5oC_Y1fWxPNfaDZKO3c;pY@nZGMv$zL+x{KxYn`H{kC{yzNnH=(H|2N5h)(mcPO zKfaxKj-UU7Trnm$aXsVzkgBv^ZS?w|&`bUwRSMnRRbrZl&+)Sgcl&6wiH9k#h>VGu zpXkF$;$z~v<~I8nObw>F)0Q9jZfk)}Y1Eg&srh(^E*no7?n$~_uZZxQd?bsl*aP!x zuCSXkI}y*Exl3TsfYcBRPH}MiJR+7c6rc@a@V7TnJcvq|bz~sP8Q+3bC=@X4%8HT>0l zY7p_B|6INMTRQxYI&?6h7!~vl4OJ;MhS@ezMg{4P6(JA zGolE;+b)W~n>W_STnxj0w79+96>E?7a&GZ`I7RkV7auqZ{*OZ1-F&k--djJt>_Ls;G~`J5>}MgDQqY9GF0@Y^@dj`^m%PY&5E=L~P2!lqRx!b#dP(1bc)(EMHX5_W z;k7ZwJ6;6faeEyahnP!`Sr1reZ8>-L;>EKwpDLd@`{L=DNnWR&f9)RRJxJX00(JW8r@yp#Ijq@;Jj zNtLhx^}SqtJe+_VaTx@S<|O(QDduqmUvn<|17@H!eM)Sg96|9u*eEQdZawY>Bd|s9 z@BRxv0`PZE|4sc=+JGTzCBYqS@-H{Frimss*N{ug)-YkE`Nz__r z&)aoLGNkj`L?J9c5$U@KqOG+MY?AqunACVAJB>OjN1O$4Tr~+?>CuW+mf>Qc3KVB- z=~X;j+1$9R8dB24$l(9By0RmZXb`pYS^=cZM;tHpZ)JGpzra zIdcX{N+z5BxXd=c{!6{EYX5s(b?RYPMVew0!9R;gj?IFp!UjAfhEvJWkL>L{S>r#^ z7in<~H;cT{h~>wI2#$N=Z0pb#QdiRAw3Z0`#mK%NUW+wDx?eCad9HH)L-v&QL#7iP z@DJF%Sr~br_aC);ThhS&AnxHR#oVg7FW>~O`@zOgLk?*Lb{(T0VQC|{$mwk%ydU-7 zuzU8_SsIN~ZSWWEsq$}dPa84=ZoEA%oumXinA}k*dT~rkH#X^A3s=ABOE-MWKVok- zM^77DTFEQaMsscRkB029n>oO4V#!GEa=SL+YUXG@RcuWsU z5n~(m5LuKvJhtMyLdep=&MEBZuUI~r+_{nTKI692G53S_^muE>$EWit`;udx%^+`f z_YX*J1v-x{MOO5`M+egid|Ov$!v7v&Fo+T^H!;TdJ-z(}4$NXgM*o|7V9QZ{PFEd- zFLK)+UA}oe6r{9?$R{)aCwWm|ro{~Z;m)+e^MoOKk~#D|Tg|MHPwvFGr;zgh6W^F8 zL(gBDyXW|s3u+HrhP5%=fo)g;$&D@3VmNIMp>PBvzBKHW*C^FU+ARG^*T+-5abB=J zbYv&)@dT!VaAnsc6Ra#@@uOQ7*82j4=t2+M8Vo^PkMK)oqrxd1`ImL=;~03rsH~Q) zIVB;w07xhU33c1!`x2G$xanAa9- znmWO4ho~azE`Uql68wlV<6q4N^tdZ7hdQdjsT=V$R`1bmlf6vJu~}43Ec0|ar%+tB zhv8oAvpuE>NL^<=ifTwsW7kjY1r5 z6>GFx4RRxo$jAy7FMTDsjrAe)Y^M3+;h>M$E{jebQUHeh#HHE<@k7}8jS0dl_V%4~ zsg58bwzap(0&(;xWX+D+V2?++E%fT0H#8M@G`GzSU1%heMLStAju#H80aV=RGhK%X zyTW`EF?lZu*YEH@rtA2cp4kxW8*_zD$33s{CX8pB6-{_daay9anGx6A){XbmojiTA zMh^>lnWA8g{-TB8;KT8PkK!o%ePP zLz$jwCvP@4_N=HpGJU9k$<3yG@sf^xFwQZ1)0cMTzX%}zN{4@~LoZZ(P0XJYIK=2{ z^@W@N3z^Mg5I6P!!}w@5Jo?+og}``{UrV@X74Mut8ET|ZWrB@PiYiSJu8s^#H;Ee}bLpW{78P8nvq<~%< z!u@VY^BcqEr{%Ej4Vd%$$l55*7904DwFXT&w9(7s$hHwDix)|SV`AtA{}@hs8`s8h z`BSGYv^FZT;@T#2w%ddw9M0~+bjK%H2vD?eDj(wGIA3 z&WqdOFE)Flh^KPQ+w5)NYO^=Saa(IUR~zkq+>V><2q)0mf?MBakJ34A@A>)l_Zaio%g#W>D=U>Eosj=|~leb{& z^sg~4R~e$*Yy*LZq^VLLgRI+Unvd;~t1@O8al-QZfXZKkA?|Waf224Gij^YfLHv1h zxSJrr(|%KE%jXmRf7C%!z7Yk`{yklPRR{CG6BpqoZ=0=+2{3oVFX#oC69m>0v*3t| zC6^~+S2^}E`;L`ppS3T>B{m<9Jgd9v+1-HR9v?d9mo{l1_ll>9(f?J+*C?C9UV03&*(r*5!+eQ za`{@4;)^=AbB?0>zo6WIK~FNOUpwPf8kH_i=@<1rt;5eL@6YS-H+3++rVoS`UQzbZ ze&X^z&#s8LNOqLZoU>Ztt%83tE`+I6R(fY!&IR?A+k_koogP|891%&UoX)k3Ee_54 zB`!(c&`Kl!7adJd;iz-wzeuAkn$9=>#_;31Hn%i*snmzf9X({NTfi=*W@r8Xn`(nx z>j^VPOih?k+q&9oWVI*=i6B0uMvE~tIcB&pHoU=}&-19~FU{R^{48v7H_KL4WCNxH z7_>CHGPk2w9^IMKr43qq!XbY%c`H8zO?DINE5~1&L630McDGV60L4@nKP1D->U9@z zJ>;AaRwI@`!%p(4Y!)zR#x!-}1t`Brf0TS0TXk`t48Yg+Df~M-pIpO+EItgb4$atA zCB9q@?Yx&)uh`D&;`lJnHFmkG&UW_eW#6y`)^a#KUx(*(TWC2sBoZzfs-LNjtVR)s z*CX*$U9lzI>K0bJbUx=wpf=~~O)TY=gHZ$}YxkQWP^KGiH};0ZnienLs=Xb4TO}F9 zT&0kH>h(~VIb~K%I3X6EMc@jxmawP*SwINkFGbr8L?)1tiS!BkLahhhVRy{_-IxY zKVC6cV^B8g_U)*{;^)+t`T)tWAI{c5H6LiMvZsv`PhGc0i-rtCBv>khr%XfLVgVh4 zsL*ic#6}&zLGANvl1F#4DEy;)9Xdo^Ky*D&)CyhuL}W_6$+&P}i@h5{A*eHn95MA% z=e`s!!*oW;KF2GnWaUNf3tGNo@rs2t79GSY&xY?n96t&HKh6A?#Z~A(zC8p9Ca(6 z0jSOI-W|Wb>t$hgQ9&P%9z2MIJY5U-hnhwZK3J>X42ZjaFlcxOUA;{?GJUnNvP?E3 zbYO6$ctvqsOsG>I?kW~f)r}KlVQhnOGT+U~Yto9B{=C7|77C*Xpz@V-4%Rpppbe?uh0Siu9PBdueK^A!GJ98{m9bq}lC@#{>j&R91 zO1D_B6I5SFuro>l8DQ8_)=4$&4Y4SQr8DB7sSgg>O5G}O#RAaQ7|#-m2{>f5Yr&UW z8<&RsFDnd6@Po((EJ~s!KgfOJ_DG9GKXAx9;fP0X{fRFAc*Cuq4Y}hnP5GD<_q+e|DVNxXjx4u^+9sCe}UT%l7sEc>`O17w)Hje zx;!ITX~eI7r-CD*H{RR$&9CTFKc&Mz(&1Y=+>7b_KgEC5NFif~mdlCpF{?)|);R z!Z7vI?hrFXShAYS_;@uyynv{_iU5w{>U$*)HM9aLMq?aM!TPw6}&; zhF|8pV2CG_$1amnIlWSqv$IK@a(X5!)^M^9PfaGULs1ox*igg|FF3(nN7W+qlpGVu zD;bn9TCOETL;@mafVOyd3$;LB{Q5z)f3@|#=9asVO+1;CUJC0tEr4BO1Vg@ zC{(s0e*iWs(?pNMcR73Vpcg5Cg6fI9k-I^~>yD9(BKhqfo%5Bpj^p=rXu8Abu6T7P zf1%N!jK!l|LSS-WscURL%1xiE0LoR37Qz@=p8gXO3p=VMKGXJ>DmUr!XJ*Mqp8g#%rFb_U}HuwetFh9fssU={|w@j)F*1@I_ z2WG-2JI;mAocsc|fEf~YNbQ0>@D=QX@8AI7zX*rm2poeGV1lrxq#`&2Kfy0xOD-=- zU4d)R2fx7$_$$Pr5OTN8HrGEF9L~Feou^hs~eUUH6|GHM-Zy zzw}0Bl!_lhRvMm2iz1t{>*^J6iyL`WBbUmnKmBUE?_gypyNWoNRrNeNbphouwBBmf zx_0UsaMf&Db_Mxn&`da%&}dckI1e(%O<%mXKv5+gjO{F!pNXacin~cUH4A z>+YVFcRUNWWzJj>laLUSNF*e24#>fM2PFg&60QKD6LJ7aa0r1woRB3z{`abSW>$y6 z$?jLLUv*d2t9td`t5>gTDjgkZ4S!pcj~0)f(6ld8ruDBAnFC1vx8j;6vP{61M~pUq5UW;-T2 zIG-wYPIS5%Z&c`RXMP1*PnEhRx~4SI_9lH|rAW`LnpiE`0oRBO;M&_Y(IGmY)I_Jd z?p$nQz1uaj0cqoUO{`e2O>8P^qD!oNN*AldYQQyOE#Nw_9&m%$2)IdH1GrgS3%EsG z2WW|{fZbvn;C8VC@Ose$*ekMtH;5Yn`$RwBfEWZE62njFpfe(DH#@P*}_y~w{$ydUrb;)8%65`PHzVQ~@gkHjAXenk8U;77&B0RL3{8Q{mo zp9B7d_ypi5#isy2Ej|PIm*TU4pA(-4{44PVz)<|PqVzZ7i^%`2_&dPA7ykhGCGlmz zuZVvH{3r3xfL|5Q0RD^k8sNW*uLJ&@_y*uN#lHi7OMDyfKg6?u|0(_p@H^ta0hh#g z0slvQPf_~5_`y^9YjmL@>5Lh`VvL!<;*2GLB^gTrYhx@8tevq8unxvLfvsSy3)o7= zRsmbh*cxDK8CwTzJ!2byZDec{uxl9G4D4FQwg9_M_7s?fw3Xj?1KY;fc3?XgyB=5% zW4*w#jNJh2M#lPp^)ogAY>=@bV8e`!0J9m}32YZ*yMc`|b`!9h8QTMFFJt?FjWM<# z*e#450Ctdii{}fF4k6u&bQtM2q}!2Rh;#($4x~Gg?m{|>H2%iSoArrn+)a~I`xw&Q zPwEq!-OlsZ0>9^iKCwmN_X58T?~Ws#cv73NrfBY71S_|dvHO5^!wPP7yC-A#@?xa> z(bl%xsoVod6HgL0;ih2sh<_(1cBr;Sr`;a3+AC7WwcdiRY0f0pi1c(2%ncMOl`}=xw`MD%T5_$qiWj)T3M$sz zLNHw^_fJ-Xs^?mhUS-z0d%+&C)9Dwwp4;PFj^#VEbExCHzF(}AsggfkIcre@UiDoo zm@Y<552OzU$h)94>z0E)`3;}xU8P)FutcR$rB6z%g)Ph4zkk2%Ck@OhaxqJdFP%PG@dK+e$>f6KtZOY)s+J!(USOSG zunL|FvS`y$HJVKxvc{rT29BfEl6#1G)|*YIkChADP|v(8n*i_7u4l<2eN3d_lr2XH zYu+hU!ReVQI^y_NandRV)>$w!?O38%piw*C!jD8)jrP#V?#bd*_bK$SyX>9~D&_8o z5%}a+ryNgyJnKxlUh~^Pr5emt1B?I-^&EGDe%aqW7MdHAE#mU% zN4VaAWt|`qQZ?lOIEdHUG-_Esc3@{)?~HJGtiKv=a}{;_q|Ht%z|XGS8+s>!za7dr<2`tPB1Nt3`${a zl;Ym?9*R04`#sjJ=At{x(-X}Mw>L&q_F8wN$uZShG~t&tMkDsePM+#h?D*l$N`)(d zKyTKXb)o%Y+3dNG1fEj}{74z3uE7d`wdE;H#Sw^k`q1r1EWh9t=b+)FVP`AVl4!97 zvR#-5)f`WQfds1U>kQue%*WPr!iU6?M; z`D4y>Wnr&1Uv$f5XKWH3hh8wB$$B)V;&R1k*1l9RmbC@dI03m@&P7PCaJ+JVP=VHz zEq|7bj&mAHXcYy9Rh(QPfmB>bpDn^{f|pIs9`*~)98Al@)rz!^7MeKY_gQ7vCv)w) zv&BNCR4L;XiG2k;^wNH{Fl}LS3TIr8OuVRA&5#o+(I#hx>+3;ug!-G|5A zdDmMwT@m2tU1Pai_g$5F*T-`&lu1mvcr`RUvbTG0PlLZoMmgWA>{o46wb^WvTTG`9 zI~bZfv>$$7vkm z-<2vjTYN+^p?!~hfJm8rF$(yZ1M7;`n}l11WWh^AUCv2a7k>YRpe z50kroGT4$qr-iH^LZbW{og* z_X8tghvVnV@Zsj&Jl>9HV_~~g^uwN4@xnAbN#(eOnbs)}wVJWlTGFio^|bX5jlK{F)3gT+#%f7U5GSd0cSlk|WB7jEpYnDME(PP8%b`p`K<0?X)w3 zb~22hoeoCOPA4O1X9Xi@r;Csgw6l^C^k)?#XlFGeXlD&0XlE@WXlETGXlFemXlDZ< zHrm<92-?}i2->-Z5wx?J5wvqHBWPy}BWUM3M$k?lA-hm!FCn9-)xBiox|j4^&B*1J z^q1oG@aX8X1{nR}$B-Er8j_jEIWsIXPjF^LX3lZOmYF9xvr}eX#+h9*^K#DYmYG*@ zM$vgCWrh`aIY(?kiIiu*jfisHEFK|ZDc_U{OonPdP zqVr3fQFMNpGm6f6%Is8hE^tQCc@t+8onPUMqVubqQFPwS8Aa#UIHTzNI%gD}-=NGc zMdxYGC_2B%8Aa!}IHTzNHfI!_-{Fj+^A^r1I&bBSqVv0y*{$gO9%mGt-{*{?^9P(! zbl%1pMd$6DQFPwH8Aa!voKbY%MVV1W=iQu9bl$@mMd!VoQFPwN8Aa#)oKbW>z!^p7 zgPf6cE|UJ(N`Eer{@6p3&PCE6dq~o`Ncv+BNjeuvf9xSi=OXEkJtXN|B>l06B%O<- zKlYHKL;7PY{kcf`V-G7jq(AnsqC@&)4=XyPKlZSqL;7P6D>|e<_OPNu`eP3(I;20g z(w~c@KlX^CL;7QnC_1D+_K2cG`eTnMI;21Lh@wOKV~;30q(AnEqC@&)EB(1h`eWOQ z4(X3=D>|e|Kfu>5sij(INe@cPTogKep1Ji=;pHZbgUm$KI{zkp9@aZH7A;?qax`;V8k; zA%?>YM;LPXQ7%8qv=x8>>CjH{u`PhmE9CO(uw+NpbpBd#= zdU?CzSh=j_W2aDbN)#ueD2D67Hzh(84sHAq7~okX_7{!EHc|B$wo_qSzFaMpW-7%p zDz{P5KP134KSUT0F(HTYHN5Z>0PB*bzRB=D2DG*^mpeJsZ=V7fm7o?snaiCTST?{E zic&g+gBuF{LfW zgi+T`Oz9cj8>ky-?X6{;U>T{~KtFHPHDceQ8N?cRyl(pU)Z<98^Co>48nu2w z*R{4rU16HqVq!5_H@#flJRcXv1${A5k9&oBT;-C;J%R6M>dATnw4aFDt0$xO)SIM; zuh%4ndQ#}?wMD&rU88iOwRDgOlIT-{Y5*qIbKgYroN-R49?Ex%Q1!;h-$Enz?P%1^ z@n=)x&ydJ_qysE=&-?&?&rtRmlGJBtQnGDftmKxl!8uk4oDu>dL74De$16Y>Kk-Z&m_!53eRdVt~!PC?pzoHlfu||Wj>7E>J|!QO`^XQKuC#L z%I^ijC-2&V3O&3 z7(@Bcn4S)e+1b$W{m?ioLVY3BYnM+hOp`!t$%fSVw5{&a6Z#fRBPRF<9xSd_z{_QS z#KZ$g{>uTH8}kXMyNF>mi;ILvij-&*={Ke(OgB!sDJaN9LbQtvj^~o{n!!X$tPowu zx4CJok1NG09LdGSwPLMU2dv#~pUAi!=QOciYR4_bv1qGq({O;-?!IyQdT>P5(`PsWY1)|^xHqD8a0n)cy5i-L|6 zxTO*Z^DbC8>Yz9hB2QSp8bLcuC*quZz9vZ(eO}M7KJ!|Okm?*Sl+7AfjN`Q)#!v@k zTuXM3)<-^mkrX(xS}YezRe^=wfd?R5k(U)3RH9%aV%||#hy&a=TDQw?aJJ%|xxz6K zedWel4t-|n&<^cPR!cIxb~m3&a%+{-96aGL+Z=-2B@CR-ks=B>ttcaKBA59vi8Z)L zM#rQ`ZkRk&nWf-yn7Fkv>lDki zQ?$ZkY2hVEzYv4-ks;?JYm9qjOR|YDhA9i<%(bw+Wj?TS(;=KU?+P!8qVNXt2t^`{ zG@H-EIG7OBNw1SS%67KZ*ya(q3-b8~@zE#yy~;?(x}b}-6;i+l@~Xr#;}%0n@=+S2 zs_W;q3s}ftuCy6_UiVf62%gpTbU_6jd`o_2=zNd{k}`a!Uf2i;9;b&3S_Vr)K)cy(cs8s-ZRY+ zkA!YZ$&v6VzVmh9z$M)5DEjxRdAQSED4~Q;O?T?GHL4fO3KWQg z(I4RrFP@f*)_!;$%el$^J**%6dtLeWTTsG`_)W8rH?d@Bd0Jq!e1dr%AFpi%uie=> zj)_yW+JS0H$*~|@doTf)NiWUym0e{05NU225HT6i^2p8o;*!`(%^O47_Y^5 zU?HY3c;*Yec zAiXq#*f|3@ba4jjBiv5N#tfWjbXl8;&m{Ou@|+Im5qrkTSk(FUeLH-bgRvd{{%o5^ zR}RB8BKKuFa4EPR@jpzem_KhFV3P8@j^y*+N)+dL3Qf8$@U+sPO{jF~ND*MCBKiE| zG*|#c{s=-c0o>tIbM4`FDbO(?USe1R? zQqm}}jA67?G?u0ms$vgi)QuVJr0Ovi2^JcX;d46tRqTwaFnkb|7%f#`Zu|niEShx_ z%a@Zg7US3xC4_Ot@OmEJ0>73PfRUDjTZu0t)bhPfeXpB7@aBjdT&W+OSfOW& zK8|@@-f<_T;iCBs6R^p+_#&I`qbj_1vz1%E&&L(3439?aEq*<5e#mfT|Q(cIXn+DlkndvAFpYhC?sn{pB)(z0(z3tAKNe=u%l# zzk45+to>JMVViZF@1NlU!xSQ0a~5t_EbtMm)Z9S>(4Zs8A?3`$NQldbeB<8obPstX=)D zQLhro1JAmY3MT!W(;kVjygNXG$aYS}V0&}^jrG0t?N{kN)20hjE-s(AxF{IN+Sma{ z_n!JNOV;6I$E6e&U?GL+na9ziG};tuh0aXs;5`KlOZcqob$UqAtNn^Vc!`sTe5c^O8PSvCVCKaCma zLIyErcopOu)eSilweS6~X>iLt4a}ea&nz@Ab~QNnqfW$Wm(&P>DOg`uNM#|u{r@?i z)!B)8T5iWZ^5o(31RmIam8p>I_!3P8?Q&BH_1~Lji=~As{h|a5Ul_CdWJY5>f5OyS?H(-GWxPZOIf|O$*1dk^N&3VQ+?g zt(G82>mE1VltbPChx*Y=h8xB?81#*3z@0`X#YMW74H*4cwy9k;s2F5WZyGcyC@=e0rvDPiS+(?=vN1<7`T$3R{T@ zCcFHprpxbH^cum4Id7m*{;EztwSn7Qnok>X6C30VTzdp8R<`is3V{I<_r~bUa`b$D zrbZ9zhS7J+DGm&8bASn+F@rdEY@4wg0}d+~N6-KmPA>HGIK9GqoUUOH7ngfD$tRpg zX)|pz>7bnh33B5d8~1KNuWKn4P1v8!v~Y*UB6mu>&)G(7;6q4e+YZWZCqU5zoJ2Ku zP6=jXsFx&{n_Rm>fPuFjCQOP?c3rZriy}V8X0Y%QD{zGv1F^8NW!{YpZJApH2peax zFas76gA52zoCN3sAJ#pb#->?rF!fsRa|+KLh(R3Zd-YckA>KLhF`FE^$3cM~L2jsG z7Y)8CH>zprL2ANF4*U2Enohl0;`uCjOr||{4cQjsNV!+Bd6TLA3GLK%Pm_tBGhEd zmHNxeSUp1SA*coH-`t0*FvU3LPSKcUXH7k9V7{IR0@68g1 zCh!xVUir%ns$`94O)0}9x#7lTwr&nr1^BiqXtAiGEJw4Go^uvwV$Rif`JX1P&jSGh+%IJ|f5yQwQd&>Lw1YpDbhb zqU98_OR;>!%qXPeU&rqf=M6geuG2GiK{pIKu0$>-F#niqm;)TuQ}E^h4#RK3p=BKJ z;_^U!pH|)tb824D0z?|;HSZym$=6dHRC=KCC5bQh3mmQ2lc;em3`^>qu5#GA z=Gy8hUX5^Aid-6p?l>5w)fV!GgVJSVdz{ARuca|G9foXD9-d0BldV|Nw|gH4%T6Gw z^9ek?PXUB+-mHf)1o315T1QbC0~sQW4wpST&h+*Hpei2^e3q)x(NW-ijtYF9z#bI9 znJFEDx6Jhz)!k3v5-+whpKq0!>q!81q8$@DOLs0ZhN+u~i=+*lkegk)@fchgeCtFq z9?KZUV}w)A`buqMi=ZrTS9(q`&K&!>g$8kH?8h6V?(raL5ts2E8mgwd( zRRN`!{eeB&0VLl7c+PDfZPAh*Mf_{uXQgkwA>RBo2^?CeDxy8nkD%lR$A`svG2LWR z&KtKt8zwdfEk8GFy6!EW5Cu~BCy&d2iolJKA(B5vh<=8EF5pKA*b}KABk-n3(!ond zIUeZHeQb)j70)fWxEJ5D2jfH2GcHbjFcdW^wRa|_MSp}-Vk1wMMw$w_`&9n56!$Ca zxmY^xL3Q40W%Sy{R;E7pW-AsEC0S7R3C;-4EU;SAhD#Dxmy$k)Lf+2hLd5bzqIrUP zKr2-WtNIoDp!OKq#3k{~%VeC$G{uxDkjUIY6v&Ze2}Sgg1u2{5`t-X1d65FKPU59U zWAms(9$DgWh5S08CfJu3XUHp)0b*V^GOAEDD3*LaZDGX<4IEU*4<0{sj=aXwzL~+W1d1O6|t8CZ#Upn`T$y zo8~Ix-#Fo_kr}16#@Ea!tuy|`jM94J88b>7jIWxU5??hp8voo#n~Z-lqjZh&k7krM z8(%S_bgl7aGfG>GFPU2sNO)dn{6iyI#^0M!+G_lr8KrLHZ_OxeGrnj>X?x;t%i>#-FC5 zG-`Y-6{VYukEWt@v+*aXDD5#mlHz23B(qmaVfw>e2QwYOjr2&`SYxhBX)jHfSY(x) SVI}?#lhR7_8|&6@3jP=7;#hqE literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/http/__pycache__/server.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/http/__pycache__/server.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9ba346921919c6b4536f908ae1a14d12a6ac55a3 GIT binary patch literal 34805 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 + + +HTTPConnection goes through a number of "states", which define when a client +may legally make another request or fetch the response for a particular +request. This diagram details these state transitions: + + (null) + | + | HTTPConnection() + v + Idle + | + | putrequest() + v + Request-started + | + | ( putheader() )* endheaders() + v + Request-sent + | + | response = getresponse() + v + Unread-response [Response-headers-read] + |\____________________ + | | + | response.read() | putrequest() + v v + Idle Req-started-unread-response + ______/| + / | + response.read() | | ( putheader() )* endheaders() + v v + Request-started Req-sent-unread-response + | + | response.read() + v + Request-sent + +This diagram presents the following rules: + -- a second request may not be started until {response-headers-read} + -- a response [object] cannot be retrieved until {request-sent} + -- there is no differentiation between an unread response body and a + partially read response body + +Note: this enforcement is applied by the HTTPConnection class. The + HTTPResponse class does not enforce this state machine, which + implies sophisticated clients may accelerate the request/response + pipeline. Caution should be taken, though: accelerating the states + beyond the above pattern may imply knowledge of the server's + connection-close behavior for certain requests. For example, it + is impossible to tell whether the server will close the connection + UNTIL the response headers have been read; this means that further + requests cannot be placed into the pipeline until it is known that + the server will NOT be closing the connection. + +Logical State __state __response +------------- ------- ---------- +Idle _CS_IDLE None +Request-started _CS_REQ_STARTED None +Request-sent _CS_REQ_SENT None +Unread-response _CS_IDLE +Req-started-unread-response _CS_REQ_STARTED +Req-sent-unread-response _CS_REQ_SENT +""" + +from __future__ import (absolute_import, division, + print_function, unicode_literals) +from future.builtins import bytes, int, str, super +from future.utils import PY2 + +from future.backports.email import parser as email_parser +from future.backports.email import message as email_message +from future.backports.misc import create_connection as socket_create_connection +import io +import os +import socket +from future.backports.urllib.parse import urlsplit +import warnings +from array import array + +if PY2: + from collections import Iterable +else: + from collections.abc import Iterable + +__all__ = ["HTTPResponse", "HTTPConnection", + "HTTPException", "NotConnected", "UnknownProtocol", + "UnknownTransferEncoding", "UnimplementedFileMode", + "IncompleteRead", "InvalidURL", "ImproperConnectionState", + "CannotSendRequest", "CannotSendHeader", "ResponseNotReady", + "BadStatusLine", "error", "responses"] + +HTTP_PORT = 80 +HTTPS_PORT = 443 + +_UNKNOWN = 'UNKNOWN' + +# connection states +_CS_IDLE = 'Idle' +_CS_REQ_STARTED = 'Request-started' +_CS_REQ_SENT = 'Request-sent' + +# status codes +# informational +CONTINUE = 100 +SWITCHING_PROTOCOLS = 101 +PROCESSING = 102 + +# successful +OK = 200 +CREATED = 201 +ACCEPTED = 202 +NON_AUTHORITATIVE_INFORMATION = 203 +NO_CONTENT = 204 +RESET_CONTENT = 205 +PARTIAL_CONTENT = 206 +MULTI_STATUS = 207 +IM_USED = 226 + +# redirection +MULTIPLE_CHOICES = 300 +MOVED_PERMANENTLY = 301 +FOUND = 302 +SEE_OTHER = 303 +NOT_MODIFIED = 304 +USE_PROXY = 305 +TEMPORARY_REDIRECT = 307 + +# client error +BAD_REQUEST = 400 +UNAUTHORIZED = 401 +PAYMENT_REQUIRED = 402 +FORBIDDEN = 403 +NOT_FOUND = 404 +METHOD_NOT_ALLOWED = 405 +NOT_ACCEPTABLE = 406 +PROXY_AUTHENTICATION_REQUIRED = 407 +REQUEST_TIMEOUT = 408 +CONFLICT = 409 +GONE = 410 +LENGTH_REQUIRED = 411 +PRECONDITION_FAILED = 412 +REQUEST_ENTITY_TOO_LARGE = 413 +REQUEST_URI_TOO_LONG = 414 +UNSUPPORTED_MEDIA_TYPE = 415 +REQUESTED_RANGE_NOT_SATISFIABLE = 416 +EXPECTATION_FAILED = 417 +UNPROCESSABLE_ENTITY = 422 +LOCKED = 423 +FAILED_DEPENDENCY = 424 +UPGRADE_REQUIRED = 426 +PRECONDITION_REQUIRED = 428 +TOO_MANY_REQUESTS = 429 +REQUEST_HEADER_FIELDS_TOO_LARGE = 431 + +# server error +INTERNAL_SERVER_ERROR = 500 +NOT_IMPLEMENTED = 501 +BAD_GATEWAY = 502 +SERVICE_UNAVAILABLE = 503 +GATEWAY_TIMEOUT = 504 +HTTP_VERSION_NOT_SUPPORTED = 505 +INSUFFICIENT_STORAGE = 507 +NOT_EXTENDED = 510 +NETWORK_AUTHENTICATION_REQUIRED = 511 + +# Mapping status codes to official W3C names +responses = { + 100: 'Continue', + 101: 'Switching Protocols', + + 200: 'OK', + 201: 'Created', + 202: 'Accepted', + 203: 'Non-Authoritative Information', + 204: 'No Content', + 205: 'Reset Content', + 206: 'Partial Content', + + 300: 'Multiple Choices', + 301: 'Moved Permanently', + 302: 'Found', + 303: 'See Other', + 304: 'Not Modified', + 305: 'Use Proxy', + 306: '(Unused)', + 307: 'Temporary Redirect', + + 400: 'Bad Request', + 401: 'Unauthorized', + 402: 'Payment Required', + 403: 'Forbidden', + 404: 'Not Found', + 405: 'Method Not Allowed', + 406: 'Not Acceptable', + 407: 'Proxy Authentication Required', + 408: 'Request Timeout', + 409: 'Conflict', + 410: 'Gone', + 411: 'Length Required', + 412: 'Precondition Failed', + 413: 'Request Entity Too Large', + 414: 'Request-URI Too Long', + 415: 'Unsupported Media Type', + 416: 'Requested Range Not Satisfiable', + 417: 'Expectation Failed', + 428: 'Precondition Required', + 429: 'Too Many Requests', + 431: 'Request Header Fields Too Large', + + 500: 'Internal Server Error', + 501: 'Not Implemented', + 502: 'Bad Gateway', + 503: 'Service Unavailable', + 504: 'Gateway Timeout', + 505: 'HTTP Version Not Supported', + 511: 'Network Authentication Required', +} + +# maximal amount of data to read at one time in _safe_read +MAXAMOUNT = 1048576 + +# maximal line length when calling readline(). +_MAXLINE = 65536 +_MAXHEADERS = 100 + + +class HTTPMessage(email_message.Message): + # XXX The only usage of this method is in + # http.server.CGIHTTPRequestHandler. Maybe move the code there so + # that it doesn't need to be part of the public API. The API has + # never been defined so this could cause backwards compatibility + # issues. + + def getallmatchingheaders(self, name): + """Find all header lines matching a given header name. + + Look through the list of headers and find all lines matching a given + header name (and their continuation lines). A list of the lines is + returned, without interpretation. If the header does not occur, an + empty list is returned. If the header occurs multiple times, all + occurrences are returned. Case is not important in the header name. + + """ + name = name.lower() + ':' + n = len(name) + lst = [] + hit = 0 + for line in self.keys(): + if line[:n].lower() == name: + hit = 1 + elif not line[:1].isspace(): + hit = 0 + if hit: + lst.append(line) + return lst + +def parse_headers(fp, _class=HTTPMessage): + """Parses only RFC2822 headers from a file pointer. + + email Parser wants to see strings rather than bytes. + But a TextIOWrapper around self.rfile would buffer too many bytes + from the stream, bytes which we later need to read as bytes. + So we read the correct bytes here, as bytes, for email Parser + to parse. + + """ + headers = [] + while True: + line = fp.readline(_MAXLINE + 1) + if len(line) > _MAXLINE: + raise LineTooLong("header line") + headers.append(line) + if len(headers) > _MAXHEADERS: + raise HTTPException("got more than %d headers" % _MAXHEADERS) + if line in (b'\r\n', b'\n', b''): + break + hstring = bytes(b'').join(headers).decode('iso-8859-1') + return email_parser.Parser(_class=_class).parsestr(hstring) + + +_strict_sentinel = object() + +class HTTPResponse(io.RawIOBase): + + # See RFC 2616 sec 19.6 and RFC 1945 sec 6 for details. + + # The bytes from the socket object are iso-8859-1 strings. + # See RFC 2616 sec 2.2 which notes an exception for MIME-encoded + # text following RFC 2047. The basic status line parsing only + # accepts iso-8859-1. + + def __init__(self, sock, debuglevel=0, strict=_strict_sentinel, method=None, url=None): + # If the response includes a content-length header, we need to + # make sure that the client doesn't read more than the + # specified number of bytes. If it does, it will block until + # the server times out and closes the connection. This will + # happen if a self.fp.read() is done (without a size) whether + # self.fp is buffered or not. So, no self.fp.read() by + # clients unless they know what they are doing. + self.fp = sock.makefile("rb") + self.debuglevel = debuglevel + if strict is not _strict_sentinel: + warnings.warn("the 'strict' argument isn't supported anymore; " + "http.client now always assumes HTTP/1.x compliant servers.", + DeprecationWarning, 2) + self._method = method + + # The HTTPResponse object is returned via urllib. The clients + # of http and urllib expect different attributes for the + # headers. headers is used here and supports urllib. msg is + # provided as a backwards compatibility layer for http + # clients. + + self.headers = self.msg = None + + # from the Status-Line of the response + self.version = _UNKNOWN # HTTP-Version + self.status = _UNKNOWN # Status-Code + self.reason = _UNKNOWN # Reason-Phrase + + self.chunked = _UNKNOWN # is "chunked" being used? + self.chunk_left = _UNKNOWN # bytes left to read in current chunk + self.length = _UNKNOWN # number of bytes left in response + self.will_close = _UNKNOWN # conn will close at end of response + + def _read_status(self): + line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") + if len(line) > _MAXLINE: + raise LineTooLong("status line") + if self.debuglevel > 0: + print("reply:", repr(line)) + if not line: + # Presumably, the server closed the connection before + # sending a valid response. + raise BadStatusLine(line) + try: + version, status, reason = line.split(None, 2) + except ValueError: + try: + version, status = line.split(None, 1) + reason = "" + except ValueError: + # empty version will cause next test to fail. + version = "" + if not version.startswith("HTTP/"): + self._close_conn() + raise BadStatusLine(line) + + # The status code is a three-digit number + try: + status = int(status) + if status < 100 or status > 999: + raise BadStatusLine(line) + except ValueError: + raise BadStatusLine(line) + return version, status, reason + + def begin(self): + if self.headers is not None: + # we've already started reading the response + return + + # read until we get a non-100 response + while True: + version, status, reason = self._read_status() + if status != CONTINUE: + break + # skip the header from the 100 response + while True: + skip = self.fp.readline(_MAXLINE + 1) + if len(skip) > _MAXLINE: + raise LineTooLong("header line") + skip = skip.strip() + if not skip: + break + if self.debuglevel > 0: + print("header:", skip) + + self.code = self.status = status + self.reason = reason.strip() + if version in ("HTTP/1.0", "HTTP/0.9"): + # Some servers might still return "0.9", treat it as 1.0 anyway + self.version = 10 + elif version.startswith("HTTP/1."): + self.version = 11 # use HTTP/1.1 code for HTTP/1.x where x>=1 + else: + raise UnknownProtocol(version) + + self.headers = self.msg = parse_headers(self.fp) + + if self.debuglevel > 0: + for hdr in self.headers: + print("header:", hdr, end=" ") + + # are we using the chunked-style of transfer encoding? + tr_enc = self.headers.get("transfer-encoding") + if tr_enc and tr_enc.lower() == "chunked": + self.chunked = True + self.chunk_left = None + else: + self.chunked = False + + # will the connection close at the end of the response? + self.will_close = self._check_close() + + # do we have a Content-Length? + # NOTE: RFC 2616, S4.4, #3 says we ignore this if tr_enc is "chunked" + self.length = None + length = self.headers.get("content-length") + + # are we using the chunked-style of transfer encoding? + tr_enc = self.headers.get("transfer-encoding") + if length and not self.chunked: + try: + self.length = int(length) + except ValueError: + self.length = None + else: + if self.length < 0: # ignore nonsensical negative lengths + self.length = None + else: + self.length = None + + # does the body have a fixed length? (of zero) + if (status == NO_CONTENT or status == NOT_MODIFIED or + 100 <= status < 200 or # 1xx codes + self._method == "HEAD"): + self.length = 0 + + # if the connection remains open, and we aren't using chunked, and + # a content-length was not provided, then assume that the connection + # WILL close. + if (not self.will_close and + not self.chunked and + self.length is None): + self.will_close = True + + def _check_close(self): + conn = self.headers.get("connection") + if self.version == 11: + # An HTTP/1.1 proxy is assumed to stay open unless + # explicitly closed. + conn = self.headers.get("connection") + if conn and "close" in conn.lower(): + return True + return False + + # Some HTTP/1.0 implementations have support for persistent + # connections, using rules different than HTTP/1.1. + + # For older HTTP, Keep-Alive indicates persistent connection. + if self.headers.get("keep-alive"): + return False + + # At least Akamai returns a "Connection: Keep-Alive" header, + # which was supposed to be sent by the client. + if conn and "keep-alive" in conn.lower(): + return False + + # Proxy-Connection is a netscape hack. + pconn = self.headers.get("proxy-connection") + if pconn and "keep-alive" in pconn.lower(): + return False + + # otherwise, assume it will close + return True + + def _close_conn(self): + fp = self.fp + self.fp = None + fp.close() + + def close(self): + super().close() # set "closed" flag + if self.fp: + self._close_conn() + + # These implementations are for the benefit of io.BufferedReader. + + # XXX This class should probably be revised to act more like + # the "raw stream" that BufferedReader expects. + + def flush(self): + super().flush() + if self.fp: + self.fp.flush() + + def readable(self): + return True + + # End of "raw stream" methods + + def isclosed(self): + """True if the connection is closed.""" + # NOTE: it is possible that we will not ever call self.close(). This + # case occurs when will_close is TRUE, length is None, and we + # read up to the last byte, but NOT past it. + # + # IMPLIES: if will_close is FALSE, then self.close() will ALWAYS be + # called, meaning self.isclosed() is meaningful. + return self.fp is None + + def read(self, amt=None): + if self.fp is None: + return bytes(b"") + + if self._method == "HEAD": + self._close_conn() + return bytes(b"") + + if amt is not None: + # Amount is given, so call base class version + # (which is implemented in terms of self.readinto) + return bytes(super(HTTPResponse, self).read(amt)) + else: + # Amount is not given (unbounded read) so we must check self.length + # and self.chunked + + if self.chunked: + return self._readall_chunked() + + if self.length is None: + s = self.fp.read() + else: + try: + s = self._safe_read(self.length) + except IncompleteRead: + self._close_conn() + raise + self.length = 0 + self._close_conn() # we read everything + return bytes(s) + + def readinto(self, b): + if self.fp is None: + return 0 + + if self._method == "HEAD": + self._close_conn() + return 0 + + if self.chunked: + return self._readinto_chunked(b) + + if self.length is not None: + if len(b) > self.length: + # clip the read to the "end of response" + b = memoryview(b)[0:self.length] + + # we do not use _safe_read() here because this may be a .will_close + # connection, and the user is reading more bytes than will be provided + # (for example, reading in 1k chunks) + + if PY2: + data = self.fp.read(len(b)) + n = len(data) + b[:n] = data + else: + n = self.fp.readinto(b) + + if not n and b: + # Ideally, we would raise IncompleteRead if the content-length + # wasn't satisfied, but it might break compatibility. + self._close_conn() + elif self.length is not None: + self.length -= n + if not self.length: + self._close_conn() + return n + + def _read_next_chunk_size(self): + # Read the next chunk size from the file + line = self.fp.readline(_MAXLINE + 1) + if len(line) > _MAXLINE: + raise LineTooLong("chunk size") + i = line.find(b";") + if i >= 0: + line = line[:i] # strip chunk-extensions + try: + return int(line, 16) + except ValueError: + # close the connection as protocol synchronisation is + # probably lost + self._close_conn() + raise + + def _read_and_discard_trailer(self): + # read and discard trailer up to the CRLF terminator + ### note: we shouldn't have any trailers! + while True: + line = self.fp.readline(_MAXLINE + 1) + if len(line) > _MAXLINE: + raise LineTooLong("trailer line") + if not line: + # a vanishingly small number of sites EOF without + # sending the trailer + break + if line in (b'\r\n', b'\n', b''): + break + + def _readall_chunked(self): + assert self.chunked != _UNKNOWN + chunk_left = self.chunk_left + value = [] + while True: + if chunk_left is None: + try: + chunk_left = self._read_next_chunk_size() + if chunk_left == 0: + break + except ValueError: + raise IncompleteRead(bytes(b'').join(value)) + value.append(self._safe_read(chunk_left)) + + # we read the whole chunk, get another + self._safe_read(2) # toss the CRLF at the end of the chunk + chunk_left = None + + self._read_and_discard_trailer() + + # we read everything; close the "file" + self._close_conn() + + return bytes(b'').join(value) + + def _readinto_chunked(self, b): + assert self.chunked != _UNKNOWN + chunk_left = self.chunk_left + + total_bytes = 0 + mvb = memoryview(b) + while True: + if chunk_left is None: + try: + chunk_left = self._read_next_chunk_size() + if chunk_left == 0: + break + except ValueError: + raise IncompleteRead(bytes(b[0:total_bytes])) + + if len(mvb) < chunk_left: + n = self._safe_readinto(mvb) + self.chunk_left = chunk_left - n + return total_bytes + n + elif len(mvb) == chunk_left: + n = self._safe_readinto(mvb) + self._safe_read(2) # toss the CRLF at the end of the chunk + self.chunk_left = None + return total_bytes + n + else: + temp_mvb = mvb[0:chunk_left] + n = self._safe_readinto(temp_mvb) + mvb = mvb[n:] + total_bytes += n + + # we read the whole chunk, get another + self._safe_read(2) # toss the CRLF at the end of the chunk + chunk_left = None + + self._read_and_discard_trailer() + + # we read everything; close the "file" + self._close_conn() + + return total_bytes + + def _safe_read(self, amt): + """Read the number of bytes requested, compensating for partial reads. + + Normally, we have a blocking socket, but a read() can be interrupted + by a signal (resulting in a partial read). + + Note that we cannot distinguish between EOF and an interrupt when zero + bytes have been read. IncompleteRead() will be raised in this + situation. + + This function should be used when bytes "should" be present for + reading. If the bytes are truly not available (due to EOF), then the + IncompleteRead exception can be used to detect the problem. + """ + s = [] + while amt > 0: + chunk = self.fp.read(min(amt, MAXAMOUNT)) + if not chunk: + raise IncompleteRead(bytes(b'').join(s), amt) + s.append(chunk) + amt -= len(chunk) + return bytes(b"").join(s) + + def _safe_readinto(self, b): + """Same as _safe_read, but for reading into a buffer.""" + total_bytes = 0 + mvb = memoryview(b) + while total_bytes < len(b): + if MAXAMOUNT < len(mvb): + temp_mvb = mvb[0:MAXAMOUNT] + if PY2: + data = self.fp.read(len(temp_mvb)) + n = len(data) + temp_mvb[:n] = data + else: + n = self.fp.readinto(temp_mvb) + else: + if PY2: + data = self.fp.read(len(mvb)) + n = len(data) + mvb[:n] = data + else: + n = self.fp.readinto(mvb) + if not n: + raise IncompleteRead(bytes(mvb[0:total_bytes]), len(b)) + mvb = mvb[n:] + total_bytes += n + return total_bytes + + def fileno(self): + return self.fp.fileno() + + def getheader(self, name, default=None): + if self.headers is None: + raise ResponseNotReady() + headers = self.headers.get_all(name) or default + if isinstance(headers, str) or not hasattr(headers, '__iter__'): + return headers + else: + return ', '.join(headers) + + def getheaders(self): + """Return list of (header, value) tuples.""" + if self.headers is None: + raise ResponseNotReady() + return list(self.headers.items()) + + # We override IOBase.__iter__ so that it doesn't check for closed-ness + + def __iter__(self): + return self + + # For compatibility with old-style urllib responses. + + def info(self): + return self.headers + + def geturl(self): + return self.url + + def getcode(self): + return self.status + +class HTTPConnection(object): + + _http_vsn = 11 + _http_vsn_str = 'HTTP/1.1' + + response_class = HTTPResponse + default_port = HTTP_PORT + auto_open = 1 + debuglevel = 0 + + def __init__(self, host, port=None, strict=_strict_sentinel, + timeout=socket._GLOBAL_DEFAULT_TIMEOUT, source_address=None): + if strict is not _strict_sentinel: + warnings.warn("the 'strict' argument isn't supported anymore; " + "http.client now always assumes HTTP/1.x compliant servers.", + DeprecationWarning, 2) + self.timeout = timeout + self.source_address = source_address + self.sock = None + self._buffer = [] + self.__response = None + self.__state = _CS_IDLE + self._method = None + self._tunnel_host = None + self._tunnel_port = None + self._tunnel_headers = {} + + self._set_hostport(host, port) + + def set_tunnel(self, host, port=None, headers=None): + """ Sets up the host and the port for the HTTP CONNECT Tunnelling. + + The headers argument should be a mapping of extra HTTP headers + to send with the CONNECT request. + """ + self._tunnel_host = host + self._tunnel_port = port + if headers: + self._tunnel_headers = headers + else: + self._tunnel_headers.clear() + + def _set_hostport(self, host, port): + if port is None: + i = host.rfind(':') + j = host.rfind(']') # ipv6 addresses have [...] + if i > j: + try: + port = int(host[i+1:]) + except ValueError: + if host[i+1:] == "": # http://foo.com:/ == http://foo.com/ + port = self.default_port + else: + raise InvalidURL("nonnumeric port: '%s'" % host[i+1:]) + host = host[:i] + else: + port = self.default_port + if host and host[0] == '[' and host[-1] == ']': + host = host[1:-1] + self.host = host + self.port = port + + def set_debuglevel(self, level): + self.debuglevel = level + + def _tunnel(self): + self._set_hostport(self._tunnel_host, self._tunnel_port) + connect_str = "CONNECT %s:%d HTTP/1.0\r\n" % (self.host, self.port) + connect_bytes = connect_str.encode("ascii") + self.send(connect_bytes) + for header, value in self._tunnel_headers.items(): + header_str = "%s: %s\r\n" % (header, value) + header_bytes = header_str.encode("latin-1") + self.send(header_bytes) + self.send(bytes(b'\r\n')) + + response = self.response_class(self.sock, method=self._method) + (version, code, message) = response._read_status() + + if code != 200: + self.close() + raise socket.error("Tunnel connection failed: %d %s" % (code, + message.strip())) + while True: + line = response.fp.readline(_MAXLINE + 1) + if len(line) > _MAXLINE: + raise LineTooLong("header line") + if not line: + # for sites which EOF without sending a trailer + break + if line in (b'\r\n', b'\n', b''): + break + + def connect(self): + """Connect to the host and port specified in __init__.""" + self.sock = socket_create_connection((self.host,self.port), + self.timeout, self.source_address) + if self._tunnel_host: + self._tunnel() + + def close(self): + """Close the connection to the HTTP server.""" + if self.sock: + self.sock.close() # close it manually... there may be other refs + self.sock = None + if self.__response: + self.__response.close() + self.__response = None + self.__state = _CS_IDLE + + def send(self, data): + """Send `data' to the server. + ``data`` can be a string object, a bytes object, an array object, a + file-like object that supports a .read() method, or an iterable object. + """ + + if self.sock is None: + if self.auto_open: + self.connect() + else: + raise NotConnected() + + if self.debuglevel > 0: + print("send:", repr(data)) + blocksize = 8192 + # Python 2.7 array objects have a read method which is incompatible + # with the 2-arg calling syntax below. + if hasattr(data, "read") and not isinstance(data, array): + if self.debuglevel > 0: + print("sendIng a read()able") + encode = False + try: + mode = data.mode + except AttributeError: + # io.BytesIO and other file-like objects don't have a `mode` + # attribute. + pass + else: + if "b" not in mode: + encode = True + if self.debuglevel > 0: + print("encoding file using iso-8859-1") + while 1: + datablock = data.read(blocksize) + if not datablock: + break + if encode: + datablock = datablock.encode("iso-8859-1") + self.sock.sendall(datablock) + return + try: + self.sock.sendall(data) + except TypeError: + if isinstance(data, Iterable): + for d in data: + self.sock.sendall(d) + else: + raise TypeError("data should be a bytes-like object " + "or an iterable, got %r" % type(data)) + + def _output(self, s): + """Add a line of output to the current request buffer. + + Assumes that the line does *not* end with \\r\\n. + """ + self._buffer.append(s) + + def _send_output(self, message_body=None): + """Send the currently buffered request and clear the buffer. + + Appends an extra \\r\\n to the buffer. + A message_body may be specified, to be appended to the request. + """ + self._buffer.extend((bytes(b""), bytes(b""))) + msg = bytes(b"\r\n").join(self._buffer) + del self._buffer[:] + # If msg and message_body are sent in a single send() call, + # it will avoid performance problems caused by the interaction + # between delayed ack and the Nagle algorithm. + if isinstance(message_body, bytes): + msg += message_body + message_body = None + self.send(msg) + if message_body is not None: + # message_body was not a string (i.e. it is a file), and + # we must run the risk of Nagle. + self.send(message_body) + + def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0): + """Send a request to the server. + + `method' specifies an HTTP request method, e.g. 'GET'. + `url' specifies the object being requested, e.g. '/index.html'. + `skip_host' if True does not add automatically a 'Host:' header + `skip_accept_encoding' if True does not add automatically an + 'Accept-Encoding:' header + """ + + # if a prior response has been completed, then forget about it. + if self.__response and self.__response.isclosed(): + self.__response = None + + + # in certain cases, we cannot issue another request on this connection. + # this occurs when: + # 1) we are in the process of sending a request. (_CS_REQ_STARTED) + # 2) a response to a previous request has signalled that it is going + # to close the connection upon completion. + # 3) the headers for the previous response have not been read, thus + # we cannot determine whether point (2) is true. (_CS_REQ_SENT) + # + # if there is no prior response, then we can request at will. + # + # if point (2) is true, then we will have passed the socket to the + # response (effectively meaning, "there is no prior response"), and + # will open a new one when a new request is made. + # + # Note: if a prior response exists, then we *can* start a new request. + # We are not allowed to begin fetching the response to this new + # request, however, until that prior response is complete. + # + if self.__state == _CS_IDLE: + self.__state = _CS_REQ_STARTED + else: + raise CannotSendRequest(self.__state) + + # Save the method we use, we need it later in the response phase + self._method = method + if not url: + url = '/' + request = '%s %s %s' % (method, url, self._http_vsn_str) + + # Non-ASCII characters should have been eliminated earlier + self._output(request.encode('ascii')) + + if self._http_vsn == 11: + # Issue some standard headers for better HTTP/1.1 compliance + + if not skip_host: + # this header is issued *only* for HTTP/1.1 + # connections. more specifically, this means it is + # only issued when the client uses the new + # HTTPConnection() class. backwards-compat clients + # will be using HTTP/1.0 and those clients may be + # issuing this header themselves. we should NOT issue + # it twice; some web servers (such as Apache) barf + # when they see two Host: headers + + # If we need a non-standard port,include it in the + # header. If the request is going through a proxy, + # but the host of the actual URL, not the host of the + # proxy. + + netloc = '' + if url.startswith('http'): + nil, netloc, nil, nil, nil = urlsplit(url) + + if netloc: + try: + netloc_enc = netloc.encode("ascii") + except UnicodeEncodeError: + netloc_enc = netloc.encode("idna") + self.putheader('Host', netloc_enc) + else: + try: + host_enc = self.host.encode("ascii") + except UnicodeEncodeError: + host_enc = self.host.encode("idna") + + # As per RFC 273, IPv6 address should be wrapped with [] + # when used as Host header + + if self.host.find(':') >= 0: + host_enc = bytes(b'[' + host_enc + b']') + + if self.port == self.default_port: + self.putheader('Host', host_enc) + else: + host_enc = host_enc.decode("ascii") + self.putheader('Host', "%s:%s" % (host_enc, self.port)) + + # note: we are assuming that clients will not attempt to set these + # headers since *this* library must deal with the + # consequences. this also means that when the supporting + # libraries are updated to recognize other forms, then this + # code should be changed (removed or updated). + + # we only want a Content-Encoding of "identity" since we don't + # support encodings such as x-gzip or x-deflate. + if not skip_accept_encoding: + self.putheader('Accept-Encoding', 'identity') + + # we can accept "chunked" Transfer-Encodings, but no others + # NOTE: no TE header implies *only* "chunked" + #self.putheader('TE', 'chunked') + + # if TE is supplied in the header, then it must appear in a + # Connection header. + #self.putheader('Connection', 'TE') + + else: + # For HTTP/1.0, the server will assume "not chunked" + pass + + def putheader(self, header, *values): + """Send a request header line to the server. + + For example: h.putheader('Accept', 'text/html') + """ + if self.__state != _CS_REQ_STARTED: + raise CannotSendHeader() + + if hasattr(header, 'encode'): + header = header.encode('ascii') + values = list(values) + for i, one_value in enumerate(values): + if hasattr(one_value, 'encode'): + values[i] = one_value.encode('latin-1') + elif isinstance(one_value, int): + values[i] = str(one_value).encode('ascii') + value = bytes(b'\r\n\t').join(values) + header = header + bytes(b': ') + value + self._output(header) + + def endheaders(self, message_body=None): + """Indicate that the last header line has been sent to the server. + + This method sends the request to the server. The optional message_body + argument can be used to pass a message body associated with the + request. The message body will be sent in the same packet as the + message headers if it is a string, otherwise it is sent as a separate + packet. + """ + if self.__state == _CS_REQ_STARTED: + self.__state = _CS_REQ_SENT + else: + raise CannotSendHeader() + self._send_output(message_body) + + def request(self, method, url, body=None, headers={}): + """Send a complete request to the server.""" + self._send_request(method, url, body, headers) + + def _set_content_length(self, body): + # Set the content-length based on the body. + thelen = None + try: + thelen = str(len(body)) + except TypeError as te: + # If this is a file-like object, try to + # fstat its file descriptor + try: + thelen = str(os.fstat(body.fileno()).st_size) + except (AttributeError, OSError): + # Don't send a length if this failed + if self.debuglevel > 0: print("Cannot stat!!") + + if thelen is not None: + self.putheader('Content-Length', thelen) + + def _send_request(self, method, url, body, headers): + # Honor explicitly requested Host: and Accept-Encoding: headers. + header_names = dict.fromkeys([k.lower() for k in headers]) + skips = {} + if 'host' in header_names: + skips['skip_host'] = 1 + if 'accept-encoding' in header_names: + skips['skip_accept_encoding'] = 1 + + self.putrequest(method, url, **skips) + + if body is not None and ('content-length' not in header_names): + self._set_content_length(body) + for hdr, value in headers.items(): + self.putheader(hdr, value) + if isinstance(body, str): + # RFC 2616 Section 3.7.1 says that text default has a + # default charset of iso-8859-1. + body = body.encode('iso-8859-1') + self.endheaders(body) + + def getresponse(self): + """Get the response from the server. + + If the HTTPConnection is in the correct state, returns an + instance of HTTPResponse or of whatever object is returned by + class the response_class variable. + + If a request has not been sent or if a previous response has + not be handled, ResponseNotReady is raised. If the HTTP + response indicates that the connection should be closed, then + it will be closed before the response is returned. When the + connection is closed, the underlying socket is closed. + """ + + # if a prior response has been completed, then forget about it. + if self.__response and self.__response.isclosed(): + self.__response = None + + # if a prior response exists, then it must be completed (otherwise, we + # cannot read this response's header to determine the connection-close + # behavior) + # + # note: if a prior response existed, but was connection-close, then the + # socket and response were made independent of this HTTPConnection + # object since a new request requires that we open a whole new + # connection + # + # this means the prior response had one of two states: + # 1) will_close: this connection was reset and the prior socket and + # response operate independently + # 2) persistent: the response was retained and we await its + # isclosed() status to become true. + # + if self.__state != _CS_REQ_SENT or self.__response: + raise ResponseNotReady(self.__state) + + if self.debuglevel > 0: + response = self.response_class(self.sock, self.debuglevel, + method=self._method) + else: + response = self.response_class(self.sock, method=self._method) + + response.begin() + assert response.will_close != _UNKNOWN + self.__state = _CS_IDLE + + if response.will_close: + # this effectively passes the connection to the response + self.close() + else: + # remember this, so we can tell when it is complete + self.__response = response + + return response + +try: + import ssl + from ssl import SSLContext +except ImportError: + pass +else: + class HTTPSConnection(HTTPConnection): + "This class allows communication via SSL." + + default_port = HTTPS_PORT + + # XXX Should key_file and cert_file be deprecated in favour of context? + + def __init__(self, host, port=None, key_file=None, cert_file=None, + strict=_strict_sentinel, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, + source_address=None, **_3to2kwargs): + if 'check_hostname' in _3to2kwargs: check_hostname = _3to2kwargs['check_hostname']; del _3to2kwargs['check_hostname'] + else: check_hostname = None + if 'context' in _3to2kwargs: context = _3to2kwargs['context']; del _3to2kwargs['context'] + else: context = None + super(HTTPSConnection, self).__init__(host, port, strict, timeout, + source_address) + self.key_file = key_file + self.cert_file = cert_file + if context is None: + # Some reasonable defaults + context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + context.options |= ssl.OP_NO_SSLv2 + will_verify = context.verify_mode != ssl.CERT_NONE + if check_hostname is None: + check_hostname = will_verify + elif check_hostname and not will_verify: + raise ValueError("check_hostname needs a SSL context with " + "either CERT_OPTIONAL or CERT_REQUIRED") + if key_file or cert_file: + context.load_cert_chain(cert_file, key_file) + self._context = context + self._check_hostname = check_hostname + + def connect(self): + "Connect to a host on a given (SSL) port." + + sock = socket_create_connection((self.host, self.port), + self.timeout, self.source_address) + + if self._tunnel_host: + self.sock = sock + self._tunnel() + + server_hostname = self.host if ssl.HAS_SNI else None + self.sock = self._context.wrap_socket(sock, + server_hostname=server_hostname) + try: + if self._check_hostname: + ssl.match_hostname(self.sock.getpeercert(), self.host) + except Exception: + self.sock.shutdown(socket.SHUT_RDWR) + self.sock.close() + raise + + __all__.append("HTTPSConnection") + + + # ###################################### + # # We use the old HTTPSConnection class from Py2.7, because ssl.SSLContext + # # doesn't exist in the Py2.7 stdlib + # class HTTPSConnection(HTTPConnection): + # "This class allows communication via SSL." + + # default_port = HTTPS_PORT + + # def __init__(self, host, port=None, key_file=None, cert_file=None, + # strict=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, + # source_address=None): + # HTTPConnection.__init__(self, host, port, strict, timeout, + # source_address) + # self.key_file = key_file + # self.cert_file = cert_file + + # def connect(self): + # "Connect to a host on a given (SSL) port." + + # sock = socket_create_connection((self.host, self.port), + # self.timeout, self.source_address) + # if self._tunnel_host: + # self.sock = sock + # self._tunnel() + # self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file) + + # __all__.append("HTTPSConnection") + # ###################################### + + +class HTTPException(Exception): + # Subclasses that define an __init__ must call Exception.__init__ + # or define self.args. Otherwise, str() will fail. + pass + +class NotConnected(HTTPException): + pass + +class InvalidURL(HTTPException): + pass + +class UnknownProtocol(HTTPException): + def __init__(self, version): + self.args = version, + self.version = version + +class UnknownTransferEncoding(HTTPException): + pass + +class UnimplementedFileMode(HTTPException): + pass + +class IncompleteRead(HTTPException): + def __init__(self, partial, expected=None): + self.args = partial, + self.partial = partial + self.expected = expected + def __repr__(self): + if self.expected is not None: + e = ', %i more expected' % self.expected + else: + e = '' + return 'IncompleteRead(%i bytes read%s)' % (len(self.partial), e) + def __str__(self): + return repr(self) + +class ImproperConnectionState(HTTPException): + pass + +class CannotSendRequest(ImproperConnectionState): + pass + +class CannotSendHeader(ImproperConnectionState): + pass + +class ResponseNotReady(ImproperConnectionState): + pass + +class BadStatusLine(HTTPException): + def __init__(self, line): + if not line: + line = repr(line) + self.args = line, + self.line = line + +class LineTooLong(HTTPException): + def __init__(self, line_type): + HTTPException.__init__(self, "got more than %d bytes when reading %s" + % (_MAXLINE, line_type)) + +# for backwards compatibility +error = HTTPException diff --git a/venv/lib/python3.10/site-packages/future/backports/http/cookiejar.py b/venv/lib/python3.10/site-packages/future/backports/http/cookiejar.py new file mode 100644 index 0000000..a39242c --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/http/cookiejar.py @@ -0,0 +1,2116 @@ +r"""HTTP cookie handling for web clients. + +This is a backport of the Py3.3 ``http.cookiejar`` module for +python-future. + +This module has (now fairly distant) origins in Gisle Aas' Perl module +HTTP::Cookies, from the libwww-perl library. + +Docstrings, comments and debug strings in this code refer to the +attributes of the HTTP cookie system as cookie-attributes, to distinguish +them clearly from Python attributes. + +Class diagram (note that BSDDBCookieJar and the MSIE* classes are not +distributed with the Python standard library, but are available from +http://wwwsearch.sf.net/): + + CookieJar____ + / \ \ + FileCookieJar \ \ + / | \ \ \ + MozillaCookieJar | LWPCookieJar \ \ + | | \ + | ---MSIEBase | \ + | / | | \ + | / MSIEDBCookieJar BSDDBCookieJar + |/ + MSIECookieJar + +""" + +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future.builtins import filter, int, map, open, str +from future.utils import as_native_str, PY2 + +__all__ = ['Cookie', 'CookieJar', 'CookiePolicy', 'DefaultCookiePolicy', + 'FileCookieJar', 'LWPCookieJar', 'LoadError', 'MozillaCookieJar'] + +import copy +import datetime +import re +if PY2: + re.ASCII = 0 +import time +from future.backports.urllib.parse import urlparse, urlsplit, quote +from future.backports.http.client import HTTP_PORT +try: + import threading as _threading +except ImportError: + import dummy_threading as _threading +from calendar import timegm + +debug = False # set to True to enable debugging via the logging module +logger = None + +def _debug(*args): + if not debug: + return + global logger + if not logger: + import logging + logger = logging.getLogger("http.cookiejar") + return logger.debug(*args) + + +DEFAULT_HTTP_PORT = str(HTTP_PORT) +MISSING_FILENAME_TEXT = ("a filename was not supplied (nor was the CookieJar " + "instance initialised with one)") + +def _warn_unhandled_exception(): + # There are a few catch-all except: statements in this module, for + # catching input that's bad in unexpected ways. Warn if any + # exceptions are caught there. + import io, warnings, traceback + f = io.StringIO() + traceback.print_exc(None, f) + msg = f.getvalue() + warnings.warn("http.cookiejar bug!\n%s" % msg, stacklevel=2) + + +# Date/time conversion +# ----------------------------------------------------------------------------- + +EPOCH_YEAR = 1970 +def _timegm(tt): + year, month, mday, hour, min, sec = tt[:6] + if ((year >= EPOCH_YEAR) and (1 <= month <= 12) and (1 <= mday <= 31) and + (0 <= hour <= 24) and (0 <= min <= 59) and (0 <= sec <= 61)): + return timegm(tt) + else: + return None + +DAYS = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] +MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] +MONTHS_LOWER = [] +for month in MONTHS: MONTHS_LOWER.append(month.lower()) + +def time2isoz(t=None): + """Return a string representing time in seconds since epoch, t. + + If the function is called without an argument, it will use the current + time. + + The format of the returned string is like "YYYY-MM-DD hh:mm:ssZ", + representing Universal Time (UTC, aka GMT). An example of this format is: + + 1994-11-24 08:49:37Z + + """ + if t is None: + dt = datetime.datetime.utcnow() + else: + dt = datetime.datetime.utcfromtimestamp(t) + return "%04d-%02d-%02d %02d:%02d:%02dZ" % ( + dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second) + +def time2netscape(t=None): + """Return a string representing time in seconds since epoch, t. + + If the function is called without an argument, it will use the current + time. + + The format of the returned string is like this: + + Wed, DD-Mon-YYYY HH:MM:SS GMT + + """ + if t is None: + dt = datetime.datetime.utcnow() + else: + dt = datetime.datetime.utcfromtimestamp(t) + return "%s %02d-%s-%04d %02d:%02d:%02d GMT" % ( + DAYS[dt.weekday()], dt.day, MONTHS[dt.month-1], + dt.year, dt.hour, dt.minute, dt.second) + + +UTC_ZONES = {"GMT": None, "UTC": None, "UT": None, "Z": None} + +TIMEZONE_RE = re.compile(r"^([-+])?(\d\d?):?(\d\d)?$", re.ASCII) +def offset_from_tz_string(tz): + offset = None + if tz in UTC_ZONES: + offset = 0 + else: + m = TIMEZONE_RE.search(tz) + if m: + offset = 3600 * int(m.group(2)) + if m.group(3): + offset = offset + 60 * int(m.group(3)) + if m.group(1) == '-': + offset = -offset + return offset + +def _str2time(day, mon, yr, hr, min, sec, tz): + # translate month name to number + # month numbers start with 1 (January) + try: + mon = MONTHS_LOWER.index(mon.lower())+1 + except ValueError: + # maybe it's already a number + try: + imon = int(mon) + except ValueError: + return None + if 1 <= imon <= 12: + mon = imon + else: + return None + + # make sure clock elements are defined + if hr is None: hr = 0 + if min is None: min = 0 + if sec is None: sec = 0 + + yr = int(yr) + day = int(day) + hr = int(hr) + min = int(min) + sec = int(sec) + + if yr < 1000: + # find "obvious" year + cur_yr = time.localtime(time.time())[0] + m = cur_yr % 100 + tmp = yr + yr = yr + cur_yr - m + m = m - tmp + if abs(m) > 50: + if m > 0: yr = yr + 100 + else: yr = yr - 100 + + # convert UTC time tuple to seconds since epoch (not timezone-adjusted) + t = _timegm((yr, mon, day, hr, min, sec, tz)) + + if t is not None: + # adjust time using timezone string, to get absolute time since epoch + if tz is None: + tz = "UTC" + tz = tz.upper() + offset = offset_from_tz_string(tz) + if offset is None: + return None + t = t - offset + + return t + +STRICT_DATE_RE = re.compile( + r"^[SMTWF][a-z][a-z], (\d\d) ([JFMASOND][a-z][a-z]) " + "(\d\d\d\d) (\d\d):(\d\d):(\d\d) GMT$", re.ASCII) +WEEKDAY_RE = re.compile( + r"^(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)[a-z]*,?\s*", re.I | re.ASCII) +LOOSE_HTTP_DATE_RE = re.compile( + r"""^ + (\d\d?) # day + (?:\s+|[-\/]) + (\w+) # month + (?:\s+|[-\/]) + (\d+) # year + (?: + (?:\s+|:) # separator before clock + (\d\d?):(\d\d) # hour:min + (?::(\d\d))? # optional seconds + )? # optional clock + \s* + (?: + ([-+]?\d{2,4}|(?![APap][Mm]\b)[A-Za-z]+) # timezone + \s* + )? + (?: + \(\w+\) # ASCII representation of timezone in parens. + \s* + )?$""", re.X | re.ASCII) +def http2time(text): + """Returns time in seconds since epoch of time represented by a string. + + Return value is an integer. + + None is returned if the format of str is unrecognized, the time is outside + the representable range, or the timezone string is not recognized. If the + string contains no timezone, UTC is assumed. + + The timezone in the string may be numerical (like "-0800" or "+0100") or a + string timezone (like "UTC", "GMT", "BST" or "EST"). Currently, only the + timezone strings equivalent to UTC (zero offset) are known to the function. + + The function loosely parses the following formats: + + Wed, 09 Feb 1994 22:23:32 GMT -- HTTP format + Tuesday, 08-Feb-94 14:15:29 GMT -- old rfc850 HTTP format + Tuesday, 08-Feb-1994 14:15:29 GMT -- broken rfc850 HTTP format + 09 Feb 1994 22:23:32 GMT -- HTTP format (no weekday) + 08-Feb-94 14:15:29 GMT -- rfc850 format (no weekday) + 08-Feb-1994 14:15:29 GMT -- broken rfc850 format (no weekday) + + The parser ignores leading and trailing whitespace. The time may be + absent. + + If the year is given with only 2 digits, the function will select the + century that makes the year closest to the current date. + + """ + # fast exit for strictly conforming string + m = STRICT_DATE_RE.search(text) + if m: + g = m.groups() + mon = MONTHS_LOWER.index(g[1].lower()) + 1 + tt = (int(g[2]), mon, int(g[0]), + int(g[3]), int(g[4]), float(g[5])) + return _timegm(tt) + + # No, we need some messy parsing... + + # clean up + text = text.lstrip() + text = WEEKDAY_RE.sub("", text, 1) # Useless weekday + + # tz is time zone specifier string + day, mon, yr, hr, min, sec, tz = [None]*7 + + # loose regexp parse + m = LOOSE_HTTP_DATE_RE.search(text) + if m is not None: + day, mon, yr, hr, min, sec, tz = m.groups() + else: + return None # bad format + + return _str2time(day, mon, yr, hr, min, sec, tz) + +ISO_DATE_RE = re.compile( + """^ + (\d{4}) # year + [-\/]? + (\d\d?) # numerical month + [-\/]? + (\d\d?) # day + (?: + (?:\s+|[-:Tt]) # separator before clock + (\d\d?):?(\d\d) # hour:min + (?::?(\d\d(?:\.\d*)?))? # optional seconds (and fractional) + )? # optional clock + \s* + (?: + ([-+]?\d\d?:?(:?\d\d)? + |Z|z) # timezone (Z is "zero meridian", i.e. GMT) + \s* + )?$""", re.X | re. ASCII) +def iso2time(text): + """ + As for http2time, but parses the ISO 8601 formats: + + 1994-02-03 14:15:29 -0100 -- ISO 8601 format + 1994-02-03 14:15:29 -- zone is optional + 1994-02-03 -- only date + 1994-02-03T14:15:29 -- Use T as separator + 19940203T141529Z -- ISO 8601 compact format + 19940203 -- only date + + """ + # clean up + text = text.lstrip() + + # tz is time zone specifier string + day, mon, yr, hr, min, sec, tz = [None]*7 + + # loose regexp parse + m = ISO_DATE_RE.search(text) + if m is not None: + # XXX there's an extra bit of the timezone I'm ignoring here: is + # this the right thing to do? + yr, mon, day, hr, min, sec, tz, _ = m.groups() + else: + return None # bad format + + return _str2time(day, mon, yr, hr, min, sec, tz) + + +# Header parsing +# ----------------------------------------------------------------------------- + +def unmatched(match): + """Return unmatched part of re.Match object.""" + start, end = match.span(0) + return match.string[:start]+match.string[end:] + +HEADER_TOKEN_RE = re.compile(r"^\s*([^=\s;,]+)") +HEADER_QUOTED_VALUE_RE = re.compile(r"^\s*=\s*\"([^\"\\]*(?:\\.[^\"\\]*)*)\"") +HEADER_VALUE_RE = re.compile(r"^\s*=\s*([^\s;,]*)") +HEADER_ESCAPE_RE = re.compile(r"\\(.)") +def split_header_words(header_values): + r"""Parse header values into a list of lists containing key,value pairs. + + The function knows how to deal with ",", ";" and "=" as well as quoted + values after "=". A list of space separated tokens are parsed as if they + were separated by ";". + + If the header_values passed as argument contains multiple values, then they + are treated as if they were a single value separated by comma ",". + + This means that this function is useful for parsing header fields that + follow this syntax (BNF as from the HTTP/1.1 specification, but we relax + the requirement for tokens). + + headers = #header + header = (token | parameter) *( [";"] (token | parameter)) + + token = 1* + separators = "(" | ")" | "<" | ">" | "@" + | "," | ";" | ":" | "\" | <"> + | "/" | "[" | "]" | "?" | "=" + | "{" | "}" | SP | HT + + quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) + qdtext = > + quoted-pair = "\" CHAR + + parameter = attribute "=" value + attribute = token + value = token | quoted-string + + Each header is represented by a list of key/value pairs. The value for a + simple token (not part of a parameter) is None. Syntactically incorrect + headers will not necessarily be parsed as you would want. + + This is easier to describe with some examples: + + >>> split_header_words(['foo="bar"; port="80,81"; discard, bar=baz']) + [[('foo', 'bar'), ('port', '80,81'), ('discard', None)], [('bar', 'baz')]] + >>> split_header_words(['text/html; charset="iso-8859-1"']) + [[('text/html', None), ('charset', 'iso-8859-1')]] + >>> split_header_words([r'Basic realm="\"foo\bar\""']) + [[('Basic', None), ('realm', '"foobar"')]] + + """ + assert not isinstance(header_values, str) + result = [] + for text in header_values: + orig_text = text + pairs = [] + while text: + m = HEADER_TOKEN_RE.search(text) + if m: + text = unmatched(m) + name = m.group(1) + m = HEADER_QUOTED_VALUE_RE.search(text) + if m: # quoted value + text = unmatched(m) + value = m.group(1) + value = HEADER_ESCAPE_RE.sub(r"\1", value) + else: + m = HEADER_VALUE_RE.search(text) + if m: # unquoted value + text = unmatched(m) + value = m.group(1) + value = value.rstrip() + else: + # no value, a lone token + value = None + pairs.append((name, value)) + elif text.lstrip().startswith(","): + # concatenated headers, as per RFC 2616 section 4.2 + text = text.lstrip()[1:] + if pairs: result.append(pairs) + pairs = [] + else: + # skip junk + non_junk, nr_junk_chars = re.subn("^[=\s;]*", "", text) + assert nr_junk_chars > 0, ( + "split_header_words bug: '%s', '%s', %s" % + (orig_text, text, pairs)) + text = non_junk + if pairs: result.append(pairs) + return result + +HEADER_JOIN_ESCAPE_RE = re.compile(r"([\"\\])") +def join_header_words(lists): + """Do the inverse (almost) of the conversion done by split_header_words. + + Takes a list of lists of (key, value) pairs and produces a single header + value. Attribute values are quoted if needed. + + >>> join_header_words([[("text/plain", None), ("charset", "iso-8859/1")]]) + 'text/plain; charset="iso-8859/1"' + >>> join_header_words([[("text/plain", None)], [("charset", "iso-8859/1")]]) + 'text/plain, charset="iso-8859/1"' + + """ + headers = [] + for pairs in lists: + attr = [] + for k, v in pairs: + if v is not None: + if not re.search(r"^\w+$", v): + v = HEADER_JOIN_ESCAPE_RE.sub(r"\\\1", v) # escape " and \ + v = '"%s"' % v + k = "%s=%s" % (k, v) + attr.append(k) + if attr: headers.append("; ".join(attr)) + return ", ".join(headers) + +def strip_quotes(text): + if text.startswith('"'): + text = text[1:] + if text.endswith('"'): + text = text[:-1] + return text + +def parse_ns_headers(ns_headers): + """Ad-hoc parser for Netscape protocol cookie-attributes. + + The old Netscape cookie format for Set-Cookie can for instance contain + an unquoted "," in the expires field, so we have to use this ad-hoc + parser instead of split_header_words. + + XXX This may not make the best possible effort to parse all the crap + that Netscape Cookie headers contain. Ronald Tschalar's HTTPClient + parser is probably better, so could do worse than following that if + this ever gives any trouble. + + Currently, this is also used for parsing RFC 2109 cookies. + + """ + known_attrs = ("expires", "domain", "path", "secure", + # RFC 2109 attrs (may turn up in Netscape cookies, too) + "version", "port", "max-age") + + result = [] + for ns_header in ns_headers: + pairs = [] + version_set = False + for ii, param in enumerate(re.split(r";\s*", ns_header)): + param = param.rstrip() + if param == "": continue + if "=" not in param: + k, v = param, None + else: + k, v = re.split(r"\s*=\s*", param, 1) + k = k.lstrip() + if ii != 0: + lc = k.lower() + if lc in known_attrs: + k = lc + if k == "version": + # This is an RFC 2109 cookie. + v = strip_quotes(v) + version_set = True + if k == "expires": + # convert expires date to seconds since epoch + v = http2time(strip_quotes(v)) # None if invalid + pairs.append((k, v)) + + if pairs: + if not version_set: + pairs.append(("version", "0")) + result.append(pairs) + + return result + + +IPV4_RE = re.compile(r"\.\d+$", re.ASCII) +def is_HDN(text): + """Return True if text is a host domain name.""" + # XXX + # This may well be wrong. Which RFC is HDN defined in, if any (for + # the purposes of RFC 2965)? + # For the current implementation, what about IPv6? Remember to look + # at other uses of IPV4_RE also, if change this. + if IPV4_RE.search(text): + return False + if text == "": + return False + if text[0] == "." or text[-1] == ".": + return False + return True + +def domain_match(A, B): + """Return True if domain A domain-matches domain B, according to RFC 2965. + + A and B may be host domain names or IP addresses. + + RFC 2965, section 1: + + Host names can be specified either as an IP address or a HDN string. + Sometimes we compare one host name with another. (Such comparisons SHALL + be case-insensitive.) Host A's name domain-matches host B's if + + * their host name strings string-compare equal; or + + * A is a HDN string and has the form NB, where N is a non-empty + name string, B has the form .B', and B' is a HDN string. (So, + x.y.com domain-matches .Y.com but not Y.com.) + + Note that domain-match is not a commutative operation: a.b.c.com + domain-matches .c.com, but not the reverse. + + """ + # Note that, if A or B are IP addresses, the only relevant part of the + # definition of the domain-match algorithm is the direct string-compare. + A = A.lower() + B = B.lower() + if A == B: + return True + if not is_HDN(A): + return False + i = A.rfind(B) + if i == -1 or i == 0: + # A does not have form NB, or N is the empty string + return False + if not B.startswith("."): + return False + if not is_HDN(B[1:]): + return False + return True + +def liberal_is_HDN(text): + """Return True if text is a sort-of-like a host domain name. + + For accepting/blocking domains. + + """ + if IPV4_RE.search(text): + return False + return True + +def user_domain_match(A, B): + """For blocking/accepting domains. + + A and B may be host domain names or IP addresses. + + """ + A = A.lower() + B = B.lower() + if not (liberal_is_HDN(A) and liberal_is_HDN(B)): + if A == B: + # equal IP addresses + return True + return False + initial_dot = B.startswith(".") + if initial_dot and A.endswith(B): + return True + if not initial_dot and A == B: + return True + return False + +cut_port_re = re.compile(r":\d+$", re.ASCII) +def request_host(request): + """Return request-host, as defined by RFC 2965. + + Variation from RFC: returned value is lowercased, for convenient + comparison. + + """ + url = request.get_full_url() + host = urlparse(url)[1] + if host == "": + host = request.get_header("Host", "") + + # remove port, if present + host = cut_port_re.sub("", host, 1) + return host.lower() + +def eff_request_host(request): + """Return a tuple (request-host, effective request-host name). + + As defined by RFC 2965, except both are lowercased. + + """ + erhn = req_host = request_host(request) + if req_host.find(".") == -1 and not IPV4_RE.search(req_host): + erhn = req_host + ".local" + return req_host, erhn + +def request_path(request): + """Path component of request-URI, as defined by RFC 2965.""" + url = request.get_full_url() + parts = urlsplit(url) + path = escape_path(parts.path) + if not path.startswith("/"): + # fix bad RFC 2396 absoluteURI + path = "/" + path + return path + +def request_port(request): + host = request.host + i = host.find(':') + if i >= 0: + port = host[i+1:] + try: + int(port) + except ValueError: + _debug("nonnumeric port: '%s'", port) + return None + else: + port = DEFAULT_HTTP_PORT + return port + +# Characters in addition to A-Z, a-z, 0-9, '_', '.', and '-' that don't +# need to be escaped to form a valid HTTP URL (RFCs 2396 and 1738). +HTTP_PATH_SAFE = "%/;:@&=+$,!~*'()" +ESCAPED_CHAR_RE = re.compile(r"%([0-9a-fA-F][0-9a-fA-F])") +def uppercase_escaped_char(match): + return "%%%s" % match.group(1).upper() +def escape_path(path): + """Escape any invalid characters in HTTP URL, and uppercase all escapes.""" + # There's no knowing what character encoding was used to create URLs + # containing %-escapes, but since we have to pick one to escape invalid + # path characters, we pick UTF-8, as recommended in the HTML 4.0 + # specification: + # http://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.2.1 + # And here, kind of: draft-fielding-uri-rfc2396bis-03 + # (And in draft IRI specification: draft-duerst-iri-05) + # (And here, for new URI schemes: RFC 2718) + path = quote(path, HTTP_PATH_SAFE) + path = ESCAPED_CHAR_RE.sub(uppercase_escaped_char, path) + return path + +def reach(h): + """Return reach of host h, as defined by RFC 2965, section 1. + + The reach R of a host name H is defined as follows: + + * If + + - H is the host domain name of a host; and, + + - H has the form A.B; and + + - A has no embedded (that is, interior) dots; and + + - B has at least one embedded dot, or B is the string "local". + then the reach of H is .B. + + * Otherwise, the reach of H is H. + + >>> reach("www.acme.com") + '.acme.com' + >>> reach("acme.com") + 'acme.com' + >>> reach("acme.local") + '.local' + + """ + i = h.find(".") + if i >= 0: + #a = h[:i] # this line is only here to show what a is + b = h[i+1:] + i = b.find(".") + if is_HDN(h) and (i >= 0 or b == "local"): + return "."+b + return h + +def is_third_party(request): + """ + + RFC 2965, section 3.3.6: + + An unverifiable transaction is to a third-party host if its request- + host U does not domain-match the reach R of the request-host O in the + origin transaction. + + """ + req_host = request_host(request) + if not domain_match(req_host, reach(request.get_origin_req_host())): + return True + else: + return False + + +class Cookie(object): + """HTTP Cookie. + + This class represents both Netscape and RFC 2965 cookies. + + This is deliberately a very simple class. It just holds attributes. It's + possible to construct Cookie instances that don't comply with the cookie + standards. CookieJar.make_cookies is the factory function for Cookie + objects -- it deals with cookie parsing, supplying defaults, and + normalising to the representation used in this class. CookiePolicy is + responsible for checking them to see whether they should be accepted from + and returned to the server. + + Note that the port may be present in the headers, but unspecified ("Port" + rather than"Port=80", for example); if this is the case, port is None. + + """ + + def __init__(self, version, name, value, + port, port_specified, + domain, domain_specified, domain_initial_dot, + path, path_specified, + secure, + expires, + discard, + comment, + comment_url, + rest, + rfc2109=False, + ): + + if version is not None: version = int(version) + if expires is not None: expires = int(expires) + if port is None and port_specified is True: + raise ValueError("if port is None, port_specified must be false") + + self.version = version + self.name = name + self.value = value + self.port = port + self.port_specified = port_specified + # normalise case, as per RFC 2965 section 3.3.3 + self.domain = domain.lower() + self.domain_specified = domain_specified + # Sigh. We need to know whether the domain given in the + # cookie-attribute had an initial dot, in order to follow RFC 2965 + # (as clarified in draft errata). Needed for the returned $Domain + # value. + self.domain_initial_dot = domain_initial_dot + self.path = path + self.path_specified = path_specified + self.secure = secure + self.expires = expires + self.discard = discard + self.comment = comment + self.comment_url = comment_url + self.rfc2109 = rfc2109 + + self._rest = copy.copy(rest) + + def has_nonstandard_attr(self, name): + return name in self._rest + def get_nonstandard_attr(self, name, default=None): + return self._rest.get(name, default) + def set_nonstandard_attr(self, name, value): + self._rest[name] = value + + def is_expired(self, now=None): + if now is None: now = time.time() + if (self.expires is not None) and (self.expires <= now): + return True + return False + + def __str__(self): + if self.port is None: p = "" + else: p = ":"+self.port + limit = self.domain + p + self.path + if self.value is not None: + namevalue = "%s=%s" % (self.name, self.value) + else: + namevalue = self.name + return "" % (namevalue, limit) + + @as_native_str() + def __repr__(self): + args = [] + for name in ("version", "name", "value", + "port", "port_specified", + "domain", "domain_specified", "domain_initial_dot", + "path", "path_specified", + "secure", "expires", "discard", "comment", "comment_url", + ): + attr = getattr(self, name) + ### Python-Future: + # Avoid u'...' prefixes for unicode strings: + if isinstance(attr, str): + attr = str(attr) + ### + args.append(str("%s=%s") % (name, repr(attr))) + args.append("rest=%s" % repr(self._rest)) + args.append("rfc2109=%s" % repr(self.rfc2109)) + return "Cookie(%s)" % ", ".join(args) + + +class CookiePolicy(object): + """Defines which cookies get accepted from and returned to server. + + May also modify cookies, though this is probably a bad idea. + + The subclass DefaultCookiePolicy defines the standard rules for Netscape + and RFC 2965 cookies -- override that if you want a customised policy. + + """ + def set_ok(self, cookie, request): + """Return true if (and only if) cookie should be accepted from server. + + Currently, pre-expired cookies never get this far -- the CookieJar + class deletes such cookies itself. + + """ + raise NotImplementedError() + + def return_ok(self, cookie, request): + """Return true if (and only if) cookie should be returned to server.""" + raise NotImplementedError() + + def domain_return_ok(self, domain, request): + """Return false if cookies should not be returned, given cookie domain. + """ + return True + + def path_return_ok(self, path, request): + """Return false if cookies should not be returned, given cookie path. + """ + return True + + +class DefaultCookiePolicy(CookiePolicy): + """Implements the standard rules for accepting and returning cookies.""" + + DomainStrictNoDots = 1 + DomainStrictNonDomain = 2 + DomainRFC2965Match = 4 + + DomainLiberal = 0 + DomainStrict = DomainStrictNoDots|DomainStrictNonDomain + + def __init__(self, + blocked_domains=None, allowed_domains=None, + netscape=True, rfc2965=False, + rfc2109_as_netscape=None, + hide_cookie2=False, + strict_domain=False, + strict_rfc2965_unverifiable=True, + strict_ns_unverifiable=False, + strict_ns_domain=DomainLiberal, + strict_ns_set_initial_dollar=False, + strict_ns_set_path=False, + ): + """Constructor arguments should be passed as keyword arguments only.""" + self.netscape = netscape + self.rfc2965 = rfc2965 + self.rfc2109_as_netscape = rfc2109_as_netscape + self.hide_cookie2 = hide_cookie2 + self.strict_domain = strict_domain + self.strict_rfc2965_unverifiable = strict_rfc2965_unverifiable + self.strict_ns_unverifiable = strict_ns_unverifiable + self.strict_ns_domain = strict_ns_domain + self.strict_ns_set_initial_dollar = strict_ns_set_initial_dollar + self.strict_ns_set_path = strict_ns_set_path + + if blocked_domains is not None: + self._blocked_domains = tuple(blocked_domains) + else: + self._blocked_domains = () + + if allowed_domains is not None: + allowed_domains = tuple(allowed_domains) + self._allowed_domains = allowed_domains + + def blocked_domains(self): + """Return the sequence of blocked domains (as a tuple).""" + return self._blocked_domains + def set_blocked_domains(self, blocked_domains): + """Set the sequence of blocked domains.""" + self._blocked_domains = tuple(blocked_domains) + + def is_blocked(self, domain): + for blocked_domain in self._blocked_domains: + if user_domain_match(domain, blocked_domain): + return True + return False + + def allowed_domains(self): + """Return None, or the sequence of allowed domains (as a tuple).""" + return self._allowed_domains + def set_allowed_domains(self, allowed_domains): + """Set the sequence of allowed domains, or None.""" + if allowed_domains is not None: + allowed_domains = tuple(allowed_domains) + self._allowed_domains = allowed_domains + + def is_not_allowed(self, domain): + if self._allowed_domains is None: + return False + for allowed_domain in self._allowed_domains: + if user_domain_match(domain, allowed_domain): + return False + return True + + def set_ok(self, cookie, request): + """ + If you override .set_ok(), be sure to call this method. If it returns + false, so should your subclass (assuming your subclass wants to be more + strict about which cookies to accept). + + """ + _debug(" - checking cookie %s=%s", cookie.name, cookie.value) + + assert cookie.name is not None + + for n in "version", "verifiability", "name", "path", "domain", "port": + fn_name = "set_ok_"+n + fn = getattr(self, fn_name) + if not fn(cookie, request): + return False + + return True + + def set_ok_version(self, cookie, request): + if cookie.version is None: + # Version is always set to 0 by parse_ns_headers if it's a Netscape + # cookie, so this must be an invalid RFC 2965 cookie. + _debug(" Set-Cookie2 without version attribute (%s=%s)", + cookie.name, cookie.value) + return False + if cookie.version > 0 and not self.rfc2965: + _debug(" RFC 2965 cookies are switched off") + return False + elif cookie.version == 0 and not self.netscape: + _debug(" Netscape cookies are switched off") + return False + return True + + def set_ok_verifiability(self, cookie, request): + if request.unverifiable and is_third_party(request): + if cookie.version > 0 and self.strict_rfc2965_unverifiable: + _debug(" third-party RFC 2965 cookie during " + "unverifiable transaction") + return False + elif cookie.version == 0 and self.strict_ns_unverifiable: + _debug(" third-party Netscape cookie during " + "unverifiable transaction") + return False + return True + + def set_ok_name(self, cookie, request): + # Try and stop servers setting V0 cookies designed to hack other + # servers that know both V0 and V1 protocols. + if (cookie.version == 0 and self.strict_ns_set_initial_dollar and + cookie.name.startswith("$")): + _debug(" illegal name (starts with '$'): '%s'", cookie.name) + return False + return True + + def set_ok_path(self, cookie, request): + if cookie.path_specified: + req_path = request_path(request) + if ((cookie.version > 0 or + (cookie.version == 0 and self.strict_ns_set_path)) and + not req_path.startswith(cookie.path)): + _debug(" path attribute %s is not a prefix of request " + "path %s", cookie.path, req_path) + return False + return True + + def set_ok_domain(self, cookie, request): + if self.is_blocked(cookie.domain): + _debug(" domain %s is in user block-list", cookie.domain) + return False + if self.is_not_allowed(cookie.domain): + _debug(" domain %s is not in user allow-list", cookie.domain) + return False + if cookie.domain_specified: + req_host, erhn = eff_request_host(request) + domain = cookie.domain + if self.strict_domain and (domain.count(".") >= 2): + # XXX This should probably be compared with the Konqueror + # (kcookiejar.cpp) and Mozilla implementations, but it's a + # losing battle. + i = domain.rfind(".") + j = domain.rfind(".", 0, i) + if j == 0: # domain like .foo.bar + tld = domain[i+1:] + sld = domain[j+1:i] + if sld.lower() in ("co", "ac", "com", "edu", "org", "net", + "gov", "mil", "int", "aero", "biz", "cat", "coop", + "info", "jobs", "mobi", "museum", "name", "pro", + "travel", "eu") and len(tld) == 2: + # domain like .co.uk + _debug(" country-code second level domain %s", domain) + return False + if domain.startswith("."): + undotted_domain = domain[1:] + else: + undotted_domain = domain + embedded_dots = (undotted_domain.find(".") >= 0) + if not embedded_dots and domain != ".local": + _debug(" non-local domain %s contains no embedded dot", + domain) + return False + if cookie.version == 0: + if (not erhn.endswith(domain) and + (not erhn.startswith(".") and + not ("."+erhn).endswith(domain))): + _debug(" effective request-host %s (even with added " + "initial dot) does not end with %s", + erhn, domain) + return False + if (cookie.version > 0 or + (self.strict_ns_domain & self.DomainRFC2965Match)): + if not domain_match(erhn, domain): + _debug(" effective request-host %s does not domain-match " + "%s", erhn, domain) + return False + if (cookie.version > 0 or + (self.strict_ns_domain & self.DomainStrictNoDots)): + host_prefix = req_host[:-len(domain)] + if (host_prefix.find(".") >= 0 and + not IPV4_RE.search(req_host)): + _debug(" host prefix %s for domain %s contains a dot", + host_prefix, domain) + return False + return True + + def set_ok_port(self, cookie, request): + if cookie.port_specified: + req_port = request_port(request) + if req_port is None: + req_port = "80" + else: + req_port = str(req_port) + for p in cookie.port.split(","): + try: + int(p) + except ValueError: + _debug(" bad port %s (not numeric)", p) + return False + if p == req_port: + break + else: + _debug(" request port (%s) not found in %s", + req_port, cookie.port) + return False + return True + + def return_ok(self, cookie, request): + """ + If you override .return_ok(), be sure to call this method. If it + returns false, so should your subclass (assuming your subclass wants to + be more strict about which cookies to return). + + """ + # Path has already been checked by .path_return_ok(), and domain + # blocking done by .domain_return_ok(). + _debug(" - checking cookie %s=%s", cookie.name, cookie.value) + + for n in "version", "verifiability", "secure", "expires", "port", "domain": + fn_name = "return_ok_"+n + fn = getattr(self, fn_name) + if not fn(cookie, request): + return False + return True + + def return_ok_version(self, cookie, request): + if cookie.version > 0 and not self.rfc2965: + _debug(" RFC 2965 cookies are switched off") + return False + elif cookie.version == 0 and not self.netscape: + _debug(" Netscape cookies are switched off") + return False + return True + + def return_ok_verifiability(self, cookie, request): + if request.unverifiable and is_third_party(request): + if cookie.version > 0 and self.strict_rfc2965_unverifiable: + _debug(" third-party RFC 2965 cookie during unverifiable " + "transaction") + return False + elif cookie.version == 0 and self.strict_ns_unverifiable: + _debug(" third-party Netscape cookie during unverifiable " + "transaction") + return False + return True + + def return_ok_secure(self, cookie, request): + if cookie.secure and request.type != "https": + _debug(" secure cookie with non-secure request") + return False + return True + + def return_ok_expires(self, cookie, request): + if cookie.is_expired(self._now): + _debug(" cookie expired") + return False + return True + + def return_ok_port(self, cookie, request): + if cookie.port: + req_port = request_port(request) + if req_port is None: + req_port = "80" + for p in cookie.port.split(","): + if p == req_port: + break + else: + _debug(" request port %s does not match cookie port %s", + req_port, cookie.port) + return False + return True + + def return_ok_domain(self, cookie, request): + req_host, erhn = eff_request_host(request) + domain = cookie.domain + + # strict check of non-domain cookies: Mozilla does this, MSIE5 doesn't + if (cookie.version == 0 and + (self.strict_ns_domain & self.DomainStrictNonDomain) and + not cookie.domain_specified and domain != erhn): + _debug(" cookie with unspecified domain does not string-compare " + "equal to request domain") + return False + + if cookie.version > 0 and not domain_match(erhn, domain): + _debug(" effective request-host name %s does not domain-match " + "RFC 2965 cookie domain %s", erhn, domain) + return False + if cookie.version == 0 and not ("."+erhn).endswith(domain): + _debug(" request-host %s does not match Netscape cookie domain " + "%s", req_host, domain) + return False + return True + + def domain_return_ok(self, domain, request): + # Liberal check of. This is here as an optimization to avoid + # having to load lots of MSIE cookie files unless necessary. + req_host, erhn = eff_request_host(request) + if not req_host.startswith("."): + req_host = "."+req_host + if not erhn.startswith("."): + erhn = "."+erhn + if not (req_host.endswith(domain) or erhn.endswith(domain)): + #_debug(" request domain %s does not match cookie domain %s", + # req_host, domain) + return False + + if self.is_blocked(domain): + _debug(" domain %s is in user block-list", domain) + return False + if self.is_not_allowed(domain): + _debug(" domain %s is not in user allow-list", domain) + return False + + return True + + def path_return_ok(self, path, request): + _debug("- checking cookie path=%s", path) + req_path = request_path(request) + if not req_path.startswith(path): + _debug(" %s does not path-match %s", req_path, path) + return False + return True + + +def vals_sorted_by_key(adict): + keys = sorted(adict.keys()) + return map(adict.get, keys) + +def deepvalues(mapping): + """Iterates over nested mapping, depth-first, in sorted order by key.""" + values = vals_sorted_by_key(mapping) + for obj in values: + mapping = False + try: + obj.items + except AttributeError: + pass + else: + mapping = True + for subobj in deepvalues(obj): + yield subobj + if not mapping: + yield obj + + +# Used as second parameter to dict.get() method, to distinguish absent +# dict key from one with a None value. +class Absent(object): pass + +class CookieJar(object): + """Collection of HTTP cookies. + + You may not need to know about this class: try + urllib.request.build_opener(HTTPCookieProcessor).open(url). + """ + + non_word_re = re.compile(r"\W") + quote_re = re.compile(r"([\"\\])") + strict_domain_re = re.compile(r"\.?[^.]*") + domain_re = re.compile(r"[^.]*") + dots_re = re.compile(r"^\.+") + + magic_re = re.compile(r"^\#LWP-Cookies-(\d+\.\d+)", re.ASCII) + + def __init__(self, policy=None): + if policy is None: + policy = DefaultCookiePolicy() + self._policy = policy + + self._cookies_lock = _threading.RLock() + self._cookies = {} + + def set_policy(self, policy): + self._policy = policy + + def _cookies_for_domain(self, domain, request): + cookies = [] + if not self._policy.domain_return_ok(domain, request): + return [] + _debug("Checking %s for cookies to return", domain) + cookies_by_path = self._cookies[domain] + for path in cookies_by_path.keys(): + if not self._policy.path_return_ok(path, request): + continue + cookies_by_name = cookies_by_path[path] + for cookie in cookies_by_name.values(): + if not self._policy.return_ok(cookie, request): + _debug(" not returning cookie") + continue + _debug(" it's a match") + cookies.append(cookie) + return cookies + + def _cookies_for_request(self, request): + """Return a list of cookies to be returned to server.""" + cookies = [] + for domain in self._cookies.keys(): + cookies.extend(self._cookies_for_domain(domain, request)) + return cookies + + def _cookie_attrs(self, cookies): + """Return a list of cookie-attributes to be returned to server. + + like ['foo="bar"; $Path="/"', ...] + + The $Version attribute is also added when appropriate (currently only + once per request). + + """ + # add cookies in order of most specific (ie. longest) path first + cookies.sort(key=lambda a: len(a.path), reverse=True) + + version_set = False + + attrs = [] + for cookie in cookies: + # set version of Cookie header + # XXX + # What should it be if multiple matching Set-Cookie headers have + # different versions themselves? + # Answer: there is no answer; was supposed to be settled by + # RFC 2965 errata, but that may never appear... + version = cookie.version + if not version_set: + version_set = True + if version > 0: + attrs.append("$Version=%s" % version) + + # quote cookie value if necessary + # (not for Netscape protocol, which already has any quotes + # intact, due to the poorly-specified Netscape Cookie: syntax) + if ((cookie.value is not None) and + self.non_word_re.search(cookie.value) and version > 0): + value = self.quote_re.sub(r"\\\1", cookie.value) + else: + value = cookie.value + + # add cookie-attributes to be returned in Cookie header + if cookie.value is None: + attrs.append(cookie.name) + else: + attrs.append("%s=%s" % (cookie.name, value)) + if version > 0: + if cookie.path_specified: + attrs.append('$Path="%s"' % cookie.path) + if cookie.domain.startswith("."): + domain = cookie.domain + if (not cookie.domain_initial_dot and + domain.startswith(".")): + domain = domain[1:] + attrs.append('$Domain="%s"' % domain) + if cookie.port is not None: + p = "$Port" + if cookie.port_specified: + p = p + ('="%s"' % cookie.port) + attrs.append(p) + + return attrs + + def add_cookie_header(self, request): + """Add correct Cookie: header to request (urllib.request.Request object). + + The Cookie2 header is also added unless policy.hide_cookie2 is true. + + """ + _debug("add_cookie_header") + self._cookies_lock.acquire() + try: + + self._policy._now = self._now = int(time.time()) + + cookies = self._cookies_for_request(request) + + attrs = self._cookie_attrs(cookies) + if attrs: + if not request.has_header("Cookie"): + request.add_unredirected_header( + "Cookie", "; ".join(attrs)) + + # if necessary, advertise that we know RFC 2965 + if (self._policy.rfc2965 and not self._policy.hide_cookie2 and + not request.has_header("Cookie2")): + for cookie in cookies: + if cookie.version != 1: + request.add_unredirected_header("Cookie2", '$Version="1"') + break + + finally: + self._cookies_lock.release() + + self.clear_expired_cookies() + + def _normalized_cookie_tuples(self, attrs_set): + """Return list of tuples containing normalised cookie information. + + attrs_set is the list of lists of key,value pairs extracted from + the Set-Cookie or Set-Cookie2 headers. + + Tuples are name, value, standard, rest, where name and value are the + cookie name and value, standard is a dictionary containing the standard + cookie-attributes (discard, secure, version, expires or max-age, + domain, path and port) and rest is a dictionary containing the rest of + the cookie-attributes. + + """ + cookie_tuples = [] + + boolean_attrs = "discard", "secure" + value_attrs = ("version", + "expires", "max-age", + "domain", "path", "port", + "comment", "commenturl") + + for cookie_attrs in attrs_set: + name, value = cookie_attrs[0] + + # Build dictionary of standard cookie-attributes (standard) and + # dictionary of other cookie-attributes (rest). + + # Note: expiry time is normalised to seconds since epoch. V0 + # cookies should have the Expires cookie-attribute, and V1 cookies + # should have Max-Age, but since V1 includes RFC 2109 cookies (and + # since V0 cookies may be a mish-mash of Netscape and RFC 2109), we + # accept either (but prefer Max-Age). + max_age_set = False + + bad_cookie = False + + standard = {} + rest = {} + for k, v in cookie_attrs[1:]: + lc = k.lower() + # don't lose case distinction for unknown fields + if lc in value_attrs or lc in boolean_attrs: + k = lc + if k in boolean_attrs and v is None: + # boolean cookie-attribute is present, but has no value + # (like "discard", rather than "port=80") + v = True + if k in standard: + # only first value is significant + continue + if k == "domain": + if v is None: + _debug(" missing value for domain attribute") + bad_cookie = True + break + # RFC 2965 section 3.3.3 + v = v.lower() + if k == "expires": + if max_age_set: + # Prefer max-age to expires (like Mozilla) + continue + if v is None: + _debug(" missing or invalid value for expires " + "attribute: treating as session cookie") + continue + if k == "max-age": + max_age_set = True + try: + v = int(v) + except ValueError: + _debug(" missing or invalid (non-numeric) value for " + "max-age attribute") + bad_cookie = True + break + # convert RFC 2965 Max-Age to seconds since epoch + # XXX Strictly you're supposed to follow RFC 2616 + # age-calculation rules. Remember that zero Max-Age is a + # is a request to discard (old and new) cookie, though. + k = "expires" + v = self._now + v + if (k in value_attrs) or (k in boolean_attrs): + if (v is None and + k not in ("port", "comment", "commenturl")): + _debug(" missing value for %s attribute" % k) + bad_cookie = True + break + standard[k] = v + else: + rest[k] = v + + if bad_cookie: + continue + + cookie_tuples.append((name, value, standard, rest)) + + return cookie_tuples + + def _cookie_from_cookie_tuple(self, tup, request): + # standard is dict of standard cookie-attributes, rest is dict of the + # rest of them + name, value, standard, rest = tup + + domain = standard.get("domain", Absent) + path = standard.get("path", Absent) + port = standard.get("port", Absent) + expires = standard.get("expires", Absent) + + # set the easy defaults + version = standard.get("version", None) + if version is not None: + try: + version = int(version) + except ValueError: + return None # invalid version, ignore cookie + secure = standard.get("secure", False) + # (discard is also set if expires is Absent) + discard = standard.get("discard", False) + comment = standard.get("comment", None) + comment_url = standard.get("commenturl", None) + + # set default path + if path is not Absent and path != "": + path_specified = True + path = escape_path(path) + else: + path_specified = False + path = request_path(request) + i = path.rfind("/") + if i != -1: + if version == 0: + # Netscape spec parts company from reality here + path = path[:i] + else: + path = path[:i+1] + if len(path) == 0: path = "/" + + # set default domain + domain_specified = domain is not Absent + # but first we have to remember whether it starts with a dot + domain_initial_dot = False + if domain_specified: + domain_initial_dot = bool(domain.startswith(".")) + if domain is Absent: + req_host, erhn = eff_request_host(request) + domain = erhn + elif not domain.startswith("."): + domain = "."+domain + + # set default port + port_specified = False + if port is not Absent: + if port is None: + # Port attr present, but has no value: default to request port. + # Cookie should then only be sent back on that port. + port = request_port(request) + else: + port_specified = True + port = re.sub(r"\s+", "", port) + else: + # No port attr present. Cookie can be sent back on any port. + port = None + + # set default expires and discard + if expires is Absent: + expires = None + discard = True + elif expires <= self._now: + # Expiry date in past is request to delete cookie. This can't be + # in DefaultCookiePolicy, because can't delete cookies there. + try: + self.clear(domain, path, name) + except KeyError: + pass + _debug("Expiring cookie, domain='%s', path='%s', name='%s'", + domain, path, name) + return None + + return Cookie(version, + name, value, + port, port_specified, + domain, domain_specified, domain_initial_dot, + path, path_specified, + secure, + expires, + discard, + comment, + comment_url, + rest) + + def _cookies_from_attrs_set(self, attrs_set, request): + cookie_tuples = self._normalized_cookie_tuples(attrs_set) + + cookies = [] + for tup in cookie_tuples: + cookie = self._cookie_from_cookie_tuple(tup, request) + if cookie: cookies.append(cookie) + return cookies + + def _process_rfc2109_cookies(self, cookies): + rfc2109_as_ns = getattr(self._policy, 'rfc2109_as_netscape', None) + if rfc2109_as_ns is None: + rfc2109_as_ns = not self._policy.rfc2965 + for cookie in cookies: + if cookie.version == 1: + cookie.rfc2109 = True + if rfc2109_as_ns: + # treat 2109 cookies as Netscape cookies rather than + # as RFC2965 cookies + cookie.version = 0 + + def make_cookies(self, response, request): + """Return sequence of Cookie objects extracted from response object.""" + # get cookie-attributes for RFC 2965 and Netscape protocols + headers = response.info() + rfc2965_hdrs = headers.get_all("Set-Cookie2", []) + ns_hdrs = headers.get_all("Set-Cookie", []) + + rfc2965 = self._policy.rfc2965 + netscape = self._policy.netscape + + if ((not rfc2965_hdrs and not ns_hdrs) or + (not ns_hdrs and not rfc2965) or + (not rfc2965_hdrs and not netscape) or + (not netscape and not rfc2965)): + return [] # no relevant cookie headers: quick exit + + try: + cookies = self._cookies_from_attrs_set( + split_header_words(rfc2965_hdrs), request) + except Exception: + _warn_unhandled_exception() + cookies = [] + + if ns_hdrs and netscape: + try: + # RFC 2109 and Netscape cookies + ns_cookies = self._cookies_from_attrs_set( + parse_ns_headers(ns_hdrs), request) + except Exception: + _warn_unhandled_exception() + ns_cookies = [] + self._process_rfc2109_cookies(ns_cookies) + + # Look for Netscape cookies (from Set-Cookie headers) that match + # corresponding RFC 2965 cookies (from Set-Cookie2 headers). + # For each match, keep the RFC 2965 cookie and ignore the Netscape + # cookie (RFC 2965 section 9.1). Actually, RFC 2109 cookies are + # bundled in with the Netscape cookies for this purpose, which is + # reasonable behaviour. + if rfc2965: + lookup = {} + for cookie in cookies: + lookup[(cookie.domain, cookie.path, cookie.name)] = None + + def no_matching_rfc2965(ns_cookie, lookup=lookup): + key = ns_cookie.domain, ns_cookie.path, ns_cookie.name + return key not in lookup + ns_cookies = filter(no_matching_rfc2965, ns_cookies) + + if ns_cookies: + cookies.extend(ns_cookies) + + return cookies + + def set_cookie_if_ok(self, cookie, request): + """Set a cookie if policy says it's OK to do so.""" + self._cookies_lock.acquire() + try: + self._policy._now = self._now = int(time.time()) + + if self._policy.set_ok(cookie, request): + self.set_cookie(cookie) + + + finally: + self._cookies_lock.release() + + def set_cookie(self, cookie): + """Set a cookie, without checking whether or not it should be set.""" + c = self._cookies + self._cookies_lock.acquire() + try: + if cookie.domain not in c: c[cookie.domain] = {} + c2 = c[cookie.domain] + if cookie.path not in c2: c2[cookie.path] = {} + c3 = c2[cookie.path] + c3[cookie.name] = cookie + finally: + self._cookies_lock.release() + + def extract_cookies(self, response, request): + """Extract cookies from response, where allowable given the request.""" + _debug("extract_cookies: %s", response.info()) + self._cookies_lock.acquire() + try: + self._policy._now = self._now = int(time.time()) + + for cookie in self.make_cookies(response, request): + if self._policy.set_ok(cookie, request): + _debug(" setting cookie: %s", cookie) + self.set_cookie(cookie) + finally: + self._cookies_lock.release() + + def clear(self, domain=None, path=None, name=None): + """Clear some cookies. + + Invoking this method without arguments will clear all cookies. If + given a single argument, only cookies belonging to that domain will be + removed. If given two arguments, cookies belonging to the specified + path within that domain are removed. If given three arguments, then + the cookie with the specified name, path and domain is removed. + + Raises KeyError if no matching cookie exists. + + """ + if name is not None: + if (domain is None) or (path is None): + raise ValueError( + "domain and path must be given to remove a cookie by name") + del self._cookies[domain][path][name] + elif path is not None: + if domain is None: + raise ValueError( + "domain must be given to remove cookies by path") + del self._cookies[domain][path] + elif domain is not None: + del self._cookies[domain] + else: + self._cookies = {} + + def clear_session_cookies(self): + """Discard all session cookies. + + Note that the .save() method won't save session cookies anyway, unless + you ask otherwise by passing a true ignore_discard argument. + + """ + self._cookies_lock.acquire() + try: + for cookie in self: + if cookie.discard: + self.clear(cookie.domain, cookie.path, cookie.name) + finally: + self._cookies_lock.release() + + def clear_expired_cookies(self): + """Discard all expired cookies. + + You probably don't need to call this method: expired cookies are never + sent back to the server (provided you're using DefaultCookiePolicy), + this method is called by CookieJar itself every so often, and the + .save() method won't save expired cookies anyway (unless you ask + otherwise by passing a true ignore_expires argument). + + """ + self._cookies_lock.acquire() + try: + now = time.time() + for cookie in self: + if cookie.is_expired(now): + self.clear(cookie.domain, cookie.path, cookie.name) + finally: + self._cookies_lock.release() + + def __iter__(self): + return deepvalues(self._cookies) + + def __len__(self): + """Return number of contained cookies.""" + i = 0 + for cookie in self: i = i + 1 + return i + + @as_native_str() + def __repr__(self): + r = [] + for cookie in self: r.append(repr(cookie)) + return "<%s[%s]>" % (self.__class__, ", ".join(r)) + + def __str__(self): + r = [] + for cookie in self: r.append(str(cookie)) + return "<%s[%s]>" % (self.__class__, ", ".join(r)) + + +# derives from IOError for backwards-compatibility with Python 2.4.0 +class LoadError(IOError): pass + +class FileCookieJar(CookieJar): + """CookieJar that can be loaded from and saved to a file.""" + + def __init__(self, filename=None, delayload=False, policy=None): + """ + Cookies are NOT loaded from the named file until either the .load() or + .revert() method is called. + + """ + CookieJar.__init__(self, policy) + if filename is not None: + try: + filename+"" + except: + raise ValueError("filename must be string-like") + self.filename = filename + self.delayload = bool(delayload) + + def save(self, filename=None, ignore_discard=False, ignore_expires=False): + """Save cookies to a file.""" + raise NotImplementedError() + + def load(self, filename=None, ignore_discard=False, ignore_expires=False): + """Load cookies from a file.""" + if filename is None: + if self.filename is not None: filename = self.filename + else: raise ValueError(MISSING_FILENAME_TEXT) + + f = open(filename) + try: + self._really_load(f, filename, ignore_discard, ignore_expires) + finally: + f.close() + + def revert(self, filename=None, + ignore_discard=False, ignore_expires=False): + """Clear all cookies and reload cookies from a saved file. + + Raises LoadError (or IOError) if reversion is not successful; the + object's state will not be altered if this happens. + + """ + if filename is None: + if self.filename is not None: filename = self.filename + else: raise ValueError(MISSING_FILENAME_TEXT) + + self._cookies_lock.acquire() + try: + + old_state = copy.deepcopy(self._cookies) + self._cookies = {} + try: + self.load(filename, ignore_discard, ignore_expires) + except (LoadError, IOError): + self._cookies = old_state + raise + + finally: + self._cookies_lock.release() + + +def lwp_cookie_str(cookie): + """Return string representation of Cookie in an the LWP cookie file format. + + Actually, the format is extended a bit -- see module docstring. + + """ + h = [(cookie.name, cookie.value), + ("path", cookie.path), + ("domain", cookie.domain)] + if cookie.port is not None: h.append(("port", cookie.port)) + if cookie.path_specified: h.append(("path_spec", None)) + if cookie.port_specified: h.append(("port_spec", None)) + if cookie.domain_initial_dot: h.append(("domain_dot", None)) + if cookie.secure: h.append(("secure", None)) + if cookie.expires: h.append(("expires", + time2isoz(float(cookie.expires)))) + if cookie.discard: h.append(("discard", None)) + if cookie.comment: h.append(("comment", cookie.comment)) + if cookie.comment_url: h.append(("commenturl", cookie.comment_url)) + + keys = sorted(cookie._rest.keys()) + for k in keys: + h.append((k, str(cookie._rest[k]))) + + h.append(("version", str(cookie.version))) + + return join_header_words([h]) + +class LWPCookieJar(FileCookieJar): + """ + The LWPCookieJar saves a sequence of "Set-Cookie3" lines. + "Set-Cookie3" is the format used by the libwww-perl library, not known + to be compatible with any browser, but which is easy to read and + doesn't lose information about RFC 2965 cookies. + + Additional methods + + as_lwp_str(ignore_discard=True, ignore_expired=True) + + """ + + def as_lwp_str(self, ignore_discard=True, ignore_expires=True): + """Return cookies as a string of "\\n"-separated "Set-Cookie3" headers. + + ignore_discard and ignore_expires: see docstring for FileCookieJar.save + + """ + now = time.time() + r = [] + for cookie in self: + if not ignore_discard and cookie.discard: + continue + if not ignore_expires and cookie.is_expired(now): + continue + r.append("Set-Cookie3: %s" % lwp_cookie_str(cookie)) + return "\n".join(r+[""]) + + def save(self, filename=None, ignore_discard=False, ignore_expires=False): + if filename is None: + if self.filename is not None: filename = self.filename + else: raise ValueError(MISSING_FILENAME_TEXT) + + f = open(filename, "w") + try: + # There really isn't an LWP Cookies 2.0 format, but this indicates + # that there is extra information in here (domain_dot and + # port_spec) while still being compatible with libwww-perl, I hope. + f.write("#LWP-Cookies-2.0\n") + f.write(self.as_lwp_str(ignore_discard, ignore_expires)) + finally: + f.close() + + def _really_load(self, f, filename, ignore_discard, ignore_expires): + magic = f.readline() + if not self.magic_re.search(magic): + msg = ("%r does not look like a Set-Cookie3 (LWP) format " + "file" % filename) + raise LoadError(msg) + + now = time.time() + + header = "Set-Cookie3:" + boolean_attrs = ("port_spec", "path_spec", "domain_dot", + "secure", "discard") + value_attrs = ("version", + "port", "path", "domain", + "expires", + "comment", "commenturl") + + try: + while 1: + line = f.readline() + if line == "": break + if not line.startswith(header): + continue + line = line[len(header):].strip() + + for data in split_header_words([line]): + name, value = data[0] + standard = {} + rest = {} + for k in boolean_attrs: + standard[k] = False + for k, v in data[1:]: + if k is not None: + lc = k.lower() + else: + lc = None + # don't lose case distinction for unknown fields + if (lc in value_attrs) or (lc in boolean_attrs): + k = lc + if k in boolean_attrs: + if v is None: v = True + standard[k] = v + elif k in value_attrs: + standard[k] = v + else: + rest[k] = v + + h = standard.get + expires = h("expires") + discard = h("discard") + if expires is not None: + expires = iso2time(expires) + if expires is None: + discard = True + domain = h("domain") + domain_specified = domain.startswith(".") + c = Cookie(h("version"), name, value, + h("port"), h("port_spec"), + domain, domain_specified, h("domain_dot"), + h("path"), h("path_spec"), + h("secure"), + expires, + discard, + h("comment"), + h("commenturl"), + rest) + if not ignore_discard and c.discard: + continue + if not ignore_expires and c.is_expired(now): + continue + self.set_cookie(c) + + except IOError: + raise + except Exception: + _warn_unhandled_exception() + raise LoadError("invalid Set-Cookie3 format file %r: %r" % + (filename, line)) + + +class MozillaCookieJar(FileCookieJar): + """ + + WARNING: you may want to backup your browser's cookies file if you use + this class to save cookies. I *think* it works, but there have been + bugs in the past! + + This class differs from CookieJar only in the format it uses to save and + load cookies to and from a file. This class uses the Mozilla/Netscape + `cookies.txt' format. lynx uses this file format, too. + + Don't expect cookies saved while the browser is running to be noticed by + the browser (in fact, Mozilla on unix will overwrite your saved cookies if + you change them on disk while it's running; on Windows, you probably can't + save at all while the browser is running). + + Note that the Mozilla/Netscape format will downgrade RFC2965 cookies to + Netscape cookies on saving. + + In particular, the cookie version and port number information is lost, + together with information about whether or not Path, Port and Discard were + specified by the Set-Cookie2 (or Set-Cookie) header, and whether or not the + domain as set in the HTTP header started with a dot (yes, I'm aware some + domains in Netscape files start with a dot and some don't -- trust me, you + really don't want to know any more about this). + + Note that though Mozilla and Netscape use the same format, they use + slightly different headers. The class saves cookies using the Netscape + header by default (Mozilla can cope with that). + + """ + magic_re = re.compile("#( Netscape)? HTTP Cookie File") + header = """\ +# Netscape HTTP Cookie File +# http://www.netscape.com/newsref/std/cookie_spec.html +# This is a generated file! Do not edit. + +""" + + def _really_load(self, f, filename, ignore_discard, ignore_expires): + now = time.time() + + magic = f.readline() + if not self.magic_re.search(magic): + f.close() + raise LoadError( + "%r does not look like a Netscape format cookies file" % + filename) + + try: + while 1: + line = f.readline() + if line == "": break + + # last field may be absent, so keep any trailing tab + if line.endswith("\n"): line = line[:-1] + + # skip comments and blank lines XXX what is $ for? + if (line.strip().startswith(("#", "$")) or + line.strip() == ""): + continue + + domain, domain_specified, path, secure, expires, name, value = \ + line.split("\t") + secure = (secure == "TRUE") + domain_specified = (domain_specified == "TRUE") + if name == "": + # cookies.txt regards 'Set-Cookie: foo' as a cookie + # with no name, whereas http.cookiejar regards it as a + # cookie with no value. + name = value + value = None + + initial_dot = domain.startswith(".") + assert domain_specified == initial_dot + + discard = False + if expires == "": + expires = None + discard = True + + # assume path_specified is false + c = Cookie(0, name, value, + None, False, + domain, domain_specified, initial_dot, + path, False, + secure, + expires, + discard, + None, + None, + {}) + if not ignore_discard and c.discard: + continue + if not ignore_expires and c.is_expired(now): + continue + self.set_cookie(c) + + except IOError: + raise + except Exception: + _warn_unhandled_exception() + raise LoadError("invalid Netscape format cookies file %r: %r" % + (filename, line)) + + def save(self, filename=None, ignore_discard=False, ignore_expires=False): + if filename is None: + if self.filename is not None: filename = self.filename + else: raise ValueError(MISSING_FILENAME_TEXT) + + f = open(filename, "w") + try: + f.write(self.header) + now = time.time() + for cookie in self: + if not ignore_discard and cookie.discard: + continue + if not ignore_expires and cookie.is_expired(now): + continue + if cookie.secure: secure = "TRUE" + else: secure = "FALSE" + if cookie.domain.startswith("."): initial_dot = "TRUE" + else: initial_dot = "FALSE" + if cookie.expires is not None: + expires = str(cookie.expires) + else: + expires = "" + if cookie.value is None: + # cookies.txt regards 'Set-Cookie: foo' as a cookie + # with no name, whereas http.cookiejar regards it as a + # cookie with no value. + name = "" + value = cookie.name + else: + name = cookie.name + value = cookie.value + f.write( + "\t".join([cookie.domain, initial_dot, cookie.path, + secure, expires, name, value])+ + "\n") + finally: + f.close() diff --git a/venv/lib/python3.10/site-packages/future/backports/http/cookies.py b/venv/lib/python3.10/site-packages/future/backports/http/cookies.py new file mode 100644 index 0000000..8bb61e2 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/http/cookies.py @@ -0,0 +1,598 @@ +#### +# Copyright 2000 by Timothy O'Malley +# +# All Rights Reserved +# +# Permission to use, copy, modify, and distribute this software +# and its documentation for any purpose and without fee is hereby +# granted, provided that the above copyright notice appear in all +# copies and that both that copyright notice and this permission +# notice appear in supporting documentation, and that the name of +# Timothy O'Malley not be used in advertising or publicity +# pertaining to distribution of the software without specific, written +# prior permission. +# +# Timothy O'Malley DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +# SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS, IN NO EVENT SHALL Timothy O'Malley BE LIABLE FOR +# ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. +# +#### +# +# Id: Cookie.py,v 2.29 2000/08/23 05:28:49 timo Exp +# by Timothy O'Malley +# +# Cookie.py is a Python module for the handling of HTTP +# cookies as a Python dictionary. See RFC 2109 for more +# information on cookies. +# +# The original idea to treat Cookies as a dictionary came from +# Dave Mitchell (davem@magnet.com) in 1995, when he released the +# first version of nscookie.py. +# +#### + +r""" +http.cookies module ported to python-future from Py3.3 + +Here's a sample session to show how to use this module. +At the moment, this is the only documentation. + +The Basics +---------- + +Importing is easy... + + >>> from http import cookies + +Most of the time you start by creating a cookie. + + >>> C = cookies.SimpleCookie() + +Once you've created your Cookie, you can add values just as if it were +a dictionary. + + >>> C = cookies.SimpleCookie() + >>> C["fig"] = "newton" + >>> C["sugar"] = "wafer" + >>> C.output() + 'Set-Cookie: fig=newton\r\nSet-Cookie: sugar=wafer' + +Notice that the printable representation of a Cookie is the +appropriate format for a Set-Cookie: header. This is the +default behavior. You can change the header and printed +attributes by using the .output() function + + >>> C = cookies.SimpleCookie() + >>> C["rocky"] = "road" + >>> C["rocky"]["path"] = "/cookie" + >>> print(C.output(header="Cookie:")) + Cookie: rocky=road; Path=/cookie + >>> print(C.output(attrs=[], header="Cookie:")) + Cookie: rocky=road + +The load() method of a Cookie extracts cookies from a string. In a +CGI script, you would use this method to extract the cookies from the +HTTP_COOKIE environment variable. + + >>> C = cookies.SimpleCookie() + >>> C.load("chips=ahoy; vienna=finger") + >>> C.output() + 'Set-Cookie: chips=ahoy\r\nSet-Cookie: vienna=finger' + +The load() method is darn-tootin smart about identifying cookies +within a string. Escaped quotation marks, nested semicolons, and other +such trickeries do not confuse it. + + >>> C = cookies.SimpleCookie() + >>> C.load('keebler="E=everybody; L=\\"Loves\\"; fudge=\\012;";') + >>> print(C) + Set-Cookie: keebler="E=everybody; L=\"Loves\"; fudge=\012;" + +Each element of the Cookie also supports all of the RFC 2109 +Cookie attributes. Here's an example which sets the Path +attribute. + + >>> C = cookies.SimpleCookie() + >>> C["oreo"] = "doublestuff" + >>> C["oreo"]["path"] = "/" + >>> print(C) + Set-Cookie: oreo=doublestuff; Path=/ + +Each dictionary element has a 'value' attribute, which gives you +back the value associated with the key. + + >>> C = cookies.SimpleCookie() + >>> C["twix"] = "none for you" + >>> C["twix"].value + 'none for you' + +The SimpleCookie expects that all values should be standard strings. +Just to be sure, SimpleCookie invokes the str() builtin to convert +the value to a string, when the values are set dictionary-style. + + >>> C = cookies.SimpleCookie() + >>> C["number"] = 7 + >>> C["string"] = "seven" + >>> C["number"].value + '7' + >>> C["string"].value + 'seven' + >>> C.output() + 'Set-Cookie: number=7\r\nSet-Cookie: string=seven' + +Finis. +""" +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future.builtins import chr, dict, int, str +from future.utils import PY2, as_native_str + +# +# Import our required modules +# +import re +if PY2: + re.ASCII = 0 # for py2 compatibility +import string + +__all__ = ["CookieError", "BaseCookie", "SimpleCookie"] + +_nulljoin = ''.join +_semispacejoin = '; '.join +_spacejoin = ' '.join + +# +# Define an exception visible to External modules +# +class CookieError(Exception): + pass + + +# These quoting routines conform to the RFC2109 specification, which in +# turn references the character definitions from RFC2068. They provide +# a two-way quoting algorithm. Any non-text character is translated +# into a 4 character sequence: a forward-slash followed by the +# three-digit octal equivalent of the character. Any '\' or '"' is +# quoted with a preceeding '\' slash. +# +# These are taken from RFC2068 and RFC2109. +# _LegalChars is the list of chars which don't require "'s +# _Translator hash-table for fast quoting +# +_LegalChars = string.ascii_letters + string.digits + "!#$%&'*+-.^_`|~:" +_Translator = { + '\000' : '\\000', '\001' : '\\001', '\002' : '\\002', + '\003' : '\\003', '\004' : '\\004', '\005' : '\\005', + '\006' : '\\006', '\007' : '\\007', '\010' : '\\010', + '\011' : '\\011', '\012' : '\\012', '\013' : '\\013', + '\014' : '\\014', '\015' : '\\015', '\016' : '\\016', + '\017' : '\\017', '\020' : '\\020', '\021' : '\\021', + '\022' : '\\022', '\023' : '\\023', '\024' : '\\024', + '\025' : '\\025', '\026' : '\\026', '\027' : '\\027', + '\030' : '\\030', '\031' : '\\031', '\032' : '\\032', + '\033' : '\\033', '\034' : '\\034', '\035' : '\\035', + '\036' : '\\036', '\037' : '\\037', + + # Because of the way browsers really handle cookies (as opposed + # to what the RFC says) we also encode , and ; + + ',' : '\\054', ';' : '\\073', + + '"' : '\\"', '\\' : '\\\\', + + '\177' : '\\177', '\200' : '\\200', '\201' : '\\201', + '\202' : '\\202', '\203' : '\\203', '\204' : '\\204', + '\205' : '\\205', '\206' : '\\206', '\207' : '\\207', + '\210' : '\\210', '\211' : '\\211', '\212' : '\\212', + '\213' : '\\213', '\214' : '\\214', '\215' : '\\215', + '\216' : '\\216', '\217' : '\\217', '\220' : '\\220', + '\221' : '\\221', '\222' : '\\222', '\223' : '\\223', + '\224' : '\\224', '\225' : '\\225', '\226' : '\\226', + '\227' : '\\227', '\230' : '\\230', '\231' : '\\231', + '\232' : '\\232', '\233' : '\\233', '\234' : '\\234', + '\235' : '\\235', '\236' : '\\236', '\237' : '\\237', + '\240' : '\\240', '\241' : '\\241', '\242' : '\\242', + '\243' : '\\243', '\244' : '\\244', '\245' : '\\245', + '\246' : '\\246', '\247' : '\\247', '\250' : '\\250', + '\251' : '\\251', '\252' : '\\252', '\253' : '\\253', + '\254' : '\\254', '\255' : '\\255', '\256' : '\\256', + '\257' : '\\257', '\260' : '\\260', '\261' : '\\261', + '\262' : '\\262', '\263' : '\\263', '\264' : '\\264', + '\265' : '\\265', '\266' : '\\266', '\267' : '\\267', + '\270' : '\\270', '\271' : '\\271', '\272' : '\\272', + '\273' : '\\273', '\274' : '\\274', '\275' : '\\275', + '\276' : '\\276', '\277' : '\\277', '\300' : '\\300', + '\301' : '\\301', '\302' : '\\302', '\303' : '\\303', + '\304' : '\\304', '\305' : '\\305', '\306' : '\\306', + '\307' : '\\307', '\310' : '\\310', '\311' : '\\311', + '\312' : '\\312', '\313' : '\\313', '\314' : '\\314', + '\315' : '\\315', '\316' : '\\316', '\317' : '\\317', + '\320' : '\\320', '\321' : '\\321', '\322' : '\\322', + '\323' : '\\323', '\324' : '\\324', '\325' : '\\325', + '\326' : '\\326', '\327' : '\\327', '\330' : '\\330', + '\331' : '\\331', '\332' : '\\332', '\333' : '\\333', + '\334' : '\\334', '\335' : '\\335', '\336' : '\\336', + '\337' : '\\337', '\340' : '\\340', '\341' : '\\341', + '\342' : '\\342', '\343' : '\\343', '\344' : '\\344', + '\345' : '\\345', '\346' : '\\346', '\347' : '\\347', + '\350' : '\\350', '\351' : '\\351', '\352' : '\\352', + '\353' : '\\353', '\354' : '\\354', '\355' : '\\355', + '\356' : '\\356', '\357' : '\\357', '\360' : '\\360', + '\361' : '\\361', '\362' : '\\362', '\363' : '\\363', + '\364' : '\\364', '\365' : '\\365', '\366' : '\\366', + '\367' : '\\367', '\370' : '\\370', '\371' : '\\371', + '\372' : '\\372', '\373' : '\\373', '\374' : '\\374', + '\375' : '\\375', '\376' : '\\376', '\377' : '\\377' + } + +def _quote(str, LegalChars=_LegalChars): + r"""Quote a string for use in a cookie header. + + If the string does not need to be double-quoted, then just return the + string. Otherwise, surround the string in doublequotes and quote + (with a \) special characters. + """ + if all(c in LegalChars for c in str): + return str + else: + return '"' + _nulljoin(_Translator.get(s, s) for s in str) + '"' + + +_OctalPatt = re.compile(r"\\[0-3][0-7][0-7]") +_QuotePatt = re.compile(r"[\\].") + +def _unquote(mystr): + # If there aren't any doublequotes, + # then there can't be any special characters. See RFC 2109. + if len(mystr) < 2: + return mystr + if mystr[0] != '"' or mystr[-1] != '"': + return mystr + + # We have to assume that we must decode this string. + # Down to work. + + # Remove the "s + mystr = mystr[1:-1] + + # Check for special sequences. Examples: + # \012 --> \n + # \" --> " + # + i = 0 + n = len(mystr) + res = [] + while 0 <= i < n: + o_match = _OctalPatt.search(mystr, i) + q_match = _QuotePatt.search(mystr, i) + if not o_match and not q_match: # Neither matched + res.append(mystr[i:]) + break + # else: + j = k = -1 + if o_match: + j = o_match.start(0) + if q_match: + k = q_match.start(0) + if q_match and (not o_match or k < j): # QuotePatt matched + res.append(mystr[i:k]) + res.append(mystr[k+1]) + i = k + 2 + else: # OctalPatt matched + res.append(mystr[i:j]) + res.append(chr(int(mystr[j+1:j+4], 8))) + i = j + 4 + return _nulljoin(res) + +# The _getdate() routine is used to set the expiration time in the cookie's HTTP +# header. By default, _getdate() returns the current time in the appropriate +# "expires" format for a Set-Cookie header. The one optional argument is an +# offset from now, in seconds. For example, an offset of -3600 means "one hour +# ago". The offset may be a floating point number. +# + +_weekdayname = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + +_monthname = [None, + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + +def _getdate(future=0, weekdayname=_weekdayname, monthname=_monthname): + from time import gmtime, time + now = time() + year, month, day, hh, mm, ss, wd, y, z = gmtime(now + future) + return "%s, %02d %3s %4d %02d:%02d:%02d GMT" % \ + (weekdayname[wd], day, monthname[month], year, hh, mm, ss) + + +class Morsel(dict): + """A class to hold ONE (key, value) pair. + + In a cookie, each such pair may have several attributes, so this class is + used to keep the attributes associated with the appropriate key,value pair. + This class also includes a coded_value attribute, which is used to hold + the network representation of the value. This is most useful when Python + objects are pickled for network transit. + """ + # RFC 2109 lists these attributes as reserved: + # path comment domain + # max-age secure version + # + # For historical reasons, these attributes are also reserved: + # expires + # + # This is an extension from Microsoft: + # httponly + # + # This dictionary provides a mapping from the lowercase + # variant on the left to the appropriate traditional + # formatting on the right. + _reserved = { + "expires" : "expires", + "path" : "Path", + "comment" : "Comment", + "domain" : "Domain", + "max-age" : "Max-Age", + "secure" : "secure", + "httponly" : "httponly", + "version" : "Version", + } + + _flags = set(['secure', 'httponly']) + + def __init__(self): + # Set defaults + self.key = self.value = self.coded_value = None + + # Set default attributes + for key in self._reserved: + dict.__setitem__(self, key, "") + + def __setitem__(self, K, V): + K = K.lower() + if not K in self._reserved: + raise CookieError("Invalid Attribute %s" % K) + dict.__setitem__(self, K, V) + + def isReservedKey(self, K): + return K.lower() in self._reserved + + def set(self, key, val, coded_val, LegalChars=_LegalChars): + # First we verify that the key isn't a reserved word + # Second we make sure it only contains legal characters + if key.lower() in self._reserved: + raise CookieError("Attempt to set a reserved key: %s" % key) + if any(c not in LegalChars for c in key): + raise CookieError("Illegal key value: %s" % key) + + # It's a good key, so save it. + self.key = key + self.value = val + self.coded_value = coded_val + + def output(self, attrs=None, header="Set-Cookie:"): + return "%s %s" % (header, self.OutputString(attrs)) + + __str__ = output + + @as_native_str() + def __repr__(self): + if PY2 and isinstance(self.value, unicode): + val = str(self.value) # make it a newstr to remove the u prefix + else: + val = self.value + return '<%s: %s=%s>' % (self.__class__.__name__, + str(self.key), repr(val)) + + def js_output(self, attrs=None): + # Print javascript + return """ + + """ % (self.OutputString(attrs).replace('"', r'\"')) + + def OutputString(self, attrs=None): + # Build up our result + # + result = [] + append = result.append + + # First, the key=value pair + append("%s=%s" % (self.key, self.coded_value)) + + # Now add any defined attributes + if attrs is None: + attrs = self._reserved + items = sorted(self.items()) + for key, value in items: + if value == "": + continue + if key not in attrs: + continue + if key == "expires" and isinstance(value, int): + append("%s=%s" % (self._reserved[key], _getdate(value))) + elif key == "max-age" and isinstance(value, int): + append("%s=%d" % (self._reserved[key], value)) + elif key == "secure": + append(str(self._reserved[key])) + elif key == "httponly": + append(str(self._reserved[key])) + else: + append("%s=%s" % (self._reserved[key], value)) + + # Return the result + return _semispacejoin(result) + + +# +# Pattern for finding cookie +# +# This used to be strict parsing based on the RFC2109 and RFC2068 +# specifications. I have since discovered that MSIE 3.0x doesn't +# follow the character rules outlined in those specs. As a +# result, the parsing rules here are less strict. +# + +_LegalCharsPatt = r"[\w\d!#%&'~_`><@,:/\$\*\+\-\.\^\|\)\(\?\}\{\=]" +_CookiePattern = re.compile(r""" + (?x) # This is a verbose pattern + (?P # Start of group 'key' + """ + _LegalCharsPatt + r"""+? # Any word of at least one letter + ) # End of group 'key' + ( # Optional group: there may not be a value. + \s*=\s* # Equal Sign + (?P # Start of group 'val' + "(?:[^\\"]|\\.)*" # Any doublequoted string + | # or + \w{3},\s[\w\d\s-]{9,11}\s[\d:]{8}\sGMT # Special case for "expires" attr + | # or + """ + _LegalCharsPatt + r"""* # Any word or empty string + ) # End of group 'val' + )? # End of optional value group + \s* # Any number of spaces. + (\s+|;|$) # Ending either at space, semicolon, or EOS. + """, re.ASCII) # May be removed if safe. + + +# At long last, here is the cookie class. Using this class is almost just like +# using a dictionary. See this module's docstring for example usage. +# +class BaseCookie(dict): + """A container class for a set of Morsels.""" + + def value_decode(self, val): + """real_value, coded_value = value_decode(STRING) + Called prior to setting a cookie's value from the network + representation. The VALUE is the value read from HTTP + header. + Override this function to modify the behavior of cookies. + """ + return val, val + + def value_encode(self, val): + """real_value, coded_value = value_encode(VALUE) + Called prior to setting a cookie's value from the dictionary + representation. The VALUE is the value being assigned. + Override this function to modify the behavior of cookies. + """ + strval = str(val) + return strval, strval + + def __init__(self, input=None): + if input: + self.load(input) + + def __set(self, key, real_value, coded_value): + """Private method for setting a cookie's value""" + M = self.get(key, Morsel()) + M.set(key, real_value, coded_value) + dict.__setitem__(self, key, M) + + def __setitem__(self, key, value): + """Dictionary style assignment.""" + rval, cval = self.value_encode(value) + self.__set(key, rval, cval) + + def output(self, attrs=None, header="Set-Cookie:", sep="\015\012"): + """Return a string suitable for HTTP.""" + result = [] + items = sorted(self.items()) + for key, value in items: + result.append(value.output(attrs, header)) + return sep.join(result) + + __str__ = output + + @as_native_str() + def __repr__(self): + l = [] + items = sorted(self.items()) + for key, value in items: + if PY2 and isinstance(value.value, unicode): + val = str(value.value) # make it a newstr to remove the u prefix + else: + val = value.value + l.append('%s=%s' % (str(key), repr(val))) + return '<%s: %s>' % (self.__class__.__name__, _spacejoin(l)) + + def js_output(self, attrs=None): + """Return a string suitable for JavaScript.""" + result = [] + items = sorted(self.items()) + for key, value in items: + result.append(value.js_output(attrs)) + return _nulljoin(result) + + def load(self, rawdata): + """Load cookies from a string (presumably HTTP_COOKIE) or + from a dictionary. Loading cookies from a dictionary 'd' + is equivalent to calling: + map(Cookie.__setitem__, d.keys(), d.values()) + """ + if isinstance(rawdata, str): + self.__parse_string(rawdata) + else: + # self.update() wouldn't call our custom __setitem__ + for key, value in rawdata.items(): + self[key] = value + return + + def __parse_string(self, mystr, patt=_CookiePattern): + i = 0 # Our starting point + n = len(mystr) # Length of string + M = None # current morsel + + while 0 <= i < n: + # Start looking for a cookie + match = patt.search(mystr, i) + if not match: + # No more cookies + break + + key, value = match.group("key"), match.group("val") + + i = match.end(0) + + # Parse the key, value in case it's metainfo + if key[0] == "$": + # We ignore attributes which pertain to the cookie + # mechanism as a whole. See RFC 2109. + # (Does anyone care?) + if M: + M[key[1:]] = value + elif key.lower() in Morsel._reserved: + if M: + if value is None: + if key.lower() in Morsel._flags: + M[key] = True + else: + M[key] = _unquote(value) + elif value is not None: + rval, cval = self.value_decode(value) + self.__set(key, rval, cval) + M = self[key] + + +class SimpleCookie(BaseCookie): + """ + SimpleCookie supports strings as cookie values. When setting + the value using the dictionary assignment notation, SimpleCookie + calls the builtin str() to convert the value to a string. Values + received from HTTP are kept as strings. + """ + def value_decode(self, val): + return _unquote(val), val + + def value_encode(self, val): + strval = str(val) + return strval, _quote(strval) diff --git a/venv/lib/python3.10/site-packages/future/backports/http/server.py b/venv/lib/python3.10/site-packages/future/backports/http/server.py new file mode 100644 index 0000000..b1c11e0 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/http/server.py @@ -0,0 +1,1226 @@ +"""HTTP server classes. + +From Python 3.3 + +Note: BaseHTTPRequestHandler doesn't implement any HTTP request; see +SimpleHTTPRequestHandler for simple implementations of GET, HEAD and POST, +and CGIHTTPRequestHandler for CGI scripts. + +It does, however, optionally implement HTTP/1.1 persistent connections, +as of version 0.3. + +Notes on CGIHTTPRequestHandler +------------------------------ + +This class implements GET and POST requests to cgi-bin scripts. + +If the os.fork() function is not present (e.g. on Windows), +subprocess.Popen() is used as a fallback, with slightly altered semantics. + +In all cases, the implementation is intentionally naive -- all +requests are executed synchronously. + +SECURITY WARNING: DON'T USE THIS CODE UNLESS YOU ARE INSIDE A FIREWALL +-- it may execute arbitrary Python code or external programs. + +Note that status code 200 is sent prior to execution of a CGI script, so +scripts cannot send other status codes such as 302 (redirect). + +XXX To do: + +- log requests even later (to capture byte count) +- log user-agent header and other interesting goodies +- send error log to separate file +""" + +from __future__ import (absolute_import, division, + print_function, unicode_literals) +from future import utils +from future.builtins import * + + +# See also: +# +# HTTP Working Group T. Berners-Lee +# INTERNET-DRAFT R. T. Fielding +# H. Frystyk Nielsen +# Expires September 8, 1995 March 8, 1995 +# +# URL: http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-v10-spec-00.txt +# +# and +# +# Network Working Group R. Fielding +# Request for Comments: 2616 et al +# Obsoletes: 2068 June 1999 +# Category: Standards Track +# +# URL: http://www.faqs.org/rfcs/rfc2616.html + +# Log files +# --------- +# +# Here's a quote from the NCSA httpd docs about log file format. +# +# | The logfile format is as follows. Each line consists of: +# | +# | host rfc931 authuser [DD/Mon/YYYY:hh:mm:ss] "request" ddd bbbb +# | +# | host: Either the DNS name or the IP number of the remote client +# | rfc931: Any information returned by identd for this person, +# | - otherwise. +# | authuser: If user sent a userid for authentication, the user name, +# | - otherwise. +# | DD: Day +# | Mon: Month (calendar name) +# | YYYY: Year +# | hh: hour (24-hour format, the machine's timezone) +# | mm: minutes +# | ss: seconds +# | request: The first line of the HTTP request as sent by the client. +# | ddd: the status code returned by the server, - if not available. +# | bbbb: the total number of bytes sent, +# | *not including the HTTP/1.0 header*, - if not available +# | +# | You can determine the name of the file accessed through request. +# +# (Actually, the latter is only true if you know the server configuration +# at the time the request was made!) + +__version__ = "0.6" + +__all__ = ["HTTPServer", "BaseHTTPRequestHandler"] + +from future.backports import html +from future.backports.http import client as http_client +from future.backports.urllib import parse as urllib_parse +from future.backports import socketserver + +import io +import mimetypes +import os +import posixpath +import select +import shutil +import socket # For gethostbyaddr() +import sys +import time +import copy +import argparse + + +# Default error message template +DEFAULT_ERROR_MESSAGE = """\ + + + + + Error response + + +

    Error response

    +

    Error code: %(code)d

    +

    Message: %(message)s.

    +

    Error code explanation: %(code)s - %(explain)s.

    + + +""" + +DEFAULT_ERROR_CONTENT_TYPE = "text/html;charset=utf-8" + +def _quote_html(html): + return html.replace("&", "&").replace("<", "<").replace(">", ">") + +class HTTPServer(socketserver.TCPServer): + + allow_reuse_address = 1 # Seems to make sense in testing environment + + def server_bind(self): + """Override server_bind to store the server name.""" + socketserver.TCPServer.server_bind(self) + host, port = self.socket.getsockname()[:2] + self.server_name = socket.getfqdn(host) + self.server_port = port + + +class BaseHTTPRequestHandler(socketserver.StreamRequestHandler): + + """HTTP request handler base class. + + The following explanation of HTTP serves to guide you through the + code as well as to expose any misunderstandings I may have about + HTTP (so you don't need to read the code to figure out I'm wrong + :-). + + HTTP (HyperText Transfer Protocol) is an extensible protocol on + top of a reliable stream transport (e.g. TCP/IP). The protocol + recognizes three parts to a request: + + 1. One line identifying the request type and path + 2. An optional set of RFC-822-style headers + 3. An optional data part + + The headers and data are separated by a blank line. + + The first line of the request has the form + + + + where is a (case-sensitive) keyword such as GET or POST, + is a string containing path information for the request, + and should be the string "HTTP/1.0" or "HTTP/1.1". + is encoded using the URL encoding scheme (using %xx to signify + the ASCII character with hex code xx). + + The specification specifies that lines are separated by CRLF but + for compatibility with the widest range of clients recommends + servers also handle LF. Similarly, whitespace in the request line + is treated sensibly (allowing multiple spaces between components + and allowing trailing whitespace). + + Similarly, for output, lines ought to be separated by CRLF pairs + but most clients grok LF characters just fine. + + If the first line of the request has the form + + + + (i.e. is left out) then this is assumed to be an HTTP + 0.9 request; this form has no optional headers and data part and + the reply consists of just the data. + + The reply form of the HTTP 1.x protocol again has three parts: + + 1. One line giving the response code + 2. An optional set of RFC-822-style headers + 3. The data + + Again, the headers and data are separated by a blank line. + + The response code line has the form + + + + where is the protocol version ("HTTP/1.0" or "HTTP/1.1"), + is a 3-digit response code indicating success or + failure of the request, and is an optional + human-readable string explaining what the response code means. + + This server parses the request and the headers, and then calls a + function specific to the request type (). Specifically, + a request SPAM will be handled by a method do_SPAM(). If no + such method exists the server sends an error response to the + client. If it exists, it is called with no arguments: + + do_SPAM() + + Note that the request name is case sensitive (i.e. SPAM and spam + are different requests). + + The various request details are stored in instance variables: + + - client_address is the client IP address in the form (host, + port); + + - command, path and version are the broken-down request line; + + - headers is an instance of email.message.Message (or a derived + class) containing the header information; + + - rfile is a file object open for reading positioned at the + start of the optional input data part; + + - wfile is a file object open for writing. + + IT IS IMPORTANT TO ADHERE TO THE PROTOCOL FOR WRITING! + + The first thing to be written must be the response line. Then + follow 0 or more header lines, then a blank line, and then the + actual data (if any). The meaning of the header lines depends on + the command executed by the server; in most cases, when data is + returned, there should be at least one header line of the form + + Content-type: / + + where and should be registered MIME types, + e.g. "text/html" or "text/plain". + + """ + + # The Python system version, truncated to its first component. + sys_version = "Python/" + sys.version.split()[0] + + # The server software version. You may want to override this. + # The format is multiple whitespace-separated strings, + # where each string is of the form name[/version]. + server_version = "BaseHTTP/" + __version__ + + error_message_format = DEFAULT_ERROR_MESSAGE + error_content_type = DEFAULT_ERROR_CONTENT_TYPE + + # The default request version. This only affects responses up until + # the point where the request line is parsed, so it mainly decides what + # the client gets back when sending a malformed request line. + # Most web servers default to HTTP 0.9, i.e. don't send a status line. + default_request_version = "HTTP/0.9" + + def parse_request(self): + """Parse a request (internal). + + The request should be stored in self.raw_requestline; the results + are in self.command, self.path, self.request_version and + self.headers. + + Return True for success, False for failure; on failure, an + error is sent back. + + """ + self.command = None # set in case of error on the first line + self.request_version = version = self.default_request_version + self.close_connection = 1 + requestline = str(self.raw_requestline, 'iso-8859-1') + requestline = requestline.rstrip('\r\n') + self.requestline = requestline + words = requestline.split() + if len(words) == 3: + command, path, version = words + if version[:5] != 'HTTP/': + self.send_error(400, "Bad request version (%r)" % version) + return False + try: + base_version_number = version.split('/', 1)[1] + version_number = base_version_number.split(".") + # RFC 2145 section 3.1 says there can be only one "." and + # - major and minor numbers MUST be treated as + # separate integers; + # - HTTP/2.4 is a lower version than HTTP/2.13, which in + # turn is lower than HTTP/12.3; + # - Leading zeros MUST be ignored by recipients. + if len(version_number) != 2: + raise ValueError + version_number = int(version_number[0]), int(version_number[1]) + except (ValueError, IndexError): + self.send_error(400, "Bad request version (%r)" % version) + return False + if version_number >= (1, 1) and self.protocol_version >= "HTTP/1.1": + self.close_connection = 0 + if version_number >= (2, 0): + self.send_error(505, + "Invalid HTTP Version (%s)" % base_version_number) + return False + elif len(words) == 2: + command, path = words + self.close_connection = 1 + if command != 'GET': + self.send_error(400, + "Bad HTTP/0.9 request type (%r)" % command) + return False + elif not words: + return False + else: + self.send_error(400, "Bad request syntax (%r)" % requestline) + return False + self.command, self.path, self.request_version = command, path, version + + # Examine the headers and look for a Connection directive. + try: + self.headers = http_client.parse_headers(self.rfile, + _class=self.MessageClass) + except http_client.LineTooLong: + self.send_error(400, "Line too long") + return False + + conntype = self.headers.get('Connection', "") + if conntype.lower() == 'close': + self.close_connection = 1 + elif (conntype.lower() == 'keep-alive' and + self.protocol_version >= "HTTP/1.1"): + self.close_connection = 0 + # Examine the headers and look for an Expect directive + expect = self.headers.get('Expect', "") + if (expect.lower() == "100-continue" and + self.protocol_version >= "HTTP/1.1" and + self.request_version >= "HTTP/1.1"): + if not self.handle_expect_100(): + return False + return True + + def handle_expect_100(self): + """Decide what to do with an "Expect: 100-continue" header. + + If the client is expecting a 100 Continue response, we must + respond with either a 100 Continue or a final response before + waiting for the request body. The default is to always respond + with a 100 Continue. You can behave differently (for example, + reject unauthorized requests) by overriding this method. + + This method should either return True (possibly after sending + a 100 Continue response) or send an error response and return + False. + + """ + self.send_response_only(100) + self.flush_headers() + return True + + def handle_one_request(self): + """Handle a single HTTP request. + + You normally don't need to override this method; see the class + __doc__ string for information on how to handle specific HTTP + commands such as GET and POST. + + """ + try: + self.raw_requestline = self.rfile.readline(65537) + if len(self.raw_requestline) > 65536: + self.requestline = '' + self.request_version = '' + self.command = '' + self.send_error(414) + return + if not self.raw_requestline: + self.close_connection = 1 + return + if not self.parse_request(): + # An error code has been sent, just exit + return + mname = 'do_' + self.command + if not hasattr(self, mname): + self.send_error(501, "Unsupported method (%r)" % self.command) + return + method = getattr(self, mname) + method() + self.wfile.flush() #actually send the response if not already done. + except socket.timeout as e: + #a read or a write timed out. Discard this connection + self.log_error("Request timed out: %r", e) + self.close_connection = 1 + return + + def handle(self): + """Handle multiple requests if necessary.""" + self.close_connection = 1 + + self.handle_one_request() + while not self.close_connection: + self.handle_one_request() + + def send_error(self, code, message=None): + """Send and log an error reply. + + Arguments are the error code, and a detailed message. + The detailed message defaults to the short entry matching the + response code. + + This sends an error response (so it must be called before any + output has been generated), logs the error, and finally sends + a piece of HTML explaining the error to the user. + + """ + + try: + shortmsg, longmsg = self.responses[code] + except KeyError: + shortmsg, longmsg = '???', '???' + if message is None: + message = shortmsg + explain = longmsg + self.log_error("code %d, message %s", code, message) + # using _quote_html to prevent Cross Site Scripting attacks (see bug #1100201) + content = (self.error_message_format % + {'code': code, 'message': _quote_html(message), 'explain': explain}) + self.send_response(code, message) + self.send_header("Content-Type", self.error_content_type) + self.send_header('Connection', 'close') + self.end_headers() + if self.command != 'HEAD' and code >= 200 and code not in (204, 304): + self.wfile.write(content.encode('UTF-8', 'replace')) + + def send_response(self, code, message=None): + """Add the response header to the headers buffer and log the + response code. + + Also send two standard headers with the server software + version and the current date. + + """ + self.log_request(code) + self.send_response_only(code, message) + self.send_header('Server', self.version_string()) + self.send_header('Date', self.date_time_string()) + + def send_response_only(self, code, message=None): + """Send the response header only.""" + if message is None: + if code in self.responses: + message = self.responses[code][0] + else: + message = '' + if self.request_version != 'HTTP/0.9': + if not hasattr(self, '_headers_buffer'): + self._headers_buffer = [] + self._headers_buffer.append(("%s %d %s\r\n" % + (self.protocol_version, code, message)).encode( + 'latin-1', 'strict')) + + def send_header(self, keyword, value): + """Send a MIME header to the headers buffer.""" + if self.request_version != 'HTTP/0.9': + if not hasattr(self, '_headers_buffer'): + self._headers_buffer = [] + self._headers_buffer.append( + ("%s: %s\r\n" % (keyword, value)).encode('latin-1', 'strict')) + + if keyword.lower() == 'connection': + if value.lower() == 'close': + self.close_connection = 1 + elif value.lower() == 'keep-alive': + self.close_connection = 0 + + def end_headers(self): + """Send the blank line ending the MIME headers.""" + if self.request_version != 'HTTP/0.9': + self._headers_buffer.append(b"\r\n") + self.flush_headers() + + def flush_headers(self): + if hasattr(self, '_headers_buffer'): + self.wfile.write(b"".join(self._headers_buffer)) + self._headers_buffer = [] + + def log_request(self, code='-', size='-'): + """Log an accepted request. + + This is called by send_response(). + + """ + + self.log_message('"%s" %s %s', + self.requestline, str(code), str(size)) + + def log_error(self, format, *args): + """Log an error. + + This is called when a request cannot be fulfilled. By + default it passes the message on to log_message(). + + Arguments are the same as for log_message(). + + XXX This should go to the separate error log. + + """ + + self.log_message(format, *args) + + def log_message(self, format, *args): + """Log an arbitrary message. + + This is used by all other logging functions. Override + it if you have specific logging wishes. + + The first argument, FORMAT, is a format string for the + message to be logged. If the format string contains + any % escapes requiring parameters, they should be + specified as subsequent arguments (it's just like + printf!). + + The client ip and current date/time are prefixed to + every message. + + """ + + sys.stderr.write("%s - - [%s] %s\n" % + (self.address_string(), + self.log_date_time_string(), + format%args)) + + def version_string(self): + """Return the server software version string.""" + return self.server_version + ' ' + self.sys_version + + def date_time_string(self, timestamp=None): + """Return the current date and time formatted for a message header.""" + if timestamp is None: + timestamp = time.time() + year, month, day, hh, mm, ss, wd, y, z = time.gmtime(timestamp) + s = "%s, %02d %3s %4d %02d:%02d:%02d GMT" % ( + self.weekdayname[wd], + day, self.monthname[month], year, + hh, mm, ss) + return s + + def log_date_time_string(self): + """Return the current time formatted for logging.""" + now = time.time() + year, month, day, hh, mm, ss, x, y, z = time.localtime(now) + s = "%02d/%3s/%04d %02d:%02d:%02d" % ( + day, self.monthname[month], year, hh, mm, ss) + return s + + weekdayname = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + + monthname = [None, + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + + def address_string(self): + """Return the client address.""" + + return self.client_address[0] + + # Essentially static class variables + + # The version of the HTTP protocol we support. + # Set this to HTTP/1.1 to enable automatic keepalive + protocol_version = "HTTP/1.0" + + # MessageClass used to parse headers + MessageClass = http_client.HTTPMessage + + # Table mapping response codes to messages; entries have the + # form {code: (shortmessage, longmessage)}. + # See RFC 2616 and 6585. + responses = { + 100: ('Continue', 'Request received, please continue'), + 101: ('Switching Protocols', + 'Switching to new protocol; obey Upgrade header'), + + 200: ('OK', 'Request fulfilled, document follows'), + 201: ('Created', 'Document created, URL follows'), + 202: ('Accepted', + 'Request accepted, processing continues off-line'), + 203: ('Non-Authoritative Information', 'Request fulfilled from cache'), + 204: ('No Content', 'Request fulfilled, nothing follows'), + 205: ('Reset Content', 'Clear input form for further input.'), + 206: ('Partial Content', 'Partial content follows.'), + + 300: ('Multiple Choices', + 'Object has several resources -- see URI list'), + 301: ('Moved Permanently', 'Object moved permanently -- see URI list'), + 302: ('Found', 'Object moved temporarily -- see URI list'), + 303: ('See Other', 'Object moved -- see Method and URL list'), + 304: ('Not Modified', + 'Document has not changed since given time'), + 305: ('Use Proxy', + 'You must use proxy specified in Location to access this ' + 'resource.'), + 307: ('Temporary Redirect', + 'Object moved temporarily -- see URI list'), + + 400: ('Bad Request', + 'Bad request syntax or unsupported method'), + 401: ('Unauthorized', + 'No permission -- see authorization schemes'), + 402: ('Payment Required', + 'No payment -- see charging schemes'), + 403: ('Forbidden', + 'Request forbidden -- authorization will not help'), + 404: ('Not Found', 'Nothing matches the given URI'), + 405: ('Method Not Allowed', + 'Specified method is invalid for this resource.'), + 406: ('Not Acceptable', 'URI not available in preferred format.'), + 407: ('Proxy Authentication Required', 'You must authenticate with ' + 'this proxy before proceeding.'), + 408: ('Request Timeout', 'Request timed out; try again later.'), + 409: ('Conflict', 'Request conflict.'), + 410: ('Gone', + 'URI no longer exists and has been permanently removed.'), + 411: ('Length Required', 'Client must specify Content-Length.'), + 412: ('Precondition Failed', 'Precondition in headers is false.'), + 413: ('Request Entity Too Large', 'Entity is too large.'), + 414: ('Request-URI Too Long', 'URI is too long.'), + 415: ('Unsupported Media Type', 'Entity body in unsupported format.'), + 416: ('Requested Range Not Satisfiable', + 'Cannot satisfy request range.'), + 417: ('Expectation Failed', + 'Expect condition could not be satisfied.'), + 428: ('Precondition Required', + 'The origin server requires the request to be conditional.'), + 429: ('Too Many Requests', 'The user has sent too many requests ' + 'in a given amount of time ("rate limiting").'), + 431: ('Request Header Fields Too Large', 'The server is unwilling to ' + 'process the request because its header fields are too large.'), + + 500: ('Internal Server Error', 'Server got itself in trouble'), + 501: ('Not Implemented', + 'Server does not support this operation'), + 502: ('Bad Gateway', 'Invalid responses from another server/proxy.'), + 503: ('Service Unavailable', + 'The server cannot process the request due to a high load'), + 504: ('Gateway Timeout', + 'The gateway server did not receive a timely response'), + 505: ('HTTP Version Not Supported', 'Cannot fulfill request.'), + 511: ('Network Authentication Required', + 'The client needs to authenticate to gain network access.'), + } + + +class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): + + """Simple HTTP request handler with GET and HEAD commands. + + This serves files from the current directory and any of its + subdirectories. The MIME type for files is determined by + calling the .guess_type() method. + + The GET and HEAD requests are identical except that the HEAD + request omits the actual contents of the file. + + """ + + server_version = "SimpleHTTP/" + __version__ + + def do_GET(self): + """Serve a GET request.""" + f = self.send_head() + if f: + self.copyfile(f, self.wfile) + f.close() + + def do_HEAD(self): + """Serve a HEAD request.""" + f = self.send_head() + if f: + f.close() + + def send_head(self): + """Common code for GET and HEAD commands. + + This sends the response code and MIME headers. + + Return value is either a file object (which has to be copied + to the outputfile by the caller unless the command was HEAD, + and must be closed by the caller under all circumstances), or + None, in which case the caller has nothing further to do. + + """ + path = self.translate_path(self.path) + f = None + if os.path.isdir(path): + if not self.path.endswith('/'): + # redirect browser - doing basically what apache does + self.send_response(301) + self.send_header("Location", self.path + "/") + self.end_headers() + return None + for index in "index.html", "index.htm": + index = os.path.join(path, index) + if os.path.exists(index): + path = index + break + else: + return self.list_directory(path) + ctype = self.guess_type(path) + try: + f = open(path, 'rb') + except IOError: + self.send_error(404, "File not found") + return None + self.send_response(200) + self.send_header("Content-type", ctype) + fs = os.fstat(f.fileno()) + self.send_header("Content-Length", str(fs[6])) + self.send_header("Last-Modified", self.date_time_string(fs.st_mtime)) + self.end_headers() + return f + + def list_directory(self, path): + """Helper to produce a directory listing (absent index.html). + + Return value is either a file object, or None (indicating an + error). In either case, the headers are sent, making the + interface the same as for send_head(). + + """ + try: + list = os.listdir(path) + except os.error: + self.send_error(404, "No permission to list directory") + return None + list.sort(key=lambda a: a.lower()) + r = [] + displaypath = html.escape(urllib_parse.unquote(self.path)) + enc = sys.getfilesystemencoding() + title = 'Directory listing for %s' % displaypath + r.append('') + r.append('\n') + r.append('' % enc) + r.append('%s\n' % title) + r.append('\n

    %s

    ' % title) + r.append('
    \n
    \n
    \n\n\n') + encoded = '\n'.join(r).encode(enc) + f = io.BytesIO() + f.write(encoded) + f.seek(0) + self.send_response(200) + self.send_header("Content-type", "text/html; charset=%s" % enc) + self.send_header("Content-Length", str(len(encoded))) + self.end_headers() + return f + + def translate_path(self, path): + """Translate a /-separated PATH to the local filename syntax. + + Components that mean special things to the local file system + (e.g. drive or directory names) are ignored. (XXX They should + probably be diagnosed.) + + """ + # abandon query parameters + path = path.split('?',1)[0] + path = path.split('#',1)[0] + path = posixpath.normpath(urllib_parse.unquote(path)) + words = path.split('/') + words = filter(None, words) + path = os.getcwd() + for word in words: + drive, word = os.path.splitdrive(word) + head, word = os.path.split(word) + if word in (os.curdir, os.pardir): continue + path = os.path.join(path, word) + return path + + def copyfile(self, source, outputfile): + """Copy all data between two file objects. + + The SOURCE argument is a file object open for reading + (or anything with a read() method) and the DESTINATION + argument is a file object open for writing (or + anything with a write() method). + + The only reason for overriding this would be to change + the block size or perhaps to replace newlines by CRLF + -- note however that this the default server uses this + to copy binary data as well. + + """ + shutil.copyfileobj(source, outputfile) + + def guess_type(self, path): + """Guess the type of a file. + + Argument is a PATH (a filename). + + Return value is a string of the form type/subtype, + usable for a MIME Content-type header. + + The default implementation looks the file's extension + up in the table self.extensions_map, using application/octet-stream + as a default; however it would be permissible (if + slow) to look inside the data to make a better guess. + + """ + + base, ext = posixpath.splitext(path) + if ext in self.extensions_map: + return self.extensions_map[ext] + ext = ext.lower() + if ext in self.extensions_map: + return self.extensions_map[ext] + else: + return self.extensions_map[''] + + if not mimetypes.inited: + mimetypes.init() # try to read system mime.types + extensions_map = mimetypes.types_map.copy() + extensions_map.update({ + '': 'application/octet-stream', # Default + '.py': 'text/plain', + '.c': 'text/plain', + '.h': 'text/plain', + }) + + +# Utilities for CGIHTTPRequestHandler + +def _url_collapse_path(path): + """ + Given a URL path, remove extra '/'s and '.' path elements and collapse + any '..' references and returns a colllapsed path. + + Implements something akin to RFC-2396 5.2 step 6 to parse relative paths. + The utility of this function is limited to is_cgi method and helps + preventing some security attacks. + + Returns: A tuple of (head, tail) where tail is everything after the final / + and head is everything before it. Head will always start with a '/' and, + if it contains anything else, never have a trailing '/'. + + Raises: IndexError if too many '..' occur within the path. + + """ + # Similar to os.path.split(os.path.normpath(path)) but specific to URL + # path semantics rather than local operating system semantics. + path_parts = path.split('/') + head_parts = [] + for part in path_parts[:-1]: + if part == '..': + head_parts.pop() # IndexError if more '..' than prior parts + elif part and part != '.': + head_parts.append( part ) + if path_parts: + tail_part = path_parts.pop() + if tail_part: + if tail_part == '..': + head_parts.pop() + tail_part = '' + elif tail_part == '.': + tail_part = '' + else: + tail_part = '' + + splitpath = ('/' + '/'.join(head_parts), tail_part) + collapsed_path = "/".join(splitpath) + + return collapsed_path + + + +nobody = None + +def nobody_uid(): + """Internal routine to get nobody's uid""" + global nobody + if nobody: + return nobody + try: + import pwd + except ImportError: + return -1 + try: + nobody = pwd.getpwnam('nobody')[2] + except KeyError: + nobody = 1 + max(x[2] for x in pwd.getpwall()) + return nobody + + +def executable(path): + """Test for executable file.""" + return os.access(path, os.X_OK) + + +class CGIHTTPRequestHandler(SimpleHTTPRequestHandler): + + """Complete HTTP server with GET, HEAD and POST commands. + + GET and HEAD also support running CGI scripts. + + The POST command is *only* implemented for CGI scripts. + + """ + + # Determine platform specifics + have_fork = hasattr(os, 'fork') + + # Make rfile unbuffered -- we need to read one line and then pass + # the rest to a subprocess, so we can't use buffered input. + rbufsize = 0 + + def do_POST(self): + """Serve a POST request. + + This is only implemented for CGI scripts. + + """ + + if self.is_cgi(): + self.run_cgi() + else: + self.send_error(501, "Can only POST to CGI scripts") + + def send_head(self): + """Version of send_head that support CGI scripts""" + if self.is_cgi(): + return self.run_cgi() + else: + return SimpleHTTPRequestHandler.send_head(self) + + def is_cgi(self): + """Test whether self.path corresponds to a CGI script. + + Returns True and updates the cgi_info attribute to the tuple + (dir, rest) if self.path requires running a CGI script. + Returns False otherwise. + + If any exception is raised, the caller should assume that + self.path was rejected as invalid and act accordingly. + + The default implementation tests whether the normalized url + path begins with one of the strings in self.cgi_directories + (and the next character is a '/' or the end of the string). + + """ + collapsed_path = _url_collapse_path(self.path) + dir_sep = collapsed_path.find('/', 1) + head, tail = collapsed_path[:dir_sep], collapsed_path[dir_sep+1:] + if head in self.cgi_directories: + self.cgi_info = head, tail + return True + return False + + + cgi_directories = ['/cgi-bin', '/htbin'] + + def is_executable(self, path): + """Test whether argument path is an executable file.""" + return executable(path) + + def is_python(self, path): + """Test whether argument path is a Python script.""" + head, tail = os.path.splitext(path) + return tail.lower() in (".py", ".pyw") + + def run_cgi(self): + """Execute a CGI script.""" + path = self.path + dir, rest = self.cgi_info + + i = path.find('/', len(dir) + 1) + while i >= 0: + nextdir = path[:i] + nextrest = path[i+1:] + + scriptdir = self.translate_path(nextdir) + if os.path.isdir(scriptdir): + dir, rest = nextdir, nextrest + i = path.find('/', len(dir) + 1) + else: + break + + # find an explicit query string, if present. + i = rest.rfind('?') + if i >= 0: + rest, query = rest[:i], rest[i+1:] + else: + query = '' + + # dissect the part after the directory name into a script name & + # a possible additional path, to be stored in PATH_INFO. + i = rest.find('/') + if i >= 0: + script, rest = rest[:i], rest[i:] + else: + script, rest = rest, '' + + scriptname = dir + '/' + script + scriptfile = self.translate_path(scriptname) + if not os.path.exists(scriptfile): + self.send_error(404, "No such CGI script (%r)" % scriptname) + return + if not os.path.isfile(scriptfile): + self.send_error(403, "CGI script is not a plain file (%r)" % + scriptname) + return + ispy = self.is_python(scriptname) + if self.have_fork or not ispy: + if not self.is_executable(scriptfile): + self.send_error(403, "CGI script is not executable (%r)" % + scriptname) + return + + # Reference: http://hoohoo.ncsa.uiuc.edu/cgi/env.html + # XXX Much of the following could be prepared ahead of time! + env = copy.deepcopy(os.environ) + env['SERVER_SOFTWARE'] = self.version_string() + env['SERVER_NAME'] = self.server.server_name + env['GATEWAY_INTERFACE'] = 'CGI/1.1' + env['SERVER_PROTOCOL'] = self.protocol_version + env['SERVER_PORT'] = str(self.server.server_port) + env['REQUEST_METHOD'] = self.command + uqrest = urllib_parse.unquote(rest) + env['PATH_INFO'] = uqrest + env['PATH_TRANSLATED'] = self.translate_path(uqrest) + env['SCRIPT_NAME'] = scriptname + if query: + env['QUERY_STRING'] = query + env['REMOTE_ADDR'] = self.client_address[0] + authorization = self.headers.get("authorization") + if authorization: + authorization = authorization.split() + if len(authorization) == 2: + import base64, binascii + env['AUTH_TYPE'] = authorization[0] + if authorization[0].lower() == "basic": + try: + authorization = authorization[1].encode('ascii') + if utils.PY3: + # In Py3.3, was: + authorization = base64.decodebytes(authorization).\ + decode('ascii') + else: + # Backport to Py2.7: + authorization = base64.decodestring(authorization).\ + decode('ascii') + except (binascii.Error, UnicodeError): + pass + else: + authorization = authorization.split(':') + if len(authorization) == 2: + env['REMOTE_USER'] = authorization[0] + # XXX REMOTE_IDENT + if self.headers.get('content-type') is None: + env['CONTENT_TYPE'] = self.headers.get_content_type() + else: + env['CONTENT_TYPE'] = self.headers['content-type'] + length = self.headers.get('content-length') + if length: + env['CONTENT_LENGTH'] = length + referer = self.headers.get('referer') + if referer: + env['HTTP_REFERER'] = referer + accept = [] + for line in self.headers.getallmatchingheaders('accept'): + if line[:1] in "\t\n\r ": + accept.append(line.strip()) + else: + accept = accept + line[7:].split(',') + env['HTTP_ACCEPT'] = ','.join(accept) + ua = self.headers.get('user-agent') + if ua: + env['HTTP_USER_AGENT'] = ua + co = filter(None, self.headers.get_all('cookie', [])) + cookie_str = ', '.join(co) + if cookie_str: + env['HTTP_COOKIE'] = cookie_str + # XXX Other HTTP_* headers + # Since we're setting the env in the parent, provide empty + # values to override previously set values + for k in ('QUERY_STRING', 'REMOTE_HOST', 'CONTENT_LENGTH', + 'HTTP_USER_AGENT', 'HTTP_COOKIE', 'HTTP_REFERER'): + env.setdefault(k, "") + + self.send_response(200, "Script output follows") + self.flush_headers() + + decoded_query = query.replace('+', ' ') + + if self.have_fork: + # Unix -- fork as we should + args = [script] + if '=' not in decoded_query: + args.append(decoded_query) + nobody = nobody_uid() + self.wfile.flush() # Always flush before forking + pid = os.fork() + if pid != 0: + # Parent + pid, sts = os.waitpid(pid, 0) + # throw away additional data [see bug #427345] + while select.select([self.rfile], [], [], 0)[0]: + if not self.rfile.read(1): + break + if sts: + self.log_error("CGI script exit status %#x", sts) + return + # Child + try: + try: + os.setuid(nobody) + except os.error: + pass + os.dup2(self.rfile.fileno(), 0) + os.dup2(self.wfile.fileno(), 1) + os.execve(scriptfile, args, env) + except: + self.server.handle_error(self.request, self.client_address) + os._exit(127) + + else: + # Non-Unix -- use subprocess + import subprocess + cmdline = [scriptfile] + if self.is_python(scriptfile): + interp = sys.executable + if interp.lower().endswith("w.exe"): + # On Windows, use python.exe, not pythonw.exe + interp = interp[:-5] + interp[-4:] + cmdline = [interp, '-u'] + cmdline + if '=' not in query: + cmdline.append(query) + self.log_message("command: %s", subprocess.list2cmdline(cmdline)) + try: + nbytes = int(length) + except (TypeError, ValueError): + nbytes = 0 + p = subprocess.Popen(cmdline, + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + env = env + ) + if self.command.lower() == "post" and nbytes > 0: + data = self.rfile.read(nbytes) + else: + data = None + # throw away additional data [see bug #427345] + while select.select([self.rfile._sock], [], [], 0)[0]: + if not self.rfile._sock.recv(1): + break + stdout, stderr = p.communicate(data) + self.wfile.write(stdout) + if stderr: + self.log_error('%s', stderr) + p.stderr.close() + p.stdout.close() + status = p.returncode + if status: + self.log_error("CGI script exit status %#x", status) + else: + self.log_message("CGI script exited OK") + + +def test(HandlerClass = BaseHTTPRequestHandler, + ServerClass = HTTPServer, protocol="HTTP/1.0", port=8000): + """Test the HTTP request handler class. + + This runs an HTTP server on port 8000 (or the first command line + argument). + + """ + server_address = ('', port) + + HandlerClass.protocol_version = protocol + httpd = ServerClass(server_address, HandlerClass) + + sa = httpd.socket.getsockname() + print("Serving HTTP on", sa[0], "port", sa[1], "...") + try: + httpd.serve_forever() + except KeyboardInterrupt: + print("\nKeyboard interrupt received, exiting.") + httpd.server_close() + sys.exit(0) + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--cgi', action='store_true', + help='Run as CGI Server') + parser.add_argument('port', action='store', + default=8000, type=int, + nargs='?', + help='Specify alternate port [default: 8000]') + args = parser.parse_args() + if args.cgi: + test(HandlerClass=CGIHTTPRequestHandler, port=args.port) + else: + test(HandlerClass=SimpleHTTPRequestHandler, port=args.port) diff --git a/venv/lib/python3.10/site-packages/future/backports/misc.py b/venv/lib/python3.10/site-packages/future/backports/misc.py new file mode 100644 index 0000000..992b978 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/misc.py @@ -0,0 +1,958 @@ +""" +Miscellaneous function (re)definitions from the Py3.4+ standard library +for Python 2.6/2.7. + +- math.ceil (for Python 2.7) +- collections.OrderedDict (for Python 2.6) +- collections.Counter (for Python 2.6) +- collections.ChainMap (for all versions prior to Python 3.3) +- itertools.count (for Python 2.6, with step parameter) +- subprocess.check_output (for Python 2.6) +- reprlib.recursive_repr (for Python 2.6+) +- functools.cmp_to_key (for Python 2.6) +""" + +from __future__ import absolute_import + +import subprocess +from math import ceil as oldceil + +from operator import itemgetter as _itemgetter, eq as _eq +import sys +import heapq as _heapq +from _weakref import proxy as _proxy +from itertools import repeat as _repeat, chain as _chain, starmap as _starmap +from socket import getaddrinfo, SOCK_STREAM, error, socket + +from future.utils import iteritems, itervalues, PY2, PY26, PY3 + +if PY2: + from collections import Mapping, MutableMapping +else: + from collections.abc import Mapping, MutableMapping + + +def ceil(x): + """ + Return the ceiling of x as an int. + This is the smallest integral value >= x. + """ + return int(oldceil(x)) + + +######################################################################## +### reprlib.recursive_repr decorator from Py3.4 +######################################################################## + +from itertools import islice + +if PY26: + # itertools.count in Py 2.6 doesn't accept a step parameter + def count(start=0, step=1): + while True: + yield start + start += step +else: + from itertools import count + + +if PY3: + try: + from _thread import get_ident + except ImportError: + from _dummy_thread import get_ident +else: + try: + from thread import get_ident + except ImportError: + from dummy_thread import get_ident + + +def recursive_repr(fillvalue='...'): + 'Decorator to make a repr function return fillvalue for a recursive call' + + def decorating_function(user_function): + repr_running = set() + + def wrapper(self): + key = id(self), get_ident() + if key in repr_running: + return fillvalue + repr_running.add(key) + try: + result = user_function(self) + finally: + repr_running.discard(key) + return result + + # Can't use functools.wraps() here because of bootstrap issues + wrapper.__module__ = getattr(user_function, '__module__') + wrapper.__doc__ = getattr(user_function, '__doc__') + wrapper.__name__ = getattr(user_function, '__name__') + wrapper.__annotations__ = getattr(user_function, '__annotations__', {}) + return wrapper + + return decorating_function + + +# OrderedDict Shim from Raymond Hettinger, python core dev +# http://code.activestate.com/recipes/576693-ordered-dictionary-for-py24/ +# here to support version 2.6. + +################################################################################ +### OrderedDict +################################################################################ + +class _Link(object): + __slots__ = 'prev', 'next', 'key', '__weakref__' + +class OrderedDict(dict): + 'Dictionary that remembers insertion order' + # An inherited dict maps keys to values. + # The inherited dict provides __getitem__, __len__, __contains__, and get. + # The remaining methods are order-aware. + # Big-O running times for all methods are the same as regular dictionaries. + + # The internal self.__map dict maps keys to links in a doubly linked list. + # The circular doubly linked list starts and ends with a sentinel element. + # The sentinel element never gets deleted (this simplifies the algorithm). + # The sentinel is in self.__hardroot with a weakref proxy in self.__root. + # The prev links are weakref proxies (to prevent circular references). + # Individual links are kept alive by the hard reference in self.__map. + # Those hard references disappear when a key is deleted from an OrderedDict. + + def __init__(*args, **kwds): + '''Initialize an ordered dictionary. The signature is the same as + regular dictionaries, but keyword arguments are not recommended because + their insertion order is arbitrary. + + ''' + if not args: + raise TypeError("descriptor '__init__' of 'OrderedDict' object " + "needs an argument") + self = args[0] + args = args[1:] + if len(args) > 1: + raise TypeError('expected at most 1 arguments, got %d' % len(args)) + try: + self.__root + except AttributeError: + self.__hardroot = _Link() + self.__root = root = _proxy(self.__hardroot) + root.prev = root.next = root + self.__map = {} + self.__update(*args, **kwds) + + def __setitem__(self, key, value, + dict_setitem=dict.__setitem__, proxy=_proxy, Link=_Link): + 'od.__setitem__(i, y) <==> od[i]=y' + # Setting a new item creates a new link at the end of the linked list, + # and the inherited dictionary is updated with the new key/value pair. + if key not in self: + self.__map[key] = link = Link() + root = self.__root + last = root.prev + link.prev, link.next, link.key = last, root, key + last.next = link + root.prev = proxy(link) + dict_setitem(self, key, value) + + def __delitem__(self, key, dict_delitem=dict.__delitem__): + 'od.__delitem__(y) <==> del od[y]' + # Deleting an existing item uses self.__map to find the link which gets + # removed by updating the links in the predecessor and successor nodes. + dict_delitem(self, key) + link = self.__map.pop(key) + link_prev = link.prev + link_next = link.next + link_prev.next = link_next + link_next.prev = link_prev + + def __iter__(self): + 'od.__iter__() <==> iter(od)' + # Traverse the linked list in order. + root = self.__root + curr = root.next + while curr is not root: + yield curr.key + curr = curr.next + + def __reversed__(self): + 'od.__reversed__() <==> reversed(od)' + # Traverse the linked list in reverse order. + root = self.__root + curr = root.prev + while curr is not root: + yield curr.key + curr = curr.prev + + def clear(self): + 'od.clear() -> None. Remove all items from od.' + root = self.__root + root.prev = root.next = root + self.__map.clear() + dict.clear(self) + + def popitem(self, last=True): + '''od.popitem() -> (k, v), return and remove a (key, value) pair. + Pairs are returned in LIFO order if last is true or FIFO order if false. + + ''' + if not self: + raise KeyError('dictionary is empty') + root = self.__root + if last: + link = root.prev + link_prev = link.prev + link_prev.next = root + root.prev = link_prev + else: + link = root.next + link_next = link.next + root.next = link_next + link_next.prev = root + key = link.key + del self.__map[key] + value = dict.pop(self, key) + return key, value + + def move_to_end(self, key, last=True): + '''Move an existing element to the end (or beginning if last==False). + + Raises KeyError if the element does not exist. + When last=True, acts like a fast version of self[key]=self.pop(key). + + ''' + link = self.__map[key] + link_prev = link.prev + link_next = link.next + link_prev.next = link_next + link_next.prev = link_prev + root = self.__root + if last: + last = root.prev + link.prev = last + link.next = root + last.next = root.prev = link + else: + first = root.next + link.prev = root + link.next = first + root.next = first.prev = link + + def __sizeof__(self): + sizeof = sys.getsizeof + n = len(self) + 1 # number of links including root + size = sizeof(self.__dict__) # instance dictionary + size += sizeof(self.__map) * 2 # internal dict and inherited dict + size += sizeof(self.__hardroot) * n # link objects + size += sizeof(self.__root) * n # proxy objects + return size + + update = __update = MutableMapping.update + keys = MutableMapping.keys + values = MutableMapping.values + items = MutableMapping.items + __ne__ = MutableMapping.__ne__ + + __marker = object() + + def pop(self, key, default=__marker): + '''od.pop(k[,d]) -> v, remove specified key and return the corresponding + value. If key is not found, d is returned if given, otherwise KeyError + is raised. + + ''' + if key in self: + result = self[key] + del self[key] + return result + if default is self.__marker: + raise KeyError(key) + return default + + def setdefault(self, key, default=None): + 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' + if key in self: + return self[key] + self[key] = default + return default + + @recursive_repr() + def __repr__(self): + 'od.__repr__() <==> repr(od)' + if not self: + return '%s()' % (self.__class__.__name__,) + return '%s(%r)' % (self.__class__.__name__, list(self.items())) + + def __reduce__(self): + 'Return state information for pickling' + inst_dict = vars(self).copy() + for k in vars(OrderedDict()): + inst_dict.pop(k, None) + return self.__class__, (), inst_dict or None, None, iter(self.items()) + + def copy(self): + 'od.copy() -> a shallow copy of od' + return self.__class__(self) + + @classmethod + def fromkeys(cls, iterable, value=None): + '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S. + If not specified, the value defaults to None. + + ''' + self = cls() + for key in iterable: + self[key] = value + return self + + def __eq__(self, other): + '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive + while comparison to a regular mapping is order-insensitive. + + ''' + if isinstance(other, OrderedDict): + return dict.__eq__(self, other) and all(map(_eq, self, other)) + return dict.__eq__(self, other) + + +# {{{ http://code.activestate.com/recipes/576611/ (r11) + +try: + from operator import itemgetter + from heapq import nlargest +except ImportError: + pass + +######################################################################## +### Counter +######################################################################## + +def _count_elements(mapping, iterable): + 'Tally elements from the iterable.' + mapping_get = mapping.get + for elem in iterable: + mapping[elem] = mapping_get(elem, 0) + 1 + +class Counter(dict): + '''Dict subclass for counting hashable items. Sometimes called a bag + or multiset. Elements are stored as dictionary keys and their counts + are stored as dictionary values. + + >>> c = Counter('abcdeabcdabcaba') # count elements from a string + + >>> c.most_common(3) # three most common elements + [('a', 5), ('b', 4), ('c', 3)] + >>> sorted(c) # list all unique elements + ['a', 'b', 'c', 'd', 'e'] + >>> ''.join(sorted(c.elements())) # list elements with repetitions + 'aaaaabbbbcccdde' + >>> sum(c.values()) # total of all counts + 15 + + >>> c['a'] # count of letter 'a' + 5 + >>> for elem in 'shazam': # update counts from an iterable + ... c[elem] += 1 # by adding 1 to each element's count + >>> c['a'] # now there are seven 'a' + 7 + >>> del c['b'] # remove all 'b' + >>> c['b'] # now there are zero 'b' + 0 + + >>> d = Counter('simsalabim') # make another counter + >>> c.update(d) # add in the second counter + >>> c['a'] # now there are nine 'a' + 9 + + >>> c.clear() # empty the counter + >>> c + Counter() + + Note: If a count is set to zero or reduced to zero, it will remain + in the counter until the entry is deleted or the counter is cleared: + + >>> c = Counter('aaabbc') + >>> c['b'] -= 2 # reduce the count of 'b' by two + >>> c.most_common() # 'b' is still in, but its count is zero + [('a', 3), ('c', 1), ('b', 0)] + + ''' + # References: + # http://en.wikipedia.org/wiki/Multiset + # http://www.gnu.org/software/smalltalk/manual-base/html_node/Bag.html + # http://www.demo2s.com/Tutorial/Cpp/0380__set-multiset/Catalog0380__set-multiset.htm + # http://code.activestate.com/recipes/259174/ + # Knuth, TAOCP Vol. II section 4.6.3 + + def __init__(*args, **kwds): + '''Create a new, empty Counter object. And if given, count elements + from an input iterable. Or, initialize the count from another mapping + of elements to their counts. + + >>> c = Counter() # a new, empty counter + >>> c = Counter('gallahad') # a new counter from an iterable + >>> c = Counter({'a': 4, 'b': 2}) # a new counter from a mapping + >>> c = Counter(a=4, b=2) # a new counter from keyword args + + ''' + if not args: + raise TypeError("descriptor '__init__' of 'Counter' object " + "needs an argument") + self = args[0] + args = args[1:] + if len(args) > 1: + raise TypeError('expected at most 1 arguments, got %d' % len(args)) + super(Counter, self).__init__() + self.update(*args, **kwds) + + def __missing__(self, key): + 'The count of elements not in the Counter is zero.' + # Needed so that self[missing_item] does not raise KeyError + return 0 + + def most_common(self, n=None): + '''List the n most common elements and their counts from the most + common to the least. If n is None, then list all element counts. + + >>> Counter('abcdeabcdabcaba').most_common(3) + [('a', 5), ('b', 4), ('c', 3)] + + ''' + # Emulate Bag.sortedByCount from Smalltalk + if n is None: + return sorted(self.items(), key=_itemgetter(1), reverse=True) + return _heapq.nlargest(n, self.items(), key=_itemgetter(1)) + + def elements(self): + '''Iterator over elements repeating each as many times as its count. + + >>> c = Counter('ABCABC') + >>> sorted(c.elements()) + ['A', 'A', 'B', 'B', 'C', 'C'] + + # Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1 + >>> prime_factors = Counter({2: 2, 3: 3, 17: 1}) + >>> product = 1 + >>> for factor in prime_factors.elements(): # loop over factors + ... product *= factor # and multiply them + >>> product + 1836 + + Note, if an element's count has been set to zero or is a negative + number, elements() will ignore it. + + ''' + # Emulate Bag.do from Smalltalk and Multiset.begin from C++. + return _chain.from_iterable(_starmap(_repeat, self.items())) + + # Override dict methods where necessary + + @classmethod + def fromkeys(cls, iterable, v=None): + # There is no equivalent method for counters because setting v=1 + # means that no element can have a count greater than one. + raise NotImplementedError( + 'Counter.fromkeys() is undefined. Use Counter(iterable) instead.') + + def update(*args, **kwds): + '''Like dict.update() but add counts instead of replacing them. + + Source can be an iterable, a dictionary, or another Counter instance. + + >>> c = Counter('which') + >>> c.update('witch') # add elements from another iterable + >>> d = Counter('watch') + >>> c.update(d) # add elements from another counter + >>> c['h'] # four 'h' in which, witch, and watch + 4 + + ''' + # The regular dict.update() operation makes no sense here because the + # replace behavior results in the some of original untouched counts + # being mixed-in with all of the other counts for a mismash that + # doesn't have a straight-forward interpretation in most counting + # contexts. Instead, we implement straight-addition. Both the inputs + # and outputs are allowed to contain zero and negative counts. + + if not args: + raise TypeError("descriptor 'update' of 'Counter' object " + "needs an argument") + self = args[0] + args = args[1:] + if len(args) > 1: + raise TypeError('expected at most 1 arguments, got %d' % len(args)) + iterable = args[0] if args else None + if iterable is not None: + if isinstance(iterable, Mapping): + if self: + self_get = self.get + for elem, count in iterable.items(): + self[elem] = count + self_get(elem, 0) + else: + super(Counter, self).update(iterable) # fast path when counter is empty + else: + _count_elements(self, iterable) + if kwds: + self.update(kwds) + + def subtract(*args, **kwds): + '''Like dict.update() but subtracts counts instead of replacing them. + Counts can be reduced below zero. Both the inputs and outputs are + allowed to contain zero and negative counts. + + Source can be an iterable, a dictionary, or another Counter instance. + + >>> c = Counter('which') + >>> c.subtract('witch') # subtract elements from another iterable + >>> c.subtract(Counter('watch')) # subtract elements from another counter + >>> c['h'] # 2 in which, minus 1 in witch, minus 1 in watch + 0 + >>> c['w'] # 1 in which, minus 1 in witch, minus 1 in watch + -1 + + ''' + if not args: + raise TypeError("descriptor 'subtract' of 'Counter' object " + "needs an argument") + self = args[0] + args = args[1:] + if len(args) > 1: + raise TypeError('expected at most 1 arguments, got %d' % len(args)) + iterable = args[0] if args else None + if iterable is not None: + self_get = self.get + if isinstance(iterable, Mapping): + for elem, count in iterable.items(): + self[elem] = self_get(elem, 0) - count + else: + for elem in iterable: + self[elem] = self_get(elem, 0) - 1 + if kwds: + self.subtract(kwds) + + def copy(self): + 'Return a shallow copy.' + return self.__class__(self) + + def __reduce__(self): + return self.__class__, (dict(self),) + + def __delitem__(self, elem): + 'Like dict.__delitem__() but does not raise KeyError for missing values.' + if elem in self: + super(Counter, self).__delitem__(elem) + + def __repr__(self): + if not self: + return '%s()' % self.__class__.__name__ + try: + items = ', '.join(map('%r: %r'.__mod__, self.most_common())) + return '%s({%s})' % (self.__class__.__name__, items) + except TypeError: + # handle case where values are not orderable + return '{0}({1!r})'.format(self.__class__.__name__, dict(self)) + + # Multiset-style mathematical operations discussed in: + # Knuth TAOCP Volume II section 4.6.3 exercise 19 + # and at http://en.wikipedia.org/wiki/Multiset + # + # Outputs guaranteed to only include positive counts. + # + # To strip negative and zero counts, add-in an empty counter: + # c += Counter() + + def __add__(self, other): + '''Add counts from two counters. + + >>> Counter('abbb') + Counter('bcc') + Counter({'b': 4, 'c': 2, 'a': 1}) + + ''' + if not isinstance(other, Counter): + return NotImplemented + result = Counter() + for elem, count in self.items(): + newcount = count + other[elem] + if newcount > 0: + result[elem] = newcount + for elem, count in other.items(): + if elem not in self and count > 0: + result[elem] = count + return result + + def __sub__(self, other): + ''' Subtract count, but keep only results with positive counts. + + >>> Counter('abbbc') - Counter('bccd') + Counter({'b': 2, 'a': 1}) + + ''' + if not isinstance(other, Counter): + return NotImplemented + result = Counter() + for elem, count in self.items(): + newcount = count - other[elem] + if newcount > 0: + result[elem] = newcount + for elem, count in other.items(): + if elem not in self and count < 0: + result[elem] = 0 - count + return result + + def __or__(self, other): + '''Union is the maximum of value in either of the input counters. + + >>> Counter('abbb') | Counter('bcc') + Counter({'b': 3, 'c': 2, 'a': 1}) + + ''' + if not isinstance(other, Counter): + return NotImplemented + result = Counter() + for elem, count in self.items(): + other_count = other[elem] + newcount = other_count if count < other_count else count + if newcount > 0: + result[elem] = newcount + for elem, count in other.items(): + if elem not in self and count > 0: + result[elem] = count + return result + + def __and__(self, other): + ''' Intersection is the minimum of corresponding counts. + + >>> Counter('abbb') & Counter('bcc') + Counter({'b': 1}) + + ''' + if not isinstance(other, Counter): + return NotImplemented + result = Counter() + for elem, count in self.items(): + other_count = other[elem] + newcount = count if count < other_count else other_count + if newcount > 0: + result[elem] = newcount + return result + + def __pos__(self): + 'Adds an empty counter, effectively stripping negative and zero counts' + return self + Counter() + + def __neg__(self): + '''Subtracts from an empty counter. Strips positive and zero counts, + and flips the sign on negative counts. + + ''' + return Counter() - self + + def _keep_positive(self): + '''Internal method to strip elements with a negative or zero count''' + nonpositive = [elem for elem, count in self.items() if not count > 0] + for elem in nonpositive: + del self[elem] + return self + + def __iadd__(self, other): + '''Inplace add from another counter, keeping only positive counts. + + >>> c = Counter('abbb') + >>> c += Counter('bcc') + >>> c + Counter({'b': 4, 'c': 2, 'a': 1}) + + ''' + for elem, count in other.items(): + self[elem] += count + return self._keep_positive() + + def __isub__(self, other): + '''Inplace subtract counter, but keep only results with positive counts. + + >>> c = Counter('abbbc') + >>> c -= Counter('bccd') + >>> c + Counter({'b': 2, 'a': 1}) + + ''' + for elem, count in other.items(): + self[elem] -= count + return self._keep_positive() + + def __ior__(self, other): + '''Inplace union is the maximum of value from either counter. + + >>> c = Counter('abbb') + >>> c |= Counter('bcc') + >>> c + Counter({'b': 3, 'c': 2, 'a': 1}) + + ''' + for elem, other_count in other.items(): + count = self[elem] + if other_count > count: + self[elem] = other_count + return self._keep_positive() + + def __iand__(self, other): + '''Inplace intersection is the minimum of corresponding counts. + + >>> c = Counter('abbb') + >>> c &= Counter('bcc') + >>> c + Counter({'b': 1}) + + ''' + for elem, count in self.items(): + other_count = other[elem] + if other_count < count: + self[elem] = other_count + return self._keep_positive() + + +def check_output(*popenargs, **kwargs): + """ + For Python 2.6 compatibility: see + http://stackoverflow.com/questions/4814970/ + """ + + if 'stdout' in kwargs: + raise ValueError('stdout argument not allowed, it will be overridden.') + process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs) + output, unused_err = process.communicate() + retcode = process.poll() + if retcode: + cmd = kwargs.get("args") + if cmd is None: + cmd = popenargs[0] + raise subprocess.CalledProcessError(retcode, cmd) + return output + + +def count(start=0, step=1): + """ + ``itertools.count`` in Py 2.6 doesn't accept a step + parameter. This is an enhanced version of ``itertools.count`` + for Py2.6 equivalent to ``itertools.count`` in Python 2.7+. + """ + while True: + yield start + start += step + + +######################################################################## +### ChainMap (helper for configparser and string.Template) +### From the Py3.4 source code. See also: +### https://github.com/kkxue/Py2ChainMap/blob/master/py2chainmap.py +######################################################################## + +class ChainMap(MutableMapping): + ''' A ChainMap groups multiple dicts (or other mappings) together + to create a single, updateable view. + + The underlying mappings are stored in a list. That list is public and can + accessed or updated using the *maps* attribute. There is no other state. + + Lookups search the underlying mappings successively until a key is found. + In contrast, writes, updates, and deletions only operate on the first + mapping. + + ''' + + def __init__(self, *maps): + '''Initialize a ChainMap by setting *maps* to the given mappings. + If no mappings are provided, a single empty dictionary is used. + + ''' + self.maps = list(maps) or [{}] # always at least one map + + def __missing__(self, key): + raise KeyError(key) + + def __getitem__(self, key): + for mapping in self.maps: + try: + return mapping[key] # can't use 'key in mapping' with defaultdict + except KeyError: + pass + return self.__missing__(key) # support subclasses that define __missing__ + + def get(self, key, default=None): + return self[key] if key in self else default + + def __len__(self): + return len(set().union(*self.maps)) # reuses stored hash values if possible + + def __iter__(self): + return iter(set().union(*self.maps)) + + def __contains__(self, key): + return any(key in m for m in self.maps) + + def __bool__(self): + return any(self.maps) + + # Py2 compatibility: + __nonzero__ = __bool__ + + @recursive_repr() + def __repr__(self): + return '{0.__class__.__name__}({1})'.format( + self, ', '.join(map(repr, self.maps))) + + @classmethod + def fromkeys(cls, iterable, *args): + 'Create a ChainMap with a single dict created from the iterable.' + return cls(dict.fromkeys(iterable, *args)) + + def copy(self): + 'New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]' + return self.__class__(self.maps[0].copy(), *self.maps[1:]) + + __copy__ = copy + + def new_child(self, m=None): # like Django's Context.push() + ''' + New ChainMap with a new map followed by all previous maps. If no + map is provided, an empty dict is used. + ''' + if m is None: + m = {} + return self.__class__(m, *self.maps) + + @property + def parents(self): # like Django's Context.pop() + 'New ChainMap from maps[1:].' + return self.__class__(*self.maps[1:]) + + def __setitem__(self, key, value): + self.maps[0][key] = value + + def __delitem__(self, key): + try: + del self.maps[0][key] + except KeyError: + raise KeyError('Key not found in the first mapping: {0!r}'.format(key)) + + def popitem(self): + 'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.' + try: + return self.maps[0].popitem() + except KeyError: + raise KeyError('No keys found in the first mapping.') + + def pop(self, key, *args): + 'Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].' + try: + return self.maps[0].pop(key, *args) + except KeyError: + raise KeyError('Key not found in the first mapping: {0!r}'.format(key)) + + def clear(self): + 'Clear maps[0], leaving maps[1:] intact.' + self.maps[0].clear() + + +# Re-use the same sentinel as in the Python stdlib socket module: +from socket import _GLOBAL_DEFAULT_TIMEOUT +# Was: _GLOBAL_DEFAULT_TIMEOUT = object() + + +def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, + source_address=None): + """Backport of 3-argument create_connection() for Py2.6. + + Connect to *address* and return the socket object. + + Convenience function. Connect to *address* (a 2-tuple ``(host, + port)``) and return the socket object. Passing the optional + *timeout* parameter will set the timeout on the socket instance + before attempting to connect. If no *timeout* is supplied, the + global default timeout setting returned by :func:`getdefaulttimeout` + is used. If *source_address* is set it must be a tuple of (host, port) + for the socket to bind as a source address before making the connection. + An host of '' or port 0 tells the OS to use the default. + """ + + host, port = address + err = None + for res in getaddrinfo(host, port, 0, SOCK_STREAM): + af, socktype, proto, canonname, sa = res + sock = None + try: + sock = socket(af, socktype, proto) + if timeout is not _GLOBAL_DEFAULT_TIMEOUT: + sock.settimeout(timeout) + if source_address: + sock.bind(source_address) + sock.connect(sa) + return sock + + except error as _: + err = _ + if sock is not None: + sock.close() + + if err is not None: + raise err + else: + raise error("getaddrinfo returns an empty list") + +# Backport from Py2.7 for Py2.6: +def cmp_to_key(mycmp): + """Convert a cmp= function into a key= function""" + class K(object): + __slots__ = ['obj'] + def __init__(self, obj, *args): + self.obj = obj + def __lt__(self, other): + return mycmp(self.obj, other.obj) < 0 + def __gt__(self, other): + return mycmp(self.obj, other.obj) > 0 + def __eq__(self, other): + return mycmp(self.obj, other.obj) == 0 + def __le__(self, other): + return mycmp(self.obj, other.obj) <= 0 + def __ge__(self, other): + return mycmp(self.obj, other.obj) >= 0 + def __ne__(self, other): + return mycmp(self.obj, other.obj) != 0 + def __hash__(self): + raise TypeError('hash not implemented') + return K + +# Back up our definitions above in case they're useful +_OrderedDict = OrderedDict +_Counter = Counter +_check_output = check_output +_count = count +_ceil = ceil +__count_elements = _count_elements +_recursive_repr = recursive_repr +_ChainMap = ChainMap +_create_connection = create_connection +_cmp_to_key = cmp_to_key + +# Overwrite the definitions above with the usual ones +# from the standard library: +if sys.version_info >= (2, 7): + from collections import OrderedDict, Counter + from itertools import count + from functools import cmp_to_key + try: + from subprocess import check_output + except ImportError: + # Not available. This happens with Google App Engine: see issue #231 + pass + from socket import create_connection + +if sys.version_info >= (3, 0): + from math import ceil + from collections import _count_elements + +if sys.version_info >= (3, 3): + from reprlib import recursive_repr + from collections import ChainMap diff --git a/venv/lib/python3.10/site-packages/future/backports/socket.py b/venv/lib/python3.10/site-packages/future/backports/socket.py new file mode 100644 index 0000000..930e1da --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/socket.py @@ -0,0 +1,454 @@ +# Wrapper module for _socket, providing some additional facilities +# implemented in Python. + +"""\ +This module provides socket operations and some related functions. +On Unix, it supports IP (Internet Protocol) and Unix domain sockets. +On other systems, it only supports IP. Functions specific for a +socket are available as methods of the socket object. + +Functions: + +socket() -- create a new socket object +socketpair() -- create a pair of new socket objects [*] +fromfd() -- create a socket object from an open file descriptor [*] +fromshare() -- create a socket object from data received from socket.share() [*] +gethostname() -- return the current hostname +gethostbyname() -- map a hostname to its IP number +gethostbyaddr() -- map an IP number or hostname to DNS info +getservbyname() -- map a service name and a protocol name to a port number +getprotobyname() -- map a protocol name (e.g. 'tcp') to a number +ntohs(), ntohl() -- convert 16, 32 bit int from network to host byte order +htons(), htonl() -- convert 16, 32 bit int from host to network byte order +inet_aton() -- convert IP addr string (123.45.67.89) to 32-bit packed format +inet_ntoa() -- convert 32-bit packed format IP to string (123.45.67.89) +socket.getdefaulttimeout() -- get the default timeout value +socket.setdefaulttimeout() -- set the default timeout value +create_connection() -- connects to an address, with an optional timeout and + optional source address. + + [*] not available on all platforms! + +Special objects: + +SocketType -- type object for socket objects +error -- exception raised for I/O errors +has_ipv6 -- boolean value indicating if IPv6 is supported + +Integer constants: + +AF_INET, AF_UNIX -- socket domains (first argument to socket() call) +SOCK_STREAM, SOCK_DGRAM, SOCK_RAW -- socket types (second argument) + +Many other constants may be defined; these may be used in calls to +the setsockopt() and getsockopt() methods. +""" + +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future.builtins import super + +import _socket +from _socket import * + +import os, sys, io + +try: + import errno +except ImportError: + errno = None +EBADF = getattr(errno, 'EBADF', 9) +EAGAIN = getattr(errno, 'EAGAIN', 11) +EWOULDBLOCK = getattr(errno, 'EWOULDBLOCK', 11) + +__all__ = ["getfqdn", "create_connection"] +__all__.extend(os._get_exports_list(_socket)) + + +_realsocket = socket + +# WSA error codes +if sys.platform.lower().startswith("win"): + errorTab = {} + errorTab[10004] = "The operation was interrupted." + errorTab[10009] = "A bad file handle was passed." + errorTab[10013] = "Permission denied." + errorTab[10014] = "A fault occurred on the network??" # WSAEFAULT + errorTab[10022] = "An invalid operation was attempted." + errorTab[10035] = "The socket operation would block" + errorTab[10036] = "A blocking operation is already in progress." + errorTab[10048] = "The network address is in use." + errorTab[10054] = "The connection has been reset." + errorTab[10058] = "The network has been shut down." + errorTab[10060] = "The operation timed out." + errorTab[10061] = "Connection refused." + errorTab[10063] = "The name is too long." + errorTab[10064] = "The host is down." + errorTab[10065] = "The host is unreachable." + __all__.append("errorTab") + + +class socket(_socket.socket): + + """A subclass of _socket.socket adding the makefile() method.""" + + __slots__ = ["__weakref__", "_io_refs", "_closed"] + + def __init__(self, family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None): + if fileno is None: + _socket.socket.__init__(self, family, type, proto) + else: + _socket.socket.__init__(self, family, type, proto, fileno) + self._io_refs = 0 + self._closed = False + + def __enter__(self): + return self + + def __exit__(self, *args): + if not self._closed: + self.close() + + def __repr__(self): + """Wrap __repr__() to reveal the real class name.""" + s = _socket.socket.__repr__(self) + if s.startswith(" socket object + + Return a new socket object connected to the same system resource. + """ + fd = dup(self.fileno()) + sock = self.__class__(self.family, self.type, self.proto, fileno=fd) + sock.settimeout(self.gettimeout()) + return sock + + def accept(self): + """accept() -> (socket object, address info) + + Wait for an incoming connection. Return a new socket + representing the connection, and the address of the client. + For IP sockets, the address info is a pair (hostaddr, port). + """ + fd, addr = self._accept() + sock = socket(self.family, self.type, self.proto, fileno=fd) + # Issue #7995: if no default timeout is set and the listening + # socket had a (non-zero) timeout, force the new socket in blocking + # mode to override platform-specific socket flags inheritance. + if getdefaulttimeout() is None and self.gettimeout(): + sock.setblocking(True) + return sock, addr + + def makefile(self, mode="r", buffering=None, **_3to2kwargs): + """makefile(...) -> an I/O stream connected to the socket + + The arguments are as for io.open() after the filename, + except the only mode characters supported are 'r', 'w' and 'b'. + The semantics are similar too. (XXX refactor to share code?) + """ + if 'newline' in _3to2kwargs: newline = _3to2kwargs['newline']; del _3to2kwargs['newline'] + else: newline = None + if 'errors' in _3to2kwargs: errors = _3to2kwargs['errors']; del _3to2kwargs['errors'] + else: errors = None + if 'encoding' in _3to2kwargs: encoding = _3to2kwargs['encoding']; del _3to2kwargs['encoding'] + else: encoding = None + for c in mode: + if c not in ("r", "w", "b"): + raise ValueError("invalid mode %r (only r, w, b allowed)") + writing = "w" in mode + reading = "r" in mode or not writing + assert reading or writing + binary = "b" in mode + rawmode = "" + if reading: + rawmode += "r" + if writing: + rawmode += "w" + raw = SocketIO(self, rawmode) + self._io_refs += 1 + if buffering is None: + buffering = -1 + if buffering < 0: + buffering = io.DEFAULT_BUFFER_SIZE + if buffering == 0: + if not binary: + raise ValueError("unbuffered streams must be binary") + return raw + if reading and writing: + buffer = io.BufferedRWPair(raw, raw, buffering) + elif reading: + buffer = io.BufferedReader(raw, buffering) + else: + assert writing + buffer = io.BufferedWriter(raw, buffering) + if binary: + return buffer + text = io.TextIOWrapper(buffer, encoding, errors, newline) + text.mode = mode + return text + + def _decref_socketios(self): + if self._io_refs > 0: + self._io_refs -= 1 + if self._closed: + self.close() + + def _real_close(self, _ss=_socket.socket): + # This function should not reference any globals. See issue #808164. + _ss.close(self) + + def close(self): + # This function should not reference any globals. See issue #808164. + self._closed = True + if self._io_refs <= 0: + self._real_close() + + def detach(self): + """detach() -> file descriptor + + Close the socket object without closing the underlying file descriptor. + The object cannot be used after this call, but the file descriptor + can be reused for other purposes. The file descriptor is returned. + """ + self._closed = True + return super().detach() + +def fromfd(fd, family, type, proto=0): + """ fromfd(fd, family, type[, proto]) -> socket object + + Create a socket object from a duplicate of the given file + descriptor. The remaining arguments are the same as for socket(). + """ + nfd = dup(fd) + return socket(family, type, proto, nfd) + +if hasattr(_socket.socket, "share"): + def fromshare(info): + """ fromshare(info) -> socket object + + Create a socket object from a the bytes object returned by + socket.share(pid). + """ + return socket(0, 0, 0, info) + +if hasattr(_socket, "socketpair"): + + def socketpair(family=None, type=SOCK_STREAM, proto=0): + """socketpair([family[, type[, proto]]]) -> (socket object, socket object) + + Create a pair of socket objects from the sockets returned by the platform + socketpair() function. + The arguments are the same as for socket() except the default family is + AF_UNIX if defined on the platform; otherwise, the default is AF_INET. + """ + if family is None: + try: + family = AF_UNIX + except NameError: + family = AF_INET + a, b = _socket.socketpair(family, type, proto) + a = socket(family, type, proto, a.detach()) + b = socket(family, type, proto, b.detach()) + return a, b + + +_blocking_errnos = set([EAGAIN, EWOULDBLOCK]) + +class SocketIO(io.RawIOBase): + + """Raw I/O implementation for stream sockets. + + This class supports the makefile() method on sockets. It provides + the raw I/O interface on top of a socket object. + """ + + # One might wonder why not let FileIO do the job instead. There are two + # main reasons why FileIO is not adapted: + # - it wouldn't work under Windows (where you can't used read() and + # write() on a socket handle) + # - it wouldn't work with socket timeouts (FileIO would ignore the + # timeout and consider the socket non-blocking) + + # XXX More docs + + def __init__(self, sock, mode): + if mode not in ("r", "w", "rw", "rb", "wb", "rwb"): + raise ValueError("invalid mode: %r" % mode) + io.RawIOBase.__init__(self) + self._sock = sock + if "b" not in mode: + mode += "b" + self._mode = mode + self._reading = "r" in mode + self._writing = "w" in mode + self._timeout_occurred = False + + def readinto(self, b): + """Read up to len(b) bytes into the writable buffer *b* and return + the number of bytes read. If the socket is non-blocking and no bytes + are available, None is returned. + + If *b* is non-empty, a 0 return value indicates that the connection + was shutdown at the other end. + """ + self._checkClosed() + self._checkReadable() + if self._timeout_occurred: + raise IOError("cannot read from timed out object") + while True: + try: + return self._sock.recv_into(b) + except timeout: + self._timeout_occurred = True + raise + # except InterruptedError: + # continue + except error as e: + if e.args[0] in _blocking_errnos: + return None + raise + + def write(self, b): + """Write the given bytes or bytearray object *b* to the socket + and return the number of bytes written. This can be less than + len(b) if not all data could be written. If the socket is + non-blocking and no bytes could be written None is returned. + """ + self._checkClosed() + self._checkWritable() + try: + return self._sock.send(b) + except error as e: + # XXX what about EINTR? + if e.args[0] in _blocking_errnos: + return None + raise + + def readable(self): + """True if the SocketIO is open for reading. + """ + if self.closed: + raise ValueError("I/O operation on closed socket.") + return self._reading + + def writable(self): + """True if the SocketIO is open for writing. + """ + if self.closed: + raise ValueError("I/O operation on closed socket.") + return self._writing + + def seekable(self): + """True if the SocketIO is open for seeking. + """ + if self.closed: + raise ValueError("I/O operation on closed socket.") + return super().seekable() + + def fileno(self): + """Return the file descriptor of the underlying socket. + """ + self._checkClosed() + return self._sock.fileno() + + @property + def name(self): + if not self.closed: + return self.fileno() + else: + return -1 + + @property + def mode(self): + return self._mode + + def close(self): + """Close the SocketIO object. This doesn't close the underlying + socket, except if all references to it have disappeared. + """ + if self.closed: + return + io.RawIOBase.close(self) + self._sock._decref_socketios() + self._sock = None + + +def getfqdn(name=''): + """Get fully qualified domain name from name. + + An empty argument is interpreted as meaning the local host. + + First the hostname returned by gethostbyaddr() is checked, then + possibly existing aliases. In case no FQDN is available, hostname + from gethostname() is returned. + """ + name = name.strip() + if not name or name == '0.0.0.0': + name = gethostname() + try: + hostname, aliases, ipaddrs = gethostbyaddr(name) + except error: + pass + else: + aliases.insert(0, hostname) + for name in aliases: + if '.' in name: + break + else: + name = hostname + return name + + +# Re-use the same sentinel as in the Python stdlib socket module: +from socket import _GLOBAL_DEFAULT_TIMEOUT +# Was: _GLOBAL_DEFAULT_TIMEOUT = object() + + +def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, + source_address=None): + """Connect to *address* and return the socket object. + + Convenience function. Connect to *address* (a 2-tuple ``(host, + port)``) and return the socket object. Passing the optional + *timeout* parameter will set the timeout on the socket instance + before attempting to connect. If no *timeout* is supplied, the + global default timeout setting returned by :func:`getdefaulttimeout` + is used. If *source_address* is set it must be a tuple of (host, port) + for the socket to bind as a source address before making the connection. + An host of '' or port 0 tells the OS to use the default. + """ + + host, port = address + err = None + for res in getaddrinfo(host, port, 0, SOCK_STREAM): + af, socktype, proto, canonname, sa = res + sock = None + try: + sock = socket(af, socktype, proto) + if timeout is not _GLOBAL_DEFAULT_TIMEOUT: + sock.settimeout(timeout) + if source_address: + sock.bind(source_address) + sock.connect(sa) + return sock + + except error as _: + err = _ + if sock is not None: + sock.close() + + if err is not None: + raise err + else: + raise error("getaddrinfo returns an empty list") diff --git a/venv/lib/python3.10/site-packages/future/backports/socketserver.py b/venv/lib/python3.10/site-packages/future/backports/socketserver.py new file mode 100644 index 0000000..d1e24a6 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/socketserver.py @@ -0,0 +1,747 @@ +"""Generic socket server classes. + +This module tries to capture the various aspects of defining a server: + +For socket-based servers: + +- address family: + - AF_INET{,6}: IP (Internet Protocol) sockets (default) + - AF_UNIX: Unix domain sockets + - others, e.g. AF_DECNET are conceivable (see +- socket type: + - SOCK_STREAM (reliable stream, e.g. TCP) + - SOCK_DGRAM (datagrams, e.g. UDP) + +For request-based servers (including socket-based): + +- client address verification before further looking at the request + (This is actually a hook for any processing that needs to look + at the request before anything else, e.g. logging) +- how to handle multiple requests: + - synchronous (one request is handled at a time) + - forking (each request is handled by a new process) + - threading (each request is handled by a new thread) + +The classes in this module favor the server type that is simplest to +write: a synchronous TCP/IP server. This is bad class design, but +save some typing. (There's also the issue that a deep class hierarchy +slows down method lookups.) + +There are five classes in an inheritance diagram, four of which represent +synchronous servers of four types: + + +------------+ + | BaseServer | + +------------+ + | + v + +-----------+ +------------------+ + | TCPServer |------->| UnixStreamServer | + +-----------+ +------------------+ + | + v + +-----------+ +--------------------+ + | UDPServer |------->| UnixDatagramServer | + +-----------+ +--------------------+ + +Note that UnixDatagramServer derives from UDPServer, not from +UnixStreamServer -- the only difference between an IP and a Unix +stream server is the address family, which is simply repeated in both +unix server classes. + +Forking and threading versions of each type of server can be created +using the ForkingMixIn and ThreadingMixIn mix-in classes. For +instance, a threading UDP server class is created as follows: + + class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass + +The Mix-in class must come first, since it overrides a method defined +in UDPServer! Setting the various member variables also changes +the behavior of the underlying server mechanism. + +To implement a service, you must derive a class from +BaseRequestHandler and redefine its handle() method. You can then run +various versions of the service by combining one of the server classes +with your request handler class. + +The request handler class must be different for datagram or stream +services. This can be hidden by using the request handler +subclasses StreamRequestHandler or DatagramRequestHandler. + +Of course, you still have to use your head! + +For instance, it makes no sense to use a forking server if the service +contains state in memory that can be modified by requests (since the +modifications in the child process would never reach the initial state +kept in the parent process and passed to each child). In this case, +you can use a threading server, but you will probably have to use +locks to avoid two requests that come in nearly simultaneous to apply +conflicting changes to the server state. + +On the other hand, if you are building e.g. an HTTP server, where all +data is stored externally (e.g. in the file system), a synchronous +class will essentially render the service "deaf" while one request is +being handled -- which may be for a very long time if a client is slow +to read all the data it has requested. Here a threading or forking +server is appropriate. + +In some cases, it may be appropriate to process part of a request +synchronously, but to finish processing in a forked child depending on +the request data. This can be implemented by using a synchronous +server and doing an explicit fork in the request handler class +handle() method. + +Another approach to handling multiple simultaneous requests in an +environment that supports neither threads nor fork (or where these are +too expensive or inappropriate for the service) is to maintain an +explicit table of partially finished requests and to use select() to +decide which request to work on next (or whether to handle a new +incoming request). This is particularly important for stream services +where each client can potentially be connected for a long time (if +threads or subprocesses cannot be used). + +Future work: +- Standard classes for Sun RPC (which uses either UDP or TCP) +- Standard mix-in classes to implement various authentication + and encryption schemes +- Standard framework for select-based multiplexing + +XXX Open problems: +- What to do with out-of-band data? + +BaseServer: +- split generic "request" functionality out into BaseServer class. + Copyright (C) 2000 Luke Kenneth Casson Leighton + + example: read entries from a SQL database (requires overriding + get_request() to return a table entry from the database). + entry is processed by a RequestHandlerClass. + +""" + +# Author of the BaseServer patch: Luke Kenneth Casson Leighton + +# XXX Warning! +# There is a test suite for this module, but it cannot be run by the +# standard regression test. +# To run it manually, run Lib/test/test_socketserver.py. + +from __future__ import (absolute_import, print_function) + +__version__ = "0.4" + + +import socket +import select +import sys +import os +import errno +try: + import threading +except ImportError: + import dummy_threading as threading + +__all__ = ["TCPServer","UDPServer","ForkingUDPServer","ForkingTCPServer", + "ThreadingUDPServer","ThreadingTCPServer","BaseRequestHandler", + "StreamRequestHandler","DatagramRequestHandler", + "ThreadingMixIn", "ForkingMixIn"] +if hasattr(socket, "AF_UNIX"): + __all__.extend(["UnixStreamServer","UnixDatagramServer", + "ThreadingUnixStreamServer", + "ThreadingUnixDatagramServer"]) + +def _eintr_retry(func, *args): + """restart a system call interrupted by EINTR""" + while True: + try: + return func(*args) + except OSError as e: + if e.errno != errno.EINTR: + raise + +class BaseServer(object): + + """Base class for server classes. + + Methods for the caller: + + - __init__(server_address, RequestHandlerClass) + - serve_forever(poll_interval=0.5) + - shutdown() + - handle_request() # if you do not use serve_forever() + - fileno() -> int # for select() + + Methods that may be overridden: + + - server_bind() + - server_activate() + - get_request() -> request, client_address + - handle_timeout() + - verify_request(request, client_address) + - server_close() + - process_request(request, client_address) + - shutdown_request(request) + - close_request(request) + - service_actions() + - handle_error() + + Methods for derived classes: + + - finish_request(request, client_address) + + Class variables that may be overridden by derived classes or + instances: + + - timeout + - address_family + - socket_type + - allow_reuse_address + + Instance variables: + + - RequestHandlerClass + - socket + + """ + + timeout = None + + def __init__(self, server_address, RequestHandlerClass): + """Constructor. May be extended, do not override.""" + self.server_address = server_address + self.RequestHandlerClass = RequestHandlerClass + self.__is_shut_down = threading.Event() + self.__shutdown_request = False + + def server_activate(self): + """Called by constructor to activate the server. + + May be overridden. + + """ + pass + + def serve_forever(self, poll_interval=0.5): + """Handle one request at a time until shutdown. + + Polls for shutdown every poll_interval seconds. Ignores + self.timeout. If you need to do periodic tasks, do them in + another thread. + """ + self.__is_shut_down.clear() + try: + while not self.__shutdown_request: + # XXX: Consider using another file descriptor or + # connecting to the socket to wake this up instead of + # polling. Polling reduces our responsiveness to a + # shutdown request and wastes cpu at all other times. + r, w, e = _eintr_retry(select.select, [self], [], [], + poll_interval) + if self in r: + self._handle_request_noblock() + + self.service_actions() + finally: + self.__shutdown_request = False + self.__is_shut_down.set() + + def shutdown(self): + """Stops the serve_forever loop. + + Blocks until the loop has finished. This must be called while + serve_forever() is running in another thread, or it will + deadlock. + """ + self.__shutdown_request = True + self.__is_shut_down.wait() + + def service_actions(self): + """Called by the serve_forever() loop. + + May be overridden by a subclass / Mixin to implement any code that + needs to be run during the loop. + """ + pass + + # The distinction between handling, getting, processing and + # finishing a request is fairly arbitrary. Remember: + # + # - handle_request() is the top-level call. It calls + # select, get_request(), verify_request() and process_request() + # - get_request() is different for stream or datagram sockets + # - process_request() is the place that may fork a new process + # or create a new thread to finish the request + # - finish_request() instantiates the request handler class; + # this constructor will handle the request all by itself + + def handle_request(self): + """Handle one request, possibly blocking. + + Respects self.timeout. + """ + # Support people who used socket.settimeout() to escape + # handle_request before self.timeout was available. + timeout = self.socket.gettimeout() + if timeout is None: + timeout = self.timeout + elif self.timeout is not None: + timeout = min(timeout, self.timeout) + fd_sets = _eintr_retry(select.select, [self], [], [], timeout) + if not fd_sets[0]: + self.handle_timeout() + return + self._handle_request_noblock() + + def _handle_request_noblock(self): + """Handle one request, without blocking. + + I assume that select.select has returned that the socket is + readable before this function was called, so there should be + no risk of blocking in get_request(). + """ + try: + request, client_address = self.get_request() + except socket.error: + return + if self.verify_request(request, client_address): + try: + self.process_request(request, client_address) + except: + self.handle_error(request, client_address) + self.shutdown_request(request) + + def handle_timeout(self): + """Called if no new request arrives within self.timeout. + + Overridden by ForkingMixIn. + """ + pass + + def verify_request(self, request, client_address): + """Verify the request. May be overridden. + + Return True if we should proceed with this request. + + """ + return True + + def process_request(self, request, client_address): + """Call finish_request. + + Overridden by ForkingMixIn and ThreadingMixIn. + + """ + self.finish_request(request, client_address) + self.shutdown_request(request) + + def server_close(self): + """Called to clean-up the server. + + May be overridden. + + """ + pass + + def finish_request(self, request, client_address): + """Finish one request by instantiating RequestHandlerClass.""" + self.RequestHandlerClass(request, client_address, self) + + def shutdown_request(self, request): + """Called to shutdown and close an individual request.""" + self.close_request(request) + + def close_request(self, request): + """Called to clean up an individual request.""" + pass + + def handle_error(self, request, client_address): + """Handle an error gracefully. May be overridden. + + The default is to print a traceback and continue. + + """ + print('-'*40) + print('Exception happened during processing of request from', end=' ') + print(client_address) + import traceback + traceback.print_exc() # XXX But this goes to stderr! + print('-'*40) + + +class TCPServer(BaseServer): + + """Base class for various socket-based server classes. + + Defaults to synchronous IP stream (i.e., TCP). + + Methods for the caller: + + - __init__(server_address, RequestHandlerClass, bind_and_activate=True) + - serve_forever(poll_interval=0.5) + - shutdown() + - handle_request() # if you don't use serve_forever() + - fileno() -> int # for select() + + Methods that may be overridden: + + - server_bind() + - server_activate() + - get_request() -> request, client_address + - handle_timeout() + - verify_request(request, client_address) + - process_request(request, client_address) + - shutdown_request(request) + - close_request(request) + - handle_error() + + Methods for derived classes: + + - finish_request(request, client_address) + + Class variables that may be overridden by derived classes or + instances: + + - timeout + - address_family + - socket_type + - request_queue_size (only for stream sockets) + - allow_reuse_address + + Instance variables: + + - server_address + - RequestHandlerClass + - socket + + """ + + address_family = socket.AF_INET + + socket_type = socket.SOCK_STREAM + + request_queue_size = 5 + + allow_reuse_address = False + + def __init__(self, server_address, RequestHandlerClass, bind_and_activate=True): + """Constructor. May be extended, do not override.""" + BaseServer.__init__(self, server_address, RequestHandlerClass) + self.socket = socket.socket(self.address_family, + self.socket_type) + if bind_and_activate: + self.server_bind() + self.server_activate() + + def server_bind(self): + """Called by constructor to bind the socket. + + May be overridden. + + """ + if self.allow_reuse_address: + self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + self.socket.bind(self.server_address) + self.server_address = self.socket.getsockname() + + def server_activate(self): + """Called by constructor to activate the server. + + May be overridden. + + """ + self.socket.listen(self.request_queue_size) + + def server_close(self): + """Called to clean-up the server. + + May be overridden. + + """ + self.socket.close() + + def fileno(self): + """Return socket file number. + + Interface required by select(). + + """ + return self.socket.fileno() + + def get_request(self): + """Get the request and client address from the socket. + + May be overridden. + + """ + return self.socket.accept() + + def shutdown_request(self, request): + """Called to shutdown and close an individual request.""" + try: + #explicitly shutdown. socket.close() merely releases + #the socket and waits for GC to perform the actual close. + request.shutdown(socket.SHUT_WR) + except socket.error: + pass #some platforms may raise ENOTCONN here + self.close_request(request) + + def close_request(self, request): + """Called to clean up an individual request.""" + request.close() + + +class UDPServer(TCPServer): + + """UDP server class.""" + + allow_reuse_address = False + + socket_type = socket.SOCK_DGRAM + + max_packet_size = 8192 + + def get_request(self): + data, client_addr = self.socket.recvfrom(self.max_packet_size) + return (data, self.socket), client_addr + + def server_activate(self): + # No need to call listen() for UDP. + pass + + def shutdown_request(self, request): + # No need to shutdown anything. + self.close_request(request) + + def close_request(self, request): + # No need to close anything. + pass + +class ForkingMixIn(object): + + """Mix-in class to handle each request in a new process.""" + + timeout = 300 + active_children = None + max_children = 40 + + def collect_children(self): + """Internal routine to wait for children that have exited.""" + if self.active_children is None: return + while len(self.active_children) >= self.max_children: + # XXX: This will wait for any child process, not just ones + # spawned by this library. This could confuse other + # libraries that expect to be able to wait for their own + # children. + try: + pid, status = os.waitpid(0, 0) + except os.error: + pid = None + if pid not in self.active_children: continue + self.active_children.remove(pid) + + # XXX: This loop runs more system calls than it ought + # to. There should be a way to put the active_children into a + # process group and then use os.waitpid(-pgid) to wait for any + # of that set, but I couldn't find a way to allocate pgids + # that couldn't collide. + for child in self.active_children: + try: + pid, status = os.waitpid(child, os.WNOHANG) + except os.error: + pid = None + if not pid: continue + try: + self.active_children.remove(pid) + except ValueError as e: + raise ValueError('%s. x=%d and list=%r' % (e.message, pid, + self.active_children)) + + def handle_timeout(self): + """Wait for zombies after self.timeout seconds of inactivity. + + May be extended, do not override. + """ + self.collect_children() + + def service_actions(self): + """Collect the zombie child processes regularly in the ForkingMixIn. + + service_actions is called in the BaseServer's serve_forver loop. + """ + self.collect_children() + + def process_request(self, request, client_address): + """Fork a new subprocess to process the request.""" + pid = os.fork() + if pid: + # Parent process + if self.active_children is None: + self.active_children = [] + self.active_children.append(pid) + self.close_request(request) + return + else: + # Child process. + # This must never return, hence os._exit()! + try: + self.finish_request(request, client_address) + self.shutdown_request(request) + os._exit(0) + except: + try: + self.handle_error(request, client_address) + self.shutdown_request(request) + finally: + os._exit(1) + + +class ThreadingMixIn(object): + """Mix-in class to handle each request in a new thread.""" + + # Decides how threads will act upon termination of the + # main process + daemon_threads = False + + def process_request_thread(self, request, client_address): + """Same as in BaseServer but as a thread. + + In addition, exception handling is done here. + + """ + try: + self.finish_request(request, client_address) + self.shutdown_request(request) + except: + self.handle_error(request, client_address) + self.shutdown_request(request) + + def process_request(self, request, client_address): + """Start a new thread to process the request.""" + t = threading.Thread(target = self.process_request_thread, + args = (request, client_address)) + t.daemon = self.daemon_threads + t.start() + + +class ForkingUDPServer(ForkingMixIn, UDPServer): pass +class ForkingTCPServer(ForkingMixIn, TCPServer): pass + +class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass +class ThreadingTCPServer(ThreadingMixIn, TCPServer): pass + +if hasattr(socket, 'AF_UNIX'): + + class UnixStreamServer(TCPServer): + address_family = socket.AF_UNIX + + class UnixDatagramServer(UDPServer): + address_family = socket.AF_UNIX + + class ThreadingUnixStreamServer(ThreadingMixIn, UnixStreamServer): pass + + class ThreadingUnixDatagramServer(ThreadingMixIn, UnixDatagramServer): pass + +class BaseRequestHandler(object): + + """Base class for request handler classes. + + This class is instantiated for each request to be handled. The + constructor sets the instance variables request, client_address + and server, and then calls the handle() method. To implement a + specific service, all you need to do is to derive a class which + defines a handle() method. + + The handle() method can find the request as self.request, the + client address as self.client_address, and the server (in case it + needs access to per-server information) as self.server. Since a + separate instance is created for each request, the handle() method + can define arbitrary other instance variariables. + + """ + + def __init__(self, request, client_address, server): + self.request = request + self.client_address = client_address + self.server = server + self.setup() + try: + self.handle() + finally: + self.finish() + + def setup(self): + pass + + def handle(self): + pass + + def finish(self): + pass + + +# The following two classes make it possible to use the same service +# class for stream or datagram servers. +# Each class sets up these instance variables: +# - rfile: a file object from which receives the request is read +# - wfile: a file object to which the reply is written +# When the handle() method returns, wfile is flushed properly + + +class StreamRequestHandler(BaseRequestHandler): + + """Define self.rfile and self.wfile for stream sockets.""" + + # Default buffer sizes for rfile, wfile. + # We default rfile to buffered because otherwise it could be + # really slow for large data (a getc() call per byte); we make + # wfile unbuffered because (a) often after a write() we want to + # read and we need to flush the line; (b) big writes to unbuffered + # files are typically optimized by stdio even when big reads + # aren't. + rbufsize = -1 + wbufsize = 0 + + # A timeout to apply to the request socket, if not None. + timeout = None + + # Disable nagle algorithm for this socket, if True. + # Use only when wbufsize != 0, to avoid small packets. + disable_nagle_algorithm = False + + def setup(self): + self.connection = self.request + if self.timeout is not None: + self.connection.settimeout(self.timeout) + if self.disable_nagle_algorithm: + self.connection.setsockopt(socket.IPPROTO_TCP, + socket.TCP_NODELAY, True) + self.rfile = self.connection.makefile('rb', self.rbufsize) + self.wfile = self.connection.makefile('wb', self.wbufsize) + + def finish(self): + if not self.wfile.closed: + try: + self.wfile.flush() + except socket.error: + # An final socket error may have occurred here, such as + # the local error ECONNABORTED. + pass + self.wfile.close() + self.rfile.close() + + +class DatagramRequestHandler(BaseRequestHandler): + + # XXX Regrettably, I cannot get this working on Linux; + # s.recvfrom() doesn't return a meaningful client address. + + """Define self.rfile and self.wfile for datagram sockets.""" + + def setup(self): + from io import BytesIO + self.packet, self.socket = self.request + self.rfile = BytesIO(self.packet) + self.wfile = BytesIO() + + def finish(self): + self.socket.sendto(self.wfile.getvalue(), self.client_address) diff --git a/venv/lib/python3.10/site-packages/future/backports/test/__init__.py b/venv/lib/python3.10/site-packages/future/backports/test/__init__.py new file mode 100644 index 0000000..0bba5e6 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/__init__.py @@ -0,0 +1,9 @@ +""" +test package backported for python-future. + +Its primary purpose is to allow use of "import test.support" for running +the Python standard library unit tests using the new Python 3 stdlib +import location. + +Python 3 renamed test.test_support to test.support. +""" diff --git a/venv/lib/python3.10/site-packages/future/backports/test/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/test/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..920375cc4f1a2d195716efbada4b64458fa38543 GIT binary patch literal 465 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/test/__pycache__/ssl_servers.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/test/__pycache__/ssl_servers.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..34f54107a0b342a32eccf7dc71ebdfded045711e GIT binary patch literal 7117 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 RmjQLrJdO*B68_GA{6E$j1e*W= literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/test/__pycache__/support.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/test/__pycache__/support.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..81c72f35e2f8dc8caf434c7d94b117fd9005fac6 GIT binary patch literal 54514 zcmce<34C1FecwC#3>JdmB8rqHYeb1AL6e|%%d!?yBuLSgK!$)s3zjn&;10k6ff?}5 zfD}eUMHZD2+hQdyNIO_Mfz+ca&{C26|8ChbkrrfC+dudkcByn5sN{{H9Q zJ2L<%yYJIaLC#&yJ@=e*&-tJK`R}K`X;XiKzdQ0TR{!hfWa8iIru(nJ&0&6xPv#Q| zFEN$yl3r>txs;kpEv2W@OPQ(6Qg$kvRC;Bnc8CKty5d=ylrZmowrYIxARR?H`#f|)DAn} zJax03cTVlJ^RB5~m0K#iyxf&k<2g%t*VHaM-#T@xoo}1E&Cc(hdbgc#pSr!3v#a7% z@ob{DIg_Z|vHDUnp?{?37k4l5B$;?FQA=J@N_O$isXOg_*VG<6zh~+_cHTR+x3!~^ zU)bk=(e6j4M(n(QYJaU@SMTklP}e4_>*vF|vOLR9?RWKrZ8|V@kbDD{?{CHV4))|3 zof?hv{BE3Qv?tG@sY7v|FU5Hd_2jvG>h3ttm*YHl_vE=}>K^h8sy&}hu5OBR-Q#l2 zC%nQN$*Fr!B)mSa|J8)oU%Br}dg^}e2fRV<2P^k;{{Z)!ydmy~D!UdQB;|dT%?l5C zf8q^$TV73GNlv}r`%`b5xBb=R)WhCQ-i}ujQy=hd_I7f9#M|ZF!ue6}&%9f`+sN^l z_ipcYQXcn;Q-|rnBVMxn1iz!+)~RFMk9pbhaqkXqH+fEYcY1eme$w0Hy@&J3%JzjF zS3l_Oy_WoR(tnv+_jx0f`5|w=_gzy^$u|!uk}@KS~xZJ6vxw3PgibU z_?D@0?{4oNo}KdU_3q<*+PmL-fb+NXl>MfS|Cy;XcAnt;p!Ys>k-4OI()%FS)82=?r^sEdl&>VFX1u4TX1(z#ud?fEr84TBx|W)nv+KLP z(_GKn^*!FVaD6WPf-~2WQ&qlr!8>z4_34zK^(Lmy*HYf()OqijtBaNMm7A_ET}$wW zu4>m3Q*|59x4g67hiyEUnUyzr&t1{m`|R12_mNi$>~$(!@$Illk|o%5q%{yS-PuE1W-PxnK3Z-Ex1A_Z{BH zN&Q~$wW-g0pP2eS`gyzeoz~C4?|oP0^EW3*|8t~&-g}+v@Ap3GeTw{F@ILK*hVu`2 zpPl-m_uW%J=zY%n9`1k0`(E$!oPXH+KJWWEU-iB)b&cEpW-`-#Iew`A2$@}ZxZ;6YrmL{tdq8|MLDB-}BEZdlvr2!ruf={uXJ!>-`>Szh~e0o8X?m?frA_ zUy%Rrc!Br(oc}Iqf6x1u-XC!NTi(C&{x#>{?!pym|5vTvKlJ{M)%*8rdAt9k=-&Ic z-XHVM?|9jX#K^yIU7A=~UatGiYHhygRpzR-YO`9eHHvd}zt}uiDV|$4b+rF2 zkq9H1U~_qcy%m3Wk>bYOPtCTdB>eO~LR=tvXxxDy7A0v*MQ* z8zadeyV9(3kqgp|rXOVea&5j6Wa`V6T9D@DAiY#x4l;|?MsqyKG|pF-d8e?Emf9C4R-jI*}CtQ>V9>;S}QM>8cnah(hRoESDNb*b1SvQ zdf5wfuGY>6Ie)3?S1Lh{F(7}it=fpIDOGCa88x!tS1znnsXf>kU6tl|Yo_6qXrOf< zt#EnhvD(TDar$tazEqx7YB0>ed!>~cZTCtx41F_7vCF}er=NYWG&X+ZiKoVn1%0$; z!NxksO^!`W9;aiUJT);H6ef;5J9g~o*<(SWSy@^x&0eCFDtC@v4Ythsl`^Buljds4 zk_rvR+pEqtgRQgYDzoQHjn!I{KCIY?3~LZeEB<2C!@-ctb*b#vfYwGZaCEU!uAOvX zvu&()vFg`rOO;yl*|L9PrR;mbmPr7jQ6(uF(qQv!d07zZMME;wolvdyW}qp2O?9bK z(&%kz)Mw8#fXkJNuMuHvwpQ!b-0rl^{z|QMsoFeOTCC5O`SyP6kCmlz<9x8S88xW{ zd{+D#g$z=XAZM|4y z{^@d)qWxfCwp?S_`EuZXo8~8k6_10o_CfIcP zpBnm9Q%1{~7%xiUSvwOngfXRFJCMI{0XfpwY1jxE{sMi8l_pkOk0-g%PY&X!ff4tNp24FdwZBeB{7xs5>qKJIhFQOpy0H> zndH`f#w9=H>(}gOsyKh+j7IL=!(8?E7EwggXRA$Q{y<)Y= z5_e&Rs!1#ty=tSpxLCi$4Z~{)o)xdi-{iS!qsV{1Tm@GaFP*E@$gd74GS?S*5W>s8 z5nC3^aRDr+<))Q!uG}cr>P;#yhUk2>SUlNOu|mMbW?c=?lDtxFoFiNFQiW1LosC)7|8(pfmc@wb*s_WaA8nk0sg(|E^}@YVum* zQ`?dWu7F%G)l6SY!{DZ$h0Q(7Ig`jFu2{-M;+{m~wo6IJ+&w2YI6V>O)YV9)_5DZd zV7?cc#Sr53z0pJ}hCo)-_qhcZvV=J{TNd!!2Sy8k>wJd{M7}_-EQOxI4v9GZzX?C_^{Cljqr&E(ZoJ8>;}mhnmBx9Ls{o+Ymer>pX z))*i95UMd8IR+LO*W{>p2W-k{oF;%(n}pRl8&BpQBclmXzR0u}ebX7nPNyi-q`$&Q zmTRj~4N$2O#6&qoqb`Ayg{mC9R2LW3jtIttS4Q&IflxEne$bt-ehvoQ_c)@k5HG8R zsLehyEKpUD5snS|qdFnT(o2o`HA8DfzQhYQhW)uzvOhWe^`Z1ovhZ^1`u4Bc^L0a* zC-M15uGHANGl0269=+4WjHc!u|8n?GoS2Jyf_hyFL z-*0(Sy8wfB>Jj&5>e0l7t#09Itv*>ZM{}vJ%c!S~qK9%Gbz|Fb z=)0L#xmAzx8S25hj!5Yt7W^j!>GFx}0*-EYHTLO`f)v`AqATck1mK zNX7G=&aT#q>$}=bFHM0poqUP)r1y;j4(S!^Oh*3_L*%+0V*Smuzs$Gz7dQlk4^>tT z)Wh!en@Y{9^Srfvx}(#l*4VI1zn?c6T8lH;RB~%_P~CaGKb1-PEfUwQF2YyVp_*;1 zEm?IZ>jP`bs|isQ?4Dh86QK3j!g zWM%fDd6+TPMq?%H({-PyMRbCn5kGA%-%O5MXTF&Xl5=ajweZMdd1=NgKlZb{(opwg z60N(|6RD$*7&Fm$j0^X|NXlOzd$2ho0>r*T&Wgijne&X1UsIj0hW&(U%BiMYj^VO2 z%Qq`>E&9_8j8~JdbHi$qW;MBxOjHw>GxLed*(Qjnow=fQW2{wd3l-%r=Sa=D)C*hN zDbfZn=Rsb1r8V}ovscsY{525Sg;k+S!%eNzm}k!zUNby z`!4sl`(O2 z9*60=m%9i-9ss;pMi5LiD~qeenbl?BMv&Ask;7RiSd4M5LwSv^BDqF>0&fFgF0VT1 ztrUglyhxR9~ct8_DO0`SHCjvVJC0=an`c^hPEo+M$HJjYfasLWqA?4 z8!Dd_s5oA)RjeS8O&5*hs`gfpRT&9dbUiBkRH-$XkKwn#pCkI<%j#i{u)8Wtj+f|O zL}Okf8uqY#B8of24+CH@5w<7lWMzuK)hbyo`(&io>3-T{=soHzTVmHVT_x~^lKNF^ zjf#o*5LVQ!uYx z=ZgC~gqIDc7R9*J$Q{qFOQQXZSL^QIX#I5k7j`bBiet)LB}NyDUa?ykicXdPJ1J2s zeSDVbYN9Iz_ErTuxEx&+}_M#G(JTOgaO> zn_-C&RnX7B)XPI5g^+rAIPFqX*N49zU8PcY{d-@f+?Wu%m#3`)Yms;xh%MF!$SX*& zwcDB&!1Xgl}Yp8Oe|-b$puEiRhRZZOR59W@77f;d~#RQO1qiEb$)M);^|M?{km_8 zsqeeU1Zx^{J_sE6Hlw!r^p{P!a?Nw?FGIk46Kd)m3i0kyWBY3D8`+_e!xSrJ9NlX*X+m3z1Gu4Zl_?`7NY zbIpR6^YX8!5vcI?NMYQUbYT9gZ~o_h^7PE<$0ZKn?>{~MmU^@`B8s^I`MhePG$T&H z$3>({AVgsn;e081-V)IVX)0!G_WWYyVr6lpFG$rJK?Wh|Ikb>3>0oT^yJtC@>b0(XD4O^Ac1ewcbz542Xx5{-5Wa8`kT;sbV!D zVZq{hP+2X}8-VMN>2YVOOmiFLO7`?1b@)H6=VB7p)gTbn*ERNY_;>=9fInybLM5%@57SM$-eL2Y_`^3A0GqZB?;aQ*y)T>C%3A;>I1l(N7z=nvOHe?iY| zAkvn_!AoIoWzj_30PQ9^NV+m~DdOBIQAufh&qHD4brZQh{y*qrV!&3E> zGU@+C)%!CX7#20nmHU@TLg=&W6$A{=0il-O}9ANBSzUfJ-Y?g&3>DEg@LX@AEz`kagbxc^IP)i3MtD;#LN&5d7ELhl6e1tCxN zHhr+ubUnRc)BV4q@@#?3*vPG~*2aFLYH#7y(`%|lHfue0-PhAue(|5yu|9qV2Cs6# z3ZY*TeSgYJqwjaJytJEF3+cU&`@?fzJ9jO4EqgiN&Nn^~z26*YXBP(B$-~GIC6OBUKSNu3TFN~OYiO@G z%0)+ARY@;o7G!Iaim%dkm77b=r>F8>hBC9Q{U!9n=q*YeS#B)3cxGbk%&8|nICgaM z_)|wtOn_WZ){sxJy7bMRL7nO&c4Be3bbPTq-xvo&e1sPG&+G6}4nc0Vxw?$TyTC&2 zt};)YI`veLJ$Clg8Pv|Gl`D%L%JL4B#84h=UQ_$D#;>1Z3(z0>SNOXBo7|3U^8dOj z>zio$E3;A+2RZ8VShsQrll=Sc4Q_^%Jnh$K5i+0UN&V6Ube}8~3f$U6^nZgQ{J*Jk zc9HoR-aBQ~D&MkhG(M`&zKdrWR?e--LdI55 zsGxpPLeS~@m-%WYEAgoRyJTDkAe7)%QbCGmdVulCu9`c&KTQTJqrp42N@kKh6H-M9 zNgm~A=%-16E6I9ZP<>H!PO5da!1-P%wHHGP+Rwp;$ud zRFOooJsAhBZ>K`m53DF$VO`Ci=8=CZhl}bewQe|V_dQIB($oB`<bXk5%xMWRscfLH#XcujahWH7r2Mg^lS%qRCfYNj65>NiVmO@b`G!?*PF!3sT#l zd?C+Bq4md3#(pMjsWVE6IM@a%!75a(*e2pmjA(AE1i z&sg5d3zb=HcWU#YLLd#!Xx(AhaCa9SWk6oqI8{KUR>!}pO%xl{r30ST8zR`Q#SodH6 z%_HFvqdJ9`Sgn$;L3OHcKAxI`l@~F4h1K%4WII`c*HSNy&yqF%69ueA_I7@a@8F<9 zt|eYeG1VU7I&}>eOa)zIx!r}Pvo+YvG)>P*I+OAW`p(N~q|kk^m3e7H^$!X3&B%w- zuO(sQ9`Q0)3%t|!8o6QSGR^+0177yE6iYD8bdm)iA7=+E$UK`M3ywbLI1Pm#g&R%gMLn_;$b_0|7JGGlznWcQs*xP10g_^nlHfLg*UO`E zR6}p5n_oq@$Jq=$88cBHOnt`DVK z4{r={9ilwe)^w7>D&9;pVPzG_df5oFN^SW64^_UIvbOsF(OoOa{|~xOy7XzTgTA=n z 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/test/badcert.pem b/venv/lib/python3.10/site-packages/future/backports/test/badcert.pem new file mode 100644 index 0000000..c419146 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/badcert.pem @@ -0,0 +1,36 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXwIBAAKBgQC8ddrhm+LutBvjYcQlnH21PPIseJ1JVG2HMmN2CmZk2YukO+9L +opdJhTvbGfEj0DQs1IE8M+kTUyOmuKfVrFMKwtVeCJphrAnhoz7TYOuLBSqt7lVH +fhi/VwovESJlaBOp+WMnfhcduPEYHYx/6cnVapIkZnLt30zu2um+DzA9jQIDAQAB +AoGBAK0FZpaKj6WnJZN0RqhhK+ggtBWwBnc0U/ozgKz2j1s3fsShYeiGtW6CK5nU +D1dZ5wzhbGThI7LiOXDvRucc9n7vUgi0alqPQ/PFodPxAN/eEYkmXQ7W2k7zwsDA +IUK0KUhktQbLu8qF/m8qM86ba9y9/9YkXuQbZ3COl5ahTZrhAkEA301P08RKv3KM +oXnGU2UHTuJ1MAD2hOrPxjD4/wxA/39EWG9bZczbJyggB4RHu0I3NOSFjAm3HQm0 +ANOu5QK9owJBANgOeLfNNcF4pp+UikRFqxk5hULqRAWzVxVrWe85FlPm0VVmHbb/ +loif7mqjU8o1jTd/LM7RD9f2usZyE2psaw8CQQCNLhkpX3KO5kKJmS9N7JMZSc4j +oog58yeYO8BBqKKzpug0LXuQultYv2K4veaIO04iL9VLe5z9S/Q1jaCHBBuXAkEA +z8gjGoi1AOp6PBBLZNsncCvcV/0aC+1se4HxTNo2+duKSDnbq+ljqOM+E7odU+Nq +ewvIWOG//e8fssd0mq3HywJBAJ8l/c8GVmrpFTx8r/nZ2Pyyjt3dH1widooDXYSV +q6Gbf41Llo5sYAtmxdndTLASuHKecacTgZVhy0FryZpLKrU= +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +Just bad cert data +-----END CERTIFICATE----- +-----BEGIN RSA PRIVATE KEY----- +MIICXwIBAAKBgQC8ddrhm+LutBvjYcQlnH21PPIseJ1JVG2HMmN2CmZk2YukO+9L +opdJhTvbGfEj0DQs1IE8M+kTUyOmuKfVrFMKwtVeCJphrAnhoz7TYOuLBSqt7lVH +fhi/VwovESJlaBOp+WMnfhcduPEYHYx/6cnVapIkZnLt30zu2um+DzA9jQIDAQAB +AoGBAK0FZpaKj6WnJZN0RqhhK+ggtBWwBnc0U/ozgKz2j1s3fsShYeiGtW6CK5nU +D1dZ5wzhbGThI7LiOXDvRucc9n7vUgi0alqPQ/PFodPxAN/eEYkmXQ7W2k7zwsDA +IUK0KUhktQbLu8qF/m8qM86ba9y9/9YkXuQbZ3COl5ahTZrhAkEA301P08RKv3KM +oXnGU2UHTuJ1MAD2hOrPxjD4/wxA/39EWG9bZczbJyggB4RHu0I3NOSFjAm3HQm0 +ANOu5QK9owJBANgOeLfNNcF4pp+UikRFqxk5hULqRAWzVxVrWe85FlPm0VVmHbb/ +loif7mqjU8o1jTd/LM7RD9f2usZyE2psaw8CQQCNLhkpX3KO5kKJmS9N7JMZSc4j +oog58yeYO8BBqKKzpug0LXuQultYv2K4veaIO04iL9VLe5z9S/Q1jaCHBBuXAkEA +z8gjGoi1AOp6PBBLZNsncCvcV/0aC+1se4HxTNo2+duKSDnbq+ljqOM+E7odU+Nq +ewvIWOG//e8fssd0mq3HywJBAJ8l/c8GVmrpFTx8r/nZ2Pyyjt3dH1widooDXYSV +q6Gbf41Llo5sYAtmxdndTLASuHKecacTgZVhy0FryZpLKrU= +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +Just bad cert data +-----END CERTIFICATE----- diff --git a/venv/lib/python3.10/site-packages/future/backports/test/badkey.pem b/venv/lib/python3.10/site-packages/future/backports/test/badkey.pem new file mode 100644 index 0000000..1c8a955 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/badkey.pem @@ -0,0 +1,40 @@ +-----BEGIN RSA PRIVATE KEY----- +Bad Key, though the cert should be OK +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIICpzCCAhCgAwIBAgIJAP+qStv1cIGNMA0GCSqGSIb3DQEBBQUAMIGJMQswCQYD +VQQGEwJVUzERMA8GA1UECBMIRGVsYXdhcmUxEzARBgNVBAcTCldpbG1pbmd0b24x +IzAhBgNVBAoTGlB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uMQwwCgYDVQQLEwNT +U0wxHzAdBgNVBAMTFnNvbWVtYWNoaW5lLnB5dGhvbi5vcmcwHhcNMDcwODI3MTY1 +NDUwWhcNMTMwMjE2MTY1NDUwWjCBiTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCERl +bGF3YXJlMRMwEQYDVQQHEwpXaWxtaW5ndG9uMSMwIQYDVQQKExpQeXRob24gU29m +dHdhcmUgRm91bmRhdGlvbjEMMAoGA1UECxMDU1NMMR8wHQYDVQQDExZzb21lbWFj +aGluZS5weXRob24ub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8ddrh +m+LutBvjYcQlnH21PPIseJ1JVG2HMmN2CmZk2YukO+9LopdJhTvbGfEj0DQs1IE8 +M+kTUyOmuKfVrFMKwtVeCJphrAnhoz7TYOuLBSqt7lVHfhi/VwovESJlaBOp+WMn +fhcduPEYHYx/6cnVapIkZnLt30zu2um+DzA9jQIDAQABoxUwEzARBglghkgBhvhC +AQEEBAMCBkAwDQYJKoZIhvcNAQEFBQADgYEAF4Q5BVqmCOLv1n8je/Jw9K669VXb +08hyGzQhkemEBYQd6fzQ9A/1ZzHkJKb1P6yreOLSEh4KcxYPyrLRC1ll8nr5OlCx +CMhKkTnR6qBsdNV0XtdU2+N25hqW+Ma4ZeqsN/iiJVCGNOZGnvQuvCAGWF8+J/f/ +iHkC6gGdBJhogs4= +-----END CERTIFICATE----- +-----BEGIN RSA PRIVATE KEY----- +Bad Key, though the cert should be OK +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIICpzCCAhCgAwIBAgIJAP+qStv1cIGNMA0GCSqGSIb3DQEBBQUAMIGJMQswCQYD +VQQGEwJVUzERMA8GA1UECBMIRGVsYXdhcmUxEzARBgNVBAcTCldpbG1pbmd0b24x +IzAhBgNVBAoTGlB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uMQwwCgYDVQQLEwNT +U0wxHzAdBgNVBAMTFnNvbWVtYWNoaW5lLnB5dGhvbi5vcmcwHhcNMDcwODI3MTY1 +NDUwWhcNMTMwMjE2MTY1NDUwWjCBiTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCERl +bGF3YXJlMRMwEQYDVQQHEwpXaWxtaW5ndG9uMSMwIQYDVQQKExpQeXRob24gU29m +dHdhcmUgRm91bmRhdGlvbjEMMAoGA1UECxMDU1NMMR8wHQYDVQQDExZzb21lbWFj +aGluZS5weXRob24ub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8ddrh +m+LutBvjYcQlnH21PPIseJ1JVG2HMmN2CmZk2YukO+9LopdJhTvbGfEj0DQs1IE8 +M+kTUyOmuKfVrFMKwtVeCJphrAnhoz7TYOuLBSqt7lVHfhi/VwovESJlaBOp+WMn +fhcduPEYHYx/6cnVapIkZnLt30zu2um+DzA9jQIDAQABoxUwEzARBglghkgBhvhC +AQEEBAMCBkAwDQYJKoZIhvcNAQEFBQADgYEAF4Q5BVqmCOLv1n8je/Jw9K669VXb +08hyGzQhkemEBYQd6fzQ9A/1ZzHkJKb1P6yreOLSEh4KcxYPyrLRC1ll8nr5OlCx +CMhKkTnR6qBsdNV0XtdU2+N25hqW+Ma4ZeqsN/iiJVCGNOZGnvQuvCAGWF8+J/f/ +iHkC6gGdBJhogs4= +-----END CERTIFICATE----- diff --git a/venv/lib/python3.10/site-packages/future/backports/test/dh512.pem b/venv/lib/python3.10/site-packages/future/backports/test/dh512.pem new file mode 100644 index 0000000..200d16c --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/dh512.pem @@ -0,0 +1,9 @@ +-----BEGIN DH PARAMETERS----- +MEYCQQD1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsCRtMIPWak +XUGfnHy9iUsiGSa6q6Jew1XpKgVfAgEC +-----END DH PARAMETERS----- + +These are the 512 bit DH parameters from "Assigned Number for SKIP Protocols" +(http://www.skip-vpn.org/spec/numbers.html). +See there for how they were generated. +Note that g is not a generator, but this is not a problem since p is a safe prime. diff --git a/venv/lib/python3.10/site-packages/future/backports/test/https_svn_python_org_root.pem b/venv/lib/python3.10/site-packages/future/backports/test/https_svn_python_org_root.pem new file mode 100644 index 0000000..e7dfc82 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/https_svn_python_org_root.pem @@ -0,0 +1,41 @@ +-----BEGIN CERTIFICATE----- +MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290 +IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB +IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA +Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO +BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi +MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ +ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ +8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6 +zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y +fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7 +w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc +G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k +epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q +laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ +QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU +fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826 +YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w +ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY +gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe +MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0 +IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy +dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw +czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0 +dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl +aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC +AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg +b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB +ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc +nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg +18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c +gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl +Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY +sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T +SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF +CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum +GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk +zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW +omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD +-----END CERTIFICATE----- diff --git a/venv/lib/python3.10/site-packages/future/backports/test/keycert.passwd.pem b/venv/lib/python3.10/site-packages/future/backports/test/keycert.passwd.pem new file mode 100644 index 0000000..e905748 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/keycert.passwd.pem @@ -0,0 +1,33 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,1A8D9D2A02EC698A + +kJYbfZ8L0sfe9Oty3gw0aloNnY5E8fegRfQLZlNoxTl6jNt0nIwI8kDJ36CZgR9c +u3FDJm/KqrfUoz8vW+qEnWhSG7QPX2wWGPHd4K94Yz/FgrRzZ0DoK7XxXq9gOtVA +AVGQhnz32p+6WhfGsCr9ArXEwRZrTk/FvzEPaU5fHcoSkrNVAGX8IpSVkSDwEDQr +Gv17+cfk99UV1OCza6yKHoFkTtrC+PZU71LomBabivS2Oc4B9hYuSR2hF01wTHP+ +YlWNagZOOVtNz4oKK9x9eNQpmfQXQvPPTfusexKIbKfZrMvJoxcm1gfcZ0H/wK6P +6wmXSG35qMOOztCZNtperjs1wzEBXznyK8QmLcAJBjkfarABJX9vBEzZV0OUKhy+ +noORFwHTllphbmydLhu6ehLUZMHPhzAS5UN7srtpSN81eerDMy0RMUAwA7/PofX1 +94Me85Q8jP0PC9ETdsJcPqLzAPETEYu0ELewKRcrdyWi+tlLFrpE5KT/s5ecbl9l +7B61U4Kfd1PIXc/siINhU3A3bYK+845YyUArUOnKf1kEox7p1RpD7yFqVT04lRTo +cibNKATBusXSuBrp2G6GNuhWEOSafWCKJQAzgCYIp6ZTV2khhMUGppc/2H3CF6cO +zX0KtlPVZC7hLkB6HT8SxYUwF1zqWY7+/XPPdc37MeEZ87Q3UuZwqORLY+Z0hpgt +L5JXBCoklZhCAaN2GqwFLXtGiRSRFGY7xXIhbDTlE65Wv1WGGgDLMKGE1gOz3yAo +2jjG1+yAHJUdE69XTFHSqSkvaloA1W03LdMXZ9VuQJ/ySXCie6ABAQ== +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIICVDCCAb2gAwIBAgIJANfHOBkZr8JOMA0GCSqGSIb3DQEBBQUAMF8xCzAJBgNV +BAYTAlhZMRcwFQYDVQQHEw5DYXN0bGUgQW50aHJheDEjMCEGA1UEChMaUHl0aG9u +IFNvZnR3YXJlIEZvdW5kYXRpb24xEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xMDEw +MDgyMzAxNTZaFw0yMDEwMDUyMzAxNTZaMF8xCzAJBgNVBAYTAlhZMRcwFQYDVQQH +Ew5DYXN0bGUgQW50aHJheDEjMCEGA1UEChMaUHl0aG9uIFNvZnR3YXJlIEZvdW5k +YXRpb24xEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAw +gYkCgYEA21vT5isq7F68amYuuNpSFlKDPrMUCa4YWYqZRt2OZ+/3NKaZ2xAiSwr7 +6MrQF70t5nLbSPpqE5+5VrS58SY+g/sXLiFd6AplH1wJZwh78DofbFYXUggktFMt +pTyiX8jtP66bkcPkDADA089RI1TQR6Ca+n7HFa7c1fabVV6i3zkCAwEAAaMYMBYw +FAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBBQUAA4GBAHPctQBEQ4wd +BJ6+JcpIraopLn8BGhbjNWj40mmRqWB/NAWF6M5ne7KpGAu7tLeG4hb1zLaldK8G +lxy2GPSRF6LFS48dpEj2HbMv2nvv6xxalDMJ9+DicWgAKTQ6bcX2j3GUkCR0g/T1 +CRlNBAAlvhKzO7Clpf9l0YKBEfraJByX +-----END CERTIFICATE----- diff --git a/venv/lib/python3.10/site-packages/future/backports/test/keycert.pem b/venv/lib/python3.10/site-packages/future/backports/test/keycert.pem new file mode 100644 index 0000000..64318aa --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/keycert.pem @@ -0,0 +1,31 @@ +-----BEGIN PRIVATE KEY----- +MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANtb0+YrKuxevGpm +LrjaUhZSgz6zFAmuGFmKmUbdjmfv9zSmmdsQIksK++jK0Be9LeZy20j6ahOfuVa0 +ufEmPoP7Fy4hXegKZR9cCWcIe/A6H2xWF1IIJLRTLaU8ol/I7T+um5HD5AwAwNPP +USNU0Eegmvp+xxWu3NX2m1Veot85AgMBAAECgYA3ZdZ673X0oexFlq7AAmrutkHt +CL7LvwrpOiaBjhyTxTeSNWzvtQBkIU8DOI0bIazA4UreAFffwtvEuPmonDb3F+Iq +SMAu42XcGyVZEl+gHlTPU9XRX7nTOXVt+MlRRRxL6t9GkGfUAXI3XxJDXW3c0vBK +UL9xqD8cORXOfE06rQJBAP8mEX1ERkR64Ptsoe4281vjTlNfIbs7NMPkUnrn9N/Y +BLhjNIfQ3HFZG8BTMLfX7kCS9D593DW5tV4Z9BP/c6cCQQDcFzCcVArNh2JSywOQ +ZfTfRbJg/Z5Lt9Fkngv1meeGNPgIMLN8Sg679pAOOWmzdMO3V706rNPzSVMME7E5 +oPIfAkEA8pDddarP5tCvTTgUpmTFbakm0KoTZm2+FzHcnA4jRh+XNTjTOv98Y6Ik +eO5d1ZnKXseWvkZncQgxfdnMqqpj5wJAcNq/RVne1DbYlwWchT2Si65MYmmJ8t+F +0mcsULqjOnEMwf5e+ptq5LzwbyrHZYq5FNk7ocufPv/ZQrcSSC+cFwJBAKvOJByS +x56qyGeZLOQlWS2JS3KJo59XuLFGqcbgN9Om9xFa41Yb4N9NvplFivsvZdw3m1Q/ +SPIXQuT8RMPDVNQ= +-----END PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIICVDCCAb2gAwIBAgIJANfHOBkZr8JOMA0GCSqGSIb3DQEBBQUAMF8xCzAJBgNV +BAYTAlhZMRcwFQYDVQQHEw5DYXN0bGUgQW50aHJheDEjMCEGA1UEChMaUHl0aG9u +IFNvZnR3YXJlIEZvdW5kYXRpb24xEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xMDEw +MDgyMzAxNTZaFw0yMDEwMDUyMzAxNTZaMF8xCzAJBgNVBAYTAlhZMRcwFQYDVQQH +Ew5DYXN0bGUgQW50aHJheDEjMCEGA1UEChMaUHl0aG9uIFNvZnR3YXJlIEZvdW5k +YXRpb24xEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAw +gYkCgYEA21vT5isq7F68amYuuNpSFlKDPrMUCa4YWYqZRt2OZ+/3NKaZ2xAiSwr7 +6MrQF70t5nLbSPpqE5+5VrS58SY+g/sXLiFd6AplH1wJZwh78DofbFYXUggktFMt +pTyiX8jtP66bkcPkDADA089RI1TQR6Ca+n7HFa7c1fabVV6i3zkCAwEAAaMYMBYw +FAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBBQUAA4GBAHPctQBEQ4wd +BJ6+JcpIraopLn8BGhbjNWj40mmRqWB/NAWF6M5ne7KpGAu7tLeG4hb1zLaldK8G +lxy2GPSRF6LFS48dpEj2HbMv2nvv6xxalDMJ9+DicWgAKTQ6bcX2j3GUkCR0g/T1 +CRlNBAAlvhKzO7Clpf9l0YKBEfraJByX +-----END CERTIFICATE----- diff --git a/venv/lib/python3.10/site-packages/future/backports/test/keycert2.pem b/venv/lib/python3.10/site-packages/future/backports/test/keycert2.pem new file mode 100644 index 0000000..e8a9e08 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/keycert2.pem @@ -0,0 +1,31 @@ +-----BEGIN PRIVATE KEY----- +MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJnsJZVrppL+W5I9 +zGQrrawWwE5QJpBK9nWw17mXrZ03R1cD9BamLGivVISbPlRlAVnZBEyh1ATpsB7d +CUQ+WHEvALquvx4+Yw5l+fXeiYRjrLRBYZuVy8yNtXzU3iWcGObcYRkUdiXdOyP7 +sLF2YZHRvQZpzgDBKkrraeQ81w21AgMBAAECgYBEm7n07FMHWlE+0kT0sXNsLYfy +YE+QKZnJw9WkaDN+zFEEPELkhZVt5BjsMraJr6v2fIEqF0gGGJPkbenffVq2B5dC +lWUOxvJHufMK4sM3Cp6s/gOp3LP+QkzVnvJSfAyZU6l+4PGX5pLdUsXYjPxgzjzL +S36tF7/2Uv1WePyLUQJBAMsPhYzUXOPRgmbhcJiqi9A9c3GO8kvSDYTCKt3VMnqz +HBn6MQ4VQasCD1F+7jWTI0FU/3vdw8non/Fj8hhYqZcCQQDCDRdvmZqDiZnpMqDq +L6ZSrLTVtMvZXZbgwForaAD9uHj51TME7+eYT7EG2YCgJTXJ4YvRJEnPNyskwdKt +vTSTAkEAtaaN/vyemEJ82BIGStwONNw0ILsSr5cZ9tBHzqiA/tipY+e36HRFiXhP +QcU9zXlxyWkDH8iz9DSAmE2jbfoqwwJANlMJ65E543cjIlitGcKLMnvtCCLcKpb7 +xSG0XJB6Lo11OKPJ66jp0gcFTSCY1Lx2CXVd+gfJrfwI1Pp562+bhwJBAJ9IfDPU +R8OpO9v1SGd8x33Owm7uXOpB9d63/T70AD1QOXjKUC4eXYbt0WWfWuny/RNPRuyh +w7DXSfUF+kPKolU= +-----END PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIICXTCCAcagAwIBAgIJAIO3upAG445fMA0GCSqGSIb3DQEBBQUAMGIxCzAJBgNV +BAYTAlhZMRcwFQYDVQQHEw5DYXN0bGUgQW50aHJheDEjMCEGA1UEChMaUHl0aG9u +IFNvZnR3YXJlIEZvdW5kYXRpb24xFTATBgNVBAMTDGZha2Vob3N0bmFtZTAeFw0x +MDEwMDkxNTAxMDBaFw0yMDEwMDYxNTAxMDBaMGIxCzAJBgNVBAYTAlhZMRcwFQYD +VQQHEw5DYXN0bGUgQW50aHJheDEjMCEGA1UEChMaUHl0aG9uIFNvZnR3YXJlIEZv +dW5kYXRpb24xFTATBgNVBAMTDGZha2Vob3N0bmFtZTCBnzANBgkqhkiG9w0BAQEF +AAOBjQAwgYkCgYEAmewllWumkv5bkj3MZCutrBbATlAmkEr2dbDXuZetnTdHVwP0 +FqYsaK9UhJs+VGUBWdkETKHUBOmwHt0JRD5YcS8Auq6/Hj5jDmX59d6JhGOstEFh +m5XLzI21fNTeJZwY5txhGRR2Jd07I/uwsXZhkdG9BmnOAMEqSutp5DzXDbUCAwEA +AaMbMBkwFwYDVR0RBBAwDoIMZmFrZWhvc3RuYW1lMA0GCSqGSIb3DQEBBQUAA4GB +AH+iMClLLGSaKWgwXsmdVo4FhTZZHo8Uprrtg3N9FxEeE50btpDVQysgRt5ias3K +m+bME9zbKwvbVWD5zZdjus4pDgzwF/iHyccL8JyYhxOvS/9zmvAtFXj/APIIbZFp +IT75d9f88ScIGEtknZQejnrdhB64tYki/EqluiuKBqKD +-----END CERTIFICATE----- diff --git a/venv/lib/python3.10/site-packages/future/backports/test/nokia.pem b/venv/lib/python3.10/site-packages/future/backports/test/nokia.pem new file mode 100644 index 0000000..0d044df --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/nokia.pem @@ -0,0 +1,31 @@ +# Certificate for projects.developer.nokia.com:443 (see issue 13034) +-----BEGIN CERTIFICATE----- +MIIFLDCCBBSgAwIBAgIQLubqdkCgdc7lAF9NfHlUmjANBgkqhkiG9w0BAQUFADCB +vDELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL +ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug +YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykxMDE2MDQGA1UEAxMt +VmVyaVNpZ24gQ2xhc3MgMyBJbnRlcm5hdGlvbmFsIFNlcnZlciBDQSAtIEczMB4X +DTExMDkyMTAwMDAwMFoXDTEyMDkyMDIzNTk1OVowcTELMAkGA1UEBhMCRkkxDjAM +BgNVBAgTBUVzcG9vMQ4wDAYDVQQHFAVFc3BvbzEOMAwGA1UEChQFTm9raWExCzAJ +BgNVBAsUAkJJMSUwIwYDVQQDFBxwcm9qZWN0cy5kZXZlbG9wZXIubm9raWEuY29t +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCr92w1bpHYSYxUEx8N/8Iddda2 +lYi+aXNtQfV/l2Fw9Ykv3Ipw4nLeGTj18FFlAZgMdPRlgrzF/NNXGw/9l3/qKdow +CypkQf8lLaxb9Ze1E/KKmkRJa48QTOqvo6GqKuTI6HCeGlG1RxDb8YSKcQWLiytn +yj3Wp4MgRQO266xmMQIDAQABo4IB9jCCAfIwQQYDVR0RBDowOIIccHJvamVjdHMu +ZGV2ZWxvcGVyLm5va2lhLmNvbYIYcHJvamVjdHMuZm9ydW0ubm9raWEuY29tMAkG +A1UdEwQCMAAwCwYDVR0PBAQDAgWgMEEGA1UdHwQ6MDgwNqA0oDKGMGh0dHA6Ly9T +VlJJbnRsLUczLWNybC52ZXJpc2lnbi5jb20vU1ZSSW50bEczLmNybDBEBgNVHSAE +PTA7MDkGC2CGSAGG+EUBBxcDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZl +cmlzaWduLmNvbS9ycGEwKAYDVR0lBCEwHwYJYIZIAYb4QgQBBggrBgEFBQcDAQYI +KwYBBQUHAwIwcgYIKwYBBQUHAQEEZjBkMCQGCCsGAQUFBzABhhhodHRwOi8vb2Nz +cC52ZXJpc2lnbi5jb20wPAYIKwYBBQUHMAKGMGh0dHA6Ly9TVlJJbnRsLUczLWFp +YS52ZXJpc2lnbi5jb20vU1ZSSW50bEczLmNlcjBuBggrBgEFBQcBDARiMGChXqBc +MFowWDBWFglpbWFnZS9naWYwITAfMAcGBSsOAwIaBBRLa7kolgYMu9BSOJsprEsH +iyEFGDAmFiRodHRwOi8vbG9nby52ZXJpc2lnbi5jb20vdnNsb2dvMS5naWYwDQYJ +KoZIhvcNAQEFBQADggEBACQuPyIJqXwUyFRWw9x5yDXgMW4zYFopQYOw/ItRY522 +O5BsySTh56BWS6mQB07XVfxmYUGAvRQDA5QHpmY8jIlNwSmN3s8RKo+fAtiNRlcL +x/mWSfuMs3D/S6ev3D6+dpEMZtjrhOdctsarMKp8n/hPbwhAbg5hVjpkW5n8vz2y +0KxvvkA1AxpLwpVv7OlK17ttzIHw8bp9HTlHBU5s8bKz4a565V/a5HI0CSEv/+0y +ko4/ghTnZc1CkmUngKKeFMSah/mT/xAh8XnE2l1AazFa8UKuYki1e+ArHaGZc4ix +UYOtiRphwfuYQhRZ7qX9q2MMkCMI65XNK/SaFrAbbG0= +-----END CERTIFICATE----- diff --git a/venv/lib/python3.10/site-packages/future/backports/test/nullbytecert.pem b/venv/lib/python3.10/site-packages/future/backports/test/nullbytecert.pem new file mode 100644 index 0000000..447186c --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/nullbytecert.pem @@ -0,0 +1,90 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 0 (0x0) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=python-dev@python.org + Validity + Not Before: Aug 7 13:11:52 2013 GMT + Not After : Aug 7 13:12:52 2013 GMT + Subject: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=python-dev@python.org + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:b5:ea:ed:c9:fb:46:7d:6f:3b:76:80:dd:3a:f3: + 03:94:0b:a7:a6:db:ec:1d:df:ff:23:74:08:9d:97: + 16:3f:a3:a4:7b:3e:1b:0e:96:59:25:03:a7:26:e2: + 88:a9:cf:79:cd:f7:04:56:b0:ab:79:32:6e:59:c1: + 32:30:54:eb:58:a8:cb:91:f0:42:a5:64:27:cb:d4: + 56:31:88:52:ad:cf:bd:7f:f0:06:64:1f:cc:27:b8: + a3:8b:8c:f3:d8:29:1f:25:0b:f5:46:06:1b:ca:02: + 45:ad:7b:76:0a:9c:bf:bb:b9:ae:0d:16:ab:60:75: + ae:06:3e:9c:7c:31:dc:92:2f:29:1a:e0:4b:0c:91: + 90:6c:e9:37:c5:90:d7:2a:d7:97:15:a3:80:8f:5d: + 7b:49:8f:54:30:d4:97:2c:1c:5b:37:b5:ab:69:30: + 68:43:d3:33:78:4b:02:60:f5:3c:44:80:a1:8f:e7: + f0:0f:d1:5e:87:9e:46:cf:62:fc:f9:bf:0c:65:12: + f1:93:c8:35:79:3f:c8:ec:ec:47:f5:ef:be:44:d5: + ae:82:1e:2d:9a:9f:98:5a:67:65:e1:74:70:7c:cb: + d3:c2:ce:0e:45:49:27:dc:e3:2d:d4:fb:48:0e:2f: + 9e:77:b8:14:46:c0:c4:36:ca:02:ae:6a:91:8c:da: + 2f:85 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:FALSE + X509v3 Subject Key Identifier: + 88:5A:55:C0:52:FF:61:CD:52:A3:35:0F:EA:5A:9C:24:38:22:F7:5C + X509v3 Key Usage: + Digital Signature, Non Repudiation, Key Encipherment + X509v3 Subject Alternative Name: + ************************************************************* + WARNING: The values for DNS, email and URI are WRONG. OpenSSL + doesn't print the text after a NULL byte. + ************************************************************* + DNS:altnull.python.org, email:null@python.org, URI:http://null.python.org, IP Address:192.0.2.1, IP Address:2001:DB8:0:0:0:0:0:1 + Signature Algorithm: sha1WithRSAEncryption + ac:4f:45:ef:7d:49:a8:21:70:8e:88:59:3e:d4:36:42:70:f5: + a3:bd:8b:d7:a8:d0:58:f6:31:4a:b1:a4:a6:dd:6f:d9:e8:44: + 3c:b6:0a:71:d6:7f:b1:08:61:9d:60:ce:75:cf:77:0c:d2:37: + 86:02:8d:5e:5d:f9:0f:71:b4:16:a8:c1:3d:23:1c:f1:11:b3: + 56:6e:ca:d0:8d:34:94:e6:87:2a:99:f2:ae:ae:cc:c2:e8:86: + de:08:a8:7f:c5:05:fa:6f:81:a7:82:e6:d0:53:9d:34:f4:ac: + 3e:40:fe:89:57:7a:29:a4:91:7e:0b:c6:51:31:e5:10:2f:a4: + 60:76:cd:95:51:1a:be:8b:a1:b0:fd:ad:52:bd:d7:1b:87:60: + d2:31:c7:17:c4:18:4f:2d:08:25:a3:a7:4f:b7:92:ca:e2:f5: + 25:f1:54:75:81:9d:b3:3d:61:a2:f7:da:ed:e1:c6:6f:2c:60: + 1f:d8:6f:c5:92:05:ab:c9:09:62:49:a9:14:ad:55:11:cc:d6: + 4a:19:94:99:97:37:1d:81:5f:8b:cf:a3:a8:96:44:51:08:3d: + 0b:05:65:12:eb:b6:70:80:88:48:72:4f:c6:c2:da:cf:cd:8e: + 5b:ba:97:2f:60:b4:96:56:49:5e:3a:43:76:63:04:be:2a:f6: + c1:ca:a9:94 +-----BEGIN CERTIFICATE----- +MIIE2DCCA8CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBxTELMAkGA1UEBhMCVVMx +DzANBgNVBAgMBk9yZWdvbjESMBAGA1UEBwwJQmVhdmVydG9uMSMwIQYDVQQKDBpQ +eXRob24gU29mdHdhcmUgRm91bmRhdGlvbjEgMB4GA1UECwwXUHl0aG9uIENvcmUg +RGV2ZWxvcG1lbnQxJDAiBgNVBAMMG251bGwucHl0aG9uLm9yZwBleGFtcGxlLm9y +ZzEkMCIGCSqGSIb3DQEJARYVcHl0aG9uLWRldkBweXRob24ub3JnMB4XDTEzMDgw +NzEzMTE1MloXDTEzMDgwNzEzMTI1MlowgcUxCzAJBgNVBAYTAlVTMQ8wDQYDVQQI +DAZPcmVnb24xEjAQBgNVBAcMCUJlYXZlcnRvbjEjMCEGA1UECgwaUHl0aG9uIFNv +ZnR3YXJlIEZvdW5kYXRpb24xIDAeBgNVBAsMF1B5dGhvbiBDb3JlIERldmVsb3Bt +ZW50MSQwIgYDVQQDDBtudWxsLnB5dGhvbi5vcmcAZXhhbXBsZS5vcmcxJDAiBgkq +hkiG9w0BCQEWFXB5dGhvbi1kZXZAcHl0aG9uLm9yZzCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBALXq7cn7Rn1vO3aA3TrzA5QLp6bb7B3f/yN0CJ2XFj+j +pHs+Gw6WWSUDpybiiKnPec33BFawq3kyblnBMjBU61ioy5HwQqVkJ8vUVjGIUq3P +vX/wBmQfzCe4o4uM89gpHyUL9UYGG8oCRa17dgqcv7u5rg0Wq2B1rgY+nHwx3JIv +KRrgSwyRkGzpN8WQ1yrXlxWjgI9de0mPVDDUlywcWze1q2kwaEPTM3hLAmD1PESA +oY/n8A/RXoeeRs9i/Pm/DGUS8ZPINXk/yOzsR/XvvkTVroIeLZqfmFpnZeF0cHzL +08LODkVJJ9zjLdT7SA4vnne4FEbAxDbKAq5qkYzaL4UCAwEAAaOB0DCBzTAMBgNV +HRMBAf8EAjAAMB0GA1UdDgQWBBSIWlXAUv9hzVKjNQ/qWpwkOCL3XDALBgNVHQ8E +BAMCBeAwgZAGA1UdEQSBiDCBhYIeYWx0bnVsbC5weXRob24ub3JnAGV4YW1wbGUu +Y29tgSBudWxsQHB5dGhvbi5vcmcAdXNlckBleGFtcGxlLm9yZ4YpaHR0cDovL251 +bGwucHl0aG9uLm9yZwBodHRwOi8vZXhhbXBsZS5vcmeHBMAAAgGHECABDbgAAAAA +AAAAAAAAAAEwDQYJKoZIhvcNAQEFBQADggEBAKxPRe99SaghcI6IWT7UNkJw9aO9 +i9eo0Fj2MUqxpKbdb9noRDy2CnHWf7EIYZ1gznXPdwzSN4YCjV5d+Q9xtBaowT0j +HPERs1ZuytCNNJTmhyqZ8q6uzMLoht4IqH/FBfpvgaeC5tBTnTT0rD5A/olXeimk +kX4LxlEx5RAvpGB2zZVRGr6LobD9rVK91xuHYNIxxxfEGE8tCCWjp0+3ksri9SXx +VHWBnbM9YaL32u3hxm8sYB/Yb8WSBavJCWJJqRStVRHM1koZlJmXNx2BX4vPo6iW +RFEIPQsFZRLrtnCAiEhyT8bC2s/Njlu6ly9gtJZWSV46Q3ZjBL4q9sHKqZQ= +-----END CERTIFICATE----- diff --git a/venv/lib/python3.10/site-packages/future/backports/test/nullcert.pem b/venv/lib/python3.10/site-packages/future/backports/test/nullcert.pem new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/future/backports/test/pystone.py b/venv/lib/python3.10/site-packages/future/backports/test/pystone.py new file mode 100644 index 0000000..7652027 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/pystone.py @@ -0,0 +1,272 @@ +#!/usr/bin/env python3 + +""" +"PYSTONE" Benchmark Program + +Version: Python/1.1 (corresponds to C/1.1 plus 2 Pystone fixes) + +Author: Reinhold P. Weicker, CACM Vol 27, No 10, 10/84 pg. 1013. + + Translated from ADA to C by Rick Richardson. + Every method to preserve ADA-likeness has been used, + at the expense of C-ness. + + Translated from C to Python by Guido van Rossum. + +Version History: + + Version 1.1 corrects two bugs in version 1.0: + + First, it leaked memory: in Proc1(), NextRecord ends + up having a pointer to itself. I have corrected this + by zapping NextRecord.PtrComp at the end of Proc1(). + + Second, Proc3() used the operator != to compare a + record to None. This is rather inefficient and not + true to the intention of the original benchmark (where + a pointer comparison to None is intended; the != + operator attempts to find a method __cmp__ to do value + comparison of the record). Version 1.1 runs 5-10 + percent faster than version 1.0, so benchmark figures + of different versions can't be compared directly. + +""" + +from __future__ import print_function + +from time import clock + +LOOPS = 50000 + +__version__ = "1.1" + +[Ident1, Ident2, Ident3, Ident4, Ident5] = range(1, 6) + +class Record(object): + + def __init__(self, PtrComp = None, Discr = 0, EnumComp = 0, + IntComp = 0, StringComp = 0): + self.PtrComp = PtrComp + self.Discr = Discr + self.EnumComp = EnumComp + self.IntComp = IntComp + self.StringComp = StringComp + + def copy(self): + return Record(self.PtrComp, self.Discr, self.EnumComp, + self.IntComp, self.StringComp) + +TRUE = 1 +FALSE = 0 + +def main(loops=LOOPS): + benchtime, stones = pystones(loops) + print("Pystone(%s) time for %d passes = %g" % \ + (__version__, loops, benchtime)) + print("This machine benchmarks at %g pystones/second" % stones) + + +def pystones(loops=LOOPS): + return Proc0(loops) + +IntGlob = 0 +BoolGlob = FALSE +Char1Glob = '\0' +Char2Glob = '\0' +Array1Glob = [0]*51 +Array2Glob = [x[:] for x in [Array1Glob]*51] +PtrGlb = None +PtrGlbNext = None + +def Proc0(loops=LOOPS): + global IntGlob + global BoolGlob + global Char1Glob + global Char2Glob + global Array1Glob + global Array2Glob + global PtrGlb + global PtrGlbNext + + starttime = clock() + for i in range(loops): + pass + nulltime = clock() - starttime + + PtrGlbNext = Record() + PtrGlb = Record() + PtrGlb.PtrComp = PtrGlbNext + PtrGlb.Discr = Ident1 + PtrGlb.EnumComp = Ident3 + PtrGlb.IntComp = 40 + PtrGlb.StringComp = "DHRYSTONE PROGRAM, SOME STRING" + String1Loc = "DHRYSTONE PROGRAM, 1'ST STRING" + Array2Glob[8][7] = 10 + + starttime = clock() + + for i in range(loops): + Proc5() + Proc4() + IntLoc1 = 2 + IntLoc2 = 3 + String2Loc = "DHRYSTONE PROGRAM, 2'ND STRING" + EnumLoc = Ident2 + BoolGlob = not Func2(String1Loc, String2Loc) + while IntLoc1 < IntLoc2: + IntLoc3 = 5 * IntLoc1 - IntLoc2 + IntLoc3 = Proc7(IntLoc1, IntLoc2) + IntLoc1 = IntLoc1 + 1 + Proc8(Array1Glob, Array2Glob, IntLoc1, IntLoc3) + PtrGlb = Proc1(PtrGlb) + CharIndex = 'A' + while CharIndex <= Char2Glob: + if EnumLoc == Func1(CharIndex, 'C'): + EnumLoc = Proc6(Ident1) + CharIndex = chr(ord(CharIndex)+1) + IntLoc3 = IntLoc2 * IntLoc1 + IntLoc2 = IntLoc3 / IntLoc1 + IntLoc2 = 7 * (IntLoc3 - IntLoc2) - IntLoc1 + IntLoc1 = Proc2(IntLoc1) + + benchtime = clock() - starttime - nulltime + if benchtime == 0.0: + loopsPerBenchtime = 0.0 + else: + loopsPerBenchtime = (loops / benchtime) + return benchtime, loopsPerBenchtime + +def Proc1(PtrParIn): + PtrParIn.PtrComp = NextRecord = PtrGlb.copy() + PtrParIn.IntComp = 5 + NextRecord.IntComp = PtrParIn.IntComp + NextRecord.PtrComp = PtrParIn.PtrComp + NextRecord.PtrComp = Proc3(NextRecord.PtrComp) + if NextRecord.Discr == Ident1: + NextRecord.IntComp = 6 + NextRecord.EnumComp = Proc6(PtrParIn.EnumComp) + NextRecord.PtrComp = PtrGlb.PtrComp + NextRecord.IntComp = Proc7(NextRecord.IntComp, 10) + else: + PtrParIn = NextRecord.copy() + NextRecord.PtrComp = None + return PtrParIn + +def Proc2(IntParIO): + IntLoc = IntParIO + 10 + while 1: + if Char1Glob == 'A': + IntLoc = IntLoc - 1 + IntParIO = IntLoc - IntGlob + EnumLoc = Ident1 + if EnumLoc == Ident1: + break + return IntParIO + +def Proc3(PtrParOut): + global IntGlob + + if PtrGlb is not None: + PtrParOut = PtrGlb.PtrComp + else: + IntGlob = 100 + PtrGlb.IntComp = Proc7(10, IntGlob) + return PtrParOut + +def Proc4(): + global Char2Glob + + BoolLoc = Char1Glob == 'A' + BoolLoc = BoolLoc or BoolGlob + Char2Glob = 'B' + +def Proc5(): + global Char1Glob + global BoolGlob + + Char1Glob = 'A' + BoolGlob = FALSE + +def Proc6(EnumParIn): + EnumParOut = EnumParIn + if not Func3(EnumParIn): + EnumParOut = Ident4 + if EnumParIn == Ident1: + EnumParOut = Ident1 + elif EnumParIn == Ident2: + if IntGlob > 100: + EnumParOut = Ident1 + else: + EnumParOut = Ident4 + elif EnumParIn == Ident3: + EnumParOut = Ident2 + elif EnumParIn == Ident4: + pass + elif EnumParIn == Ident5: + EnumParOut = Ident3 + return EnumParOut + +def Proc7(IntParI1, IntParI2): + IntLoc = IntParI1 + 2 + IntParOut = IntParI2 + IntLoc + return IntParOut + +def Proc8(Array1Par, Array2Par, IntParI1, IntParI2): + global IntGlob + + IntLoc = IntParI1 + 5 + Array1Par[IntLoc] = IntParI2 + Array1Par[IntLoc+1] = Array1Par[IntLoc] + Array1Par[IntLoc+30] = IntLoc + for IntIndex in range(IntLoc, IntLoc+2): + Array2Par[IntLoc][IntIndex] = IntLoc + Array2Par[IntLoc][IntLoc-1] = Array2Par[IntLoc][IntLoc-1] + 1 + Array2Par[IntLoc+20][IntLoc] = Array1Par[IntLoc] + IntGlob = 5 + +def Func1(CharPar1, CharPar2): + CharLoc1 = CharPar1 + CharLoc2 = CharLoc1 + if CharLoc2 != CharPar2: + return Ident1 + else: + return Ident2 + +def Func2(StrParI1, StrParI2): + IntLoc = 1 + while IntLoc <= 1: + if Func1(StrParI1[IntLoc], StrParI2[IntLoc+1]) == Ident1: + CharLoc = 'A' + IntLoc = IntLoc + 1 + if CharLoc >= 'W' and CharLoc <= 'Z': + IntLoc = 7 + if CharLoc == 'X': + return TRUE + else: + if StrParI1 > StrParI2: + IntLoc = IntLoc + 7 + return TRUE + else: + return FALSE + +def Func3(EnumParIn): + EnumLoc = EnumParIn + if EnumLoc == Ident3: return TRUE + return FALSE + +if __name__ == '__main__': + import sys + def error(msg): + print(msg, end=' ', file=sys.stderr) + print("usage: %s [number_of_loops]" % sys.argv[0], file=sys.stderr) + sys.exit(100) + nargs = len(sys.argv) - 1 + if nargs > 1: + error("%d arguments are too many;" % nargs) + elif nargs == 1: + try: loops = int(sys.argv[1]) + except ValueError: + error("Invalid argument %r;" % sys.argv[1]) + else: + loops = LOOPS + main(loops) diff --git a/venv/lib/python3.10/site-packages/future/backports/test/sha256.pem b/venv/lib/python3.10/site-packages/future/backports/test/sha256.pem new file mode 100644 index 0000000..d3db4b8 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/sha256.pem @@ -0,0 +1,128 @@ +# Certificate chain for https://sha256.tbs-internet.com + 0 s:/C=FR/postalCode=14000/ST=Calvados/L=CAEN/street=22 rue de Bretagne/O=TBS INTERNET/OU=0002 440443810/OU=sha-256 production/CN=sha256.tbs-internet.com + i:/C=FR/ST=Calvados/L=Caen/O=TBS INTERNET/OU=Terms and Conditions: http://www.tbs-internet.com/CA/repository/OU=TBS INTERNET CA/CN=TBS X509 CA SGC +-----BEGIN CERTIFICATE----- +MIIGXDCCBUSgAwIBAgIRAKpVmHgg9nfCodAVwcP4siwwDQYJKoZIhvcNAQELBQAw +gcQxCzAJBgNVBAYTAkZSMREwDwYDVQQIEwhDYWx2YWRvczENMAsGA1UEBxMEQ2Fl +bjEVMBMGA1UEChMMVEJTIElOVEVSTkVUMUgwRgYDVQQLEz9UZXJtcyBhbmQgQ29u +ZGl0aW9uczogaHR0cDovL3d3dy50YnMtaW50ZXJuZXQuY29tL0NBL3JlcG9zaXRv +cnkxGDAWBgNVBAsTD1RCUyBJTlRFUk5FVCBDQTEYMBYGA1UEAxMPVEJTIFg1MDkg +Q0EgU0dDMB4XDTEyMDEwNDAwMDAwMFoXDTE0MDIxNzIzNTk1OVowgcsxCzAJBgNV +BAYTAkZSMQ4wDAYDVQQREwUxNDAwMDERMA8GA1UECBMIQ2FsdmFkb3MxDTALBgNV +BAcTBENBRU4xGzAZBgNVBAkTEjIyIHJ1ZSBkZSBCcmV0YWduZTEVMBMGA1UEChMM +VEJTIElOVEVSTkVUMRcwFQYDVQQLEw4wMDAyIDQ0MDQ0MzgxMDEbMBkGA1UECxMS +c2hhLTI1NiBwcm9kdWN0aW9uMSAwHgYDVQQDExdzaGEyNTYudGJzLWludGVybmV0 +LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKQIX/zdJcyxty0m +PM1XQSoSSifueS3AVcgqMsaIKS/u+rYzsv4hQ/qA6vLn5m5/ewUcZDj7zdi6rBVf +PaVNXJ6YinLX0tkaW8TEjeVuZG5yksGZlhCt1CJ1Ho9XLiLaP4uJ7MCoNUntpJ+E +LfrOdgsIj91kPmwjDJeztVcQCvKzhjVJA/KxdInc0JvOATn7rpaSmQI5bvIjufgo +qVsTPwVFzuUYULXBk7KxRT7MiEqnd5HvviNh0285QC478zl3v0I0Fb5El4yD3p49 +IthcRnxzMKc0UhU5ogi0SbONyBfm/mzONVfSxpM+MlyvZmJqrbuuLoEDzJD+t8PU +xSuzgbcCAwEAAaOCAj4wggI6MB8GA1UdIwQYMBaAFAdEdoWTKLx/bXjSCuv6TEvf +2YIfMB0GA1UdDgQWBBT/qTGYdaj+f61c2IRFL/B1eEsM8DAOBgNVHQ8BAf8EBAMC +BaAwDAYDVR0TAQH/BAIwADA0BgNVHSUELTArBggrBgEFBQcDAQYIKwYBBQUHAwIG +CisGAQQBgjcKAwMGCWCGSAGG+EIEATBLBgNVHSAERDBCMEAGCisGAQQB5TcCBAEw +MjAwBggrBgEFBQcCARYkaHR0cHM6Ly93d3cudGJzLWludGVybmV0LmNvbS9DQS9D +UFM0MG0GA1UdHwRmMGQwMqAwoC6GLGh0dHA6Ly9jcmwudGJzLWludGVybmV0LmNv +bS9UQlNYNTA5Q0FTR0MuY3JsMC6gLKAqhihodHRwOi8vY3JsLnRicy14NTA5LmNv +bS9UQlNYNTA5Q0FTR0MuY3JsMIGmBggrBgEFBQcBAQSBmTCBljA4BggrBgEFBQcw +AoYsaHR0cDovL2NydC50YnMtaW50ZXJuZXQuY29tL1RCU1g1MDlDQVNHQy5jcnQw +NAYIKwYBBQUHMAKGKGh0dHA6Ly9jcnQudGJzLXg1MDkuY29tL1RCU1g1MDlDQVNH +Qy5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLnRicy14NTA5LmNvbTA/BgNV +HREEODA2ghdzaGEyNTYudGJzLWludGVybmV0LmNvbYIbd3d3LnNoYTI1Ni50YnMt +aW50ZXJuZXQuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQA0pOuL8QvAa5yksTbGShzX +ABApagunUGoEydv4YJT1MXy9tTp7DrWaozZSlsqBxrYAXP1d9r2fuKbEniYHxaQ0 +UYaf1VSIlDo1yuC8wE7wxbHDIpQ/E5KAyxiaJ8obtDhFstWAPAH+UoGXq0kj2teN +21sFQ5dXgA95nldvVFsFhrRUNB6xXAcaj0VZFhttI0ZfQZmQwEI/P+N9Jr40OGun +aa+Dn0TMeUH4U20YntfLbu2nDcJcYfyurm+8/0Tr4HznLnedXu9pCPYj0TaddrgT +XO0oFiyy7qGaY6+qKh71yD64Y3ycCJ/HR9Wm39mjZYc9ezYwT4noP6r7Lk8YO7/q +-----END CERTIFICATE----- + 1 s:/C=FR/ST=Calvados/L=Caen/O=TBS INTERNET/OU=Terms and Conditions: http://www.tbs-internet.com/CA/repository/OU=TBS INTERNET CA/CN=TBS X509 CA SGC + i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root +-----BEGIN CERTIFICATE----- +MIIFVjCCBD6gAwIBAgIQXpDZ0ETJMV02WTx3GTnhhTANBgkqhkiG9w0BAQUFADBv +MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk +ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF +eHRlcm5hbCBDQSBSb290MB4XDTA1MTIwMTAwMDAwMFoXDTE5MDYyNDE5MDYzMFow +gcQxCzAJBgNVBAYTAkZSMREwDwYDVQQIEwhDYWx2YWRvczENMAsGA1UEBxMEQ2Fl +bjEVMBMGA1UEChMMVEJTIElOVEVSTkVUMUgwRgYDVQQLEz9UZXJtcyBhbmQgQ29u +ZGl0aW9uczogaHR0cDovL3d3dy50YnMtaW50ZXJuZXQuY29tL0NBL3JlcG9zaXRv +cnkxGDAWBgNVBAsTD1RCUyBJTlRFUk5FVCBDQTEYMBYGA1UEAxMPVEJTIFg1MDkg +Q0EgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsgOkO3f7wzN6 +rOjg45tR5vjBfzK7qmV9IBxb/QW9EEXxG+E7FNhZqQLtwGBKoSsHTnQqV75wWMk0 +9tinWvftBkSpj5sTi/8cbzJfUvTSVYh3Qxv6AVVjMMH/ruLjE6y+4PoaPs8WoYAQ +ts5R4Z1g8c/WnTepLst2x0/Wv7GmuoQi+gXvHU6YrBiu7XkeYhzc95QdviWSJRDk +owhb5K43qhcvjRmBfO/paGlCliDGZp8mHwrI21mwobWpVjTxZRwYO3bd4+TGcI4G +Ie5wmHwE8F7SK1tgSqbBacKjDa93j7txKkfz/Yd2n7TGqOXiHPsJpG655vrKtnXk +9vs1zoDeJQIDAQABo4IBljCCAZIwHQYDVR0OBBYEFAdEdoWTKLx/bXjSCuv6TEvf +2YIfMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCAGA1UdJQQZ +MBcGCisGAQQBgjcKAwMGCWCGSAGG+EIEATAYBgNVHSAEETAPMA0GCysGAQQBgOU3 +AgQBMHsGA1UdHwR0MHIwOKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0Fk +ZFRydXN0RXh0ZXJuYWxDQVJvb3QuY3JsMDagNKAyhjBodHRwOi8vY3JsLmNvbW9k +by5uZXQvQWRkVHJ1c3RFeHRlcm5hbENBUm9vdC5jcmwwgYAGCCsGAQUFBwEBBHQw +cjA4BggrBgEFBQcwAoYsaHR0cDovL2NydC5jb21vZG9jYS5jb20vQWRkVHJ1c3RV +VE5TR0NDQS5jcnQwNgYIKwYBBQUHMAKGKmh0dHA6Ly9jcnQuY29tb2RvLm5ldC9B +ZGRUcnVzdFVUTlNHQ0NBLmNydDARBglghkgBhvhCAQEEBAMCAgQwDQYJKoZIhvcN +AQEFBQADggEBAK2zEzs+jcIrVK9oDkdDZNvhuBYTdCfpxfFs+OAujW0bIfJAy232 +euVsnJm6u/+OrqKudD2tad2BbejLLXhMZViaCmK7D9nrXHx4te5EP8rL19SUVqLY +1pTnv5dhNgEgvA7n5lIzDSYs7yRLsr7HJsYPr6SeYSuZizyX1SNz7ooJ32/F3X98 +RB0Mlc/E0OyOrkQ9/y5IrnpnaSora8CnUrV5XNOg+kyCz9edCyx4D5wXYcwZPVWz +8aDqquESrezPyjtfi4WRO4s/VD3HLZvOxzMrWAVYCDG9FxaOhF0QGuuG1F7F3GKV +v6prNyCl016kRl2j1UT+a7gLd8fA25A4C9E= +-----END CERTIFICATE----- + 2 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root + i:/C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN - DATACorp SGC +-----BEGIN CERTIFICATE----- +MIIEZjCCA06gAwIBAgIQUSYKkxzif5zDpV954HKugjANBgkqhkiG9w0BAQUFADCB +kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug +Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho +dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw +IFNHQzAeFw0wNTA2MDcwODA5MTBaFw0xOTA2MjQxOTA2MzBaMG8xCzAJBgNVBAYT +AlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0 +ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB +IFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC39xoz5vIABC05 +4E5b7R+8bA/Ntfojts7emxEzl6QpTH2Tn71KvJPtAxrjj8/lbVBa1pcplFqAsEl6 +2y6V/bjKvzc4LR4+kUGtcFbH8E8/6DKedMrIkFTpxl8PeJ2aQDwOrGGqXhSPnoeh +alDc15pOrwWzpnGUnHGzUGAKxxOdOAeGAqjpqGkmGJCrTLBPI6s6T4TY386f4Wlv +u9dC12tE5Met7m1BX3JacQg3s3llpFmglDf3AC8NwpJy2tA4ctsUqEXEXSp9t7TW +xO6szRNEt8kr3UMAJfphuWlqWCMRt6czj1Z1WfXNKddGtworZbbTQm8Vsrh7++/p +XVPVNFonAgMBAAGjgdgwgdUwHwYDVR0jBBgwFoAUUzLRs89/+uDxoF2FTpLSnkUd +tE8wHQYDVR0OBBYEFK29mHo0tCb3+sQmVO8DveAky1QaMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MBEGCWCGSAGG+EIBAQQEAwIBAjAgBgNVHSUEGTAX +BgorBgEEAYI3CgMDBglghkgBhvhCBAEwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDov +L2NybC51c2VydHJ1c3QuY29tL1VUTi1EQVRBQ29ycFNHQy5jcmwwDQYJKoZIhvcN +AQEFBQADggEBAMbuUxdoFLJRIh6QWA2U/b3xcOWGLcM2MY9USEbnLQg3vGwKYOEO +rVE04BKT6b64q7gmtOmWPSiPrmQH/uAB7MXjkesYoPF1ftsK5p+R26+udd8jkWjd +FwBaS/9kbHDrARrQkNnHptZt9hPk/7XJ0h4qy7ElQyZ42TCbTg0evmnv3+r+LbPM ++bDdtRTKkdSytaX7ARmjR3mfnYyVhzT4HziS2jamEfpr62vp3EV4FTkG101B5CHI +3C+H0be/SGB1pWLLJN47YaApIKa+xWycxOkKaSLvkTr6Jq/RW0GnOuL4OAdCq8Fb ++M5tug8EPzI0rNwEKNdwMBQmBsTkm5jVz3g= +-----END CERTIFICATE----- + 3 s:/C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN - DATACorp SGC + i:/C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN - DATACorp SGC +-----BEGIN CERTIFICATE----- +MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCB +kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug +Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho +dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw +IFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBaMIGTMQswCQYDVQQG +EwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD +VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cu +dXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6 +E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZ +D0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK +4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykq +lXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulW +bfXv33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQAB +o4GrMIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT +MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3Js +LnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUEIzAhBggr +BgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3DQEBBQUAA4IB +AQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft +Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyj +j98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVH +KWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv +2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3 +mfnGV/TJVTl4uix5yaaIK/QI +-----END CERTIFICATE----- diff --git a/venv/lib/python3.10/site-packages/future/backports/test/ssl_cert.pem b/venv/lib/python3.10/site-packages/future/backports/test/ssl_cert.pem new file mode 100644 index 0000000..47a7d7e --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/ssl_cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICVDCCAb2gAwIBAgIJANfHOBkZr8JOMA0GCSqGSIb3DQEBBQUAMF8xCzAJBgNV +BAYTAlhZMRcwFQYDVQQHEw5DYXN0bGUgQW50aHJheDEjMCEGA1UEChMaUHl0aG9u +IFNvZnR3YXJlIEZvdW5kYXRpb24xEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xMDEw +MDgyMzAxNTZaFw0yMDEwMDUyMzAxNTZaMF8xCzAJBgNVBAYTAlhZMRcwFQYDVQQH +Ew5DYXN0bGUgQW50aHJheDEjMCEGA1UEChMaUHl0aG9uIFNvZnR3YXJlIEZvdW5k +YXRpb24xEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAw +gYkCgYEA21vT5isq7F68amYuuNpSFlKDPrMUCa4YWYqZRt2OZ+/3NKaZ2xAiSwr7 +6MrQF70t5nLbSPpqE5+5VrS58SY+g/sXLiFd6AplH1wJZwh78DofbFYXUggktFMt +pTyiX8jtP66bkcPkDADA089RI1TQR6Ca+n7HFa7c1fabVV6i3zkCAwEAAaMYMBYw +FAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBBQUAA4GBAHPctQBEQ4wd +BJ6+JcpIraopLn8BGhbjNWj40mmRqWB/NAWF6M5ne7KpGAu7tLeG4hb1zLaldK8G +lxy2GPSRF6LFS48dpEj2HbMv2nvv6xxalDMJ9+DicWgAKTQ6bcX2j3GUkCR0g/T1 +CRlNBAAlvhKzO7Clpf9l0YKBEfraJByX +-----END CERTIFICATE----- diff --git a/venv/lib/python3.10/site-packages/future/backports/test/ssl_key.passwd.pem b/venv/lib/python3.10/site-packages/future/backports/test/ssl_key.passwd.pem new file mode 100644 index 0000000..2524672 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/ssl_key.passwd.pem @@ -0,0 +1,18 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,1A8D9D2A02EC698A + +kJYbfZ8L0sfe9Oty3gw0aloNnY5E8fegRfQLZlNoxTl6jNt0nIwI8kDJ36CZgR9c +u3FDJm/KqrfUoz8vW+qEnWhSG7QPX2wWGPHd4K94Yz/FgrRzZ0DoK7XxXq9gOtVA +AVGQhnz32p+6WhfGsCr9ArXEwRZrTk/FvzEPaU5fHcoSkrNVAGX8IpSVkSDwEDQr +Gv17+cfk99UV1OCza6yKHoFkTtrC+PZU71LomBabivS2Oc4B9hYuSR2hF01wTHP+ +YlWNagZOOVtNz4oKK9x9eNQpmfQXQvPPTfusexKIbKfZrMvJoxcm1gfcZ0H/wK6P +6wmXSG35qMOOztCZNtperjs1wzEBXznyK8QmLcAJBjkfarABJX9vBEzZV0OUKhy+ +noORFwHTllphbmydLhu6ehLUZMHPhzAS5UN7srtpSN81eerDMy0RMUAwA7/PofX1 +94Me85Q8jP0PC9ETdsJcPqLzAPETEYu0ELewKRcrdyWi+tlLFrpE5KT/s5ecbl9l +7B61U4Kfd1PIXc/siINhU3A3bYK+845YyUArUOnKf1kEox7p1RpD7yFqVT04lRTo +cibNKATBusXSuBrp2G6GNuhWEOSafWCKJQAzgCYIp6ZTV2khhMUGppc/2H3CF6cO +zX0KtlPVZC7hLkB6HT8SxYUwF1zqWY7+/XPPdc37MeEZ87Q3UuZwqORLY+Z0hpgt +L5JXBCoklZhCAaN2GqwFLXtGiRSRFGY7xXIhbDTlE65Wv1WGGgDLMKGE1gOz3yAo +2jjG1+yAHJUdE69XTFHSqSkvaloA1W03LdMXZ9VuQJ/ySXCie6ABAQ== +-----END RSA PRIVATE KEY----- diff --git a/venv/lib/python3.10/site-packages/future/backports/test/ssl_key.pem b/venv/lib/python3.10/site-packages/future/backports/test/ssl_key.pem new file mode 100644 index 0000000..3fd3bbd --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/ssl_key.pem @@ -0,0 +1,16 @@ +-----BEGIN PRIVATE KEY----- +MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANtb0+YrKuxevGpm +LrjaUhZSgz6zFAmuGFmKmUbdjmfv9zSmmdsQIksK++jK0Be9LeZy20j6ahOfuVa0 +ufEmPoP7Fy4hXegKZR9cCWcIe/A6H2xWF1IIJLRTLaU8ol/I7T+um5HD5AwAwNPP +USNU0Eegmvp+xxWu3NX2m1Veot85AgMBAAECgYA3ZdZ673X0oexFlq7AAmrutkHt +CL7LvwrpOiaBjhyTxTeSNWzvtQBkIU8DOI0bIazA4UreAFffwtvEuPmonDb3F+Iq +SMAu42XcGyVZEl+gHlTPU9XRX7nTOXVt+MlRRRxL6t9GkGfUAXI3XxJDXW3c0vBK +UL9xqD8cORXOfE06rQJBAP8mEX1ERkR64Ptsoe4281vjTlNfIbs7NMPkUnrn9N/Y +BLhjNIfQ3HFZG8BTMLfX7kCS9D593DW5tV4Z9BP/c6cCQQDcFzCcVArNh2JSywOQ +ZfTfRbJg/Z5Lt9Fkngv1meeGNPgIMLN8Sg679pAOOWmzdMO3V706rNPzSVMME7E5 +oPIfAkEA8pDddarP5tCvTTgUpmTFbakm0KoTZm2+FzHcnA4jRh+XNTjTOv98Y6Ik +eO5d1ZnKXseWvkZncQgxfdnMqqpj5wJAcNq/RVne1DbYlwWchT2Si65MYmmJ8t+F +0mcsULqjOnEMwf5e+ptq5LzwbyrHZYq5FNk7ocufPv/ZQrcSSC+cFwJBAKvOJByS +x56qyGeZLOQlWS2JS3KJo59XuLFGqcbgN9Om9xFa41Yb4N9NvplFivsvZdw3m1Q/ +SPIXQuT8RMPDVNQ= +-----END PRIVATE KEY----- diff --git a/venv/lib/python3.10/site-packages/future/backports/test/ssl_servers.py b/venv/lib/python3.10/site-packages/future/backports/test/ssl_servers.py new file mode 100644 index 0000000..87a3fb8 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/ssl_servers.py @@ -0,0 +1,207 @@ +from __future__ import absolute_import, division, print_function, unicode_literals +from future.builtins import filter, str +from future import utils +import os +import sys +import ssl +import pprint +import socket +from future.backports.urllib import parse as urllib_parse +from future.backports.http.server import (HTTPServer as _HTTPServer, + SimpleHTTPRequestHandler, BaseHTTPRequestHandler) +from future.backports.test import support +threading = support.import_module("threading") + +here = os.path.dirname(__file__) + +HOST = support.HOST +CERTFILE = os.path.join(here, 'keycert.pem') + +# This one's based on HTTPServer, which is based on SocketServer + +class HTTPSServer(_HTTPServer): + + def __init__(self, server_address, handler_class, context): + _HTTPServer.__init__(self, server_address, handler_class) + self.context = context + + def __str__(self): + return ('<%s %s:%s>' % + (self.__class__.__name__, + self.server_name, + self.server_port)) + + def get_request(self): + # override this to wrap socket with SSL + try: + sock, addr = self.socket.accept() + sslconn = self.context.wrap_socket(sock, server_side=True) + except socket.error as e: + # socket errors are silenced by the caller, print them here + if support.verbose: + sys.stderr.write("Got an error:\n%s\n" % e) + raise + return sslconn, addr + +class RootedHTTPRequestHandler(SimpleHTTPRequestHandler): + # need to override translate_path to get a known root, + # instead of using os.curdir, since the test could be + # run from anywhere + + server_version = "TestHTTPS/1.0" + root = here + # Avoid hanging when a request gets interrupted by the client + timeout = 5 + + def translate_path(self, path): + """Translate a /-separated PATH to the local filename syntax. + + Components that mean special things to the local file system + (e.g. drive or directory names) are ignored. (XXX They should + probably be diagnosed.) + + """ + # abandon query parameters + path = urllib.parse.urlparse(path)[2] + path = os.path.normpath(urllib.parse.unquote(path)) + words = path.split('/') + words = filter(None, words) + path = self.root + for word in words: + drive, word = os.path.splitdrive(word) + head, word = os.path.split(word) + path = os.path.join(path, word) + return path + + def log_message(self, format, *args): + # we override this to suppress logging unless "verbose" + if support.verbose: + sys.stdout.write(" server (%s:%d %s):\n [%s] %s\n" % + (self.server.server_address, + self.server.server_port, + self.request.cipher(), + self.log_date_time_string(), + format%args)) + + +class StatsRequestHandler(BaseHTTPRequestHandler): + """Example HTTP request handler which returns SSL statistics on GET + requests. + """ + + server_version = "StatsHTTPS/1.0" + + def do_GET(self, send_body=True): + """Serve a GET request.""" + sock = self.rfile.raw._sock + context = sock.context + stats = { + 'session_cache': context.session_stats(), + 'cipher': sock.cipher(), + 'compression': sock.compression(), + } + body = pprint.pformat(stats) + body = body.encode('utf-8') + self.send_response(200) + self.send_header("Content-type", "text/plain; charset=utf-8") + self.send_header("Content-Length", str(len(body))) + self.end_headers() + if send_body: + self.wfile.write(body) + + def do_HEAD(self): + """Serve a HEAD request.""" + self.do_GET(send_body=False) + + def log_request(self, format, *args): + if support.verbose: + BaseHTTPRequestHandler.log_request(self, format, *args) + + +class HTTPSServerThread(threading.Thread): + + def __init__(self, context, host=HOST, handler_class=None): + self.flag = None + self.server = HTTPSServer((host, 0), + handler_class or RootedHTTPRequestHandler, + context) + self.port = self.server.server_port + threading.Thread.__init__(self) + self.daemon = True + + def __str__(self): + return "<%s %s>" % (self.__class__.__name__, self.server) + + def start(self, flag=None): + self.flag = flag + threading.Thread.start(self) + + def run(self): + if self.flag: + self.flag.set() + try: + self.server.serve_forever(0.05) + finally: + self.server.server_close() + + def stop(self): + self.server.shutdown() + + +def make_https_server(case, certfile=CERTFILE, host=HOST, handler_class=None): + # we assume the certfile contains both private key and certificate + context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + context.load_cert_chain(certfile) + server = HTTPSServerThread(context, host, handler_class) + flag = threading.Event() + server.start(flag) + flag.wait() + def cleanup(): + if support.verbose: + sys.stdout.write('stopping HTTPS server\n') + server.stop() + if support.verbose: + sys.stdout.write('joining HTTPS thread\n') + server.join() + case.addCleanup(cleanup) + return server + + +if __name__ == "__main__": + import argparse + parser = argparse.ArgumentParser( + description='Run a test HTTPS server. ' + 'By default, the current directory is served.') + parser.add_argument('-p', '--port', type=int, default=4433, + help='port to listen on (default: %(default)s)') + parser.add_argument('-q', '--quiet', dest='verbose', default=True, + action='store_false', help='be less verbose') + parser.add_argument('-s', '--stats', dest='use_stats_handler', default=False, + action='store_true', help='always return stats page') + parser.add_argument('--curve-name', dest='curve_name', type=str, + action='store', + help='curve name for EC-based Diffie-Hellman') + parser.add_argument('--dh', dest='dh_file', type=str, action='store', + help='PEM file containing DH parameters') + args = parser.parse_args() + + support.verbose = args.verbose + if args.use_stats_handler: + handler_class = StatsRequestHandler + else: + handler_class = RootedHTTPRequestHandler + if utils.PY2: + handler_class.root = os.getcwdu() + else: + handler_class.root = os.getcwd() + context = ssl.SSLContext(ssl.PROTOCOL_TLSv1) + context.load_cert_chain(CERTFILE) + if args.curve_name: + context.set_ecdh_curve(args.curve_name) + if args.dh_file: + context.load_dh_params(args.dh_file) + + server = HTTPSServer(("", args.port), handler_class, context) + if args.verbose: + print("Listening on https://localhost:{0.port}".format(args)) + server.serve_forever(0.1) diff --git a/venv/lib/python3.10/site-packages/future/backports/test/support.py b/venv/lib/python3.10/site-packages/future/backports/test/support.py new file mode 100644 index 0000000..6639372 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/test/support.py @@ -0,0 +1,2016 @@ +# -*- coding: utf-8 -*- +"""Supporting definitions for the Python regression tests. + +Backported for python-future from Python 3.3 test/support.py. +""" + +from __future__ import (absolute_import, division, + print_function, unicode_literals) +from future import utils +from future.builtins import str, range, open, int, map, list + +import contextlib +import errno +import functools +import gc +import socket +import sys +import os +import platform +import shutil +import warnings +import unittest +# For Python 2.6 compatibility: +if not hasattr(unittest, 'skip'): + import unittest2 as unittest + +import importlib +# import collections.abc # not present on Py2.7 +import re +import subprocess +import time +try: + import sysconfig +except ImportError: + # sysconfig is not available on Python 2.6. Try using distutils.sysconfig instead: + from distutils import sysconfig +import fnmatch +import logging.handlers +import struct +import tempfile + +try: + if utils.PY3: + import _thread, threading + else: + import thread as _thread, threading +except ImportError: + _thread = None + threading = None +try: + import multiprocessing.process +except ImportError: + multiprocessing = None + +try: + import zlib +except ImportError: + zlib = None + +try: + import gzip +except ImportError: + gzip = None + +try: + import bz2 +except ImportError: + bz2 = None + +try: + import lzma +except ImportError: + lzma = None + +__all__ = [ + "Error", "TestFailed", "ResourceDenied", "import_module", "verbose", + "use_resources", "max_memuse", "record_original_stdout", + "get_original_stdout", "unload", "unlink", "rmtree", "forget", + "is_resource_enabled", "requires", "requires_freebsd_version", + "requires_linux_version", "requires_mac_ver", "find_unused_port", + "bind_port", "IPV6_ENABLED", "is_jython", "TESTFN", "HOST", "SAVEDCWD", + "temp_cwd", "findfile", "create_empty_file", "sortdict", + "check_syntax_error", "open_urlresource", "check_warnings", "CleanImport", + "EnvironmentVarGuard", "TransientResource", "captured_stdout", + "captured_stdin", "captured_stderr", "time_out", "socket_peer_reset", + "ioerror_peer_reset", "run_with_locale", 'temp_umask', + "transient_internet", "set_memlimit", "bigmemtest", "bigaddrspacetest", + "BasicTestRunner", "run_unittest", "run_doctest", "threading_setup", + "threading_cleanup", "reap_children", "cpython_only", "check_impl_detail", + "get_attribute", "swap_item", "swap_attr", "requires_IEEE_754", + "TestHandler", "Matcher", "can_symlink", "skip_unless_symlink", + "skip_unless_xattr", "import_fresh_module", "requires_zlib", + "PIPE_MAX_SIZE", "failfast", "anticipate_failure", "run_with_tz", + "requires_gzip", "requires_bz2", "requires_lzma", "suppress_crash_popup", + ] + +class Error(Exception): + """Base class for regression test exceptions.""" + +class TestFailed(Error): + """Test failed.""" + +class ResourceDenied(unittest.SkipTest): + """Test skipped because it requested a disallowed resource. + + This is raised when a test calls requires() for a resource that + has not be enabled. It is used to distinguish between expected + and unexpected skips. + """ + +@contextlib.contextmanager +def _ignore_deprecated_imports(ignore=True): + """Context manager to suppress package and module deprecation + warnings when importing them. + + If ignore is False, this context manager has no effect.""" + if ignore: + with warnings.catch_warnings(): + warnings.filterwarnings("ignore", ".+ (module|package)", + DeprecationWarning) + yield + else: + yield + + +def import_module(name, deprecated=False): + """Import and return the module to be tested, raising SkipTest if + it is not available. + + If deprecated is True, any module or package deprecation messages + will be suppressed.""" + with _ignore_deprecated_imports(deprecated): + try: + return importlib.import_module(name) + except ImportError as msg: + raise unittest.SkipTest(str(msg)) + + +def _save_and_remove_module(name, orig_modules): + """Helper function to save and remove a module from sys.modules + + Raise ImportError if the module can't be imported. + """ + # try to import the module and raise an error if it can't be imported + if name not in sys.modules: + __import__(name) + del sys.modules[name] + for modname in list(sys.modules): + if modname == name or modname.startswith(name + '.'): + orig_modules[modname] = sys.modules[modname] + del sys.modules[modname] + +def _save_and_block_module(name, orig_modules): + """Helper function to save and block a module in sys.modules + + Return True if the module was in sys.modules, False otherwise. + """ + saved = True + try: + orig_modules[name] = sys.modules[name] + except KeyError: + saved = False + sys.modules[name] = None + return saved + + +def anticipate_failure(condition): + """Decorator to mark a test that is known to be broken in some cases + + Any use of this decorator should have a comment identifying the + associated tracker issue. + """ + if condition: + return unittest.expectedFailure + return lambda f: f + + +def import_fresh_module(name, fresh=(), blocked=(), deprecated=False): + """Import and return a module, deliberately bypassing sys.modules. + This function imports and returns a fresh copy of the named Python module + by removing the named module from sys.modules before doing the import. + Note that unlike reload, the original module is not affected by + this operation. + + *fresh* is an iterable of additional module names that are also removed + from the sys.modules cache before doing the import. + + *blocked* is an iterable of module names that are replaced with None + in the module cache during the import to ensure that attempts to import + them raise ImportError. + + The named module and any modules named in the *fresh* and *blocked* + parameters are saved before starting the import and then reinserted into + sys.modules when the fresh import is complete. + + Module and package deprecation messages are suppressed during this import + if *deprecated* is True. + + This function will raise ImportError if the named module cannot be + imported. + + If deprecated is True, any module or package deprecation messages + will be suppressed. + """ + # NOTE: test_heapq, test_json and test_warnings include extra sanity checks + # to make sure that this utility function is working as expected + with _ignore_deprecated_imports(deprecated): + # Keep track of modules saved for later restoration as well + # as those which just need a blocking entry removed + orig_modules = {} + names_to_remove = [] + _save_and_remove_module(name, orig_modules) + try: + for fresh_name in fresh: + _save_and_remove_module(fresh_name, orig_modules) + for blocked_name in blocked: + if not _save_and_block_module(blocked_name, orig_modules): + names_to_remove.append(blocked_name) + fresh_module = importlib.import_module(name) + except ImportError: + fresh_module = None + finally: + for orig_name, module in orig_modules.items(): + sys.modules[orig_name] = module + for name_to_remove in names_to_remove: + del sys.modules[name_to_remove] + return fresh_module + + +def get_attribute(obj, name): + """Get an attribute, raising SkipTest if AttributeError is raised.""" + try: + attribute = getattr(obj, name) + except AttributeError: + raise unittest.SkipTest("object %r has no attribute %r" % (obj, name)) + else: + return attribute + +verbose = 1 # Flag set to 0 by regrtest.py +use_resources = None # Flag set to [] by regrtest.py +max_memuse = 0 # Disable bigmem tests (they will still be run with + # small sizes, to make sure they work.) +real_max_memuse = 0 +failfast = False +match_tests = None + +# _original_stdout is meant to hold stdout at the time regrtest began. +# This may be "the real" stdout, or IDLE's emulation of stdout, or whatever. +# The point is to have some flavor of stdout the user can actually see. +_original_stdout = None +def record_original_stdout(stdout): + global _original_stdout + _original_stdout = stdout + +def get_original_stdout(): + return _original_stdout or sys.stdout + +def unload(name): + try: + del sys.modules[name] + except KeyError: + pass + +if sys.platform.startswith("win"): + def _waitfor(func, pathname, waitall=False): + # Perform the operation + func(pathname) + # Now setup the wait loop + if waitall: + dirname = pathname + else: + dirname, name = os.path.split(pathname) + dirname = dirname or '.' + # Check for `pathname` to be removed from the filesystem. + # The exponential backoff of the timeout amounts to a total + # of ~1 second after which the deletion is probably an error + # anyway. + # Testing on a i7@4.3GHz shows that usually only 1 iteration is + # required when contention occurs. + timeout = 0.001 + while timeout < 1.0: + # Note we are only testing for the existence of the file(s) in + # the contents of the directory regardless of any security or + # access rights. If we have made it this far, we have sufficient + # permissions to do that much using Python's equivalent of the + # Windows API FindFirstFile. + # Other Windows APIs can fail or give incorrect results when + # dealing with files that are pending deletion. + L = os.listdir(dirname) + if not (L if waitall else name in L): + return + # Increase the timeout and try again + time.sleep(timeout) + timeout *= 2 + warnings.warn('tests may fail, delete still pending for ' + pathname, + RuntimeWarning, stacklevel=4) + + def _unlink(filename): + _waitfor(os.unlink, filename) + + def _rmdir(dirname): + _waitfor(os.rmdir, dirname) + + def _rmtree(path): + def _rmtree_inner(path): + for name in os.listdir(path): + fullname = os.path.join(path, name) + if os.path.isdir(fullname): + _waitfor(_rmtree_inner, fullname, waitall=True) + os.rmdir(fullname) + else: + os.unlink(fullname) + _waitfor(_rmtree_inner, path, waitall=True) + _waitfor(os.rmdir, path) +else: + _unlink = os.unlink + _rmdir = os.rmdir + _rmtree = shutil.rmtree + +def unlink(filename): + try: + _unlink(filename) + except OSError as error: + # The filename need not exist. + if error.errno not in (errno.ENOENT, errno.ENOTDIR): + raise + +def rmdir(dirname): + try: + _rmdir(dirname) + except OSError as error: + # The directory need not exist. + if error.errno != errno.ENOENT: + raise + +def rmtree(path): + try: + _rmtree(path) + except OSError as error: + if error.errno != errno.ENOENT: + raise + + +# On some platforms, should not run gui test even if it is allowed +# in `use_resources'. +if sys.platform.startswith('win'): + import ctypes + import ctypes.wintypes + def _is_gui_available(): + UOI_FLAGS = 1 + WSF_VISIBLE = 0x0001 + class USEROBJECTFLAGS(ctypes.Structure): + _fields_ = [("fInherit", ctypes.wintypes.BOOL), + ("fReserved", ctypes.wintypes.BOOL), + ("dwFlags", ctypes.wintypes.DWORD)] + dll = ctypes.windll.user32 + h = dll.GetProcessWindowStation() + if not h: + raise ctypes.WinError() + uof = USEROBJECTFLAGS() + needed = ctypes.wintypes.DWORD() + res = dll.GetUserObjectInformationW(h, + UOI_FLAGS, + ctypes.byref(uof), + ctypes.sizeof(uof), + ctypes.byref(needed)) + if not res: + raise ctypes.WinError() + return bool(uof.dwFlags & WSF_VISIBLE) +else: + def _is_gui_available(): + return True + +def is_resource_enabled(resource): + """Test whether a resource is enabled. Known resources are set by + regrtest.py.""" + return use_resources is not None and resource in use_resources + +def requires(resource, msg=None): + """Raise ResourceDenied if the specified resource is not available. + + If the caller's module is __main__ then automatically return True. The + possibility of False being returned occurs when regrtest.py is + executing. + """ + if resource == 'gui' and not _is_gui_available(): + raise unittest.SkipTest("Cannot use the 'gui' resource") + # see if the caller's module is __main__ - if so, treat as if + # the resource was set + if sys._getframe(1).f_globals.get("__name__") == "__main__": + return + if not is_resource_enabled(resource): + if msg is None: + msg = "Use of the %r resource not enabled" % resource + raise ResourceDenied(msg) + +def _requires_unix_version(sysname, min_version): + """Decorator raising SkipTest if the OS is `sysname` and the version is less + than `min_version`. + + For example, @_requires_unix_version('FreeBSD', (7, 2)) raises SkipTest if + the FreeBSD version is less than 7.2. + """ + def decorator(func): + @functools.wraps(func) + def wrapper(*args, **kw): + if platform.system() == sysname: + version_txt = platform.release().split('-', 1)[0] + try: + version = tuple(map(int, version_txt.split('.'))) + except ValueError: + pass + else: + if version < min_version: + min_version_txt = '.'.join(map(str, min_version)) + raise unittest.SkipTest( + "%s version %s or higher required, not %s" + % (sysname, min_version_txt, version_txt)) + return func(*args, **kw) + wrapper.min_version = min_version + return wrapper + return decorator + +def requires_freebsd_version(*min_version): + """Decorator raising SkipTest if the OS is FreeBSD and the FreeBSD version is + less than `min_version`. + + For example, @requires_freebsd_version(7, 2) raises SkipTest if the FreeBSD + version is less than 7.2. + """ + return _requires_unix_version('FreeBSD', min_version) + +def requires_linux_version(*min_version): + """Decorator raising SkipTest if the OS is Linux and the Linux version is + less than `min_version`. + + For example, @requires_linux_version(2, 6, 32) raises SkipTest if the Linux + version is less than 2.6.32. + """ + return _requires_unix_version('Linux', min_version) + +def requires_mac_ver(*min_version): + """Decorator raising SkipTest if the OS is Mac OS X and the OS X + version if less than min_version. + + For example, @requires_mac_ver(10, 5) raises SkipTest if the OS X version + is lesser than 10.5. + """ + def decorator(func): + @functools.wraps(func) + def wrapper(*args, **kw): + if sys.platform == 'darwin': + version_txt = platform.mac_ver()[0] + try: + version = tuple(map(int, version_txt.split('.'))) + except ValueError: + pass + else: + if version < min_version: + min_version_txt = '.'.join(map(str, min_version)) + raise unittest.SkipTest( + "Mac OS X %s or higher required, not %s" + % (min_version_txt, version_txt)) + return func(*args, **kw) + wrapper.min_version = min_version + return wrapper + return decorator + +# Don't use "localhost", since resolving it uses the DNS under recent +# Windows versions (see issue #18792). +HOST = "127.0.0.1" +HOSTv6 = "::1" + + +def find_unused_port(family=socket.AF_INET, socktype=socket.SOCK_STREAM): + """Returns an unused port that should be suitable for binding. This is + achieved by creating a temporary socket with the same family and type as + the 'sock' parameter (default is AF_INET, SOCK_STREAM), and binding it to + the specified host address (defaults to 0.0.0.0) with the port set to 0, + eliciting an unused ephemeral port from the OS. The temporary socket is + then closed and deleted, and the ephemeral port is returned. + + Either this method or bind_port() should be used for any tests where a + server socket needs to be bound to a particular port for the duration of + the test. Which one to use depends on whether the calling code is creating + a python socket, or if an unused port needs to be provided in a constructor + or passed to an external program (i.e. the -accept argument to openssl's + s_server mode). Always prefer bind_port() over find_unused_port() where + possible. Hard coded ports should *NEVER* be used. As soon as a server + socket is bound to a hard coded port, the ability to run multiple instances + of the test simultaneously on the same host is compromised, which makes the + test a ticking time bomb in a buildbot environment. On Unix buildbots, this + may simply manifest as a failed test, which can be recovered from without + intervention in most cases, but on Windows, the entire python process can + completely and utterly wedge, requiring someone to log in to the buildbot + and manually kill the affected process. + + (This is easy to reproduce on Windows, unfortunately, and can be traced to + the SO_REUSEADDR socket option having different semantics on Windows versus + Unix/Linux. On Unix, you can't have two AF_INET SOCK_STREAM sockets bind, + listen and then accept connections on identical host/ports. An EADDRINUSE + socket.error will be raised at some point (depending on the platform and + the order bind and listen were called on each socket). + + However, on Windows, if SO_REUSEADDR is set on the sockets, no EADDRINUSE + will ever be raised when attempting to bind two identical host/ports. When + accept() is called on each socket, the second caller's process will steal + the port from the first caller, leaving them both in an awkwardly wedged + state where they'll no longer respond to any signals or graceful kills, and + must be forcibly killed via OpenProcess()/TerminateProcess(). + + The solution on Windows is to use the SO_EXCLUSIVEADDRUSE socket option + instead of SO_REUSEADDR, which effectively affords the same semantics as + SO_REUSEADDR on Unix. Given the propensity of Unix developers in the Open + Source world compared to Windows ones, this is a common mistake. A quick + look over OpenSSL's 0.9.8g source shows that they use SO_REUSEADDR when + openssl.exe is called with the 's_server' option, for example. See + http://bugs.python.org/issue2550 for more info. The following site also + has a very thorough description about the implications of both REUSEADDR + and EXCLUSIVEADDRUSE on Windows: + http://msdn2.microsoft.com/en-us/library/ms740621(VS.85).aspx) + + XXX: although this approach is a vast improvement on previous attempts to + elicit unused ports, it rests heavily on the assumption that the ephemeral + port returned to us by the OS won't immediately be dished back out to some + other process when we close and delete our temporary socket but before our + calling code has a chance to bind the returned port. We can deal with this + issue if/when we come across it. + """ + + tempsock = socket.socket(family, socktype) + port = bind_port(tempsock) + tempsock.close() + del tempsock + return port + +def bind_port(sock, host=HOST): + """Bind the socket to a free port and return the port number. Relies on + ephemeral ports in order to ensure we are using an unbound port. This is + important as many tests may be running simultaneously, especially in a + buildbot environment. This method raises an exception if the sock.family + is AF_INET and sock.type is SOCK_STREAM, *and* the socket has SO_REUSEADDR + or SO_REUSEPORT set on it. Tests should *never* set these socket options + for TCP/IP sockets. The only case for setting these options is testing + multicasting via multiple UDP sockets. + + Additionally, if the SO_EXCLUSIVEADDRUSE socket option is available (i.e. + on Windows), it will be set on the socket. This will prevent anyone else + from bind()'ing to our host/port for the duration of the test. + """ + + if sock.family == socket.AF_INET and sock.type == socket.SOCK_STREAM: + if hasattr(socket, 'SO_REUSEADDR'): + if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1: + raise TestFailed("tests should never set the SO_REUSEADDR " \ + "socket option on TCP/IP sockets!") + if hasattr(socket, 'SO_REUSEPORT'): + try: + if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: + raise TestFailed("tests should never set the SO_REUSEPORT " \ + "socket option on TCP/IP sockets!") + except socket.error: + # Python's socket module was compiled using modern headers + # thus defining SO_REUSEPORT but this process is running + # under an older kernel that does not support SO_REUSEPORT. + pass + if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'): + sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) + + sock.bind((host, 0)) + port = sock.getsockname()[1] + return port + +def _is_ipv6_enabled(): + """Check whether IPv6 is enabled on this host.""" + if socket.has_ipv6: + sock = None + try: + sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) + sock.bind(('::1', 0)) + return True + except (socket.error, socket.gaierror): + pass + finally: + if sock: + sock.close() + return False + +IPV6_ENABLED = _is_ipv6_enabled() + + +# A constant likely larger than the underlying OS pipe buffer size, to +# make writes blocking. +# Windows limit seems to be around 512 B, and many Unix kernels have a +# 64 KiB pipe buffer size or 16 * PAGE_SIZE: take a few megs to be sure. +# (see issue #17835 for a discussion of this number). +PIPE_MAX_SIZE = 4 * 1024 * 1024 + 1 + +# A constant likely larger than the underlying OS socket buffer size, to make +# writes blocking. +# The socket buffer sizes can usually be tuned system-wide (e.g. through sysctl +# on Linux), or on a per-socket basis (SO_SNDBUF/SO_RCVBUF). See issue #18643 +# for a discussion of this number). +SOCK_MAX_SIZE = 16 * 1024 * 1024 + 1 + +# # decorator for skipping tests on non-IEEE 754 platforms +# requires_IEEE_754 = unittest.skipUnless( +# float.__getformat__("double").startswith("IEEE"), +# "test requires IEEE 754 doubles") + +requires_zlib = unittest.skipUnless(zlib, 'requires zlib') + +requires_bz2 = unittest.skipUnless(bz2, 'requires bz2') + +requires_lzma = unittest.skipUnless(lzma, 'requires lzma') + +is_jython = sys.platform.startswith('java') + +# Filename used for testing +if os.name == 'java': + # Jython disallows @ in module names + TESTFN = '$test' +else: + TESTFN = '@test' + +# Disambiguate TESTFN for parallel testing, while letting it remain a valid +# module name. +TESTFN = "{0}_{1}_tmp".format(TESTFN, os.getpid()) + +# # FS_NONASCII: non-ASCII character encodable by os.fsencode(), +# # or None if there is no such character. +# FS_NONASCII = None +# for character in ( +# # First try printable and common characters to have a readable filename. +# # For each character, the encoding list are just example of encodings able +# # to encode the character (the list is not exhaustive). +# +# # U+00E6 (Latin Small Letter Ae): cp1252, iso-8859-1 +# '\u00E6', +# # U+0130 (Latin Capital Letter I With Dot Above): cp1254, iso8859_3 +# '\u0130', +# # U+0141 (Latin Capital Letter L With Stroke): cp1250, cp1257 +# '\u0141', +# # U+03C6 (Greek Small Letter Phi): cp1253 +# '\u03C6', +# # U+041A (Cyrillic Capital Letter Ka): cp1251 +# '\u041A', +# # U+05D0 (Hebrew Letter Alef): Encodable to cp424 +# '\u05D0', +# # U+060C (Arabic Comma): cp864, cp1006, iso8859_6, mac_arabic +# '\u060C', +# # U+062A (Arabic Letter Teh): cp720 +# '\u062A', +# # U+0E01 (Thai Character Ko Kai): cp874 +# '\u0E01', +# +# # Then try more "special" characters. "special" because they may be +# # interpreted or displayed differently depending on the exact locale +# # encoding and the font. +# +# # U+00A0 (No-Break Space) +# '\u00A0', +# # U+20AC (Euro Sign) +# '\u20AC', +# ): +# try: +# os.fsdecode(os.fsencode(character)) +# except UnicodeError: +# pass +# else: +# FS_NONASCII = character +# break +# +# # TESTFN_UNICODE is a non-ascii filename +# TESTFN_UNICODE = TESTFN + "-\xe0\xf2\u0258\u0141\u011f" +# if sys.platform == 'darwin': +# # In Mac OS X's VFS API file names are, by definition, canonically +# # decomposed Unicode, encoded using UTF-8. See QA1173: +# # http://developer.apple.com/mac/library/qa/qa2001/qa1173.html +# import unicodedata +# TESTFN_UNICODE = unicodedata.normalize('NFD', TESTFN_UNICODE) +# TESTFN_ENCODING = sys.getfilesystemencoding() +# +# # TESTFN_UNENCODABLE is a filename (str type) that should *not* be able to be +# # encoded by the filesystem encoding (in strict mode). It can be None if we +# # cannot generate such filename. +# TESTFN_UNENCODABLE = None +# if os.name in ('nt', 'ce'): +# # skip win32s (0) or Windows 9x/ME (1) +# if sys.getwindowsversion().platform >= 2: +# # Different kinds of characters from various languages to minimize the +# # probability that the whole name is encodable to MBCS (issue #9819) +# TESTFN_UNENCODABLE = TESTFN + "-\u5171\u0141\u2661\u0363\uDC80" +# try: +# TESTFN_UNENCODABLE.encode(TESTFN_ENCODING) +# except UnicodeEncodeError: +# pass +# else: +# print('WARNING: The filename %r CAN be encoded by the filesystem encoding (%s). ' +# 'Unicode filename tests may not be effective' +# % (TESTFN_UNENCODABLE, TESTFN_ENCODING)) +# TESTFN_UNENCODABLE = None +# # Mac OS X denies unencodable filenames (invalid utf-8) +# elif sys.platform != 'darwin': +# try: +# # ascii and utf-8 cannot encode the byte 0xff +# b'\xff'.decode(TESTFN_ENCODING) +# except UnicodeDecodeError: +# # 0xff will be encoded using the surrogate character u+DCFF +# TESTFN_UNENCODABLE = TESTFN \ +# + b'-\xff'.decode(TESTFN_ENCODING, 'surrogateescape') +# else: +# # File system encoding (eg. ISO-8859-* encodings) can encode +# # the byte 0xff. Skip some unicode filename tests. +# pass +# +# # TESTFN_UNDECODABLE is a filename (bytes type) that should *not* be able to be +# # decoded from the filesystem encoding (in strict mode). It can be None if we +# # cannot generate such filename (ex: the latin1 encoding can decode any byte +# # sequence). On UNIX, TESTFN_UNDECODABLE can be decoded by os.fsdecode() thanks +# # to the surrogateescape error handler (PEP 383), but not from the filesystem +# # encoding in strict mode. +# TESTFN_UNDECODABLE = None +# for name in ( +# # b'\xff' is not decodable by os.fsdecode() with code page 932. Windows +# # accepts it to create a file or a directory, or don't accept to enter to +# # such directory (when the bytes name is used). So test b'\xe7' first: it is +# # not decodable from cp932. +# b'\xe7w\xf0', +# # undecodable from ASCII, UTF-8 +# b'\xff', +# # undecodable from iso8859-3, iso8859-6, iso8859-7, cp424, iso8859-8, cp856 +# # and cp857 +# b'\xae\xd5' +# # undecodable from UTF-8 (UNIX and Mac OS X) +# b'\xed\xb2\x80', b'\xed\xb4\x80', +# # undecodable from shift_jis, cp869, cp874, cp932, cp1250, cp1251, cp1252, +# # cp1253, cp1254, cp1255, cp1257, cp1258 +# b'\x81\x98', +# ): +# try: +# name.decode(TESTFN_ENCODING) +# except UnicodeDecodeError: +# TESTFN_UNDECODABLE = os.fsencode(TESTFN) + name +# break +# +# if FS_NONASCII: +# TESTFN_NONASCII = TESTFN + '-' + FS_NONASCII +# else: +# TESTFN_NONASCII = None + +# Save the initial cwd +SAVEDCWD = os.getcwd() + +@contextlib.contextmanager +def temp_cwd(name='tempcwd', quiet=False, path=None): + """ + Context manager that temporarily changes the CWD. + + An existing path may be provided as *path*, in which case this + function makes no changes to the file system. + + Otherwise, the new CWD is created in the current directory and it's + named *name*. If *quiet* is False (default) and it's not possible to + create or change the CWD, an error is raised. If it's True, only a + warning is raised and the original CWD is used. + """ + saved_dir = os.getcwd() + is_temporary = False + if path is None: + path = name + try: + os.mkdir(name) + is_temporary = True + except OSError: + if not quiet: + raise + warnings.warn('tests may fail, unable to create temp CWD ' + name, + RuntimeWarning, stacklevel=3) + try: + os.chdir(path) + except OSError: + if not quiet: + raise + warnings.warn('tests may fail, unable to change the CWD to ' + path, + RuntimeWarning, stacklevel=3) + try: + yield os.getcwd() + finally: + os.chdir(saved_dir) + if is_temporary: + rmtree(name) + + +if hasattr(os, "umask"): + @contextlib.contextmanager + def temp_umask(umask): + """Context manager that temporarily sets the process umask.""" + oldmask = os.umask(umask) + try: + yield + finally: + os.umask(oldmask) + + +def findfile(file, here=__file__, subdir=None): + """Try to find a file on sys.path and the working directory. If it is not + found the argument passed to the function is returned (this does not + necessarily signal failure; could still be the legitimate path).""" + if os.path.isabs(file): + return file + if subdir is not None: + file = os.path.join(subdir, file) + path = sys.path + path = [os.path.dirname(here)] + path + for dn in path: + fn = os.path.join(dn, file) + if os.path.exists(fn): return fn + return file + +def create_empty_file(filename): + """Create an empty file. If the file already exists, truncate it.""" + fd = os.open(filename, os.O_WRONLY | os.O_CREAT | os.O_TRUNC) + os.close(fd) + +def sortdict(dict): + "Like repr(dict), but in sorted order." + items = sorted(dict.items()) + reprpairs = ["%r: %r" % pair for pair in items] + withcommas = ", ".join(reprpairs) + return "{%s}" % withcommas + +def make_bad_fd(): + """ + Create an invalid file descriptor by opening and closing a file and return + its fd. + """ + file = open(TESTFN, "wb") + try: + return file.fileno() + finally: + file.close() + unlink(TESTFN) + +def check_syntax_error(testcase, statement): + testcase.assertRaises(SyntaxError, compile, statement, + '', 'exec') + +def open_urlresource(url, *args, **kw): + from future.backports.urllib import (request as urllib_request, + parse as urllib_parse) + + check = kw.pop('check', None) + + filename = urllib_parse.urlparse(url)[2].split('/')[-1] # '/': it's URL! + + fn = os.path.join(os.path.dirname(__file__), "data", filename) + + def check_valid_file(fn): + f = open(fn, *args, **kw) + if check is None: + return f + elif check(f): + f.seek(0) + return f + f.close() + + if os.path.exists(fn): + f = check_valid_file(fn) + if f is not None: + return f + unlink(fn) + + # Verify the requirement before downloading the file + requires('urlfetch') + + print('\tfetching %s ...' % url, file=get_original_stdout()) + f = urllib_request.urlopen(url, timeout=15) + try: + with open(fn, "wb") as out: + s = f.read() + while s: + out.write(s) + s = f.read() + finally: + f.close() + + f = check_valid_file(fn) + if f is not None: + return f + raise TestFailed('invalid resource %r' % fn) + + +class WarningsRecorder(object): + """Convenience wrapper for the warnings list returned on + entry to the warnings.catch_warnings() context manager. + """ + def __init__(self, warnings_list): + self._warnings = warnings_list + self._last = 0 + + def __getattr__(self, attr): + if len(self._warnings) > self._last: + return getattr(self._warnings[-1], attr) + elif attr in warnings.WarningMessage._WARNING_DETAILS: + return None + raise AttributeError("%r has no attribute %r" % (self, attr)) + + @property + def warnings(self): + return self._warnings[self._last:] + + def reset(self): + self._last = len(self._warnings) + + +def _filterwarnings(filters, quiet=False): + """Catch the warnings, then check if all the expected + warnings have been raised and re-raise unexpected warnings. + If 'quiet' is True, only re-raise the unexpected warnings. + """ + # Clear the warning registry of the calling module + # in order to re-raise the warnings. + frame = sys._getframe(2) + registry = frame.f_globals.get('__warningregistry__') + if registry: + if utils.PY3: + registry.clear() + else: + # Py2-compatible: + for i in range(len(registry)): + registry.pop() + with warnings.catch_warnings(record=True) as w: + # Set filter "always" to record all warnings. Because + # test_warnings swap the module, we need to look up in + # the sys.modules dictionary. + sys.modules['warnings'].simplefilter("always") + yield WarningsRecorder(w) + # Filter the recorded warnings + reraise = list(w) + missing = [] + for msg, cat in filters: + seen = False + for w in reraise[:]: + warning = w.message + # Filter out the matching messages + if (re.match(msg, str(warning), re.I) and + issubclass(warning.__class__, cat)): + seen = True + reraise.remove(w) + if not seen and not quiet: + # This filter caught nothing + missing.append((msg, cat.__name__)) + if reraise: + raise AssertionError("unhandled warning %s" % reraise[0]) + if missing: + raise AssertionError("filter (%r, %s) did not catch any warning" % + missing[0]) + + +@contextlib.contextmanager +def check_warnings(*filters, **kwargs): + """Context manager to silence warnings. + + Accept 2-tuples as positional arguments: + ("message regexp", WarningCategory) + + Optional argument: + - if 'quiet' is True, it does not fail if a filter catches nothing + (default True without argument, + default False if some filters are defined) + + Without argument, it defaults to: + check_warnings(("", Warning), quiet=True) + """ + quiet = kwargs.get('quiet') + if not filters: + filters = (("", Warning),) + # Preserve backward compatibility + if quiet is None: + quiet = True + return _filterwarnings(filters, quiet) + + +class CleanImport(object): + """Context manager to force import to return a new module reference. + + This is useful for testing module-level behaviours, such as + the emission of a DeprecationWarning on import. + + Use like this: + + with CleanImport("foo"): + importlib.import_module("foo") # new reference + """ + + def __init__(self, *module_names): + self.original_modules = sys.modules.copy() + for module_name in module_names: + if module_name in sys.modules: + module = sys.modules[module_name] + # It is possible that module_name is just an alias for + # another module (e.g. stub for modules renamed in 3.x). + # In that case, we also need delete the real module to clear + # the import cache. + if module.__name__ != module_name: + del sys.modules[module.__name__] + del sys.modules[module_name] + + def __enter__(self): + return self + + def __exit__(self, *ignore_exc): + sys.modules.update(self.original_modules) + +### Added for python-future: +if utils.PY3: + import collections.abc + mybase = collections.abc.MutableMapping +else: + import UserDict + mybase = UserDict.DictMixin +### + +class EnvironmentVarGuard(mybase): + + """Class to help protect the environment variable properly. Can be used as + a context manager.""" + + def __init__(self): + self._environ = os.environ + self._changed = {} + + def __getitem__(self, envvar): + return self._environ[envvar] + + def __setitem__(self, envvar, value): + # Remember the initial value on the first access + if envvar not in self._changed: + self._changed[envvar] = self._environ.get(envvar) + self._environ[envvar] = value + + def __delitem__(self, envvar): + # Remember the initial value on the first access + if envvar not in self._changed: + self._changed[envvar] = self._environ.get(envvar) + if envvar in self._environ: + del self._environ[envvar] + + def keys(self): + return self._environ.keys() + + def __iter__(self): + return iter(self._environ) + + def __len__(self): + return len(self._environ) + + def set(self, envvar, value): + self[envvar] = value + + def unset(self, envvar): + del self[envvar] + + def __enter__(self): + return self + + def __exit__(self, *ignore_exc): + for (k, v) in self._changed.items(): + if v is None: + if k in self._environ: + del self._environ[k] + else: + self._environ[k] = v + os.environ = self._environ + + +class DirsOnSysPath(object): + """Context manager to temporarily add directories to sys.path. + + This makes a copy of sys.path, appends any directories given + as positional arguments, then reverts sys.path to the copied + settings when the context ends. + + Note that *all* sys.path modifications in the body of the + context manager, including replacement of the object, + will be reverted at the end of the block. + """ + + def __init__(self, *paths): + self.original_value = sys.path[:] + self.original_object = sys.path + sys.path.extend(paths) + + def __enter__(self): + return self + + def __exit__(self, *ignore_exc): + sys.path = self.original_object + sys.path[:] = self.original_value + + +class TransientResource(object): + + """Raise ResourceDenied if an exception is raised while the context manager + is in effect that matches the specified exception and attributes.""" + + def __init__(self, exc, **kwargs): + self.exc = exc + self.attrs = kwargs + + def __enter__(self): + return self + + def __exit__(self, type_=None, value=None, traceback=None): + """If type_ is a subclass of self.exc and value has attributes matching + self.attrs, raise ResourceDenied. Otherwise let the exception + propagate (if any).""" + if type_ is not None and issubclass(self.exc, type_): + for attr, attr_value in self.attrs.items(): + if not hasattr(value, attr): + break + if getattr(value, attr) != attr_value: + break + else: + raise ResourceDenied("an optional resource is not available") + +# Context managers that raise ResourceDenied when various issues +# with the Internet connection manifest themselves as exceptions. +# XXX deprecate these and use transient_internet() instead +time_out = TransientResource(IOError, errno=errno.ETIMEDOUT) +socket_peer_reset = TransientResource(socket.error, errno=errno.ECONNRESET) +ioerror_peer_reset = TransientResource(IOError, errno=errno.ECONNRESET) + + +@contextlib.contextmanager +def transient_internet(resource_name, timeout=30.0, errnos=()): + """Return a context manager that raises ResourceDenied when various issues + with the Internet connection manifest themselves as exceptions.""" + default_errnos = [ + ('ECONNREFUSED', 111), + ('ECONNRESET', 104), + ('EHOSTUNREACH', 113), + ('ENETUNREACH', 101), + ('ETIMEDOUT', 110), + ] + default_gai_errnos = [ + ('EAI_AGAIN', -3), + ('EAI_FAIL', -4), + ('EAI_NONAME', -2), + ('EAI_NODATA', -5), + # Encountered when trying to resolve IPv6-only hostnames + ('WSANO_DATA', 11004), + ] + + denied = ResourceDenied("Resource %r is not available" % resource_name) + captured_errnos = errnos + gai_errnos = [] + if not captured_errnos: + captured_errnos = [getattr(errno, name, num) + for (name, num) in default_errnos] + gai_errnos = [getattr(socket, name, num) + for (name, num) in default_gai_errnos] + + def filter_error(err): + n = getattr(err, 'errno', None) + if (isinstance(err, socket.timeout) or + (isinstance(err, socket.gaierror) and n in gai_errnos) or + n in captured_errnos): + if not verbose: + sys.stderr.write(denied.args[0] + "\n") + # Was: raise denied from err + # For Python-Future: + exc = denied + exc.__cause__ = err + raise exc + + old_timeout = socket.getdefaulttimeout() + try: + if timeout is not None: + socket.setdefaulttimeout(timeout) + yield + except IOError as err: + # urllib can wrap original socket errors multiple times (!), we must + # unwrap to get at the original error. + while True: + a = err.args + if len(a) >= 1 and isinstance(a[0], IOError): + err = a[0] + # The error can also be wrapped as args[1]: + # except socket.error as msg: + # raise IOError('socket error', msg).with_traceback(sys.exc_info()[2]) + elif len(a) >= 2 and isinstance(a[1], IOError): + err = a[1] + else: + break + filter_error(err) + raise + # XXX should we catch generic exceptions and look for their + # __cause__ or __context__? + finally: + socket.setdefaulttimeout(old_timeout) + + +@contextlib.contextmanager +def captured_output(stream_name): + """Return a context manager used by captured_stdout/stdin/stderr + that temporarily replaces the sys stream *stream_name* with a StringIO.""" + import io + orig_stdout = getattr(sys, stream_name) + setattr(sys, stream_name, io.StringIO()) + try: + yield getattr(sys, stream_name) + finally: + setattr(sys, stream_name, orig_stdout) + +def captured_stdout(): + """Capture the output of sys.stdout: + + with captured_stdout() as s: + print("hello") + self.assertEqual(s.getvalue(), "hello") + """ + return captured_output("stdout") + +def captured_stderr(): + return captured_output("stderr") + +def captured_stdin(): + return captured_output("stdin") + + +def gc_collect(): + """Force as many objects as possible to be collected. + + In non-CPython implementations of Python, this is needed because timely + deallocation is not guaranteed by the garbage collector. (Even in CPython + this can be the case in case of reference cycles.) This means that __del__ + methods may be called later than expected and weakrefs may remain alive for + longer than expected. This function tries its best to force all garbage + objects to disappear. + """ + gc.collect() + if is_jython: + time.sleep(0.1) + gc.collect() + gc.collect() + +@contextlib.contextmanager +def disable_gc(): + have_gc = gc.isenabled() + gc.disable() + try: + yield + finally: + if have_gc: + gc.enable() + + +def python_is_optimized(): + """Find if Python was built with optimizations.""" + # We don't have sysconfig on Py2.6: + import sysconfig + cflags = sysconfig.get_config_var('PY_CFLAGS') or '' + final_opt = "" + for opt in cflags.split(): + if opt.startswith('-O'): + final_opt = opt + return final_opt != '' and final_opt != '-O0' + + +_header = 'nP' +_align = '0n' +if hasattr(sys, "gettotalrefcount"): + _header = '2P' + _header + _align = '0P' +_vheader = _header + 'n' + +def calcobjsize(fmt): + return struct.calcsize(_header + fmt + _align) + +def calcvobjsize(fmt): + return struct.calcsize(_vheader + fmt + _align) + + +_TPFLAGS_HAVE_GC = 1<<14 +_TPFLAGS_HEAPTYPE = 1<<9 + +def check_sizeof(test, o, size): + result = sys.getsizeof(o) + # add GC header size + if ((type(o) == type) and (o.__flags__ & _TPFLAGS_HEAPTYPE) or\ + ((type(o) != type) and (type(o).__flags__ & _TPFLAGS_HAVE_GC))): + size += _testcapi.SIZEOF_PYGC_HEAD + msg = 'wrong size for %s: got %d, expected %d' \ + % (type(o), result, size) + test.assertEqual(result, size, msg) + +#======================================================================= +# Decorator for running a function in a different locale, correctly resetting +# it afterwards. + +def run_with_locale(catstr, *locales): + def decorator(func): + def inner(*args, **kwds): + try: + import locale + category = getattr(locale, catstr) + orig_locale = locale.setlocale(category) + except AttributeError: + # if the test author gives us an invalid category string + raise + except: + # cannot retrieve original locale, so do nothing + locale = orig_locale = None + else: + for loc in locales: + try: + locale.setlocale(category, loc) + break + except: + pass + + # now run the function, resetting the locale on exceptions + try: + return func(*args, **kwds) + finally: + if locale and orig_locale: + locale.setlocale(category, orig_locale) + inner.__name__ = func.__name__ + inner.__doc__ = func.__doc__ + return inner + return decorator + +#======================================================================= +# Decorator for running a function in a specific timezone, correctly +# resetting it afterwards. + +def run_with_tz(tz): + def decorator(func): + def inner(*args, **kwds): + try: + tzset = time.tzset + except AttributeError: + raise unittest.SkipTest("tzset required") + if 'TZ' in os.environ: + orig_tz = os.environ['TZ'] + else: + orig_tz = None + os.environ['TZ'] = tz + tzset() + + # now run the function, resetting the tz on exceptions + try: + return func(*args, **kwds) + finally: + if orig_tz is None: + del os.environ['TZ'] + else: + os.environ['TZ'] = orig_tz + time.tzset() + + inner.__name__ = func.__name__ + inner.__doc__ = func.__doc__ + return inner + return decorator + +#======================================================================= +# Big-memory-test support. Separate from 'resources' because memory use +# should be configurable. + +# Some handy shorthands. Note that these are used for byte-limits as well +# as size-limits, in the various bigmem tests +_1M = 1024*1024 +_1G = 1024 * _1M +_2G = 2 * _1G +_4G = 4 * _1G + +MAX_Py_ssize_t = sys.maxsize + +def set_memlimit(limit): + global max_memuse + global real_max_memuse + sizes = { + 'k': 1024, + 'm': _1M, + 'g': _1G, + 't': 1024*_1G, + } + m = re.match(r'(\d+(\.\d+)?) (K|M|G|T)b?$', limit, + re.IGNORECASE | re.VERBOSE) + if m is None: + raise ValueError('Invalid memory limit %r' % (limit,)) + memlimit = int(float(m.group(1)) * sizes[m.group(3).lower()]) + real_max_memuse = memlimit + if memlimit > MAX_Py_ssize_t: + memlimit = MAX_Py_ssize_t + if memlimit < _2G - 1: + raise ValueError('Memory limit %r too low to be useful' % (limit,)) + max_memuse = memlimit + +class _MemoryWatchdog(object): + """An object which periodically watches the process' memory consumption + and prints it out. + """ + + def __init__(self): + self.procfile = '/proc/{pid}/statm'.format(pid=os.getpid()) + self.started = False + + def start(self): + try: + f = open(self.procfile, 'r') + except OSError as e: + warnings.warn('/proc not available for stats: {0}'.format(e), + RuntimeWarning) + sys.stderr.flush() + return + + watchdog_script = findfile("memory_watchdog.py") + self.mem_watchdog = subprocess.Popen([sys.executable, watchdog_script], + stdin=f, stderr=subprocess.DEVNULL) + f.close() + self.started = True + + def stop(self): + if self.started: + self.mem_watchdog.terminate() + self.mem_watchdog.wait() + + +def bigmemtest(size, memuse, dry_run=True): + """Decorator for bigmem tests. + + 'minsize' is the minimum useful size for the test (in arbitrary, + test-interpreted units.) 'memuse' is the number of 'bytes per size' for + the test, or a good estimate of it. + + if 'dry_run' is False, it means the test doesn't support dummy runs + when -M is not specified. + """ + def decorator(f): + def wrapper(self): + size = wrapper.size + memuse = wrapper.memuse + if not real_max_memuse: + maxsize = 5147 + else: + maxsize = size + + if ((real_max_memuse or not dry_run) + and real_max_memuse < maxsize * memuse): + raise unittest.SkipTest( + "not enough memory: %.1fG minimum needed" + % (size * memuse / (1024 ** 3))) + + if real_max_memuse and verbose: + print() + print(" ... expected peak memory use: {peak:.1f}G" + .format(peak=size * memuse / (1024 ** 3))) + watchdog = _MemoryWatchdog() + watchdog.start() + else: + watchdog = None + + try: + return f(self, maxsize) + finally: + if watchdog: + watchdog.stop() + + wrapper.size = size + wrapper.memuse = memuse + return wrapper + return decorator + +def bigaddrspacetest(f): + """Decorator for tests that fill the address space.""" + def wrapper(self): + if max_memuse < MAX_Py_ssize_t: + if MAX_Py_ssize_t >= 2**63 - 1 and max_memuse >= 2**31: + raise unittest.SkipTest( + "not enough memory: try a 32-bit build instead") + else: + raise unittest.SkipTest( + "not enough memory: %.1fG minimum needed" + % (MAX_Py_ssize_t / (1024 ** 3))) + else: + return f(self) + return wrapper + +#======================================================================= +# unittest integration. + +class BasicTestRunner(object): + def run(self, test): + result = unittest.TestResult() + test(result) + return result + +def _id(obj): + return obj + +def requires_resource(resource): + if resource == 'gui' and not _is_gui_available(): + return unittest.skip("resource 'gui' is not available") + if is_resource_enabled(resource): + return _id + else: + return unittest.skip("resource {0!r} is not enabled".format(resource)) + +def cpython_only(test): + """ + Decorator for tests only applicable on CPython. + """ + return impl_detail(cpython=True)(test) + +def impl_detail(msg=None, **guards): + if check_impl_detail(**guards): + return _id + if msg is None: + guardnames, default = _parse_guards(guards) + if default: + msg = "implementation detail not available on {0}" + else: + msg = "implementation detail specific to {0}" + guardnames = sorted(guardnames.keys()) + msg = msg.format(' or '.join(guardnames)) + return unittest.skip(msg) + +def _parse_guards(guards): + # Returns a tuple ({platform_name: run_me}, default_value) + if not guards: + return ({'cpython': True}, False) + is_true = list(guards.values())[0] + assert list(guards.values()) == [is_true] * len(guards) # all True or all False + return (guards, not is_true) + +# Use the following check to guard CPython's implementation-specific tests -- +# or to run them only on the implementation(s) guarded by the arguments. +def check_impl_detail(**guards): + """This function returns True or False depending on the host platform. + Examples: + if check_impl_detail(): # only on CPython (default) + if check_impl_detail(jython=True): # only on Jython + if check_impl_detail(cpython=False): # everywhere except on CPython + """ + guards, default = _parse_guards(guards) + return guards.get(platform.python_implementation().lower(), default) + + +def no_tracing(func): + """Decorator to temporarily turn off tracing for the duration of a test.""" + if not hasattr(sys, 'gettrace'): + return func + else: + @functools.wraps(func) + def wrapper(*args, **kwargs): + original_trace = sys.gettrace() + try: + sys.settrace(None) + return func(*args, **kwargs) + finally: + sys.settrace(original_trace) + return wrapper + + +def refcount_test(test): + """Decorator for tests which involve reference counting. + + To start, the decorator does not run the test if is not run by CPython. + After that, any trace function is unset during the test to prevent + unexpected refcounts caused by the trace function. + + """ + return no_tracing(cpython_only(test)) + + +def _filter_suite(suite, pred): + """Recursively filter test cases in a suite based on a predicate.""" + newtests = [] + for test in suite._tests: + if isinstance(test, unittest.TestSuite): + _filter_suite(test, pred) + newtests.append(test) + else: + if pred(test): + newtests.append(test) + suite._tests = newtests + +def _run_suite(suite): + """Run tests from a unittest.TestSuite-derived class.""" + if verbose: + runner = unittest.TextTestRunner(sys.stdout, verbosity=2, + failfast=failfast) + else: + runner = BasicTestRunner() + + result = runner.run(suite) + if not result.wasSuccessful(): + if len(result.errors) == 1 and not result.failures: + err = result.errors[0][1] + elif len(result.failures) == 1 and not result.errors: + err = result.failures[0][1] + else: + err = "multiple errors occurred" + if not verbose: err += "; run in verbose mode for details" + raise TestFailed(err) + + +def run_unittest(*classes): + """Run tests from unittest.TestCase-derived classes.""" + valid_types = (unittest.TestSuite, unittest.TestCase) + suite = unittest.TestSuite() + for cls in classes: + if isinstance(cls, str): + if cls in sys.modules: + suite.addTest(unittest.findTestCases(sys.modules[cls])) + else: + raise ValueError("str arguments must be keys in sys.modules") + elif isinstance(cls, valid_types): + suite.addTest(cls) + else: + suite.addTest(unittest.makeSuite(cls)) + def case_pred(test): + if match_tests is None: + return True + for name in test.id().split("."): + if fnmatch.fnmatchcase(name, match_tests): + return True + return False + _filter_suite(suite, case_pred) + _run_suite(suite) + +# We don't have sysconfig on Py2.6: +# #======================================================================= +# # Check for the presence of docstrings. +# +# HAVE_DOCSTRINGS = (check_impl_detail(cpython=False) or +# sys.platform == 'win32' or +# sysconfig.get_config_var('WITH_DOC_STRINGS')) +# +# requires_docstrings = unittest.skipUnless(HAVE_DOCSTRINGS, +# "test requires docstrings") +# +# +# #======================================================================= +# doctest driver. + +def run_doctest(module, verbosity=None, optionflags=0): + """Run doctest on the given module. Return (#failures, #tests). + + If optional argument verbosity is not specified (or is None), pass + support's belief about verbosity on to doctest. Else doctest's + usual behavior is used (it searches sys.argv for -v). + """ + + import doctest + + if verbosity is None: + verbosity = verbose + else: + verbosity = None + + f, t = doctest.testmod(module, verbose=verbosity, optionflags=optionflags) + if f: + raise TestFailed("%d of %d doctests failed" % (f, t)) + if verbose: + print('doctest (%s) ... %d tests with zero failures' % + (module.__name__, t)) + return f, t + + +#======================================================================= +# Support for saving and restoring the imported modules. + +def modules_setup(): + return sys.modules.copy(), + +def modules_cleanup(oldmodules): + # Encoders/decoders are registered permanently within the internal + # codec cache. If we destroy the corresponding modules their + # globals will be set to None which will trip up the cached functions. + encodings = [(k, v) for k, v in sys.modules.items() + if k.startswith('encodings.')] + # Was: + # sys.modules.clear() + # Py2-compatible: + for i in range(len(sys.modules)): + sys.modules.pop() + + sys.modules.update(encodings) + # XXX: This kind of problem can affect more than just encodings. In particular + # extension modules (such as _ssl) don't cope with reloading properly. + # Really, test modules should be cleaning out the test specific modules they + # know they added (ala test_runpy) rather than relying on this function (as + # test_importhooks and test_pkg do currently). + # Implicitly imported *real* modules should be left alone (see issue 10556). + sys.modules.update(oldmodules) + +#======================================================================= +# Backported versions of threading_setup() and threading_cleanup() which don't refer +# to threading._dangling (not available on Py2.7). + +# Threading support to prevent reporting refleaks when running regrtest.py -R + +# NOTE: we use thread._count() rather than threading.enumerate() (or the +# moral equivalent thereof) because a threading.Thread object is still alive +# until its __bootstrap() method has returned, even after it has been +# unregistered from the threading module. +# thread._count(), on the other hand, only gets decremented *after* the +# __bootstrap() method has returned, which gives us reliable reference counts +# at the end of a test run. + +def threading_setup(): + if _thread: + return _thread._count(), + else: + return 1, + +def threading_cleanup(nb_threads): + if not _thread: + return + + _MAX_COUNT = 10 + for count in range(_MAX_COUNT): + n = _thread._count() + if n == nb_threads: + break + time.sleep(0.1) + # XXX print a warning in case of failure? + +def reap_threads(func): + """Use this function when threads are being used. This will + ensure that the threads are cleaned up even when the test fails. + If threading is unavailable this function does nothing. + """ + if not _thread: + return func + + @functools.wraps(func) + def decorator(*args): + key = threading_setup() + try: + return func(*args) + finally: + threading_cleanup(*key) + return decorator + +def reap_children(): + """Use this function at the end of test_main() whenever sub-processes + are started. This will help ensure that no extra children (zombies) + stick around to hog resources and create problems when looking + for refleaks. + """ + + # Reap all our dead child processes so we don't leave zombies around. + # These hog resources and might be causing some of the buildbots to die. + if hasattr(os, 'waitpid'): + any_process = -1 + while True: + try: + # This will raise an exception on Windows. That's ok. + pid, status = os.waitpid(any_process, os.WNOHANG) + if pid == 0: + break + except: + break + +@contextlib.contextmanager +def swap_attr(obj, attr, new_val): + """Temporary swap out an attribute with a new object. + + Usage: + with swap_attr(obj, "attr", 5): + ... + + This will set obj.attr to 5 for the duration of the with: block, + restoring the old value at the end of the block. If `attr` doesn't + exist on `obj`, it will be created and then deleted at the end of the + block. + """ + if hasattr(obj, attr): + real_val = getattr(obj, attr) + setattr(obj, attr, new_val) + try: + yield + finally: + setattr(obj, attr, real_val) + else: + setattr(obj, attr, new_val) + try: + yield + finally: + delattr(obj, attr) + +@contextlib.contextmanager +def swap_item(obj, item, new_val): + """Temporary swap out an item with a new object. + + Usage: + with swap_item(obj, "item", 5): + ... + + This will set obj["item"] to 5 for the duration of the with: block, + restoring the old value at the end of the block. If `item` doesn't + exist on `obj`, it will be created and then deleted at the end of the + block. + """ + if item in obj: + real_val = obj[item] + obj[item] = new_val + try: + yield + finally: + obj[item] = real_val + else: + obj[item] = new_val + try: + yield + finally: + del obj[item] + +def strip_python_stderr(stderr): + """Strip the stderr of a Python process from potential debug output + emitted by the interpreter. + + This will typically be run on the result of the communicate() method + of a subprocess.Popen object. + """ + stderr = re.sub(br"\[\d+ refs\]\r?\n?", b"", stderr).strip() + return stderr + +def args_from_interpreter_flags(): + """Return a list of command-line arguments reproducing the current + settings in sys.flags and sys.warnoptions.""" + return subprocess._args_from_interpreter_flags() + +#============================================================ +# Support for assertions about logging. +#============================================================ + +class TestHandler(logging.handlers.BufferingHandler): + def __init__(self, matcher): + # BufferingHandler takes a "capacity" argument + # so as to know when to flush. As we're overriding + # shouldFlush anyway, we can set a capacity of zero. + # You can call flush() manually to clear out the + # buffer. + logging.handlers.BufferingHandler.__init__(self, 0) + self.matcher = matcher + + def shouldFlush(self): + return False + + def emit(self, record): + self.format(record) + self.buffer.append(record.__dict__) + + def matches(self, **kwargs): + """ + Look for a saved dict whose keys/values match the supplied arguments. + """ + result = False + for d in self.buffer: + if self.matcher.matches(d, **kwargs): + result = True + break + return result + +class Matcher(object): + + _partial_matches = ('msg', 'message') + + def matches(self, d, **kwargs): + """ + Try to match a single dict with the supplied arguments. + + Keys whose values are strings and which are in self._partial_matches + will be checked for partial (i.e. substring) matches. You can extend + this scheme to (for example) do regular expression matching, etc. + """ + result = True + for k in kwargs: + v = kwargs[k] + dv = d.get(k) + if not self.match_value(k, dv, v): + result = False + break + return result + + def match_value(self, k, dv, v): + """ + Try to match a single stored value (dv) with a supplied value (v). + """ + if type(v) != type(dv): + result = False + elif type(dv) is not str or k not in self._partial_matches: + result = (v == dv) + else: + result = dv.find(v) >= 0 + return result + + +_can_symlink = None +def can_symlink(): + global _can_symlink + if _can_symlink is not None: + return _can_symlink + symlink_path = TESTFN + "can_symlink" + try: + os.symlink(TESTFN, symlink_path) + can = True + except (OSError, NotImplementedError, AttributeError): + can = False + else: + os.remove(symlink_path) + _can_symlink = can + return can + +def skip_unless_symlink(test): + """Skip decorator for tests that require functional symlink""" + ok = can_symlink() + msg = "Requires functional symlink implementation" + return test if ok else unittest.skip(msg)(test) + +_can_xattr = None +def can_xattr(): + global _can_xattr + if _can_xattr is not None: + return _can_xattr + if not hasattr(os, "setxattr"): + can = False + else: + tmp_fp, tmp_name = tempfile.mkstemp() + try: + with open(TESTFN, "wb") as fp: + try: + # TESTFN & tempfile may use different file systems with + # different capabilities + os.setxattr(tmp_fp, b"user.test", b"") + os.setxattr(fp.fileno(), b"user.test", b"") + # Kernels < 2.6.39 don't respect setxattr flags. + kernel_version = platform.release() + m = re.match("2.6.(\d{1,2})", kernel_version) + can = m is None or int(m.group(1)) >= 39 + except OSError: + can = False + finally: + unlink(TESTFN) + unlink(tmp_name) + _can_xattr = can + return can + +def skip_unless_xattr(test): + """Skip decorator for tests that require functional extended attributes""" + ok = can_xattr() + msg = "no non-broken extended attribute support" + return test if ok else unittest.skip(msg)(test) + + +if sys.platform.startswith('win'): + @contextlib.contextmanager + def suppress_crash_popup(): + """Disable Windows Error Reporting dialogs using SetErrorMode.""" + # see http://msdn.microsoft.com/en-us/library/windows/desktop/ms680621%28v=vs.85%29.aspx + # GetErrorMode is not available on Windows XP and Windows Server 2003, + # but SetErrorMode returns the previous value, so we can use that + import ctypes + k32 = ctypes.windll.kernel32 + SEM_NOGPFAULTERRORBOX = 0x02 + old_error_mode = k32.SetErrorMode(SEM_NOGPFAULTERRORBOX) + k32.SetErrorMode(old_error_mode | SEM_NOGPFAULTERRORBOX) + try: + yield + finally: + k32.SetErrorMode(old_error_mode) +else: + # this is a no-op for other platforms + @contextlib.contextmanager + def suppress_crash_popup(): + yield + + +def patch(test_instance, object_to_patch, attr_name, new_value): + """Override 'object_to_patch'.'attr_name' with 'new_value'. + + Also, add a cleanup procedure to 'test_instance' to restore + 'object_to_patch' value for 'attr_name'. + The 'attr_name' should be a valid attribute for 'object_to_patch'. + + """ + # check that 'attr_name' is a real attribute for 'object_to_patch' + # will raise AttributeError if it does not exist + getattr(object_to_patch, attr_name) + + # keep a copy of the old value + attr_is_local = False + try: + old_value = object_to_patch.__dict__[attr_name] + except (AttributeError, KeyError): + old_value = getattr(object_to_patch, attr_name, None) + else: + attr_is_local = True + + # restore the value when the test is done + def cleanup(): + if attr_is_local: + setattr(object_to_patch, attr_name, old_value) + else: + delattr(object_to_patch, attr_name) + + test_instance.addCleanup(cleanup) + + # actually override the attribute + setattr(object_to_patch, attr_name, new_value) diff --git a/venv/lib/python3.10/site-packages/future/backports/total_ordering.py b/venv/lib/python3.10/site-packages/future/backports/total_ordering.py new file mode 100644 index 0000000..760f06d --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/total_ordering.py @@ -0,0 +1,38 @@ +""" +For Python < 2.7.2. total_ordering in versions prior to 2.7.2 is buggy. +See http://bugs.python.org/issue10042 for details. For these versions use +code borrowed from Python 2.7.3. + +From django.utils. +""" + +import sys +if sys.version_info >= (2, 7, 2): + from functools import total_ordering +else: + def total_ordering(cls): + """Class decorator that fills in missing ordering methods""" + convert = { + '__lt__': [('__gt__', lambda self, other: not (self < other or self == other)), + ('__le__', lambda self, other: self < other or self == other), + ('__ge__', lambda self, other: not self < other)], + '__le__': [('__ge__', lambda self, other: not self <= other or self == other), + ('__lt__', lambda self, other: self <= other and not self == other), + ('__gt__', lambda self, other: not self <= other)], + '__gt__': [('__lt__', lambda self, other: not (self > other or self == other)), + ('__ge__', lambda self, other: self > other or self == other), + ('__le__', lambda self, other: not self > other)], + '__ge__': [('__le__', lambda self, other: (not self >= other) or self == other), + ('__gt__', lambda self, other: self >= other and not self == other), + ('__lt__', lambda self, other: not self >= other)] + } + roots = set(dir(cls)) & set(convert) + if not roots: + raise ValueError('must define at least one ordering operation: < > <= >=') + root = max(roots) # prefer __lt__ to __le__ to __gt__ to __ge__ + for opname, opfunc in convert[root]: + if opname not in roots: + opfunc.__name__ = opname + opfunc.__doc__ = getattr(int, opname).__doc__ + setattr(cls, opname, opfunc) + return cls diff --git a/venv/lib/python3.10/site-packages/future/backports/urllib/__init__.py b/venv/lib/python3.10/site-packages/future/backports/urllib/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/future/backports/urllib/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/urllib/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..483d645f92cb83ebe0b3fb87d12117b8692ae52e GIT binary patch literal 195 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/urllib/__pycache__/request.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/urllib/__pycache__/request.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5176d6512c5b1553c6e152c13d8b21117e1edfff GIT binary patch literal 68513 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 zⅅyg2@B0|2(P47t|h_zV@;97L?_ zv{tS=0X3VZQl)xQ$!$y=B+t%}UmZdRX0ZD^g3&h3dhMvJ0J*|+?7r@urf`aNdKvM<8{uZLvVQ-jpL+IAv&;<}PypF;Z zPA-P#hH>eV<^5I>^UVxtwgB$8BJ3`Nh#;OI^sh1MVK@2)8Zh2iYwO%tc%JdU^~T{+ z|CbtS?%1%712DJFZSz1rcK~qa#;&IfE!_@i-8#2JG5mJ&1K6$0Gr;!pPXPs9&>^UB zVvLRmS?S^zIMI57^u za@#Ju*l!vq6uFFxm5w>wemk5IUXe&FLy#5)sRg$Mi!q$FQsm;saTxcD*$IoZ8oDuX zRW;*Pa#<>`%rAn2i`i5znniBNGErVrcF38&(BG7q8JJ_K0|$23ak*pG9u8}BW_q)X zTQm2x`Cb6`F{`t;i8HHM2bXW?@joeD+hq3~IG&y6YRA2r-B$A+^?93r=E^t%d(4B$ zQ*JER(Y=KovR9c+5Zp*B{gH`Vx(+!o;9ms37~j{SkUyozs=l&aVNQ3K6wE7#EBI$h z@>K=j)8h_;VCd+-eZHL-wcQ~Y-8efO)~bCX z7=&_mhm2hHg7D-Mb4KBHXaE8C^1RUnZvZU)U$HVfHgNv0sH)BaONAMg5oAI)t!t!q zCxQ2E8Kb62iINr#!xgXk@&DE4afJ_3L!uxY;1|P(ZNfRuB@UH+q+fbxYL_U$io)0q zoe^ENJ-8G~g@7h4;k?vpM==LZu;oa7D)HW}8F&(A0Bqce_qws&jg{-6Ns?4j*spCN zqP)OTBZDTRe__y%iUu_(60u_^!P|dcU8uqJwe!3kS}WKdZaa5hFAcN-!6&n!fM6ui z&0lE0?-7%Vw?KMVzw_K6$3}gTZHk(*IVBMFfsN~q%?5YB;N7=5>K%}*%_O}#P}BC) zBPc~hasZ`XTuRekF!)FZVO>g8$>uLOEe5mAbxQ|^a~sM$!#Hyeb;xF(0mR}oMZ}ue z*i}4LvGVDuD~f0fY~YEbYwp+Exd@DT-RDm~^UO0k3fr#~br(XY!~1axg<}=+Cs&jN7mql1F(-#nmpIm*jKi!3YjQm}jh zZ?Q97B~nFYS8O%9g-TkiPx@gZzI51lwAb+N?3)+0HkfUU-52g5b%ze zPtCm5M*GqM|86=AZU?ww=|0C}mVll}!gP=ofi&3%(QCnZTx)RY z1(>-o3qnnHG}r6%E!d`Fws!$fLZK}{6gLM?lSY9>Ag>E zX>RGAgp!q#vF1)Ts^WC{t*+lc*|NmM$7vMUN>W=F^b#-+mUrDy`E6KGT zMV8~pc3w{8;71f2JHd*v?2r@(Mb?!ZC3<kinp(%QsIV{I}ca#s*(7j||*}R5YYO)1-u+5`LAN#16lxrU!!KccHZI?y5qB@Qu4TjtFe$r{ex)i%GpR^QtHR&~ zq|{_8*={X=ext)2XNaM2H@?_Uw|u+V^wa^w2NtYM;1RKd|Qaogo+ZcqYh$qe^B|0s~2T) z?0{%)wvye{mhUfmLTex}xQGdoSZV*plTS<5&bu&dN5b~E6)(~RWL&(>lrcBJmP);_Ji<`o-nd_?- zIt)g>W_IJn>lW6~wrc=}w{yixjDX~`H(WrmIe!Nnx)Tn)iXby_G#H)YV;5M`nd&)l zzVqih6%hkSJ2^8?wP6NjGS&1MO@O`SesH?ca+9+t^6O^H+C}M#lci^e?mmsZw=tlW z;?RXL_mJ~Tc9p|&lK1vif#((8Sp}ZgaL;nCQcL1a^=w)?;Z|9d@t1<$vPp>y8a3?3 zklqidHkxU@R@Ct3!#Zbb&N*^H^U(tj(@gyb`VSxUFbES>1+H{A>Peg7kLqwhiE+9% zU8t}-y!K{U=Ccf_N1Pj5t8%oG9{OeR|0+7#YI#iM8ai4`&;5=SuKUdI`H~I?b<0KN zo>6i_hZX*3c=IJ}FUS~kqGIn8@0;N%NgEz8E+r^?j)X^2gzAbErBaM`!t+*hz14!% zdc|t|87W5zUVBxzP+y9ki9ge6C21|Zn!hYZ?Xl~<#jQq38dauF))m-5onx})oqX`M zEV8UXZQ!*CI4312%raEfCFgGl6?GPRQvwS%fkf%Xq8Ma?;BMe=#JUhSQtmzk13`GR z5(r=v_t_DEU4KS?-$anI5aZ_)u!-jLDLlkcg5vI&lS^N*g*3}wMrzMR>cX|hn8ZVJ7Xvz+o(w#|D07)_+pXKQ|-9&aa2R7<6_Cm{MX}&gxlCf#QR+NnGYQz{;mWXel^rt`mN!(r`t}fX9yjLMSDzfb<-lP7kt0`Pd%V?S4FwGt!zgF&1F>ZS z%et=N?YIgSx=t6m9w~Gk?&~_**ELvp&CwI(eE$*`LudLdQ^GY$`!{vVu5x>HQz@$u;(Gl;%&>dcV`O?MXUscDSB*7TRC1&037$?+g#;rh6_YBULAV@rpz zUp1()zpioI$MYJ;@r)mBxa~0>vy51iVN7eqD8^MJ6GPUCw{tD}&0V|7P`L&px||pw zO3j9)KwCi!y}9U1YQD1~hehR{QqCBqAUT8wBr)uPEYnU#Uia%tY)$%G%1K}0w3v6t zRe-HiFX`O-l$eF<^LW3scRM*EwrDKbsF+BZ^#eX8 z=HBe7Y%-Hirr>3%Op@rnh1NcMdV~k-ezdUN&tK_Tl6rtBL2?>u9N4!AkOBacaCV`` z#}@PXh~e|GrPxwzF@I6*m<(Q=4{+Eqs%^pURf^)vLPB5hcN6B~fIV%G=LJ1t6VLgL#!r zVJp+r>)rv00=eEwq3&WmxmvA7Oq z40+PHnpU;WH3iQ~1a`YKLzAS-T?b8}DS$1lP=VNb)AzI+cHF$oA_I}7SVExUFy%<&6k(0+OuN()EEUWTm%fNsRIb8cAdeVvN@Ff# zF9u#)pbGRjV>D_ zI3+0#y1Po<(qv0RfWzeUIpU_^yk{(Zof__v5-no=&OcJ!8i)VMI$)n_aa75Y4){2I z+ocXDP@tqu{mH7bIsrG&U}9&C+pPAZY^q#X(h1j)LtQ^GK~_eNg=mq*MAYxq*+@<@ z!N$tlA`0In3Ll;*$mAOLa>=^>sXW zfKPpqPi|Npe`Si=wc?k!zvOvpy(g;mZOhe~kOfqEoUSBfPf=L`Sm7L`_D_8Nh6{~1-1|}Xst5~65+vuD#1-9=9Gv&m~yP^-;UB_s)7f#Qy z&IO?3jkb*ZX}@YULxQ@)%Mr_c&LCHhh`cl&6~CbU$F%$ILnGW?`DxK({Ann^_#BB1 z<(O-YVjxDuw3tR%_rp7b?o+d&0IL|UN;fWhZ~sd>643OO1`ch$ zB8j!Z2Z8K0imP=m0dc`W)(0i<~-erBPB`-;N!I8@UqOZ;RwBep{#g zz(Y(m_GVg&nd5rC*}K9RnD09r2CEc=Xs!y3@DOgTpe~27Y9no2bdi1^nys3l_b<5m8R@ZFbFo(M&H?n`RE4ayn0Wos;!%aPj;b!U~9jQZ*u-}V!JR)ixMfsik? z1fzY2j9_kDw(VbuRB9XDeT8Z(c-x8}`cL|1T z?ftgGsiO=Dok{*o_P96p?@Prg zkb0`rg^g!B0)Bc-NClpNDcKRTIk5rM2&|uNQv6f$fp+tqoT+0eNb~QdIv!+YJ!{_4 zrd_V~XMHmnaeR_CF;t1nUglX zCc@pYXraVKLXX-wiG_A!IU2D~c<8PZp9c-6-`T_kQo=g1kR>)*y1XTH#_;$aK#_&v z!fQ?*DU43NY1~auDXirt>$8FKbqBSClpmLEmuE_nE*w*5v7Po6%3J*9Xq%+yG9^}T zatlm?JxLJFqqDlvX{{c#vDMw_>0wv2C9j*CAtc8PTEN-JH^O+g^}zF@%oQ8|8(jT@ z8oyI*$5K@B>sX$ma~CF!b(EDes^lk`tBceHBj=~I{atljEktkH3Q9P$(GqtQDyWc+mu092Qn@#tz33vHknPv z8?h!_jjvOhU6*a=w>8^JxGz07!e8A_f+LNt7u77Y&=FEEd)8?4sm0hZXBZQS@?FRM z77s!r9XVFOCyw}-3TbNiq{-nkawZOg3>Lc0Xsg3+VEVF5_auU>57cPZ>8jbfIzXzQ zrw6{q=e=k|p3o?e3!1+mtN# z_0MwQ+v;3t)iNOCF_9-)UtUcs#9vOvovzol1cf(n&a;B`)lSrAPch=0N$!eQI&xRd z7lkh8qh?#fiG94r2~)OBb3^8{^aks}sv*uSYY*~TG?CDrCv^ zF{iV2b?0IwZif4oic6Hc!Wv2|2-BS>B_?6vDD;M#L)HC5a*Ne!YC3c;v0#PXa9FKQ zg|338%8ma^t=xBbo%{YuHQG<<^&6P8ZB|pfDS_G|9=B>Nw*#DVP09@({HZ& zuuF4$jSP4|#|5n#kxExIrt@ZIt|936K)zlaWlBefN^Fe~4;|_8f*Kv>QuZhz281)KL6VqpiI#ivh%+#gkCBE>v zVx+paG8>1mAu%B?ZLS}1ce|QP3qTDoS(des0K&Pdrm55^b&`X`Qi*=nOj@#r%|x?Y zBw!5<0p~}aY6I_pY83PeJCDf&!+Y4UeGu&ABIaHhR52H?CLmwpiRAoko~2Ss%1WuZ zi=D(`czQ^Bj}cWhRhlZZ-}oX#dSkFkSkXudkRq-xhNpv19ye&Nr2N!mq(=Cj1)qN8@W6 z=h>9qPrdv1{2>C9`Vf>*!7iW^uFd>rEwZ+ z#c&N?rwEzxtTtVS=-9{^He)6ULN#jJCF)M3TiYnMCFIEQnz)1M6OSA_SUBLV$tgQ1 zr;Z;yalBw*D1yWtckFaWpqX;&wMPa|6oRDw8A=XcXQQ-cV4$|2C2rCo{k~~>yf`vh zbYk>Q6c^;CqFXp0WNqpgl1|s}Q6?b0cXCMJQ|bOok0_pnHqRuU#Sc|Z5BJDU^(1?A z5`{IZ6jvOu&hB4zT}twvoR_Z8sJu%`tcnS}G&NqrYT?FouOT(ALd5Qh4o{L;B*p2| zPb?iUf|qR2fO&}G1g_9vkq{^+1cDmBtX;(7Qk8RLf5c-=CU8~2^+5h<@^Q;0G>-vm zdntZ(V@9fV36bsSs|4_<<57+=t52&l1ya)ruXgWLz28p49BM7|d-~8NZ1KOT_5)Pg z2Y2hN8QC@6wc4q*IGWXckn5MfdwTQn+LBzsk&|qrQvQfmKIUmB}q$+Q3~2jew}a z`mbo%9hBfJo^)y_Pe1kvF-2Wi2%i)Lp;zfpWvTYKHIzAxTBc)>R+zi0UeyEmWn5RrZ^@+E)9C zwd;v%ck?xr!6GHt2=*{5Yb^~lr}l8xT2;cUh)gD{Bvb<}4z$w1`G!>myZJU{b|TiL za%sC~gv*s5YF*Lhln!%%FCqf<6V^hY1J}dpHKhVQf(x@UcbfpUL!5>u)>aUkB)k~# z-Qv^Ze+XZt&y&OJX|+f`EELBr@Xj#qa>z<0WF{QsZrLkLp3ryRGKwJ^xbMsicIU{K zWl%PItz>G}u_kxD3G=H04`8@6CzX4AnR~tBZI8LINUEpo(Mbyog)g8A0!utqWR2>> zlVKjhkXs*6^;g<-2VM*Q0E!Z<_u_Us!> zJ@9D7Ft2w3t(lWfGIY`zzjF2J)qx=G>x-|2qxEru@ym4|OHW!2Bn(mZ${RIyY6(s& zQk$WgMj93=NZ?2|39KtF$v%rQm!!+Bg{G&b&$+# zXA}UQ7EOS47z6?u%|{G_OhB0}#ZAx!o`cN;!K| z5f7)HZ25~P2;r$+EW(e8+$v?4rRz-m_8yGYeLehQ&U-!eE8d@XnXG9Bqm|)8L@gn) zOilY{-;OiW_{ihotE}sI6;AI&bQPW6H!z6JM_$@=b#>bi_8sxNaF`oa_qJ~TmWc_g zPZ;+r$V6{3wQZ0YcyQ?0@dqD%B#3P@c39U73~lR$LH@f98t68%HU>3I=pEio*&iH3)?@w|LFM0_p*Y4{*jH|S7cF=4ZcC1Gl~ z$(9!>ZVEC|4anT(!>+UGYpCy5!!2i03f8VvwX>pA;p#W0wa-Q_u0WdtxInFO*Ua1M zz~s%`$rGMhK>~-$v`KcUK`F*`WE3fJm^fu`VS`-+V&NRuL%GD^aqEl3?j@cBA}wkY zAWVyKsB}#6E=t{JH)|6J+^ZX*bp+XBW-jKQL5ZC~(egmKc{YXkE8sYaNrBGK6Y*jy z%LI}_481>^K+bMHClw_KNePPFh3HGZh35ntS6PpPl?<bapLQSPN$NVF6MK+kKkR!=gX$;sX0R^QTnCzC2BYFx!(E+CMjP|HuhLG2GVW>1> z*Lt{y*v5cWe3&&J9q55v-?pi?7XF3wjl)B*p%67 zR~+0WjbKS5vXc;g3bhs%58TM;?3nj|u($;q7h-3?v0q|M!fMLqThD&k117asGcM#@ zY~0&$ukso4O<|s(B=>3tZXO6?y>2ID!0bXAhTW*oy&y}4m(D)H6|WZixN;A00SKEx zM!%q&H1s@#T$sD}{gQ64XH2?w>(t!jdo;QwzA3n=fYIAypSzr0Lz&Oh327h<<70AiZ^fF*LSLy|2^A!w(ijX zeg4y$RYQH%3kB+O2*E2SUT19Xvz&47*A1T&+pX$5pXWl5Izwp48Nvi=k0twh9u^~v zHYSY-(U;hyVod{+SH063W=D>By!w8<<5x+76M%dHU%Q!3~LB@p`>|Bw-?<&9v6gu3y8T zzOO8r!k6_*HMUGKnYf)>u~#e%q=Nigmn(x_}LZ}HOR!OSDf-a(W z2Ze~AgqsBq;m@Z0Ss1dJo>8!!#IS9C6j~BVqU8vwz|52iM}sRV3NEAu+{rXkqx_No zzjU?>X_iEHPu+meMXej=Y3X^3Ed)q!M;1`5F*{POxb?7{Xz>e}$Ka&yg`thmTZk5pOXL>h!Mv~pUs2a)7jYd*>O~?V8 zV+OA58Jr%Q1;adg>gf20n=Wy5iqeYH=Srvgz31^mKJe)&GZRiRdk=<_e$aeO>%oIl zTG@pMgSIww@|$oUQqlntlyh$cNVTKy(VKg~N|YNhTq<0NdlxiesN^t=iHz!Y#fLEo z?-I14tQ{!)Lt5VVv;=8*BHtM_ADNt)cC!XVV&@{%`j|C?w!;q`d}OHqB@p!`2AL-8x(1Oiv$I{hON7i(GcV@ zlVXn@ovpTo@yDnw?7+805SwxT&htTIXxpn9O2#%iYS>29bKlVD9pI^CTJD`FQV7Zs zmmUpWP#RT%MRWqsC3CCtX%Jtn=*&FUEB;a*9h&k&!z9z~FU6Cn7+!KaseIiSX3@q?#tJ=T0r~A7i|^#yXxW>8PS{nxFxUEtydxTqMNi;aK`b#{~C+oIS;2XhBcS*i$U=>z;aZ?NhKyLWJ@ruK?I7Bxq3^ zg1(b@Rwd8>@n%0?4`NNem7#cD6X>rDh86ThxI8YeKeZ%@h40LJ@0bTn1WXr^1I_>GqVY?}L zKfD)o_?&v>KUI@_^rp(L-EG_utXX>6wup9u4fq%<&nqV_hz~R?6)w;jxe$8K16!q; zH-bzM*ZoAIhqNHC*uaf;r zb|{hZ-#x10Z&mI#CATZNL&=>=c9SS_0(#-;N%tw;dza4Ntwg2|zcc+F<-Vyz7HjV{ zxl6fyO8!`neN@RkI_y)6zFIl0+T8E!P*Ce2I|ZPB;#LK0tM0Gi=5+mt?z~^gw{<9N zjr*<=;Yi%~l$ibD1?9f4MEHc70c5MY4BJZ1O1BbZBE^YckJ&0iODS70_yB2#^fpc5 ze(+V9N|m!@?qR>hxrtG6vxd_5NRka}AKJ=V-Vc9Vppgnz$6g!DC!;f3kw(9=%CYv3 zOV-G9r&t8`yLfAxEOMFkN$};Fed!z+J7kZ1TYkRb>CBq^P5BP;$;{*V!})Fb{rPPB z!S-Cbjb-)I?XB(Y`CPu7Ys|;9E%|u9J(J30^EYR1&!_W!$-8n1G~V${DoL3QPwO{- ypyBD{N!HBp4(+FyWc{4aX5N^|XI_=Nhg!sOkId%MIkr^K+>&X^-I{F8#QqQaJ&7d% literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/urllib/__pycache__/response.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/urllib/__pycache__/response.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d2691c7193b3e7d681d4db4d4eda5de4a74d7a54 GIT binary patch literal 3892 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 tLmxyr^)vGE{!SAqbFStD' % self.reason + +class HTTPError(URLError, urllib_response.addinfourl): + """Raised when HTTP error occurs, but also acts like non-error return""" + __super_init = urllib_response.addinfourl.__init__ + + def __init__(self, url, code, msg, hdrs, fp): + self.code = code + self.msg = msg + self.hdrs = hdrs + self.fp = fp + self.filename = url + # The addinfourl classes depend on fp being a valid file + # object. In some cases, the HTTPError may not have a valid + # file object. If this happens, the simplest workaround is to + # not initialize the base classes. + if fp is not None: + self.__super_init(fp, hdrs, url, code) + + def __str__(self): + return 'HTTP Error %s: %s' % (self.code, self.msg) + + # since URLError specifies a .reason attribute, HTTPError should also + # provide this attribute. See issue13211 for discussion. + @property + def reason(self): + return self.msg + + def info(self): + return self.hdrs + + +# exception raised when downloaded size does not match content-length +class ContentTooShortError(URLError): + def __init__(self, message, content): + URLError.__init__(self, message) + self.content = content diff --git a/venv/lib/python3.10/site-packages/future/backports/urllib/parse.py b/venv/lib/python3.10/site-packages/future/backports/urllib/parse.py new file mode 100644 index 0000000..04e52d4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/urllib/parse.py @@ -0,0 +1,991 @@ +""" +Ported using Python-Future from the Python 3.3 standard library. + +Parse (absolute and relative) URLs. + +urlparse module is based upon the following RFC specifications. + +RFC 3986 (STD66): "Uniform Resource Identifiers" by T. Berners-Lee, R. Fielding +and L. Masinter, January 2005. + +RFC 2732 : "Format for Literal IPv6 Addresses in URL's by R.Hinden, B.Carpenter +and L.Masinter, December 1999. + +RFC 2396: "Uniform Resource Identifiers (URI)": Generic Syntax by T. +Berners-Lee, R. Fielding, and L. Masinter, August 1998. + +RFC 2368: "The mailto URL scheme", by P.Hoffman , L Masinter, J. Zawinski, July 1998. + +RFC 1808: "Relative Uniform Resource Locators", by R. Fielding, UC Irvine, June +1995. + +RFC 1738: "Uniform Resource Locators (URL)" by T. Berners-Lee, L. Masinter, M. +McCahill, December 1994 + +RFC 3986 is considered the current standard and any future changes to +urlparse module should conform with it. The urlparse module is +currently not entirely compliant with this RFC due to defacto +scenarios for parsing, and for backward compatibility purposes, some +parsing quirks from older RFCs are retained. The testcases in +test_urlparse.py provides a good indicator of parsing behavior. +""" +from __future__ import absolute_import, division, unicode_literals +from future.builtins import bytes, chr, dict, int, range, str +from future.utils import raise_with_traceback + +import re +import sys +import collections + +__all__ = ["urlparse", "urlunparse", "urljoin", "urldefrag", + "urlsplit", "urlunsplit", "urlencode", "parse_qs", + "parse_qsl", "quote", "quote_plus", "quote_from_bytes", + "unquote", "unquote_plus", "unquote_to_bytes"] + +# A classification of schemes ('' means apply by default) +uses_relative = ['ftp', 'http', 'gopher', 'nntp', 'imap', + 'wais', 'file', 'https', 'shttp', 'mms', + 'prospero', 'rtsp', 'rtspu', '', 'sftp', + 'svn', 'svn+ssh'] +uses_netloc = ['ftp', 'http', 'gopher', 'nntp', 'telnet', + 'imap', 'wais', 'file', 'mms', 'https', 'shttp', + 'snews', 'prospero', 'rtsp', 'rtspu', 'rsync', '', + 'svn', 'svn+ssh', 'sftp', 'nfs', 'git', 'git+ssh'] +uses_params = ['ftp', 'hdl', 'prospero', 'http', 'imap', + 'https', 'shttp', 'rtsp', 'rtspu', 'sip', 'sips', + 'mms', '', 'sftp', 'tel'] + +# These are not actually used anymore, but should stay for backwards +# compatibility. (They are undocumented, but have a public-looking name.) +non_hierarchical = ['gopher', 'hdl', 'mailto', 'news', + 'telnet', 'wais', 'imap', 'snews', 'sip', 'sips'] +uses_query = ['http', 'wais', 'imap', 'https', 'shttp', 'mms', + 'gopher', 'rtsp', 'rtspu', 'sip', 'sips', ''] +uses_fragment = ['ftp', 'hdl', 'http', 'gopher', 'news', + 'nntp', 'wais', 'https', 'shttp', 'snews', + 'file', 'prospero', ''] + +# Characters valid in scheme names +scheme_chars = ('abcdefghijklmnopqrstuvwxyz' + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + '0123456789' + '+-.') + +# XXX: Consider replacing with functools.lru_cache +MAX_CACHE_SIZE = 20 +_parse_cache = {} + +def clear_cache(): + """Clear the parse cache and the quoters cache.""" + _parse_cache.clear() + _safe_quoters.clear() + + +# Helpers for bytes handling +# For 3.2, we deliberately require applications that +# handle improperly quoted URLs to do their own +# decoding and encoding. If valid use cases are +# presented, we may relax this by using latin-1 +# decoding internally for 3.3 +_implicit_encoding = 'ascii' +_implicit_errors = 'strict' + +def _noop(obj): + return obj + +def _encode_result(obj, encoding=_implicit_encoding, + errors=_implicit_errors): + return obj.encode(encoding, errors) + +def _decode_args(args, encoding=_implicit_encoding, + errors=_implicit_errors): + return tuple(x.decode(encoding, errors) if x else '' for x in args) + +def _coerce_args(*args): + # Invokes decode if necessary to create str args + # and returns the coerced inputs along with + # an appropriate result coercion function + # - noop for str inputs + # - encoding function otherwise + str_input = isinstance(args[0], str) + for arg in args[1:]: + # We special-case the empty string to support the + # "scheme=''" default argument to some functions + if arg and isinstance(arg, str) != str_input: + raise TypeError("Cannot mix str and non-str arguments") + if str_input: + return args + (_noop,) + return _decode_args(args) + (_encode_result,) + +# Result objects are more helpful than simple tuples +class _ResultMixinStr(object): + """Standard approach to encoding parsed results from str to bytes""" + __slots__ = () + + def encode(self, encoding='ascii', errors='strict'): + return self._encoded_counterpart(*(x.encode(encoding, errors) for x in self)) + + +class _ResultMixinBytes(object): + """Standard approach to decoding parsed results from bytes to str""" + __slots__ = () + + def decode(self, encoding='ascii', errors='strict'): + return self._decoded_counterpart(*(x.decode(encoding, errors) for x in self)) + + +class _NetlocResultMixinBase(object): + """Shared methods for the parsed result objects containing a netloc element""" + __slots__ = () + + @property + def username(self): + return self._userinfo[0] + + @property + def password(self): + return self._userinfo[1] + + @property + def hostname(self): + hostname = self._hostinfo[0] + if not hostname: + hostname = None + elif hostname is not None: + hostname = hostname.lower() + return hostname + + @property + def port(self): + port = self._hostinfo[1] + if port is not None: + port = int(port, 10) + # Return None on an illegal port + if not ( 0 <= port <= 65535): + return None + return port + + +class _NetlocResultMixinStr(_NetlocResultMixinBase, _ResultMixinStr): + __slots__ = () + + @property + def _userinfo(self): + netloc = self.netloc + userinfo, have_info, hostinfo = netloc.rpartition('@') + if have_info: + username, have_password, password = userinfo.partition(':') + if not have_password: + password = None + else: + username = password = None + return username, password + + @property + def _hostinfo(self): + netloc = self.netloc + _, _, hostinfo = netloc.rpartition('@') + _, have_open_br, bracketed = hostinfo.partition('[') + if have_open_br: + hostname, _, port = bracketed.partition(']') + _, have_port, port = port.partition(':') + else: + hostname, have_port, port = hostinfo.partition(':') + if not have_port: + port = None + return hostname, port + + +class _NetlocResultMixinBytes(_NetlocResultMixinBase, _ResultMixinBytes): + __slots__ = () + + @property + def _userinfo(self): + netloc = self.netloc + userinfo, have_info, hostinfo = netloc.rpartition(b'@') + if have_info: + username, have_password, password = userinfo.partition(b':') + if not have_password: + password = None + else: + username = password = None + return username, password + + @property + def _hostinfo(self): + netloc = self.netloc + _, _, hostinfo = netloc.rpartition(b'@') + _, have_open_br, bracketed = hostinfo.partition(b'[') + if have_open_br: + hostname, _, port = bracketed.partition(b']') + _, have_port, port = port.partition(b':') + else: + hostname, have_port, port = hostinfo.partition(b':') + if not have_port: + port = None + return hostname, port + + +from collections import namedtuple + +_DefragResultBase = namedtuple('DefragResult', 'url fragment') +_SplitResultBase = namedtuple('SplitResult', 'scheme netloc path query fragment') +_ParseResultBase = namedtuple('ParseResult', 'scheme netloc path params query fragment') + +# For backwards compatibility, alias _NetlocResultMixinStr +# ResultBase is no longer part of the documented API, but it is +# retained since deprecating it isn't worth the hassle +ResultBase = _NetlocResultMixinStr + +# Structured result objects for string data +class DefragResult(_DefragResultBase, _ResultMixinStr): + __slots__ = () + def geturl(self): + if self.fragment: + return self.url + '#' + self.fragment + else: + return self.url + +class SplitResult(_SplitResultBase, _NetlocResultMixinStr): + __slots__ = () + def geturl(self): + return urlunsplit(self) + +class ParseResult(_ParseResultBase, _NetlocResultMixinStr): + __slots__ = () + def geturl(self): + return urlunparse(self) + +# Structured result objects for bytes data +class DefragResultBytes(_DefragResultBase, _ResultMixinBytes): + __slots__ = () + def geturl(self): + if self.fragment: + return self.url + b'#' + self.fragment + else: + return self.url + +class SplitResultBytes(_SplitResultBase, _NetlocResultMixinBytes): + __slots__ = () + def geturl(self): + return urlunsplit(self) + +class ParseResultBytes(_ParseResultBase, _NetlocResultMixinBytes): + __slots__ = () + def geturl(self): + return urlunparse(self) + +# Set up the encode/decode result pairs +def _fix_result_transcoding(): + _result_pairs = ( + (DefragResult, DefragResultBytes), + (SplitResult, SplitResultBytes), + (ParseResult, ParseResultBytes), + ) + for _decoded, _encoded in _result_pairs: + _decoded._encoded_counterpart = _encoded + _encoded._decoded_counterpart = _decoded + +_fix_result_transcoding() +del _fix_result_transcoding + +def urlparse(url, scheme='', allow_fragments=True): + """Parse a URL into 6 components: + :///;?# + Return a 6-tuple: (scheme, netloc, path, params, query, fragment). + Note that we don't break the components up in smaller bits + (e.g. netloc is a single string) and we don't expand % escapes.""" + url, scheme, _coerce_result = _coerce_args(url, scheme) + splitresult = urlsplit(url, scheme, allow_fragments) + scheme, netloc, url, query, fragment = splitresult + if scheme in uses_params and ';' in url: + url, params = _splitparams(url) + else: + params = '' + result = ParseResult(scheme, netloc, url, params, query, fragment) + return _coerce_result(result) + +def _splitparams(url): + if '/' in url: + i = url.find(';', url.rfind('/')) + if i < 0: + return url, '' + else: + i = url.find(';') + return url[:i], url[i+1:] + +def _splitnetloc(url, start=0): + delim = len(url) # position of end of domain part of url, default is end + for c in '/?#': # look for delimiters; the order is NOT important + wdelim = url.find(c, start) # find first of this delim + if wdelim >= 0: # if found + delim = min(delim, wdelim) # use earliest delim position + return url[start:delim], url[delim:] # return (domain, rest) + +def urlsplit(url, scheme='', allow_fragments=True): + """Parse a URL into 5 components: + :///?# + Return a 5-tuple: (scheme, netloc, path, query, fragment). + Note that we don't break the components up in smaller bits + (e.g. netloc is a single string) and we don't expand % escapes.""" + url, scheme, _coerce_result = _coerce_args(url, scheme) + allow_fragments = bool(allow_fragments) + key = url, scheme, allow_fragments, type(url), type(scheme) + cached = _parse_cache.get(key, None) + if cached: + return _coerce_result(cached) + if len(_parse_cache) >= MAX_CACHE_SIZE: # avoid runaway growth + clear_cache() + netloc = query = fragment = '' + i = url.find(':') + if i > 0: + if url[:i] == 'http': # optimize the common case + scheme = url[:i].lower() + url = url[i+1:] + if url[:2] == '//': + netloc, url = _splitnetloc(url, 2) + if (('[' in netloc and ']' not in netloc) or + (']' in netloc and '[' not in netloc)): + raise ValueError("Invalid IPv6 URL") + if allow_fragments and '#' in url: + url, fragment = url.split('#', 1) + if '?' in url: + url, query = url.split('?', 1) + v = SplitResult(scheme, netloc, url, query, fragment) + _parse_cache[key] = v + return _coerce_result(v) + for c in url[:i]: + if c not in scheme_chars: + break + else: + # make sure "url" is not actually a port number (in which case + # "scheme" is really part of the path) + rest = url[i+1:] + if not rest or any(c not in '0123456789' for c in rest): + # not a port number + scheme, url = url[:i].lower(), rest + + if url[:2] == '//': + netloc, url = _splitnetloc(url, 2) + if (('[' in netloc and ']' not in netloc) or + (']' in netloc and '[' not in netloc)): + raise ValueError("Invalid IPv6 URL") + if allow_fragments and '#' in url: + url, fragment = url.split('#', 1) + if '?' in url: + url, query = url.split('?', 1) + v = SplitResult(scheme, netloc, url, query, fragment) + _parse_cache[key] = v + return _coerce_result(v) + +def urlunparse(components): + """Put a parsed URL back together again. This may result in a + slightly different, but equivalent URL, if the URL that was parsed + originally had redundant delimiters, e.g. a ? with an empty query + (the draft states that these are equivalent).""" + scheme, netloc, url, params, query, fragment, _coerce_result = ( + _coerce_args(*components)) + if params: + url = "%s;%s" % (url, params) + return _coerce_result(urlunsplit((scheme, netloc, url, query, fragment))) + +def urlunsplit(components): + """Combine the elements of a tuple as returned by urlsplit() into a + complete URL as a string. The data argument can be any five-item iterable. + This may result in a slightly different, but equivalent URL, if the URL that + was parsed originally had unnecessary delimiters (for example, a ? with an + empty query; the RFC states that these are equivalent).""" + scheme, netloc, url, query, fragment, _coerce_result = ( + _coerce_args(*components)) + if netloc or (scheme and scheme in uses_netloc and url[:2] != '//'): + if url and url[:1] != '/': url = '/' + url + url = '//' + (netloc or '') + url + if scheme: + url = scheme + ':' + url + if query: + url = url + '?' + query + if fragment: + url = url + '#' + fragment + return _coerce_result(url) + +def urljoin(base, url, allow_fragments=True): + """Join a base URL and a possibly relative URL to form an absolute + interpretation of the latter.""" + if not base: + return url + if not url: + return base + base, url, _coerce_result = _coerce_args(base, url) + bscheme, bnetloc, bpath, bparams, bquery, bfragment = \ + urlparse(base, '', allow_fragments) + scheme, netloc, path, params, query, fragment = \ + urlparse(url, bscheme, allow_fragments) + if scheme != bscheme or scheme not in uses_relative: + return _coerce_result(url) + if scheme in uses_netloc: + if netloc: + return _coerce_result(urlunparse((scheme, netloc, path, + params, query, fragment))) + netloc = bnetloc + if path[:1] == '/': + return _coerce_result(urlunparse((scheme, netloc, path, + params, query, fragment))) + if not path and not params: + path = bpath + params = bparams + if not query: + query = bquery + return _coerce_result(urlunparse((scheme, netloc, path, + params, query, fragment))) + segments = bpath.split('/')[:-1] + path.split('/') + # XXX The stuff below is bogus in various ways... + if segments[-1] == '.': + segments[-1] = '' + while '.' in segments: + segments.remove('.') + while 1: + i = 1 + n = len(segments) - 1 + while i < n: + if (segments[i] == '..' + and segments[i-1] not in ('', '..')): + del segments[i-1:i+1] + break + i = i+1 + else: + break + if segments == ['', '..']: + segments[-1] = '' + elif len(segments) >= 2 and segments[-1] == '..': + segments[-2:] = [''] + return _coerce_result(urlunparse((scheme, netloc, '/'.join(segments), + params, query, fragment))) + +def urldefrag(url): + """Removes any existing fragment from URL. + + Returns a tuple of the defragmented URL and the fragment. If + the URL contained no fragments, the second element is the + empty string. + """ + url, _coerce_result = _coerce_args(url) + if '#' in url: + s, n, p, a, q, frag = urlparse(url) + defrag = urlunparse((s, n, p, a, q, '')) + else: + frag = '' + defrag = url + return _coerce_result(DefragResult(defrag, frag)) + +_hexdig = '0123456789ABCDEFabcdef' +_hextobyte = dict(((a + b).encode(), bytes([int(a + b, 16)])) + for a in _hexdig for b in _hexdig) + +def unquote_to_bytes(string): + """unquote_to_bytes('abc%20def') -> b'abc def'.""" + # Note: strings are encoded as UTF-8. This is only an issue if it contains + # unescaped non-ASCII characters, which URIs should not. + if not string: + # Is it a string-like object? + string.split + return bytes(b'') + if isinstance(string, str): + string = string.encode('utf-8') + ### For Python-Future: + # It is already a byte-string object, but force it to be newbytes here on + # Py2: + string = bytes(string) + ### + bits = string.split(b'%') + if len(bits) == 1: + return string + res = [bits[0]] + append = res.append + for item in bits[1:]: + try: + append(_hextobyte[item[:2]]) + append(item[2:]) + except KeyError: + append(b'%') + append(item) + return bytes(b'').join(res) + +_asciire = re.compile('([\x00-\x7f]+)') + +def unquote(string, encoding='utf-8', errors='replace'): + """Replace %xx escapes by their single-character equivalent. The optional + encoding and errors parameters specify how to decode percent-encoded + sequences into Unicode characters, as accepted by the bytes.decode() + method. + By default, percent-encoded sequences are decoded with UTF-8, and invalid + sequences are replaced by a placeholder character. + + unquote('abc%20def') -> 'abc def'. + """ + if '%' not in string: + string.split + return string + if encoding is None: + encoding = 'utf-8' + if errors is None: + errors = 'replace' + bits = _asciire.split(string) + res = [bits[0]] + append = res.append + for i in range(1, len(bits), 2): + append(unquote_to_bytes(bits[i]).decode(encoding, errors)) + append(bits[i + 1]) + return ''.join(res) + +def parse_qs(qs, keep_blank_values=False, strict_parsing=False, + encoding='utf-8', errors='replace'): + """Parse a query given as a string argument. + + Arguments: + + qs: percent-encoded query string to be parsed + + keep_blank_values: flag indicating whether blank values in + percent-encoded queries should be treated as blank strings. + A true value indicates that blanks should be retained as + blank strings. The default false value indicates that + blank values are to be ignored and treated as if they were + not included. + + strict_parsing: flag indicating what to do with parsing errors. + If false (the default), errors are silently ignored. + If true, errors raise a ValueError exception. + + encoding and errors: specify how to decode percent-encoded sequences + into Unicode characters, as accepted by the bytes.decode() method. + """ + parsed_result = {} + pairs = parse_qsl(qs, keep_blank_values, strict_parsing, + encoding=encoding, errors=errors) + for name, value in pairs: + if name in parsed_result: + parsed_result[name].append(value) + else: + parsed_result[name] = [value] + return parsed_result + +def parse_qsl(qs, keep_blank_values=False, strict_parsing=False, + encoding='utf-8', errors='replace'): + """Parse a query given as a string argument. + + Arguments: + + qs: percent-encoded query string to be parsed + + keep_blank_values: flag indicating whether blank values in + percent-encoded queries should be treated as blank strings. A + true value indicates that blanks should be retained as blank + strings. The default false value indicates that blank values + are to be ignored and treated as if they were not included. + + strict_parsing: flag indicating what to do with parsing errors. If + false (the default), errors are silently ignored. If true, + errors raise a ValueError exception. + + encoding and errors: specify how to decode percent-encoded sequences + into Unicode characters, as accepted by the bytes.decode() method. + + Returns a list, as G-d intended. + """ + qs, _coerce_result = _coerce_args(qs) + pairs = [s2 for s1 in qs.split('&') for s2 in s1.split(';')] + r = [] + for name_value in pairs: + if not name_value and not strict_parsing: + continue + nv = name_value.split('=', 1) + if len(nv) != 2: + if strict_parsing: + raise ValueError("bad query field: %r" % (name_value,)) + # Handle case of a control-name with no equal sign + if keep_blank_values: + nv.append('') + else: + continue + if len(nv[1]) or keep_blank_values: + name = nv[0].replace('+', ' ') + name = unquote(name, encoding=encoding, errors=errors) + name = _coerce_result(name) + value = nv[1].replace('+', ' ') + value = unquote(value, encoding=encoding, errors=errors) + value = _coerce_result(value) + r.append((name, value)) + return r + +def unquote_plus(string, encoding='utf-8', errors='replace'): + """Like unquote(), but also replace plus signs by spaces, as required for + unquoting HTML form values. + + unquote_plus('%7e/abc+def') -> '~/abc def' + """ + string = string.replace('+', ' ') + return unquote(string, encoding, errors) + +_ALWAYS_SAFE = frozenset(bytes(b'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + b'abcdefghijklmnopqrstuvwxyz' + b'0123456789' + b'_.-')) +_ALWAYS_SAFE_BYTES = bytes(_ALWAYS_SAFE) +_safe_quoters = {} + +class Quoter(collections.defaultdict): + """A mapping from bytes (in range(0,256)) to strings. + + String values are percent-encoded byte values, unless the key < 128, and + in the "safe" set (either the specified safe set, or default set). + """ + # Keeps a cache internally, using defaultdict, for efficiency (lookups + # of cached keys don't call Python code at all). + def __init__(self, safe): + """safe: bytes object.""" + self.safe = _ALWAYS_SAFE.union(bytes(safe)) + + def __repr__(self): + # Without this, will just display as a defaultdict + return "" % dict(self) + + def __missing__(self, b): + # Handle a cache miss. Store quoted string in cache and return. + res = chr(b) if b in self.safe else '%{0:02X}'.format(b) + self[b] = res + return res + +def quote(string, safe='/', encoding=None, errors=None): + """quote('abc def') -> 'abc%20def' + + Each part of a URL, e.g. the path info, the query, etc., has a + different set of reserved characters that must be quoted. + + RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax lists + the following reserved characters. + + reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | + "$" | "," + + Each of these characters is reserved in some component of a URL, + but not necessarily in all of them. + + By default, the quote function is intended for quoting the path + section of a URL. Thus, it will not encode '/'. This character + is reserved, but in typical usage the quote function is being + called on a path where the existing slash characters are used as + reserved characters. + + string and safe may be either str or bytes objects. encoding must + not be specified if string is a str. + + The optional encoding and errors parameters specify how to deal with + non-ASCII characters, as accepted by the str.encode method. + By default, encoding='utf-8' (characters are encoded with UTF-8), and + errors='strict' (unsupported characters raise a UnicodeEncodeError). + """ + if isinstance(string, str): + if not string: + return string + if encoding is None: + encoding = 'utf-8' + if errors is None: + errors = 'strict' + string = string.encode(encoding, errors) + else: + if encoding is not None: + raise TypeError("quote() doesn't support 'encoding' for bytes") + if errors is not None: + raise TypeError("quote() doesn't support 'errors' for bytes") + return quote_from_bytes(string, safe) + +def quote_plus(string, safe='', encoding=None, errors=None): + """Like quote(), but also replace ' ' with '+', as required for quoting + HTML form values. Plus signs in the original string are escaped unless + they are included in safe. It also does not have safe default to '/'. + """ + # Check if ' ' in string, where string may either be a str or bytes. If + # there are no spaces, the regular quote will produce the right answer. + if ((isinstance(string, str) and ' ' not in string) or + (isinstance(string, bytes) and b' ' not in string)): + return quote(string, safe, encoding, errors) + if isinstance(safe, str): + space = str(' ') + else: + space = bytes(b' ') + string = quote(string, safe + space, encoding, errors) + return string.replace(' ', '+') + +def quote_from_bytes(bs, safe='/'): + """Like quote(), but accepts a bytes object rather than a str, and does + not perform string-to-bytes encoding. It always returns an ASCII string. + quote_from_bytes(b'abc def\x3f') -> 'abc%20def%3f' + """ + if not isinstance(bs, (bytes, bytearray)): + raise TypeError("quote_from_bytes() expected bytes") + if not bs: + return str('') + ### For Python-Future: + bs = bytes(bs) + ### + if isinstance(safe, str): + # Normalize 'safe' by converting to bytes and removing non-ASCII chars + safe = str(safe).encode('ascii', 'ignore') + else: + ### For Python-Future: + safe = bytes(safe) + ### + safe = bytes([c for c in safe if c < 128]) + if not bs.rstrip(_ALWAYS_SAFE_BYTES + safe): + return bs.decode() + try: + quoter = _safe_quoters[safe] + except KeyError: + _safe_quoters[safe] = quoter = Quoter(safe).__getitem__ + return str('').join([quoter(char) for char in bs]) + +def urlencode(query, doseq=False, safe='', encoding=None, errors=None): + """Encode a sequence of two-element tuples or dictionary into a URL query string. + + If any values in the query arg are sequences and doseq is true, each + sequence element is converted to a separate parameter. + + If the query arg is a sequence of two-element tuples, the order of the + parameters in the output will match the order of parameters in the + input. + + The query arg may be either a string or a bytes type. When query arg is a + string, the safe, encoding and error parameters are sent the quote_plus for + encoding. + """ + + if hasattr(query, "items"): + query = query.items() + else: + # It's a bother at times that strings and string-like objects are + # sequences. + try: + # non-sequence items should not work with len() + # non-empty strings will fail this + if len(query) and not isinstance(query[0], tuple): + raise TypeError + # Zero-length sequences of all types will get here and succeed, + # but that's a minor nit. Since the original implementation + # allowed empty dicts that type of behavior probably should be + # preserved for consistency + except TypeError: + ty, va, tb = sys.exc_info() + raise_with_traceback(TypeError("not a valid non-string sequence " + "or mapping object"), tb) + + l = [] + if not doseq: + for k, v in query: + if isinstance(k, bytes): + k = quote_plus(k, safe) + else: + k = quote_plus(str(k), safe, encoding, errors) + + if isinstance(v, bytes): + v = quote_plus(v, safe) + else: + v = quote_plus(str(v), safe, encoding, errors) + l.append(k + '=' + v) + else: + for k, v in query: + if isinstance(k, bytes): + k = quote_plus(k, safe) + else: + k = quote_plus(str(k), safe, encoding, errors) + + if isinstance(v, bytes): + v = quote_plus(v, safe) + l.append(k + '=' + v) + elif isinstance(v, str): + v = quote_plus(v, safe, encoding, errors) + l.append(k + '=' + v) + else: + try: + # Is this a sufficient test for sequence-ness? + x = len(v) + except TypeError: + # not a sequence + v = quote_plus(str(v), safe, encoding, errors) + l.append(k + '=' + v) + else: + # loop over the sequence + for elt in v: + if isinstance(elt, bytes): + elt = quote_plus(elt, safe) + else: + elt = quote_plus(str(elt), safe, encoding, errors) + l.append(k + '=' + elt) + return str('&').join(l) + +# Utilities to parse URLs (most of these return None for missing parts): +# unwrap('') --> 'type://host/path' +# splittype('type:opaquestring') --> 'type', 'opaquestring' +# splithost('//host[:port]/path') --> 'host[:port]', '/path' +# splituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]' +# splitpasswd('user:passwd') -> 'user', 'passwd' +# splitport('host:port') --> 'host', 'port' +# splitquery('/path?query') --> '/path', 'query' +# splittag('/path#tag') --> '/path', 'tag' +# splitattr('/path;attr1=value1;attr2=value2;...') -> +# '/path', ['attr1=value1', 'attr2=value2', ...] +# splitvalue('attr=value') --> 'attr', 'value' +# urllib.parse.unquote('abc%20def') -> 'abc def' +# quote('abc def') -> 'abc%20def') + +def to_bytes(url): + """to_bytes(u"URL") --> 'URL'.""" + # Most URL schemes require ASCII. If that changes, the conversion + # can be relaxed. + # XXX get rid of to_bytes() + if isinstance(url, str): + try: + url = url.encode("ASCII").decode() + except UnicodeError: + raise UnicodeError("URL " + repr(url) + + " contains non-ASCII characters") + return url + +def unwrap(url): + """unwrap('') --> 'type://host/path'.""" + url = str(url).strip() + if url[:1] == '<' and url[-1:] == '>': + url = url[1:-1].strip() + if url[:4] == 'URL:': url = url[4:].strip() + return url + +_typeprog = None +def splittype(url): + """splittype('type:opaquestring') --> 'type', 'opaquestring'.""" + global _typeprog + if _typeprog is None: + import re + _typeprog = re.compile('^([^/:]+):') + + match = _typeprog.match(url) + if match: + scheme = match.group(1) + return scheme.lower(), url[len(scheme) + 1:] + return None, url + +_hostprog = None +def splithost(url): + """splithost('//host[:port]/path') --> 'host[:port]', '/path'.""" + global _hostprog + if _hostprog is None: + import re + _hostprog = re.compile('^//([^/?]*)(.*)$') + + match = _hostprog.match(url) + if match: + host_port = match.group(1) + path = match.group(2) + if path and not path.startswith('/'): + path = '/' + path + return host_port, path + return None, url + +_userprog = None +def splituser(host): + """splituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'.""" + global _userprog + if _userprog is None: + import re + _userprog = re.compile('^(.*)@(.*)$') + + match = _userprog.match(host) + if match: return match.group(1, 2) + return None, host + +_passwdprog = None +def splitpasswd(user): + """splitpasswd('user:passwd') -> 'user', 'passwd'.""" + global _passwdprog + if _passwdprog is None: + import re + _passwdprog = re.compile('^([^:]*):(.*)$',re.S) + + match = _passwdprog.match(user) + if match: return match.group(1, 2) + return user, None + +# splittag('/path#tag') --> '/path', 'tag' +_portprog = None +def splitport(host): + """splitport('host:port') --> 'host', 'port'.""" + global _portprog + if _portprog is None: + import re + _portprog = re.compile('^(.*):([0-9]+)$') + + match = _portprog.match(host) + if match: return match.group(1, 2) + return host, None + +_nportprog = None +def splitnport(host, defport=-1): + """Split host and port, returning numeric port. + Return given default port if no ':' found; defaults to -1. + Return numerical port if a valid number are found after ':'. + Return None if ':' but not a valid number.""" + global _nportprog + if _nportprog is None: + import re + _nportprog = re.compile('^(.*):(.*)$') + + match = _nportprog.match(host) + if match: + host, port = match.group(1, 2) + try: + if not port: raise ValueError("no digits") + nport = int(port) + except ValueError: + nport = None + return host, nport + return host, defport + +_queryprog = None +def splitquery(url): + """splitquery('/path?query') --> '/path', 'query'.""" + global _queryprog + if _queryprog is None: + import re + _queryprog = re.compile('^(.*)\?([^?]*)$') + + match = _queryprog.match(url) + if match: return match.group(1, 2) + return url, None + +_tagprog = None +def splittag(url): + """splittag('/path#tag') --> '/path', 'tag'.""" + global _tagprog + if _tagprog is None: + import re + _tagprog = re.compile('^(.*)#([^#]*)$') + + match = _tagprog.match(url) + if match: return match.group(1, 2) + return url, None + +def splitattr(url): + """splitattr('/path;attr1=value1;attr2=value2;...') -> + '/path', ['attr1=value1', 'attr2=value2', ...].""" + words = url.split(';') + return words[0], words[1:] + +_valueprog = None +def splitvalue(attr): + """splitvalue('attr=value') --> 'attr', 'value'.""" + global _valueprog + if _valueprog is None: + import re + _valueprog = re.compile('^([^=]*)=(.*)$') + + match = _valueprog.match(attr) + if match: return match.group(1, 2) + return attr, None diff --git a/venv/lib/python3.10/site-packages/future/backports/urllib/request.py b/venv/lib/python3.10/site-packages/future/backports/urllib/request.py new file mode 100644 index 0000000..baee540 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/urllib/request.py @@ -0,0 +1,2647 @@ +""" +Ported using Python-Future from the Python 3.3 standard library. + +An extensible library for opening URLs using a variety of protocols + +The simplest way to use this module is to call the urlopen function, +which accepts a string containing a URL or a Request object (described +below). It opens the URL and returns the results as file-like +object; the returned object has some extra methods described below. + +The OpenerDirector manages a collection of Handler objects that do +all the actual work. Each Handler implements a particular protocol or +option. The OpenerDirector is a composite object that invokes the +Handlers needed to open the requested URL. For example, the +HTTPHandler performs HTTP GET and POST requests and deals with +non-error returns. The HTTPRedirectHandler automatically deals with +HTTP 301, 302, 303 and 307 redirect errors, and the HTTPDigestAuthHandler +deals with digest authentication. + +urlopen(url, data=None) -- Basic usage is the same as original +urllib. pass the url and optionally data to post to an HTTP URL, and +get a file-like object back. One difference is that you can also pass +a Request instance instead of URL. Raises a URLError (subclass of +IOError); for HTTP errors, raises an HTTPError, which can also be +treated as a valid response. + +build_opener -- Function that creates a new OpenerDirector instance. +Will install the default handlers. Accepts one or more Handlers as +arguments, either instances or Handler classes that it will +instantiate. If one of the argument is a subclass of the default +handler, the argument will be installed instead of the default. + +install_opener -- Installs a new opener as the default opener. + +objects of interest: + +OpenerDirector -- Sets up the User Agent as the Python-urllib client and manages +the Handler classes, while dealing with requests and responses. + +Request -- An object that encapsulates the state of a request. The +state can be as simple as the URL. It can also include extra HTTP +headers, e.g. a User-Agent. + +BaseHandler -- + +internals: +BaseHandler and parent +_call_chain conventions + +Example usage: + +import urllib.request + +# set up authentication info +authinfo = urllib.request.HTTPBasicAuthHandler() +authinfo.add_password(realm='PDQ Application', + uri='https://mahler:8092/site-updates.py', + user='klem', + passwd='geheim$parole') + +proxy_support = urllib.request.ProxyHandler({"http" : "http://ahad-haam:3128"}) + +# build a new opener that adds authentication and caching FTP handlers +opener = urllib.request.build_opener(proxy_support, authinfo, + urllib.request.CacheFTPHandler) + +# install it +urllib.request.install_opener(opener) + +f = urllib.request.urlopen('http://www.python.org/') +""" + +# XXX issues: +# If an authentication error handler that tries to perform +# authentication for some reason but fails, how should the error be +# signalled? The client needs to know the HTTP error code. But if +# the handler knows that the problem was, e.g., that it didn't know +# that hash algo that requested in the challenge, it would be good to +# pass that information along to the client, too. +# ftp errors aren't handled cleanly +# check digest against correct (i.e. non-apache) implementation + +# Possible extensions: +# complex proxies XXX not sure what exactly was meant by this +# abstract factory for opener + +from __future__ import absolute_import, division, print_function, unicode_literals +from future.builtins import bytes, dict, filter, input, int, map, open, str +from future.utils import PY2, PY3, raise_with_traceback + +import base64 +import bisect +import hashlib +import array + +from future.backports import email +from future.backports.http import client as http_client +from .error import URLError, HTTPError, ContentTooShortError +from .parse import ( + urlparse, urlsplit, urljoin, unwrap, quote, unquote, + splittype, splithost, splitport, splituser, splitpasswd, + splitattr, splitquery, splitvalue, splittag, to_bytes, urlunparse) +from .response import addinfourl, addclosehook + +import io +import os +import posixpath +import re +import socket +import sys +import time +import tempfile +import contextlib +import warnings + +from future.utils import PY2 + +if PY2: + from collections import Iterable +else: + from collections.abc import Iterable + +# check for SSL +try: + import ssl + # Not available in the SSL module in Py2: + from ssl import SSLContext +except ImportError: + _have_ssl = False +else: + _have_ssl = True + +__all__ = [ + # Classes + 'Request', 'OpenerDirector', 'BaseHandler', 'HTTPDefaultErrorHandler', + 'HTTPRedirectHandler', 'HTTPCookieProcessor', 'ProxyHandler', + 'HTTPPasswordMgr', 'HTTPPasswordMgrWithDefaultRealm', + 'AbstractBasicAuthHandler', 'HTTPBasicAuthHandler', 'ProxyBasicAuthHandler', + 'AbstractDigestAuthHandler', 'HTTPDigestAuthHandler', 'ProxyDigestAuthHandler', + 'HTTPHandler', 'FileHandler', 'FTPHandler', 'CacheFTPHandler', + 'UnknownHandler', 'HTTPErrorProcessor', + # Functions + 'urlopen', 'install_opener', 'build_opener', + 'pathname2url', 'url2pathname', 'getproxies', + # Legacy interface + 'urlretrieve', 'urlcleanup', 'URLopener', 'FancyURLopener', +] + +# used in User-Agent header sent +__version__ = sys.version[:3] + +_opener = None +def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, **_3to2kwargs): + if 'cadefault' in _3to2kwargs: cadefault = _3to2kwargs['cadefault']; del _3to2kwargs['cadefault'] + else: cadefault = False + if 'capath' in _3to2kwargs: capath = _3to2kwargs['capath']; del _3to2kwargs['capath'] + else: capath = None + if 'cafile' in _3to2kwargs: cafile = _3to2kwargs['cafile']; del _3to2kwargs['cafile'] + else: cafile = None + global _opener + if cafile or capath or cadefault: + if not _have_ssl: + raise ValueError('SSL support not available') + context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + context.options |= ssl.OP_NO_SSLv2 + context.verify_mode = ssl.CERT_REQUIRED + if cafile or capath: + context.load_verify_locations(cafile, capath) + else: + context.set_default_verify_paths() + https_handler = HTTPSHandler(context=context, check_hostname=True) + opener = build_opener(https_handler) + elif _opener is None: + _opener = opener = build_opener() + else: + opener = _opener + return opener.open(url, data, timeout) + +def install_opener(opener): + global _opener + _opener = opener + +_url_tempfiles = [] +def urlretrieve(url, filename=None, reporthook=None, data=None): + """ + Retrieve a URL into a temporary location on disk. + + Requires a URL argument. If a filename is passed, it is used as + the temporary file location. The reporthook argument should be + a callable that accepts a block number, a read size, and the + total file size of the URL target. The data argument should be + valid URL encoded data. + + If a filename is passed and the URL points to a local resource, + the result is a copy from local file to new file. + + Returns a tuple containing the path to the newly created + data file as well as the resulting HTTPMessage object. + """ + url_type, path = splittype(url) + + with contextlib.closing(urlopen(url, data)) as fp: + headers = fp.info() + + # Just return the local path and the "headers" for file:// + # URLs. No sense in performing a copy unless requested. + if url_type == "file" and not filename: + return os.path.normpath(path), headers + + # Handle temporary file setup. + if filename: + tfp = open(filename, 'wb') + else: + tfp = tempfile.NamedTemporaryFile(delete=False) + filename = tfp.name + _url_tempfiles.append(filename) + + with tfp: + result = filename, headers + bs = 1024*8 + size = -1 + read = 0 + blocknum = 0 + if "content-length" in headers: + size = int(headers["Content-Length"]) + + if reporthook: + reporthook(blocknum, bs, size) + + while True: + block = fp.read(bs) + if not block: + break + read += len(block) + tfp.write(block) + blocknum += 1 + if reporthook: + reporthook(blocknum, bs, size) + + if size >= 0 and read < size: + raise ContentTooShortError( + "retrieval incomplete: got only %i out of %i bytes" + % (read, size), result) + + return result + +def urlcleanup(): + for temp_file in _url_tempfiles: + try: + os.unlink(temp_file) + except EnvironmentError: + pass + + del _url_tempfiles[:] + global _opener + if _opener: + _opener = None + +if PY3: + _cut_port_re = re.compile(r":\d+$", re.ASCII) +else: + _cut_port_re = re.compile(r":\d+$") + +def request_host(request): + + """Return request-host, as defined by RFC 2965. + + Variation from RFC: returned value is lowercased, for convenient + comparison. + + """ + url = request.full_url + host = urlparse(url)[1] + if host == "": + host = request.get_header("Host", "") + + # remove port, if present + host = _cut_port_re.sub("", host, 1) + return host.lower() + +class Request(object): + + def __init__(self, url, data=None, headers={}, + origin_req_host=None, unverifiable=False, + method=None): + # unwrap('') --> 'type://host/path' + self.full_url = unwrap(url) + self.full_url, self.fragment = splittag(self.full_url) + self.data = data + self.headers = {} + self._tunnel_host = None + for key, value in headers.items(): + self.add_header(key, value) + self.unredirected_hdrs = {} + if origin_req_host is None: + origin_req_host = request_host(self) + self.origin_req_host = origin_req_host + self.unverifiable = unverifiable + self.method = method + self._parse() + + def _parse(self): + self.type, rest = splittype(self.full_url) + if self.type is None: + raise ValueError("unknown url type: %r" % self.full_url) + self.host, self.selector = splithost(rest) + if self.host: + self.host = unquote(self.host) + + def get_method(self): + """Return a string indicating the HTTP request method.""" + if self.method is not None: + return self.method + elif self.data is not None: + return "POST" + else: + return "GET" + + def get_full_url(self): + if self.fragment: + return '%s#%s' % (self.full_url, self.fragment) + else: + return self.full_url + + # Begin deprecated methods + + def add_data(self, data): + msg = "Request.add_data method is deprecated." + warnings.warn(msg, DeprecationWarning, stacklevel=1) + self.data = data + + def has_data(self): + msg = "Request.has_data method is deprecated." + warnings.warn(msg, DeprecationWarning, stacklevel=1) + return self.data is not None + + def get_data(self): + msg = "Request.get_data method is deprecated." + warnings.warn(msg, DeprecationWarning, stacklevel=1) + return self.data + + def get_type(self): + msg = "Request.get_type method is deprecated." + warnings.warn(msg, DeprecationWarning, stacklevel=1) + return self.type + + def get_host(self): + msg = "Request.get_host method is deprecated." + warnings.warn(msg, DeprecationWarning, stacklevel=1) + return self.host + + def get_selector(self): + msg = "Request.get_selector method is deprecated." + warnings.warn(msg, DeprecationWarning, stacklevel=1) + return self.selector + + def is_unverifiable(self): + msg = "Request.is_unverifiable method is deprecated." + warnings.warn(msg, DeprecationWarning, stacklevel=1) + return self.unverifiable + + def get_origin_req_host(self): + msg = "Request.get_origin_req_host method is deprecated." + warnings.warn(msg, DeprecationWarning, stacklevel=1) + return self.origin_req_host + + # End deprecated methods + + def set_proxy(self, host, type): + if self.type == 'https' and not self._tunnel_host: + self._tunnel_host = self.host + else: + self.type= type + self.selector = self.full_url + self.host = host + + def has_proxy(self): + return self.selector == self.full_url + + def add_header(self, key, val): + # useful for something like authentication + self.headers[key.capitalize()] = val + + def add_unredirected_header(self, key, val): + # will not be added to a redirected request + self.unredirected_hdrs[key.capitalize()] = val + + def has_header(self, header_name): + return (header_name in self.headers or + header_name in self.unredirected_hdrs) + + def get_header(self, header_name, default=None): + return self.headers.get( + header_name, + self.unredirected_hdrs.get(header_name, default)) + + def header_items(self): + hdrs = self.unredirected_hdrs.copy() + hdrs.update(self.headers) + return list(hdrs.items()) + +class OpenerDirector(object): + def __init__(self): + client_version = "Python-urllib/%s" % __version__ + self.addheaders = [('User-agent', client_version)] + # self.handlers is retained only for backward compatibility + self.handlers = [] + # manage the individual handlers + self.handle_open = {} + self.handle_error = {} + self.process_response = {} + self.process_request = {} + + def add_handler(self, handler): + if not hasattr(handler, "add_parent"): + raise TypeError("expected BaseHandler instance, got %r" % + type(handler)) + + added = False + for meth in dir(handler): + if meth in ["redirect_request", "do_open", "proxy_open"]: + # oops, coincidental match + continue + + i = meth.find("_") + protocol = meth[:i] + condition = meth[i+1:] + + if condition.startswith("error"): + j = condition.find("_") + i + 1 + kind = meth[j+1:] + try: + kind = int(kind) + except ValueError: + pass + lookup = self.handle_error.get(protocol, {}) + self.handle_error[protocol] = lookup + elif condition == "open": + kind = protocol + lookup = self.handle_open + elif condition == "response": + kind = protocol + lookup = self.process_response + elif condition == "request": + kind = protocol + lookup = self.process_request + else: + continue + + handlers = lookup.setdefault(kind, []) + if handlers: + bisect.insort(handlers, handler) + else: + handlers.append(handler) + added = True + + if added: + bisect.insort(self.handlers, handler) + handler.add_parent(self) + + def close(self): + # Only exists for backwards compatibility. + pass + + def _call_chain(self, chain, kind, meth_name, *args): + # Handlers raise an exception if no one else should try to handle + # the request, or return None if they can't but another handler + # could. Otherwise, they return the response. + handlers = chain.get(kind, ()) + for handler in handlers: + func = getattr(handler, meth_name) + result = func(*args) + if result is not None: + return result + + def open(self, fullurl, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT): + """ + Accept a URL or a Request object + + Python-Future: if the URL is passed as a byte-string, decode it first. + """ + if isinstance(fullurl, bytes): + fullurl = fullurl.decode() + if isinstance(fullurl, str): + req = Request(fullurl, data) + else: + req = fullurl + if data is not None: + req.data = data + + req.timeout = timeout + protocol = req.type + + # pre-process request + meth_name = protocol+"_request" + for processor in self.process_request.get(protocol, []): + meth = getattr(processor, meth_name) + req = meth(req) + + response = self._open(req, data) + + # post-process response + meth_name = protocol+"_response" + for processor in self.process_response.get(protocol, []): + meth = getattr(processor, meth_name) + response = meth(req, response) + + return response + + def _open(self, req, data=None): + result = self._call_chain(self.handle_open, 'default', + 'default_open', req) + if result: + return result + + protocol = req.type + result = self._call_chain(self.handle_open, protocol, protocol + + '_open', req) + if result: + return result + + return self._call_chain(self.handle_open, 'unknown', + 'unknown_open', req) + + def error(self, proto, *args): + if proto in ('http', 'https'): + # XXX http[s] protocols are special-cased + dict = self.handle_error['http'] # https is not different than http + proto = args[2] # YUCK! + meth_name = 'http_error_%s' % proto + http_err = 1 + orig_args = args + else: + dict = self.handle_error + meth_name = proto + '_error' + http_err = 0 + args = (dict, proto, meth_name) + args + result = self._call_chain(*args) + if result: + return result + + if http_err: + args = (dict, 'default', 'http_error_default') + orig_args + return self._call_chain(*args) + +# XXX probably also want an abstract factory that knows when it makes +# sense to skip a superclass in favor of a subclass and when it might +# make sense to include both + +def build_opener(*handlers): + """Create an opener object from a list of handlers. + + The opener will use several default handlers, including support + for HTTP, FTP and when applicable HTTPS. + + If any of the handlers passed as arguments are subclasses of the + default handlers, the default handlers will not be used. + """ + def isclass(obj): + return isinstance(obj, type) or hasattr(obj, "__bases__") + + opener = OpenerDirector() + default_classes = [ProxyHandler, UnknownHandler, HTTPHandler, + HTTPDefaultErrorHandler, HTTPRedirectHandler, + FTPHandler, FileHandler, HTTPErrorProcessor] + if hasattr(http_client, "HTTPSConnection"): + default_classes.append(HTTPSHandler) + skip = set() + for klass in default_classes: + for check in handlers: + if isclass(check): + if issubclass(check, klass): + skip.add(klass) + elif isinstance(check, klass): + skip.add(klass) + for klass in skip: + default_classes.remove(klass) + + for klass in default_classes: + opener.add_handler(klass()) + + for h in handlers: + if isclass(h): + h = h() + opener.add_handler(h) + return opener + +class BaseHandler(object): + handler_order = 500 + + def add_parent(self, parent): + self.parent = parent + + def close(self): + # Only exists for backwards compatibility + pass + + def __lt__(self, other): + if not hasattr(other, "handler_order"): + # Try to preserve the old behavior of having custom classes + # inserted after default ones (works only for custom user + # classes which are not aware of handler_order). + return True + return self.handler_order < other.handler_order + + +class HTTPErrorProcessor(BaseHandler): + """Process HTTP error responses.""" + handler_order = 1000 # after all other processing + + def http_response(self, request, response): + code, msg, hdrs = response.code, response.msg, response.info() + + # According to RFC 2616, "2xx" code indicates that the client's + # request was successfully received, understood, and accepted. + if not (200 <= code < 300): + response = self.parent.error( + 'http', request, response, code, msg, hdrs) + + return response + + https_response = http_response + +class HTTPDefaultErrorHandler(BaseHandler): + def http_error_default(self, req, fp, code, msg, hdrs): + raise HTTPError(req.full_url, code, msg, hdrs, fp) + +class HTTPRedirectHandler(BaseHandler): + # maximum number of redirections to any single URL + # this is needed because of the state that cookies introduce + max_repeats = 4 + # maximum total number of redirections (regardless of URL) before + # assuming we're in a loop + max_redirections = 10 + + def redirect_request(self, req, fp, code, msg, headers, newurl): + """Return a Request or None in response to a redirect. + + This is called by the http_error_30x methods when a + redirection response is received. If a redirection should + take place, return a new Request to allow http_error_30x to + perform the redirect. Otherwise, raise HTTPError if no-one + else should try to handle this url. Return None if you can't + but another Handler might. + """ + m = req.get_method() + if (not (code in (301, 302, 303, 307) and m in ("GET", "HEAD") + or code in (301, 302, 303) and m == "POST")): + raise HTTPError(req.full_url, code, msg, headers, fp) + + # Strictly (according to RFC 2616), 301 or 302 in response to + # a POST MUST NOT cause a redirection without confirmation + # from the user (of urllib.request, in this case). In practice, + # essentially all clients do redirect in this case, so we do + # the same. + # be conciliant with URIs containing a space + newurl = newurl.replace(' ', '%20') + CONTENT_HEADERS = ("content-length", "content-type") + newheaders = dict((k, v) for k, v in req.headers.items() + if k.lower() not in CONTENT_HEADERS) + return Request(newurl, + headers=newheaders, + origin_req_host=req.origin_req_host, + unverifiable=True) + + # Implementation note: To avoid the server sending us into an + # infinite loop, the request object needs to track what URLs we + # have already seen. Do this by adding a handler-specific + # attribute to the Request object. + def http_error_302(self, req, fp, code, msg, headers): + # Some servers (incorrectly) return multiple Location headers + # (so probably same goes for URI). Use first header. + if "location" in headers: + newurl = headers["location"] + elif "uri" in headers: + newurl = headers["uri"] + else: + return + + # fix a possible malformed URL + urlparts = urlparse(newurl) + + # For security reasons we don't allow redirection to anything other + # than http, https or ftp. + + if urlparts.scheme not in ('http', 'https', 'ftp', ''): + raise HTTPError( + newurl, code, + "%s - Redirection to url '%s' is not allowed" % (msg, newurl), + headers, fp) + + if not urlparts.path: + urlparts = list(urlparts) + urlparts[2] = "/" + newurl = urlunparse(urlparts) + + newurl = urljoin(req.full_url, newurl) + + # XXX Probably want to forget about the state of the current + # request, although that might interact poorly with other + # handlers that also use handler-specific request attributes + new = self.redirect_request(req, fp, code, msg, headers, newurl) + if new is None: + return + + # loop detection + # .redirect_dict has a key url if url was previously visited. + if hasattr(req, 'redirect_dict'): + visited = new.redirect_dict = req.redirect_dict + if (visited.get(newurl, 0) >= self.max_repeats or + len(visited) >= self.max_redirections): + raise HTTPError(req.full_url, code, + self.inf_msg + msg, headers, fp) + else: + visited = new.redirect_dict = req.redirect_dict = {} + visited[newurl] = visited.get(newurl, 0) + 1 + + # Don't close the fp until we are sure that we won't use it + # with HTTPError. + fp.read() + fp.close() + + return self.parent.open(new, timeout=req.timeout) + + http_error_301 = http_error_303 = http_error_307 = http_error_302 + + inf_msg = "The HTTP server returned a redirect error that would " \ + "lead to an infinite loop.\n" \ + "The last 30x error message was:\n" + + +def _parse_proxy(proxy): + """Return (scheme, user, password, host/port) given a URL or an authority. + + If a URL is supplied, it must have an authority (host:port) component. + According to RFC 3986, having an authority component means the URL must + have two slashes after the scheme: + + >>> _parse_proxy('file:/ftp.example.com/') + Traceback (most recent call last): + ValueError: proxy URL with no authority: 'file:/ftp.example.com/' + + The first three items of the returned tuple may be None. + + Examples of authority parsing: + + >>> _parse_proxy('proxy.example.com') + (None, None, None, 'proxy.example.com') + >>> _parse_proxy('proxy.example.com:3128') + (None, None, None, 'proxy.example.com:3128') + + The authority component may optionally include userinfo (assumed to be + username:password): + + >>> _parse_proxy('joe:password@proxy.example.com') + (None, 'joe', 'password', 'proxy.example.com') + >>> _parse_proxy('joe:password@proxy.example.com:3128') + (None, 'joe', 'password', 'proxy.example.com:3128') + + Same examples, but with URLs instead: + + >>> _parse_proxy('http://proxy.example.com/') + ('http', None, None, 'proxy.example.com') + >>> _parse_proxy('http://proxy.example.com:3128/') + ('http', None, None, 'proxy.example.com:3128') + >>> _parse_proxy('http://joe:password@proxy.example.com/') + ('http', 'joe', 'password', 'proxy.example.com') + >>> _parse_proxy('http://joe:password@proxy.example.com:3128') + ('http', 'joe', 'password', 'proxy.example.com:3128') + + Everything after the authority is ignored: + + >>> _parse_proxy('ftp://joe:password@proxy.example.com/rubbish:3128') + ('ftp', 'joe', 'password', 'proxy.example.com') + + Test for no trailing '/' case: + + >>> _parse_proxy('http://joe:password@proxy.example.com') + ('http', 'joe', 'password', 'proxy.example.com') + + """ + scheme, r_scheme = splittype(proxy) + if not r_scheme.startswith("/"): + # authority + scheme = None + authority = proxy + else: + # URL + if not r_scheme.startswith("//"): + raise ValueError("proxy URL with no authority: %r" % proxy) + # We have an authority, so for RFC 3986-compliant URLs (by ss 3. + # and 3.3.), path is empty or starts with '/' + end = r_scheme.find("/", 2) + if end == -1: + end = None + authority = r_scheme[2:end] + userinfo, hostport = splituser(authority) + if userinfo is not None: + user, password = splitpasswd(userinfo) + else: + user = password = None + return scheme, user, password, hostport + +class ProxyHandler(BaseHandler): + # Proxies must be in front + handler_order = 100 + + def __init__(self, proxies=None): + if proxies is None: + proxies = getproxies() + assert hasattr(proxies, 'keys'), "proxies must be a mapping" + self.proxies = proxies + for type, url in proxies.items(): + setattr(self, '%s_open' % type, + lambda r, proxy=url, type=type, meth=self.proxy_open: + meth(r, proxy, type)) + + def proxy_open(self, req, proxy, type): + orig_type = req.type + proxy_type, user, password, hostport = _parse_proxy(proxy) + if proxy_type is None: + proxy_type = orig_type + + if req.host and proxy_bypass(req.host): + return None + + if user and password: + user_pass = '%s:%s' % (unquote(user), + unquote(password)) + creds = base64.b64encode(user_pass.encode()).decode("ascii") + req.add_header('Proxy-authorization', 'Basic ' + creds) + hostport = unquote(hostport) + req.set_proxy(hostport, proxy_type) + if orig_type == proxy_type or orig_type == 'https': + # let other handlers take care of it + return None + else: + # need to start over, because the other handlers don't + # grok the proxy's URL type + # e.g. if we have a constructor arg proxies like so: + # {'http': 'ftp://proxy.example.com'}, we may end up turning + # a request for http://acme.example.com/a into one for + # ftp://proxy.example.com/a + return self.parent.open(req, timeout=req.timeout) + +class HTTPPasswordMgr(object): + + def __init__(self): + self.passwd = {} + + def add_password(self, realm, uri, user, passwd): + # uri could be a single URI or a sequence + if isinstance(uri, str): + uri = [uri] + if realm not in self.passwd: + self.passwd[realm] = {} + for default_port in True, False: + reduced_uri = tuple( + [self.reduce_uri(u, default_port) for u in uri]) + self.passwd[realm][reduced_uri] = (user, passwd) + + def find_user_password(self, realm, authuri): + domains = self.passwd.get(realm, {}) + for default_port in True, False: + reduced_authuri = self.reduce_uri(authuri, default_port) + for uris, authinfo in domains.items(): + for uri in uris: + if self.is_suburi(uri, reduced_authuri): + return authinfo + return None, None + + def reduce_uri(self, uri, default_port=True): + """Accept authority or URI and extract only the authority and path.""" + # note HTTP URLs do not have a userinfo component + parts = urlsplit(uri) + if parts[1]: + # URI + scheme = parts[0] + authority = parts[1] + path = parts[2] or '/' + else: + # host or host:port + scheme = None + authority = uri + path = '/' + host, port = splitport(authority) + if default_port and port is None and scheme is not None: + dport = {"http": 80, + "https": 443, + }.get(scheme) + if dport is not None: + authority = "%s:%d" % (host, dport) + return authority, path + + def is_suburi(self, base, test): + """Check if test is below base in a URI tree + + Both args must be URIs in reduced form. + """ + if base == test: + return True + if base[0] != test[0]: + return False + common = posixpath.commonprefix((base[1], test[1])) + if len(common) == len(base[1]): + return True + return False + + +class HTTPPasswordMgrWithDefaultRealm(HTTPPasswordMgr): + + def find_user_password(self, realm, authuri): + user, password = HTTPPasswordMgr.find_user_password(self, realm, + authuri) + if user is not None: + return user, password + return HTTPPasswordMgr.find_user_password(self, None, authuri) + + +class AbstractBasicAuthHandler(object): + + # XXX this allows for multiple auth-schemes, but will stupidly pick + # the last one with a realm specified. + + # allow for double- and single-quoted realm values + # (single quotes are a violation of the RFC, but appear in the wild) + rx = re.compile('(?:.*,)*[ \t]*([^ \t]+)[ \t]+' + 'realm=(["\']?)([^"\']*)\\2', re.I) + + # XXX could pre-emptively send auth info already accepted (RFC 2617, + # end of section 2, and section 1.2 immediately after "credentials" + # production). + + def __init__(self, password_mgr=None): + if password_mgr is None: + password_mgr = HTTPPasswordMgr() + self.passwd = password_mgr + self.add_password = self.passwd.add_password + self.retried = 0 + + def reset_retry_count(self): + self.retried = 0 + + def http_error_auth_reqed(self, authreq, host, req, headers): + # host may be an authority (without userinfo) or a URL with an + # authority + # XXX could be multiple headers + authreq = headers.get(authreq, None) + + if self.retried > 5: + # retry sending the username:password 5 times before failing. + raise HTTPError(req.get_full_url(), 401, "basic auth failed", + headers, None) + else: + self.retried += 1 + + if authreq: + scheme = authreq.split()[0] + if scheme.lower() != 'basic': + raise ValueError("AbstractBasicAuthHandler does not" + " support the following scheme: '%s'" % + scheme) + else: + mo = AbstractBasicAuthHandler.rx.search(authreq) + if mo: + scheme, quote, realm = mo.groups() + if quote not in ['"',"'"]: + warnings.warn("Basic Auth Realm was unquoted", + UserWarning, 2) + if scheme.lower() == 'basic': + response = self.retry_http_basic_auth(host, req, realm) + if response and response.code != 401: + self.retried = 0 + return response + + def retry_http_basic_auth(self, host, req, realm): + user, pw = self.passwd.find_user_password(realm, host) + if pw is not None: + raw = "%s:%s" % (user, pw) + auth = "Basic " + base64.b64encode(raw.encode()).decode("ascii") + if req.headers.get(self.auth_header, None) == auth: + return None + req.add_unredirected_header(self.auth_header, auth) + return self.parent.open(req, timeout=req.timeout) + else: + return None + + +class HTTPBasicAuthHandler(AbstractBasicAuthHandler, BaseHandler): + + auth_header = 'Authorization' + + def http_error_401(self, req, fp, code, msg, headers): + url = req.full_url + response = self.http_error_auth_reqed('www-authenticate', + url, req, headers) + self.reset_retry_count() + return response + + +class ProxyBasicAuthHandler(AbstractBasicAuthHandler, BaseHandler): + + auth_header = 'Proxy-authorization' + + def http_error_407(self, req, fp, code, msg, headers): + # http_error_auth_reqed requires that there is no userinfo component in + # authority. Assume there isn't one, since urllib.request does not (and + # should not, RFC 3986 s. 3.2.1) support requests for URLs containing + # userinfo. + authority = req.host + response = self.http_error_auth_reqed('proxy-authenticate', + authority, req, headers) + self.reset_retry_count() + return response + + +# Return n random bytes. +_randombytes = os.urandom + + +class AbstractDigestAuthHandler(object): + # Digest authentication is specified in RFC 2617. + + # XXX The client does not inspect the Authentication-Info header + # in a successful response. + + # XXX It should be possible to test this implementation against + # a mock server that just generates a static set of challenges. + + # XXX qop="auth-int" supports is shaky + + def __init__(self, passwd=None): + if passwd is None: + passwd = HTTPPasswordMgr() + self.passwd = passwd + self.add_password = self.passwd.add_password + self.retried = 0 + self.nonce_count = 0 + self.last_nonce = None + + def reset_retry_count(self): + self.retried = 0 + + def http_error_auth_reqed(self, auth_header, host, req, headers): + authreq = headers.get(auth_header, None) + if self.retried > 5: + # Don't fail endlessly - if we failed once, we'll probably + # fail a second time. Hm. Unless the Password Manager is + # prompting for the information. Crap. This isn't great + # but it's better than the current 'repeat until recursion + # depth exceeded' approach + raise HTTPError(req.full_url, 401, "digest auth failed", + headers, None) + else: + self.retried += 1 + if authreq: + scheme = authreq.split()[0] + if scheme.lower() == 'digest': + return self.retry_http_digest_auth(req, authreq) + elif scheme.lower() != 'basic': + raise ValueError("AbstractDigestAuthHandler does not support" + " the following scheme: '%s'" % scheme) + + def retry_http_digest_auth(self, req, auth): + token, challenge = auth.split(' ', 1) + chal = parse_keqv_list(filter(None, parse_http_list(challenge))) + auth = self.get_authorization(req, chal) + if auth: + auth_val = 'Digest %s' % auth + if req.headers.get(self.auth_header, None) == auth_val: + return None + req.add_unredirected_header(self.auth_header, auth_val) + resp = self.parent.open(req, timeout=req.timeout) + return resp + + def get_cnonce(self, nonce): + # The cnonce-value is an opaque + # quoted string value provided by the client and used by both client + # and server to avoid chosen plaintext attacks, to provide mutual + # authentication, and to provide some message integrity protection. + # This isn't a fabulous effort, but it's probably Good Enough. + s = "%s:%s:%s:" % (self.nonce_count, nonce, time.ctime()) + b = s.encode("ascii") + _randombytes(8) + dig = hashlib.sha1(b).hexdigest() + return dig[:16] + + def get_authorization(self, req, chal): + try: + realm = chal['realm'] + nonce = chal['nonce'] + qop = chal.get('qop') + algorithm = chal.get('algorithm', 'MD5') + # mod_digest doesn't send an opaque, even though it isn't + # supposed to be optional + opaque = chal.get('opaque', None) + except KeyError: + return None + + H, KD = self.get_algorithm_impls(algorithm) + if H is None: + return None + + user, pw = self.passwd.find_user_password(realm, req.full_url) + if user is None: + return None + + # XXX not implemented yet + if req.data is not None: + entdig = self.get_entity_digest(req.data, chal) + else: + entdig = None + + A1 = "%s:%s:%s" % (user, realm, pw) + A2 = "%s:%s" % (req.get_method(), + # XXX selector: what about proxies and full urls + req.selector) + if qop == 'auth': + if nonce == self.last_nonce: + self.nonce_count += 1 + else: + self.nonce_count = 1 + self.last_nonce = nonce + ncvalue = '%08x' % self.nonce_count + cnonce = self.get_cnonce(nonce) + noncebit = "%s:%s:%s:%s:%s" % (nonce, ncvalue, cnonce, qop, H(A2)) + respdig = KD(H(A1), noncebit) + elif qop is None: + respdig = KD(H(A1), "%s:%s" % (nonce, H(A2))) + else: + # XXX handle auth-int. + raise URLError("qop '%s' is not supported." % qop) + + # XXX should the partial digests be encoded too? + + base = 'username="%s", realm="%s", nonce="%s", uri="%s", ' \ + 'response="%s"' % (user, realm, nonce, req.selector, + respdig) + if opaque: + base += ', opaque="%s"' % opaque + if entdig: + base += ', digest="%s"' % entdig + base += ', algorithm="%s"' % algorithm + if qop: + base += ', qop=auth, nc=%s, cnonce="%s"' % (ncvalue, cnonce) + return base + + def get_algorithm_impls(self, algorithm): + # lambdas assume digest modules are imported at the top level + if algorithm == 'MD5': + H = lambda x: hashlib.md5(x.encode("ascii")).hexdigest() + elif algorithm == 'SHA': + H = lambda x: hashlib.sha1(x.encode("ascii")).hexdigest() + # XXX MD5-sess + KD = lambda s, d: H("%s:%s" % (s, d)) + return H, KD + + def get_entity_digest(self, data, chal): + # XXX not implemented yet + return None + + +class HTTPDigestAuthHandler(BaseHandler, AbstractDigestAuthHandler): + """An authentication protocol defined by RFC 2069 + + Digest authentication improves on basic authentication because it + does not transmit passwords in the clear. + """ + + auth_header = 'Authorization' + handler_order = 490 # before Basic auth + + def http_error_401(self, req, fp, code, msg, headers): + host = urlparse(req.full_url)[1] + retry = self.http_error_auth_reqed('www-authenticate', + host, req, headers) + self.reset_retry_count() + return retry + + +class ProxyDigestAuthHandler(BaseHandler, AbstractDigestAuthHandler): + + auth_header = 'Proxy-Authorization' + handler_order = 490 # before Basic auth + + def http_error_407(self, req, fp, code, msg, headers): + host = req.host + retry = self.http_error_auth_reqed('proxy-authenticate', + host, req, headers) + self.reset_retry_count() + return retry + +class AbstractHTTPHandler(BaseHandler): + + def __init__(self, debuglevel=0): + self._debuglevel = debuglevel + + def set_http_debuglevel(self, level): + self._debuglevel = level + + def do_request_(self, request): + host = request.host + if not host: + raise URLError('no host given') + + if request.data is not None: # POST + data = request.data + if isinstance(data, str): + msg = "POST data should be bytes or an iterable of bytes. " \ + "It cannot be of type str." + raise TypeError(msg) + if not request.has_header('Content-type'): + request.add_unredirected_header( + 'Content-type', + 'application/x-www-form-urlencoded') + if not request.has_header('Content-length'): + size = None + try: + ### For Python-Future: + if PY2 and isinstance(data, array.array): + # memoryviews of arrays aren't supported + # in Py2.7. (e.g. memoryview(array.array('I', + # [1, 2, 3, 4])) raises a TypeError.) + # So we calculate the size manually instead: + size = len(data) * data.itemsize + ### + else: + mv = memoryview(data) + size = len(mv) * mv.itemsize + except TypeError: + if isinstance(data, Iterable): + raise ValueError("Content-Length should be specified " + "for iterable data of type %r %r" % (type(data), + data)) + else: + request.add_unredirected_header( + 'Content-length', '%d' % size) + + sel_host = host + if request.has_proxy(): + scheme, sel = splittype(request.selector) + sel_host, sel_path = splithost(sel) + if not request.has_header('Host'): + request.add_unredirected_header('Host', sel_host) + for name, value in self.parent.addheaders: + name = name.capitalize() + if not request.has_header(name): + request.add_unredirected_header(name, value) + + return request + + def do_open(self, http_class, req, **http_conn_args): + """Return an HTTPResponse object for the request, using http_class. + + http_class must implement the HTTPConnection API from http.client. + """ + host = req.host + if not host: + raise URLError('no host given') + + # will parse host:port + h = http_class(host, timeout=req.timeout, **http_conn_args) + + headers = dict(req.unredirected_hdrs) + headers.update(dict((k, v) for k, v in req.headers.items() + if k not in headers)) + + # TODO(jhylton): Should this be redesigned to handle + # persistent connections? + + # We want to make an HTTP/1.1 request, but the addinfourl + # class isn't prepared to deal with a persistent connection. + # It will try to read all remaining data from the socket, + # which will block while the server waits for the next request. + # So make sure the connection gets closed after the (only) + # request. + headers["Connection"] = "close" + headers = dict((name.title(), val) for name, val in headers.items()) + + if req._tunnel_host: + tunnel_headers = {} + proxy_auth_hdr = "Proxy-Authorization" + if proxy_auth_hdr in headers: + tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] + # Proxy-Authorization should not be sent to origin + # server. + del headers[proxy_auth_hdr] + h.set_tunnel(req._tunnel_host, headers=tunnel_headers) + + try: + h.request(req.get_method(), req.selector, req.data, headers) + except socket.error as err: # timeout error + h.close() + raise URLError(err) + else: + r = h.getresponse() + # If the server does not send us a 'Connection: close' header, + # HTTPConnection assumes the socket should be left open. Manually + # mark the socket to be closed when this response object goes away. + if h.sock: + h.sock.close() + h.sock = None + + + r.url = req.get_full_url() + # This line replaces the .msg attribute of the HTTPResponse + # with .headers, because urllib clients expect the response to + # have the reason in .msg. It would be good to mark this + # attribute is deprecated and get then to use info() or + # .headers. + r.msg = r.reason + return r + + +class HTTPHandler(AbstractHTTPHandler): + + def http_open(self, req): + return self.do_open(http_client.HTTPConnection, req) + + http_request = AbstractHTTPHandler.do_request_ + +if hasattr(http_client, 'HTTPSConnection'): + + class HTTPSHandler(AbstractHTTPHandler): + + def __init__(self, debuglevel=0, context=None, check_hostname=None): + AbstractHTTPHandler.__init__(self, debuglevel) + self._context = context + self._check_hostname = check_hostname + + def https_open(self, req): + return self.do_open(http_client.HTTPSConnection, req, + context=self._context, check_hostname=self._check_hostname) + + https_request = AbstractHTTPHandler.do_request_ + + __all__.append('HTTPSHandler') + +class HTTPCookieProcessor(BaseHandler): + def __init__(self, cookiejar=None): + import future.backports.http.cookiejar as http_cookiejar + if cookiejar is None: + cookiejar = http_cookiejar.CookieJar() + self.cookiejar = cookiejar + + def http_request(self, request): + self.cookiejar.add_cookie_header(request) + return request + + def http_response(self, request, response): + self.cookiejar.extract_cookies(response, request) + return response + + https_request = http_request + https_response = http_response + +class UnknownHandler(BaseHandler): + def unknown_open(self, req): + type = req.type + raise URLError('unknown url type: %s' % type) + +def parse_keqv_list(l): + """Parse list of key=value strings where keys are not duplicated.""" + parsed = {} + for elt in l: + k, v = elt.split('=', 1) + if v[0] == '"' and v[-1] == '"': + v = v[1:-1] + parsed[k] = v + return parsed + +def parse_http_list(s): + """Parse lists as described by RFC 2068 Section 2. + + In particular, parse comma-separated lists where the elements of + the list may include quoted-strings. A quoted-string could + contain a comma. A non-quoted string could have quotes in the + middle. Neither commas nor quotes count if they are escaped. + Only double-quotes count, not single-quotes. + """ + res = [] + part = '' + + escape = quote = False + for cur in s: + if escape: + part += cur + escape = False + continue + if quote: + if cur == '\\': + escape = True + continue + elif cur == '"': + quote = False + part += cur + continue + + if cur == ',': + res.append(part) + part = '' + continue + + if cur == '"': + quote = True + + part += cur + + # append last part + if part: + res.append(part) + + return [part.strip() for part in res] + +class FileHandler(BaseHandler): + # Use local file or FTP depending on form of URL + def file_open(self, req): + url = req.selector + if url[:2] == '//' and url[2:3] != '/' and (req.host and + req.host != 'localhost'): + if not req.host is self.get_names(): + raise URLError("file:// scheme is supported only on localhost") + else: + return self.open_local_file(req) + + # names for the localhost + names = None + def get_names(self): + if FileHandler.names is None: + try: + FileHandler.names = tuple( + socket.gethostbyname_ex('localhost')[2] + + socket.gethostbyname_ex(socket.gethostname())[2]) + except socket.gaierror: + FileHandler.names = (socket.gethostbyname('localhost'),) + return FileHandler.names + + # not entirely sure what the rules are here + def open_local_file(self, req): + import future.backports.email.utils as email_utils + import mimetypes + host = req.host + filename = req.selector + localfile = url2pathname(filename) + try: + stats = os.stat(localfile) + size = stats.st_size + modified = email_utils.formatdate(stats.st_mtime, usegmt=True) + mtype = mimetypes.guess_type(filename)[0] + headers = email.message_from_string( + 'Content-type: %s\nContent-length: %d\nLast-modified: %s\n' % + (mtype or 'text/plain', size, modified)) + if host: + host, port = splitport(host) + if not host or \ + (not port and _safe_gethostbyname(host) in self.get_names()): + if host: + origurl = 'file://' + host + filename + else: + origurl = 'file://' + filename + return addinfourl(open(localfile, 'rb'), headers, origurl) + except OSError as exp: + # users shouldn't expect OSErrors coming from urlopen() + raise URLError(exp) + raise URLError('file not on local host') + +def _safe_gethostbyname(host): + try: + return socket.gethostbyname(host) + except socket.gaierror: + return None + +class FTPHandler(BaseHandler): + def ftp_open(self, req): + import ftplib + import mimetypes + host = req.host + if not host: + raise URLError('ftp error: no host given') + host, port = splitport(host) + if port is None: + port = ftplib.FTP_PORT + else: + port = int(port) + + # username/password handling + user, host = splituser(host) + if user: + user, passwd = splitpasswd(user) + else: + passwd = None + host = unquote(host) + user = user or '' + passwd = passwd or '' + + try: + host = socket.gethostbyname(host) + except socket.error as msg: + raise URLError(msg) + path, attrs = splitattr(req.selector) + dirs = path.split('/') + dirs = list(map(unquote, dirs)) + dirs, file = dirs[:-1], dirs[-1] + if dirs and not dirs[0]: + dirs = dirs[1:] + try: + fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) + type = file and 'I' or 'D' + for attr in attrs: + attr, value = splitvalue(attr) + if attr.lower() == 'type' and \ + value in ('a', 'A', 'i', 'I', 'd', 'D'): + type = value.upper() + fp, retrlen = fw.retrfile(file, type) + headers = "" + mtype = mimetypes.guess_type(req.full_url)[0] + if mtype: + headers += "Content-type: %s\n" % mtype + if retrlen is not None and retrlen >= 0: + headers += "Content-length: %d\n" % retrlen + headers = email.message_from_string(headers) + return addinfourl(fp, headers, req.full_url) + except ftplib.all_errors as exp: + exc = URLError('ftp error: %r' % exp) + raise_with_traceback(exc) + + def connect_ftp(self, user, passwd, host, port, dirs, timeout): + return ftpwrapper(user, passwd, host, port, dirs, timeout, + persistent=False) + +class CacheFTPHandler(FTPHandler): + # XXX would be nice to have pluggable cache strategies + # XXX this stuff is definitely not thread safe + def __init__(self): + self.cache = {} + self.timeout = {} + self.soonest = 0 + self.delay = 60 + self.max_conns = 16 + + def setTimeout(self, t): + self.delay = t + + def setMaxConns(self, m): + self.max_conns = m + + def connect_ftp(self, user, passwd, host, port, dirs, timeout): + key = user, host, port, '/'.join(dirs), timeout + if key in self.cache: + self.timeout[key] = time.time() + self.delay + else: + self.cache[key] = ftpwrapper(user, passwd, host, port, + dirs, timeout) + self.timeout[key] = time.time() + self.delay + self.check_cache() + return self.cache[key] + + def check_cache(self): + # first check for old ones + t = time.time() + if self.soonest <= t: + for k, v in list(self.timeout.items()): + if v < t: + self.cache[k].close() + del self.cache[k] + del self.timeout[k] + self.soonest = min(list(self.timeout.values())) + + # then check the size + if len(self.cache) == self.max_conns: + for k, v in list(self.timeout.items()): + if v == self.soonest: + del self.cache[k] + del self.timeout[k] + break + self.soonest = min(list(self.timeout.values())) + + def clear_cache(self): + for conn in self.cache.values(): + conn.close() + self.cache.clear() + self.timeout.clear() + + +# Code move from the old urllib module + +MAXFTPCACHE = 10 # Trim the ftp cache beyond this size + +# Helper for non-unix systems +if os.name == 'nt': + from nturl2path import url2pathname, pathname2url +else: + def url2pathname(pathname): + """OS-specific conversion from a relative URL of the 'file' scheme + to a file system path; not recommended for general use.""" + return unquote(pathname) + + def pathname2url(pathname): + """OS-specific conversion from a file system path to a relative URL + of the 'file' scheme; not recommended for general use.""" + return quote(pathname) + +# This really consists of two pieces: +# (1) a class which handles opening of all sorts of URLs +# (plus assorted utilities etc.) +# (2) a set of functions for parsing URLs +# XXX Should these be separated out into different modules? + + +ftpcache = {} +class URLopener(object): + """Class to open URLs. + This is a class rather than just a subroutine because we may need + more than one set of global protocol-specific options. + Note -- this is a base class for those who don't want the + automatic handling of errors type 302 (relocated) and 401 + (authorization needed).""" + + __tempfiles = None + + version = "Python-urllib/%s" % __version__ + + # Constructor + def __init__(self, proxies=None, **x509): + msg = "%(class)s style of invoking requests is deprecated. " \ + "Use newer urlopen functions/methods" % {'class': self.__class__.__name__} + warnings.warn(msg, DeprecationWarning, stacklevel=3) + if proxies is None: + proxies = getproxies() + assert hasattr(proxies, 'keys'), "proxies must be a mapping" + self.proxies = proxies + self.key_file = x509.get('key_file') + self.cert_file = x509.get('cert_file') + self.addheaders = [('User-Agent', self.version)] + self.__tempfiles = [] + self.__unlink = os.unlink # See cleanup() + self.tempcache = None + # Undocumented feature: if you assign {} to tempcache, + # it is used to cache files retrieved with + # self.retrieve(). This is not enabled by default + # since it does not work for changing documents (and I + # haven't got the logic to check expiration headers + # yet). + self.ftpcache = ftpcache + # Undocumented feature: you can use a different + # ftp cache by assigning to the .ftpcache member; + # in case you want logically independent URL openers + # XXX This is not threadsafe. Bah. + + def __del__(self): + self.close() + + def close(self): + self.cleanup() + + def cleanup(self): + # This code sometimes runs when the rest of this module + # has already been deleted, so it can't use any globals + # or import anything. + if self.__tempfiles: + for file in self.__tempfiles: + try: + self.__unlink(file) + except OSError: + pass + del self.__tempfiles[:] + if self.tempcache: + self.tempcache.clear() + + def addheader(self, *args): + """Add a header to be used by the HTTP interface only + e.g. u.addheader('Accept', 'sound/basic')""" + self.addheaders.append(args) + + # External interface + def open(self, fullurl, data=None): + """Use URLopener().open(file) instead of open(file, 'r').""" + fullurl = unwrap(to_bytes(fullurl)) + fullurl = quote(fullurl, safe="%/:=&?~#+!$,;'@()*[]|") + if self.tempcache and fullurl in self.tempcache: + filename, headers = self.tempcache[fullurl] + fp = open(filename, 'rb') + return addinfourl(fp, headers, fullurl) + urltype, url = splittype(fullurl) + if not urltype: + urltype = 'file' + if urltype in self.proxies: + proxy = self.proxies[urltype] + urltype, proxyhost = splittype(proxy) + host, selector = splithost(proxyhost) + url = (host, fullurl) # Signal special case to open_*() + else: + proxy = None + name = 'open_' + urltype + self.type = urltype + name = name.replace('-', '_') + if not hasattr(self, name): + if proxy: + return self.open_unknown_proxy(proxy, fullurl, data) + else: + return self.open_unknown(fullurl, data) + try: + if data is None: + return getattr(self, name)(url) + else: + return getattr(self, name)(url, data) + except HTTPError: + raise + except socket.error as msg: + raise_with_traceback(IOError('socket error', msg)) + + def open_unknown(self, fullurl, data=None): + """Overridable interface to open unknown URL type.""" + type, url = splittype(fullurl) + raise IOError('url error', 'unknown url type', type) + + def open_unknown_proxy(self, proxy, fullurl, data=None): + """Overridable interface to open unknown URL type.""" + type, url = splittype(fullurl) + raise IOError('url error', 'invalid proxy for %s' % type, proxy) + + # External interface + def retrieve(self, url, filename=None, reporthook=None, data=None): + """retrieve(url) returns (filename, headers) for a local object + or (tempfilename, headers) for a remote object.""" + url = unwrap(to_bytes(url)) + if self.tempcache and url in self.tempcache: + return self.tempcache[url] + type, url1 = splittype(url) + if filename is None and (not type or type == 'file'): + try: + fp = self.open_local_file(url1) + hdrs = fp.info() + fp.close() + return url2pathname(splithost(url1)[1]), hdrs + except IOError as msg: + pass + fp = self.open(url, data) + try: + headers = fp.info() + if filename: + tfp = open(filename, 'wb') + else: + import tempfile + garbage, path = splittype(url) + garbage, path = splithost(path or "") + path, garbage = splitquery(path or "") + path, garbage = splitattr(path or "") + suffix = os.path.splitext(path)[1] + (fd, filename) = tempfile.mkstemp(suffix) + self.__tempfiles.append(filename) + tfp = os.fdopen(fd, 'wb') + try: + result = filename, headers + if self.tempcache is not None: + self.tempcache[url] = result + bs = 1024*8 + size = -1 + read = 0 + blocknum = 0 + if "content-length" in headers: + size = int(headers["Content-Length"]) + if reporthook: + reporthook(blocknum, bs, size) + while 1: + block = fp.read(bs) + if not block: + break + read += len(block) + tfp.write(block) + blocknum += 1 + if reporthook: + reporthook(blocknum, bs, size) + finally: + tfp.close() + finally: + fp.close() + + # raise exception if actual size does not match content-length header + if size >= 0 and read < size: + raise ContentTooShortError( + "retrieval incomplete: got only %i out of %i bytes" + % (read, size), result) + + return result + + # Each method named open_ knows how to open that type of URL + + def _open_generic_http(self, connection_factory, url, data): + """Make an HTTP connection using connection_class. + + This is an internal method that should be called from + open_http() or open_https(). + + Arguments: + - connection_factory should take a host name and return an + HTTPConnection instance. + - url is the url to retrieval or a host, relative-path pair. + - data is payload for a POST request or None. + """ + + user_passwd = None + proxy_passwd= None + if isinstance(url, str): + host, selector = splithost(url) + if host: + user_passwd, host = splituser(host) + host = unquote(host) + realhost = host + else: + host, selector = url + # check whether the proxy contains authorization information + proxy_passwd, host = splituser(host) + # now we proceed with the url we want to obtain + urltype, rest = splittype(selector) + url = rest + user_passwd = None + if urltype.lower() != 'http': + realhost = None + else: + realhost, rest = splithost(rest) + if realhost: + user_passwd, realhost = splituser(realhost) + if user_passwd: + selector = "%s://%s%s" % (urltype, realhost, rest) + if proxy_bypass(realhost): + host = realhost + + if not host: raise IOError('http error', 'no host given') + + if proxy_passwd: + proxy_passwd = unquote(proxy_passwd) + proxy_auth = base64.b64encode(proxy_passwd.encode()).decode('ascii') + else: + proxy_auth = None + + if user_passwd: + user_passwd = unquote(user_passwd) + auth = base64.b64encode(user_passwd.encode()).decode('ascii') + else: + auth = None + http_conn = connection_factory(host) + headers = {} + if proxy_auth: + headers["Proxy-Authorization"] = "Basic %s" % proxy_auth + if auth: + headers["Authorization"] = "Basic %s" % auth + if realhost: + headers["Host"] = realhost + + # Add Connection:close as we don't support persistent connections yet. + # This helps in closing the socket and avoiding ResourceWarning + + headers["Connection"] = "close" + + for header, value in self.addheaders: + headers[header] = value + + if data is not None: + headers["Content-Type"] = "application/x-www-form-urlencoded" + http_conn.request("POST", selector, data, headers) + else: + http_conn.request("GET", selector, headers=headers) + + try: + response = http_conn.getresponse() + except http_client.BadStatusLine: + # something went wrong with the HTTP status line + raise URLError("http protocol error: bad status line") + + # According to RFC 2616, "2xx" code indicates that the client's + # request was successfully received, understood, and accepted. + if 200 <= response.status < 300: + return addinfourl(response, response.msg, "http:" + url, + response.status) + else: + return self.http_error( + url, response.fp, + response.status, response.reason, response.msg, data) + + def open_http(self, url, data=None): + """Use HTTP protocol.""" + return self._open_generic_http(http_client.HTTPConnection, url, data) + + def http_error(self, url, fp, errcode, errmsg, headers, data=None): + """Handle http errors. + + Derived class can override this, or provide specific handlers + named http_error_DDD where DDD is the 3-digit error code.""" + # First check if there's a specific handler for this error + name = 'http_error_%d' % errcode + if hasattr(self, name): + method = getattr(self, name) + if data is None: + result = method(url, fp, errcode, errmsg, headers) + else: + result = method(url, fp, errcode, errmsg, headers, data) + if result: return result + return self.http_error_default(url, fp, errcode, errmsg, headers) + + def http_error_default(self, url, fp, errcode, errmsg, headers): + """Default error handler: close the connection and raise IOError.""" + fp.close() + raise HTTPError(url, errcode, errmsg, headers, None) + + if _have_ssl: + def _https_connection(self, host): + return http_client.HTTPSConnection(host, + key_file=self.key_file, + cert_file=self.cert_file) + + def open_https(self, url, data=None): + """Use HTTPS protocol.""" + return self._open_generic_http(self._https_connection, url, data) + + def open_file(self, url): + """Use local file or FTP depending on form of URL.""" + if not isinstance(url, str): + raise URLError('file error: proxy support for file protocol currently not implemented') + if url[:2] == '//' and url[2:3] != '/' and url[2:12].lower() != 'localhost/': + raise ValueError("file:// scheme is supported only on localhost") + else: + return self.open_local_file(url) + + def open_local_file(self, url): + """Use local file.""" + import future.backports.email.utils as email_utils + import mimetypes + host, file = splithost(url) + localname = url2pathname(file) + try: + stats = os.stat(localname) + except OSError as e: + raise URLError(e.strerror, e.filename) + size = stats.st_size + modified = email_utils.formatdate(stats.st_mtime, usegmt=True) + mtype = mimetypes.guess_type(url)[0] + headers = email.message_from_string( + 'Content-Type: %s\nContent-Length: %d\nLast-modified: %s\n' % + (mtype or 'text/plain', size, modified)) + if not host: + urlfile = file + if file[:1] == '/': + urlfile = 'file://' + file + return addinfourl(open(localname, 'rb'), headers, urlfile) + host, port = splitport(host) + if (not port + and socket.gethostbyname(host) in ((localhost(),) + thishost())): + urlfile = file + if file[:1] == '/': + urlfile = 'file://' + file + elif file[:2] == './': + raise ValueError("local file url may start with / or file:. Unknown url of type: %s" % url) + return addinfourl(open(localname, 'rb'), headers, urlfile) + raise URLError('local file error: not on local host') + + def open_ftp(self, url): + """Use FTP protocol.""" + if not isinstance(url, str): + raise URLError('ftp error: proxy support for ftp protocol currently not implemented') + import mimetypes + host, path = splithost(url) + if not host: raise URLError('ftp error: no host given') + host, port = splitport(host) + user, host = splituser(host) + if user: user, passwd = splitpasswd(user) + else: passwd = None + host = unquote(host) + user = unquote(user or '') + passwd = unquote(passwd or '') + host = socket.gethostbyname(host) + if not port: + import ftplib + port = ftplib.FTP_PORT + else: + port = int(port) + path, attrs = splitattr(path) + path = unquote(path) + dirs = path.split('/') + dirs, file = dirs[:-1], dirs[-1] + if dirs and not dirs[0]: dirs = dirs[1:] + if dirs and not dirs[0]: dirs[0] = '/' + key = user, host, port, '/'.join(dirs) + # XXX thread unsafe! + if len(self.ftpcache) > MAXFTPCACHE: + # Prune the cache, rather arbitrarily + for k in self.ftpcache.keys(): + if k != key: + v = self.ftpcache[k] + del self.ftpcache[k] + v.close() + try: + if key not in self.ftpcache: + self.ftpcache[key] = \ + ftpwrapper(user, passwd, host, port, dirs) + if not file: type = 'D' + else: type = 'I' + for attr in attrs: + attr, value = splitvalue(attr) + if attr.lower() == 'type' and \ + value in ('a', 'A', 'i', 'I', 'd', 'D'): + type = value.upper() + (fp, retrlen) = self.ftpcache[key].retrfile(file, type) + mtype = mimetypes.guess_type("ftp:" + url)[0] + headers = "" + if mtype: + headers += "Content-Type: %s\n" % mtype + if retrlen is not None and retrlen >= 0: + headers += "Content-Length: %d\n" % retrlen + headers = email.message_from_string(headers) + return addinfourl(fp, headers, "ftp:" + url) + except ftperrors() as exp: + raise_with_traceback(URLError('ftp error %r' % exp)) + + def open_data(self, url, data=None): + """Use "data" URL.""" + if not isinstance(url, str): + raise URLError('data error: proxy support for data protocol currently not implemented') + # ignore POSTed data + # + # syntax of data URLs: + # dataurl := "data:" [ mediatype ] [ ";base64" ] "," data + # mediatype := [ type "/" subtype ] *( ";" parameter ) + # data := *urlchar + # parameter := attribute "=" value + try: + [type, data] = url.split(',', 1) + except ValueError: + raise IOError('data error', 'bad data URL') + if not type: + type = 'text/plain;charset=US-ASCII' + semi = type.rfind(';') + if semi >= 0 and '=' not in type[semi:]: + encoding = type[semi+1:] + type = type[:semi] + else: + encoding = '' + msg = [] + msg.append('Date: %s'%time.strftime('%a, %d %b %Y %H:%M:%S GMT', + time.gmtime(time.time()))) + msg.append('Content-type: %s' % type) + if encoding == 'base64': + # XXX is this encoding/decoding ok? + data = base64.decodebytes(data.encode('ascii')).decode('latin-1') + else: + data = unquote(data) + msg.append('Content-Length: %d' % len(data)) + msg.append('') + msg.append(data) + msg = '\n'.join(msg) + headers = email.message_from_string(msg) + f = io.StringIO(msg) + #f.fileno = None # needed for addinfourl + return addinfourl(f, headers, url) + + +class FancyURLopener(URLopener): + """Derived class with handlers for errors we can handle (perhaps).""" + + def __init__(self, *args, **kwargs): + URLopener.__init__(self, *args, **kwargs) + self.auth_cache = {} + self.tries = 0 + self.maxtries = 10 + + def http_error_default(self, url, fp, errcode, errmsg, headers): + """Default error handling -- don't raise an exception.""" + return addinfourl(fp, headers, "http:" + url, errcode) + + def http_error_302(self, url, fp, errcode, errmsg, headers, data=None): + """Error 302 -- relocated (temporarily).""" + self.tries += 1 + if self.maxtries and self.tries >= self.maxtries: + if hasattr(self, "http_error_500"): + meth = self.http_error_500 + else: + meth = self.http_error_default + self.tries = 0 + return meth(url, fp, 500, + "Internal Server Error: Redirect Recursion", headers) + result = self.redirect_internal(url, fp, errcode, errmsg, headers, + data) + self.tries = 0 + return result + + def redirect_internal(self, url, fp, errcode, errmsg, headers, data): + if 'location' in headers: + newurl = headers['location'] + elif 'uri' in headers: + newurl = headers['uri'] + else: + return + fp.close() + + # In case the server sent a relative URL, join with original: + newurl = urljoin(self.type + ":" + url, newurl) + + urlparts = urlparse(newurl) + + # For security reasons, we don't allow redirection to anything other + # than http, https and ftp. + + # We are using newer HTTPError with older redirect_internal method + # This older method will get deprecated in 3.3 + + if urlparts.scheme not in ('http', 'https', 'ftp', ''): + raise HTTPError(newurl, errcode, + errmsg + + " Redirection to url '%s' is not allowed." % newurl, + headers, fp) + + return self.open(newurl) + + def http_error_301(self, url, fp, errcode, errmsg, headers, data=None): + """Error 301 -- also relocated (permanently).""" + return self.http_error_302(url, fp, errcode, errmsg, headers, data) + + def http_error_303(self, url, fp, errcode, errmsg, headers, data=None): + """Error 303 -- also relocated (essentially identical to 302).""" + return self.http_error_302(url, fp, errcode, errmsg, headers, data) + + def http_error_307(self, url, fp, errcode, errmsg, headers, data=None): + """Error 307 -- relocated, but turn POST into error.""" + if data is None: + return self.http_error_302(url, fp, errcode, errmsg, headers, data) + else: + return self.http_error_default(url, fp, errcode, errmsg, headers) + + def http_error_401(self, url, fp, errcode, errmsg, headers, data=None, + retry=False): + """Error 401 -- authentication required. + This function supports Basic authentication only.""" + if 'www-authenticate' not in headers: + URLopener.http_error_default(self, url, fp, + errcode, errmsg, headers) + stuff = headers['www-authenticate'] + match = re.match('[ \t]*([^ \t]+)[ \t]+realm="([^"]*)"', stuff) + if not match: + URLopener.http_error_default(self, url, fp, + errcode, errmsg, headers) + scheme, realm = match.groups() + if scheme.lower() != 'basic': + URLopener.http_error_default(self, url, fp, + errcode, errmsg, headers) + if not retry: + URLopener.http_error_default(self, url, fp, errcode, errmsg, + headers) + name = 'retry_' + self.type + '_basic_auth' + if data is None: + return getattr(self,name)(url, realm) + else: + return getattr(self,name)(url, realm, data) + + def http_error_407(self, url, fp, errcode, errmsg, headers, data=None, + retry=False): + """Error 407 -- proxy authentication required. + This function supports Basic authentication only.""" + if 'proxy-authenticate' not in headers: + URLopener.http_error_default(self, url, fp, + errcode, errmsg, headers) + stuff = headers['proxy-authenticate'] + match = re.match('[ \t]*([^ \t]+)[ \t]+realm="([^"]*)"', stuff) + if not match: + URLopener.http_error_default(self, url, fp, + errcode, errmsg, headers) + scheme, realm = match.groups() + if scheme.lower() != 'basic': + URLopener.http_error_default(self, url, fp, + errcode, errmsg, headers) + if not retry: + URLopener.http_error_default(self, url, fp, errcode, errmsg, + headers) + name = 'retry_proxy_' + self.type + '_basic_auth' + if data is None: + return getattr(self,name)(url, realm) + else: + return getattr(self,name)(url, realm, data) + + def retry_proxy_http_basic_auth(self, url, realm, data=None): + host, selector = splithost(url) + newurl = 'http://' + host + selector + proxy = self.proxies['http'] + urltype, proxyhost = splittype(proxy) + proxyhost, proxyselector = splithost(proxyhost) + i = proxyhost.find('@') + 1 + proxyhost = proxyhost[i:] + user, passwd = self.get_user_passwd(proxyhost, realm, i) + if not (user or passwd): return None + proxyhost = "%s:%s@%s" % (quote(user, safe=''), + quote(passwd, safe=''), proxyhost) + self.proxies['http'] = 'http://' + proxyhost + proxyselector + if data is None: + return self.open(newurl) + else: + return self.open(newurl, data) + + def retry_proxy_https_basic_auth(self, url, realm, data=None): + host, selector = splithost(url) + newurl = 'https://' + host + selector + proxy = self.proxies['https'] + urltype, proxyhost = splittype(proxy) + proxyhost, proxyselector = splithost(proxyhost) + i = proxyhost.find('@') + 1 + proxyhost = proxyhost[i:] + user, passwd = self.get_user_passwd(proxyhost, realm, i) + if not (user or passwd): return None + proxyhost = "%s:%s@%s" % (quote(user, safe=''), + quote(passwd, safe=''), proxyhost) + self.proxies['https'] = 'https://' + proxyhost + proxyselector + if data is None: + return self.open(newurl) + else: + return self.open(newurl, data) + + def retry_http_basic_auth(self, url, realm, data=None): + host, selector = splithost(url) + i = host.find('@') + 1 + host = host[i:] + user, passwd = self.get_user_passwd(host, realm, i) + if not (user or passwd): return None + host = "%s:%s@%s" % (quote(user, safe=''), + quote(passwd, safe=''), host) + newurl = 'http://' + host + selector + if data is None: + return self.open(newurl) + else: + return self.open(newurl, data) + + def retry_https_basic_auth(self, url, realm, data=None): + host, selector = splithost(url) + i = host.find('@') + 1 + host = host[i:] + user, passwd = self.get_user_passwd(host, realm, i) + if not (user or passwd): return None + host = "%s:%s@%s" % (quote(user, safe=''), + quote(passwd, safe=''), host) + newurl = 'https://' + host + selector + if data is None: + return self.open(newurl) + else: + return self.open(newurl, data) + + def get_user_passwd(self, host, realm, clear_cache=0): + key = realm + '@' + host.lower() + if key in self.auth_cache: + if clear_cache: + del self.auth_cache[key] + else: + return self.auth_cache[key] + user, passwd = self.prompt_user_passwd(host, realm) + if user or passwd: self.auth_cache[key] = (user, passwd) + return user, passwd + + def prompt_user_passwd(self, host, realm): + """Override this in a GUI environment!""" + import getpass + try: + user = input("Enter username for %s at %s: " % (realm, host)) + passwd = getpass.getpass("Enter password for %s in %s at %s: " % + (user, realm, host)) + return user, passwd + except KeyboardInterrupt: + print() + return None, None + + +# Utility functions + +_localhost = None +def localhost(): + """Return the IP address of the magic hostname 'localhost'.""" + global _localhost + if _localhost is None: + _localhost = socket.gethostbyname('localhost') + return _localhost + +_thishost = None +def thishost(): + """Return the IP addresses of the current host.""" + global _thishost + if _thishost is None: + try: + _thishost = tuple(socket.gethostbyname_ex(socket.gethostname())[2]) + except socket.gaierror: + _thishost = tuple(socket.gethostbyname_ex('localhost')[2]) + return _thishost + +_ftperrors = None +def ftperrors(): + """Return the set of errors raised by the FTP class.""" + global _ftperrors + if _ftperrors is None: + import ftplib + _ftperrors = ftplib.all_errors + return _ftperrors + +_noheaders = None +def noheaders(): + """Return an empty email Message object.""" + global _noheaders + if _noheaders is None: + _noheaders = email.message_from_string("") + return _noheaders + + +# Utility classes + +class ftpwrapper(object): + """Class used by open_ftp() for cache of open FTP connections.""" + + def __init__(self, user, passwd, host, port, dirs, timeout=None, + persistent=True): + self.user = user + self.passwd = passwd + self.host = host + self.port = port + self.dirs = dirs + self.timeout = timeout + self.refcount = 0 + self.keepalive = persistent + self.init() + + def init(self): + import ftplib + self.busy = 0 + self.ftp = ftplib.FTP() + self.ftp.connect(self.host, self.port, self.timeout) + self.ftp.login(self.user, self.passwd) + _target = '/'.join(self.dirs) + self.ftp.cwd(_target) + + def retrfile(self, file, type): + import ftplib + self.endtransfer() + if type in ('d', 'D'): cmd = 'TYPE A'; isdir = 1 + else: cmd = 'TYPE ' + type; isdir = 0 + try: + self.ftp.voidcmd(cmd) + except ftplib.all_errors: + self.init() + self.ftp.voidcmd(cmd) + conn = None + if file and not isdir: + # Try to retrieve as a file + try: + cmd = 'RETR ' + file + conn, retrlen = self.ftp.ntransfercmd(cmd) + except ftplib.error_perm as reason: + if str(reason)[:3] != '550': + raise_with_traceback(URLError('ftp error: %r' % reason)) + if not conn: + # Set transfer mode to ASCII! + self.ftp.voidcmd('TYPE A') + # Try a directory listing. Verify that directory exists. + if file: + pwd = self.ftp.pwd() + try: + try: + self.ftp.cwd(file) + except ftplib.error_perm as reason: + ### Was: + # raise URLError('ftp error: %r' % reason) from reason + exc = URLError('ftp error: %r' % reason) + exc.__cause__ = reason + raise exc + finally: + self.ftp.cwd(pwd) + cmd = 'LIST ' + file + else: + cmd = 'LIST' + conn, retrlen = self.ftp.ntransfercmd(cmd) + self.busy = 1 + + ftpobj = addclosehook(conn.makefile('rb'), self.file_close) + self.refcount += 1 + conn.close() + # Pass back both a suitably decorated object and a retrieval length + return (ftpobj, retrlen) + + def endtransfer(self): + self.busy = 0 + + def close(self): + self.keepalive = False + if self.refcount <= 0: + self.real_close() + + def file_close(self): + self.endtransfer() + self.refcount -= 1 + if self.refcount <= 0 and not self.keepalive: + self.real_close() + + def real_close(self): + self.endtransfer() + try: + self.ftp.close() + except ftperrors(): + pass + +# Proxy handling +def getproxies_environment(): + """Return a dictionary of scheme -> proxy server URL mappings. + + Scan the environment for variables named _proxy; + this seems to be the standard convention. If you need a + different way, you can pass a proxies dictionary to the + [Fancy]URLopener constructor. + + """ + proxies = {} + for name, value in os.environ.items(): + name = name.lower() + if value and name[-6:] == '_proxy': + proxies[name[:-6]] = value + return proxies + +def proxy_bypass_environment(host): + """Test if proxies should not be used for a particular host. + + Checks the environment for a variable named no_proxy, which should + be a list of DNS suffixes separated by commas, or '*' for all hosts. + """ + no_proxy = os.environ.get('no_proxy', '') or os.environ.get('NO_PROXY', '') + # '*' is special case for always bypass + if no_proxy == '*': + return 1 + # strip port off host + hostonly, port = splitport(host) + # check if the host ends with any of the DNS suffixes + no_proxy_list = [proxy.strip() for proxy in no_proxy.split(',')] + for name in no_proxy_list: + if name and (hostonly.endswith(name) or host.endswith(name)): + return 1 + # otherwise, don't bypass + return 0 + + +# This code tests an OSX specific data structure but is testable on all +# platforms +def _proxy_bypass_macosx_sysconf(host, proxy_settings): + """ + Return True iff this host shouldn't be accessed using a proxy + + This function uses the MacOSX framework SystemConfiguration + to fetch the proxy information. + + proxy_settings come from _scproxy._get_proxy_settings or get mocked ie: + { 'exclude_simple': bool, + 'exceptions': ['foo.bar', '*.bar.com', '127.0.0.1', '10.1', '10.0/16'] + } + """ + from fnmatch import fnmatch + + hostonly, port = splitport(host) + + def ip2num(ipAddr): + parts = ipAddr.split('.') + parts = list(map(int, parts)) + if len(parts) != 4: + parts = (parts + [0, 0, 0, 0])[:4] + return (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8) | parts[3] + + # Check for simple host names: + if '.' not in host: + if proxy_settings['exclude_simple']: + return True + + hostIP = None + + for value in proxy_settings.get('exceptions', ()): + # Items in the list are strings like these: *.local, 169.254/16 + if not value: continue + + m = re.match(r"(\d+(?:\.\d+)*)(/\d+)?", value) + if m is not None: + if hostIP is None: + try: + hostIP = socket.gethostbyname(hostonly) + hostIP = ip2num(hostIP) + except socket.error: + continue + + base = ip2num(m.group(1)) + mask = m.group(2) + if mask is None: + mask = 8 * (m.group(1).count('.') + 1) + else: + mask = int(mask[1:]) + mask = 32 - mask + + if (hostIP >> mask) == (base >> mask): + return True + + elif fnmatch(host, value): + return True + + return False + + +if sys.platform == 'darwin': + from _scproxy import _get_proxy_settings, _get_proxies + + def proxy_bypass_macosx_sysconf(host): + proxy_settings = _get_proxy_settings() + return _proxy_bypass_macosx_sysconf(host, proxy_settings) + + def getproxies_macosx_sysconf(): + """Return a dictionary of scheme -> proxy server URL mappings. + + This function uses the MacOSX framework SystemConfiguration + to fetch the proxy information. + """ + return _get_proxies() + + + + def proxy_bypass(host): + if getproxies_environment(): + return proxy_bypass_environment(host) + else: + return proxy_bypass_macosx_sysconf(host) + + def getproxies(): + return getproxies_environment() or getproxies_macosx_sysconf() + + +elif os.name == 'nt': + def getproxies_registry(): + """Return a dictionary of scheme -> proxy server URL mappings. + + Win32 uses the registry to store proxies. + + """ + proxies = {} + try: + import winreg + except ImportError: + # Std module, so should be around - but you never know! + return proxies + try: + internetSettings = winreg.OpenKey(winreg.HKEY_CURRENT_USER, + r'Software\Microsoft\Windows\CurrentVersion\Internet Settings') + proxyEnable = winreg.QueryValueEx(internetSettings, + 'ProxyEnable')[0] + if proxyEnable: + # Returned as Unicode but problems if not converted to ASCII + proxyServer = str(winreg.QueryValueEx(internetSettings, + 'ProxyServer')[0]) + if '=' in proxyServer: + # Per-protocol settings + for p in proxyServer.split(';'): + protocol, address = p.split('=', 1) + # See if address has a type:// prefix + if not re.match('^([^/:]+)://', address): + address = '%s://%s' % (protocol, address) + proxies[protocol] = address + else: + # Use one setting for all protocols + if proxyServer[:5] == 'http:': + proxies['http'] = proxyServer + else: + proxies['http'] = 'http://%s' % proxyServer + proxies['https'] = 'https://%s' % proxyServer + proxies['ftp'] = 'ftp://%s' % proxyServer + internetSettings.Close() + except (WindowsError, ValueError, TypeError): + # Either registry key not found etc, or the value in an + # unexpected format. + # proxies already set up to be empty so nothing to do + pass + return proxies + + def getproxies(): + """Return a dictionary of scheme -> proxy server URL mappings. + + Returns settings gathered from the environment, if specified, + or the registry. + + """ + return getproxies_environment() or getproxies_registry() + + def proxy_bypass_registry(host): + try: + import winreg + except ImportError: + # Std modules, so should be around - but you never know! + return 0 + try: + internetSettings = winreg.OpenKey(winreg.HKEY_CURRENT_USER, + r'Software\Microsoft\Windows\CurrentVersion\Internet Settings') + proxyEnable = winreg.QueryValueEx(internetSettings, + 'ProxyEnable')[0] + proxyOverride = str(winreg.QueryValueEx(internetSettings, + 'ProxyOverride')[0]) + # ^^^^ Returned as Unicode but problems if not converted to ASCII + except WindowsError: + return 0 + if not proxyEnable or not proxyOverride: + return 0 + # try to make a host list from name and IP address. + rawHost, port = splitport(host) + host = [rawHost] + try: + addr = socket.gethostbyname(rawHost) + if addr != rawHost: + host.append(addr) + except socket.error: + pass + try: + fqdn = socket.getfqdn(rawHost) + if fqdn != rawHost: + host.append(fqdn) + except socket.error: + pass + # make a check value list from the registry entry: replace the + # '' string by the localhost entry and the corresponding + # canonical entry. + proxyOverride = proxyOverride.split(';') + # now check if we match one of the registry values. + for test in proxyOverride: + if test == '': + if '.' not in rawHost: + return 1 + test = test.replace(".", r"\.") # mask dots + test = test.replace("*", r".*") # change glob sequence + test = test.replace("?", r".") # change glob char + for val in host: + if re.match(test, val, re.I): + return 1 + return 0 + + def proxy_bypass(host): + """Return a dictionary of scheme -> proxy server URL mappings. + + Returns settings gathered from the environment, if specified, + or the registry. + + """ + if getproxies_environment(): + return proxy_bypass_environment(host) + else: + return proxy_bypass_registry(host) + +else: + # By default use environment variables + getproxies = getproxies_environment + proxy_bypass = proxy_bypass_environment diff --git a/venv/lib/python3.10/site-packages/future/backports/urllib/response.py b/venv/lib/python3.10/site-packages/future/backports/urllib/response.py new file mode 100644 index 0000000..adbf6e5 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/urllib/response.py @@ -0,0 +1,103 @@ +"""Response classes used by urllib. + +The base class, addbase, defines a minimal file-like interface, +including read() and readline(). The typical response object is an +addinfourl instance, which defines an info() method that returns +headers and a geturl() method that returns the url. +""" +from __future__ import absolute_import, division, unicode_literals +from future.builtins import object + +class addbase(object): + """Base class for addinfo and addclosehook.""" + + # XXX Add a method to expose the timeout on the underlying socket? + + def __init__(self, fp): + # TODO(jhylton): Is there a better way to delegate using io? + self.fp = fp + self.read = self.fp.read + self.readline = self.fp.readline + # TODO(jhylton): Make sure an object with readlines() is also iterable + if hasattr(self.fp, "readlines"): + self.readlines = self.fp.readlines + if hasattr(self.fp, "fileno"): + self.fileno = self.fp.fileno + else: + self.fileno = lambda: None + + def __iter__(self): + # Assigning `__iter__` to the instance doesn't work as intended + # because the iter builtin does something like `cls.__iter__(obj)` + # and thus fails to find the _bound_ method `obj.__iter__`. + # Returning just `self.fp` works for built-in file objects but + # might not work for general file-like objects. + return iter(self.fp) + + def __repr__(self): + return '<%s at %r whose fp = %r>' % (self.__class__.__name__, + id(self), self.fp) + + def close(self): + if self.fp: + self.fp.close() + self.fp = None + self.read = None + self.readline = None + self.readlines = None + self.fileno = None + self.__iter__ = None + self.__next__ = None + + def __enter__(self): + if self.fp is None: + raise ValueError("I/O operation on closed file") + return self + + def __exit__(self, type, value, traceback): + self.close() + +class addclosehook(addbase): + """Class to add a close hook to an open file.""" + + def __init__(self, fp, closehook, *hookargs): + addbase.__init__(self, fp) + self.closehook = closehook + self.hookargs = hookargs + + def close(self): + if self.closehook: + self.closehook(*self.hookargs) + self.closehook = None + self.hookargs = None + addbase.close(self) + +class addinfo(addbase): + """class to add an info() method to an open file.""" + + def __init__(self, fp, headers): + addbase.__init__(self, fp) + self.headers = headers + + def info(self): + return self.headers + +class addinfourl(addbase): + """class to add info() and geturl() methods to an open file.""" + + def __init__(self, fp, headers, url, code=None): + addbase.__init__(self, fp) + self.headers = headers + self.url = url + self.code = code + + def info(self): + return self.headers + + def getcode(self): + return self.code + + def geturl(self): + return self.url + +del absolute_import, division, unicode_literals, object diff --git a/venv/lib/python3.10/site-packages/future/backports/urllib/robotparser.py b/venv/lib/python3.10/site-packages/future/backports/urllib/robotparser.py new file mode 100644 index 0000000..a0f3651 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/urllib/robotparser.py @@ -0,0 +1,211 @@ +from __future__ import absolute_import, division, unicode_literals +from future.builtins import str +""" robotparser.py + + Copyright (C) 2000 Bastian Kleineidam + + You can choose between two licenses when using this package: + 1) GNU GPLv2 + 2) PSF license for Python 2.2 + + The robots.txt Exclusion Protocol is implemented as specified in + http://info.webcrawler.com/mak/projects/robots/norobots-rfc.html +""" + +# Was: import urllib.parse, urllib.request +from future.backports import urllib +from future.backports.urllib import parse as _parse, request as _request +urllib.parse = _parse +urllib.request = _request + + +__all__ = ["RobotFileParser"] + +class RobotFileParser(object): + """ This class provides a set of methods to read, parse and answer + questions about a single robots.txt file. + + """ + + def __init__(self, url=''): + self.entries = [] + self.default_entry = None + self.disallow_all = False + self.allow_all = False + self.set_url(url) + self.last_checked = 0 + + def mtime(self): + """Returns the time the robots.txt file was last fetched. + + This is useful for long-running web spiders that need to + check for new robots.txt files periodically. + + """ + return self.last_checked + + def modified(self): + """Sets the time the robots.txt file was last fetched to the + current time. + + """ + import time + self.last_checked = time.time() + + def set_url(self, url): + """Sets the URL referring to a robots.txt file.""" + self.url = url + self.host, self.path = urllib.parse.urlparse(url)[1:3] + + def read(self): + """Reads the robots.txt URL and feeds it to the parser.""" + try: + f = urllib.request.urlopen(self.url) + except urllib.error.HTTPError as err: + if err.code in (401, 403): + self.disallow_all = True + elif err.code >= 400: + self.allow_all = True + else: + raw = f.read() + self.parse(raw.decode("utf-8").splitlines()) + + def _add_entry(self, entry): + if "*" in entry.useragents: + # the default entry is considered last + if self.default_entry is None: + # the first default entry wins + self.default_entry = entry + else: + self.entries.append(entry) + + def parse(self, lines): + """Parse the input lines from a robots.txt file. + + We allow that a user-agent: line is not preceded by + one or more blank lines. + """ + # states: + # 0: start state + # 1: saw user-agent line + # 2: saw an allow or disallow line + state = 0 + entry = Entry() + + for line in lines: + if not line: + if state == 1: + entry = Entry() + state = 0 + elif state == 2: + self._add_entry(entry) + entry = Entry() + state = 0 + # remove optional comment and strip line + i = line.find('#') + if i >= 0: + line = line[:i] + line = line.strip() + if not line: + continue + line = line.split(':', 1) + if len(line) == 2: + line[0] = line[0].strip().lower() + line[1] = urllib.parse.unquote(line[1].strip()) + if line[0] == "user-agent": + if state == 2: + self._add_entry(entry) + entry = Entry() + entry.useragents.append(line[1]) + state = 1 + elif line[0] == "disallow": + if state != 0: + entry.rulelines.append(RuleLine(line[1], False)) + state = 2 + elif line[0] == "allow": + if state != 0: + entry.rulelines.append(RuleLine(line[1], True)) + state = 2 + if state == 2: + self._add_entry(entry) + + + def can_fetch(self, useragent, url): + """using the parsed robots.txt decide if useragent can fetch url""" + if self.disallow_all: + return False + if self.allow_all: + return True + # search for given user agent matches + # the first match counts + parsed_url = urllib.parse.urlparse(urllib.parse.unquote(url)) + url = urllib.parse.urlunparse(('','',parsed_url.path, + parsed_url.params,parsed_url.query, parsed_url.fragment)) + url = urllib.parse.quote(url) + if not url: + url = "/" + for entry in self.entries: + if entry.applies_to(useragent): + return entry.allowance(url) + # try the default entry last + if self.default_entry: + return self.default_entry.allowance(url) + # agent not found ==> access granted + return True + + def __str__(self): + return ''.join([str(entry) + "\n" for entry in self.entries]) + + +class RuleLine(object): + """A rule line is a single "Allow:" (allowance==True) or "Disallow:" + (allowance==False) followed by a path.""" + def __init__(self, path, allowance): + if path == '' and not allowance: + # an empty value means allow all + allowance = True + self.path = urllib.parse.quote(path) + self.allowance = allowance + + def applies_to(self, filename): + return self.path == "*" or filename.startswith(self.path) + + def __str__(self): + return (self.allowance and "Allow" or "Disallow") + ": " + self.path + + +class Entry(object): + """An entry has one or more user-agents and zero or more rulelines""" + def __init__(self): + self.useragents = [] + self.rulelines = [] + + def __str__(self): + ret = [] + for agent in self.useragents: + ret.extend(["User-agent: ", agent, "\n"]) + for line in self.rulelines: + ret.extend([str(line), "\n"]) + return ''.join(ret) + + def applies_to(self, useragent): + """check if this entry applies to the specified agent""" + # split the name token and make it lower case + useragent = useragent.split("/")[0].lower() + for agent in self.useragents: + if agent == '*': + # we have the catch-all agent + return True + agent = agent.lower() + if agent in useragent: + return True + return False + + def allowance(self, filename): + """Preconditions: + - our agent applies to this entry + - filename is URL decoded""" + for line in self.rulelines: + if line.applies_to(filename): + return line.allowance + return True diff --git a/venv/lib/python3.10/site-packages/future/backports/xmlrpc/__init__.py b/venv/lib/python3.10/site-packages/future/backports/xmlrpc/__init__.py new file mode 100644 index 0000000..196d378 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/xmlrpc/__init__.py @@ -0,0 +1 @@ +# This directory is a Python package. diff --git a/venv/lib/python3.10/site-packages/future/backports/xmlrpc/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/backports/xmlrpc/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..82d0098a31a30ca60282dd951672b4f2d3717309 GIT binary patch literal 195 zcmd1j<>g`k0!8-fOf?|=7{oyaj6jY95Erumi4=xl22Do4l?+87VFd9jO+O<)H&s8Y z*vQaQzn~~TD>b>KSU)o-UpF@~FEKr}NWUyKuS`EDGfBUovLquv&sfjUK)*P%BvrQ{ zF*zHkqF6tzw4}5sRX+*HFUT(fYOl!6DJn?TkB`sH%PfhH*DI*J#bJ}1pHiBWY6r5v KmW%JVJ!e)6pRoSw%wXjX%>B{z{ z9fh3|&r}{*+Ev&k@oZ)H(w@Q|iCdMug}qXiU9fTOtL$6aU)XQN8cDhPVBx`+V%0t? z<{ns8MvVU)tMK3}v8r)1=H#6I&%_D`0p%gbat6NE+z~4rb_NS0PQEbe3>7}$3>QA= zY$_aaHW!XMTMA>iH|}gL9CNl6j^o)0XM5oxXGh^-XJ_G&r(@0o&aThIoL%mt>+!;4 zNbh#`Aic+Z4C%*_-s{*%+me0)>3z`e8{wgY+ZLqewq0=?h3d<~)w{{;hIJbO;kFCqQBa}nu_l71QKY3CBsm)w`pGp`_h z+4(TiAC~6@w@~Oc0(0Ew-H)NHId|^%{2kyFu8#A9^Wq)6 zfw=3u*mmJ?8>2Kv%D2%S+1@cZsEkl_C49uJTau)N9MS74B>E z?sC110#9bMwmqd3>W}`;mQc@prQ~@6R{*TbOdfJyR<(L^QF4$0Z#jw z+1bnXa*)B6SMbJ_0Ql}V>^W7t?p9lyH-Ei!)x}HaODmOn1e4uXP1v*r$+KM2?=;&d zz`MF}Gtztj{n{!^yW%dRFVR1M*RIsA0`>}evs!iM*&*mcwj-=S_Z|D_BA_WxVnj4Z zQ?I%6D|Pf*ZNZ+ay*6J`=>FH1Dr$Kijk&SndUf{IIdsfydC3jh;e^SXswH{#hw--UnbLyWQc6b&Gxoa{(SnSaW}pUjjgBMLTGbtGnTrc6 zRe?l5zUtP487}=gsa%d^SxNw%0Jf3PER;MwN$Q@=71x?ONZ=Iy6sb9)HY+fD-LFZJp!Z- zhwzA9)(u&5K}enOwp|mVWS2c5XQN{%tx_vFy+I2Rm($;^6Z4y`!(<+5lhJ6A~NV!JkQUs`s*mkmlH$Qk^nb|R|! z5R~uVzyCF5L_SqM_o@5$%Rk5<_h|&n48F`@lK0Ls_yGoAWbg$9^LVZ8&qV4pe)rfw zH&!s5Siy9RLfkQ(IK(MS1O$w+Ft*0-cVe7lT?50?Wnj{X)G-|E#!T$4F^yie(8201 zuAW<2knYvN4&?Mx#UfCrSo|d9N$JJfdNXoyg(b(G7Sd5acxCl!_Z{F{QRcD;On^gN*(t`|0 zO4LCHY_dAapxGDA4mpemU&c?WAo`?@TvG9F7Xpz~oo3cNf_4N#yW@WUl~y6Lai9fZ zHWDJorbn%wK=%T59M%3V>nBwqsFtC4uM1GlxYPJ4;vFzKA?&d6U<*J^8K_M_9h;Bi zmGF;)&Gd8ld8A*xakz=Mmf)@QxSx@NCyB3p5}gsj5$&~6k~+@d1OoC0h$=0EBh#9r z_NVyWV`GV^K+*we$9q6d_MT&qU@aQ!`f9El3ucI*0~1mbun|b9h>;x9CQPaaMhXhO zg>2IOS>Q?XeiNbq1=SeK={0!A@Zc+ao2VS%nWcEQYmTLGbCOwY1nqMS4FbVf1i4sD zEF^>Gy!F7rV-GtAkDZX;EF&kQU^MAlt8Pj8iKSY#e$9_NrB&a$R$Ebi62d8j20!V! zSY0?E<_VFoTi_RJK3EJy^CH#)OQrf2Oay6$DV#0&wmJnsyP6S^is$i^V^KHOO_iyG z?vahiop{|sL(Fy4+p~tIUN_Z_x^>&S6T20|HA#ATE9T%0C+5Vdjgcl>)6m?YpC3W+ zCh-F}o`t*5Sh@oD6sf_TAVLRA`>l7)C99P$4uIsAp=`r&JnhD09iQX zc{7bLi>sQ#t*)8J*>V~`uYsVAMC@@O$3Wjap zjc*EL;o|6hE$O0e5>-I&Ror39gtO?Ya1D1jT%C$MD@a8_*|ufe=1HHzKgQW>g7Eth z0bUq_DOt@YNnPskHOymj%~o1-8o3qun0k@{2V~UL)J1Nz52;Y4CpegzqGXK$voRF* zO_Qj!0!Jnuq45tP5dk-d8ED=z*9?Slu=4l<#8P=02a@mAPwN)J?s%TS^P}P0Ezgo` zhQkSR3IcEn698q)wOKlIV5+F6QEPfJv;1rwU4-(jdY?n8fO~5eiQKyJx-n`^`x)Y| zo&lL+Q8W(4Vq@E6sd~5$g~Aeqc9%?<+M9#kXil9*6V-VJ(t*)Dl3s?mQSz{MQ|f8v zc!mK746_S@zMq*zC^B9kj`)ch7J^D`V;-Z%Byx04w85p)b+@R2;WF_lju6SB7EaRn z>>njD<!c4kS(UZ7Ytv_Z!=zvFs?a4c|hZCiu1$^>Dqh zX52A8is975aXpm7?i%V6a@-AA7U`I@MqOmA9liWyu~>nqHVgRgv62Bm*%*vq(of$v zC?J#~5~|Cr^1~a{3%U7a)T?IjyuD65dEa$f@1@SGXzNFN*2yRDyUxUWsuQjGMDIHP zU)qTo`|f?~-oOf^XPtcVzS|jpFLhSYnrl7lmt^nKYa2Rm(oSQ4ecL8jXBZOR!k%sw1MwoWL!Do`@DrF>ljESQ4Z>sGaPCuSK#R z37l`1oef33n;}G7jW#x+CB3$RXYcSQG-VhOGJfn27J}~4Yfex(NW)>=F&QH_y&Ioy?3fT9 zeQE+wv@!Bija?JtT{kDjb@uG2=_hU~YLeKU0rU0awUv5TQ(P!R9rqTR67b)g0fcJO zNBta{1rZTOhkCAxWGP3ItgbMaW$*%n7a6?7;AIBFp!P8)>%Mu$t}$rRY>CNAgZ%Cx z!nFqxO6J)_I+@;*wp#wB)A4jX7Z={xhK(Hdu*>gpOyvx6Cr-Vx49 zU@+=)xaf)3gej0b+25RBuXEfftR&4W*Lv3xZL1v5o8n0h2|fAs)K{u6h27V)Qnm_elqFmUZrdMQdm2CQEP^%>ckq3SxK!ok{iN3CH@3gjVsdCv z>W@u#VR=LVDCI*eimk*{$}w&k)lFJNtDCZ_*jk4o4B`@28Coo=V`v~UA;io~68}fz z)AvwFtnnc9lu!slFDv>`S~wUfDOFlMBAQpoNGUBNaa8@*A#M!nj%doF9N_Se@etEIJ=mPklo`5xxD}C{9&TWMd$z6jZ5$qY)3HI<*2I5YE#g`HJ3W4a>Fw$M42<_tfy7bOI3F zW?V$4j=tb@{UX757?DPQ1V$HMeXmeNyj8JEk3mP3FXP@1_o!0XDys?q+N#XsuFNb@ z&klO-C+A>^eDqh( zM4TA+ZLE=lB}Cjz4}xeX(g~1lK5e6%t>dexi`USYl2b`li@e*8KhSH>iLLP`QIo1L z!zWoXer^~+*9ZzFdkbrHEchXhd( z>X6tS(-QH5NC33N5*d0SvzWj&iE9eiG_DyZhGmU$JG&O=I~p-`bNkc~%JXx&R&B^b z8^xBR5P?JjW1kOkr39nWrWszQwCP@38%$5`j7$| zN|*_u_8gzBo{ zi)6Cuwb&;xmp>tr7&wt1dy_97<Lz({94eK(S#=g#K4qH;a3HNDnxJ$dhw( zNcT^~+#K{>d1nas2Hip2%j4eAg5eB1n^4cNJB)jq@ZM%;3-WAsHzU0Td3fE5`&*rD zxWCQahV*va=XFO=#&%~1%Gl}d#JvZQcc=3J^6qkXA-x;vUCwT#_qcnI-ivp5we{86 zgXd(!wx7KixgC^VMF;+s+z#LnL# z%(iE1&@f^#fLBD}-(pK&rl(FxiqM+(P**GMfE5d`zfxO)Pthvv+Y4~9ps^fIK5bx& zjZjJn4cem1tY3pUetAVLV>)O(j4^#+;-o|mMD5&1{4*)hr%fsst^1~F zy`7Dx)8sB$-j`n^--K^W3TVSFifJ5Y88wpCMjwfM-QZ}gu64NkvRq9UcRTw-v^WHeXnw&Um&@QYrC_^4F*W;Sg zQx6PVDt$Yk``rP5Jo=Cg;9c!`Do*n4nLf@;KJf z6XIdBQiTr|2vs!E>F48Csh4&dTS7s)TCR*oGBc)w5CC=pmOnNd9JRW$t!cKji1+ui zwOm9}kOA9nr3_)7jax@1j`ryJ4;)iqpUYW2=W$S;JR&h(!Q@(NBH;y$n zLHZBwMB={&_X})7J3aF=0u)~u0py~TfH91aZ*CctC{q{c5mBS94J0gf-SV)6tQ+tI z&()#z&zsUyS+t}M~eVMVjIQiD?+{FH1uiMsH;3jM4q<)w1nYvjU_LY`BN z!HIERqgKN6Bzf`7%NM3+alJ6jYyTxM!39uvjn%Sz=8RSw_XS}X<0vw7Uc}Mf{lSbI z_ec9s)S2Dl;{fIIYu6Nz#Sd~)Iw zyvD&p0@}AmDIf(Yz*S9ZMoIUex3`Ax2*Ac_|#O95t`+TFU{s!;-O$I%? zQ3}4uZrqGKnoHAQNWPuZB(1YvbH{KQzOa{XW z1|vP)IJn_pkgvnfv!u!xk4V*n83w;)k-s3s&bbQF-BH$68!XyhT7h>iyz=#I#Jlvk zJ9W^T7?()40f8-g8I&d{Gn%!K!Fmj)pTGiO$Wwz zPU%WN!ht4PYaM9PTye=j$SVjy7Zua5w@srsis4Vj+(ra_9?Ww+`khovxyS_F`4lca z`9Z&?sDaXc39zcakGzfTopUnCU*CpP9}FIWkDa70a5( zukDYRcN#zM6l!VHm7IFt#*+^JAm~_ffsYV&*}3o&f=)u~I|keVq@nK!eTASq$vMz* z$aPn6rH*5dvllv!yo+6V4s;uOKU!hP#ST5^LFD800PgFZXwr&XN9fqR-_+7`eEl0Jf~hJ=RAtE>^CcHcef+` z1kxv+58?R^cL&lFNIwZC^^~8BHepoY%f16$8r|r%E8~bweYay{3r+Xd4ACkC+cP|S zL{y$fL?dzpD*$H{3JTd;BRaK_QN4==F8$D|=#?g<8z}>`yhNg^H;x1voaq|WBK2!9 zL5r>eTPEPQ%f-b)sjMoiD2*+s*0sv!YNh1hW@(;Vpge5exw^ugI(8)IN*y=L*qE@Q z9eFAx`0GL_9+|@pF7V_X=9e7`*s9b;bTG>`5j=~CXhNWEpgu%GQ^L61x9Eciy)tA9 zXqI6%TQiq;iq07f4C%DU4CeG(iIw`o(Z@$KenL!%aEU=T&R@rMsidxZxJ|(QzM|gj zKtAJVijm5f9N6zKLhBQmB;gs(q)0=->dMcxWf+p@D`o67s!FY1%gl~+G2cO&M#Znz z#e^Cea*oE92x%||O}z}TDf(kPfuAr9(gySe`fLSK9D7Ce)y?%7SUm62iE$^)j&bUk z7Gap#5&M4QTOa^HBtTm9DOi&yL~kN0X8{;e(9fb^_45qI860Eqa}3Tf=%E1?_3iht zX{3pHA=jJPq~W$E3CeaUrP(I7M}3sRZUkU*zsPuxn*4qk0-B@tMbxQ2hP;iPZ8f!J z+7RRJ5n92Y7UpHBFA;rap_jKLQ}`;RjE#M!pRU7#O-Lk9h2( zQaOi-D^SP8a1C+bZc|+Yad})jqE?lp(GE?n>2CI;ij!!LX_H!Lu@{IiXdhl z5#18{v$aYFrXnMmn-NUOWBXBLvnO-Ng7m?EM5GB90heW0b~gzrU3>bn>a<`5zN9dCRe zgAS0_aqp+tZ#hJ`MIeWsGw(xYX~zlB@HU(vK19%uA<+Uom36(Lr*aK4d()*uL>qz} zE&>J6Io#+4t)BxJ(8Xzu+LyY)&c+)%+Iqb;e_QY4-R8(|Mnd*YiJU0p8YV(O`Hh6k zlz~@YCQu~??OjMKu0y5NmkAI1MabgjE;x|Ik0aO^j+1zqYE8_ktiU5)M%4j5kJM(l zXAw8678G+(MZb>S{+M4P*J4+f`azU%Ui|>V*~ZXZ3BDLwNu~FWY71Rlw?`I`8#W5o zYo{2z{F`A%hl@k;w%Fd)z#zMy3L;$%W#>=M*xHH++ktMq8&5wDsox{u(0*&cNzQ~gA9Y;U?BYvsCC#6>VGhh_1HgTOjiFLR45!_$jxuF zTLzF3Zf~IIn_&^ib7J%yXXIDEj=XLC!{LqkhrCJL^3W$V`a`z|Y~-Xxuf@5}UbJ9l zi`|A+N2W44e&`#fUc=j(?xb40L$2}eFEfz#MaX+M5Mbo)lYHK*ncD9r11N=UCDA;J zq#Gc!&MivEu12z!@Rt~)%bzB% zzt30)@S1%EKBB_}pQ0QAr|J#zN)P50t7{B2?^MkyvH+ix>lahfj|coE>o2 z&|-TpAOxdzwtav?{TfQ@fx|k7`XfBu5CHYR@f6jnU&U4ZF@s(;O0#8QaWJZ|o2KZM z2TSUz4{vF7+K-3~K|3WU0mSSHsW>|#tCt1SpsTb9%bTb; zqUo~N?}08-*vzf|1jSC@HP4?P-MO*WNqk%W6#@7xgHJP%X}QkWe_$Ze+ix=V9~t~M zga67v5bI6G{wIS!VDP^f{2_yT48FqPPZ=~PiNs{l`O|ptbwD5QG9sc$>VuXj4aZ_D zoq}Il&dNbsL`_m!u9!YST5FUNNM-O#;YSS=)4{)7La}sqa@!wji=D<#ts#KrHeZYm z1i2_@7_`a1=*g@F_Y2zYgWYxhI4+Hk#-iE^s{ zPRN=)6|Kx41t22&$f)n=EU&p9XY;~8#zXRcZz~c|-C`Y1#00mNjh+y}IkKs@7+20^q44UTEy<0a}!;ZFNoPC|f*@pGW98 zkwhF4*g|TiDR5lFBn+elFyDgjUFRZ^hJ5MK;)f!zdi9vj(_=sM2!K)Gdog7(Xbwjc zaoJ4|aZJ*P!10TI@1}I#JZ`l8v7M*!Q-=^>3+7OSZx?vB1dg6*lynRSo77-oZPAwD z#)6GgFL-1P!5y=wq62?$qK9@_Ql&EWb>)`BciVT5XuQ2lELg2Zwh z1ieALVD+og?ahy{@hn=d>GaO7#`H!-ywDURpGAU$t=GWf00L{MIP7eJ1P00pc?*`K z9kF#23L(fNcnVe9I#*2l@C1$=*hYwRrDO|VV!G-5A|goR!Ii2Tda2W!f_)S9VW5bF zU?$Bw&Gr)_EqEP6%+J2aBY5;Ky+Bf-EaqFZ+O*&UJ0zF~d{QhxcPrK*o z6PRod+Sm#ftn`0tJ<&-!*aV7TO^M+%hl6XF({X^{Kx*odBS=ssmAO^!wyp$=GNzfl|5@zfdlkxMnwB8ePNOl$KzOdn)=Z$sXyWnLJn5X^{Sk@Sh zhNC(0frQZ?cp^2!3aPOI+O{RO1yR-76xJL%9H)XU{zQK;O zu=0DXTr)uUj!OBz_*(RB%ot!=?2* z7wn$psvk~>j`4X}XxvC>o$8{6wH3s8QGS~^Qb;5?5qUwa1VmwgoaL$?0aos-I6rF1 z&qSCODA;^#7}n>`xsJ#nTC#w*TUQIoY<H_eLDxQr%MH5JGV8R-&4KH42KKb(1&~ z9JG<7xA672I_D(d`HOs8W4BUOIH$m^#ZVtXEe5d7^sYdKl3wHXBV#S);F*(N!!Z^M z$y-U_tEn8^&Eihqf`vQg8je${r<~lnaXYh?yhDHD{t{KPv?$mgIigQg^FBtTYtC&k zy$1O9S3K+OuXMbd;OYgOGUqtu@bpD;I{{uZx+B897i#nxCEpGj6!Q41aGI)0G4Q5` z=grL;&fE+Stg4Wm0O+C0V1)f6DM4_HcsZ`!Hzsbm7UQT35ORVj`p(By@stC=jA-mkZ_77wXr`O zw%|0)@THbcRX+oY&^R#h6jnbrWEURp_vGQ@W5*7|I{`bZ(fLmvKIk2O3Z7nDd*tH% z9TOU(h(D*YL4talQ;h-odQrrbWVV^sc_GW_$07QlG`NIy-qUuxtU3)?wb5G0ELFlj z&TjJR7em&q#63p)1ZA1~8iVgb0Dm!R!a}tYk>4NC6@|T|zJZy)ow8f8*t3o7@lnT1*fnn4q%h#+m6CaAWFf61>}DKpL(;(uYK z1`H{yO^HJKO|fVaKkozr(nv1z-Y_8$(epCSb-(Ch z38-I_83I>%^GLYbU^jFT!_ezFKw~h}t^(}t( zL&r+TxcUh>b@PunvgDlkjP?ao`^Z=Ei~cx1p{~d~heRDl&N?|Md^T=@pDsdN1rNiL z@r^il+rYU_kC=HoAtPqoPQot4J(N0)ea4WNu7#s^wNYNylQ0-HJy26};DP27dOb(t zB$-JQc^YgubGgmR!Ksm|JclAc#;%;7w2wdW$O-95-@G}eEiQ4`lX#w5YN1?l!F&9E zo|}Vd;Z<+JYGR-v7C+!Q)j+-j@@MI9PxAmHF1PAm9euYurD$z*vEk>)^9XlWe^ zh^=M=Zbotv7_ISr@FhsB+S-?(p45U3yb0upBupxk8)R_RL!+dZrFVlNp=<%wi42LJ zT6&Pq$pIVxUj|9dK{9=i_ma+m=JLX9BCGc-$%pSo~Kk5GnB zIV6}EG6gsg>I2M~(mTXEH(L98F!aN{91IGk91L1x^zm$Ictb#S%pp0BqUMpI?axH& zG=8BLZxc~O_lpyf`^GiQd0@@aO8Gj3ec3TY0bW;(Ngk5sXdZ~%5F)&wv8Lfz32cDt znlQ92k_cKfb;pos!5DbO-T~G?XN?8UVuFroqW*=$)f-q0QbB<-%EdV#gkmf(YUOPZ&vX)bc2m5w@rsvip*FALmw zE-iOA#;L#*kt$w%XA6Y-Kdhh1+PfxP0CjF^bFe$GnI!89O$#`8w(4wXRhR~xT8#rM zh*aGi5MovM*NS24ZQND&5ulDo*w2qKc$@)fOD7=|J^F`PkC+EGHR}OA)y9K1KE$dx zHewZ^j)49nP@mAg87ghmqpSx`-CdPYmodZ2K7uzJEsY8^7z*FvXnmShZrRCg;G{zR^^Cr7 z*LJW|yI*!^^Q1z(D|;~TO3pjnaUClR1v{;W<*4F4I7lu$8ohD6<52T=J=1)wkqyQZehe5o7WQF!L{UKoC+oU68I$-;;$O&(ChkJ7RdM4k~iS+!s|@~ z@23{is}q{nt|ipT*JH25ZkYHwidJlbN&<;uS|rK%1A5^H^{#wU0GhiRSC%-|m0x3! zOSR@_rzS5=PhXjunVR);5c6 z^v5-G8=k@DnOy9v=kTPTOmW?k^B>>*WkNO(NSjCDnR>N;O|Q`g{2b|LG-!RGSs~M- z*A%;6J%?e&0rJ$XQF$+l1yP*&naEft>_U`a!Sah-RgO>Q4(yUwtBUo>&!U3xv}!$^ z>KW#|z~EU1Qd>r20VWiMBX7BL?(lTT&vFDu&@>Z!gt-TZeqh$yIg9d6nk%-y$YBFF zR&Das`pd@l=4iGfYa4+^(aptN9to<|^wHK_&z24)w~!<#%#+>>nM<1=AgH41 z1#;nt%1uo`&>vdE+9vUE=Hneb+pCDco68i%8#Mc>Z_U865~u#uP3#GRK3x`>Q1Gc^ zxP!$eRC4h;)p>~B#(7vwJ0_KNL>Wmz#kU5(uLbiejuWVY)M1fo05x%ZH(Cgb=jz5{UdfY zb8uA;>DT0y#|~i^(|yaznvHF3o!@-3Z2;K$(EvP)1PvT&kUWCE{X1fq$vpcN$9>RL zi`gvxNgw6P5w0;@CD!8@3Yb3@ct_sXc`1$($28$gC>#U;-xvnm45ZE@@CSIV{A9#W z?gl$crDqcJY^?e?Gk0`Fc!+AqhklKnLA}c6c-9!kG=cNnj%M?N^HIaxU9*6qitw95 zK?ktm+Do3X+aPR^u%&tA38Ae0Eo|I}03JAmG)_EldKtU;;I|1Qi6||~aP)h-G1!Dq zZ&~Q%gG>uttVt7G;IwQ^aR3D!HbHPLwFxS15ZzFyR)?VaKD3tL5gD|xI~G?6AeKod z!93L@^2@V35WVC+2y_smPkU-XtXZfr4Fe0lK!Im5D6^qLmpBeD9ZgTmxcb)ROEa^x zqlUlPyN-3T-oq2^ae=mH@XS27^&FiF)OI4_<9-gqPOZREo}=4H(>bV?!;tTjL(BEM#RG$>?XP0pxqh^2N+vjIFM~nF41$eDy z1OaUhQUS{d7;guq#u*x{)z2bVAor*v7?2L6RF?qd?{kp3(BUBCWJUbrF8Q3yO>Ww@ z;Pl!Y_Ew(MrD%&re-B6BgcOtwlxzm%AQ&?^7L;Q`=SIWNpy9e@A&sfA{|K!ghbrEW zV~ySkcLiDEs7weqS5ovE?0_-ot~MAcMMnmlD}<3`BDP|v?To=y9Nr!{?_hh~#2u_( zX~HAS^bCRiLw0&Ppx-*@I+g{%Gbo>$PMf3F^jrB5PudWuF%aHjhEmLhlb43$(2b-orX@~U*DzJ0Ge2frXBz~;%J25@< z8LECP2h)`jmv^X|M^`7n4&m$p8x}Sg$Oh{;CoZS-jXjX_4GhUCyeCqWW{v1*i)lTP zXW20xgEs)3UV@Y4lnHhtL3#5e=HdlDl)PLTYnedA9}#5|^5q?U8bhSvgrU*qTMy#} z@lJP3OKLCQwi(RvSx0|g!Gpc*?*n+4jgyuq!Q67tRP$6&iaDg8=3DyI8hGWjh&vs^ z+n=F`QRDpRre5Z5`uhZy1$=wsI^iiZs579vr7ki?5lpvLc$W|)A@rQ@ijzlBL=oj?zzk+~KxZ4r<(#fyl;}c7d3j8) znrx@$dOX?PTUnM5i^gdLf%;WKC3WqQ@$#eUjCZOb|VCmg2oGBp|&# zjh{y`tyOE0iD%-_Jp^aZ1%6+N!0#&=oI96tQ_x~)jYTHVSY+i4w;{i8rujj>($@mn zR#dseQ2o9>%xBvy02UG|L_raQ(X^Lwo)yk)(`HL>WQ^+(Tg=7Kl4foEdGpusrNoot z_;8h1AJ>N^28PpFltu3g`GjNiNktLWae&dy(yA9Cg06QzQDuKn;usCSQp3#5^R`~G zhuH~e^Q&zmTAyN{7&|tKZ=&IgYy6sHfMOa*DcRc}z!jK}G_3R@;YZqFdL_8{VB6t!U@4`+daAuVaB>gM-qlvs{p0uq<%#_Qi8kG~H2R$l?bI*7laak1Dwj^$C9O`9 zxq?qz!e4b&x`Z7syb~~LlXM_FMR(uPCjIzP9HSLkka_YQj1W+kOAp8(qYL<{$8O8C zRL^`G2|^&WY8-kjip$|2#d{K}N&LLm5rhZWfHS7ynUQu3D0v1!njl=zZzNnYQe}=G z#pZ;E&yq+Sgb7C|AIDqdyQA@MAPQ#=h#N7ikgN^?VKwbkR~A%(o1f8lQeKYA_LqJ0H0g#5TYSR zyA*-%phQmIgG{h^R68V;qD`W6J;{WNE=dE)tkc^*W*4XxYXy-eh6+Ie?}W z(VN;U*2^{$=I{?Wn?mt45|H&EfuVN(ut<9YmT;!1oWKulH8GPuU1G*hIRPx0QT z8GMGpZ{TUTRCs_l=!>A`9*S%oEE0zogc`K(;Arha<}9p27970rX%fcBDB(VkOThqV zHny~PSEyP<$_C~;6tTss#o=oCe%02AmV(4L=%B|htC_0Vo?h#2`Z9ijkdly4 zew6R2bzslCxSOgxJ3?;`5pzQ4JPB8t&=GWYnAlAI4gnx8=Ae^lX$KG&8lAv$!sp>1 z<58D<012)ZfC;kQ96A`R7?2uZ7s1mEq8N67$RSJAf;QI9*zmZzUQ)FcvLSwa7StIh zy_fM-UDj5{nHk)mpxJN>KoK(lKL`)o0KO1x==gDVEg3`FqViLY z5a<|PZ7&*4PEVi5-)LV?;f(Z0eG|v;8yUP;7uZiCbBQ2u(+fp6bBhTXF}(vmkHb7j zCzn#p!+k7Ea0d3 zR4a1FK0jQcHx$d6Z+=djy@OlgSbCO4^s~k-VU6JjLdV!bMUtykeA~J*XdS8=WESCk zxgg6*ySB-@oV{{p zdgd~0IKhq0)0bw8FHJrF{P{~)E>4{b@4hfS^TK6j0FT|pTG3N^ttAX!4ov#%*7eLI6HM^`pomXRyD(R zk{XL8qUAW1f5Lme#kQx;>VpO3J8^Qjm!H&*4SGwgcnL2tdyT;-8T=%JTMRzO;HMe< zIfE4I%Q4u=U<-q-48*@lIM6;OKgfVy7~1FH1Y=@pKFJtYIeLC1H5JlxbC9=rl(gT6 zBlr|_cC&O%9snJiY^LQ9HGJfc8>;*io}J@SJJ_0j(~ont%W5`nz!hbr|;#ra$z=2p`bSW}B`6p~IOy$%0!ThFtKb+x*(wp*q z=}YNkK9e3nn8@#neNBD@zoYrSd_H$Ln>G)VUSuz(x2Cu6+MeH>AHvhQ`~jw0c>)7OfSv>oqN9GMsx! z4mA(z+)GKE3^$w5o41oqlNJTKEyy(6!f1*%1^PhJ6fHJMH)+wLS)>JS(V{?6pl(ng z&9+D(z*c|1@7#N5hNNV-P53JBO{|;d~08&*grk_MKl$rT!ytdOtR9 z&fx2R-b|(3)NIN%T(fR8%vrOMo=rEbS*wwm%@};1u4fy$*<8b(wdLNb4>a<#`NrVv zU}I=@s4+Y{+$hWz_v{{do~u9B7@r-F^6Z`6i#D?L zeY5-I_wm`s<#+$=e))Z3_6hktFnge#m8&ObpL{3P9JEs2!Bx*d{irEB`{cW+rg1mr z9&-oW{QJi2Q|_QU^nPmAxs-B;-NO4Rx8QwlJw1B}_ap8o?nk{*+#kmME_V#~W8V1E z)83(VYxW49?RNLz*&go*@;rn4$J}w;kK=uMb^`Z%-F>*<=j~sb#FHYPJnrttll{`l zv$%i4J%IZI-eJ5yiu)(sgSbEF9r2z;8^`eEDc8Xh$D5ER$GwvKxm)J945epaYIX{F z4!MVs=kU5Yd%`>7KD}XX&5P9xkub*kYi%gMhjMC7v|q3D_54b+8q``%|Cm$BSL+qu z*KeCu@0in44yy9*1zyu-W)5OTnna7}tL~~UhW=g-q??tx-|Fq_B3kb0r1EaBcz(ck z(7AJ$F6X`GotkPj8(uSrCJ;|`3)gh!H>C8s~IWMa0=2zp)#@-h+5 z@~Yda9`}P)^a)ohY_`HFV270FFJm%1&heYquV2kyx^Nv2b&pGqtjLx^zT>VoD~(ze zGrH<5cuh}XY25r=g=>XsIcv!@%Q7@Pz=!Lj;)R+YcnbOMVr7_9cakGL3)t`jr#0^^ zw|u`ghwiTUl?BgPt^_F4^qu)uz23U(znafKS8^`vHSM;9$I;5azQdwTP9Cba(B;LJ z9~?U7oIG*jM6nn*9`~ypcYAWVb@vf(>y^fwTXF6kTYc5JcXaibGf{EfiKKvZqdebI z9sql?n9o1o?JmGtpb_wf4r>6svU(9viE%mjxZb=|F4vm1pj@8xz50AnKj*u{PNQB)an(^T(GEGD+`N!U*h{RR?L(7Sr0%O=*ySMBeqmxZLcSf zr6*jID|-31_eM}dz&H@pm3$7cf#An_0BM3(0iJ&FP ztUQpFra(t|d1bC%tCpiIx<}4Y=SGs5!{g_@2@ZV%?{r=OkBTn=_w3Y8m2nD+H>EZX zA7CJD9K%{WtHoCV!O|B#mnTV106=d}C&_vbU0D4y0L@x6P%VGi6Y7-!st@qeP+v-b zIEJsu2(Bi(fW8efU)T{cHFj24`~Z~Pt@*&f>S8o|U8t=Di#;IQv&`E8r58LJsFvh% z8MKEKkPGujPyvwKZK+$y5=U$Bo**4?4~sF;U9t!^-t_9r(Sm3I=tHB=*dJYzRV9rd zCd~GAr#2tM)$6ZoLeNE6LSoe2Lxhm$kG)WIUO(-;bSSCNtM^yH(d=A740P`ubJ{nh zn&wJl&Qra0`JgInH2xfRz5w3XYTm(2gXABJd*d~hgVilL{XmiFp*zi%vxq@EV8;nb z>B}6CNjEKoA_kMbNk0bSttt(_XYxPeXgSztqryqkTjz>Yw|~4beoCwFowy0))0MpU zoCXn2j91?}O{ziy^wmmz#k-(XOHEG9RorMBimq$w>Omm?Vyr9PsDTC~EE%ADV-W3tOyJPB>LcBkfJZo|Sd zC{vIyy>N7;S*x~OuUxM|GKBnHG{ZD7z%L`)!`DBLq+=?( zV{AZu-Za+I&2-0Dz;7pgK6P_!&FWYiP`5V?wLdW3bjKP`ts6gX1nEwyW38KOsoTSy z6cjA0a>+=gz#LokJ6_psLHKpcgj<2c$qG2$T&Y@uyh%<{DalP~pin93G$O`VoQd)T zBzU6QWi6MsmdS2_roide-FOu213IS`LWt)Ds$|&?vVj@rW!>CZJmNp!ETy?og%d&JZydaG3Fz z0ajsNkB|cl3;k0Q=Az~RYH73>TC5}-+dkGX!#93t)ILn9{eY1B?$lzd;Y}_1&p-Fd z6o?g9!k?n#(SHpb|1D|gYRQDjU@8d<}7Fl1SVI)E2d0AKRqH6fl~ ze;mnArsfTpW6byMAoWv#-}CqaX4CCk*MxWx^e72ZKk3e_mMoxh&$m{fl}CU?VYW73 zgX&1Y(Lj03xw}|{tf{y18yBvt#_CdD}#%4K<4F#k3m3PiV&tDNYXvidi}lW*Z(QtPc(K7#_+BswbE` ze~P25wi?T)zm0pJb~ig^8|H%{Gyh3@Vh8=AbV?LZ|1>V*vY;<%x2BYX;<|RZk|uWV zP{&_HKA$5Vx71<$RPpWmaG}oN>jy}@)T{w3pXnO2>4Efs>F#$eHv=n~1uIq7&EYEJ z9)Q(o09RQz?+(IpmUD;PVf@;#Tov3Aycuvu-CcN+cgNh__#JfjxR2p?$Q^h0;&<5H z=RS_#f}6&y9t_8O<&5)@_5hT92GDe+cJDZrUrQ~bCB||i2t&;86Z?ZEDc7l6>Jqq! zEkd!nlaz}1ujVf*rfRSrEqWkat*#z}2aU+Ip=)(pp5L4ZoTjIZO>plD@Jeq*uVBYFELYwdqG!A-HgHx=Owhe|XJB zKZmdX43Zi^ybJ>_Qh+&9vtup~xx50mL29|+Bp;g7_cJTO{PB}yi6ozXXvh5t^O{;U zTTL&tg)2gI3wL2~<++s_de$rltIMAMp%q#*4yYm;R?jjy%7oOc2O;d(X7M4O3p!-Y zEGSDJf9YAPrMOHVS0xB1qa}vQ2*F!9T9?$utUL+Udo401f#h^;DqLvLKG?Lx zZ1@m}BE5OLiS@+b6LU;#S(6#6*M)gH6(^`Qyok54Sj69A=tHh}MxDh9sb4t;=vXV% z@JD+b%kvXK>fIXbI8cO1cu-Gl5!0MHvhTzLh>E~0nAB1O%M{(lgA9b0*?6!5^JtR8 zD=n0g?v;{`O=`tilu_t5x=)WB84*MT+QrHpaLjFEOzMcn+B2!~Abqc*s*4)G=4)7; z3T#=hDo|h0gG(yGAdgY{5M}{}&^Jvb=SpNuoWuGzn=G$|kS3*&ZY2;Vp!fPUSImtG zw@1rTA;t6V+|PA&;a*VHDA~XI6~I?w#Y|)p84G2bgd9ag?3kuM5mDe=_m4-`$AhvN zEqG7mF<|w#Ps;IGrK>=#V7Z72Fto<&99IjW>(Q%vECy5&+miB_)c_J8Cq5C|`o*Z=9>86yGX(~Hg`6|MY2Zm!l_G`csvfF`M)`I;`8io%fEiv%Lhab716wi54M zG1S5Cj8%Yb`qz=)C*R3_4)nXva?nG+w-wt)$kV9e9P6TJ*?}aol2W;jv6Nba9M(xK z86EQ!)Fl%2_Ful%rRa%K`?C}D>%E8}kd-JJTbxP07hn#*qIF0C!eqv2j3nH|h^@5< zE+=L*1e0UM<+7T-f zWr@D$Ig3HC{OVMsh?D@c^DDr?Y6%kZ6#Pe1APKZVxuwORQBP_^pT@SEe%s^GGtC!f zY75N@9gFQ-Ikd?kWiE)Uw4-O2nDqAlWo87Y4f{7`97I?5S3AB zlezsKF4~iUNSaHKF+VVGm}}Nr1_aAoG1MN&o*A*xWSiMeYD4Ze&9!VNJ8!IIVZq75 zo&$WtH{)6#SZi5?D!gQ+g6!%!Bej-;>wN^da!H=d2WjSkW8GZKeLdHFO8?#kuJSL) zZP=Ts8|gKBZD1`QqyyCNW;=FgVBUn)i1?jhU2cx`yqoG|HwO4@lZ4c++y`k$V2&&* zLG?(C6c2r)qWnd`2KdJ$NI}s70#$lgNK77d8B_y_Dwb_gCh_v`SWg05IzWJwB#}R3 zV2lJ4%Ikm`T7$F+6O~uG+_7a9wUV4~5?joE3dLdMBc(dnfu-U*73&U5Wa3(#7 ziDxX|!{~AcQXw1R)Fey-W?_nq4e@8zno0RyNb5HbmfTkP>f1Bdi=y|n;Kx+8IBp;* z?%e|^>PorbE|F(8vfc9)hRzwHr5tsjYYnf`>`nnhLm1tf5O-r)ITJB;p-KU1McOsjP4!gAkX-4F40FAmS~CKONVKa(xzg*VUt+ER)MqKZj(5GeidOq> zM0|VL-lUj^6DO&^G6%V{8ce`^EVL1dBD|&v)ND835h7#U@5=YEdx%&d9;MQBIMmB( z)fo)AXagL)K=WnmmbdDQ;2GwiAJc}X-bN;|UWHj-ydwZavfVHjHMeC|)k}DZAf=Q~ zYd|5BH-^$!$?VW4NR4*!A#0_lq_=xjE>Ha7H8F$?;0Ii@$h2^n4e7`Q-JL{W(0a3; zR=0&f1PI^|2qbyXfVtnleZ=!WOSChJj|13iJ-P+`E6D3OSih+UFS zfG`lyjJqv%z=PEoq>L0=8`is&gCtfHRlJ3|#!g4{wujP-flcHyrIo_zx39;(tJpQa zWiCqXeaT3+__}2E;w2r_+d6KX~t`aTW3H=rxlUJ}cCguuYl!5%SJ&@@aH2ef=PiTP63n7qS;nwqGMiYE0i zBk^Nl7Ttm%AFGmIWu`Zo^hoXgj4vT!jH}$OP3*n{YK)^0hx6%HZmOjWlmQ zRK1KaST8)Mu5ZoBoG8V~ns4A@L6l1P+Ah=Q=5oC){F?a9w1+z8252$#Bde3yG#5mA zekXO?!djZEpNEu|g_Jfbxw6onvXHLQ-^MC3SQ2s?WV)|sZ(I5|k<&68S&`Fnl+;+( z%|K4eb!^IMart-AN{1R)uKizQXo!X6$@hLFavV=XvzmC-NrGA=f&mZSd;Xa7{LQsv zPN`JVQ6KNU_u@@`+l7&{+L%GoEapULv2dDehmjN0`$P<67HW93a=?q$T<9?xMs}+n z@-WlY?>>_%kkGI&ua}NPQdy~moCSPE_yyhAM9F36qFsDUHKeYHv36Qc~^+hIMV)7P~D@?Wk?yGqARRS(W z1uG9h0Dq>rFI@o8%HM-g3JMnQO#rp^zW}uBLSNKLBA)gdZ)U_A3QFKoY;uphaB)#E2p~q*(#8 zShK@@B9Tj!stBz}ViRft!)^kv8jQqJ14b$FN&X7FgmFa)#EGyiJ&kIqUJDeIl=ka_dhVDNz(|?!TU3rubKs41y*#47s z?(+e36{u;UJM9Az)a@A16YI|(^@%rpw%q2#1vh6zsE&qu9qm_M*bZM<#wc_kC%RbB7Thv|#c7mLQl4~=O! z2&ao9>I6HHFPF8EyIh7$U%tIksnaZkyIdLJ8&%jmOUS3Dn7qK`6(+ASnPx&ET~VYH z5kQfgYWm%!vvNh>wt5=L2EIP+mUarGu|ZNF^_MknOx9ubLm_2MiHRMR%Dzf!` z70?(e1b{kDMix_+0?tcZ_-G;lY7(hls1n!G8` zAd-VRG3v;n6#+CU+9*J&9hwpYRzS<(xt1^`Vpt=#jKt(NE~BBhXx=xb+Ln;ET^6zadfz1eDyOSU&wQ4Y645!n<&w;=!K5jS68# zSXr1^fTd>{W(>ri1;wnERty!I6)!ZPvaytLXA9zoqx3s12Rcv<9r1sQRDdxl7JLN- z$kULSVW}t><~J;(ee~fVS=w4t-yEaXuA6-vH=JKZGosA&9f$*3Bc8rau?_J>W!h_e zbrE@YG~Vv2`QL6ENrIN zauB{QLHHV3{Yy|Vu#c|&8tNEzb8IWv#d59=DJz_E1M! zKom@;@aa8-oOUCNL^|yXdOFr@o3P5(wK)VH-^7j>o2{v23sDDh_6Q9%aDcTG))|D$?aJjfO*OsfCy0noY%#z2#^o zVB`~9p_URz$20{YOAm)-CSr@PHbQ)zF9zj>o*0$mlYwN^VIE5W5?jV>DH4Qmkn_NU!qkZTRG&t%|pP7aHFEOn#{t$SZ@L?LZNhMwLmZ?U_OL3jX^~rVy z4lfw0-vJ*11+-R+nl1qQ!I@pS*2W==37y!B_t{uImG_8EjNT0h#p)}89FX7KnDW6< z2I`MiiuvjGXasb}1qOhi2zYb3VIWvl-$dVQ{{wT~ems8b98vvo`X7CZ@1KAZ21qXO zj5-`54TFg&2dN)JHR{KaKm{OX2w*YB{4PpiXKYISGLxT266U)*O4Kj#DOLU0geG7@ zW5X7>P(O!f<50aNW?~GhX3-Ks;osPU?U>9z#&Fy76b7qF!iD)gxuof10Y}rqwO?Wi0pLjmkHCHjp-IF$xzjo5xK11 z#{*a>NR2?uYE7BUVooMYPY_XE{R|UMmHP8c{sIy>ro=NZXw}syM49*ryr1BFvAw(r z|2yVMVExD==BG>L?iqwPVg&=7zb-dB%+t5q4|A)D#JnKxE9I!YB+upuT&gWVlhAnp_iaITLI*+ zq09*mnB>`pFT{G#e&!KFMSF4Wj0^fzl#-;lTXa9Q$OqtGDYeApN0|H)lF+_8w=yr3 zZ!f%Q40wVeAI8FRrM}PtpsKxvyTh_Jy}+E`<5Zm!{vocH!LF8BkYN zCnT8cMg0{f1aZZ6Qyfdr__`|MExh%xQ(aX9ZRv<=5=bUfdu6_!{XbtM`S6g~td$|G^k<6i5KF(mm6UWPB; z6ZQN|4!riF6~kiFZpjq*}XU<7xmdRs8n6 z%Xe(Sb814-w`fj>`HSbv=iYkz!q+aGgPiak^hHb*+B{OgZ8&iK+*J)SQ2wgTpe}+< zn5Bf#Y=yatW$d!QcwYT&X2#tN@4!w-;jov)byZl1sD>7Zm2RfUw#YHUUGOJjQxLx- zJBWPJZhGjNl?A^CpM*dX0WOnXjN&4j9)%5QEHeg%vd^$TZa>kxKDygUV0O{oi9&?C z1)M=s7%k5JVndCh+$NZ)XQE4_yEy%~kcCH&NJoIvrZr$?O*rGB+J2(=_TgB325)<@ z*b}_ng1wo@w3C(NK)9Ji)3_q0t%}YR0JPM+{r*c&naBZq|`hfA@J}Y;wKgjFXB4PcSp0OV_^X}mr!0$-C`dtlz~&qXg|Gk z-};O6iTEhqH3e~1bpIX)(Uab(e}rd|M_(&%{Sy@yUxPmBFwr3f8}i-*tam{6XT;P1A`iiA6GYlIz6ozHV)rtL%CkW5!PyB) zNz@$UXTaeRHOJkUHtuN7u@FH=>X4cKh`sK*BGntX1!3meX#MppufD*9UDUowQe+Ko z>@vhzkyJ&zzra^qO|1`piC1qi>7PJdH)oB{De6PbdteP_|8$R~qmr_p6w+AR;?8Tk zLs*ic%@SQd!Pd42codg3k^aZL`X@}LnRI(4SAqn;i5Ks(Yh$<&Q$2!~VS@a`&f8WY zt@yr*Z{H`4yEFLuFCyus+SptcZ$aY*v=j{W+Cx z3fW5o8+lnFT#1F)qKX{oJ9*>g0P1%8XSc49u=$>&n0ic~=XVtQ!Es$gdIz#2#nJYQ zIj>rQ1R_k|!6#mJJkz{dyiVH7*)?RU4a^Q!?62d85qUn(U|d_zFxlm?$rxjz*E1Atm>aK`5qGixQwR39E192 zO#V5O%S^UFTt0#sFr;51xH-sU9CoHXv zn+|XrJ7IPc0^!FpVRX@Uv)#adurh63Xb*yk=^WU~u?Y$w;b+6Jmt_Jlwbi2raw2bL z&5Z2ry57$Rxh42LNfE@1laGuuu+J5tGC2 zAkpItwOD`^M5I@2%8Y`#vAazaK~RWVQ!B3k3CiI;4#jRKq7%tbm(Um;K%%J&glldm zOSVc@TL_n~2KwkS!Z<&XA-D_D(_!J-g)e{Q!pwC5+4VQyJ|CumTVWvvsJAXmU%LLL z*y@Xeq1o~Q?)r!}Z8iQ^STSu1{}o(8y#twqT?1_k<;%#p)K4?l?<0w&xZh*uthUT= z1-n87cF~mo8bNOy`E8q~Tr)imaN}-r8(#l{*?#6z04}OVdF;bH`>>yBdIn$rG?G4cZ`L5e*HZJKqpk(> z3Y0ee#5LzZL&fCMRoWONHxLeMwd>96SKd0`sP zht>@kts(iKzA=_Yl;BurjO>IZn_un})O&6YZn6TINKYOqo8)`FGoo6qjeH}I%vVI; z20MdpdT)yTa|d9O|EBah1+uUUGBK2_O-tI|-5FKCAbrYrc18Ue=*bKFFY|Q<*K)T< zAV)bP&Q%SqHuH2ZLoFvET z%m>RwY)`u}bM(C%cc*T4u3bF$-f`#V8q7&eXEE>@zuj)f@>;(Y`tt|f@DbPtgfWen4N7l4(XbI@! zxUt8yKq2?w=@6_~I^82zqsAECng3;cFSO4+eWawMtL-x^(j=D9g+rtZIR#_lQfe7A z!8P}SPV9wY5cFYyd%U25+MD7TA#){OVt*Fh0-yjeElM;dD99j$!%SyzDNCFup5Qu% zuZ`~jz6e`@>p%MeXhriNN)1W*uWT>>h;pWzTN^^ife{p7)~rFKupdt?S2{y$sEr{E z%M0lBa5EE(Y>bLZG2F>_hA^Um)+$D_%LQd4zGHj^+>dprXYba=m(9%DNN1$=Gj6^! zf-#P`gPlTWgyRK{54B&r3No}(rIWsg{A#P1ropjcSxiq7trs6VBoHh9hxXIJAOfGp zpdG-QC?$Bu-M534CL;Ev5lE6~20mcf4b;v|A~?FJk$&RTJUn$cSg49>af;m?k6R$I zGYmVn>l#g&;dFb?Dc3!HDhLFf@N;Sk_wBu>-1_NLu6`Q-)KBM&d$cM|ga~u6*zqJr zco%&wKZ^+jdtPxI(E?wE!@7U*t;LHlcL!13yvX3<)?J)%rGntR{~UiXpO3hx-2~mL>v+W)-NZ zX(qNU<5V>?Pz%t&pYm-k?)Ly#tKM~hU0fc@r14-Yy5{)|x*vA1{|Qm{BB~gNr^ckx z_8^~zSqlD2qOkt6?<3F;*Yr@sxA`%)2~f;|kWt{7ArB-s4$^^#b6-CKcN?lwYmPsZ zQWE)^S^(n35Dmr%q4PKkNE?J;Im`g~VOxaZ4JnY)>SPfE#<(8nfs~b9ur`1@BU{W4 z3=yscQxnWYKyVuEpb_F8Xw!NT9&8{Fu5GY#T#-mXkYM<=vdAC=+--VxJY4q zf?X3^Nx5;8O!f8!Z0byH*f4^mX|e`$&Tkr<7HjL+K()d4bDxH4-QAs9uPU|8!^hjj zQ**V2(>mGCHcm~+TS?ow!}IdN#mg_h@`{HTlOD8a=T9vQiYx;OjEEOp(ebw^;dzzH z%P(s#ln*oT{4{)}k%V$MBzyr;^#H4)W|;gClRPMGm`5jYj33#$W<5h1coFp`Wi z^!;y<<#&llw0%(e9y84%_bUz^SA4fk{zl%^8GMCV_RHUH8pbtjTX8dDY|}=!Y-DuH ziOG#;Jq=NG3&)^@!EklHRlTH-b#AHlH=|3~4Ek0;%i7z3PpgLFk@((I-n#Z`YE9x4K+J+Z zAqc4{0U_z>_JLTf)QiNUw7WpmzNEc6vgpzIirO-wPnu@zhlUtF)!TOI{)p?uPU4_d zZPiQA_(lk6dm_N?n<$(hsKHs&SIRRzt4`1pwd@T79VHPs#7x*6((NavPfnmj#e_n6tIkxq~ z^4~kYOBe?CjX-8=AKqaATl4qXNqPsO4oK5DNg?V!1%>S$mq9(O_gs{?_q^WP`;ngB zu==;qd36vO+lL`ZS~;v-!b$%pZgk{z#7XBE>jf@mU{fV5RXn`~o9oh0U%4fT z@uNQsq1jkKlq~{<_>9|>p5+yyvmr2p^QBM0VlD4*=%qR-@1RV}J8)*iYQv67+pC+s zl~(6E7V7_8R3e8hnKu#62>y&MPN-Y9H;us_X0O77%RlCaEzG_vS551S_^${&W)li8 zdP{B}46I{AU?&5W6+$?^6uxnc0-jI+E+B3|><|?L;22{_ndg@Dvmm{}n$LG2j9gj0 zq+MHCmykY0YVH<-=a|HY7WVGREP$BAmfMZah=oP%JdVXh5-hlL-Im0+B_Se&xTKE6 zV;7tCoU?T*a*(hY$i#ikIxI#1(*da0IBbZTdQx3d6?NfBD-rpy+M7pHPu@=$}btjPEBFw>|;9) zOq311VfGZzMBHua46fQ|&&6!bk%P{3hcKA{2q^LW>xGlH<5|`h4Ee#H9NA4ny}M^$ z(dS4D-r=*4nH*q3vzEvNTAI*A4*7Vv0s`)Yd`AvR(c8bu{BI%&?{IuGj?Vu zqxi0h%KAR!R%h___aWI?>H-7KgnQ4os(L)v`u@8|`#rCE9(jE{;D;bE6gB_CidmR?} z0donca+*FvfUNqf%(q3Q$s(W|J^!UNW?J0$IR+Dt3T{RrvIidmoIKkGMR~y1PFf72 zxqDmdV$lR%{50F+5>s~>!YKngVGrM*!Pn=k^kUCL0=pQXkqbwX?#_tB+Wz@o9NK}e zMsk(r!e`~U1uT9=pBF@CCK)1L-4DBbOGtrTRp+loXJzjg_oX5Ik#SBOX>Xtbtq^gX z6HI>)+67pX(1Ub0wn-?E`YlwjWsOC5_?w(?3jVSqz_1W3(%!darV`ZwJJEJpQ7)2H z*3&?DS$R&!ci2kg5JJ#i6t%}URW#lANl2rE$GwZ|!p+&Qkjk>|M`s`6;%a|UW33WY zi&tCXJRV9mc`#~k2#8QO)ZZuSvX3+(ox|5BbJTQ*TMS8Ya7H^Eu5j0*$2#gga`v0z z+_#o8^!DIAu9kS>hftd6PTokwVMa}IV!8C~y>UE6Pn?CI|8L_hc~}?We+N$8(b#xutKgsYU1H@T#CGr^jo91$%ogdO-~WIoQ7UP>CW)_UF6X~M2@-BE2;iSysb`lfxQ<3gKz{GOE(h|g)=dMiZHR$!-Ie6v=i|V+xWR|3;!k_ z7><4^KD;9wWKXH>oCt;$dIPFjz*f%_;&y<7aIj}||C()+_1FlrD;VlU6xv?1nqpmi zw^N1cI9~igw<2u6!U3yz#(lEMKN+i?c?yJ)lNWz@olGVnlJTy4 z72BkJO8?8T)Bi4>I~&-ACgEdqUDyovqB`sWApk;ejHx8ficR_>5xw$%&)Q$YKdysW z4*z*eZ|WeUlSpC4;d>gEV~)sB3#cv?++!NIA3588CXXW!=34yUezFr&t>E7*ASlCw z5{VOlaUuu9JW565dhu1+U&5mX^nWnGnF5>-g)yZR$$?@ZK{%q{mZD?GeI0s1%S3oE zeuZ6;@~;n)gDLAZZqDMY>c~uTL)q>pd$Pg<+X~W8Thh`&6sE+jmQpE<$apE6b=1FL zv!h!}E7Dhe6wM#UiSTy;qkTA`~PwyD+LozdUq+_d}yh^ZQ|EH|+s#c$BmFSRQCv Nkb1H4?PKeY{ukHpb7TMj literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/backports/xmlrpc/client.py b/venv/lib/python3.10/site-packages/future/backports/xmlrpc/client.py new file mode 100644 index 0000000..0838f61 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/xmlrpc/client.py @@ -0,0 +1,1497 @@ +# +# XML-RPC CLIENT LIBRARY +# $Id$ +# +# an XML-RPC client interface for Python. +# +# the marshalling and response parser code can also be used to +# implement XML-RPC servers. +# +# Notes: +# this version is designed to work with Python 2.1 or newer. +# +# History: +# 1999-01-14 fl Created +# 1999-01-15 fl Changed dateTime to use localtime +# 1999-01-16 fl Added Binary/base64 element, default to RPC2 service +# 1999-01-19 fl Fixed array data element (from Skip Montanaro) +# 1999-01-21 fl Fixed dateTime constructor, etc. +# 1999-02-02 fl Added fault handling, handle empty sequences, etc. +# 1999-02-10 fl Fixed problem with empty responses (from Skip Montanaro) +# 1999-06-20 fl Speed improvements, pluggable parsers/transports (0.9.8) +# 2000-11-28 fl Changed boolean to check the truth value of its argument +# 2001-02-24 fl Added encoding/Unicode/SafeTransport patches +# 2001-02-26 fl Added compare support to wrappers (0.9.9/1.0b1) +# 2001-03-28 fl Make sure response tuple is a singleton +# 2001-03-29 fl Don't require empty params element (from Nicholas Riley) +# 2001-06-10 fl Folded in _xmlrpclib accelerator support (1.0b2) +# 2001-08-20 fl Base xmlrpclib.Error on built-in Exception (from Paul Prescod) +# 2001-09-03 fl Allow Transport subclass to override getparser +# 2001-09-10 fl Lazy import of urllib, cgi, xmllib (20x import speedup) +# 2001-10-01 fl Remove containers from memo cache when done with them +# 2001-10-01 fl Use faster escape method (80% dumps speedup) +# 2001-10-02 fl More dumps microtuning +# 2001-10-04 fl Make sure import expat gets a parser (from Guido van Rossum) +# 2001-10-10 sm Allow long ints to be passed as ints if they don't overflow +# 2001-10-17 sm Test for int and long overflow (allows use on 64-bit systems) +# 2001-11-12 fl Use repr() to marshal doubles (from Paul Felix) +# 2002-03-17 fl Avoid buffered read when possible (from James Rucker) +# 2002-04-07 fl Added pythondoc comments +# 2002-04-16 fl Added __str__ methods to datetime/binary wrappers +# 2002-05-15 fl Added error constants (from Andrew Kuchling) +# 2002-06-27 fl Merged with Python CVS version +# 2002-10-22 fl Added basic authentication (based on code from Phillip Eby) +# 2003-01-22 sm Add support for the bool type +# 2003-02-27 gvr Remove apply calls +# 2003-04-24 sm Use cStringIO if available +# 2003-04-25 ak Add support for nil +# 2003-06-15 gn Add support for time.struct_time +# 2003-07-12 gp Correct marshalling of Faults +# 2003-10-31 mvl Add multicall support +# 2004-08-20 mvl Bump minimum supported Python version to 2.1 +# +# Copyright (c) 1999-2002 by Secret Labs AB. +# Copyright (c) 1999-2002 by Fredrik Lundh. +# +# info@pythonware.com +# http://www.pythonware.com +# +# -------------------------------------------------------------------- +# The XML-RPC client interface is +# +# Copyright (c) 1999-2002 by Secret Labs AB +# Copyright (c) 1999-2002 by Fredrik Lundh +# +# By obtaining, using, and/or copying this software and/or its +# associated documentation, you agree that you have read, understood, +# and will comply with the following terms and conditions: +# +# Permission to use, copy, modify, and distribute this software and +# its associated documentation for any purpose and without fee is +# hereby granted, provided that the above copyright notice appears in +# all copies, and that both that copyright notice and this permission +# notice appear in supporting documentation, and that the name of +# Secret Labs AB or the author not be used in advertising or publicity +# pertaining to distribution of the software without specific, written +# prior permission. +# +# SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT- +# ABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR +# BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY +# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# -------------------------------------------------------------------- + +""" +Ported using Python-Future from the Python 3.3 standard library. + +An XML-RPC client interface for Python. + +The marshalling and response parser code can also be used to +implement XML-RPC servers. + +Exported exceptions: + + Error Base class for client errors + ProtocolError Indicates an HTTP protocol error + ResponseError Indicates a broken response package + Fault Indicates an XML-RPC fault package + +Exported classes: + + ServerProxy Represents a logical connection to an XML-RPC server + + MultiCall Executor of boxcared xmlrpc requests + DateTime dateTime wrapper for an ISO 8601 string or time tuple or + localtime integer value to generate a "dateTime.iso8601" + XML-RPC value + Binary binary data wrapper + + Marshaller Generate an XML-RPC params chunk from a Python data structure + Unmarshaller Unmarshal an XML-RPC response from incoming XML event message + Transport Handles an HTTP transaction to an XML-RPC server + SafeTransport Handles an HTTPS transaction to an XML-RPC server + +Exported constants: + + (none) + +Exported functions: + + getparser Create instance of the fastest available parser & attach + to an unmarshalling object + dumps Convert an argument tuple or a Fault instance to an XML-RPC + request (or response, if the methodresponse option is used). + loads Convert an XML-RPC packet to unmarshalled data plus a method + name (None if not present). +""" + +from __future__ import (absolute_import, division, print_function, + unicode_literals) +from future.builtins import bytes, dict, int, range, str + +import base64 +import sys +if sys.version_info < (3, 9): + # Py2.7 compatibility hack + base64.encodebytes = base64.encodestring + base64.decodebytes = base64.decodestring +import time +from datetime import datetime +from future.backports.http import client as http_client +from future.backports.urllib import parse as urllib_parse +from future.utils import ensure_new_type +from xml.parsers import expat +import socket +import errno +from io import BytesIO +try: + import gzip +except ImportError: + gzip = None #python can be built without zlib/gzip support + +# -------------------------------------------------------------------- +# Internal stuff + +def escape(s): + s = s.replace("&", "&") + s = s.replace("<", "<") + return s.replace(">", ">",) + +# used in User-Agent header sent +__version__ = sys.version[:3] + +# xmlrpc integer limits +MAXINT = 2**31-1 +MININT = -2**31 + +# -------------------------------------------------------------------- +# Error constants (from Dan Libby's specification at +# http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php) + +# Ranges of errors +PARSE_ERROR = -32700 +SERVER_ERROR = -32600 +APPLICATION_ERROR = -32500 +SYSTEM_ERROR = -32400 +TRANSPORT_ERROR = -32300 + +# Specific errors +NOT_WELLFORMED_ERROR = -32700 +UNSUPPORTED_ENCODING = -32701 +INVALID_ENCODING_CHAR = -32702 +INVALID_XMLRPC = -32600 +METHOD_NOT_FOUND = -32601 +INVALID_METHOD_PARAMS = -32602 +INTERNAL_ERROR = -32603 + +# -------------------------------------------------------------------- +# Exceptions + +## +# Base class for all kinds of client-side errors. + +class Error(Exception): + """Base class for client errors.""" + def __str__(self): + return repr(self) + +## +# Indicates an HTTP-level protocol error. This is raised by the HTTP +# transport layer, if the server returns an error code other than 200 +# (OK). +# +# @param url The target URL. +# @param errcode The HTTP error code. +# @param errmsg The HTTP error message. +# @param headers The HTTP header dictionary. + +class ProtocolError(Error): + """Indicates an HTTP protocol error.""" + def __init__(self, url, errcode, errmsg, headers): + Error.__init__(self) + self.url = url + self.errcode = errcode + self.errmsg = errmsg + self.headers = headers + def __repr__(self): + return ( + "" % + (self.url, self.errcode, self.errmsg) + ) + +## +# Indicates a broken XML-RPC response package. This exception is +# raised by the unmarshalling layer, if the XML-RPC response is +# malformed. + +class ResponseError(Error): + """Indicates a broken response package.""" + pass + +## +# Indicates an XML-RPC fault response package. This exception is +# raised by the unmarshalling layer, if the XML-RPC response contains +# a fault string. This exception can also be used as a class, to +# generate a fault XML-RPC message. +# +# @param faultCode The XML-RPC fault code. +# @param faultString The XML-RPC fault string. + +class Fault(Error): + """Indicates an XML-RPC fault package.""" + def __init__(self, faultCode, faultString, **extra): + Error.__init__(self) + self.faultCode = faultCode + self.faultString = faultString + def __repr__(self): + return "" % (ensure_new_type(self.faultCode), + ensure_new_type(self.faultString)) + +# -------------------------------------------------------------------- +# Special values + +## +# Backwards compatibility + +boolean = Boolean = bool + +## +# Wrapper for XML-RPC DateTime values. This converts a time value to +# the format used by XML-RPC. +#

    +# The value can be given as a datetime object, as a string in the +# format "yyyymmddThh:mm:ss", as a 9-item time tuple (as returned by +# time.localtime()), or an integer value (as returned by time.time()). +# The wrapper uses time.localtime() to convert an integer to a time +# tuple. +# +# @param value The time, given as a datetime object, an ISO 8601 string, +# a time tuple, or an integer time value. + + +### For Python-Future: +def _iso8601_format(value): + return "%04d%02d%02dT%02d:%02d:%02d" % ( + value.year, value.month, value.day, + value.hour, value.minute, value.second) +### +# Issue #13305: different format codes across platforms +# _day0 = datetime(1, 1, 1) +# if _day0.strftime('%Y') == '0001': # Mac OS X +# def _iso8601_format(value): +# return value.strftime("%Y%m%dT%H:%M:%S") +# elif _day0.strftime('%4Y') == '0001': # Linux +# def _iso8601_format(value): +# return value.strftime("%4Y%m%dT%H:%M:%S") +# else: +# def _iso8601_format(value): +# return value.strftime("%Y%m%dT%H:%M:%S").zfill(17) +# del _day0 + + +def _strftime(value): + if isinstance(value, datetime): + return _iso8601_format(value) + + if not isinstance(value, (tuple, time.struct_time)): + if value == 0: + value = time.time() + value = time.localtime(value) + + return "%04d%02d%02dT%02d:%02d:%02d" % value[:6] + +class DateTime(object): + """DateTime wrapper for an ISO 8601 string or time tuple or + localtime integer value to generate 'dateTime.iso8601' XML-RPC + value. + """ + + def __init__(self, value=0): + if isinstance(value, str): + self.value = value + else: + self.value = _strftime(value) + + def make_comparable(self, other): + if isinstance(other, DateTime): + s = self.value + o = other.value + elif isinstance(other, datetime): + s = self.value + o = _iso8601_format(other) + elif isinstance(other, str): + s = self.value + o = other + elif hasattr(other, "timetuple"): + s = self.timetuple() + o = other.timetuple() + else: + otype = (hasattr(other, "__class__") + and other.__class__.__name__ + or type(other)) + raise TypeError("Can't compare %s and %s" % + (self.__class__.__name__, otype)) + return s, o + + def __lt__(self, other): + s, o = self.make_comparable(other) + return s < o + + def __le__(self, other): + s, o = self.make_comparable(other) + return s <= o + + def __gt__(self, other): + s, o = self.make_comparable(other) + return s > o + + def __ge__(self, other): + s, o = self.make_comparable(other) + return s >= o + + def __eq__(self, other): + s, o = self.make_comparable(other) + return s == o + + def __ne__(self, other): + s, o = self.make_comparable(other) + return s != o + + def timetuple(self): + return time.strptime(self.value, "%Y%m%dT%H:%M:%S") + + ## + # Get date/time value. + # + # @return Date/time value, as an ISO 8601 string. + + def __str__(self): + return self.value + + def __repr__(self): + return "" % (ensure_new_type(self.value), id(self)) + + def decode(self, data): + self.value = str(data).strip() + + def encode(self, out): + out.write("") + out.write(self.value) + out.write("\n") + +def _datetime(data): + # decode xml element contents into a DateTime structure. + value = DateTime() + value.decode(data) + return value + +def _datetime_type(data): + return datetime.strptime(data, "%Y%m%dT%H:%M:%S") + +## +# Wrapper for binary data. This can be used to transport any kind +# of binary data over XML-RPC, using BASE64 encoding. +# +# @param data An 8-bit string containing arbitrary data. + +class Binary(object): + """Wrapper for binary data.""" + + def __init__(self, data=None): + if data is None: + data = b"" + else: + if not isinstance(data, (bytes, bytearray)): + raise TypeError("expected bytes or bytearray, not %s" % + data.__class__.__name__) + data = bytes(data) # Make a copy of the bytes! + self.data = data + + ## + # Get buffer contents. + # + # @return Buffer contents, as an 8-bit string. + + def __str__(self): + return str(self.data, "latin-1") # XXX encoding?! + + def __eq__(self, other): + if isinstance(other, Binary): + other = other.data + return self.data == other + + def __ne__(self, other): + if isinstance(other, Binary): + other = other.data + return self.data != other + + def decode(self, data): + self.data = base64.decodebytes(data) + + def encode(self, out): + out.write("\n") + encoded = base64.encodebytes(self.data) + out.write(encoded.decode('ascii')) + out.write("\n") + +def _binary(data): + # decode xml element contents into a Binary structure + value = Binary() + value.decode(data) + return value + +WRAPPERS = (DateTime, Binary) + +# -------------------------------------------------------------------- +# XML parsers + +class ExpatParser(object): + # fast expat parser for Python 2.0 and later. + def __init__(self, target): + self._parser = parser = expat.ParserCreate(None, None) + self._target = target + parser.StartElementHandler = target.start + parser.EndElementHandler = target.end + parser.CharacterDataHandler = target.data + encoding = None + target.xml(encoding, None) + + def feed(self, data): + self._parser.Parse(data, 0) + + def close(self): + self._parser.Parse("", 1) # end of data + del self._target, self._parser # get rid of circular references + +# -------------------------------------------------------------------- +# XML-RPC marshalling and unmarshalling code + +## +# XML-RPC marshaller. +# +# @param encoding Default encoding for 8-bit strings. The default +# value is None (interpreted as UTF-8). +# @see dumps + +class Marshaller(object): + """Generate an XML-RPC params chunk from a Python data structure. + + Create a Marshaller instance for each set of parameters, and use + the "dumps" method to convert your data (represented as a tuple) + to an XML-RPC params chunk. To write a fault response, pass a + Fault instance instead. You may prefer to use the "dumps" module + function for this purpose. + """ + + # by the way, if you don't understand what's going on in here, + # that's perfectly ok. + + def __init__(self, encoding=None, allow_none=False): + self.memo = {} + self.data = None + self.encoding = encoding + self.allow_none = allow_none + + dispatch = {} + + def dumps(self, values): + out = [] + write = out.append + dump = self.__dump + if isinstance(values, Fault): + # fault instance + write("\n") + dump({'faultCode': values.faultCode, + 'faultString': values.faultString}, + write) + write("\n") + else: + # parameter block + # FIXME: the xml-rpc specification allows us to leave out + # the entire block if there are no parameters. + # however, changing this may break older code (including + # old versions of xmlrpclib.py), so this is better left as + # is for now. See @XMLRPC3 for more information. /F + write("\n") + for v in values: + write("\n") + dump(v, write) + write("\n") + write("\n") + result = "".join(out) + return str(result) + + def __dump(self, value, write): + try: + f = self.dispatch[type(ensure_new_type(value))] + except KeyError: + # check if this object can be marshalled as a structure + if not hasattr(value, '__dict__'): + raise TypeError("cannot marshal %s objects" % type(value)) + # check if this class is a sub-class of a basic type, + # because we don't know how to marshal these types + # (e.g. a string sub-class) + for type_ in type(value).__mro__: + if type_ in self.dispatch.keys(): + raise TypeError("cannot marshal %s objects" % type(value)) + # XXX(twouters): using "_arbitrary_instance" as key as a quick-fix + # for the p3yk merge, this should probably be fixed more neatly. + f = self.dispatch["_arbitrary_instance"] + f(self, value, write) + + def dump_nil (self, value, write): + if not self.allow_none: + raise TypeError("cannot marshal None unless allow_none is enabled") + write("") + dispatch[type(None)] = dump_nil + + def dump_bool(self, value, write): + write("") + write(value and "1" or "0") + write("\n") + dispatch[bool] = dump_bool + + def dump_long(self, value, write): + if value > MAXINT or value < MININT: + raise OverflowError("long int exceeds XML-RPC limits") + write("") + write(str(int(value))) + write("\n") + dispatch[int] = dump_long + + # backward compatible + dump_int = dump_long + + def dump_double(self, value, write): + write("") + write(repr(ensure_new_type(value))) + write("\n") + dispatch[float] = dump_double + + def dump_unicode(self, value, write, escape=escape): + write("") + write(escape(value)) + write("\n") + dispatch[str] = dump_unicode + + def dump_bytes(self, value, write): + write("\n") + encoded = base64.encodebytes(value) + write(encoded.decode('ascii')) + write("\n") + dispatch[bytes] = dump_bytes + dispatch[bytearray] = dump_bytes + + def dump_array(self, value, write): + i = id(value) + if i in self.memo: + raise TypeError("cannot marshal recursive sequences") + self.memo[i] = None + dump = self.__dump + write("\n") + for v in value: + dump(v, write) + write("\n") + del self.memo[i] + dispatch[tuple] = dump_array + dispatch[list] = dump_array + + def dump_struct(self, value, write, escape=escape): + i = id(value) + if i in self.memo: + raise TypeError("cannot marshal recursive dictionaries") + self.memo[i] = None + dump = self.__dump + write("\n") + for k, v in value.items(): + write("\n") + if not isinstance(k, str): + raise TypeError("dictionary key must be string") + write("%s\n" % escape(k)) + dump(v, write) + write("\n") + write("\n") + del self.memo[i] + dispatch[dict] = dump_struct + + def dump_datetime(self, value, write): + write("") + write(_strftime(value)) + write("\n") + dispatch[datetime] = dump_datetime + + def dump_instance(self, value, write): + # check for special wrappers + if value.__class__ in WRAPPERS: + self.write = write + value.encode(self) + del self.write + else: + # store instance attributes as a struct (really?) + self.dump_struct(value.__dict__, write) + dispatch[DateTime] = dump_instance + dispatch[Binary] = dump_instance + # XXX(twouters): using "_arbitrary_instance" as key as a quick-fix + # for the p3yk merge, this should probably be fixed more neatly. + dispatch["_arbitrary_instance"] = dump_instance + +## +# XML-RPC unmarshaller. +# +# @see loads + +class Unmarshaller(object): + """Unmarshal an XML-RPC response, based on incoming XML event + messages (start, data, end). Call close() to get the resulting + data structure. + + Note that this reader is fairly tolerant, and gladly accepts bogus + XML-RPC data without complaining (but not bogus XML). + """ + + # and again, if you don't understand what's going on in here, + # that's perfectly ok. + + def __init__(self, use_datetime=False, use_builtin_types=False): + self._type = None + self._stack = [] + self._marks = [] + self._data = [] + self._methodname = None + self._encoding = "utf-8" + self.append = self._stack.append + self._use_datetime = use_builtin_types or use_datetime + self._use_bytes = use_builtin_types + + def close(self): + # return response tuple and target method + if self._type is None or self._marks: + raise ResponseError() + if self._type == "fault": + raise Fault(**self._stack[0]) + return tuple(self._stack) + + def getmethodname(self): + return self._methodname + + # + # event handlers + + def xml(self, encoding, standalone): + self._encoding = encoding + # FIXME: assert standalone == 1 ??? + + def start(self, tag, attrs): + # prepare to handle this element + if tag == "array" or tag == "struct": + self._marks.append(len(self._stack)) + self._data = [] + self._value = (tag == "value") + + def data(self, text): + self._data.append(text) + + def end(self, tag): + # call the appropriate end tag handler + try: + f = self.dispatch[tag] + except KeyError: + pass # unknown tag ? + else: + return f(self, "".join(self._data)) + + # + # accelerator support + + def end_dispatch(self, tag, data): + # dispatch data + try: + f = self.dispatch[tag] + except KeyError: + pass # unknown tag ? + else: + return f(self, data) + + # + # element decoders + + dispatch = {} + + def end_nil (self, data): + self.append(None) + self._value = 0 + dispatch["nil"] = end_nil + + def end_boolean(self, data): + if data == "0": + self.append(False) + elif data == "1": + self.append(True) + else: + raise TypeError("bad boolean value") + self._value = 0 + dispatch["boolean"] = end_boolean + + def end_int(self, data): + self.append(int(data)) + self._value = 0 + dispatch["i4"] = end_int + dispatch["i8"] = end_int + dispatch["int"] = end_int + + def end_double(self, data): + self.append(float(data)) + self._value = 0 + dispatch["double"] = end_double + + def end_string(self, data): + if self._encoding: + data = data.decode(self._encoding) + self.append(data) + self._value = 0 + dispatch["string"] = end_string + dispatch["name"] = end_string # struct keys are always strings + + def end_array(self, data): + mark = self._marks.pop() + # map arrays to Python lists + self._stack[mark:] = [self._stack[mark:]] + self._value = 0 + dispatch["array"] = end_array + + def end_struct(self, data): + mark = self._marks.pop() + # map structs to Python dictionaries + dict = {} + items = self._stack[mark:] + for i in range(0, len(items), 2): + dict[items[i]] = items[i+1] + self._stack[mark:] = [dict] + self._value = 0 + dispatch["struct"] = end_struct + + def end_base64(self, data): + value = Binary() + value.decode(data.encode("ascii")) + if self._use_bytes: + value = value.data + self.append(value) + self._value = 0 + dispatch["base64"] = end_base64 + + def end_dateTime(self, data): + value = DateTime() + value.decode(data) + if self._use_datetime: + value = _datetime_type(data) + self.append(value) + dispatch["dateTime.iso8601"] = end_dateTime + + def end_value(self, data): + # if we stumble upon a value element with no internal + # elements, treat it as a string element + if self._value: + self.end_string(data) + dispatch["value"] = end_value + + def end_params(self, data): + self._type = "params" + dispatch["params"] = end_params + + def end_fault(self, data): + self._type = "fault" + dispatch["fault"] = end_fault + + def end_methodName(self, data): + if self._encoding: + data = data.decode(self._encoding) + self._methodname = data + self._type = "methodName" # no params + dispatch["methodName"] = end_methodName + +## Multicall support +# + +class _MultiCallMethod(object): + # some lesser magic to store calls made to a MultiCall object + # for batch execution + def __init__(self, call_list, name): + self.__call_list = call_list + self.__name = name + def __getattr__(self, name): + return _MultiCallMethod(self.__call_list, "%s.%s" % (self.__name, name)) + def __call__(self, *args): + self.__call_list.append((self.__name, args)) + +class MultiCallIterator(object): + """Iterates over the results of a multicall. Exceptions are + raised in response to xmlrpc faults.""" + + def __init__(self, results): + self.results = results + + def __getitem__(self, i): + item = self.results[i] + if isinstance(type(item), dict): + raise Fault(item['faultCode'], item['faultString']) + elif type(item) == type([]): + return item[0] + else: + raise ValueError("unexpected type in multicall result") + +class MultiCall(object): + """server -> a object used to boxcar method calls + + server should be a ServerProxy object. + + Methods can be added to the MultiCall using normal + method call syntax e.g.: + + multicall = MultiCall(server_proxy) + multicall.add(2,3) + multicall.get_address("Guido") + + To execute the multicall, call the MultiCall object e.g.: + + add_result, address = multicall() + """ + + def __init__(self, server): + self.__server = server + self.__call_list = [] + + def __repr__(self): + return "" % id(self) + + __str__ = __repr__ + + def __getattr__(self, name): + return _MultiCallMethod(self.__call_list, name) + + def __call__(self): + marshalled_list = [] + for name, args in self.__call_list: + marshalled_list.append({'methodName' : name, 'params' : args}) + + return MultiCallIterator(self.__server.system.multicall(marshalled_list)) + +# -------------------------------------------------------------------- +# convenience functions + +FastMarshaller = FastParser = FastUnmarshaller = None + +## +# Create a parser object, and connect it to an unmarshalling instance. +# This function picks the fastest available XML parser. +# +# return A (parser, unmarshaller) tuple. + +def getparser(use_datetime=False, use_builtin_types=False): + """getparser() -> parser, unmarshaller + + Create an instance of the fastest available parser, and attach it + to an unmarshalling object. Return both objects. + """ + if FastParser and FastUnmarshaller: + if use_builtin_types: + mkdatetime = _datetime_type + mkbytes = base64.decodebytes + elif use_datetime: + mkdatetime = _datetime_type + mkbytes = _binary + else: + mkdatetime = _datetime + mkbytes = _binary + target = FastUnmarshaller(True, False, mkbytes, mkdatetime, Fault) + parser = FastParser(target) + else: + target = Unmarshaller(use_datetime=use_datetime, use_builtin_types=use_builtin_types) + if FastParser: + parser = FastParser(target) + else: + parser = ExpatParser(target) + return parser, target + +## +# Convert a Python tuple or a Fault instance to an XML-RPC packet. +# +# @def dumps(params, **options) +# @param params A tuple or Fault instance. +# @keyparam methodname If given, create a methodCall request for +# this method name. +# @keyparam methodresponse If given, create a methodResponse packet. +# If used with a tuple, the tuple must be a singleton (that is, +# it must contain exactly one element). +# @keyparam encoding The packet encoding. +# @return A string containing marshalled data. + +def dumps(params, methodname=None, methodresponse=None, encoding=None, + allow_none=False): + """data [,options] -> marshalled data + + Convert an argument tuple or a Fault instance to an XML-RPC + request (or response, if the methodresponse option is used). + + In addition to the data object, the following options can be given + as keyword arguments: + + methodname: the method name for a methodCall packet + + methodresponse: true to create a methodResponse packet. + If this option is used with a tuple, the tuple must be + a singleton (i.e. it can contain only one element). + + encoding: the packet encoding (default is UTF-8) + + All byte strings in the data structure are assumed to use the + packet encoding. Unicode strings are automatically converted, + where necessary. + """ + + assert isinstance(params, (tuple, Fault)), "argument must be tuple or Fault instance" + if isinstance(params, Fault): + methodresponse = 1 + elif methodresponse and isinstance(params, tuple): + assert len(params) == 1, "response tuple must be a singleton" + + if not encoding: + encoding = "utf-8" + + if FastMarshaller: + m = FastMarshaller(encoding) + else: + m = Marshaller(encoding, allow_none) + + data = m.dumps(params) + + if encoding != "utf-8": + xmlheader = "\n" % str(encoding) + else: + xmlheader = "\n" # utf-8 is default + + # standard XML-RPC wrappings + if methodname: + # a method call + if not isinstance(methodname, str): + methodname = methodname.encode(encoding) + data = ( + xmlheader, + "\n" + "", methodname, "\n", + data, + "\n" + ) + elif methodresponse: + # a method response, or a fault structure + data = ( + xmlheader, + "\n", + data, + "\n" + ) + else: + return data # return as is + return str("").join(data) + +## +# Convert an XML-RPC packet to a Python object. If the XML-RPC packet +# represents a fault condition, this function raises a Fault exception. +# +# @param data An XML-RPC packet, given as an 8-bit string. +# @return A tuple containing the unpacked data, and the method name +# (None if not present). +# @see Fault + +def loads(data, use_datetime=False, use_builtin_types=False): + """data -> unmarshalled data, method name + + Convert an XML-RPC packet to unmarshalled data plus a method + name (None if not present). + + If the XML-RPC packet represents a fault condition, this function + raises a Fault exception. + """ + p, u = getparser(use_datetime=use_datetime, use_builtin_types=use_builtin_types) + p.feed(data) + p.close() + return u.close(), u.getmethodname() + +## +# Encode a string using the gzip content encoding such as specified by the +# Content-Encoding: gzip +# in the HTTP header, as described in RFC 1952 +# +# @param data the unencoded data +# @return the encoded data + +def gzip_encode(data): + """data -> gzip encoded data + + Encode data using the gzip content encoding as described in RFC 1952 + """ + if not gzip: + raise NotImplementedError + f = BytesIO() + gzf = gzip.GzipFile(mode="wb", fileobj=f, compresslevel=1) + gzf.write(data) + gzf.close() + encoded = f.getvalue() + f.close() + return encoded + +## +# Decode a string using the gzip content encoding such as specified by the +# Content-Encoding: gzip +# in the HTTP header, as described in RFC 1952 +# +# @param data The encoded data +# @return the unencoded data +# @raises ValueError if data is not correctly coded. + +def gzip_decode(data): + """gzip encoded data -> unencoded data + + Decode data using the gzip content encoding as described in RFC 1952 + """ + if not gzip: + raise NotImplementedError + f = BytesIO(data) + gzf = gzip.GzipFile(mode="rb", fileobj=f) + try: + decoded = gzf.read() + except IOError: + raise ValueError("invalid data") + f.close() + gzf.close() + return decoded + +## +# Return a decoded file-like object for the gzip encoding +# as described in RFC 1952. +# +# @param response A stream supporting a read() method +# @return a file-like object that the decoded data can be read() from + +class GzipDecodedResponse(gzip.GzipFile if gzip else object): + """a file-like object to decode a response encoded with the gzip + method, as described in RFC 1952. + """ + def __init__(self, response): + #response doesn't support tell() and read(), required by + #GzipFile + if not gzip: + raise NotImplementedError + self.io = BytesIO(response.read()) + gzip.GzipFile.__init__(self, mode="rb", fileobj=self.io) + + def close(self): + gzip.GzipFile.close(self) + self.io.close() + + +# -------------------------------------------------------------------- +# request dispatcher + +class _Method(object): + # some magic to bind an XML-RPC method to an RPC server. + # supports "nested" methods (e.g. examples.getStateName) + def __init__(self, send, name): + self.__send = send + self.__name = name + def __getattr__(self, name): + return _Method(self.__send, "%s.%s" % (self.__name, name)) + def __call__(self, *args): + return self.__send(self.__name, args) + +## +# Standard transport class for XML-RPC over HTTP. +#

    +# You can create custom transports by subclassing this method, and +# overriding selected methods. + +class Transport(object): + """Handles an HTTP transaction to an XML-RPC server.""" + + # client identifier (may be overridden) + user_agent = "Python-xmlrpc/%s" % __version__ + + #if true, we'll request gzip encoding + accept_gzip_encoding = True + + # if positive, encode request using gzip if it exceeds this threshold + # note that many server will get confused, so only use it if you know + # that they can decode such a request + encode_threshold = None #None = don't encode + + def __init__(self, use_datetime=False, use_builtin_types=False): + self._use_datetime = use_datetime + self._use_builtin_types = use_builtin_types + self._connection = (None, None) + self._extra_headers = [] + + ## + # Send a complete request, and parse the response. + # Retry request if a cached connection has disconnected. + # + # @param host Target host. + # @param handler Target PRC handler. + # @param request_body XML-RPC request body. + # @param verbose Debugging flag. + # @return Parsed response. + + def request(self, host, handler, request_body, verbose=False): + #retry request once if cached connection has gone cold + for i in (0, 1): + try: + return self.single_request(host, handler, request_body, verbose) + except socket.error as e: + if i or e.errno not in (errno.ECONNRESET, errno.ECONNABORTED, errno.EPIPE): + raise + except http_client.BadStatusLine: #close after we sent request + if i: + raise + + def single_request(self, host, handler, request_body, verbose=False): + # issue XML-RPC request + try: + http_conn = self.send_request(host, handler, request_body, verbose) + resp = http_conn.getresponse() + if resp.status == 200: + self.verbose = verbose + return self.parse_response(resp) + + except Fault: + raise + except Exception: + #All unexpected errors leave connection in + # a strange state, so we clear it. + self.close() + raise + + #We got an error response. + #Discard any response data and raise exception + if resp.getheader("content-length", ""): + resp.read() + raise ProtocolError( + host + handler, + resp.status, resp.reason, + dict(resp.getheaders()) + ) + + + ## + # Create parser. + # + # @return A 2-tuple containing a parser and a unmarshaller. + + def getparser(self): + # get parser and unmarshaller + return getparser(use_datetime=self._use_datetime, + use_builtin_types=self._use_builtin_types) + + ## + # Get authorization info from host parameter + # Host may be a string, or a (host, x509-dict) tuple; if a string, + # it is checked for a "user:pw@host" format, and a "Basic + # Authentication" header is added if appropriate. + # + # @param host Host descriptor (URL or (URL, x509 info) tuple). + # @return A 3-tuple containing (actual host, extra headers, + # x509 info). The header and x509 fields may be None. + + def get_host_info(self, host): + + x509 = {} + if isinstance(host, tuple): + host, x509 = host + + auth, host = urllib_parse.splituser(host) + + if auth: + auth = urllib_parse.unquote_to_bytes(auth) + auth = base64.encodebytes(auth).decode("utf-8") + auth = "".join(auth.split()) # get rid of whitespace + extra_headers = [ + ("Authorization", "Basic " + auth) + ] + else: + extra_headers = [] + + return host, extra_headers, x509 + + ## + # Connect to server. + # + # @param host Target host. + # @return An HTTPConnection object + + def make_connection(self, host): + #return an existing connection if possible. This allows + #HTTP/1.1 keep-alive. + if self._connection and host == self._connection[0]: + return self._connection[1] + # create a HTTP connection object from a host descriptor + chost, self._extra_headers, x509 = self.get_host_info(host) + self._connection = host, http_client.HTTPConnection(chost) + return self._connection[1] + + ## + # Clear any cached connection object. + # Used in the event of socket errors. + # + def close(self): + if self._connection[1]: + self._connection[1].close() + self._connection = (None, None) + + ## + # Send HTTP request. + # + # @param host Host descriptor (URL or (URL, x509 info) tuple). + # @param handler Target RPC handler (a path relative to host) + # @param request_body The XML-RPC request body + # @param debug Enable debugging if debug is true. + # @return An HTTPConnection. + + def send_request(self, host, handler, request_body, debug): + connection = self.make_connection(host) + headers = self._extra_headers[:] + if debug: + connection.set_debuglevel(1) + if self.accept_gzip_encoding and gzip: + connection.putrequest("POST", handler, skip_accept_encoding=True) + headers.append(("Accept-Encoding", "gzip")) + else: + connection.putrequest("POST", handler) + headers.append(("Content-Type", "text/xml")) + headers.append(("User-Agent", self.user_agent)) + self.send_headers(connection, headers) + self.send_content(connection, request_body) + return connection + + ## + # Send request headers. + # This function provides a useful hook for subclassing + # + # @param connection httpConnection. + # @param headers list of key,value pairs for HTTP headers + + def send_headers(self, connection, headers): + for key, val in headers: + connection.putheader(key, val) + + ## + # Send request body. + # This function provides a useful hook for subclassing + # + # @param connection httpConnection. + # @param request_body XML-RPC request body. + + def send_content(self, connection, request_body): + #optionally encode the request + if (self.encode_threshold is not None and + self.encode_threshold < len(request_body) and + gzip): + connection.putheader("Content-Encoding", "gzip") + request_body = gzip_encode(request_body) + + connection.putheader("Content-Length", str(len(request_body))) + connection.endheaders(request_body) + + ## + # Parse response. + # + # @param file Stream. + # @return Response tuple and target method. + + def parse_response(self, response): + # read response data from httpresponse, and parse it + # Check for new http response object, otherwise it is a file object. + if hasattr(response, 'getheader'): + if response.getheader("Content-Encoding", "") == "gzip": + stream = GzipDecodedResponse(response) + else: + stream = response + else: + stream = response + + p, u = self.getparser() + + while 1: + data = stream.read(1024) + if not data: + break + if self.verbose: + print("body:", repr(data)) + p.feed(data) + + if stream is not response: + stream.close() + p.close() + + return u.close() + +## +# Standard transport class for XML-RPC over HTTPS. + +class SafeTransport(Transport): + """Handles an HTTPS transaction to an XML-RPC server.""" + + # FIXME: mostly untested + + def make_connection(self, host): + if self._connection and host == self._connection[0]: + return self._connection[1] + + if not hasattr(http_client, "HTTPSConnection"): + raise NotImplementedError( + "your version of http.client doesn't support HTTPS") + # create a HTTPS connection object from a host descriptor + # host may be a string, or a (host, x509-dict) tuple + chost, self._extra_headers, x509 = self.get_host_info(host) + self._connection = host, http_client.HTTPSConnection(chost, + None, **(x509 or {})) + return self._connection[1] + +## +# Standard server proxy. This class establishes a virtual connection +# to an XML-RPC server. +#

    +# This class is available as ServerProxy and Server. New code should +# use ServerProxy, to avoid confusion. +# +# @def ServerProxy(uri, **options) +# @param uri The connection point on the server. +# @keyparam transport A transport factory, compatible with the +# standard transport class. +# @keyparam encoding The default encoding used for 8-bit strings +# (default is UTF-8). +# @keyparam verbose Use a true value to enable debugging output. +# (printed to standard output). +# @see Transport + +class ServerProxy(object): + """uri [,options] -> a logical connection to an XML-RPC server + + uri is the connection point on the server, given as + scheme://host/target. + + The standard implementation always supports the "http" scheme. If + SSL socket support is available (Python 2.0), it also supports + "https". + + If the target part and the slash preceding it are both omitted, + "/RPC2" is assumed. + + The following options can be given as keyword arguments: + + transport: a transport factory + encoding: the request encoding (default is UTF-8) + + All 8-bit strings passed to the server proxy are assumed to use + the given encoding. + """ + + def __init__(self, uri, transport=None, encoding=None, verbose=False, + allow_none=False, use_datetime=False, use_builtin_types=False): + # establish a "logical" server connection + + # get the url + type, uri = urllib_parse.splittype(uri) + if type not in ("http", "https"): + raise IOError("unsupported XML-RPC protocol") + self.__host, self.__handler = urllib_parse.splithost(uri) + if not self.__handler: + self.__handler = "/RPC2" + + if transport is None: + if type == "https": + handler = SafeTransport + else: + handler = Transport + transport = handler(use_datetime=use_datetime, + use_builtin_types=use_builtin_types) + self.__transport = transport + + self.__encoding = encoding or 'utf-8' + self.__verbose = verbose + self.__allow_none = allow_none + + def __close(self): + self.__transport.close() + + def __request(self, methodname, params): + # call a method on the remote server + + request = dumps(params, methodname, encoding=self.__encoding, + allow_none=self.__allow_none).encode(self.__encoding) + + response = self.__transport.request( + self.__host, + self.__handler, + request, + verbose=self.__verbose + ) + + if len(response) == 1: + response = response[0] + + return response + + def __repr__(self): + return ( + "" % + (self.__host, self.__handler) + ) + + __str__ = __repr__ + + def __getattr__(self, name): + # magic method dispatcher + return _Method(self.__request, name) + + # note: to call a remote object with an non-standard name, use + # result getattr(server, "strange-python-name")(args) + + def __call__(self, attr): + """A workaround to get special attributes on the ServerProxy + without interfering with the magic __getattr__ + """ + if attr == "close": + return self.__close + elif attr == "transport": + return self.__transport + raise AttributeError("Attribute %r not found" % (attr,)) + +# compatibility + +Server = ServerProxy + +# -------------------------------------------------------------------- +# test code + +if __name__ == "__main__": + + # simple test program (from the XML-RPC specification) + + # local server, available from Lib/xmlrpc/server.py + server = ServerProxy("http://localhost:8000") + + try: + print(server.currentTime.getCurrentTime()) + except Error as v: + print("ERROR", v) + + multi = MultiCall(server) + multi.getData() + multi.pow(2,9) + multi.add(1,2) + try: + for response in multi(): + print(response) + except Error as v: + print("ERROR", v) diff --git a/venv/lib/python3.10/site-packages/future/backports/xmlrpc/server.py b/venv/lib/python3.10/site-packages/future/backports/xmlrpc/server.py new file mode 100644 index 0000000..28072bf --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/backports/xmlrpc/server.py @@ -0,0 +1,999 @@ +r""" +Ported using Python-Future from the Python 3.3 standard library. + +XML-RPC Servers. + +This module can be used to create simple XML-RPC servers +by creating a server and either installing functions, a +class instance, or by extending the SimpleXMLRPCServer +class. + +It can also be used to handle XML-RPC requests in a CGI +environment using CGIXMLRPCRequestHandler. + +The Doc* classes can be used to create XML-RPC servers that +serve pydoc-style documentation in response to HTTP +GET requests. This documentation is dynamically generated +based on the functions and methods registered with the +server. + +A list of possible usage patterns follows: + +1. Install functions: + +server = SimpleXMLRPCServer(("localhost", 8000)) +server.register_function(pow) +server.register_function(lambda x,y: x+y, 'add') +server.serve_forever() + +2. Install an instance: + +class MyFuncs: + def __init__(self): + # make all of the sys functions available through sys.func_name + import sys + self.sys = sys + def _listMethods(self): + # implement this method so that system.listMethods + # knows to advertise the sys methods + return list_public_methods(self) + \ + ['sys.' + method for method in list_public_methods(self.sys)] + def pow(self, x, y): return pow(x, y) + def add(self, x, y) : return x + y + +server = SimpleXMLRPCServer(("localhost", 8000)) +server.register_introspection_functions() +server.register_instance(MyFuncs()) +server.serve_forever() + +3. Install an instance with custom dispatch method: + +class Math: + def _listMethods(self): + # this method must be present for system.listMethods + # to work + return ['add', 'pow'] + def _methodHelp(self, method): + # this method must be present for system.methodHelp + # to work + if method == 'add': + return "add(2,3) => 5" + elif method == 'pow': + return "pow(x, y[, z]) => number" + else: + # By convention, return empty + # string if no help is available + return "" + def _dispatch(self, method, params): + if method == 'pow': + return pow(*params) + elif method == 'add': + return params[0] + params[1] + else: + raise ValueError('bad method') + +server = SimpleXMLRPCServer(("localhost", 8000)) +server.register_introspection_functions() +server.register_instance(Math()) +server.serve_forever() + +4. Subclass SimpleXMLRPCServer: + +class MathServer(SimpleXMLRPCServer): + def _dispatch(self, method, params): + try: + # We are forcing the 'export_' prefix on methods that are + # callable through XML-RPC to prevent potential security + # problems + func = getattr(self, 'export_' + method) + except AttributeError: + raise Exception('method "%s" is not supported' % method) + else: + return func(*params) + + def export_add(self, x, y): + return x + y + +server = MathServer(("localhost", 8000)) +server.serve_forever() + +5. CGI script: + +server = CGIXMLRPCRequestHandler() +server.register_function(pow) +server.handle_request() +""" + +from __future__ import absolute_import, division, print_function, unicode_literals +from future.builtins import int, str + +# Written by Brian Quinlan (brian@sweetapp.com). +# Based on code written by Fredrik Lundh. + +from future.backports.xmlrpc.client import Fault, dumps, loads, gzip_encode, gzip_decode +from future.backports.http.server import BaseHTTPRequestHandler +import future.backports.http.server as http_server +from future.backports import socketserver +import sys +import os +import re +import pydoc +import inspect +import traceback +try: + import fcntl +except ImportError: + fcntl = None + +def resolve_dotted_attribute(obj, attr, allow_dotted_names=True): + """resolve_dotted_attribute(a, 'b.c.d') => a.b.c.d + + Resolves a dotted attribute name to an object. Raises + an AttributeError if any attribute in the chain starts with a '_'. + + If the optional allow_dotted_names argument is false, dots are not + supported and this function operates similar to getattr(obj, attr). + """ + + if allow_dotted_names: + attrs = attr.split('.') + else: + attrs = [attr] + + for i in attrs: + if i.startswith('_'): + raise AttributeError( + 'attempt to access private attribute "%s"' % i + ) + else: + obj = getattr(obj,i) + return obj + +def list_public_methods(obj): + """Returns a list of attribute strings, found in the specified + object, which represent callable attributes""" + + return [member for member in dir(obj) + if not member.startswith('_') and + callable(getattr(obj, member))] + +class SimpleXMLRPCDispatcher(object): + """Mix-in class that dispatches XML-RPC requests. + + This class is used to register XML-RPC method handlers + and then to dispatch them. This class doesn't need to be + instanced directly when used by SimpleXMLRPCServer but it + can be instanced when used by the MultiPathXMLRPCServer + """ + + def __init__(self, allow_none=False, encoding=None, + use_builtin_types=False): + self.funcs = {} + self.instance = None + self.allow_none = allow_none + self.encoding = encoding or 'utf-8' + self.use_builtin_types = use_builtin_types + + def register_instance(self, instance, allow_dotted_names=False): + """Registers an instance to respond to XML-RPC requests. + + Only one instance can be installed at a time. + + If the registered instance has a _dispatch method then that + method will be called with the name of the XML-RPC method and + its parameters as a tuple + e.g. instance._dispatch('add',(2,3)) + + If the registered instance does not have a _dispatch method + then the instance will be searched to find a matching method + and, if found, will be called. Methods beginning with an '_' + are considered private and will not be called by + SimpleXMLRPCServer. + + If a registered function matches a XML-RPC request, then it + will be called instead of the registered instance. + + If the optional allow_dotted_names argument is true and the + instance does not have a _dispatch method, method names + containing dots are supported and resolved, as long as none of + the name segments start with an '_'. + + *** SECURITY WARNING: *** + + Enabling the allow_dotted_names options allows intruders + to access your module's global variables and may allow + intruders to execute arbitrary code on your machine. Only + use this option on a secure, closed network. + + """ + + self.instance = instance + self.allow_dotted_names = allow_dotted_names + + def register_function(self, function, name=None): + """Registers a function to respond to XML-RPC requests. + + The optional name argument can be used to set a Unicode name + for the function. + """ + + if name is None: + name = function.__name__ + self.funcs[name] = function + + def register_introspection_functions(self): + """Registers the XML-RPC introspection methods in the system + namespace. + + see http://xmlrpc.usefulinc.com/doc/reserved.html + """ + + self.funcs.update({'system.listMethods' : self.system_listMethods, + 'system.methodSignature' : self.system_methodSignature, + 'system.methodHelp' : self.system_methodHelp}) + + def register_multicall_functions(self): + """Registers the XML-RPC multicall method in the system + namespace. + + see http://www.xmlrpc.com/discuss/msgReader$1208""" + + self.funcs.update({'system.multicall' : self.system_multicall}) + + def _marshaled_dispatch(self, data, dispatch_method = None, path = None): + """Dispatches an XML-RPC method from marshalled (XML) data. + + XML-RPC methods are dispatched from the marshalled (XML) data + using the _dispatch method and the result is returned as + marshalled data. For backwards compatibility, a dispatch + function can be provided as an argument (see comment in + SimpleXMLRPCRequestHandler.do_POST) but overriding the + existing method through subclassing is the preferred means + of changing method dispatch behavior. + """ + + try: + params, method = loads(data, use_builtin_types=self.use_builtin_types) + + # generate response + if dispatch_method is not None: + response = dispatch_method(method, params) + else: + response = self._dispatch(method, params) + # wrap response in a singleton tuple + response = (response,) + response = dumps(response, methodresponse=1, + allow_none=self.allow_none, encoding=self.encoding) + except Fault as fault: + response = dumps(fault, allow_none=self.allow_none, + encoding=self.encoding) + except: + # report exception back to server + exc_type, exc_value, exc_tb = sys.exc_info() + response = dumps( + Fault(1, "%s:%s" % (exc_type, exc_value)), + encoding=self.encoding, allow_none=self.allow_none, + ) + + return response.encode(self.encoding) + + def system_listMethods(self): + """system.listMethods() => ['add', 'subtract', 'multiple'] + + Returns a list of the methods supported by the server.""" + + methods = set(self.funcs.keys()) + if self.instance is not None: + # Instance can implement _listMethod to return a list of + # methods + if hasattr(self.instance, '_listMethods'): + methods |= set(self.instance._listMethods()) + # if the instance has a _dispatch method then we + # don't have enough information to provide a list + # of methods + elif not hasattr(self.instance, '_dispatch'): + methods |= set(list_public_methods(self.instance)) + return sorted(methods) + + def system_methodSignature(self, method_name): + """system.methodSignature('add') => [double, int, int] + + Returns a list describing the signature of the method. In the + above example, the add method takes two integers as arguments + and returns a double result. + + This server does NOT support system.methodSignature.""" + + # See http://xmlrpc.usefulinc.com/doc/sysmethodsig.html + + return 'signatures not supported' + + def system_methodHelp(self, method_name): + """system.methodHelp('add') => "Adds two integers together" + + Returns a string containing documentation for the specified method.""" + + method = None + if method_name in self.funcs: + method = self.funcs[method_name] + elif self.instance is not None: + # Instance can implement _methodHelp to return help for a method + if hasattr(self.instance, '_methodHelp'): + return self.instance._methodHelp(method_name) + # if the instance has a _dispatch method then we + # don't have enough information to provide help + elif not hasattr(self.instance, '_dispatch'): + try: + method = resolve_dotted_attribute( + self.instance, + method_name, + self.allow_dotted_names + ) + except AttributeError: + pass + + # Note that we aren't checking that the method actually + # be a callable object of some kind + if method is None: + return "" + else: + return pydoc.getdoc(method) + + def system_multicall(self, call_list): + """system.multicall([{'methodName': 'add', 'params': [2, 2]}, ...]) => \ +[[4], ...] + + Allows the caller to package multiple XML-RPC calls into a single + request. + + See http://www.xmlrpc.com/discuss/msgReader$1208 + """ + + results = [] + for call in call_list: + method_name = call['methodName'] + params = call['params'] + + try: + # XXX A marshalling error in any response will fail the entire + # multicall. If someone cares they should fix this. + results.append([self._dispatch(method_name, params)]) + except Fault as fault: + results.append( + {'faultCode' : fault.faultCode, + 'faultString' : fault.faultString} + ) + except: + exc_type, exc_value, exc_tb = sys.exc_info() + results.append( + {'faultCode' : 1, + 'faultString' : "%s:%s" % (exc_type, exc_value)} + ) + return results + + def _dispatch(self, method, params): + """Dispatches the XML-RPC method. + + XML-RPC calls are forwarded to a registered function that + matches the called XML-RPC method name. If no such function + exists then the call is forwarded to the registered instance, + if available. + + If the registered instance has a _dispatch method then that + method will be called with the name of the XML-RPC method and + its parameters as a tuple + e.g. instance._dispatch('add',(2,3)) + + If the registered instance does not have a _dispatch method + then the instance will be searched to find a matching method + and, if found, will be called. + + Methods beginning with an '_' are considered private and will + not be called. + """ + + func = None + try: + # check to see if a matching function has been registered + func = self.funcs[method] + except KeyError: + if self.instance is not None: + # check for a _dispatch method + if hasattr(self.instance, '_dispatch'): + return self.instance._dispatch(method, params) + else: + # call instance method directly + try: + func = resolve_dotted_attribute( + self.instance, + method, + self.allow_dotted_names + ) + except AttributeError: + pass + + if func is not None: + return func(*params) + else: + raise Exception('method "%s" is not supported' % method) + +class SimpleXMLRPCRequestHandler(BaseHTTPRequestHandler): + """Simple XML-RPC request handler class. + + Handles all HTTP POST requests and attempts to decode them as + XML-RPC requests. + """ + + # Class attribute listing the accessible path components; + # paths not on this list will result in a 404 error. + rpc_paths = ('/', '/RPC2') + + #if not None, encode responses larger than this, if possible + encode_threshold = 1400 #a common MTU + + #Override form StreamRequestHandler: full buffering of output + #and no Nagle. + wbufsize = -1 + disable_nagle_algorithm = True + + # a re to match a gzip Accept-Encoding + aepattern = re.compile(r""" + \s* ([^\s;]+) \s* #content-coding + (;\s* q \s*=\s* ([0-9\.]+))? #q + """, re.VERBOSE | re.IGNORECASE) + + def accept_encodings(self): + r = {} + ae = self.headers.get("Accept-Encoding", "") + for e in ae.split(","): + match = self.aepattern.match(e) + if match: + v = match.group(3) + v = float(v) if v else 1.0 + r[match.group(1)] = v + return r + + def is_rpc_path_valid(self): + if self.rpc_paths: + return self.path in self.rpc_paths + else: + # If .rpc_paths is empty, just assume all paths are legal + return True + + def do_POST(self): + """Handles the HTTP POST request. + + Attempts to interpret all HTTP POST requests as XML-RPC calls, + which are forwarded to the server's _dispatch method for handling. + """ + + # Check that the path is legal + if not self.is_rpc_path_valid(): + self.report_404() + return + + try: + # Get arguments by reading body of request. + # We read this in chunks to avoid straining + # socket.read(); around the 10 or 15Mb mark, some platforms + # begin to have problems (bug #792570). + max_chunk_size = 10*1024*1024 + size_remaining = int(self.headers["content-length"]) + L = [] + while size_remaining: + chunk_size = min(size_remaining, max_chunk_size) + chunk = self.rfile.read(chunk_size) + if not chunk: + break + L.append(chunk) + size_remaining -= len(L[-1]) + data = b''.join(L) + + data = self.decode_request_content(data) + if data is None: + return #response has been sent + + # In previous versions of SimpleXMLRPCServer, _dispatch + # could be overridden in this class, instead of in + # SimpleXMLRPCDispatcher. To maintain backwards compatibility, + # check to see if a subclass implements _dispatch and dispatch + # using that method if present. + response = self.server._marshaled_dispatch( + data, getattr(self, '_dispatch', None), self.path + ) + except Exception as e: # This should only happen if the module is buggy + # internal error, report as HTTP server error + self.send_response(500) + + # Send information about the exception if requested + if hasattr(self.server, '_send_traceback_header') and \ + self.server._send_traceback_header: + self.send_header("X-exception", str(e)) + trace = traceback.format_exc() + trace = str(trace.encode('ASCII', 'backslashreplace'), 'ASCII') + self.send_header("X-traceback", trace) + + self.send_header("Content-length", "0") + self.end_headers() + else: + self.send_response(200) + self.send_header("Content-type", "text/xml") + if self.encode_threshold is not None: + if len(response) > self.encode_threshold: + q = self.accept_encodings().get("gzip", 0) + if q: + try: + response = gzip_encode(response) + self.send_header("Content-Encoding", "gzip") + except NotImplementedError: + pass + self.send_header("Content-length", str(len(response))) + self.end_headers() + self.wfile.write(response) + + def decode_request_content(self, data): + #support gzip encoding of request + encoding = self.headers.get("content-encoding", "identity").lower() + if encoding == "identity": + return data + if encoding == "gzip": + try: + return gzip_decode(data) + except NotImplementedError: + self.send_response(501, "encoding %r not supported" % encoding) + except ValueError: + self.send_response(400, "error decoding gzip content") + else: + self.send_response(501, "encoding %r not supported" % encoding) + self.send_header("Content-length", "0") + self.end_headers() + + def report_404 (self): + # Report a 404 error + self.send_response(404) + response = b'No such page' + self.send_header("Content-type", "text/plain") + self.send_header("Content-length", str(len(response))) + self.end_headers() + self.wfile.write(response) + + def log_request(self, code='-', size='-'): + """Selectively log an accepted request.""" + + if self.server.logRequests: + BaseHTTPRequestHandler.log_request(self, code, size) + +class SimpleXMLRPCServer(socketserver.TCPServer, + SimpleXMLRPCDispatcher): + """Simple XML-RPC server. + + Simple XML-RPC server that allows functions and a single instance + to be installed to handle requests. The default implementation + attempts to dispatch XML-RPC calls to the functions or instance + installed in the server. Override the _dispatch method inherited + from SimpleXMLRPCDispatcher to change this behavior. + """ + + allow_reuse_address = True + + # Warning: this is for debugging purposes only! Never set this to True in + # production code, as will be sending out sensitive information (exception + # and stack trace details) when exceptions are raised inside + # SimpleXMLRPCRequestHandler.do_POST + _send_traceback_header = False + + def __init__(self, addr, requestHandler=SimpleXMLRPCRequestHandler, + logRequests=True, allow_none=False, encoding=None, + bind_and_activate=True, use_builtin_types=False): + self.logRequests = logRequests + + SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding, use_builtin_types) + socketserver.TCPServer.__init__(self, addr, requestHandler, bind_and_activate) + + # [Bug #1222790] If possible, set close-on-exec flag; if a + # method spawns a subprocess, the subprocess shouldn't have + # the listening socket open. + if fcntl is not None and hasattr(fcntl, 'FD_CLOEXEC'): + flags = fcntl.fcntl(self.fileno(), fcntl.F_GETFD) + flags |= fcntl.FD_CLOEXEC + fcntl.fcntl(self.fileno(), fcntl.F_SETFD, flags) + +class MultiPathXMLRPCServer(SimpleXMLRPCServer): + """Multipath XML-RPC Server + This specialization of SimpleXMLRPCServer allows the user to create + multiple Dispatcher instances and assign them to different + HTTP request paths. This makes it possible to run two or more + 'virtual XML-RPC servers' at the same port. + Make sure that the requestHandler accepts the paths in question. + """ + def __init__(self, addr, requestHandler=SimpleXMLRPCRequestHandler, + logRequests=True, allow_none=False, encoding=None, + bind_and_activate=True, use_builtin_types=False): + + SimpleXMLRPCServer.__init__(self, addr, requestHandler, logRequests, allow_none, + encoding, bind_and_activate, use_builtin_types) + self.dispatchers = {} + self.allow_none = allow_none + self.encoding = encoding or 'utf-8' + + def add_dispatcher(self, path, dispatcher): + self.dispatchers[path] = dispatcher + return dispatcher + + def get_dispatcher(self, path): + return self.dispatchers[path] + + def _marshaled_dispatch(self, data, dispatch_method = None, path = None): + try: + response = self.dispatchers[path]._marshaled_dispatch( + data, dispatch_method, path) + except: + # report low level exception back to server + # (each dispatcher should have handled their own + # exceptions) + exc_type, exc_value = sys.exc_info()[:2] + response = dumps( + Fault(1, "%s:%s" % (exc_type, exc_value)), + encoding=self.encoding, allow_none=self.allow_none) + response = response.encode(self.encoding) + return response + +class CGIXMLRPCRequestHandler(SimpleXMLRPCDispatcher): + """Simple handler for XML-RPC data passed through CGI.""" + + def __init__(self, allow_none=False, encoding=None, use_builtin_types=False): + SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding, use_builtin_types) + + def handle_xmlrpc(self, request_text): + """Handle a single XML-RPC request""" + + response = self._marshaled_dispatch(request_text) + + print('Content-Type: text/xml') + print('Content-Length: %d' % len(response)) + print() + sys.stdout.flush() + sys.stdout.buffer.write(response) + sys.stdout.buffer.flush() + + def handle_get(self): + """Handle a single HTTP GET request. + + Default implementation indicates an error because + XML-RPC uses the POST method. + """ + + code = 400 + message, explain = BaseHTTPRequestHandler.responses[code] + + response = http_server.DEFAULT_ERROR_MESSAGE % \ + { + 'code' : code, + 'message' : message, + 'explain' : explain + } + response = response.encode('utf-8') + print('Status: %d %s' % (code, message)) + print('Content-Type: %s' % http_server.DEFAULT_ERROR_CONTENT_TYPE) + print('Content-Length: %d' % len(response)) + print() + sys.stdout.flush() + sys.stdout.buffer.write(response) + sys.stdout.buffer.flush() + + def handle_request(self, request_text=None): + """Handle a single XML-RPC request passed through a CGI post method. + + If no XML data is given then it is read from stdin. The resulting + XML-RPC response is printed to stdout along with the correct HTTP + headers. + """ + + if request_text is None and \ + os.environ.get('REQUEST_METHOD', None) == 'GET': + self.handle_get() + else: + # POST data is normally available through stdin + try: + length = int(os.environ.get('CONTENT_LENGTH', None)) + except (ValueError, TypeError): + length = -1 + if request_text is None: + request_text = sys.stdin.read(length) + + self.handle_xmlrpc(request_text) + + +# ----------------------------------------------------------------------------- +# Self documenting XML-RPC Server. + +class ServerHTMLDoc(pydoc.HTMLDoc): + """Class used to generate pydoc HTML document for a server""" + + def markup(self, text, escape=None, funcs={}, classes={}, methods={}): + """Mark up some plain text, given a context of symbols to look for. + Each context dictionary maps object names to anchor names.""" + escape = escape or self.escape + results = [] + here = 0 + + # XXX Note that this regular expression does not allow for the + # hyperlinking of arbitrary strings being used as method + # names. Only methods with names consisting of word characters + # and '.'s are hyperlinked. + pattern = re.compile(r'\b((http|ftp)://\S+[\w/]|' + r'RFC[- ]?(\d+)|' + r'PEP[- ]?(\d+)|' + r'(self\.)?((?:\w|\.)+))\b') + while 1: + match = pattern.search(text, here) + if not match: break + start, end = match.span() + results.append(escape(text[here:start])) + + all, scheme, rfc, pep, selfdot, name = match.groups() + if scheme: + url = escape(all).replace('"', '"') + results.append('%s' % (url, url)) + elif rfc: + url = 'http://www.rfc-editor.org/rfc/rfc%d.txt' % int(rfc) + results.append('%s' % (url, escape(all))) + elif pep: + url = 'http://www.python.org/dev/peps/pep-%04d/' % int(pep) + results.append('%s' % (url, escape(all))) + elif text[end:end+1] == '(': + results.append(self.namelink(name, methods, funcs, classes)) + elif selfdot: + results.append('self.%s' % name) + else: + results.append(self.namelink(name, classes)) + here = end + results.append(escape(text[here:])) + return ''.join(results) + + def docroutine(self, object, name, mod=None, + funcs={}, classes={}, methods={}, cl=None): + """Produce HTML documentation for a function or method object.""" + + anchor = (cl and cl.__name__ or '') + '-' + name + note = '' + + title = '%s' % ( + self.escape(anchor), self.escape(name)) + + if inspect.ismethod(object): + args = inspect.getfullargspec(object) + # exclude the argument bound to the instance, it will be + # confusing to the non-Python user + argspec = inspect.formatargspec ( + args.args[1:], + args.varargs, + args.varkw, + args.defaults, + annotations=args.annotations, + formatvalue=self.formatvalue + ) + elif inspect.isfunction(object): + args = inspect.getfullargspec(object) + argspec = inspect.formatargspec( + args.args, args.varargs, args.varkw, args.defaults, + annotations=args.annotations, + formatvalue=self.formatvalue) + else: + argspec = '(...)' + + if isinstance(object, tuple): + argspec = object[0] or argspec + docstring = object[1] or "" + else: + docstring = pydoc.getdoc(object) + + decl = title + argspec + (note and self.grey( + '%s' % note)) + + doc = self.markup( + docstring, self.preformat, funcs, classes, methods) + doc = doc and '

    %s
    ' % doc + return '
    %s
    %s
    \n' % (decl, doc) + + def docserver(self, server_name, package_documentation, methods): + """Produce HTML documentation for an XML-RPC server.""" + + fdict = {} + for key, value in methods.items(): + fdict[key] = '#-' + key + fdict[value] = fdict[key] + + server_name = self.escape(server_name) + head = '%s' % server_name + result = self.heading(head, '#ffffff', '#7799ee') + + doc = self.markup(package_documentation, self.preformat, fdict) + doc = doc and '%s' % doc + result = result + '

    %s

    \n' % doc + + contents = [] + method_items = sorted(methods.items()) + for key, value in method_items: + contents.append(self.docroutine(value, key, funcs=fdict)) + result = result + self.bigsection( + 'Methods', '#ffffff', '#eeaa77', ''.join(contents)) + + return result + +class XMLRPCDocGenerator(object): + """Generates documentation for an XML-RPC server. + + This class is designed as mix-in and should not + be constructed directly. + """ + + def __init__(self): + # setup variables used for HTML documentation + self.server_name = 'XML-RPC Server Documentation' + self.server_documentation = \ + "This server exports the following methods through the XML-RPC "\ + "protocol." + self.server_title = 'XML-RPC Server Documentation' + + def set_server_title(self, server_title): + """Set the HTML title of the generated server documentation""" + + self.server_title = server_title + + def set_server_name(self, server_name): + """Set the name of the generated HTML server documentation""" + + self.server_name = server_name + + def set_server_documentation(self, server_documentation): + """Set the documentation string for the entire server.""" + + self.server_documentation = server_documentation + + def generate_html_documentation(self): + """generate_html_documentation() => html documentation for the server + + Generates HTML documentation for the server using introspection for + installed functions and instances that do not implement the + _dispatch method. Alternatively, instances can choose to implement + the _get_method_argstring(method_name) method to provide the + argument string used in the documentation and the + _methodHelp(method_name) method to provide the help text used + in the documentation.""" + + methods = {} + + for method_name in self.system_listMethods(): + if method_name in self.funcs: + method = self.funcs[method_name] + elif self.instance is not None: + method_info = [None, None] # argspec, documentation + if hasattr(self.instance, '_get_method_argstring'): + method_info[0] = self.instance._get_method_argstring(method_name) + if hasattr(self.instance, '_methodHelp'): + method_info[1] = self.instance._methodHelp(method_name) + + method_info = tuple(method_info) + if method_info != (None, None): + method = method_info + elif not hasattr(self.instance, '_dispatch'): + try: + method = resolve_dotted_attribute( + self.instance, + method_name + ) + except AttributeError: + method = method_info + else: + method = method_info + else: + assert 0, "Could not find method in self.functions and no "\ + "instance installed" + + methods[method_name] = method + + documenter = ServerHTMLDoc() + documentation = documenter.docserver( + self.server_name, + self.server_documentation, + methods + ) + + return documenter.page(self.server_title, documentation) + +class DocXMLRPCRequestHandler(SimpleXMLRPCRequestHandler): + """XML-RPC and documentation request handler class. + + Handles all HTTP POST requests and attempts to decode them as + XML-RPC requests. + + Handles all HTTP GET requests and interprets them as requests + for documentation. + """ + + def do_GET(self): + """Handles the HTTP GET request. + + Interpret all HTTP GET requests as requests for server + documentation. + """ + # Check that the path is legal + if not self.is_rpc_path_valid(): + self.report_404() + return + + response = self.server.generate_html_documentation().encode('utf-8') + self.send_response(200) + self.send_header("Content-type", "text/html") + self.send_header("Content-length", str(len(response))) + self.end_headers() + self.wfile.write(response) + +class DocXMLRPCServer( SimpleXMLRPCServer, + XMLRPCDocGenerator): + """XML-RPC and HTML documentation server. + + Adds the ability to serve server documentation to the capabilities + of SimpleXMLRPCServer. + """ + + def __init__(self, addr, requestHandler=DocXMLRPCRequestHandler, + logRequests=True, allow_none=False, encoding=None, + bind_and_activate=True, use_builtin_types=False): + SimpleXMLRPCServer.__init__(self, addr, requestHandler, logRequests, + allow_none, encoding, bind_and_activate, + use_builtin_types) + XMLRPCDocGenerator.__init__(self) + +class DocCGIXMLRPCRequestHandler( CGIXMLRPCRequestHandler, + XMLRPCDocGenerator): + """Handler for XML-RPC data and documentation requests passed through + CGI""" + + def handle_get(self): + """Handles the HTTP GET request. + + Interpret all HTTP GET requests as requests for server + documentation. + """ + + response = self.generate_html_documentation().encode('utf-8') + + print('Content-Type: text/html') + print('Content-Length: %d' % len(response)) + print() + sys.stdout.flush() + sys.stdout.buffer.write(response) + sys.stdout.buffer.flush() + + def __init__(self): + CGIXMLRPCRequestHandler.__init__(self) + XMLRPCDocGenerator.__init__(self) + + +if __name__ == '__main__': + import datetime + + class ExampleService: + def getData(self): + return '42' + + class currentTime: + @staticmethod + def getCurrentTime(): + return datetime.datetime.now() + + server = SimpleXMLRPCServer(("localhost", 8000)) + server.register_function(pow) + server.register_function(lambda x,y: x+y, 'add') + server.register_instance(ExampleService(), allow_dotted_names=True) + server.register_multicall_functions() + print('Serving XML-RPC on localhost port 8000') + print('It is advisable to run this example server within a secure, closed network.') + try: + server.serve_forever() + except KeyboardInterrupt: + print("\nKeyboard interrupt received, exiting.") + server.server_close() + sys.exit(0) diff --git a/venv/lib/python3.10/site-packages/future/builtins/__init__.py b/venv/lib/python3.10/site-packages/future/builtins/__init__.py new file mode 100644 index 0000000..1734cd4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/builtins/__init__.py @@ -0,0 +1,51 @@ +""" +A module that brings in equivalents of the new and modified Python 3 +builtins into Py2. Has no effect on Py3. + +See the docs `here `_ +(``docs/what-else.rst``) for more information. + +""" + +from future.builtins.iterators import (filter, map, zip) +# The isinstance import is no longer needed. We provide it only for +# backward-compatibility with future v0.8.2. It will be removed in future v1.0. +from future.builtins.misc import (ascii, chr, hex, input, isinstance, next, + oct, open, pow, round, super, max, min) +from future.utils import PY3 + +if PY3: + import builtins + bytes = builtins.bytes + dict = builtins.dict + int = builtins.int + list = builtins.list + object = builtins.object + range = builtins.range + str = builtins.str + __all__ = [] +else: + from future.types import (newbytes as bytes, + newdict as dict, + newint as int, + newlist as list, + newobject as object, + newrange as range, + newstr as str) +from future import utils + + +if not utils.PY3: + # We only import names that shadow the builtins on Py2. No other namespace + # pollution on Py2. + + # Only shadow builtins on Py2; no new names + __all__ = ['filter', 'map', 'zip', + 'ascii', 'chr', 'hex', 'input', 'next', 'oct', 'open', 'pow', + 'round', 'super', + 'bytes', 'dict', 'int', 'list', 'object', 'range', 'str', 'max', 'min' + ] + +else: + # No namespace pollution on Py3 + __all__ = [] diff --git a/venv/lib/python3.10/site-packages/future/builtins/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/builtins/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..473710147543d0b25bcf9cd21ae11ae541574963 GIT binary patch literal 1258 zcmaKr%WfMt6oyBdi$-I~x5%>POG2kf92KypiB~O*pxt#97|5zzR2pe0iSCe`kR01e zU!?2q`bu0CC{UoU&{fYF*=S%CoxyzKzVA2|*=CI3%WVa-fIXdt; zXF0iA*`<=?BAHgauw0^}Rj~YaM83}qk&3YSoXso&tE<(;C`mpr%*05pW`<0bOfz!1 zw6-+gq-j})JD*p!(rl#kBE1Do=d3Vnw6vmlHyJ0dClhr2Y)2bAnGDHXX%GhCxP+m| zELRfp{ROw_4Sg5QK_S!57g_22PrMvGJMn!)B>XW?BP1K4|(-AdhGy)uU%_AhGLJ$Zg77m5BEIcP|M6JZ61kp zy~mbApmFMU)Q2$n&C_4v2IB7@)1?wDy*6*(e4UnB;XRs^7wTMO zGFvd6-Y|KS7JPc&*cYQWU!?{rcV1?*pTNST>)7eTNz(C{OK!*GQMq#Q<@%5Lt^wK1 bD?s4&+LwN(88qWY^yq!j?6e}k6UOmBn0i`4 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/builtins/__pycache__/disabled.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/builtins/__pycache__/disabled.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c2cadefc34dd48b578b72e42a82dd5dba6ed7dac GIT binary patch literal 2348 zcmah~TW{P%6t?%4jcGzF^?|E82q9v$*=-YED5atmeW+BW6$wJD1m0Qu?0OP=#>|Yf zNlIU6CHNV@TmO<@dEzf1A#sjxNm?WI?!p_-9q{frKi+_~>6K`0A9qzxf5`tqm)=1v42y)}^8^f==OVE} zvPCXKE0i>Bi_3^92@Fm`$Y_p*2{*=Pt5}3F;~G2-sXB&;EwoD6lT#bxqTTWC*sH9k zD#{aJnAa2qPxaOliwLscpBB z+ZfnFC5c)Ixnyc?R00+-nw{5^YCQ2QOHM~DOfwu5=nzJjCWH%-;9E5cndNrG5+#?T zGCa*!K|QG<%4v^=MDb|Eaw$R;;lzpNatWUIEwD(*k1dONc*KIBPA3RPHF}82G3Zmw znJ>{Pf)a8>g$auRNy}3qxdr1@StD8%mIeV-WA;!Q3*>kO>@YXDM*}Wr5>^)~xDqz@ z2p+>z{D*^K94+8X3sZyhr4sJcL251xczd|X+WIBof}86y_WW-WHroCd~I1h$N&sjzo}d&op$MxC`kX7>^#SH8S#8%~6=Wlp@U zwUAyz#8GL!{@S?|RYP}lkxRoD7`-A^UZ{f?a>)`znSPlVl7tC)2xWJS*+C2%777!= z5}24rYDKl1pCZ*4JWnjkGi-+0j7W`{{ST>Uvk_WHKrsZPQlP#=>r24&(0$E)m1}Id zEa4%fAnm1$XjhCu5Z-W-VVtJzNM<1A(u&Yvt@eRR1r*vVQKiC!Sh2cm(LLjArSuW? z6_VAE1gM2qR~J_j!T#IH);S}HB&0E0J_&(T_Co2;E8dXc^Q!JEZZK0Jtwsq6k^cCq zT36$pv0ux;E8;{hcw$r|Y*8&O`xbHGIx2bWd4HkOI)1kpM&ejdUd5Z7gd?{QR9F|A znMR*M6QS=G{oIPg_?tz)l#ikt#u|q-D+ZN@6vIYCiXLf5(J$Me=#hpL>unDdgGxW> zN%~Q&)%sBkD*Y%nF2x(V6mETW@Y$_za}{5HaTYF}7%zs;+@IWiOzUi?)T^%nNrytt zTS-7{u|<*BR0Wjbs(;JHVQs#AkPkYQZs2V;ajWRkq> zTdIxkBnm5I?zU&2eh1h39sM>w^m{bWgno;LcX24Ly=LSlP8+J>m0oY4-^Z6df1_9n zf=GoyPEqht`}>a{Jvev}-2dj`ql1Tg`=za-`{cXb zqQ4;Eia`}F8OK&fgJp2%LmA=lP9-aMiOc3X4n61kM^`$-?yx`D7`j*8p*!sS3lh8V AN&o-= literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/builtins/__pycache__/iterators.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/builtins/__pycache__/iterators.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aa95575eeffff64a37991a453106303f182725b5 GIT binary patch literal 1530 zcmZux%aY?X6t&~L+N7r$dWyARL)_)W{U{c6O;N)S3{wRgym6FRNtBT#mn5gju;okG zQN0$8-fAc$r+)KUO z&wIizdTFl+(xB+4ec$Z`Vvr8-?u%hDN=LrOM!T_@v%&5n4KaR}PVjXgE{kXB6}}F3 zpQq0^UOxQ8Prt~6pV}DL={39Fh48rEP0|U*tMm%vb7$MyMI-uG;CbQCTW(09@=7p* zSHD_}NEGDI>@KF`0N5jLk zZn+Ajg0I{V7@vIRAu0&Vj(Zb*sbPjBl2F~yosq?&fxK9RZoWp%m_9BFS{`R$hFSPy z7ymv!J37pil&Jaan0-lCZ<|W1bqDAhbM^>Nu*eg)TVe!XIrye3o!6W=*xmrilgZJ%5v zEto0kijiey391dnIHb^^lg~}pkUghimQf+Hj7;A#tzb;f-X+vpS*~P+_I%uU0B9Ic zVbrH6Izb4&)Knk9y484g()ja@zwL{16zmdtFX#;$&rH-Z}>FN<< zr3saXCp3i-$*6`X-I=j$9{!E1!;6A?obx?*?)4R28U?B>Yo%I0E1^7_tt+{5{9i|Y zJwPRd!DKAiQ=`GCUk_UW)&crk51QRNK#QXn^(f17waT&@6+Y6>w7b4Et_x51G1M1b z-w~;~1~e``uMXb)@=%X>8(fdvR-Yq<9=qw}cw^W@$&4OiOJB4m$gJJ{>5?~Ht;eU5 z|LN&3ouwN-WXTriGTE8?yYG@xs~uZelW?JC1(kHebh2l1pP+w9*&OPJ`Q2?|fOZC1 yy@iEIS`f)8e$q*QULNZ4%l0b#-bXq^F!a3_Uypkef7l!PLmzMa$IaZW$NoRupxrzG literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/builtins/__pycache__/misc.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/builtins/__pycache__/misc.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fb2dc37f0247efe32990c77e9fc92f7b7f67a5e3 GIT binary patch literal 3070 zcmb7G-HzMF6(*^l)zXsJyV-UfJGRG8H<658D%s6N69hq$!bTbx#v*oVm_;E`+)bdA_eF8S@G<6k!K&Dix_?w)S>Tl|W@ja3`*PV$z&Yi3*VuaaN;dq&=j zuO@H%*Np7O*OPbr8%Dka`KEu%$nBUVxBc6&=gteuf0w^IwxdpT`Fq>%Osr_@@3#M& zsQHL&YsUNjKHooueHhz*8zXGQxb1Ia-1T=cl2!YsupcA5!r1XU829`=jMw~Y@cTXW z1LPb24UD(^TN7)2#+$9Y5^YbM64ToWzH3;P`vps6l*gQ9(;#CbCDMszB4zx~xtIqr zPczNrn9TzvWUdJ;#)3!eWSLE6%8uD67jY(1?TR#$P#<~ht3b0mmIV zi3r&_SMo4WlRQDNnSpnE>i`+1mCVzKj!XH1-T5*|pK*ot-;f#!bBB%iG?*hn6sux) zT$-5#CPcI>;^QEXar%tnzQ%bURY+m{`9DZ^I20PmmIZ0Zi7w<%tR)L`rC@!$1a;&i z5_BvTBbOI}iZlylG7B;>60yjZ?m}c!Hvho;t#@>Q4M1x?nW6%)-4wYy;@~jiGsVMz zw!(=aC;Z3AV&pl(-G$ZV<3142sCqaf+hJch4dYfhzVfvym@b_zb3_^S)$R2V=ChE` zGS^ffqOUk|9+fd#W?Xyh-ntSg2dlcH+87Sk3D)fmhp_EQpi;!+6ZYkD#rFXd2{8h7 z>0njvcNI_Moa?*BbQ!NJ`e^0gOZ&mBP#ol%;8MO;^=ML-h}OZFXG@PgCJKdiM_?{T z?qY7jv+{6RS@Jqp#1s|$a99>Q-V-sIX08OOY9X*q%!7!W518f%HA2Ydd7N?;lmTU3 zJ>_wXzIBR@gY@c^C14moqShn9s?Mb1D6a#ylsOB7l$ch6&q+x-rFlFy#vsowIOz?* z&#IEK+kNnvr$~)>dGJcaHRp*YLq{Bz#u2;%3la5GN|1#B&5+9&x<{Ue&3>kfu4fmG zJQJ~oP^S{^)ryAcheZvItEi#Z^_-$v_Mf6QlZ%IdZXo5TIY4YdG-X=Jrj8*up+^<2 zB#~AUx^+m`>gpl6h5zsH*MGy1SVRL+h}&6v7xb{ag63VG!8V* z`8G7QXO4O=t3L<+h4aLEWR)@yHF~RCS!4ONZPBkne@=+V-ZLwj*3)WDsiAeHZejJD z^MAUmdcZ>W4AK1K0XzRwj~#x-(mWY)<*pG=sL-P~@xT23 zR3^NCs*gVWxIa^pibD5AEDw_)4JKUm=RBSFV=?N_%r$=OefU9Ni;N%6&@q9~{jwJO ztBbdv2pxK}rJ@|UkH5Z&!ELo{*Dn8#)3V$4Wv7kz9edYt{%x?mj;aG$)NpUACP@v` zA=MVib;@3a?+{B-0-6;?!{l+%FezNrki8g0s%{a2j_ti)YzzjG3(ri|2z4q~73@HyYhFrQ(;%b97f13vKQ0>rQOx#>IS#=G{Vz1oQTQTERHK;ae z$#sHUeFMb!r06qOz4N~?#$k1dFgFNu{SEsJz{CKQs5Zff4b`E6$SK~c7G%pAZVniR z)GPC;DMyqA3SZY2k%uo2kk?u{QEZ+(J^pBL^5EM?CWS5xS7}A-)AHK*4By|D{u)Ew oYImEpw!Ld#LBN}}daI4luYOGjZ#P@@roH|-YpK#9UCfIA0Qtm>hX4Qo literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/builtins/__pycache__/new_min_max.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/builtins/__pycache__/new_min_max.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e268a83318459504d100b0b527adb3921403cf01 GIT binary patch literal 1566 zcmZ`3O>Y}TbY}L$YiI4c1tNi<+Ezls63x<&3lTyb$RQF62uDS=Xjc=@#MyYiIy0Nt z>E=>%1##d9B#2A?(ny>*^~9k!R0-a!9mlD}tmeIa-|y|d_wshTh2Y$2yompF5&Fvz ztA_yb6Zoa3A$ruOJ56>0#}ZDo$jNXe*@?0C6@nqRV5Fvf+LU_w_meg%lp) z3jL11M=`4KANUt=c!77o#ahOXBk&LzSAMit#)&dioLvxYQ!$d-9UmKffrJmv{-NPP zp7QWeKDhsRScv?P50wn#B)^x^jE=Ynk9c+zCh=ZaOw~c2J>0neStw)0?-g`71`QeR zm#P#zTtt)MN)j8zRJ%Y!1}5BVQ_VUS9YFtErEowh;0K`|5e-1AmC%W38nN*<2W_KK z$Dot0;odOdCV(LZaCwX)53c!+@>7sh5r6F-tzKzPM>2JJwbh>n#?_GRp@Z-9P)UHkCF1v+La4^0C7*9S{t8Z z)_@F-DpXx@yq`%Q8O{v4WSO@ue!FJ#D`?;)=h6mZ^$}}8yEae$ZUu05^FWqGkqZ^5 z10Fypl_}3uaF_9YS|;jl5NAr{tQ>L%ufe=$f`=QAg8f_s&;|j`SOD!=yW1?NplPsd z)crCWZU&1+sEu z@N1{q8uO`cEb2OWXFEywh$dGhe=LRRuU7_~eDvbu3iiCzaZgT{2{TiPkcub9k+vTVUPG^ zj_o(Khu#fw#{_ieOGB82psnwoJkV>=GQ&t%z!vp1o82eO;A-!3!Du(%GkZ#WU}R>O p)Z&5%qTPzDS`Z6aJ<7SJD*hA)mOAUzfPVvpn0k{{t6?k_`X= literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/builtins/__pycache__/newnext.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/builtins/__pycache__/newnext.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f81a6d14f1a17a528c9cd68f0f2b3609a5819485 GIT binary patch literal 2024 zcmah~-EQ1O6drrGyBoI&z2|~KMcr6U*G*Pj5Rs@A3Q{B#5Q&5cs=TxII6JBBv1Z1* z*)&0@t$2?1k~iR0@GWnFK;<0&Y<8;%#`52s|8u@`My{_r1lFhBm*S5uA%Eh}@@m1) zQ@HhK@CeB%;nu0mTd&D!o3|q?v_kuhb$TbX&#co<*g7U|oBi4*#5tJ=O%oaBF{hc5 zQxS4a8BO^tb6oB&57uxKC+R@1O(HGy}M4p6$`ynb6hVl!cjULd$O1%?GuG4_pjMah-*fTq%LtQr(x2o-`P zMl9eficn(7-lM$_3?W@{ldE)zZAC*J8Yr(ryCtF}4UKI1#?&=cgjmb`xeH1Ou7+G~ zZ~qr@=r~a0xy&h398(VYhC0FqpmmngAlF7FHwLSsG3bJ^obnP0fWA!e2+%f;xdYJU z7g;OjAUY9+f*huM+A8)7+E2?RQ*4y?KIlpt>d1t-0 zURg6TL;3FfnMJN`kl(nnOfM(u^DFz6b!An0Li^hO**+%Kdj?W&>+<(9gDdF!X$v#K z^4L6gtFHgPY6|Qw);EE|3=h06#1{`-b5zcJJ&ngUwCj5;keYEh~?virR+eU1Dm*0ZyS8-?F59{f&kkPi?f3RS8=aoj zw(i@#U+lltN5FXGc8jj>hcfVeh2SjK{n|o#xD=f#v1$!yr3A9WX#wmQ+0tVJrF&mi W$L+oae;SYVHfcZX*!OJb<9`8#D_Q6O literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/builtins/__pycache__/newround.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/builtins/__pycache__/newround.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a02e7e0afe59024df4abd1b55e7d9f96a8ba72a GIT binary patch literal 2808 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 AGXMYp literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/builtins/disabled.py b/venv/lib/python3.10/site-packages/future/builtins/disabled.py new file mode 100644 index 0000000..f6d6ea9 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/builtins/disabled.py @@ -0,0 +1,66 @@ +""" +This disables builtin functions (and one exception class) which are +removed from Python 3.3. + +This module is designed to be used like this:: + + from future.builtins.disabled import * + +This disables the following obsolete Py2 builtin functions:: + + apply, cmp, coerce, execfile, file, input, long, + raw_input, reduce, reload, unicode, xrange + +We don't hack __builtin__, which is very fragile because it contaminates +imported modules too. Instead, we just create new functions with +the same names as the obsolete builtins from Python 2 which raise +NameError exceptions when called. + +Note that both ``input()`` and ``raw_input()`` are among the disabled +functions (in this module). Although ``input()`` exists as a builtin in +Python 3, the Python 2 ``input()`` builtin is unsafe to use because it +can lead to shell injection. Therefore we shadow it by default upon ``from +future.builtins.disabled import *``, in case someone forgets to import our +replacement ``input()`` somehow and expects Python 3 semantics. + +See the ``future.builtins.misc`` module for a working version of +``input`` with Python 3 semantics. + +(Note that callable() is not among the functions disabled; this was +reintroduced into Python 3.2.) + +This exception class is also disabled: + + StandardError + +""" + +from __future__ import division, absolute_import, print_function + +from future import utils + + +OBSOLETE_BUILTINS = ['apply', 'chr', 'cmp', 'coerce', 'execfile', 'file', + 'input', 'long', 'raw_input', 'reduce', 'reload', + 'unicode', 'xrange', 'StandardError'] + + +def disabled_function(name): + ''' + Returns a function that cannot be called + ''' + def disabled(*args, **kwargs): + ''' + A function disabled by the ``future`` module. This function is + no longer a builtin in Python 3. + ''' + raise NameError('obsolete Python 2 builtin {0} is disabled'.format(name)) + return disabled + + +if not utils.PY3: + for fname in OBSOLETE_BUILTINS: + locals()[fname] = disabled_function(fname) + __all__ = OBSOLETE_BUILTINS +else: + __all__ = [] diff --git a/venv/lib/python3.10/site-packages/future/builtins/iterators.py b/venv/lib/python3.10/site-packages/future/builtins/iterators.py new file mode 100644 index 0000000..dff651e --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/builtins/iterators.py @@ -0,0 +1,52 @@ +""" +This module is designed to be used as follows:: + + from future.builtins.iterators import * + +And then, for example:: + + for i in range(10**15): + pass + + for (a, b) in zip(range(10**15), range(-10**15, 0)): + pass + +Note that this is standard Python 3 code, plus some imports that do +nothing on Python 3. + +The iterators this brings in are:: + +- ``range`` +- ``filter`` +- ``map`` +- ``zip`` + +On Python 2, ``range`` is a pure-Python backport of Python 3's ``range`` +iterator with slicing support. The other iterators (``filter``, ``map``, +``zip``) are from the ``itertools`` module on Python 2. On Python 3 these +are available in the module namespace but not exported for * imports via +__all__ (zero no namespace pollution). + +Note that these are also available in the standard library +``future_builtins`` module on Python 2 -- but not Python 3, so using +the standard library version is not portable, nor anywhere near complete. +""" + +from __future__ import division, absolute_import, print_function + +import itertools +from future import utils + +if not utils.PY3: + filter = itertools.ifilter + map = itertools.imap + from future.types import newrange as range + zip = itertools.izip + __all__ = ['filter', 'map', 'range', 'zip'] +else: + import builtins + filter = builtins.filter + map = builtins.map + range = builtins.range + zip = builtins.zip + __all__ = [] diff --git a/venv/lib/python3.10/site-packages/future/builtins/misc.py b/venv/lib/python3.10/site-packages/future/builtins/misc.py new file mode 100644 index 0000000..f86ce5f --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/builtins/misc.py @@ -0,0 +1,135 @@ +""" +A module that brings in equivalents of various modified Python 3 builtins +into Py2. Has no effect on Py3. + +The builtin functions are: + +- ``ascii`` (from Py2's future_builtins module) +- ``hex`` (from Py2's future_builtins module) +- ``oct`` (from Py2's future_builtins module) +- ``chr`` (equivalent to ``unichr`` on Py2) +- ``input`` (equivalent to ``raw_input`` on Py2) +- ``next`` (calls ``__next__`` if it exists, else ``next`` method) +- ``open`` (equivalent to io.open on Py2) +- ``super`` (backport of Py3's magic zero-argument super() function +- ``round`` (new "Banker's Rounding" behaviour from Py3) +- ``max`` (new default option from Py3.4) +- ``min`` (new default option from Py3.4) + +``isinstance`` is also currently exported for backwards compatibility +with v0.8.2, although this has been deprecated since v0.9. + + +input() +------- +Like the new ``input()`` function from Python 3 (without eval()), except +that it returns bytes. Equivalent to Python 2's ``raw_input()``. + +Warning: By default, importing this module *removes* the old Python 2 +input() function entirely from ``__builtin__`` for safety. This is +because forgetting to import the new ``input`` from ``future`` might +otherwise lead to a security vulnerability (shell injection) on Python 2. + +To restore it, you can retrieve it yourself from +``__builtin__._old_input``. + +Fortunately, ``input()`` seems to be seldom used in the wild in Python +2... + +""" + +from future import utils + + +if utils.PY2: + from io import open + from future_builtins import ascii, oct, hex + from __builtin__ import unichr as chr, pow as _builtin_pow + import __builtin__ + + # Only for backward compatibility with future v0.8.2: + isinstance = __builtin__.isinstance + + # Warning: Python 2's input() is unsafe and MUST not be able to be used + # accidentally by someone who expects Python 3 semantics but forgets + # to import it on Python 2. Versions of ``future`` prior to 0.11 + # deleted it from __builtin__. Now we keep in __builtin__ but shadow + # the name like all others. Just be sure to import ``input``. + + input = raw_input + + from future.builtins.newnext import newnext as next + from future.builtins.newround import newround as round + from future.builtins.newsuper import newsuper as super + from future.builtins.new_min_max import newmax as max + from future.builtins.new_min_max import newmin as min + from future.types.newint import newint + + _SENTINEL = object() + + def pow(x, y, z=_SENTINEL): + """ + pow(x, y[, z]) -> number + + With two arguments, equivalent to x**y. With three arguments, + equivalent to (x**y) % z, but may be more efficient (e.g. for ints). + """ + # Handle newints + if isinstance(x, newint): + x = long(x) + if isinstance(y, newint): + y = long(y) + if isinstance(z, newint): + z = long(z) + + try: + if z == _SENTINEL: + return _builtin_pow(x, y) + else: + return _builtin_pow(x, y, z) + except ValueError: + if z == _SENTINEL: + return _builtin_pow(x+0j, y) + else: + return _builtin_pow(x+0j, y, z) + + + # ``future`` doesn't support Py3.0/3.1. If we ever did, we'd add this: + # callable = __builtin__.callable + + __all__ = ['ascii', 'chr', 'hex', 'input', 'isinstance', 'next', 'oct', + 'open', 'pow', 'round', 'super', 'max', 'min'] + +else: + import builtins + ascii = builtins.ascii + chr = builtins.chr + hex = builtins.hex + input = builtins.input + next = builtins.next + # Only for backward compatibility with future v0.8.2: + isinstance = builtins.isinstance + oct = builtins.oct + open = builtins.open + pow = builtins.pow + round = builtins.round + super = builtins.super + if utils.PY34_PLUS: + max = builtins.max + min = builtins.min + __all__ = [] + else: + from future.builtins.new_min_max import newmax as max + from future.builtins.new_min_max import newmin as min + __all__ = ['min', 'max'] + + # The callable() function was removed from Py3.0 and 3.1 and + # reintroduced into Py3.2+. ``future`` doesn't support Py3.0/3.1. If we ever + # did, we'd add this: + # try: + # callable = builtins.callable + # except AttributeError: + # # Definition from Pandas + # def callable(obj): + # return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) + # __all__.append('callable') diff --git a/venv/lib/python3.10/site-packages/future/builtins/new_min_max.py b/venv/lib/python3.10/site-packages/future/builtins/new_min_max.py new file mode 100644 index 0000000..6f0c2a8 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/builtins/new_min_max.py @@ -0,0 +1,59 @@ +import itertools + +from future import utils +if utils.PY2: + from __builtin__ import max as _builtin_max, min as _builtin_min +else: + from builtins import max as _builtin_max, min as _builtin_min + +_SENTINEL = object() + + +def newmin(*args, **kwargs): + return new_min_max(_builtin_min, *args, **kwargs) + + +def newmax(*args, **kwargs): + return new_min_max(_builtin_max, *args, **kwargs) + + +def new_min_max(_builtin_func, *args, **kwargs): + """ + To support the argument "default" introduced in python 3.4 for min and max + :param _builtin_func: builtin min or builtin max + :param args: + :param kwargs: + :return: returns the min or max based on the arguments passed + """ + + for key, _ in kwargs.items(): + if key not in set(['key', 'default']): + raise TypeError('Illegal argument %s', key) + + if len(args) == 0: + raise TypeError + + if len(args) != 1 and kwargs.get('default', _SENTINEL) is not _SENTINEL: + raise TypeError + + if len(args) == 1: + iterator = iter(args[0]) + try: + first = next(iterator) + except StopIteration: + if kwargs.get('default', _SENTINEL) is not _SENTINEL: + return kwargs.get('default') + else: + raise ValueError('{}() arg is an empty sequence'.format(_builtin_func.__name__)) + else: + iterator = itertools.chain([first], iterator) + if kwargs.get('key') is not None: + return _builtin_func(iterator, key=kwargs.get('key')) + else: + return _builtin_func(iterator) + + if len(args) > 1: + if kwargs.get('key') is not None: + return _builtin_func(args, key=kwargs.get('key')) + else: + return _builtin_func(args) diff --git a/venv/lib/python3.10/site-packages/future/builtins/newnext.py b/venv/lib/python3.10/site-packages/future/builtins/newnext.py new file mode 100644 index 0000000..097638a --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/builtins/newnext.py @@ -0,0 +1,70 @@ +''' +This module provides a newnext() function in Python 2 that mimics the +behaviour of ``next()`` in Python 3, falling back to Python 2's behaviour for +compatibility if this fails. + +``newnext(iterator)`` calls the iterator's ``__next__()`` method if it exists. If this +doesn't exist, it falls back to calling a ``next()`` method. + +For example: + + >>> class Odds(object): + ... def __init__(self, start=1): + ... self.value = start - 2 + ... def __next__(self): # note the Py3 interface + ... self.value += 2 + ... return self.value + ... def __iter__(self): + ... return self + ... + >>> iterator = Odds() + >>> next(iterator) + 1 + >>> next(iterator) + 3 + +If you are defining your own custom iterator class as above, it is preferable +to explicitly decorate the class with the @implements_iterator decorator from +``future.utils`` as follows: + + >>> @implements_iterator + ... class Odds(object): + ... # etc + ... pass + +This next() function is primarily for consuming iterators defined in Python 3 +code elsewhere that we would like to run on Python 2 or 3. +''' + +_builtin_next = next + +_SENTINEL = object() + +def newnext(iterator, default=_SENTINEL): + """ + next(iterator[, default]) + + Return the next item from the iterator. If default is given and the iterator + is exhausted, it is returned instead of raising StopIteration. + """ + + # args = [] + # if default is not _SENTINEL: + # args.append(default) + try: + try: + return iterator.__next__() + except AttributeError: + try: + return iterator.next() + except AttributeError: + raise TypeError("'{0}' object is not an iterator".format( + iterator.__class__.__name__)) + except StopIteration as e: + if default is _SENTINEL: + raise e + else: + return default + + +__all__ = ['newnext'] diff --git a/venv/lib/python3.10/site-packages/future/builtins/newround.py b/venv/lib/python3.10/site-packages/future/builtins/newround.py new file mode 100644 index 0000000..b06c116 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/builtins/newround.py @@ -0,0 +1,105 @@ +""" +``python-future``: pure Python implementation of Python 3 round(). +""" + +from __future__ import division +from future.utils import PYPY, PY26, bind_method + +# Use the decimal module for simplicity of implementation (and +# hopefully correctness). +from decimal import Decimal, ROUND_HALF_EVEN + + +def newround(number, ndigits=None): + """ + See Python 3 documentation: uses Banker's Rounding. + + Delegates to the __round__ method if for some reason this exists. + + If not, rounds a number to a given precision in decimal digits (default + 0 digits). This returns an int when called with one argument, + otherwise the same type as the number. ndigits may be negative. + + See the test_round method in future/tests/test_builtins.py for + examples. + """ + return_int = False + if ndigits is None: + return_int = True + ndigits = 0 + if hasattr(number, '__round__'): + return number.__round__(ndigits) + + exponent = Decimal('10') ** (-ndigits) + + # Work around issue #24: round() breaks on PyPy with NumPy's types + # Also breaks on CPython with NumPy's specialized int types like uint64 + if 'numpy' in repr(type(number)): + number = float(number) + + if isinstance(number, Decimal): + d = number + else: + if not PY26: + d = Decimal.from_float(number) + else: + d = from_float_26(number) + + if ndigits < 0: + result = newround(d / exponent) * exponent + else: + result = d.quantize(exponent, rounding=ROUND_HALF_EVEN) + + if return_int: + return int(result) + else: + return float(result) + + +### From Python 2.7's decimal.py. Only needed to support Py2.6: + +def from_float_26(f): + """Converts a float to a decimal number, exactly. + + Note that Decimal.from_float(0.1) is not the same as Decimal('0.1'). + Since 0.1 is not exactly representable in binary floating point, the + value is stored as the nearest representable value which is + 0x1.999999999999ap-4. The exact equivalent of the value in decimal + is 0.1000000000000000055511151231257827021181583404541015625. + + >>> Decimal.from_float(0.1) + Decimal('0.1000000000000000055511151231257827021181583404541015625') + >>> Decimal.from_float(float('nan')) + Decimal('NaN') + >>> Decimal.from_float(float('inf')) + Decimal('Infinity') + >>> Decimal.from_float(-float('inf')) + Decimal('-Infinity') + >>> Decimal.from_float(-0.0) + Decimal('-0') + + """ + import math as _math + from decimal import _dec_from_triple # only available on Py2.6 and Py2.7 (not 3.3) + + if isinstance(f, (int, long)): # handle integer inputs + return Decimal(f) + if _math.isinf(f) or _math.isnan(f): # raises TypeError if not a float + return Decimal(repr(f)) + if _math.copysign(1.0, f) == 1.0: + sign = 0 + else: + sign = 1 + n, d = abs(f).as_integer_ratio() + # int.bit_length() method doesn't exist on Py2.6: + def bit_length(d): + if d != 0: + return len(bin(abs(d))) - 2 + else: + return 0 + k = bit_length(d) - 1 + result = _dec_from_triple(sign, str(n*5**k), -k) + return result + + +__all__ = ['newround'] diff --git a/venv/lib/python3.10/site-packages/future/builtins/newsuper.py b/venv/lib/python3.10/site-packages/future/builtins/newsuper.py new file mode 100644 index 0000000..3e8cc80 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/builtins/newsuper.py @@ -0,0 +1,113 @@ +''' +This module provides a newsuper() function in Python 2 that mimics the +behaviour of super() in Python 3. It is designed to be used as follows: + + from __future__ import division, absolute_import, print_function + from future.builtins import super + +And then, for example: + + class VerboseList(list): + def append(self, item): + print('Adding an item') + super().append(item) # new simpler super() function + +Importing this module on Python 3 has no effect. + +This is based on (i.e. almost identical to) Ryan Kelly's magicsuper +module here: + + https://github.com/rfk/magicsuper.git + +Excerpts from Ryan's docstring: + + "Of course, you can still explicitly pass in the arguments if you want + to do something strange. Sometimes you really do want that, e.g. to + skip over some classes in the method resolution order. + + "How does it work? By inspecting the calling frame to determine the + function object being executed and the object on which it's being + called, and then walking the object's __mro__ chain to find out where + that function was defined. Yuck, but it seems to work..." +''' + +from __future__ import absolute_import +import sys +from types import FunctionType + +from future.utils import PY3, PY26 + + +_builtin_super = super + +_SENTINEL = object() + +def newsuper(typ=_SENTINEL, type_or_obj=_SENTINEL, framedepth=1): + '''Like builtin super(), but capable of magic. + + This acts just like the builtin super() function, but if called + without any arguments it attempts to infer them at runtime. + ''' + # Infer the correct call if used without arguments. + if typ is _SENTINEL: + # We'll need to do some frame hacking. + f = sys._getframe(framedepth) + + try: + # Get the function's first positional argument. + type_or_obj = f.f_locals[f.f_code.co_varnames[0]] + except (IndexError, KeyError,): + raise RuntimeError('super() used in a function with no args') + + try: + typ = find_owner(type_or_obj, f.f_code) + except (AttributeError, RuntimeError, TypeError): + # see issues #160, #267 + try: + typ = find_owner(type_or_obj.__class__, f.f_code) + except AttributeError: + raise RuntimeError('super() used with an old-style class') + except TypeError: + raise RuntimeError('super() called outside a method') + + # Dispatch to builtin super(). + if type_or_obj is not _SENTINEL: + return _builtin_super(typ, type_or_obj) + return _builtin_super(typ) + + +def find_owner(cls, code): + '''Find the class that owns the currently-executing method. + ''' + for typ in cls.__mro__: + for meth in typ.__dict__.values(): + # Drill down through any wrappers to the underlying func. + # This handles e.g. classmethod() and staticmethod(). + try: + while not isinstance(meth,FunctionType): + if isinstance(meth, property): + # Calling __get__ on the property will invoke + # user code which might throw exceptions or have + # side effects + meth = meth.fget + else: + try: + meth = meth.__func__ + except AttributeError: + meth = meth.__get__(cls, typ) + except (AttributeError, TypeError): + continue + if meth.func_code is code: + return typ # Aha! Found you. + # Not found! Move onto the next class in MRO. + + raise TypeError + + +def superm(*args, **kwds): + f = sys._getframe(1) + nm = f.f_code.co_name + return getattr(newsuper(framedepth=2),nm)(*args, **kwds) + + +__all__ = ['newsuper'] diff --git a/venv/lib/python3.10/site-packages/future/moves/__init__.py b/venv/lib/python3.10/site-packages/future/moves/__init__.py new file mode 100644 index 0000000..0cd60d3 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/__init__.py @@ -0,0 +1,8 @@ +# future.moves package +from __future__ import absolute_import +import sys +__future_module__ = True +from future.standard_library import import_top_level_modules + +if sys.version_info[0] >= 3: + import_top_level_modules() diff --git a/venv/lib/python3.10/site-packages/future/moves/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b60b48a5b85a0873da4ebfb106fbf0a1d4273926 GIT binary patch literal 396 zcmYjNO-lnY5KZ=@Ev2n^QZItX9@M32Wq6ymD?CO*Ua70Lfd0$GN%u`tB2L<$!eN1Vu{NLX5=0cSE( zd68qplUki6j% zlxDT$_K?P@z8?Z?YF8T$VB%puwXOB1f89b%7 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/__pycache__/_dummy_thread.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/__pycache__/_dummy_thread.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0e71703a27a5eb30fb391e35a0ee6a7c6a35dbac GIT binary patch literal 418 zcmY+A%}N6?6or#X`pXpS#--qLgf`Z$3L-v0kwWXjL5R~P+Nnu1B$-0-iF~DOUHJ;G zywgFc7jn4Y;c_^{^m<(cbJ2RwpD;q76&z0la0ky#K?D+5A&pavt36VYCMnT0r5H(S z&%h(9u|T3RN0Qj{12=0HG;JNYU31d>f<%wr9Yx zOqQq~J)t@&M|&O*oR7c3jdC1LSmm^AJ*Pq$Z9TN&$L9qUe6f7UCn2Tuwe_v#l-hoF z$ObH0FQl_^-#Vs>*==ho=6E>$GbmlR5_}>3zy3hB|KDDIUdUQ2PB!jpenX7a8@}?6 z2&rd^HSCRB(($GvQdGq3{8~4QVtz@S@O)<2Y6~wM8MYxxcK`=_6lNEWZif}_FpP8= LNQN?;L__`pRgGg- literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/__pycache__/_thread.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/__pycache__/_thread.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..60c13f7b33e6b8014d9049d4d0590e0eb37b7b3e GIT binary patch literal 351 zcmYk1!Ait15QdYc+se{K1Yf{og>78-q9EcEh~QrAC3H8@W=)!sqzj9W~PKf%zxjWQIR6v)L3uoaJxw9qQ)@|04mogLGFQ9C56W#x=&{IZ=rwHNi*_dkRcc zx@PfIBHe05*uVanL^;0G%hv!iz? zB36T!%2_hDa^_nr8XivmhPB~?f}N1Xs}E$ye;wqzrmfL}Zr$bLn)cRg#l|}-m6_|N zYhHw8dNJ>t%_~ee8ec)R*#Z3eSN%R5-9+nK40f&nDNupa GB<2qeSY9ar literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/__pycache__/builtins.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/__pycache__/builtins.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ecc4ff3ea7bffb39a9a1f5d820dbf5675e3b4038 GIT binary patch literal 385 zcmYk2y-ve05XbE#ZKF1&LSkWL3{qoCCnSV;0)#{t!eAwhp)PhD*-oU2C*qa7GVuyb zoSPPL(w+VL--l0D)9Dz2U5q~XIY#Kq!+#3^?!k=@6{@g666YBEdmsWC<{?Hb)Mvn< zh*qc?JfSMe2YVg@dwtaF>F^t-pcK1VQ5q#$%P5zP(iWuf@p%aczFa+|u^UtR+S*n# zO10m?B|T=X<-+LDOL5t9VR>!b>0h-}RV$#$O(;F20cMBhW5XxX6PU0MKQCmXBqLjM zy|^KbR$I2VhH#P0N;jR70-*Mx4>h(*jd4B_m*+<8~m4a`G#o&nKkdPmCn6h0Q^Au z&~p#JzE&$GS+zDN$1kfvt2Goe6&LDAHhpu$bhTmqrV@Nv4O_cX{psTPMP;~UM+4La whpF~`R8nnV@u1%$AN8iJ6aWAK literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/__pycache__/configparser.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/__pycache__/configparser.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d20c6f5d1ee4f16cc6fc1523900bee23ad3c91eb GIT binary patch literal 341 zcmYk2OKQU~5Qg<|`Unc$^a5Qv5UWYMDU?#^z69D$vJsB0BuXVqNU|aH7QIEUaT&R zPToUYYm> zCN4>ZILT+fd+(ml*2CcdL0m-d#V1DSs{#Lm0Jwu??;+(V#}X-=V%(eq87Ptxj07>~ zfQh6jZTBz@1r_18m(w}apHLpA5imX3U$l4}eS;qwV}G12t(KJ&yilb!4oc+ldG_#j z_ENdZh(zhVu*pi7wGrzD(D-tEm#M}N($>w z|602W=f2-4Irx7d6GLm8ep0s4O0ccHp5Cz1=&e{e%L=I{D%)jiVc1^m_DmK_R@QE# xce7-A#cbikq|8>Yps=i)inWhmhk25+_WgNx`7L}pvLi?_iZKmN@QBhN#=j>ZaqIv9 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/__pycache__/itertools.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/__pycache__/itertools.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7657870dd192c6d8e89072f521e92a90037c087e GIT binary patch literal 370 zcmYk0u};G<5QgnEG-;X&b|%ImwWhFugb)jB7myGYQj|8A*2T_6wo}ydF6_LLS0-M8 z1+GOxJj7>Kcus7C#;LW1nPM*|^3)mYIOO zz9StNhp4Pi4HXTgk>Vw!LW&S4K%k_-jpfghY}oah{X~j#B2K|Q+){A` z3dGo!5XwmNX5ReX$nkiHz%Km*`+)e_kpJcYxd+z^fC3emBY|U#o7~}!aAUX4UGA+A zb@fHz#XactcwhLj554}f_0a!<3n;|(B+azs*3g8BN-6^-_wjiS0bi{EM@y)4`edo4 z58~0~|C-RkgH6DBg zFFI|baVGQ4e&77;sD8f-Xvh95|G@lSk^j~~a*bgg5fVs<07;gFRBuN((p|a)n5zfK zUE$3kY28EOEn6>st+eOxP-`AAzc?jO`ET!{uIyph{>1GtB;{eWGD_r@g~TL+#*988md9TP}=tE2*9Fcq>?W^w%p@k_#Lu{dm^Ydbjod z8?BXo1Kq>98om~Ett6uxb3VDCnN}MXTSK`}BN?U9Gt+d((j66iMYF=LRXQC{&Zyy* sjj|}-Vuzv4NmQyGlIECkR+OE~=8h|ZznK9-00HrwDjae^0u1N-2XAL-wg3PC literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/__pycache__/queue.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/__pycache__/queue.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5a6e2072ef2be25c6bc993bcb03f21c93d7c9afb GIT binary patch literal 346 zcmYk1O-{ow5QXhHX;GC5A#nkgL269t1|)Bf ztQaQ}Vx)QFZ#<)CtLb!tAkM}g`~dYU!2gHm7-Ee11_f}|+L HaWv#F3!Yp` literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/__pycache__/reprlib.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/__pycache__/reprlib.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bbd8538a65b42fd6865c0e4a5cfec9e16dac42c3 GIT binary patch literal 349 zcmYk1%}N6?5XY0vwp+>;5qtrUTj<8xi-L$xAcDQPm$2VK0o-?70wjN64;b{d4&)4@w7N(3ncfPZnF&ni* zK495-A)O_$lv!@96q|7RH>`BiN!ST#?0p~`e{~Gs72RpY>E2x~uc@(m&$r%DA@xGl zZT-S6?Rnc%xR08H-|2Q$E-$DPo-a(jeT4}}hc{5Adw^f{(j3C%W)Qx`Am?%jIm&UG G4E_U809}{> literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/__pycache__/socketserver.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/__pycache__/socketserver.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3949918c06ea280a71077dd28ad9e5ae5e606b88 GIT binary patch literal 367 zcmYk1!Ait15QdYcyDLi;5qtrU6}EBRi-L$xAVT+IFQMB;H@itwlC-e+L|%NLTs`>; zo}9KIJ23y`8)le4X0ezfh^yI${DS)3!)ZhSPmt~oq(T)|NaGyi{vD}Elbm2Ah`j_R zD&C-KlA$WjCj(DMPNqMwjS?Kri>))N^@2;?80(=$US8Kw@b%_7nT0v$Z>?{w;N14N z106AKy;RPUq2)|@5Z(#f2^%i{H?*l*1&e`Z!$39+d?MR_agblmc18=fceks1)>yL_ zrFTp!v(!ahybH@ZQFlzqEo+W`XX^%-Tui3tL{*xO rYZwg*MVeKFi!Fe^Qz!M#hS$xNHwc!gLkN9ughC(t7>yA2!N0x%ZV8CO literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/__pycache__/sys.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/__pycache__/sys.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5b90110c1494b1f182336712f55341d21f52405f GIT binary patch literal 343 zcmYjMO-sW-5Z#X?Ej2~Y-aJ-l*4B%Hh`*o+ieN5F(yVsteuUjkAb9o9_?L3^eoR22LW;i>8}7PRAGfQ&M_W(qKKwB9eb*xMP};ml?+>1Uk3G@)^V zb2l8(rw5ufK`QU)AW`4>{)qFkkt#?7lQGDj$PGV@@bkoWRtvWG>(w=@o!yIV@JuSZ z)P*Ttg=4KSEmN{&br*KlTxP2a=4BAey4b$Kgl7k1rfmxZEVH`nr#ISGjS{yQtb7WP NqLfTYL{4z@`v+lgS)~8~ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/__pycache__/winreg.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/__pycache__/winreg.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0b64b873d4e32e4502286502401bb2701b4288d8 GIT binary patch literal 350 zcmYk1!Ab)$5QdY@cDIx*BKQIxx6qBX7X=ZYKm>c~Uc$B;+tg&UB-xeX<9PCwa`ogZ zcyhJ@abW(*H<{s2^mIBw5SQt@_<;H~!2gH<9w6-vNR4VNk-{a$!#R?XA|=6y6LSGf zWV}N4=o!^m6Ve(ow30W`7{2r8f3r&0orD#ivT*l_%DpF%gC!`9oFt8vbDxqev(#B91JC5w6Rmv0bN?BRp z68m7dv6AR_$3u*`hP6h*QX0!jW$1LUsEA?YgzoZJfv2a}e{2DMr!KWc}48cb}b}SE$i(Txr2H3I=v5!4$eg6QX7k^g( literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/dbm/__pycache__/dumb.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/dbm/__pycache__/dumb.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0850d1411c9776631d82038df3ad0cf7fe577d3c GIT binary patch literal 354 zcmYk1&q@O^5XO_uwp+>;5qtrU6}qwZq9EcENWorQ56f;7ZECVv@@Jv=K7y~5t0!N< zlanrp12dD~NX$f~ zUZ}dQU%8<@Z+j|5L%W09>2_5tFR2xdFS>gB1`11ucTlB!05G7@sOS!1ayyvcVeqp# MlpN(rn&dd_y7O^ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/dbm/__pycache__/gnu.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/dbm/__pycache__/gnu.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..45d4eaf93a915f692f4a202a9f3dbd76cfde60fa GIT binary patch literal 349 zcmYk1&q~BF5XO_HyOpJj2)=;F6}EBRi-L$xAcA|bm(p%xH*3NX17QCUv3^3S(sJTt9Rb;sxr|# zr9$eZ zs=K=7h7P+Ks%SUSFeDm?&z0R{J>KZKLJ(fA&Noy|dV KlqYGD{^}?{&unM3V0(A9ykV_1d$IM7No5wg zYN}UZSudKNDOt1j;CH53<;zRvq!){}+P=YrW5W$hn;rlRSai?ZLzvzU#&;O}Tndt+ Klq4j@F@FJJvt2p> literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/dbm/dumb.py b/venv/lib/python3.10/site-packages/future/moves/dbm/dumb.py new file mode 100644 index 0000000..528383f --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/dbm/dumb.py @@ -0,0 +1,9 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from dbm.dumb import * +else: + __future_module__ = True + from dumbdbm import * diff --git a/venv/lib/python3.10/site-packages/future/moves/dbm/gnu.py b/venv/lib/python3.10/site-packages/future/moves/dbm/gnu.py new file mode 100644 index 0000000..68ccf67 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/dbm/gnu.py @@ -0,0 +1,9 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from dbm.gnu import * +else: + __future_module__ = True + from gdbm import * diff --git a/venv/lib/python3.10/site-packages/future/moves/dbm/ndbm.py b/venv/lib/python3.10/site-packages/future/moves/dbm/ndbm.py new file mode 100644 index 0000000..8c6fff8 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/dbm/ndbm.py @@ -0,0 +1,9 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from dbm.ndbm import * +else: + __future_module__ = True + from dbm import * diff --git a/venv/lib/python3.10/site-packages/future/moves/html/__init__.py b/venv/lib/python3.10/site-packages/future/moves/html/__init__.py new file mode 100644 index 0000000..22ed6e7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/html/__init__.py @@ -0,0 +1,31 @@ +from __future__ import absolute_import +from future.utils import PY3 +__future_module__ = True + +if PY3: + from html import * +else: + # cgi.escape isn't good enough for the single Py3.3 html test to pass. + # Define it inline here instead. From the Py3.4 stdlib. Note that the + # html.escape() function from the Py3.3 stdlib is not suitable for use on + # Py2.x. + """ + General functions for HTML manipulation. + """ + + def escape(s, quote=True): + """ + Replace special characters "&", "<" and ">" to HTML-safe sequences. + If the optional flag quote is true (the default), the quotation mark + characters, both double quote (") and single quote (') characters are also + translated. + """ + s = s.replace("&", "&") # Must be done first! + s = s.replace("<", "<") + s = s.replace(">", ">") + if quote: + s = s.replace('"', """) + s = s.replace('\'', "'") + return s + + __all__ = ['escape'] diff --git a/venv/lib/python3.10/site-packages/future/moves/html/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/html/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eb5b5db9e122588f4a3a53c4ecba2deb5634c295 GIT binary patch literal 871 zcmYjPO^?$s5Ve!EX-iAt!r26=yFuM%KMn}(szSg4BtQsyp%>%EZkt^v&f3n3UEszK zfg^t@S5Eu`v?s=G)!mV1@;sh-evU`=dL0DzF#MYR^AY;v7Pk#@=oz?q4uK<%CCc#> zV~0KI<^I$M>`w#X>j#hvWMhJO_z|@cZ}A3i{=m~FZ!YjOblJH57kE&N>pq(qB`Ygv zmX}IfNcrzS9ZleiAE%zH+L*%u_zQ6J62dq16NGT@m-l^*eI9Hv9J#_+lT}^FTid-h z@2oKhxx?BRp$^&D2T@9v3Svr;W=xWF$uvu?(1t{VXh@=yh_Hf_XdDr%$g9cQH+zQ7 zp+THiqDX}qZMk00iCqe!N}H(yxaN{A$a$r#AekXnSAy)i0xssPk~SW$%3T3-9VBP^ zY)f_{WJqSpE(urFOo|QPZWOO%nXFjcBzNN5`k5AlNu#!uRWFb1%2Ai8P}oIZd%03Urhd~ysA73%e0i@h3~y0Nns!X)#`R$3&v zx`4&f<}#r)D>6&zsJyJ3!lbMe_uN?Ah0qPVxQhdD7j+*}?_xZOTXl!hH5H}WO;g=n zFGrQlq|t81>-*c9T=7Z@O6$NKx#FoqN|}_1BHy!(?w1~;B~Rr I>;#?uf6NxpNjB+fAQ??42SWCSBd^cgS_ z;RcnHM^uK{WZ>z@$@B}hQG(q`u{BDxmgQVFN?RC_ho==Ze6d+4GdIukeQR6I@?3jw z7mb*U$VVr?(x$hSs#odqk{WK=qA7N-pfGg2iAvQ0crW^UP1^MC T=yp8h4uh$QphPIbVKC+o_l#z$ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/html/__pycache__/parser.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/html/__pycache__/parser.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9ce0e9864763b4e39e0329ccc649e1ecd6764558 GIT binary patch literal 363 zcmYjMu};G<6tv^CMZpzfVP_0dV@em05Mt~As1jMoK$JFyq}Z`#JCQ0r2=PlpNjB+fAQJP?5-839hRkP~wP zvrvpuRE{3~eJI8QkH_Ee8pXIjD%Mts*73ZSS{Vl;vU*yi(DB(rJn5r6e`#H7c%B=d z-P1uPt*eDK#E*{uJW`dd0Be6(IVlod7|Tr`Ez|qE)t-MM zYRfmyvRbH_ESln#8`klrW1?O&y>pdn7Rmga+1l}$E;euAux!|dN!5Yyp==0E^sYa+ U9`?Dx5NRm@MHGiP3@E0-FYjeynE(I) literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/html/entities.py b/venv/lib/python3.10/site-packages/future/moves/html/entities.py new file mode 100644 index 0000000..56a8860 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/html/entities.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import +from future.utils import PY3 + +if PY3: + from html.entities import * +else: + __future_module__ = True + from htmlentitydefs import * diff --git a/venv/lib/python3.10/site-packages/future/moves/html/parser.py b/venv/lib/python3.10/site-packages/future/moves/html/parser.py new file mode 100644 index 0000000..a6115b5 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/html/parser.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import +from future.utils import PY3 +__future_module__ = True + +if PY3: + from html.parser import * +else: + from HTMLParser import * diff --git a/venv/lib/python3.10/site-packages/future/moves/http/__init__.py b/venv/lib/python3.10/site-packages/future/moves/http/__init__.py new file mode 100644 index 0000000..917b3d7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/http/__init__.py @@ -0,0 +1,4 @@ +from future.utils import PY3 + +if not PY3: + __future_module__ = True diff --git a/venv/lib/python3.10/site-packages/future/moves/http/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/http/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cda6ad4726a41733fd41c2f348c532cee08ff0c9 GIT binary patch literal 267 zcmYjKu};G<5VeyaB9sp7EQ}eNqwQ3wLTqdZ2^P8>p*F;=9b2{&sp5gv--+bxZSeH2;y1xgmxN62S!5%hZ2jhvK!1otIS?l@5OVG@K(&OEgw=S|WZhe?pf(`F@7R8VUQbT&%%)yO+Bd zKxsQSbz8ql54~)A(CP);F*decRf{VKD$2R5cLz!YnEr#YJ((s(2Z*Xw5wUW|A>T~J Q*PKd2PExQe$$9qk3qhqucK`qY literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/http/__pycache__/client.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/http/__pycache__/client.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..887543886952d06028337d3adb17caba8b106c3f GIT binary patch literal 344 zcmYjLJx|0i3{BeJ2V4({pTJn8t2u4~2_Z%n&`ETm1664P&5<-!l2$tLdl>jjU77d` zOgMDGlArzbY(MMe@{nMh%-+QZ)-O-~M}Xu8(_SDj!l)#Q=9Cgn%@OiI1{qaxX>kLmjC!{sr zd05oWwP_^Fqtm9rqE zUa7J{M*}@?dcbqg?p>{$O}ah_#hy?XK$ zJUMBgI50E$Ci$5^dN!LPh^xtm_=5iJ;eSK`D@c0>r9u^!NZ}k~e~x6NNKP=~#9RUs z8Lv?_dO=m3j}ANzoQ{7$jZ!?EvyIiVcf1g))5gJwJijiX;p_ENIvJ)#@z%TE@S-q& z_mBk4dMBhc#E;Hu=en%adMkLt%y4nkC|&guq{C^rm16UWjQ`=G{4!c=#c5-27x%O? zy5Xg>R7gEntYz=q&>e4g6lAp9yIQx)Y;i-aaD3jeatkjk4SuN7I{@#59-U;}emHpu RCLS?twF#62B{+^k{sCfFWf}kg literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/http/__pycache__/cookies.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/http/__pycache__/cookies.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a433779295f55b361669294442a6bf12f5c85144 GIT binary patch literal 390 zcmYk0%}T^D5XX~#vv&OeU%+F9ZCv*xhzNRB1ovVurQ1fE-J~f=T3CD{Uny5lzJe#G zt%w8jpZqd2%wNvuGX!xKzOyf=p9B042jCV`--A@B!W;>lVLZGY?g%$?F`}+I1$Mc& zMpf{PDlhX#4uDbR^FV}I2s_YA!r=}|ustd^TJp}&oQYN{17Ggb%L)oUUxNk@QfbN` zlgQ5U{IxTkqIs?cM>d`??F{2ux#L%DOq-Tc?ikhfHx|p z-#MwJpk%8rmsg}!a!X623FC4hil%s@iuAPU31=J9?oBP5Rl2+∋xii*g4OnoNF( hkUhZQg#0>5+r5phClfaqZt6pj7{%CghK%qr{sH%WXpH~> literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/http/__pycache__/server.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/http/__pycache__/server.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dfe6bb34d70b077c70915b6a30a7cfeec665f282 GIT binary patch literal 585 zcmZWlO-~y!5FLB-u}L3)hObIFW zRMOO&dIW@Lc9DCs7DC({LtLBIOWr_U=*_>;58$LwATXy#e8UE zzJd8pm7n}~TvUz;RN6hXD%~>bAx{ac~H@Q<`QX*S4f?ObGmPZSqYPG|2vSX zIFooT|8yEzF$lxaxUzK5E`}TQ^BAj@8wOJ^ZylCBoExKzX`u29W(z|Jzh`WrQo(NR zx1;Y&8+9w@&ayj}DnloH)?Y{0<$KRh_U@t&kKw pu&Rf?Ug!Rgs{Ee>pR{`j0R*H*i{+DIQnEt=#9bOtpVBw_=N+U%oL>L{ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/http/client.py b/venv/lib/python3.10/site-packages/future/moves/http/client.py new file mode 100644 index 0000000..55f9c9c --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/http/client.py @@ -0,0 +1,8 @@ +from future.utils import PY3 + +if PY3: + from http.client import * +else: + from httplib import * + from httplib import HTTPMessage + __future_module__ = True diff --git a/venv/lib/python3.10/site-packages/future/moves/http/cookiejar.py b/venv/lib/python3.10/site-packages/future/moves/http/cookiejar.py new file mode 100644 index 0000000..ea00df7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/http/cookiejar.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import +from future.utils import PY3 + +if PY3: + from http.cookiejar import * +else: + __future_module__ = True + from cookielib import * diff --git a/venv/lib/python3.10/site-packages/future/moves/http/cookies.py b/venv/lib/python3.10/site-packages/future/moves/http/cookies.py new file mode 100644 index 0000000..1b74fe2 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/http/cookies.py @@ -0,0 +1,9 @@ +from __future__ import absolute_import +from future.utils import PY3 + +if PY3: + from http.cookies import * +else: + __future_module__ = True + from Cookie import * + from Cookie import Morsel # left out of __all__ on Py2.7! diff --git a/venv/lib/python3.10/site-packages/future/moves/http/server.py b/venv/lib/python3.10/site-packages/future/moves/http/server.py new file mode 100644 index 0000000..4e75cc1 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/http/server.py @@ -0,0 +1,20 @@ +from __future__ import absolute_import +from future.utils import PY3 + +if PY3: + from http.server import * +else: + __future_module__ = True + from BaseHTTPServer import * + from CGIHTTPServer import * + from SimpleHTTPServer import * + try: + from CGIHTTPServer import _url_collapse_path # needed for a test + except ImportError: + try: + # Python 2.7.0 to 2.7.3 + from CGIHTTPServer import ( + _url_collapse_path_split as _url_collapse_path) + except ImportError: + # Doesn't exist on Python 2.6.x. Ignore it. + pass diff --git a/venv/lib/python3.10/site-packages/future/moves/itertools.py b/venv/lib/python3.10/site-packages/future/moves/itertools.py new file mode 100644 index 0000000..e5eb20d --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/itertools.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import + +from itertools import * +try: + zip_longest = izip_longest + filterfalse = ifilterfalse +except NameError: + pass diff --git a/venv/lib/python3.10/site-packages/future/moves/multiprocessing.py b/venv/lib/python3.10/site-packages/future/moves/multiprocessing.py new file mode 100644 index 0000000..a871b67 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/multiprocessing.py @@ -0,0 +1,7 @@ +from __future__ import absolute_import +from future.utils import PY3 + +from multiprocessing import * +if not PY3: + __future_module__ = True + from multiprocessing.queues import SimpleQueue diff --git a/venv/lib/python3.10/site-packages/future/moves/pickle.py b/venv/lib/python3.10/site-packages/future/moves/pickle.py new file mode 100644 index 0000000..c53d693 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/pickle.py @@ -0,0 +1,11 @@ +from __future__ import absolute_import +from future.utils import PY3 + +if PY3: + from pickle import * +else: + __future_module__ = True + try: + from cPickle import * + except ImportError: + from pickle import * diff --git a/venv/lib/python3.10/site-packages/future/moves/queue.py b/venv/lib/python3.10/site-packages/future/moves/queue.py new file mode 100644 index 0000000..1cb1437 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/queue.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import +from future.utils import PY3 + +if PY3: + from queue import * +else: + __future_module__ = True + from Queue import * diff --git a/venv/lib/python3.10/site-packages/future/moves/reprlib.py b/venv/lib/python3.10/site-packages/future/moves/reprlib.py new file mode 100644 index 0000000..a313a13 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/reprlib.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import +from future.utils import PY3 + +if PY3: + from reprlib import * +else: + __future_module__ = True + from repr import * diff --git a/venv/lib/python3.10/site-packages/future/moves/socketserver.py b/venv/lib/python3.10/site-packages/future/moves/socketserver.py new file mode 100644 index 0000000..062e084 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/socketserver.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import +from future.utils import PY3 + +if PY3: + from socketserver import * +else: + __future_module__ = True + from SocketServer import * diff --git a/venv/lib/python3.10/site-packages/future/moves/subprocess.py b/venv/lib/python3.10/site-packages/future/moves/subprocess.py new file mode 100644 index 0000000..43ffd2a --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/subprocess.py @@ -0,0 +1,11 @@ +from __future__ import absolute_import +from future.utils import PY2, PY26 + +from subprocess import * + +if PY2: + __future_module__ = True + from commands import getoutput, getstatusoutput + +if PY26: + from future.backports.misc import check_output diff --git a/venv/lib/python3.10/site-packages/future/moves/sys.py b/venv/lib/python3.10/site-packages/future/moves/sys.py new file mode 100644 index 0000000..1293bcb --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/sys.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import + +from future.utils import PY2 + +from sys import * + +if PY2: + from __builtin__ import intern diff --git a/venv/lib/python3.10/site-packages/future/moves/test/__init__.py b/venv/lib/python3.10/site-packages/future/moves/test/__init__.py new file mode 100644 index 0000000..5cf428b --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/test/__init__.py @@ -0,0 +1,5 @@ +from __future__ import absolute_import +from future.utils import PY3 + +if not PY3: + __future_module__ = True diff --git a/venv/lib/python3.10/site-packages/future/moves/test/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/test/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dbaa3c89882ef91321dc1c82cbe98faaf2de37e5 GIT binary patch literal 317 zcmYjNO-lnY5KT5)TFMsDf8fnMbjRA0AmT3&K`-tlZkuRR^RXn^h2k&rFYVQnf5D4R zTo4E5&Ac}c9*kQo<^=0>`lc+-k3{}ghU5l2oFNDzs3wNil%_q?nPD}fM6z%qSe=Xf zo}?}(pXeqf9gdn!aJq|xbKNGR!%D?qcU9=RU;@#Yn3zDjhsa((#|i zIMHdez7s#i%P)LA!Oj^8`*5+kgx0&g+{OS(yQOJt^CCU;()OU$2HHd1IlHb_=MYqs t%eL9Rq9ec<3dZ$Fq6`r@S5`&NtM)L=uEyYNilHI>svrf;vl-35e*h#;Rj&X5 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/test/__pycache__/support.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/test/__pycache__/support.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..94f7427cf0467af34abd00729fff78ed01026e9d GIT binary patch literal 699 zcmY*X&2AGh5VpOWWV6|{DM&>~y}&Irv-(^%EoXBRF?g0?um?`wdiyN-U7X zImY2k1jz~5NJKKu;|&&zmTc#3jCk8ThgeH=CWw=HQj)U$g*-%MXVEgxAd-l#O!HLs z^4_MhD>B*7`*0?wTS@aB9$%xc0SldWC+HJIVicq6Xqz`i_T3e*3HuBr)DC-V;EIOW z?-u7)i^g$Q$yyut9Anj6!FLKBGl zga0ya>D}h_LdxDho>G^M0J?r}Qxz1u8T=iY{m?Y1UyRPQIK_|u`~~>_#9{yd literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/test/support.py b/venv/lib/python3.10/site-packages/future/moves/test/support.py new file mode 100644 index 0000000..f70c9d7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/test/support.py @@ -0,0 +1,19 @@ +from __future__ import absolute_import + +import sys + +from future.standard_library import suspend_hooks +from future.utils import PY3 + +if PY3: + from test.support import * + if sys.version_info[:2] >= (3, 10): + from test.support.os_helper import ( + EnvironmentVarGuard, + TESTFN, + ) + from test.support.warnings_helper import check_warnings +else: + __future_module__ = True + with suspend_hooks(): + from test.test_support import * diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/__init__.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/__init__.py new file mode 100644 index 0000000..e408296 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/__init__.py @@ -0,0 +1,27 @@ +from __future__ import absolute_import +from future.utils import PY3 +__future_module__ = True + +if not PY3: + from Tkinter import * + from Tkinter import (_cnfmerge, _default_root, _flatten, + _support_default_root, _test, + _tkinter, _setit) + + try: # >= 2.7.4 + from Tkinter import (_join) + except ImportError: + pass + + try: # >= 2.7.4 + from Tkinter import (_stringify) + except ImportError: + pass + + try: # >= 2.7.9 + from Tkinter import (_splitdict) + except ImportError: + pass + +else: + from tkinter import * diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..42a16499f9aca1d703f1bbe310336654095af2b3 GIT binary patch literal 723 zcmY+B&2H2%5XbF&C!2J)mHGfkTo%y{r3ZwB5El-;AS6~owFFkW@ov5KM`Sx&Ej$r# z!ZYN`iC5qP(g0YVS z5y+5)5QijUq5TYAB;uvti$yFGlE{>#G9#JHNiGXg$O)Oql9U*I$$(0Lsz`;=N2Kxy zv4i~!jQn$f6uudm6qqTQ-eb-mFgcu)0W%{r&$RgmbbHdLzm#`w{GB3k2zP^QUi^e^ z&>Rob=F)1>J4U(ev~ggC?=Q}l@WoH&>5$WvT1#d&Y^Z3<)=e)QHCnqNqifMP$JB64 zZQuEy9|AFT%zDmUbLE&B5^9;_zC=v7nkxtjYMtR~!`J&U>jZZ#U%7YlBiN+t-t~r2 zYG5>ID93csJ1(pVy>zNn;lXywJ_(_`Fi=Viecqu`K$@y*TZ;jE$ zRNg-Dc6xX3Z^#^b)61__eWfLX5`i*7$;uf}FxV<>5#f|RJl5srckKgK~c S!#)ds2jTzd2)qQmGWr9@<-1`3 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/colorchooser.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/colorchooser.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ac772f8eae0a1a3c15c15d7092dcd4e0642f593 GIT binary patch literal 489 zcmY+By-ve05XbGLUn*&lP#+*HNJVN)+X)E)Qej}ADxwmiOOz(2aqHwF+bK%f;AwcJ ztW3ND3piQgw=+O0FPU%T6#V7Oe%95B!c_QMdN3YoadB552hro+|3H zC;_2#$ecV6^?^?}57Us^YBd55ViW>MD(nb?lvA5YJ7Q9@c;VPLK&72QD(p!%uvsjX z$GN8%#2S2_21OATD=MzW-Fn`1-Ir9Qg1W9Sw2Iu?qLV7dr7(+7XZOJIi{AdWci#T5 zB|o?;HQx#W;uDEtoTd9&kPsqDmU7TPCy9V1^_3)yLof1TZ$SlF(|Aodo0B9{A;d$c ze?}xzw3m4PN@qy26-6RgYuL#l`*NHl%NrNld0grbMDj>G3t2|Ru&`mYv4tDh`27P* C!;H}Y literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/commondialog.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/commondialog.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c49954c3c5183e1742137f5b4799361120e8fe4 GIT binary patch literal 489 zcmY+B&riZI6vx|b{0I(A41Ykqm|(&xa56D!A|57x9n=Ow17%QOXFS3UR6wjprU33ZhUZQi;Y{AJJIp zfU!VR5gQ0u8WlxotckoDb!vIT_g_+-O5*#{GAeR+i(aZJQ_?O%?cD<}EPF>~@4WS2 zOMY-yYQB|H$WI`PahC39ju(Oxyj1<(IZmWll29v5ndtH$4(3GSHHp`l(HTxMy%6!h z>z!dmHR&cnxH1_EZ$)7))&_QR@V*=`$@2Qeb{?1J1A#g+&IPXJST3}z7Ia}9TEBk= CzKm@E literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/constants.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/constants.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..45ffa589e4c0f5a930589e362422488a950a6fda GIT binary patch literal 477 zcmYk3y-ve05XWsN{ZN~NKs-QLkc!lpwi6NphBB~Jm57As5~Yc0-8yz;J4GoQJPogu zm5Eni0Vl1hp5^oXPIvZSXVK}jfU)z&I~_p)zDqc?rh$92)!4Wg#E^jmP9ZE~#86^Q zEeMDu&kS44_CZ{G0-HufH6J`zYy(oyFCZuvsmJyw{D5zuTmLb4f-WqM!xq>JM34gk=MWZihdaWZ zyAV)UomzIeHv>`a5$qc!)n?$SWDn4Kb`C+&Xg%^i;5&Q;-TJpZ6LevIOcq-5)XUqWq$X7~43%T6=YEAjY8cnbEmEDsh9D}d=Jl$2el#xKJt!sB zCs4)1mGVRIS_+CcdeFbdiIN+-G#WE5dxFGdMHSxBc!xP#;3P9^84rX0CDzQ)UP6{z syF%m21{QK>;a~t)27)BZn>W?nZ|x@mePYE2zT-JQbesyLg>UP_}#ZmK(4IuzuCH#+;gKO8#$O!=iavhS8K;ODB$zQw&O>ygs6n~PG#cka#H6ta=ZR%XI+*c{ zP-It3TB@%`y=Kvl`X?99V7FIpGdOJBOr0p`F-00OV(1<>>MU;tat`~3sRSbbsu literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/filedialog.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/filedialog.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..103cddf2be799c44b5eb4f269a395023b2c39c13 GIT binary patch literal 618 zcmb_Y&2G~`5T3Q2A0-Y*sN%$7IdBM4y|ld)scL&DNF0DjL_+jpIq@{vX6?0h*Qp$C z@HD)Vubg-VE--c?k_TW`J3HU#+nH}hk46I^d*1shpLzg48*pfS0@rk{A(ukR6lCm{ zu_pGEm-)9o1N6-iVP6GPNV}h4(``{_3ZEe#27uk_1%u{bHx0hCZ|ng!y_VB!IL)7y zb^edl*|NsHU(^@ItbUx#tX8GNSZ0Mbj#B>Q%NafF<>vi#iTtfpcq0>~7d+ExsgO&{ zGij~N7ZJbFXnCbe!za}#m$`L`Qi+o~CoorKirlSa?$BIqJ~rjt>c18IFz(lbIKC@g zX)ulrEgI@@3!~CWWsTpYp6nDvcQi`cj#3ZyD(d08cJw#KXj6xW0)K!RQiaz2MzPcx zihFx{@>&!|-{ag_A(cMPk~~?U5o^rXLdlsZD!0`6S# z>dAk>i>B=kzL1xE9(nn`NhLaURX7eb8L0rZuBZz9msn%3119UHmMwv_%8fSe(g*Fjmk)cvp zn6or4lBqC6-HtkqycLFv)TD}pp>nKx?pGM3hBB?(GPF+!7FIK_SK9f(u&nJtDXBhz zD!#3BKOtU8PVidydsjG7a!uw&W6ETgMwMrlp5sHuIfOoJLg)7nNUMKs literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/messagebox.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/messagebox.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b1aa7fc940c86c80cffb986ea886d240f8e21f5d GIT binary patch literal 481 zcmYk3&r8EF6vvac`@!rKhJQf32ou)0?IehbDB{66a3Jndx;1XulBOi-T<1;y8vmtU zJ^3$q(XgoRYu^kUAD$^U#$b3Z){EXqfg8jg$@; z3p5pxfhkMEJOzz3k>`VUEo=DxbD|STd|z5dL*|y~C7LoN?L5@_yWsKi<%w8l?zWC> z=eAILEv1kjK<0%k+&95W_@E|guka$I+6=rmT<5bT@)c3l_ zSW!(naWGw)6AG7tFc&KWe^T(j6faJ*`e|8-Gt)SrTE@A+wH(WZmbD9ASclfnFEBod AGXMYp literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/scrolledtext.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/scrolledtext.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b1c625ab3b068de42f55cf8fa6907d907bc6e9e7 GIT binary patch literal 485 zcmYk3&riZI6vx|*U%{b?;SZ=66HHhIP9{b@=z$B8u*Aq^8QT*I-MX|LI=ty$Y=ACR}j?lbBxLXwW#umKkzH+)PBsHsDq1>V5S7mH25q| zh14cxkDmu-!55oHZvkWyO2Iiq9=vH1izwqjm?AM#iY0TG+zU`77nvmEyiZu7bijF_ znMe$TJd1$n6-zY8+fk=pG=2Xi)0qU{mzMERI6HJR&A5_wnQHGZxN2Wpo7#nQ=%hFr zZv8$;DdZQDWh=MxJEsc~16`_q?~0~UEFsj2GA_DtkOXs(bPdUxayFxBt`{O1xV=lN zn1*f|ge!AG(VZn4i?xBh8G2~OP4l90z3aw}`8=dfjX21$DwcyS>liz@fvvxP$=QoH literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/simpledialog.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/simpledialog.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..620d0f6aff24bad0d8fb5bba186573a4af00696b GIT binary patch literal 485 zcmYk3&riZI6vx|b{0I(B41Ykqm|(&xa56FK0S{b|1QH{cWw1I5?YgubW_Z)T#(!y7 zPyP#DwA(oFn!fh)`r7x+t7x}dz}Q9OosJ;@-vu07)4+q7YGPanLdXDz3kZw7#Vl?w zYzT-gJBDrM%t2V2fqkQ-+8jKW>;O{FE+HresfW%d{D5zuTmLa{f-cO@f~68H)x@Vf z5mK9wJ$)IP1zzo+=4*mx=75nA4VZ`!7h%c>q6%@U6pbSfjRa9B6RAYgY=CI2bii1k zsfZ1%SQ-+fw=~v7-cP!Xyyg3^sZJ&FeQ6mDxm%%^YRZ(fi%{oq!Bb`Ju&kZC$4c^( zajExFN+G|1ELvH*-w3Y-CwQX<{TrM}u^}t1FlD00gE)wY#5)r2Fr!PHWO^;)q1V60 zifYnJg4Nb!C|pUxTtHjWx^%!dGcmGD2B7OrjALn|?eAqN7EAuQ*JBjJo4 z2&khDEj!!|KwNtOn?^;o06bRg0$R_HAt)QI$LE-dz=iIzMwG-M)` z%Gi`MdOEWMJlWg@bBY7D#zMv!r!4S(J)lVS{L3H{md|~l~bnLyA8f!>%y_VMf<)g>Q*VKK7lIV ztCF8*GM9pqg&y?JNvh<6PK_pv%btjmXhs!T(PTw9n~*d&bD5m^{Zpcup}jPkF6|0U pwgnI&R~B~G#9I4lUNkSZSH83#1N4Cv4|vE$9z8-# literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/ttk.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/tkinter/__pycache__/ttk.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1e538115070af6f74cb71270b1afa88b17e0aed0 GIT binary patch literal 449 zcmYk3PfNov7{-&f`@_~Lh#w$cgb8chJPD#6RPZte4#XWS-5R%SNmG(^(s|QQ<5%j{ zlV8D$zU_AK4SAAZ$eZU)qB@-xf;eit@c<+ARl@&h0$f8kLy#E7SRjcf7?*QLIMSWC z7%^8L0=vQ+qqz2fHjRpEWAs?Dhgdy7#;9zp9(y179lxS({Tt3iU0m!(Q=>#?S;%Fo zw1p*i^mGOTKH1!j7mQfDB2vYfV1yeYxiLJM2joUELvodAGRg;pC&orXM3$=rU?#E{ zGFLpYOkWMVjiMEXFPY6W3q$RIb>VL@$SfB|yX8`Qmk@wu;g-_AuZp_WTIo-u%lE3} z=b0{)WOQi;{d1aXwPZ7EC>N?Hqa>O$P1h`0Q^BV+&Fw-ZXF>mz8g5xHjb|q}_vGe-}=g)jl literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/colorchooser.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/colorchooser.py new file mode 100644 index 0000000..6dde6e8 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/colorchooser.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from tkinter.colorchooser import * +else: + try: + from tkColorChooser import * + except ImportError: + raise ImportError('The tkColorChooser module is missing. Does your Py2 ' + 'installation include tkinter?') diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/commondialog.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/commondialog.py new file mode 100644 index 0000000..eb7ae8d --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/commondialog.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from tkinter.commondialog import * +else: + try: + from tkCommonDialog import * + except ImportError: + raise ImportError('The tkCommonDialog module is missing. Does your Py2 ' + 'installation include tkinter?') diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/constants.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/constants.py new file mode 100644 index 0000000..ffe0981 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/constants.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from tkinter.constants import * +else: + try: + from Tkconstants import * + except ImportError: + raise ImportError('The Tkconstants module is missing. Does your Py2 ' + 'installation include tkinter?') diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/dialog.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/dialog.py new file mode 100644 index 0000000..113370c --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/dialog.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from tkinter.dialog import * +else: + try: + from Dialog import * + except ImportError: + raise ImportError('The Dialog module is missing. Does your Py2 ' + 'installation include tkinter?') diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/dnd.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/dnd.py new file mode 100644 index 0000000..1ab4379 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/dnd.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from tkinter.dnd import * +else: + try: + from Tkdnd import * + except ImportError: + raise ImportError('The Tkdnd module is missing. Does your Py2 ' + 'installation include tkinter?') diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/filedialog.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/filedialog.py new file mode 100644 index 0000000..6a6f03c --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/filedialog.py @@ -0,0 +1,18 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from tkinter.filedialog import * +else: + try: + from FileDialog import * + except ImportError: + raise ImportError('The FileDialog module is missing. Does your Py2 ' + 'installation include tkinter?') + + try: + from tkFileDialog import * + except ImportError: + raise ImportError('The tkFileDialog module is missing. Does your Py2 ' + 'installation include tkinter?') diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/font.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/font.py new file mode 100644 index 0000000..628f399 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/font.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from tkinter.font import * +else: + try: + from tkFont import * + except ImportError: + raise ImportError('The tkFont module is missing. Does your Py2 ' + 'installation include tkinter?') diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/messagebox.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/messagebox.py new file mode 100644 index 0000000..b43d870 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/messagebox.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from tkinter.messagebox import * +else: + try: + from tkMessageBox import * + except ImportError: + raise ImportError('The tkMessageBox module is missing. Does your Py2 ' + 'installation include tkinter?') diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/scrolledtext.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/scrolledtext.py new file mode 100644 index 0000000..1c69db6 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/scrolledtext.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from tkinter.scrolledtext import * +else: + try: + from ScrolledText import * + except ImportError: + raise ImportError('The ScrolledText module is missing. Does your Py2 ' + 'installation include tkinter?') diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/simpledialog.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/simpledialog.py new file mode 100644 index 0000000..dba93fb --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/simpledialog.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from tkinter.simpledialog import * +else: + try: + from SimpleDialog import * + except ImportError: + raise ImportError('The SimpleDialog module is missing. Does your Py2 ' + 'installation include tkinter?') diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/tix.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/tix.py new file mode 100644 index 0000000..8d1718a --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/tix.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from tkinter.tix import * +else: + try: + from Tix import * + except ImportError: + raise ImportError('The Tix module is missing. Does your Py2 ' + 'installation include tkinter?') diff --git a/venv/lib/python3.10/site-packages/future/moves/tkinter/ttk.py b/venv/lib/python3.10/site-packages/future/moves/tkinter/ttk.py new file mode 100644 index 0000000..081c1b4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/tkinter/ttk.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import + +from future.utils import PY3 + +if PY3: + from tkinter.ttk import * +else: + try: + from ttk import * + except ImportError: + raise ImportError('The ttk module is missing. Does your Py2 ' + 'installation include tkinter?') diff --git a/venv/lib/python3.10/site-packages/future/moves/urllib/__init__.py b/venv/lib/python3.10/site-packages/future/moves/urllib/__init__.py new file mode 100644 index 0000000..5cf428b --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/urllib/__init__.py @@ -0,0 +1,5 @@ +from __future__ import absolute_import +from future.utils import PY3 + +if not PY3: + __future_module__ = True diff --git a/venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..52117b72b1b5337434cdd6aca3bb40903bad513f GIT binary patch literal 319 zcmYk2%SyvQ6ozLqDJ>;M^bOpZMKji}1QDM=1iLYtA?Zx*)VYMY1d31OD`o4-S8$_e z3`h^0%YV)XKODPQ%n`)p^j#Y0pGllX2I2wIUqRuBV}&%XF-~))GEHiNks$tplRD@5 zGfG)bzJNw09?qK9TNQ&~Qg_w`Sdpif_2#jh40FbIF+?XAbIE2XMp?xmm3Jhq&i@&0 zc~pRYAUB1}U-@q7-fBS){$_PcJ7*7K8$6ZDE_Gv?SK(+cOiz_;X?F~JYu453ntB<; tvTL?)KzKTuQf+$>(WwM8CXEb?Ro!uz-Hq1w7;Js|R)GqfXEU7t`~u!gR(k*d literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/error.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/error.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..451b9194e31d4a0dd9dd6ae56b55aba582ce80c2 GIT binary patch literal 559 zcmYjPO>5jR5FPnr?cI1u8v=pen%f4l$|k2kDS=SvA(YU#g!p2dSnWEIEHjcfEWH%+ z1NuAqmwf4=r~HK;LPmBdmC*RTnWuS!u%1pQK~;n^H@2wD0?S-h*I3{heOFChs;#Z0!JtpIC`mIH&Z&F-ubS!Q` z7!gDF>c0SAIqbsUoG-N!{MH;Uj(LOnR@_*_E2;NYQ5W9?@|CDpocwsRwo6?f%@+sU zR95Ua#myZl3?D}1O0S3vcDx^M-mJU$-7wdC`U${nQ%E3Ti5GYY3%oc?*cRJ;dIs)* Bmp%Xh literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/parse.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/parse.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a581f052661943ecbad638e2383d809e9028692 GIT binary patch literal 800 zcmYjP!EV|>5Z%QFj4=TMgrw@Fxe+NiG^a{c)i0=`5~<2wEC+9b$*$Mz+El2=d_cdW z_kPV@d+IOr($3hl>RS8u&71L?S!q?T=Mz}3+F#O%OUMrl{$Cyh?_rzo00~K`Ad)gl zkvBv`I?SoKBV5^JO-guEzkr-8TDK(emLzGiHpDIA$qwsCpZT)Ox-wva?6ICaVn@Pb*%*JxUCh~-x$SIr3Q+7(pC+Of3mptPP&}%`= z@-xha-yLk!W}TlfIhj%0kME5VWx=CV=1LbJ^-O7Uo+Z&*sV4)1b8~kM2fetR`L=r# zYr{WsQ;NcNm$^ubL*V6@iMGae{xV@Zr4|W)(D9>f1Kp@JvmTJDqGARutPfh5)oRTv zeb%zgZK(=w{pyHvQ5tZ{YB4yFTE<>HTd4%9tG~A;*ZU8%GwVmuLs^uXN0Dy8#qG2X z=cb6WB-TkJ(t922y>>7g9I|DR3Zvl#fCS!9Gp{Ec{_~S6DFxaFP^DW4Z3KKGx`TjE zNp}%?2uBEg0Nbi9^#GM2!ZE@KVT>>V_(t?g-pj;G-<&v^LX_H6(+2&7D}~)pq?PCE;Y~h)_Ysu=N*N1 X28RepK!b+c2&mh*qF!)L&wu{`Wl-Q} literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/request.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/urllib/__pycache__/request.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d2cc0c9ce29b7d6bca9c27ffb83dca3d5ff94555 GIT binary patch literal 1096 zcmYk5&2G~`5XaYvlQ@af^pk#nQ=}lZrtJkJgb?D4kf=cHCE7MiAu%exTs7<#-1b9@f^ zybtqy9v1ilEb>KI;!Cj1mtlpk_`RFz9<1_JSmSH3&evgsZ@?zsge|@W+k6{#_zvvy zUD)G$u+R4~ru~METKquPzp$^{eveQc`g}rlzZw_)7^y=z;zyYG5#M`(QusS9}Noi*YD492p$gl zu5&GIq4UqFG%hZL9cKdMS*aDyP@WDir-d-aH9nQOl`huuQz?zby^M8{9jC@ytum_| zF!b#2KCXkaDzJ&by2#sBTvrZuTFA;QjntLzM5q$qZgZ^JVmq2;cB@5k zfvsxU`~_*R1`k|kIQ&rBQp@2`*Rbhsbv8XQR%9cgM?;lfYN4mPPOEXXTG~_@9g;MM z)uPWy)l1z(QMU;6W9v474uI|wVgjB5rsoKK!aQMtut-=UEF)Z8ZS8xeS4h7{SS73x z)(IPgO~Mvoo3KOJMYx536+%8L6&8xU@G1LmhpC_GJ#_re^nij0zeO_6K_)lm?DR>3 zzs`-kvL;DYeheZL*HR}FnN1Q5PKv1==h^wm>7&G?Rvs7P>LYrXWY($#@(E66Z%nEt oofP;PpU(1mhNqqx$~R_lEe^t36uhiGo)6Rj(HTp8fDCzaao0j{H9zB(}v+E`ofUdfvK{BWtycTpX*F-Q1dQlQ~Z&`>!EMMjInuUxQ#Jc2xa(EsnxHX z7kA1=D7&QA;$j%v;I6J}&2>d9B| zsaWVPeU(mmM7)Ao{0BLWaw5Y`bNnB#wpA(TtQWA_9G3UTU zq$|{po>7~YqXUm4=i?txqa25my0J=l$0{zhG7d)M>17EGU#=eWNtjmEt9Rb8sxrNI z$RZZrabXSVM`zv$!JERUMmb#@%S<@^*GbiS0rGG>xc@|^|L39nGP+Tc(XG8++){1S zmaUzoT&TIMyZVh8x?|mrf(6xkw^7})SX@!d9h>WV{SGfIjayNvb^vi7I`Av>J{;Y} RRqio3+YCyEGMpwc{{Sw#X}ACY literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/urllib/error.py b/venv/lib/python3.10/site-packages/future/moves/urllib/error.py new file mode 100644 index 0000000..7d8ada7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/urllib/error.py @@ -0,0 +1,16 @@ +from __future__ import absolute_import +from future.standard_library import suspend_hooks + +from future.utils import PY3 + +if PY3: + from urllib.error import * +else: + __future_module__ = True + + # We use this method to get at the original Py2 urllib before any renaming magic + # ContentTooShortError = sys.py2_modules['urllib'].ContentTooShortError + + with suspend_hooks(): + from urllib import ContentTooShortError + from urllib2 import URLError, HTTPError diff --git a/venv/lib/python3.10/site-packages/future/moves/urllib/parse.py b/venv/lib/python3.10/site-packages/future/moves/urllib/parse.py new file mode 100644 index 0000000..9074b81 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/urllib/parse.py @@ -0,0 +1,28 @@ +from __future__ import absolute_import +from future.standard_library import suspend_hooks + +from future.utils import PY3 + +if PY3: + from urllib.parse import * +else: + __future_module__ = True + from urlparse import (ParseResult, SplitResult, parse_qs, parse_qsl, + urldefrag, urljoin, urlparse, urlsplit, + urlunparse, urlunsplit) + + # we use this method to get at the original py2 urllib before any renaming + # quote = sys.py2_modules['urllib'].quote + # quote_plus = sys.py2_modules['urllib'].quote_plus + # unquote = sys.py2_modules['urllib'].unquote + # unquote_plus = sys.py2_modules['urllib'].unquote_plus + # urlencode = sys.py2_modules['urllib'].urlencode + # splitquery = sys.py2_modules['urllib'].splitquery + + with suspend_hooks(): + from urllib import (quote, + quote_plus, + unquote, + unquote_plus, + urlencode, + splitquery) diff --git a/venv/lib/python3.10/site-packages/future/moves/urllib/request.py b/venv/lib/python3.10/site-packages/future/moves/urllib/request.py new file mode 100644 index 0000000..972aa4a --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/urllib/request.py @@ -0,0 +1,94 @@ +from __future__ import absolute_import + +from future.standard_library import suspend_hooks +from future.utils import PY3 + +if PY3: + from urllib.request import * + # This aren't in __all__: + from urllib.request import (getproxies, + pathname2url, + proxy_bypass, + quote, + request_host, + thishost, + unquote, + url2pathname, + urlcleanup, + urljoin, + urlopen, + urlparse, + urlretrieve, + urlsplit, + urlunparse) + + from urllib.parse import (splitattr, + splithost, + splitpasswd, + splitport, + splitquery, + splittag, + splittype, + splituser, + splitvalue, + to_bytes, + unwrap) +else: + __future_module__ = True + with suspend_hooks(): + from urllib import * + from urllib2 import * + from urlparse import * + + # Rename: + from urllib import toBytes # missing from __all__ on Py2.6 + to_bytes = toBytes + + # from urllib import (pathname2url, + # url2pathname, + # getproxies, + # urlretrieve, + # urlcleanup, + # URLopener, + # FancyURLopener, + # proxy_bypass) + + # from urllib2 import ( + # AbstractBasicAuthHandler, + # AbstractDigestAuthHandler, + # BaseHandler, + # CacheFTPHandler, + # FileHandler, + # FTPHandler, + # HTTPBasicAuthHandler, + # HTTPCookieProcessor, + # HTTPDefaultErrorHandler, + # HTTPDigestAuthHandler, + # HTTPErrorProcessor, + # HTTPHandler, + # HTTPPasswordMgr, + # HTTPPasswordMgrWithDefaultRealm, + # HTTPRedirectHandler, + # HTTPSHandler, + # URLError, + # build_opener, + # install_opener, + # OpenerDirector, + # ProxyBasicAuthHandler, + # ProxyDigestAuthHandler, + # ProxyHandler, + # Request, + # UnknownHandler, + # urlopen, + # ) + + # from urlparse import ( + # urldefrag + # urljoin, + # urlparse, + # urlunparse, + # urlsplit, + # urlunsplit, + # parse_qs, + # parse_q" + # ) diff --git a/venv/lib/python3.10/site-packages/future/moves/urllib/response.py b/venv/lib/python3.10/site-packages/future/moves/urllib/response.py new file mode 100644 index 0000000..a287ae2 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/urllib/response.py @@ -0,0 +1,12 @@ +from future import standard_library +from future.utils import PY3 + +if PY3: + from urllib.response import * +else: + __future_module__ = True + with standard_library.suspend_hooks(): + from urllib import (addbase, + addclosehook, + addinfo, + addinfourl) diff --git a/venv/lib/python3.10/site-packages/future/moves/urllib/robotparser.py b/venv/lib/python3.10/site-packages/future/moves/urllib/robotparser.py new file mode 100644 index 0000000..0dc8f57 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/urllib/robotparser.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import +from future.utils import PY3 + +if PY3: + from urllib.robotparser import * +else: + __future_module__ = True + from robotparser import * diff --git a/venv/lib/python3.10/site-packages/future/moves/winreg.py b/venv/lib/python3.10/site-packages/future/moves/winreg.py new file mode 100644 index 0000000..c8b1475 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/moves/winreg.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import +from future.utils import PY3 + +if PY3: + from winreg import * +else: + __future_module__ = True + from _winreg import * diff --git a/venv/lib/python3.10/site-packages/future/moves/xmlrpc/__init__.py b/venv/lib/python3.10/site-packages/future/moves/xmlrpc/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/future/moves/xmlrpc/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/xmlrpc/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3f22d903e7bc23fe910bbea1cee3f00b95ecbf17 GIT binary patch literal 191 zcmd1j<>g`k0!8-fOc4DTL?8o3AjbiSi&=m~3PUi1CZpdpP7@do12)In4VgsUzVCzrk|6Uq+d{3l98WhtY>JTUz}Nzs#}nl zoDEb_te;j|Qd*R%pPOF>lIYq;;_lhPbtkwwFB8*%mgG@ F7yzPtFiije literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/moves/xmlrpc/__pycache__/client.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/moves/xmlrpc/__pycache__/client.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d2d6fddaa0f17e1f6d2059dc8ab2ad7ec079e469 GIT binary patch literal 340 zcmYk2OHRWu5QgnI1zIIy!v$CdsWGK&kPzYos1j`GCZvg>F5}p;orsD%l0F^gFC zUV^hMwDLCv)-+`UQgnWtMg+O}BzB4mf8pneZ?zJ9=Pnjk+*rL6jdxsvo~yd6Uxej@ z=mw5w-0b~Ucgu2d&YkpPZtCV0Hyn@JT= (3, 6): + import importlib as imp +else: + import imp +import contextlib +import copy +import os + +# Make a dedicated logger; leave the root logger to be configured +# by the application. +flog = logging.getLogger('future_stdlib') +_formatter = logging.Formatter(logging.BASIC_FORMAT) +_handler = logging.StreamHandler() +_handler.setFormatter(_formatter) +flog.addHandler(_handler) +flog.setLevel(logging.WARN) + +from future.utils import PY2, PY3 + +# The modules that are defined under the same names on Py3 but with +# different contents in a significant way (e.g. submodules) are: +# pickle (fast one) +# dbm +# urllib +# test +# email + +REPLACED_MODULES = set(['test', 'urllib', 'pickle', 'dbm']) # add email and dbm when we support it + +# The following module names are not present in Python 2.x, so they cause no +# potential clashes between the old and new names: +# http +# html +# tkinter +# xmlrpc +# Keys: Py2 / real module names +# Values: Py3 / simulated module names +RENAMES = { + # 'cStringIO': 'io', # there's a new io module in Python 2.6 + # that provides StringIO and BytesIO + # 'StringIO': 'io', # ditto + # 'cPickle': 'pickle', + '__builtin__': 'builtins', + 'copy_reg': 'copyreg', + 'Queue': 'queue', + 'future.moves.socketserver': 'socketserver', + 'ConfigParser': 'configparser', + 'repr': 'reprlib', + 'multiprocessing.queues': 'multiprocessing', + # 'FileDialog': 'tkinter.filedialog', + # 'tkFileDialog': 'tkinter.filedialog', + # 'SimpleDialog': 'tkinter.simpledialog', + # 'tkSimpleDialog': 'tkinter.simpledialog', + # 'tkColorChooser': 'tkinter.colorchooser', + # 'tkCommonDialog': 'tkinter.commondialog', + # 'Dialog': 'tkinter.dialog', + # 'Tkdnd': 'tkinter.dnd', + # 'tkFont': 'tkinter.font', + # 'tkMessageBox': 'tkinter.messagebox', + # 'ScrolledText': 'tkinter.scrolledtext', + # 'Tkconstants': 'tkinter.constants', + # 'Tix': 'tkinter.tix', + # 'ttk': 'tkinter.ttk', + # 'Tkinter': 'tkinter', + '_winreg': 'winreg', + 'thread': '_thread', + 'dummy_thread': '_dummy_thread' if sys.version_info < (3, 9) else '_thread', + # 'anydbm': 'dbm', # causes infinite import loop + # 'whichdb': 'dbm', # causes infinite import loop + # anydbm and whichdb are handled by fix_imports2 + # 'dbhash': 'dbm.bsd', + # 'dumbdbm': 'dbm.dumb', + # 'dbm': 'dbm.ndbm', + # 'gdbm': 'dbm.gnu', + 'future.moves.xmlrpc': 'xmlrpc', + # 'future.backports.email': 'email', # for use by urllib + # 'DocXMLRPCServer': 'xmlrpc.server', + # 'SimpleXMLRPCServer': 'xmlrpc.server', + # 'httplib': 'http.client', + # 'htmlentitydefs' : 'html.entities', + # 'HTMLParser' : 'html.parser', + # 'Cookie': 'http.cookies', + # 'cookielib': 'http.cookiejar', + # 'BaseHTTPServer': 'http.server', + # 'SimpleHTTPServer': 'http.server', + # 'CGIHTTPServer': 'http.server', + # 'future.backports.test': 'test', # primarily for renaming test_support to support + # 'commands': 'subprocess', + # 'urlparse' : 'urllib.parse', + # 'robotparser' : 'urllib.robotparser', + # 'abc': 'collections.abc', # for Py33 + # 'future.utils.six.moves.html': 'html', + # 'future.utils.six.moves.http': 'http', + 'future.moves.html': 'html', + 'future.moves.http': 'http', + # 'future.backports.urllib': 'urllib', + # 'future.utils.six.moves.urllib': 'urllib', + 'future.moves._markupbase': '_markupbase', + } + + +# It is complicated and apparently brittle to mess around with the +# ``sys.modules`` cache in order to support "import urllib" meaning two +# different things (Py2.7 urllib and backported Py3.3-like urllib) in different +# contexts. So we require explicit imports for these modules. +assert len(set(RENAMES.values()) & set(REPLACED_MODULES)) == 0 + + +# Harmless renames that we can insert. +# These modules need names from elsewhere being added to them: +# subprocess: should provide getoutput and other fns from commands +# module but these fns are missing: getstatus, mk2arg, +# mkarg +# re: needs an ASCII constant that works compatibly with Py3 + +# etc: see lib2to3/fixes/fix_imports.py + +# (New module name, new object name, old module name, old object name) +MOVES = [('collections', 'UserList', 'UserList', 'UserList'), + ('collections', 'UserDict', 'UserDict', 'UserDict'), + ('collections', 'UserString','UserString', 'UserString'), + ('collections', 'ChainMap', 'future.backports.misc', 'ChainMap'), + ('itertools', 'filterfalse','itertools', 'ifilterfalse'), + ('itertools', 'zip_longest','itertools', 'izip_longest'), + ('sys', 'intern','__builtin__', 'intern'), + ('multiprocessing', 'SimpleQueue', 'multiprocessing.queues', 'SimpleQueue'), + # The re module has no ASCII flag in Py2, but this is the default. + # Set re.ASCII to a zero constant. stat.ST_MODE just happens to be one + # (and it exists on Py2.6+). + ('re', 'ASCII','stat', 'ST_MODE'), + ('base64', 'encodebytes','base64', 'encodestring'), + ('base64', 'decodebytes','base64', 'decodestring'), + ('subprocess', 'getoutput', 'commands', 'getoutput'), + ('subprocess', 'getstatusoutput', 'commands', 'getstatusoutput'), + ('subprocess', 'check_output', 'future.backports.misc', 'check_output'), + ('math', 'ceil', 'future.backports.misc', 'ceil'), + ('collections', 'OrderedDict', 'future.backports.misc', 'OrderedDict'), + ('collections', 'Counter', 'future.backports.misc', 'Counter'), + ('collections', 'ChainMap', 'future.backports.misc', 'ChainMap'), + ('itertools', 'count', 'future.backports.misc', 'count'), + ('reprlib', 'recursive_repr', 'future.backports.misc', 'recursive_repr'), + ('functools', 'cmp_to_key', 'future.backports.misc', 'cmp_to_key'), + +# This is no use, since "import urllib.request" etc. still fails: +# ('urllib', 'error', 'future.moves.urllib', 'error'), +# ('urllib', 'parse', 'future.moves.urllib', 'parse'), +# ('urllib', 'request', 'future.moves.urllib', 'request'), +# ('urllib', 'response', 'future.moves.urllib', 'response'), +# ('urllib', 'robotparser', 'future.moves.urllib', 'robotparser'), + ] + + +# A minimal example of an import hook: +# class WarnOnImport(object): +# def __init__(self, *args): +# self.module_names = args +# +# def find_module(self, fullname, path=None): +# if fullname in self.module_names: +# self.path = path +# return self +# return None +# +# def load_module(self, name): +# if name in sys.modules: +# return sys.modules[name] +# module_info = imp.find_module(name, self.path) +# module = imp.load_module(name, *module_info) +# sys.modules[name] = module +# flog.warning("Imported deprecated module %s", name) +# return module + + +class RenameImport(object): + """ + A class for import hooks mapping Py3 module names etc. to the Py2 equivalents. + """ + # Different RenameImport classes are created when importing this module from + # different source files. This causes isinstance(hook, RenameImport) checks + # to produce inconsistent results. We add this RENAMER attribute here so + # remove_hooks() and install_hooks() can find instances of these classes + # easily: + RENAMER = True + + def __init__(self, old_to_new): + ''' + Pass in a dictionary-like object mapping from old names to new + names. E.g. {'ConfigParser': 'configparser', 'cPickle': 'pickle'} + ''' + self.old_to_new = old_to_new + both = set(old_to_new.keys()) & set(old_to_new.values()) + assert (len(both) == 0 and + len(set(old_to_new.values())) == len(old_to_new.values())), \ + 'Ambiguity in renaming (handler not implemented)' + self.new_to_old = dict((new, old) for (old, new) in old_to_new.items()) + + def find_module(self, fullname, path=None): + # Handles hierarchical importing: package.module.module2 + new_base_names = set([s.split('.')[0] for s in self.new_to_old]) + # Before v0.12: Was: if fullname in set(self.old_to_new) | new_base_names: + if fullname in new_base_names: + return self + return None + + def load_module(self, name): + path = None + if name in sys.modules: + return sys.modules[name] + elif name in self.new_to_old: + # New name. Look up the corresponding old (Py2) name: + oldname = self.new_to_old[name] + module = self._find_and_load_module(oldname) + # module.__future_module__ = True + else: + module = self._find_and_load_module(name) + # In any case, make it available under the requested (Py3) name + sys.modules[name] = module + return module + + def _find_and_load_module(self, name, path=None): + """ + Finds and loads it. But if there's a . in the name, handles it + properly. + """ + bits = name.split('.') + while len(bits) > 1: + # Treat the first bit as a package + packagename = bits.pop(0) + package = self._find_and_load_module(packagename, path) + try: + path = package.__path__ + except AttributeError: + # This could be e.g. moves. + flog.debug('Package {0} has no __path__.'.format(package)) + if name in sys.modules: + return sys.modules[name] + flog.debug('What to do here?') + + name = bits[0] + module_info = imp.find_module(name, path) + return imp.load_module(name, *module_info) + + +class hooks(object): + """ + Acts as a context manager. Saves the state of sys.modules and restores it + after the 'with' block. + + Use like this: + + >>> from future import standard_library + >>> with standard_library.hooks(): + ... import http.client + >>> import requests + + For this to work, http.client will be scrubbed from sys.modules after the + 'with' block. That way the modules imported in the 'with' block will + continue to be accessible in the current namespace but not from any + imported modules (like requests). + """ + def __enter__(self): + # flog.debug('Entering hooks context manager') + self.old_sys_modules = copy.copy(sys.modules) + self.hooks_were_installed = detect_hooks() + # self.scrubbed = scrub_py2_sys_modules() + install_hooks() + return self + + def __exit__(self, *args): + # flog.debug('Exiting hooks context manager') + # restore_sys_modules(self.scrubbed) + if not self.hooks_were_installed: + remove_hooks() + # scrub_future_sys_modules() + +# Sanity check for is_py2_stdlib_module(): We aren't replacing any +# builtin modules names: +if PY2: + assert len(set(RENAMES.values()) & set(sys.builtin_module_names)) == 0 + + +def is_py2_stdlib_module(m): + """ + Tries to infer whether the module m is from the Python 2 standard library. + This may not be reliable on all systems. + """ + if PY3: + return False + if not 'stdlib_path' in is_py2_stdlib_module.__dict__: + stdlib_files = [contextlib.__file__, os.__file__, copy.__file__] + stdlib_paths = [os.path.split(f)[0] for f in stdlib_files] + if not len(set(stdlib_paths)) == 1: + # This seems to happen on travis-ci.org. Very strange. We'll try to + # ignore it. + flog.warn('Multiple locations found for the Python standard ' + 'library: %s' % stdlib_paths) + # Choose the first one arbitrarily + is_py2_stdlib_module.stdlib_path = stdlib_paths[0] + + if m.__name__ in sys.builtin_module_names: + return True + + if hasattr(m, '__file__'): + modpath = os.path.split(m.__file__) + if (modpath[0].startswith(is_py2_stdlib_module.stdlib_path) and + 'site-packages' not in modpath[0]): + return True + + return False + + +def scrub_py2_sys_modules(): + """ + Removes any Python 2 standard library modules from ``sys.modules`` that + would interfere with Py3-style imports using import hooks. Examples are + modules with the same names (like urllib or email). + + (Note that currently import hooks are disabled for modules like these + with ambiguous names anyway ...) + """ + if PY3: + return {} + scrubbed = {} + for modulename in REPLACED_MODULES & set(RENAMES.keys()): + if not modulename in sys.modules: + continue + + module = sys.modules[modulename] + + if is_py2_stdlib_module(module): + flog.debug('Deleting (Py2) {} from sys.modules'.format(modulename)) + scrubbed[modulename] = sys.modules[modulename] + del sys.modules[modulename] + return scrubbed + + +def scrub_future_sys_modules(): + """ + Deprecated. + """ + return {} + +class suspend_hooks(object): + """ + Acts as a context manager. Use like this: + + >>> from future import standard_library + >>> standard_library.install_hooks() + >>> import http.client + >>> # ... + >>> with standard_library.suspend_hooks(): + >>> import requests # incompatible with ``future``'s standard library hooks + + If the hooks were disabled before the context, they are not installed when + the context is left. + """ + def __enter__(self): + self.hooks_were_installed = detect_hooks() + remove_hooks() + # self.scrubbed = scrub_future_sys_modules() + return self + + def __exit__(self, *args): + if self.hooks_were_installed: + install_hooks() + # restore_sys_modules(self.scrubbed) + + +def restore_sys_modules(scrubbed): + """ + Add any previously scrubbed modules back to the sys.modules cache, + but only if it's safe to do so. + """ + clash = set(sys.modules) & set(scrubbed) + if len(clash) != 0: + # If several, choose one arbitrarily to raise an exception about + first = list(clash)[0] + raise ImportError('future module {} clashes with Py2 module' + .format(first)) + sys.modules.update(scrubbed) + + +def install_aliases(): + """ + Monkey-patches the standard library in Py2.6/7 to provide + aliases for better Py3 compatibility. + """ + if PY3: + return + # if hasattr(install_aliases, 'run_already'): + # return + for (newmodname, newobjname, oldmodname, oldobjname) in MOVES: + __import__(newmodname) + # We look up the module in sys.modules because __import__ just returns the + # top-level package: + newmod = sys.modules[newmodname] + # newmod.__future_module__ = True + + __import__(oldmodname) + oldmod = sys.modules[oldmodname] + + obj = getattr(oldmod, oldobjname) + setattr(newmod, newobjname, obj) + + # Hack for urllib so it appears to have the same structure on Py2 as on Py3 + import urllib + from future.backports.urllib import request + from future.backports.urllib import response + from future.backports.urllib import parse + from future.backports.urllib import error + from future.backports.urllib import robotparser + urllib.request = request + urllib.response = response + urllib.parse = parse + urllib.error = error + urllib.robotparser = robotparser + sys.modules['urllib.request'] = request + sys.modules['urllib.response'] = response + sys.modules['urllib.parse'] = parse + sys.modules['urllib.error'] = error + sys.modules['urllib.robotparser'] = robotparser + + # Patch the test module so it appears to have the same structure on Py2 as on Py3 + try: + import test + except ImportError: + pass + try: + from future.moves.test import support + except ImportError: + pass + else: + test.support = support + sys.modules['test.support'] = support + + # Patch the dbm module so it appears to have the same structure on Py2 as on Py3 + try: + import dbm + except ImportError: + pass + else: + from future.moves.dbm import dumb + dbm.dumb = dumb + sys.modules['dbm.dumb'] = dumb + try: + from future.moves.dbm import gnu + except ImportError: + pass + else: + dbm.gnu = gnu + sys.modules['dbm.gnu'] = gnu + try: + from future.moves.dbm import ndbm + except ImportError: + pass + else: + dbm.ndbm = ndbm + sys.modules['dbm.ndbm'] = ndbm + + # install_aliases.run_already = True + + +def install_hooks(): + """ + This function installs the future.standard_library import hook into + sys.meta_path. + """ + if PY3: + return + + install_aliases() + + flog.debug('sys.meta_path was: {0}'.format(sys.meta_path)) + flog.debug('Installing hooks ...') + + # Add it unless it's there already + newhook = RenameImport(RENAMES) + if not detect_hooks(): + sys.meta_path.append(newhook) + flog.debug('sys.meta_path is now: {0}'.format(sys.meta_path)) + + +def enable_hooks(): + """ + Deprecated. Use install_hooks() instead. This will be removed by + ``future`` v1.0. + """ + install_hooks() + + +def remove_hooks(scrub_sys_modules=False): + """ + This function removes the import hook from sys.meta_path. + """ + if PY3: + return + flog.debug('Uninstalling hooks ...') + # Loop backwards, so deleting items keeps the ordering: + for i, hook in list(enumerate(sys.meta_path))[::-1]: + if hasattr(hook, 'RENAMER'): + del sys.meta_path[i] + + # Explicit is better than implicit. In the future the interface should + # probably change so that scrubbing the import hooks requires a separate + # function call. Left as is for now for backward compatibility with + # v0.11.x. + if scrub_sys_modules: + scrub_future_sys_modules() + + +def disable_hooks(): + """ + Deprecated. Use remove_hooks() instead. This will be removed by + ``future`` v1.0. + """ + remove_hooks() + + +def detect_hooks(): + """ + Returns True if the import hooks are installed, False if not. + """ + flog.debug('Detecting hooks ...') + present = any([hasattr(hook, 'RENAMER') for hook in sys.meta_path]) + if present: + flog.debug('Detected.') + else: + flog.debug('Not detected.') + return present + + +# As of v0.12, this no longer happens implicitly: +# if not PY3: +# install_hooks() + + +if not hasattr(sys, 'py2_modules'): + sys.py2_modules = {} + +def cache_py2_modules(): + """ + Currently this function is unneeded, as we are not attempting to provide import hooks + for modules with ambiguous names: email, urllib, pickle. + """ + if len(sys.py2_modules) != 0: + return + assert not detect_hooks() + import urllib + sys.py2_modules['urllib'] = urllib + + import email + sys.py2_modules['email'] = email + + import pickle + sys.py2_modules['pickle'] = pickle + + # Not all Python installations have test module. (Anaconda doesn't, for example.) + # try: + # import test + # except ImportError: + # sys.py2_modules['test'] = None + # sys.py2_modules['test'] = test + + # import dbm + # sys.py2_modules['dbm'] = dbm + + +def import_(module_name, backport=False): + """ + Pass a (potentially dotted) module name of a Python 3 standard library + module. This function imports the module compatibly on Py2 and Py3 and + returns the top-level module. + + Example use: + >>> http = import_('http.client') + >>> http = import_('http.server') + >>> urllib = import_('urllib.request') + + Then: + >>> conn = http.client.HTTPConnection(...) + >>> response = urllib.request.urlopen('http://mywebsite.com') + >>> # etc. + + Use as follows: + >>> package_name = import_(module_name) + + On Py3, equivalent to this: + + >>> import module_name + + On Py2, equivalent to this if backport=False: + + >>> from future.moves import module_name + + or to this if backport=True: + + >>> from future.backports import module_name + + except that it also handles dotted module names such as ``http.client`` + The effect then is like this: + + >>> from future.backports import module + >>> from future.backports.module import submodule + >>> module.submodule = submodule + + Note that this would be a SyntaxError in Python: + + >>> from future.backports import http.client + + """ + # Python 2.6 doesn't have importlib in the stdlib, so it requires + # the backported ``importlib`` package from PyPI as a dependency to use + # this function: + import importlib + + if PY3: + return __import__(module_name) + else: + # client.blah = blah + # Then http.client = client + # etc. + if backport: + prefix = 'future.backports' + else: + prefix = 'future.moves' + parts = prefix.split('.') + module_name.split('.') + + modules = [] + for i, part in enumerate(parts): + sofar = '.'.join(parts[:i+1]) + modules.append(importlib.import_module(sofar)) + for i, part in reversed(list(enumerate(parts))): + if i == 0: + break + setattr(modules[i-1], part, modules[i]) + + # Return the next-most top-level module after future.backports / future.moves: + return modules[2] + + +def from_import(module_name, *symbol_names, **kwargs): + """ + Example use: + >>> HTTPConnection = from_import('http.client', 'HTTPConnection') + >>> HTTPServer = from_import('http.server', 'HTTPServer') + >>> urlopen, urlparse = from_import('urllib.request', 'urlopen', 'urlparse') + + Equivalent to this on Py3: + + >>> from module_name import symbol_names[0], symbol_names[1], ... + + and this on Py2: + + >>> from future.moves.module_name import symbol_names[0], ... + + or: + + >>> from future.backports.module_name import symbol_names[0], ... + + except that it also handles dotted module names such as ``http.client``. + """ + + if PY3: + return __import__(module_name) + else: + if 'backport' in kwargs and bool(kwargs['backport']): + prefix = 'future.backports' + else: + prefix = 'future.moves' + parts = prefix.split('.') + module_name.split('.') + module = importlib.import_module(prefix + '.' + module_name) + output = [getattr(module, name) for name in symbol_names] + if len(output) == 1: + return output[0] + else: + return output + + +class exclude_local_folder_imports(object): + """ + A context-manager that prevents standard library modules like configparser + from being imported from the local python-future source folder on Py3. + + (This was need prior to v0.16.0 because the presence of a configparser + folder would otherwise have prevented setuptools from running on Py3. Maybe + it's not needed any more?) + """ + def __init__(self, *args): + assert len(args) > 0 + self.module_names = args + # Disallow dotted module names like http.client: + if any(['.' in m for m in self.module_names]): + raise NotImplementedError('Dotted module names are not supported') + + def __enter__(self): + self.old_sys_path = copy.copy(sys.path) + self.old_sys_modules = copy.copy(sys.modules) + if sys.version_info[0] < 3: + return + # The presence of all these indicates we've found our source folder, + # because `builtins` won't have been installed in site-packages by setup.py: + FUTURE_SOURCE_SUBFOLDERS = ['future', 'past', 'libfuturize', 'libpasteurize', 'builtins'] + + # Look for the future source folder: + for folder in self.old_sys_path: + if all([os.path.exists(os.path.join(folder, subfolder)) + for subfolder in FUTURE_SOURCE_SUBFOLDERS]): + # Found it. Remove it. + sys.path.remove(folder) + + # Ensure we import the system module: + for m in self.module_names: + # Delete the module and any submodules from sys.modules: + # for key in list(sys.modules): + # if key == m or key.startswith(m + '.'): + # try: + # del sys.modules[key] + # except KeyError: + # pass + try: + module = __import__(m, level=0) + except ImportError: + # There's a problem importing the system module. E.g. the + # winreg module is not available except on Windows. + pass + + def __exit__(self, *args): + # Restore sys.path and sys.modules: + sys.path = self.old_sys_path + for m in set(self.old_sys_modules.keys()) - set(sys.modules.keys()): + sys.modules[m] = self.old_sys_modules[m] + +TOP_LEVEL_MODULES = ['builtins', + 'copyreg', + 'html', + 'http', + 'queue', + 'reprlib', + 'socketserver', + 'test', + 'tkinter', + 'winreg', + 'xmlrpc', + '_dummy_thread', + '_markupbase', + '_thread', + ] + +def import_top_level_modules(): + with exclude_local_folder_imports(*TOP_LEVEL_MODULES): + for m in TOP_LEVEL_MODULES: + try: + __import__(m) + except ImportError: # e.g. winreg + pass diff --git a/venv/lib/python3.10/site-packages/future/standard_library/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/standard_library/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f1861616fca43a168f5b11f8d532bb62b571b582 GIT binary patch literal 18617 zcmb_^d5j#{d0$m^^*KEUIm1)jRf&6$Es;GuR+L0@DN^K6OPQBB++Ay|RkNq7W~OKQ z;;U-TPH&IBt6AAn;z%&;7_cok!$n|wmDoA_e=Zq8;snltB#0|O0>nv>{U=B)z)98+ znBVVvRo&IY;d+g@2mSihJHPkd_rANPJw9GA@cC5st@@*;Vf+yvlAlRDT*BA4EyHk) z1;aI6t6?^+1*@4_NHy&R+hkd)kzPp4Z)PFmrB}1Ay_QzbN=a@Z-?Al_U&zaEVWA+u zV+&*QTU;o5neA~m{m5LHKyK2@tWF`n2l>5^jD=}$dV9v(^T;#}Z(@6&Hy!2nqul}K zF-oR!uz6_VQ1kG@VYK?hvf*amGq=ozBW}*ky9Ia5ExP0Gggfa@34D9j47KL&ZJF+r zJMGT6``rERf$vQ$JmWp48(Z0{o+-KZp-!&Fqa6jof_gz*%kJ#E=E6z$ zlzSQ_W%rDG7QeIJDKG85v}O5!R5!eI<+S@*_Z-U4pvULj&!fj#_Y3ZMl)QvFf6Tpr zIWNeZpItWGm$A}w?nU>DsQ;Xsnm0<9tACg=jKZCbV5Qx1&N|9#tL18|-t$~1Sn(V` zsJ7gya-BwfQB~E3bNtTS9p~)nQ=c!DoqH>F-)XkpZo_lDH#=?L^9#QB&{NgMlO1(C z-wE1IG}{@c+j2d{dFsk(dFye-*+Q$@^!#$6a6ND^h3onCW*>~34YR$oxEw+OdslYzr_e=~;1i@mr-Uu*(%p8@~+MNyM zEhmc}biJ;ZEKpuY0qA6r->$8Bf$u47aI$>8-oj|yf#(R&>-Cn4T|u_7k!%)teo*$i z9d1mrd?jc$PB=`OmbR%8?_;SAw9!>Y!7uHR@;)Jv<4NZqshBVT8Dc zJgrtofbXgXmZ@hx;Y3f$!+!V}eDLgd+AZH36nILt0cTv@#vy3flfb^&Y^Y9c0BH0W zftqYs309O>bw`TaZnL?uTSc>~*1DZVAW8!3>Vc<%cDv!n8?}T}_ta9gL7;o}PNmUq zEn`VChajrIF=$+Gp>1neRRdmowV;kA$K$;Uu&>r@*b?S$)VVp#%?GO9(wHQp?$Y(P z!X5Km-TO+r%gIhSS5~U^*3D{%hYP&HrEL*;fWYN*LrDDYVn?-Wo<9I&*$dj;pwq?t z$l~4vU0)Y`RIl2KS6i#-b~582dFs^7F78b&m6RfGCNkAx^7@vFOa5S`<`=M{+Y=Vxc#cFiw$gq->v98TbuYwhN&E;(D_?Za~L zd@{RyGyje4_=VMb!?Ac_iPQA8R*Y{?F7lGHGxsZf~FpoS@|HO$3yKg>qdK1|DjgvBHo4~w;S zYpK4hiC377sD3!P1N*~_Ch}o6B1t7nr3qwSfUG2`RhZF~F0_eQOoL81RvFT*(gYqW z5rCCSm?MN0u#hk<$kRKd7hP_)AA$*w!h1#Fy(5ewv1$X_ zg4vrMnMK3g+cQ$g1w2s{bb1FzS|yjZ563c=z^pJA(@S*>TO~=!Rxfhfq>5xw9cLAj zxT-Lut*XRIChy1nV%quPz6g%RYHf|T*)KQieocKwMhf!-t`LqT_<=f!>abW(6k%E^ z97}MDxLKkIYfFJ`gc;2+)H8(atW2h6IOte{I;x|reMxFVOL<}X^8A(S*F&2$JIv1C ztK7VObq+&j$ji>X6pneVTHEy&H-OdZ3mmSfOMKxmfKdv^TyJMHT@p773q!6E<_G+O zXx40kIQ#000+hPQIVN{-5p@Zr>T;q*G08mC308keszbY34OT+C=G7az{HpFIr#qJ5 zd%AWmQJakzp{}{cK|iglHguD(ph*qikq@cNC4BwQBk_y{(=`?>*IY=s)`IP(TpL1q8fs3)%|fit zQ1L-Y79~)BP?B@g5a7qd;$7i@nkn>tQmE%;aIGr1_EKBLTx12}7o_!Sr$d5CQ8tp? zMb>t_pjOsw&7&0HKm@BltTw9Y+8Zcx3t!!o(t?@9opIGA?=`%9s7#mqTM&lAgwn5b(u%TRgAL5@w2kzOz&3( zB0_bCs|5A0IxcQ9xq{j_DQv2}xC$X^uwW67!0jEqTrhAb9D`xBzTwQ3m&?vu$C5tzl1LvrfoIKXSfz>nvCY9q%EV^$W-m7v>&xAGutDHNMB%O@vK$d8=q1aH8 zX<~ytw^U=V_`|*B*XQ>Ll6Q>0@kah@)~2~>^{u|SWW8pX#skYW=8gBwTkn&@S>;n< z3hN6~SeLqqUXpycG`rGndb6wknbTjGg*?Sg@n`Fe_DNjE>awS1A^JU>1$T>Ol=A6Q zvp#6o$qvXGTKKb?%+2mpoMtPPdaE8(Dv)=={Doz&1tm~jOk*uRal?B1u+cl7#Ln`d z$Aw0_2I=@>dC=`vDHj&70A3s{0i@0gLK{~I1P_P^g&<4;9YdQ39i{Tq!WZ;C=Ka6Bqj(C&T2OS>4 zKyk?U1?z!@u2yK41*=MCnD#r3dI0W!3w=V<-?_rVg$8s3P}~fxY|^|?o>dEFM{ojYamc{_8{4UV z>XEr=x6+a~neW@W*9D_*&l~Cn2E_u;;3v#R(ypvJ+*gqW;Icw-tHzsEO6$$Axn@<9 zZa_TQmW=NI#6~2#PjVynqL*zJ^q*BU3#kG&Wyh8zI*p)S7M;11f_lG$j9?3wmI6sl zfxud8wz}F+ZCkD^UX~8h`^ef%_tO3Js=aBwZnTctMv&fk*#r?WjUclP^WJu@4|5%j zZ`k7eY607Mj=$W_jPX@$v$R7S6HhI3ouodR(I4xl+!VIm492#LKz+`a3C32(`{uIQ z&%9^eHNL}3km+fqfQ0)RFhnbBTrFsLP)4nNu-Aqr#YgUFGUmK>Y7-;)puJ9|LM#U1>P@}AQVq!W+_uAM zzgU`37504{Nto)iJ8GFZkPh7?oVXl7Ac9Whi2@edON}-}XGl)nx zu*m{m70oHDU{2uA`qScvx$&a8*X$h~xpKQ=x4sT}u9Q$fF(_0bDuH~lQhCs=3JJhd zwo-wf%go)mTbFOn-BoXJL4#!qbP0$Bc9LNA<4FD|zCwL-xC(YIXBCRM+{C2RaZg4* zq+plu{h@Y|BxfFk6;oO~*@G*)NyNoNXZ24Xtqk1xL|JF60iVVt(Lj@UB4? z6r%;Ooz~0PEGLFMObihPy%ALl{9lE3_-_542<`n zq$$J*7bcNN;d=#NxkrJq4Z5~!J)*Fg3hXU#!2^V%Rn~R_uOziwmVDh`=+K0qt`slS1ObcRi*M}UUpLd z2`gu2$TTLUBV?+m#mL%tZ@50HFFv(HFh}$cOs<6@3BP(hmih+j!=m!2@oSjhw<2Cw zRm)FE86Xkfn-u(R6Q&G0XHo@7P`!x(L{fe0{fv4OwQ7S&kI7q1zRBd&OI#f?o;?vv`CLO?4tjt=a*YUXWR}ms6YYYf-7{ zo0QU^lVpP&wGyz+G>F-= z%TjkR_SE(s)Z1jiV1nqey%)2OJu=lDx1dV^$sP71Y^AZ@JA(E16b$3!JD}~LDC;X8 zxnAP>I8Ay!1jESy2QHIX2#*~yk#Z)U7~DTz3)~{*!I!~11Zx=to$a#~o*AeK}iRSfqKMwFlmgA&;RY&2#Qc0(~i3iO~ai33D`j7I5X z=YD?|Q+|#6{X8;unsVn98^Bd~(hwym}NtHvA8Q-Q&)$N=Z}KbT-nURa$yfS=?5F+I$~V+;bj!VvUVhDy5`KiS*6krIF$C*#jH-)Ht(sA1C2}!n*V6) zumc43ns7jX4atIz-)ckRAWRASd&IV7GEM=ThR<895j>tt8{z4fl#yiWs+b$vT}ZdY zDDD%vF+_!uH0m9_>NPxi9^k;;I8$=o+I)h+m&WuJn7TW6=f>qLb6060eD%iMydZTf z>dmWHfdxa}Cn%$c@#+B+g#@a2E|w$0f`*%LDI(AgBn|gTOHBuc9JEKYrDAO7sWZ+1 zbs^kBgCqjyOzUmiRKJeu5oE=)@H|0Q@&+Pm$?WZuJ-7;sod>$%xta_n02#6&u@fBB zAZfEllCS?_OuTGc{k7d@Ct{E0`W+8yq?~E>y%?WALMr`>kRoFO_=JmF zz<`6B@?%0!On7t$RnHN722Z=or6a406sCsvW6=W(;C=F9G5-V~HsltGu`L$6$ZA`%tVCn7+J?6j z==F|pM4XtxQx%-ri%ejMR0z^HDix;GJE#>=O8qQz?=l(1ERlSElSo9G3Na2ew|8J< z7ymrsocaiHPHl1epW6in3SPe*!;rzng5b9Q2^h2hr~cCD07EHl8x_C8Q7Dp%lr~<> zD3*?FUkU}hiL!mKAQOmy4ZAM{(k&CVVKacWOl-p`b%fSn=3z{*U<09(_dk#qM?F7%#i7umxQ1hjmau`Y~f2CMKD5(8R{=1XplsRX7(;$S`zrGGu}V zhgmcjwlA!3#mn;YivFTC8ez$^f=}uXQC=tG_^cH)-TooZB?*oY757% z552fTHQ`C@xFAoZl=>bzglQQzOfS_Hd@G}f6i!E)X_7kqE{}s&&Al)OkhKH79#2{7 zH&9f=ckr1;j>jg4^54-b7M%l##&10LHG31svT4DpWbu$-BZ45^hupVmqXdjRDzQ+K z4q#V;C5RTEOdrSB&upb&oX)tGYc{f*S^TCNxn_Pd2ff2`ZR87^Fis+$Mt*FwAo&dP z#mzCvXOSP@EJ6s+^|O_HKaaG~FCZQ3k0CAgi%7@&Il|@UV9v`+E{|M6as}kZBsYd! zQF6r#Mo&XEu{jPaSl)&xzpZ|;>odRExH`1e&&G|+1=dhPG;m0mL!wED5Hr(N|o+bvku zVc`#O0R}dZ(MT_--x3Zo`#D}67}_4zT`h7%fl?xNFM0t@BJ?N4guMPk2d?b+h_W=2AKkQr0MXrA6g9O0uo_a+C=dW2pvDv)6YPcl|-Z`^n| zAjZ!|K@PoQG9U^SHe(iW9Een44kal>EcCKb=mJ}`kk>7kD;?1CQu^lY*XHJFEz=yY zQW;7|VHW;PiuRaSXVe%jUU)#$kn+%TtbtX(iCXnrOx|bmeI|c{NrB0GNWxJcIai_n zCM(BTITa18efNM;{Wj}pELMLDNoiVqCLoLy$RrO(na;zAF(^kqF3-T$kMc01>)~Zu zT$NS)8Nd#J+5y5&QZ^aeK_ayJha_VU0V_3@sZ#+qvkvfg_n5GF`p21TwMUH1h8c$R!Ppr+PCQSABF!czzB-N)~8z^MgsmxT}5*n&u}xGP#$0DnTN;M~tMl-5`Bb#4B@I$y83SR7krdS9v=;CJ7WG4l zl!dhV0e-GMU10i2S%o%h1+c%k5QfNm;X(&0iRlW$lAHP_yf5I~9uN1OX#BsZ86510XDtbinehCZ$5a8kLqIurMwWz1cp39 zX_)s~UFd|6cr?BI`zTbu#DuC9bjUqg4FmcO?5buR0ZqFg3kB|zL>5{)ZJU-3hsZ)j zF+&MgMDnMii~2{L(dvDDS0qW=MgPBXL{x*JFgL`J@krU%NOBpAQNIVM)bAr10i5J0 zh3^%7{fkIowFVXlW&lIz6(P@$T+tA-)j??iBc--t%aeHW#LSZEeOZ=$*F)$uLQd}~ z7~{1YE=g0w=n+#Q&pqK>V{|JULch|u(3`$0X73R^7{P9${lLDs9}i+*%+kKthh=fg zihSOtMjTV{Au=ece~R{r>oqVb-omJIq4pa+#EK6M@4I=odwC5btN^`n7-6Cgc!Ya* zV8#eju%Hall4J_{g%3mfP5|BkP}c!~2;K#I20RD&mMT1kfr52#?ZLtsDIz21$TJ+A z<7;?`RU^EdkWzUUzW*S#WvB^xv4AgXKrZi#`sAi4&!HqO1~;fit{s(R7$QPt$xWk# z@dKIO_vC!94B|Y+3p8XduywUsp6BvV;VD~(69&38wPr{zUK7EV;0Hqya0Dr2WSU>2 z6>1%5hdJuJwtd9`+b0|yHKUP6B*a@-Al*l{}H9?|f`xD)~Sb)FSj%7oZMAzheoK;jF||1VKI5`#dKa28*=YLp9P)2W-9 zs-Tr4#viCjH?^5+;SlHr0Pn};qU)W%2cR@9Q%yqj!4}o410d2Fs72}Rbl-NZe#Xrl zFun;@3O)ol;i>UL&&_E`;=!kaT#(m&N$%1AknWFuc!x#Z!j(?b?*L>eKoP@e2cf9- zv&0RnwHx>S45cC(#7;rGbFzWJ^hVS@vYbXXSiS`^ z41T7~iAF5vHGFhW;nUjY96lQeOu} zZ1@NiiQ-W7eTlJ~*9B&yZf%8oe*b>r=HXAT4Got5WFQ;M~SF^axaq$e+rNz zr@3qU$aNpD4RN`8c_Te_5#9`nDuD}wygom0N!&(>lcAeY`%mbqcjh-*LG?|EgMnla zk%>Rgb|>~o&!xG+hp`$vSo(*>Bo;`Fk2nQCphQs`L$I}+AKh{!+UoBxsWAD+NJ4wH zjkl!!0kh+}WyF$cjllahMpgd|<-JcPPofXgISto; zVljckizLGv^aB7XE4KIN%o$4)lD!}zMGz7A^8X7u)bJhoaJw$y>mNt*(cyG>?ZDt` z2fXaz5u9qH>w1WXMcj4;5(VBWjIOd@U4Tw1XmmMtzs1qzns3lI11WPC_ny8R@V=1` zLS`Dg3?;(}HZFS9KQt=GacPtf1rkTUSa(ui0eEVIPz6w%Hz2%N$k594@r zQ*&QhF5;W?%gFEGc&duBKOu?|kfqek|8=qr==vxn0VVXhBfw-AA4SKlbZSpS$n(|(9J8Qd$}rN_M&J{IsJo5_u&D8j?? zxj{RE3yp26^1_l4VrZ^HpF0GF9skGR01pUn>!;o`q23#-DQJDu--az&*fYajBle6# zJuQCG+_%K0{NP!%&a?HV)yqL2gdpH%{tASE*Nq3CwT)nG`9B>St{zlE-^s}a79cl9#@IBS^|jbZ311S2#J@EBvKo;qedgl zXse<6Z)_ye=zGY;?^7JS_UgS?@6J``Z@+r?3VvSw(zV++uFl<^S8|nxEa`u+yYQuN zBKLoZn$IJ{@a_qin&23L%L5W492?f#g_M;Ow@1qQk^LvV7eC$}jGQ5{m6$8!g~ml- z6!5fyI4|TNFg}7{2?I3nRp$@V@LYh=3AKG#F<8^LE*KB?4g*ZH>VIJ*ZBFApYOna) z%tVHKo zl?66cW1Ws8ntIo=iEB~X;d6@!)3Czwnz;U!Ren2?l&*t@^nZV{BlZ@_RZ;huZ9?^JHgy*77a5cf4iTXVM~2@gg}4JzD7|3S+gji~lj;E25^B z0`D>Rt4ze_C8kUsr25-PAl=E!iP|al(=7f)Cf{Z9>rChYkzg7L-p~%VEtdU&$Ut!1ed@*Bx#HCS1CzkU00000 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/tests/__init__.py b/venv/lib/python3.10/site-packages/future/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/future/tests/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/tests/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9df5e5b5235496fddac4d11d864543947e7005e1 GIT binary patch literal 184 zcmd1j<>g`k0!8-fOc4DTL?8o3AjbiSi&=m~3PUi1CZpdpP7@do12)In4VgsUzVCzrk|6Uq+d{3l98WhtY>JTUz}Nzs#}nl zoDEb_te;j|Qd*R%Uy@o3)EXb3nU`4-AFo$Xd5gm)H$SB`C)EyQX)zO!U||3NIjt>< literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/tests/__pycache__/base.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/tests/__pycache__/base.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e155cb5fb8b9eb07a60445a5c744caccb432bd9d GIT binary patch literal 16552 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 @J-; z?l=b`S?MbBQ%nr$#fUtS@H>D*FGH%KNqboRD=cbg3K0G_P7i9cLgWVjQ|@F9_e;oS zB-|AX`P@@?GhlvI(#0z!pVT?~)L^Ok*#h1BRvx8U`d+O}w80bgK`b=)p&A!`W| z<2D4wd_)h@!Ijv@>(5Uqc1|jfL*(2dPUsTgPdyO)sUn(bjA0@>aMGv-2v%#E@8^U3 zhQRR;nWt0)n-=#<`;>3EvsV^qUfD-XljPpaFXBB~@Ji8qgR-KDwbN=XA=+F}h>R&D zM%tZiq;n!DOp6PtC6dAiLukwH3=u&qB9%l8s(;7ZrMNFYthcEplfM11k=$v;zqJX= ztrnI8KTtqApfAe<3lY~MSd%0aZ7Z|6#762bQ2ZtLwSkkmQ3E0A->QqmLm>I=6Sf5+ zE*@wKO;9GJase(aEQ!cCv3~XqED@F#ilk1V4`l+`w;`5LuP(~uLaIz~2VM&k$^hk{h~Llfmo03i`(JqfGOU~&3FqO`V~E3lhH)93sfXV%_M(2fI=QrM8B&?8qDX!S1MWu)aB` z{v1oo%ugnyBCS&tnsD&H#EnQ3{(Ckl#wo#(UKB<652ZdKN!sJc5r@Map>XnhScue% z`bW4>{{jX4dDNN=&bC{@&cH=_InIPULp@lDZiwHmF1a8eKu{(KKGeFQwtbMk{t})2 zN7C0#oG{7SgycvxDlPN^u4utU$qV{p9acCZO{k~u8ua+MfL6Hs_?R&|^AviNg?WNt z6N8K-t~ig(+$MtU&v4@}IKha3VP5IAs$%VwiBB_w2h&Lyo(g{fl!L|qG7K83clQ{g5 z41YyHT?a#w-YQ8%NCr>3jKmOIDP${4-l>b>+sNR6w(NRq>jLF{x`W&NL6`(u-Sj1p z^?8+9>3|kmx-^g2_tV>RJ6b^~&0ec92^t zn;Qd@HhyCUdk2w`Ee}7~WSR^-`htKsT)JzZq!jz4$}@VO$x1CrZq2k}-E>{1CNQ6i zl+kwSB;cM#31115CsR%~7Z{6;F2&cEEGjR7=|62j3wbc+Iy+aRHuP9ha9m0{VX*a5 zB#kl;`W6Eo)=qy2a*xCl>_E$20U=07d?M)rq#GyBwV5m=;XmZ`wAZC&GRtjFGZC~Y z5L=>S1fZ?I?aOF{6+NFn0i1f+UWFEwnrOY5k}ypRpG^wHqV4V>f;d1AB$4=oMNO2w z^(r2nk6$HuZ#K&ipJdux&O9_vI%}nyan-u@MjQc0{Z|9Me;XN zYc?KJ0IB*@wj&;;oh-DI5vKwr{u6Hg6(uR{i`tonrdSi1GgtY0g($@V8jL_p87!7r z{B;(4EW`~hwj33jgjSe{`ykj>_CR7tVJ+%qei(QiUlGnJ%4P9IDavp~H%)jlZYIBa zp7)0 0 else 0 + + def mymin(numbers): + return min(numbers) if len(numbers) > 0 else float('inf') + + assert mymax(uufuture_line_numbers) <= mymin(future_line_numbers), \ + 'the __future__ and future imports are out of order' + + # assert mymax(future_line_numbers) <= mymin(builtins_line_numbers), \ + # 'the future and builtins imports are out of order' + + uul = sorted([lines[i] for i in uufuture_line_numbers]) + sorted_uufuture_lines = dict(zip(uufuture_line_numbers, uul)) + + fl = sorted([lines[i] for i in future_line_numbers]) + sorted_future_lines = dict(zip(future_line_numbers, fl)) + + bl = sorted([lines[i] for i in builtins_line_numbers]) + sorted_builtins_lines = dict(zip(builtins_line_numbers, bl)) + + # Replace the old unsorted "from __future__ import ..." lines with the + # new sorted ones: + new_lines = [] + for i in range(len(lines)): + if i in uufuture_line_numbers: + new_lines.append(sorted_uufuture_lines[i]) + elif i in future_line_numbers: + new_lines.append(sorted_future_lines[i]) + elif i in builtins_line_numbers: + new_lines.append(sorted_builtins_lines[i]) + else: + new_lines.append(lines[i]) + return '\n'.join(new_lines) + + +class VerboseCalledProcessError(CalledProcessError): + """ + Like CalledProcessError, but it displays more information (message and + script output) for diagnosing test failures etc. + """ + def __init__(self, msg, returncode, cmd, output=None): + self.msg = msg + self.returncode = returncode + self.cmd = cmd + self.output = output + + def __str__(self): + return ("Command '%s' failed with exit status %d\nMessage: %s\nOutput: %s" + % (self.cmd, self.returncode, self.msg, self.output)) + +class FuturizeError(VerboseCalledProcessError): + pass + +class PasteurizeError(VerboseCalledProcessError): + pass + + +class CodeHandler(unittest.TestCase): + """ + Handy mixin for test classes for writing / reading / futurizing / + running .py files in the test suite. + """ + def setUp(self): + """ + The outputs from the various futurize stages should have the + following headers: + """ + # After stage1: + # TODO: use this form after implementing a fixer to consolidate + # __future__ imports into a single line: + # self.headers1 = """ + # from __future__ import absolute_import, division, print_function + # """ + self.headers1 = reformat_code(""" + from __future__ import absolute_import + from __future__ import division + from __future__ import print_function + """) + + # After stage2 --all-imports: + # TODO: use this form after implementing a fixer to consolidate + # __future__ imports into a single line: + # self.headers2 = """ + # from __future__ import (absolute_import, division, + # print_function, unicode_literals) + # from future import standard_library + # from future.builtins import * + # """ + self.headers2 = reformat_code(""" + from __future__ import absolute_import + from __future__ import division + from __future__ import print_function + from __future__ import unicode_literals + from future import standard_library + standard_library.install_aliases() + from builtins import * + """) + self.interpreters = [sys.executable] + self.tempdir = tempfile.mkdtemp() + os.path.sep + pypath = os.getenv('PYTHONPATH') + if pypath: + self.env = {'PYTHONPATH': os.getcwd() + os.pathsep + pypath} + else: + self.env = {'PYTHONPATH': os.getcwd()} + + def convert(self, code, stages=(1, 2), all_imports=False, from3=False, + reformat=True, run=True, conservative=False): + """ + Converts the code block using ``futurize`` and returns the + resulting code. + + Passing stages=[1] or stages=[2] passes the flag ``--stage1`` or + ``stage2`` to ``futurize``. Passing both stages runs ``futurize`` + with both stages by default. + + If from3 is False, runs ``futurize``, converting from Python 2 to + both 2 and 3. If from3 is True, runs ``pasteurize`` to convert + from Python 3 to both 2 and 3. + + Optionally reformats the code block first using the reformat() function. + + If run is True, runs the resulting code under all Python + interpreters in self.interpreters. + """ + if reformat: + code = reformat_code(code) + self._write_test_script(code) + self._futurize_test_script(stages=stages, all_imports=all_imports, + from3=from3, conservative=conservative) + output = self._read_test_script() + if run: + for interpreter in self.interpreters: + _ = self._run_test_script(interpreter=interpreter) + return output + + def compare(self, output, expected, ignore_imports=True): + """ + Compares whether the code blocks are equal. If not, raises an + exception so the test fails. Ignores any trailing whitespace like + blank lines. + + If ignore_imports is True, passes the code blocks into the + strip_future_imports method. + + If one code block is a unicode string and the other a + byte-string, it assumes the byte-string is encoded as utf-8. + """ + if ignore_imports: + output = self.strip_future_imports(output) + expected = self.strip_future_imports(expected) + if isinstance(output, bytes) and not isinstance(expected, bytes): + output = output.decode('utf-8') + if isinstance(expected, bytes) and not isinstance(output, bytes): + expected = expected.decode('utf-8') + self.assertEqual(order_future_lines(output.rstrip()), + expected.rstrip()) + + def strip_future_imports(self, code): + """ + Strips any of these import lines: + + from __future__ import + from future + from future. + from builtins + + or any line containing: + install_hooks() + or: + install_aliases() + + Limitation: doesn't handle imports split across multiple lines like + this: + + from __future__ import (absolute_import, division, print_function, + unicode_literals) + """ + output = [] + # We need .splitlines(keepends=True), which doesn't exist on Py2, + # so we use this instead: + for line in code.split('\n'): + if not (line.startswith('from __future__ import ') + or line.startswith('from future ') + or line.startswith('from builtins ') + or 'install_hooks()' in line + or 'install_aliases()' in line + # but don't match "from future_builtins" :) + or line.startswith('from future.')): + output.append(line) + return '\n'.join(output) + + def convert_check(self, before, expected, stages=(1, 2), all_imports=False, + ignore_imports=True, from3=False, run=True, + conservative=False): + """ + Convenience method that calls convert() and compare(). + + Reformats the code blocks automatically using the reformat_code() + function. + + If all_imports is passed, we add the appropriate import headers + for the stage(s) selected to the ``expected`` code-block, so they + needn't appear repeatedly in the test code. + + If ignore_imports is True, ignores the presence of any lines + beginning: + + from __future__ import ... + from future import ... + + for the purpose of the comparison. + """ + output = self.convert(before, stages=stages, all_imports=all_imports, + from3=from3, run=run, conservative=conservative) + if all_imports: + headers = self.headers2 if 2 in stages else self.headers1 + else: + headers = '' + + reformatted = reformat_code(expected) + if headers in reformatted: + headers = '' + + self.compare(output, headers + reformatted, + ignore_imports=ignore_imports) + + def unchanged(self, code, **kwargs): + """ + Convenience method to ensure the code is unchanged by the + futurize process. + """ + self.convert_check(code, code, **kwargs) + + def _write_test_script(self, code, filename='mytestscript.py'): + """ + Dedents the given code (a multiline string) and writes it out to + a file in a temporary folder like /tmp/tmpUDCn7x/mytestscript.py. + """ + if isinstance(code, bytes): + code = code.decode('utf-8') + # Be explicit about encoding the temp file as UTF-8 (issue #63): + with io.open(self.tempdir + filename, 'wt', encoding='utf-8') as f: + f.write(dedent(code)) + + def _read_test_script(self, filename='mytestscript.py'): + with io.open(self.tempdir + filename, 'rt', encoding='utf-8') as f: + newsource = f.read() + return newsource + + def _futurize_test_script(self, filename='mytestscript.py', stages=(1, 2), + all_imports=False, from3=False, + conservative=False): + params = [] + stages = list(stages) + if all_imports: + params.append('--all-imports') + if from3: + script = 'pasteurize.py' + else: + script = 'futurize.py' + if stages == [1]: + params.append('--stage1') + elif stages == [2]: + params.append('--stage2') + else: + assert stages == [1, 2] + if conservative: + params.append('--conservative') + # No extra params needed + + # Absolute file path: + fn = self.tempdir + filename + call_args = [sys.executable, script] + params + ['-w', fn] + try: + output = check_output(call_args, stderr=STDOUT, env=self.env) + except CalledProcessError as e: + with open(fn) as f: + msg = ( + 'Error running the command %s\n' + '%s\n' + 'Contents of file %s:\n' + '\n' + '%s') % ( + ' '.join(call_args), + 'env=%s' % self.env, + fn, + '----\n%s\n----' % f.read(), + ) + ErrorClass = (FuturizeError if 'futurize' in script else PasteurizeError) + + if not hasattr(e, 'output'): + # The attribute CalledProcessError.output doesn't exist on Py2.6 + e.output = None + raise ErrorClass(msg, e.returncode, e.cmd, output=e.output) + return output + + def _run_test_script(self, filename='mytestscript.py', + interpreter=sys.executable): + # Absolute file path: + fn = self.tempdir + filename + try: + output = check_output([interpreter, fn], + env=self.env, stderr=STDOUT) + except CalledProcessError as e: + with open(fn) as f: + msg = ( + 'Error running the command %s\n' + '%s\n' + 'Contents of file %s:\n' + '\n' + '%s') % ( + ' '.join([interpreter, fn]), + 'env=%s' % self.env, + fn, + '----\n%s\n----' % f.read(), + ) + if not hasattr(e, 'output'): + # The attribute CalledProcessError.output doesn't exist on Py2.6 + e.output = None + raise VerboseCalledProcessError(msg, e.returncode, e.cmd, output=e.output) + return output + + +# Decorator to skip some tests on Python 2.6 ... +skip26 = unittest.skipIf(PY26, "this test is known to fail on Py2.6") + + +def expectedFailurePY3(func): + if not PY3: + return func + return unittest.expectedFailure(func) + +def expectedFailurePY26(func): + if not PY26: + return func + return unittest.expectedFailure(func) + + +def expectedFailurePY27(func): + if not PY27: + return func + return unittest.expectedFailure(func) + + +def expectedFailurePY2(func): + if not PY2: + return func + return unittest.expectedFailure(func) + + +# Renamed in Py3.3: +if not hasattr(unittest.TestCase, 'assertRaisesRegex'): + unittest.TestCase.assertRaisesRegex = unittest.TestCase.assertRaisesRegexp + +# From Py3.3: +def assertRegex(self, text, expected_regex, msg=None): + """Fail the test unless the text matches the regular expression.""" + if isinstance(expected_regex, (str, unicode)): + assert expected_regex, "expected_regex must not be empty." + expected_regex = re.compile(expected_regex) + if not expected_regex.search(text): + msg = msg or "Regex didn't match" + msg = '%s: %r not found in %r' % (msg, expected_regex.pattern, text) + raise self.failureException(msg) + +if not hasattr(unittest.TestCase, 'assertRegex'): + bind_method(unittest.TestCase, 'assertRegex', assertRegex) + +class _AssertRaisesBaseContext(object): + + def __init__(self, expected, test_case, callable_obj=None, + expected_regex=None): + self.expected = expected + self.test_case = test_case + if callable_obj is not None: + try: + self.obj_name = callable_obj.__name__ + except AttributeError: + self.obj_name = str(callable_obj) + else: + self.obj_name = None + if isinstance(expected_regex, (bytes, str)): + expected_regex = re.compile(expected_regex) + self.expected_regex = expected_regex + self.msg = None + + def _raiseFailure(self, standardMsg): + msg = self.test_case._formatMessage(self.msg, standardMsg) + raise self.test_case.failureException(msg) + + def handle(self, name, callable_obj, args, kwargs): + """ + If callable_obj is None, assertRaises/Warns is being used as a + context manager, so check for a 'msg' kwarg and return self. + If callable_obj is not None, call it passing args and kwargs. + """ + if callable_obj is None: + self.msg = kwargs.pop('msg', None) + return self + with self: + callable_obj(*args, **kwargs) + +class _AssertWarnsContext(_AssertRaisesBaseContext): + """A context manager used to implement TestCase.assertWarns* methods.""" + + def __enter__(self): + # The __warningregistry__'s need to be in a pristine state for tests + # to work properly. + for v in sys.modules.values(): + if getattr(v, '__warningregistry__', None): + v.__warningregistry__ = {} + self.warnings_manager = warnings.catch_warnings(record=True) + self.warnings = self.warnings_manager.__enter__() + warnings.simplefilter("always", self.expected) + return self + + def __exit__(self, exc_type, exc_value, tb): + self.warnings_manager.__exit__(exc_type, exc_value, tb) + if exc_type is not None: + # let unexpected exceptions pass through + return + try: + exc_name = self.expected.__name__ + except AttributeError: + exc_name = str(self.expected) + first_matching = None + for m in self.warnings: + w = m.message + if not isinstance(w, self.expected): + continue + if first_matching is None: + first_matching = w + if (self.expected_regex is not None and + not self.expected_regex.search(str(w))): + continue + # store warning for later retrieval + self.warning = w + self.filename = m.filename + self.lineno = m.lineno + return + # Now we simply try to choose a helpful failure message + if first_matching is not None: + self._raiseFailure('"{}" does not match "{}"'.format( + self.expected_regex.pattern, str(first_matching))) + if self.obj_name: + self._raiseFailure("{} not triggered by {}".format(exc_name, + self.obj_name)) + else: + self._raiseFailure("{} not triggered".format(exc_name)) + + +def assertWarns(self, expected_warning, callable_obj=None, *args, **kwargs): + """Fail unless a warning of class warnClass is triggered + by callable_obj when invoked with arguments args and keyword + arguments kwargs. If a different type of warning is + triggered, it will not be handled: depending on the other + warning filtering rules in effect, it might be silenced, printed + out, or raised as an exception. + + If called with callable_obj omitted or None, will return a + context object used like this:: + + with self.assertWarns(SomeWarning): + do_something() + + An optional keyword argument 'msg' can be provided when assertWarns + is used as a context object. + + The context manager keeps a reference to the first matching + warning as the 'warning' attribute; similarly, the 'filename' + and 'lineno' attributes give you information about the line + of Python code from which the warning was triggered. + This allows you to inspect the warning after the assertion:: + + with self.assertWarns(SomeWarning) as cm: + do_something() + the_warning = cm.warning + self.assertEqual(the_warning.some_attribute, 147) + """ + context = _AssertWarnsContext(expected_warning, self, callable_obj) + return context.handle('assertWarns', callable_obj, args, kwargs) + +if not hasattr(unittest.TestCase, 'assertWarns'): + bind_method(unittest.TestCase, 'assertWarns', assertWarns) diff --git a/venv/lib/python3.10/site-packages/future/types/__init__.py b/venv/lib/python3.10/site-packages/future/types/__init__.py new file mode 100644 index 0000000..0625077 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/types/__init__.py @@ -0,0 +1,257 @@ +""" +This module contains backports the data types that were significantly changed +in the transition from Python 2 to Python 3. + +- an implementation of Python 3's bytes object (pure Python subclass of + Python 2's builtin 8-bit str type) +- an implementation of Python 3's str object (pure Python subclass of + Python 2's builtin unicode type) +- a backport of the range iterator from Py3 with slicing support + +It is used as follows:: + + from __future__ import division, absolute_import, print_function + from builtins import bytes, dict, int, range, str + +to bring in the new semantics for these functions from Python 3. And +then, for example:: + + b = bytes(b'ABCD') + assert list(b) == [65, 66, 67, 68] + assert repr(b) == "b'ABCD'" + assert [65, 66] in b + + # These raise TypeErrors: + # b + u'EFGH' + # b.split(u'B') + # bytes(b',').join([u'Fred', u'Bill']) + + + s = str(u'ABCD') + + # These raise TypeErrors: + # s.join([b'Fred', b'Bill']) + # s.startswith(b'A') + # b'B' in s + # s.find(b'A') + # s.replace(u'A', b'a') + + # This raises an AttributeError: + # s.decode('utf-8') + + assert repr(s) == 'ABCD' # consistent repr with Py3 (no u prefix) + + + for i in range(10**11)[:10]: + pass + +and:: + + class VerboseList(list): + def append(self, item): + print('Adding an item') + super().append(item) # new simpler super() function + +For more information: +--------------------- + +- future.types.newbytes +- future.types.newdict +- future.types.newint +- future.types.newobject +- future.types.newrange +- future.types.newstr + + +Notes +===== + +range() +------- +``range`` is a custom class that backports the slicing behaviour from +Python 3 (based on the ``xrange`` module by Dan Crosta). See the +``newrange`` module docstring for more details. + + +super() +------- +``super()`` is based on Ryan Kelly's ``magicsuper`` module. See the +``newsuper`` module docstring for more details. + + +round() +------- +Python 3 modifies the behaviour of ``round()`` to use "Banker's Rounding". +See http://stackoverflow.com/a/10825998. See the ``newround`` module +docstring for more details. + +""" + +from __future__ import absolute_import, division, print_function + +import functools +from numbers import Integral + +from future import utils + + +# Some utility functions to enforce strict type-separation of unicode str and +# bytes: +def disallow_types(argnums, disallowed_types): + """ + A decorator that raises a TypeError if any of the given numbered + arguments is of the corresponding given type (e.g. bytes or unicode + string). + + For example: + + @disallow_types([0, 1], [unicode, bytes]) + def f(a, b): + pass + + raises a TypeError when f is called if a unicode object is passed as + `a` or a bytes object is passed as `b`. + + This also skips over keyword arguments, so + + @disallow_types([0, 1], [unicode, bytes]) + def g(a, b=None): + pass + + doesn't raise an exception if g is called with only one argument a, + e.g.: + + g(b'Byte string') + + Example use: + + >>> class newbytes(object): + ... @disallow_types([1], [unicode]) + ... def __add__(self, other): + ... pass + + >>> newbytes('1234') + u'1234' #doctest: +IGNORE_EXCEPTION_DETAIL + Traceback (most recent call last): + ... + TypeError: can't concat 'bytes' to (unicode) str + """ + + def decorator(function): + + @functools.wraps(function) + def wrapper(*args, **kwargs): + # These imports are just for this decorator, and are defined here + # to prevent circular imports: + from .newbytes import newbytes + from .newint import newint + from .newstr import newstr + + errmsg = "argument can't be {0}" + for (argnum, mytype) in zip(argnums, disallowed_types): + # Handle the case where the type is passed as a string like 'newbytes'. + if isinstance(mytype, str) or isinstance(mytype, bytes): + mytype = locals()[mytype] + + # Only restrict kw args only if they are passed: + if len(args) <= argnum: + break + + # Here we use type() rather than isinstance() because + # __instancecheck__ is being overridden. E.g. + # isinstance(b'abc', newbytes) is True on Py2. + if type(args[argnum]) == mytype: + raise TypeError(errmsg.format(mytype)) + + return function(*args, **kwargs) + return wrapper + return decorator + + +def no(mytype, argnums=(1,)): + """ + A shortcut for the disallow_types decorator that disallows only one type + (in any position in argnums). + + Example use: + + >>> class newstr(object): + ... @no('bytes') + ... def __add__(self, other): + ... pass + + >>> newstr(u'1234') + b'1234' #doctest: +IGNORE_EXCEPTION_DETAIL + Traceback (most recent call last): + ... + TypeError: argument can't be bytes + + The object can also be passed directly, but passing the string helps + to prevent circular import problems. + """ + if isinstance(argnums, Integral): + argnums = (argnums,) + disallowed_types = [mytype] * len(argnums) + return disallow_types(argnums, disallowed_types) + + +def issubset(list1, list2): + """ + Examples: + + >>> issubset([], [65, 66, 67]) + True + >>> issubset([65], [65, 66, 67]) + True + >>> issubset([65, 66], [65, 66, 67]) + True + >>> issubset([65, 67], [65, 66, 67]) + False + """ + n = len(list1) + for startpos in range(len(list2) - n + 1): + if list2[startpos:startpos+n] == list1: + return True + return False + + +if utils.PY3: + import builtins + bytes = builtins.bytes + dict = builtins.dict + int = builtins.int + list = builtins.list + object = builtins.object + range = builtins.range + str = builtins.str + + # The identity mapping + newtypes = {bytes: bytes, + dict: dict, + int: int, + list: list, + object: object, + range: range, + str: str} + + __all__ = ['newtypes'] + +else: + + from .newbytes import newbytes + from .newdict import newdict + from .newint import newint + from .newlist import newlist + from .newrange import newrange + from .newobject import newobject + from .newstr import newstr + + newtypes = {bytes: newbytes, + dict: newdict, + int: newint, + long: newint, + list: newlist, + object: newobject, + range: newrange, + str: newbytes, + unicode: newstr} + + __all__ = ['newbytes', 'newdict', 'newint', 'newlist', 'newrange', 'newstr', 'newtypes'] diff --git a/venv/lib/python3.10/site-packages/future/types/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/types/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..326faa9305903be18f58cfeda9fa4d0a115635fa GIT binary patch literal 6018 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 TX^&DL-Ff4{+hpe7$IX8Nw-t`v literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/types/__pycache__/newbytes.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/types/__pycache__/newbytes.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ac88cf01a08a50eedb9090e74bfb29edc3c76042 GIT binary patch literal 13779 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 C(3zzG literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/types/__pycache__/newint.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/types/__pycache__/newint.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7e0f47ac59422a57d2240fe92499c1b6e2e9f790 GIT binary patch literal 12122 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/types/__pycache__/newlist.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/types/__pycache__/newlist.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3b935350dd3663368f3e11862f1fda6c88c24462 GIT binary patch literal 3088 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/types/__pycache__/newopen.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/types/__pycache__/newopen.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..80c67c7edebf1b64f50146bec2a8843401769fea GIT binary patch literal 1607 zcmZWp&2Qv16t|PiN5f3FyIb)k1cnO?+D>-q1y%_0Q9wwji&P|}xmcOl*`}L`gYC4; zFt_a=vUBW-|HoHOoVo1<-t#o0cIwD4j-UPB@Ap2UhQpY^_^|h9@o7lN-}rHJMDX!7 zO!FQHK_*1fN$?{PR0Nkq1TuUXP9hPWkWsYwEB=O=W@>C<8!K6^G_$9Y{W7u+tT9hym>M#8B+QyD#pEJ$Ubk`w*0U*Q?|O zGF#Z+bXwPdsn+Ve5JmNzy^wQOr`j@=--%LD0scJAB!r2<_(7`~`)M7^j}5Emhe$lN z<9ZJ95=|+`?B^nrm61=`wqJ^+BVM+ZE9Ru={$F zoT`~j&dg^|zDR)inar$7ic%fS(kgu}bpp9OPs(DN)V@v*$4?$7rm*s$PO}$q!X$ZP z8!Zz%ui@i5oIu<4IWMZha()kKAg2M1>0+-v(yFrnRPDfZ2d1aK4~r!^Bd_R^z5?=R z;fk*43DIb56zML!T<1aq9M|>Kr0$_A(0x=<<5{l75Oy>|c?k1g^s`SF!xoG;^3Q)T z?!eh(;wGHc2GACqNXt~Xu85f12>HT52m#wF@Q8cq<-tBNM zu`M{qzmazm(Z&6i(?)xz);Gj zLM?8if%21oVEKK}g4w-Qd~4+~)C#)SnB@`GSRA7mYZu#wa~E^I?q66BIRCv#%WF-K zbD=WMHKO*Fr7@ctqpaUW@jeRdvm3&fAx0LHX!bz#NkrqQAH`uGo}riI;ks&y{ps~LEP4lM*7d(!L;VUZ80?OSM7{msf05gBumAu6 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/future/types/__pycache__/newrange.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/types/__pycache__/newrange.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aa19a30faf46ba785272ddd30e8165b282c6e5d0 GIT binary patch literal 6096 zcma)A&u`qu73PrKU5Z-$u&h|J<2Z~HC)vi@mF*%;4Z}zf+o_92abqKCwhkyRXI7%c zC09ePWo=hLTe)aa6g~A+AV7iw1q}4izlYbJeDh#P+{_CqVOTEYigWvJ!BodsWW;uLZf3gO{NJ`o<`XW zOPzAF+^IAxOp7e_#u~ptxfITH?53@Hm&4gkwOK{)YIE)rjaRt!SmTx`9~#YhlxMh& zvMnkoFK}y%H5d8pU9DF2_H<3NH-sm{eJ9`|N(0{uoiuhHNiW(G_3r*fr?v0g@FM49 z87HZC(P_)LW7`gX+iBWOt~MH5LAu>*)&02B;J#|r7Zr7dLDH_^dn8Z%HC%m1Z=57}jaKd0mIG!WLRxd>H z&VIU$j#r>a*@E=69tb}jPS92p^on+u3zOOQEm&y6WbY)-=QlsP@#)R0x!KNt2Ud$6`Le-d|u(-t0?FL7G1UN@Fx zEb@>tZn1>=Bg`4@9BFah-P;cQT#Xdn(DTtPAE}mm#!H=tLME6|{d_*{&xOaGP7GUn zsTzM00-=|Ry4PuRfsw}L^-Gr<>+d%%ebCt3_R=+YXl+~gJ8MC*=0$7yIQCOSf>vYM zg4asou$KxKmcRn=%DD5@<(i&Zcg1cGz80BvI~9OMEKykwk}&WEo=Se)i&CHTO#TcM zKE##$1wv>|hIrFCYZ_eV#$&B%iV`<@>9Kamnq@qfc||=}@NDrJ^=xsQ&!X)NuktzE zZ9dNzaG&Li`~>b*zQj-BKF62&E4a_|Q+x&Y1-{Bpinvfs1*VyX}HLk4LmX&z3D@}(Bdnp$e?f5tTWL$5OR+S3Lm*P-)QslhAs zMwK<$O3i@*eVAiZN=wD_Kp$vs870lF3`|IiYF44;jF!$6&!>Q%6%DmE*Wg)e<0+X) zl6VSE)t(Xx`{$Jv->rdEc6$MZ>7}(R2(Z-g8FjZ zjENDGMi9np9WMfX%f>?yJtR~CUWBwO^-JrGBuK^Dkl+(QjX0~3V&+MshzI~Pvs^cb zg4A_?grO1=Rd$M1*%@3_X6d@_(4FbeEyKdS%51%?msy#eXZ;f+O@)>z*ph4L`WV-< zGQ>c80M|WX8#N}EP=3PX3T|qdxp<9=ry*|QdPZ(7>;3uBFv>`Bsf ze@XKpPuXmdEl)c*Z{d?qiXT0XmT?OO;**pe>hXD60B5FVXghkmIA9OJ2a&D=4_&IG zMIq9$NCS0rnbf8YzQXeK4Hedi5IabM2wumQB#8m#DH3WmU& zq^>X!qFcW*Airy?+JO#goddP9{pBIG!k7a_6iD=%f*#3$hx&a*_d~i}2X+i)awZ$7 zFYRb@Jq58Ivb#jj6FO=}|Le~MI3dpo*VkHJf`kOgL{Q{J1w(E=BzoHfW2%jbauC`K zlVPTS0&%EHb_gOOL1LBE`%4!Txe|XO@l^G>Q!Baq=CES90Fjk>@URo}9H?aA%s_%t zD-B(%hR;kMwA-1r+l$ix17tH&bi4qG=?h*j(c4EZ^dtlk-I!NYraxcQ&nhCTPBMyW zJmnX19&IJcF9aI`^+0%L zpW}xd*TlvtkJ~wDHd0WIF1YLVX*Oi#B{nsOaf_Fu>P|ifMU~QqFOb502QN^HhL}Bx z*aao7Xa|USdXt=0%wX)4a7aUHrBW)yw|ZM%)>ddwF#6w2AXDTg9Go1+LA|-D&`xg5 z!@hvwgx8LV<%Qj`CauxFG;R$-lh;!DNq54k%|$8KvUdHDHv4n*H!fQU(cCh zc&=0PnQB(6$P2Iz(jhu>WUFrBUf10cDO}TWRgGfe%pOnVg-s!c))7F>j@7sa;`~!fb1Dr zH8S#pQmW&)6#P=T@ned=qVORMhM1 z8H*<3gi^O`=GvBs#G|gf{#VjRM$&(~s`cMH#-_@T^=n~_4>*?fYI2*qLBtg5m@H*U8Rk!G`$NEZb<1R@WIK@}d<2CnA2Fm|z; z&Yx-4MEYld2||U=%;4VXQ|x6K(^FA(1qhk$tpuuA!l%( ztJ{n3Oc>GwF%I>I$n4zGDBJ*fVjH#J=XO;lC5XaB1ZkMO zNQ28c1SZT!URU1v1`o>N=U9Jb8Y!T;{0R60nhDWrvNY?#hylhiH1?Akh_7@%FAP+K%`^I@OJVZ>mKYMw6FoCQDXIK9>RyIwYT&y6K#OOj%RX-Gyv<9;mcJnV z4heOJJ0{DQ8>sy!wV)lmfAWYOX@HHIC2vxTTO{a%jrON|_~%GGZAtTV z&*Y8tfv;Kjl zX|yeN4t8gjW^}Drly8UB+iRLv^6Yz>XZweD%%vlEFMAcdSNx)X#Gl?VP&(^X*7T*L z-qdxiUUg>+npSydy&XE;!0UH>NBEw<+V1(Gv%DNeVtLsKdd^#0(K>$4HSRi5;H>zL z>xBK4R>uuPCs=i&bstsERhF0gy>=_`e6)(THhg?=BUE2^@1Va<`xZ-BRrYosy(MEb zDxkr4x^BDYcy4CKjIqbk)2{{01cb(;at+woJ2u%B~0|MAq_;^R1$c@@T59D2o9Pr5V!}eOw z_YyAjLz!Lk(L^|#?Py&#&M0bj+8E#Mgy2WJyAg<};)c#@(CGx5;e|@Y!QbV}mz`A+ zbe(2%wIB6`-)tszon&5FFXQ!B`t45C?uBV>Om`kMq9k%Lw@T&BY~9FdPP-R~uG{Hs zjW6jui4J|ozsos?m~ZH;2OTe`4_%+Bt#sV=TAf@_SxL=1qVH#9<%1`+=eY*;ykh0` zVAH?jgU&ITnon7Wz7?DP54=%J?smuL0aJZs8l$qt_4fGVTpzdr2{SJhG9V(g0QVSBrB4~fJ znTl)^&AU*Gz~fQ}D>waCgvHGy@?67tCxAN9(nv+^tyRW#P8yc2pf9r4)E{>R((ATF z0K@av)_Ez_usrh)R8bOfVYT0DU0B|bCZ>5VBd8U0H=xTa9e)|awgTZsfgnN71sJ{y z%S!he{iqFX1wTH9(bnpETwLsTSA0>oV)L!9zMdnbyX$>{zAL@(s zLR?flM9f3?9q5(%4mb5p1)Y%^qw+vl&;KP37s3uQr>v`))^l z5p(EI&SfMy%CadW7x07@5?ib4vSiot!IR3r@Nq0gzI<3ZW6AnZTZPN_tb6uSLFNly z5&5Fb(`nmFCFQJ_Y`^SH?dbAL)jM#{-qDvTs?3}A4&Kx7J|(}-c!$ugD)WcEBgh|+ z`C0EM^3x;z%z4LTKLygM@gqW2Q=r)2(R?+Wsd%ls?etH?hg^H;sskpGJJx_1p6deT4bz3+X?`<;6_ zW>@px@V<@GGv1>2CVuPQTi$o@`;_;#cOAb^f2dj7(ma&;yW#-kW$>JII4?Q0>NIgV zpi(G_<}tB>^bEvV#0`V_D{ikAIjx`vj~Y3(A3U>N8>z=ua6p}Qs~vT=T6!X!{Gk~0 zIfy6xM!sLU1Z?8!kj^6z-Y(72<8-$+I>Z&~77s_so2zfg>y7$>y0HZ*>rf25=Rl=^zV{6NE7 zLc_K>O5M?-~}!Gz!@eGfR!A6IipPSr5aGp*~=`+ zI#J)HId2A{xzZ;j{b1e!Xbe1b#jFs42yfiT+Kx27B77I_)OBFP*st{8(g!N2NAlL% zu!qTdHJod!S>H}DN{1STs4Lv?TkX}h?@7F-V5*vd)9r^5;adPF=sKPoxsD=vgeD2a zH{0;lfbaBx9)L+7c3;5^MNT?D=~v~@&N@Iq#}|!}uHFRwVzV9k^T5e~tiX$$5x`@= zBgI#d1xt*%H=AebKp(4#v-cDnREq!)OsAhL1Yn3NW|~m~jNqbM3=uftR@ea8PKweh zXT}@Kb>V1Pvl^G671iL@(*XqaA-2;lKIZFUy%L)pzZVz6{styb?Tkxs9R4PJg+;F< zrcoxSH*rBqM_g2_WIZ|Ax+MX0)s3yFd#K5s81qUPwGlgd~5cKY&pJ+4|t0GRod}1<~+@bPIU#5;mpJ zH=cu-h7kRgKBXCZ&Xx;6NU?HcbfT?8du?r8zU)tt`MKe%x223u{40QfcS?M#B8fGzdG4ri>*8jo?8oFyi?!ZyoDJbl|x1~{Urhlz!0 zeGKMakIWq-JRx%y%=Jkc?;SlnN$|MCTIHxXH13yFYp%J3(ns=BQcO+wNUN^Q;D3yMU%Uq09hD9AOqKaf}d0`t|&ucaxCQDlgXh0{I z_p503As)57#)#I-#=8b3TjbKxhzydY8EVJ0_o3^${1@p(?R(UGeQ-eW{b`4~>p;k) zb(_Yv?;1dY&po8?rLt#njV2jK3m_@^BN9pG8|JiL)NOrK$@ix9vl-OwchLXW(CZ{$ zh`j#{&m$@Jqt;Ni*~OR77>m=`f3S-fi19kX9meRqc8^8X;$z|oJtVn$y`tSX_`Alo zxots#tQ}n(g=!H|nM!qT7lEpXs0vWS(@`NRLg8riN~zIPWwI2im6ub+o)4i^@Law_ zi$U$VKvy4f*nv`f#5|L;Omgj`&5x~{LAzHk zD7CUNj@+?|XZTHT#}-GPT&T86=iIqubWBZhTrbXZ7R8U@B25c09Ibk7(##m*@}Bb2c5 zzLbcU*;As*`G^I?mI%Uyf! z06F`iv1SZSHGjIol%Cvkl;Bl6Zp+UsAmVnhiLv+O#5D}_cN~g@oXky3(#bAh!D^h= zBWimD0jJ%E2!2vms3&!;biON$(|YZYkqwW56~zDqJf>fYfWKDyk+R>3kx>Ln=#b-w zQyAy(IUq-dVL6a+Q4RM=p&zZDeIYI?JU7Nka*!fT?uLJbgt(`pb>X~p>?%AHn)V9N zkcHpFk>M3Ml{IY}dI)Vjylu_92PCV@E-En{^;J0^BZy2*Pv`OiYJj&k4fLqLmVarRX{xPq^4KWc|6$ zyUJFnNlM?|aOB>?!A>S*tj>|R8L$ihtcFl0fLLwbsU`AS<2EJhuXeZFX|1~gcrE`9 zZ02LjLvYwb*qeUWVYp|Mfehtky-4JS`AVSF&` zgNtjhxPI7jH~c}7i}37ogKu8F_T6v4dI9GsW8c*XWHZ=GaI}R*;XXcb(SYj2PMxi` z_Ai>&{`6mwXh<*~(f=bnTD=?}P2!m{l-7V2Nx@Pi9T|7}lJT(_2rn+W8ykKPzjEb# zL5rU60qP}bXyrH(WnurTdMtIfWdE_=iY;<*(l&k<9sL6ywa=Ndr)}LfEEB1IT%Xft zjcKHrwkM<0WRBTqT1x6Tb^X!nNC-zG_(ySks6&fq5FdcOguguoZPspD_u*Ojo_O6- zs);wtdwG_M+THO~FZYh|bT1%aWQ?T=SUKV?bFYACyDOrQg7h$fqD2*nmsTz=U?0+3 zn`BB81N|GGkY1)@kQuY^m+(-B60?_gyDuNa4U#MU)SmQ<@AG@^;&Y<0`Sm2pVwqJY zyjcrn|A9vlR~#WO-O;7Z7eD?Ke`Cftb!#-nj~pbaOTRCj+5RvRP^su3ba7Bwz*0&EJy%gCga$M(MkSuI^%GxRrNyX)SSrE!77hLbGpaxgxe z$zfoj3>3&#`*KY9sQ>FYB34mB&2o*o_3SnGq_6fLqa22n-6reqz8bIHrV#zeh1BrDE_NHaWKq zFNKC;KW4<`i)((5$D5ZeI9<6O#*gN-!4nBvxO{DS(3^`v+5*Tb*O_uw6FS|8QBJ_8 z2tc8@&18aIcTonUpaz}c-g0Jg(0#ckA~fDh5K^9qK1ZbT?>l#K2Vct|Kx`s2_)01W z*+fPpf6pmbL{?R7aijs0iCGR&R^%YuP-o^VZ#gzassm^68lI3H!Bj)7bEvK%aki3hW7qqYq1CYUS2I ze!e=!BC;oavVDQXkT9Usoy2@f&5^A6&ul{1l|}3D4#$~WzE6)HUXlmaGFDCd#*ma^ zN0@_6g+Uz`hsLS~`6jy|oWDNrtRSqdu24j>+*#q~(iLrg1pU0h6J1$T!8Y;_JHAez z@n-bHPF19sAV&_>?{#qRz)5M%W`dPc*p%nc5pEjf%e1ez_`J696s1+##wQaolBQ8k zcSI%jb_SKaE}X;}N`;+Lzo!-W5vt5l04V!26}W=T#nb!9QO5*;J}MIc?z&T`6Hdz< z4s^vF4|EZwn~SU@d{Crt;7F#FZWZl3U@aW5zmZa8JX=@eT=OLTI?bppkr;G?0HZC;tIVc~sibeyl4* z^I7C0mV>S5IwtTg1_Tt~QcT*WdnkK~ydR&!v{4+5POE-?du!kk)fkKK05o%4d1kQR z67+B`y(jm7A1$8+>0$?&5q`750HGdWb`_YBk?9bd37l%x<>3vYLc1oDMynpZi0*zf zfr5#)@0X(r1x}%9wL(*$J-beX+0A3b_}~b|+*pmk(!FHwr)YCwFWH;Tw+hWByWe-F z;zRWD`6=Z(kW%pnOmfh?7j=w+zR0!tLu5wQrh`s?OZ2RzoclcV{4vP5x(7Y%TA`GGKwcCUHpid>= zMh^aekp;OyoslOw99jmv^5YzfQHM#>^bs1r4IYI>WbA^CnCakH;*KUe+GStqBCg<( zpn_IaB4~Z^Vm7CjaE&jxB?Cm9-slylMh};v?)Wekyf3BhIHu=U2qo}@Q~ZR9+)-rP z3f`VkEt|~`NH~eGt<0O{U&nSgWz?eak>vgtGF;-mCKeEw!*5vm7EHc$40I7k5T26@ z-^S7ZP`htFV2ExO0d)&uI*S2yg!3#>iwYj{K!*hc*${5q(JyMZPxM}pJ>l9xcu5*L zUO>2%hWwJiJ1!LL;0!FhhCYhygJUsFhjM_b8*><~xLrbRe3hepKOGGtm3Dwg@r!R5 z@hv$EUECS6rM+!?>MQQ;;A>Z6*OJ==tFo2JpjL!au&^U9nL51O<|EQ4e;Cz+HE*O9 zuv8<**SIc#6-7`C5Gm-%3!OfKWNQfS_afW^jntI@1os%vlk4k>Ed=~FHi){Cz*|NR z{7Acp-7n7RaSVjJT45cx5FAF+T;8CShwn)vd{C9;)V-dF=sn;9UnyEP<~?vN#TLJ2>C!twrne zV==*9cr#}PZg9A*^?Z)Rrgt+^$tgu5h|c(wF~q?UGgT^NC=rlfZXVggmb}W5t&NLX zZQ*5;;L>Ehr89Apx!@Y?I&W}fqvV{+$swc1VRX*B#lc0~v%sB637dBd207k!Z~0QD zb_+smPXB zEi7+}kF96DED=U*ape?@DDdzp6pz7Gs;|=w+0&6(^VV`+d5CQs`$m3*8j{(Tg|e=vg|Oznf!uX zUAn!`IvR7nw1Sx>wM~(dE8TSh~bdWJNcNufa#P9luZILUy`zBLnrdq)UqUY+OzgmCp z2eG+^lJffRh{(znl!rk|XtVL6brJN})D8LM$YIj>vCB4;G8Hv9vsl4u*3YCJqEt_o zWwr@7%_oi1yS+r4Mu?`dk@ph%xK-W9`G(hUuB1i`H%KyTK=sQgVJpw?_&9eRQNmcO z7nMln!2f*;p4nO#GNhiKs}>~NW4$9jkl%6Gu}dB^E&M6vaSrvYiVc~gBpQ&*sy<^> zjY=+eS%ZB6gLnhIJTw;L0{+88m$#C*d)m|8PqjmN`z`VCe>UWS}3nv&6 zs_R#gU96uK$N1?ulM_gI?+X_Uv2T!Z_LD5HG2vw$agIre$yb?toe8fqh>J|*=?Wo{ zU?fcNa8^M}o|Xun4u}>L#*qa>pn}0f!C0I4A(J05;SODJk1M!aR67OkoCG&0g1Z7i zC@zRK#h)OFt2kDO+AVc0O8h0u?=$%YlfPl|OC<3D>>KzWd|Eg_!~Aj}c$!s?GC6?c zWjrA*nT<1l%d8sJ$E#)AE>>|j#Dsj7swS@1O!IA8x7B0Xb>vHUrf^H3$Om~u$ZZQ( z-zwDuXjQUG=&Pvy*=3^$i9c;0x6K)Kb84|ZCw_%t;}Whk;D&xEh(+V-D9RNkiiE|4 zMps5ZvKsPeOs$U1mUELwX6g=@Ab5>USUu%p4z}>$cW~E&|4pXhuCzpj-={`O)m@4y z4oC)3L|`MwSeOH9`=Yvyei;I(h4g8bR( bytes + bytes(string, encoding[, errors]) -> bytes + bytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer + bytes(int) -> bytes object of size given by the parameter initialized with null bytes + bytes() -> empty bytes object + + Construct an immutable array of bytes from: + - an iterable yielding integers in range(256) + - a text string encoded using the specified encoding + - any object implementing the buffer API. + - an integer + """ + + encoding = None + errors = None + + if len(args) == 0: + return super(newbytes, cls).__new__(cls) + elif len(args) >= 2: + args = list(args) + if len(args) == 3: + errors = args.pop() + encoding=args.pop() + # Was: elif isinstance(args[0], newbytes): + # We use type() instead of the above because we're redefining + # this to be True for all unicode string subclasses. Warning: + # This may render newstr un-subclassable. + if type(args[0]) == newbytes: + # Special-case: for consistency with Py3.3, we return the same object + # (with the same id) if a newbytes object is passed into the + # newbytes constructor. + return args[0] + elif isinstance(args[0], _builtin_bytes): + value = args[0] + elif isinstance(args[0], unicode): + try: + if 'encoding' in kwargs: + assert encoding is None + encoding = kwargs['encoding'] + if 'errors' in kwargs: + assert errors is None + errors = kwargs['errors'] + except AssertionError: + raise TypeError('Argument given by name and position') + if encoding is None: + raise TypeError('unicode string argument without an encoding') + ### + # Was: value = args[0].encode(**kwargs) + # Python 2.6 string encode() method doesn't take kwargs: + # Use this instead: + newargs = [encoding] + if errors is not None: + newargs.append(errors) + value = args[0].encode(*newargs) + ### + elif hasattr(args[0], '__bytes__'): + value = args[0].__bytes__() + elif isinstance(args[0], Iterable): + if len(args[0]) == 0: + # This could be an empty list or tuple. Return b'' as on Py3. + value = b'' + else: + # Was: elif len(args[0])>0 and isinstance(args[0][0], Integral): + # # It's a list of integers + # But then we can't index into e.g. frozensets. Try to proceed + # anyway. + try: + value = bytearray([_newchr(x) for x in args[0]]) + except: + raise ValueError('bytes must be in range(0, 256)') + elif isinstance(args[0], Integral): + if args[0] < 0: + raise ValueError('negative count') + value = b'\x00' * args[0] + else: + value = args[0] + if type(value) == newbytes: + # Above we use type(...) rather than isinstance(...) because the + # newbytes metaclass overrides __instancecheck__. + # oldbytes(value) gives the wrong thing on Py2: the same + # result as str(value) on Py3, e.g. "b'abc'". (Issue #193). + # So we handle this case separately: + return copy.copy(value) + else: + return super(newbytes, cls).__new__(cls, value) + + def __repr__(self): + return 'b' + super(newbytes, self).__repr__() + + def __str__(self): + return 'b' + "'{0}'".format(super(newbytes, self).__str__()) + + def __getitem__(self, y): + value = super(newbytes, self).__getitem__(y) + if isinstance(y, Integral): + return ord(value) + else: + return newbytes(value) + + def __getslice__(self, *args): + return self.__getitem__(slice(*args)) + + def __contains__(self, key): + if isinstance(key, int): + newbyteskey = newbytes([key]) + # Don't use isinstance() here because we only want to catch + # newbytes, not Python 2 str: + elif type(key) == newbytes: + newbyteskey = key + else: + newbyteskey = newbytes(key) + return issubset(list(newbyteskey), list(self)) + + @no(unicode) + def __add__(self, other): + return newbytes(super(newbytes, self).__add__(other)) + + @no(unicode) + def __radd__(self, left): + return newbytes(left) + self + + @no(unicode) + def __mul__(self, other): + return newbytes(super(newbytes, self).__mul__(other)) + + @no(unicode) + def __rmul__(self, other): + return newbytes(super(newbytes, self).__rmul__(other)) + + def __mod__(self, vals): + if isinstance(vals, newbytes): + vals = _builtin_bytes.__str__(vals) + + elif isinstance(vals, tuple): + newvals = [] + for v in vals: + if isinstance(v, newbytes): + v = _builtin_bytes.__str__(v) + newvals.append(v) + vals = tuple(newvals) + + elif (hasattr(vals.__class__, '__getitem__') and + hasattr(vals.__class__, 'iteritems')): + for k, v in vals.iteritems(): + if isinstance(v, newbytes): + vals[k] = _builtin_bytes.__str__(v) + + return _builtin_bytes.__mod__(self, vals) + + def __imod__(self, other): + return self.__mod__(other) + + def join(self, iterable_of_bytes): + errmsg = 'sequence item {0}: expected bytes, {1} found' + if isbytes(iterable_of_bytes) or istext(iterable_of_bytes): + raise TypeError(errmsg.format(0, type(iterable_of_bytes))) + for i, item in enumerate(iterable_of_bytes): + if istext(item): + raise TypeError(errmsg.format(i, type(item))) + return newbytes(super(newbytes, self).join(iterable_of_bytes)) + + @classmethod + def fromhex(cls, string): + # Only on Py2: + return cls(string.replace(' ', '').decode('hex')) + + @no(unicode) + def find(self, sub, *args): + return super(newbytes, self).find(sub, *args) + + @no(unicode) + def rfind(self, sub, *args): + return super(newbytes, self).rfind(sub, *args) + + @no(unicode, (1, 2)) + def replace(self, old, new, *args): + return newbytes(super(newbytes, self).replace(old, new, *args)) + + def encode(self, *args): + raise AttributeError("encode method has been disabled in newbytes") + + def decode(self, encoding='utf-8', errors='strict'): + """ + Returns a newstr (i.e. unicode subclass) + + Decode B using the codec registered for encoding. Default encoding + is 'utf-8'. errors may be given to set a different error + handling scheme. Default is 'strict' meaning that encoding errors raise + a UnicodeDecodeError. Other possible values are 'ignore' and 'replace' + as well as any other name registered with codecs.register_error that is + able to handle UnicodeDecodeErrors. + """ + # Py2 str.encode() takes encoding and errors as optional parameter, + # not keyword arguments as in Python 3 str. + + from future.types.newstr import newstr + + if errors == 'surrogateescape': + from future.utils.surrogateescape import register_surrogateescape + register_surrogateescape() + + return newstr(super(newbytes, self).decode(encoding, errors)) + + # This is currently broken: + # # We implement surrogateescape error handling here in addition rather + # # than relying on the custom error handler from + # # future.utils.surrogateescape to be registered globally, even though + # # that is fine in the case of decoding. (But not encoding: see the + # # comments in newstr.encode()``.) + # + # if errors == 'surrogateescape': + # # Decode char by char + # mybytes = [] + # for code in self: + # # Code is an int + # if 0x80 <= code <= 0xFF: + # b = 0xDC00 + code + # elif code <= 0x7F: + # b = _unichr(c).decode(encoding=encoding) + # else: + # # # It may be a bad byte + # # FIXME: What to do in this case? See the Py3 docs / tests. + # # # Try swallowing it. + # # continue + # # print("RAISE!") + # raise NotASurrogateError + # mybytes.append(b) + # return newbytes(mybytes) + # return newbytes(super(newstr, self).decode(encoding, errors)) + + @no(unicode) + def startswith(self, prefix, *args): + return super(newbytes, self).startswith(prefix, *args) + + @no(unicode) + def endswith(self, prefix, *args): + return super(newbytes, self).endswith(prefix, *args) + + @no(unicode) + def split(self, sep=None, maxsplit=-1): + # Py2 str.split() takes maxsplit as an optional parameter, not as a + # keyword argument as in Python 3 bytes. + parts = super(newbytes, self).split(sep, maxsplit) + return [newbytes(part) for part in parts] + + def splitlines(self, keepends=False): + """ + B.splitlines([keepends]) -> list of lines + + Return a list of the lines in B, breaking at line boundaries. + Line breaks are not included in the resulting list unless keepends + is given and true. + """ + # Py2 str.splitlines() takes keepends as an optional parameter, + # not as a keyword argument as in Python 3 bytes. + parts = super(newbytes, self).splitlines(keepends) + return [newbytes(part) for part in parts] + + @no(unicode) + def rsplit(self, sep=None, maxsplit=-1): + # Py2 str.rsplit() takes maxsplit as an optional parameter, not as a + # keyword argument as in Python 3 bytes. + parts = super(newbytes, self).rsplit(sep, maxsplit) + return [newbytes(part) for part in parts] + + @no(unicode) + def partition(self, sep): + parts = super(newbytes, self).partition(sep) + return tuple(newbytes(part) for part in parts) + + @no(unicode) + def rpartition(self, sep): + parts = super(newbytes, self).rpartition(sep) + return tuple(newbytes(part) for part in parts) + + @no(unicode, (1,)) + def rindex(self, sub, *args): + ''' + S.rindex(sub [,start [,end]]) -> int + + Like S.rfind() but raise ValueError when the substring is not found. + ''' + pos = self.rfind(sub, *args) + if pos == -1: + raise ValueError('substring not found') + + @no(unicode) + def index(self, sub, *args): + ''' + Returns index of sub in bytes. + Raises ValueError if byte is not in bytes and TypeError if can't + be converted bytes or its length is not 1. + ''' + if isinstance(sub, int): + if len(args) == 0: + start, end = 0, len(self) + elif len(args) == 1: + start = args[0] + elif len(args) == 2: + start, end = args + else: + raise TypeError('takes at most 3 arguments') + return list(self)[start:end].index(sub) + if not isinstance(sub, bytes): + try: + sub = self.__class__(sub) + except (TypeError, ValueError): + raise TypeError("can't convert sub to bytes") + try: + return super(newbytes, self).index(sub, *args) + except ValueError: + raise ValueError('substring not found') + + def __eq__(self, other): + if isinstance(other, (_builtin_bytes, bytearray)): + return super(newbytes, self).__eq__(other) + else: + return False + + def __ne__(self, other): + if isinstance(other, _builtin_bytes): + return super(newbytes, self).__ne__(other) + else: + return True + + unorderable_err = 'unorderable types: bytes() and {0}' + + def __lt__(self, other): + if isinstance(other, _builtin_bytes): + return super(newbytes, self).__lt__(other) + raise TypeError(self.unorderable_err.format(type(other))) + + def __le__(self, other): + if isinstance(other, _builtin_bytes): + return super(newbytes, self).__le__(other) + raise TypeError(self.unorderable_err.format(type(other))) + + def __gt__(self, other): + if isinstance(other, _builtin_bytes): + return super(newbytes, self).__gt__(other) + raise TypeError(self.unorderable_err.format(type(other))) + + def __ge__(self, other): + if isinstance(other, _builtin_bytes): + return super(newbytes, self).__ge__(other) + raise TypeError(self.unorderable_err.format(type(other))) + + def __native__(self): + # We can't just feed a newbytes object into str(), because + # newbytes.__str__() returns e.g. "b'blah'", consistent with Py3 bytes. + return super(newbytes, self).__str__() + + def __getattribute__(self, name): + """ + A trick to cause the ``hasattr`` builtin-fn to return False for + the 'encode' method on Py2. + """ + if name in ['encode', u'encode']: + raise AttributeError("encode method has been disabled in newbytes") + return super(newbytes, self).__getattribute__(name) + + @no(unicode) + def rstrip(self, bytes_to_strip=None): + """ + Strip trailing bytes contained in the argument. + If the argument is omitted, strip trailing ASCII whitespace. + """ + return newbytes(super(newbytes, self).rstrip(bytes_to_strip)) + + @no(unicode) + def strip(self, bytes_to_strip=None): + """ + Strip leading and trailing bytes contained in the argument. + If the argument is omitted, strip trailing ASCII whitespace. + """ + return newbytes(super(newbytes, self).strip(bytes_to_strip)) + + def lower(self): + """ + b.lower() -> copy of b + + Return a copy of b with all ASCII characters converted to lowercase. + """ + return newbytes(super(newbytes, self).lower()) + + @no(unicode) + def upper(self): + """ + b.upper() -> copy of b + + Return a copy of b with all ASCII characters converted to uppercase. + """ + return newbytes(super(newbytes, self).upper()) + + @classmethod + @no(unicode) + def maketrans(cls, frm, to): + """ + B.maketrans(frm, to) -> translation table + + Return a translation table (a bytes object of length 256) suitable + for use in the bytes or bytearray translate method where each byte + in frm is mapped to the byte at the same position in to. + The bytes objects frm and to must be of the same length. + """ + return newbytes(string.maketrans(frm, to)) + + +__all__ = ['newbytes'] diff --git a/venv/lib/python3.10/site-packages/future/types/newdict.py b/venv/lib/python3.10/site-packages/future/types/newdict.py new file mode 100644 index 0000000..d90316c --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/types/newdict.py @@ -0,0 +1,76 @@ +""" +A dict subclass for Python 2 that behaves like Python 3's dict + +Example use: + +>>> from builtins import dict +>>> d1 = dict() # instead of {} for an empty dict +>>> d2 = dict(key1='value1', key2='value2') + +The keys, values and items methods now return iterators on Python 2.x +(with set-like behaviour on Python 2.7). + +>>> for d in (d1, d2): +... assert not isinstance(d.keys(), list) +... assert not isinstance(d.values(), list) +... assert not isinstance(d.items(), list) +""" + +import sys + +from future.utils import with_metaclass +from future.types.newobject import newobject + + +_builtin_dict = dict +ver = sys.version_info + + +class BaseNewDict(type): + def __instancecheck__(cls, instance): + if cls == newdict: + return isinstance(instance, _builtin_dict) + else: + return issubclass(instance.__class__, cls) + + +class newdict(with_metaclass(BaseNewDict, _builtin_dict)): + """ + A backport of the Python 3 dict object to Py2 + """ + + if ver >= (3,): + # Inherit items, keys and values from `dict` in 3.x + pass + elif ver >= (2, 7): + items = dict.viewitems + keys = dict.viewkeys + values = dict.viewvalues + else: + items = dict.iteritems + keys = dict.iterkeys + values = dict.itervalues + + def __new__(cls, *args, **kwargs): + """ + dict() -> new empty dictionary + dict(mapping) -> new dictionary initialized from a mapping object's + (key, value) pairs + dict(iterable) -> new dictionary initialized as if via: + d = {} + for k, v in iterable: + d[k] = v + dict(**kwargs) -> new dictionary initialized with the name=value pairs + in the keyword argument list. For example: dict(one=1, two=2) + """ + + return super(newdict, cls).__new__(cls, *args) + + def __native__(self): + """ + Hook for the future.utils.native() function + """ + return dict(self) + + +__all__ = ['newdict'] diff --git a/venv/lib/python3.10/site-packages/future/types/newint.py b/venv/lib/python3.10/site-packages/future/types/newint.py new file mode 100644 index 0000000..ebc5715 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/types/newint.py @@ -0,0 +1,386 @@ +""" +Backport of Python 3's int, based on Py2's long. + +They are very similar. The most notable difference is: + +- representation: trailing L in Python 2 removed in Python 3 +""" +from __future__ import division + +import struct + +from future.types.newbytes import newbytes +from future.types.newobject import newobject +from future.utils import PY3, isint, istext, isbytes, with_metaclass, native + + +if PY3: + long = int + from collections.abc import Iterable +else: + from collections import Iterable + + +class BaseNewInt(type): + def __instancecheck__(cls, instance): + if cls == newint: + # Special case for Py2 short or long int + return isinstance(instance, (int, long)) + else: + return issubclass(instance.__class__, cls) + + +class newint(with_metaclass(BaseNewInt, long)): + """ + A backport of the Python 3 int object to Py2 + """ + def __new__(cls, x=0, base=10): + """ + From the Py3 int docstring: + + | int(x=0) -> integer + | int(x, base=10) -> integer + | + | Convert a number or string to an integer, or return 0 if no + | arguments are given. If x is a number, return x.__int__(). For + | floating point numbers, this truncates towards zero. + | + | If x is not a number or if base is given, then x must be a string, + | bytes, or bytearray instance representing an integer literal in the + | given base. The literal can be preceded by '+' or '-' and be + | surrounded by whitespace. The base defaults to 10. Valid bases are + | 0 and 2-36. Base 0 means to interpret the base from the string as an + | integer literal. + | >>> int('0b100', base=0) + | 4 + + """ + try: + val = x.__int__() + except AttributeError: + val = x + else: + if not isint(val): + raise TypeError('__int__ returned non-int ({0})'.format( + type(val))) + + if base != 10: + # Explicit base + if not (istext(val) or isbytes(val) or isinstance(val, bytearray)): + raise TypeError( + "int() can't convert non-string with explicit base") + try: + return super(newint, cls).__new__(cls, val, base) + except TypeError: + return super(newint, cls).__new__(cls, newbytes(val), base) + # After here, base is 10 + try: + return super(newint, cls).__new__(cls, val) + except TypeError: + # Py2 long doesn't handle bytearray input with an explicit base, so + # handle this here. + # Py3: int(bytearray(b'10'), 2) == 2 + # Py2: int(bytearray(b'10'), 2) == 2 raises TypeError + # Py2: long(bytearray(b'10'), 2) == 2 raises TypeError + try: + return super(newint, cls).__new__(cls, newbytes(val)) + except: + raise TypeError("newint argument must be a string or a number," + "not '{0}'".format(type(val))) + + def __repr__(self): + """ + Without the L suffix + """ + value = super(newint, self).__repr__() + assert value[-1] == 'L' + return value[:-1] + + def __add__(self, other): + value = super(newint, self).__add__(other) + if value is NotImplemented: + return long(self) + other + return newint(value) + + def __radd__(self, other): + value = super(newint, self).__radd__(other) + if value is NotImplemented: + return other + long(self) + return newint(value) + + def __sub__(self, other): + value = super(newint, self).__sub__(other) + if value is NotImplemented: + return long(self) - other + return newint(value) + + def __rsub__(self, other): + value = super(newint, self).__rsub__(other) + if value is NotImplemented: + return other - long(self) + return newint(value) + + def __mul__(self, other): + value = super(newint, self).__mul__(other) + if isint(value): + return newint(value) + elif value is NotImplemented: + return long(self) * other + return value + + def __rmul__(self, other): + value = super(newint, self).__rmul__(other) + if isint(value): + return newint(value) + elif value is NotImplemented: + return other * long(self) + return value + + def __div__(self, other): + # We override this rather than e.g. relying on object.__div__ or + # long.__div__ because we want to wrap the value in a newint() + # call if other is another int + value = long(self) / other + if isinstance(other, (int, long)): + return newint(value) + else: + return value + + def __rdiv__(self, other): + value = other / long(self) + if isinstance(other, (int, long)): + return newint(value) + else: + return value + + def __idiv__(self, other): + # long has no __idiv__ method. Use __itruediv__ and cast back to + # newint: + value = self.__itruediv__(other) + if isinstance(other, (int, long)): + return newint(value) + else: + return value + + def __truediv__(self, other): + value = super(newint, self).__truediv__(other) + if value is NotImplemented: + value = long(self) / other + return value + + def __rtruediv__(self, other): + return super(newint, self).__rtruediv__(other) + + def __itruediv__(self, other): + # long has no __itruediv__ method + mylong = long(self) + mylong /= other + return mylong + + def __floordiv__(self, other): + return newint(super(newint, self).__floordiv__(other)) + + def __rfloordiv__(self, other): + return newint(super(newint, self).__rfloordiv__(other)) + + def __ifloordiv__(self, other): + # long has no __ifloordiv__ method + mylong = long(self) + mylong //= other + return newint(mylong) + + def __mod__(self, other): + value = super(newint, self).__mod__(other) + if value is NotImplemented: + return long(self) % other + return newint(value) + + def __rmod__(self, other): + value = super(newint, self).__rmod__(other) + if value is NotImplemented: + return other % long(self) + return newint(value) + + def __divmod__(self, other): + value = super(newint, self).__divmod__(other) + if value is NotImplemented: + mylong = long(self) + return (mylong // other, mylong % other) + return (newint(value[0]), newint(value[1])) + + def __rdivmod__(self, other): + value = super(newint, self).__rdivmod__(other) + if value is NotImplemented: + mylong = long(self) + return (other // mylong, other % mylong) + return (newint(value[0]), newint(value[1])) + + def __pow__(self, other): + value = super(newint, self).__pow__(other) + if value is NotImplemented: + return long(self) ** other + return newint(value) + + def __rpow__(self, other): + value = super(newint, self).__rpow__(other) + if isint(value): + return newint(value) + elif value is NotImplemented: + return other ** long(self) + return value + + def __lshift__(self, other): + if not isint(other): + raise TypeError( + "unsupported operand type(s) for <<: '%s' and '%s'" % + (type(self).__name__, type(other).__name__)) + return newint(super(newint, self).__lshift__(other)) + + def __rshift__(self, other): + if not isint(other): + raise TypeError( + "unsupported operand type(s) for >>: '%s' and '%s'" % + (type(self).__name__, type(other).__name__)) + return newint(super(newint, self).__rshift__(other)) + + def __and__(self, other): + if not isint(other): + raise TypeError( + "unsupported operand type(s) for &: '%s' and '%s'" % + (type(self).__name__, type(other).__name__)) + return newint(super(newint, self).__and__(other)) + + def __or__(self, other): + if not isint(other): + raise TypeError( + "unsupported operand type(s) for |: '%s' and '%s'" % + (type(self).__name__, type(other).__name__)) + return newint(super(newint, self).__or__(other)) + + def __xor__(self, other): + if not isint(other): + raise TypeError( + "unsupported operand type(s) for ^: '%s' and '%s'" % + (type(self).__name__, type(other).__name__)) + return newint(super(newint, self).__xor__(other)) + + def __neg__(self): + return newint(super(newint, self).__neg__()) + + def __pos__(self): + return newint(super(newint, self).__pos__()) + + def __abs__(self): + return newint(super(newint, self).__abs__()) + + def __invert__(self): + return newint(super(newint, self).__invert__()) + + def __int__(self): + return self + + def __nonzero__(self): + return self.__bool__() + + def __bool__(self): + """ + So subclasses can override this, Py3-style + """ + if PY3: + return super(newint, self).__bool__() + + return super(newint, self).__nonzero__() + + def __native__(self): + return long(self) + + def to_bytes(self, length, byteorder='big', signed=False): + """ + Return an array of bytes representing an integer. + + The integer is represented using length bytes. An OverflowError is + raised if the integer is not representable with the given number of + bytes. + + The byteorder argument determines the byte order used to represent the + integer. If byteorder is 'big', the most significant byte is at the + beginning of the byte array. If byteorder is 'little', the most + significant byte is at the end of the byte array. To request the native + byte order of the host system, use `sys.byteorder' as the byte order value. + + The signed keyword-only argument determines whether two's complement is + used to represent the integer. If signed is False and a negative integer + is given, an OverflowError is raised. + """ + if length < 0: + raise ValueError("length argument must be non-negative") + if length == 0 and self == 0: + return newbytes() + if signed and self < 0: + bits = length * 8 + num = (2**bits) + self + if num <= 0: + raise OverflowError("int too small to convert") + else: + if self < 0: + raise OverflowError("can't convert negative int to unsigned") + num = self + if byteorder not in ('little', 'big'): + raise ValueError("byteorder must be either 'little' or 'big'") + h = b'%x' % num + s = newbytes((b'0'*(len(h) % 2) + h).zfill(length*2).decode('hex')) + if signed: + high_set = s[0] & 0x80 + if self > 0 and high_set: + raise OverflowError("int too big to convert") + if self < 0 and not high_set: + raise OverflowError("int too small to convert") + if len(s) > length: + raise OverflowError("int too big to convert") + return s if byteorder == 'big' else s[::-1] + + @classmethod + def from_bytes(cls, mybytes, byteorder='big', signed=False): + """ + Return the integer represented by the given array of bytes. + + The mybytes argument must either support the buffer protocol or be an + iterable object producing bytes. Bytes and bytearray are examples of + built-in objects that support the buffer protocol. + + The byteorder argument determines the byte order used to represent the + integer. If byteorder is 'big', the most significant byte is at the + beginning of the byte array. If byteorder is 'little', the most + significant byte is at the end of the byte array. To request the native + byte order of the host system, use `sys.byteorder' as the byte order value. + + The signed keyword-only argument indicates whether two's complement is + used to represent the integer. + """ + if byteorder not in ('little', 'big'): + raise ValueError("byteorder must be either 'little' or 'big'") + if isinstance(mybytes, unicode): + raise TypeError("cannot convert unicode objects to bytes") + # mybytes can also be passed as a sequence of integers on Py3. + # Test for this: + elif isinstance(mybytes, Iterable): + mybytes = newbytes(mybytes) + b = mybytes if byteorder == 'big' else mybytes[::-1] + if len(b) == 0: + b = b'\x00' + # The encode() method has been disabled by newbytes, but Py2's + # str has it: + num = int(native(b).encode('hex'), 16) + if signed and (b[0] & 0x80): + num = num - (2 ** (len(b)*8)) + return cls(num) + + +# def _twos_comp(val, bits): +# """compute the 2's compliment of int value val""" +# if( (val&(1<<(bits-1))) != 0 ): +# val = val - (1<>> from builtins import list +>>> l1 = list() # instead of {} for an empty list +>>> l1.append('hello') +>>> l2 = l1.copy() + +""" + +import sys +import copy + +from future.utils import with_metaclass +from future.types.newobject import newobject + + +_builtin_list = list +ver = sys.version_info[:2] + + +class BaseNewList(type): + def __instancecheck__(cls, instance): + if cls == newlist: + return isinstance(instance, _builtin_list) + else: + return issubclass(instance.__class__, cls) + + +class newlist(with_metaclass(BaseNewList, _builtin_list)): + """ + A backport of the Python 3 list object to Py2 + """ + def copy(self): + """ + L.copy() -> list -- a shallow copy of L + """ + return copy.copy(self) + + def clear(self): + """L.clear() -> None -- remove all items from L""" + for i in range(len(self)): + self.pop() + + def __new__(cls, *args, **kwargs): + """ + list() -> new empty list + list(iterable) -> new list initialized from iterable's items + """ + + if len(args) == 0: + return super(newlist, cls).__new__(cls) + elif type(args[0]) == newlist: + value = args[0] + else: + value = args[0] + return super(newlist, cls).__new__(cls, value) + + def __add__(self, value): + return newlist(super(newlist, self).__add__(value)) + + def __radd__(self, left): + " left + self " + try: + return newlist(left) + self + except: + return NotImplemented + + def __getitem__(self, y): + """ + x.__getitem__(y) <==> x[y] + + Warning: a bug in Python 2.x prevents indexing via a slice from + returning a newlist object. + """ + if isinstance(y, slice): + return newlist(super(newlist, self).__getitem__(y)) + else: + return super(newlist, self).__getitem__(y) + + def __native__(self): + """ + Hook for the future.utils.native() function + """ + return list(self) + + def __nonzero__(self): + return len(self) > 0 + + +__all__ = ['newlist'] diff --git a/venv/lib/python3.10/site-packages/future/types/newmemoryview.py b/venv/lib/python3.10/site-packages/future/types/newmemoryview.py new file mode 100644 index 0000000..09f804d --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/types/newmemoryview.py @@ -0,0 +1,29 @@ +""" +A pretty lame implementation of a memoryview object for Python 2.6. +""" +from numbers import Integral +import string + +from future.utils import istext, isbytes, PY2, with_metaclass +from future.types import no, issubset + +if PY2: + from collections import Iterable +else: + from collections.abc import Iterable + +# class BaseNewBytes(type): +# def __instancecheck__(cls, instance): +# return isinstance(instance, _builtin_bytes) + + +class newmemoryview(object): # with_metaclass(BaseNewBytes, _builtin_bytes)): + """ + A pretty lame backport of the Python 2.7 and Python 3.x + memoryviewview object to Py2.6. + """ + def __init__(self, obj): + return obj + + +__all__ = ['newmemoryview'] diff --git a/venv/lib/python3.10/site-packages/future/types/newobject.py b/venv/lib/python3.10/site-packages/future/types/newobject.py new file mode 100644 index 0000000..31b84fc --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/types/newobject.py @@ -0,0 +1,117 @@ +""" +An object subclass for Python 2 that gives new-style classes written in the +style of Python 3 (with ``__next__`` and unicode-returning ``__str__`` methods) +the appropriate Python 2-style ``next`` and ``__unicode__`` methods for compatible. + +Example use:: + + from builtins import object + + my_unicode_str = u'Unicode string: \u5b54\u5b50' + + class A(object): + def __str__(self): + return my_unicode_str + + a = A() + print(str(a)) + + # On Python 2, these relations hold: + assert unicode(a) == my_unicode_string + assert str(a) == my_unicode_string.encode('utf-8') + + +Another example:: + + from builtins import object + + class Upper(object): + def __init__(self, iterable): + self._iter = iter(iterable) + def __next__(self): # note the Py3 interface + return next(self._iter).upper() + def __iter__(self): + return self + + assert list(Upper('hello')) == list('HELLO') + +""" + + +class newobject(object): + """ + A magical object class that provides Python 2 compatibility methods:: + next + __unicode__ + __nonzero__ + + Subclasses of this class can merely define the Python 3 methods (__next__, + __str__, and __bool__). + """ + def next(self): + if hasattr(self, '__next__'): + return type(self).__next__(self) + raise TypeError('newobject is not an iterator') + + def __unicode__(self): + # All subclasses of the builtin object should have __str__ defined. + # Note that old-style classes do not have __str__ defined. + if hasattr(self, '__str__'): + s = type(self).__str__(self) + else: + s = str(self) + if isinstance(s, unicode): + return s + else: + return s.decode('utf-8') + + def __nonzero__(self): + if hasattr(self, '__bool__'): + return type(self).__bool__(self) + if hasattr(self, '__len__'): + return type(self).__len__(self) + # object has no __nonzero__ method + return True + + # Are these ever needed? + # def __div__(self): + # return self.__truediv__() + + # def __idiv__(self, other): + # return self.__itruediv__(other) + + def __long__(self): + if not hasattr(self, '__int__'): + return NotImplemented + return self.__int__() # not type(self).__int__(self) + + # def __new__(cls, *args, **kwargs): + # """ + # dict() -> new empty dictionary + # dict(mapping) -> new dictionary initialized from a mapping object's + # (key, value) pairs + # dict(iterable) -> new dictionary initialized as if via: + # d = {} + # for k, v in iterable: + # d[k] = v + # dict(**kwargs) -> new dictionary initialized with the name=value pairs + # in the keyword argument list. For example: dict(one=1, two=2) + # """ + + # if len(args) == 0: + # return super(newdict, cls).__new__(cls) + # elif type(args[0]) == newdict: + # return args[0] + # else: + # value = args[0] + # return super(newdict, cls).__new__(cls, value) + + def __native__(self): + """ + Hook for the future.utils.native() function + """ + return object(self) + + __slots__ = [] + +__all__ = ['newobject'] diff --git a/venv/lib/python3.10/site-packages/future/types/newopen.py b/venv/lib/python3.10/site-packages/future/types/newopen.py new file mode 100644 index 0000000..b75d45a --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/types/newopen.py @@ -0,0 +1,32 @@ +""" +A substitute for the Python 3 open() function. + +Note that io.open() is more complete but maybe slower. Even so, the +completeness may be a better default. TODO: compare these +""" + +_builtin_open = open + +class newopen(object): + """Wrapper providing key part of Python 3 open() interface. + + From IPython's py3compat.py module. License: BSD. + """ + def __init__(self, fname, mode="r", encoding="utf-8"): + self.f = _builtin_open(fname, mode) + self.enc = encoding + + def write(self, s): + return self.f.write(s.encode(self.enc)) + + def read(self, size=-1): + return self.f.read(size).decode(self.enc) + + def close(self): + return self.f.close() + + def __enter__(self): + return self + + def __exit__(self, etype, value, traceback): + self.f.close() diff --git a/venv/lib/python3.10/site-packages/future/types/newrange.py b/venv/lib/python3.10/site-packages/future/types/newrange.py new file mode 100644 index 0000000..dc5eb80 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/types/newrange.py @@ -0,0 +1,170 @@ +""" +Nearly identical to xrange.py, by Dan Crosta, from + + https://github.com/dcrosta/xrange.git + +This is included here in the ``future`` package rather than pointed to as +a dependency because there is no package for ``xrange`` on PyPI. It is +also tweaked to appear like a regular Python 3 ``range`` object rather +than a Python 2 xrange. + +From Dan Crosta's README: + + "A pure-Python implementation of Python 2.7's xrange built-in, with + some features backported from the Python 3.x range built-in (which + replaced xrange) in that version." + + Read more at + https://late.am/post/2012/06/18/what-the-heck-is-an-xrange +""" +from __future__ import absolute_import + +from future.utils import PY2 + +if PY2: + from collections import Sequence, Iterator +else: + from collections.abc import Sequence, Iterator +from itertools import islice + +from future.backports.misc import count # with step parameter on Py2.6 +# For backward compatibility with python-future versions < 0.14.4: +_count = count + + +class newrange(Sequence): + """ + Pure-Python backport of Python 3's range object. See `the CPython + documentation for details: + `_ + """ + + def __init__(self, *args): + if len(args) == 1: + start, stop, step = 0, args[0], 1 + elif len(args) == 2: + start, stop, step = args[0], args[1], 1 + elif len(args) == 3: + start, stop, step = args + else: + raise TypeError('range() requires 1-3 int arguments') + + try: + start, stop, step = int(start), int(stop), int(step) + except ValueError: + raise TypeError('an integer is required') + + if step == 0: + raise ValueError('range() arg 3 must not be zero') + elif step < 0: + stop = min(stop, start) + else: + stop = max(stop, start) + + self._start = start + self._stop = stop + self._step = step + self._len = (stop - start) // step + bool((stop - start) % step) + + @property + def start(self): + return self._start + + @property + def stop(self): + return self._stop + + @property + def step(self): + return self._step + + def __repr__(self): + if self._step == 1: + return 'range(%d, %d)' % (self._start, self._stop) + return 'range(%d, %d, %d)' % (self._start, self._stop, self._step) + + def __eq__(self, other): + return (isinstance(other, newrange) and + (self._len == 0 == other._len or + (self._start, self._step, self._len) == + (other._start, other._step, other._len))) + + def __len__(self): + return self._len + + def index(self, value): + """Return the 0-based position of integer `value` in + the sequence this range represents.""" + try: + diff = value - self._start + except TypeError: + raise ValueError('%r is not in range' % value) + quotient, remainder = divmod(diff, self._step) + if remainder == 0 and 0 <= quotient < self._len: + return abs(quotient) + raise ValueError('%r is not in range' % value) + + def count(self, value): + """Return the number of occurrences of integer `value` + in the sequence this range represents.""" + # a value can occur exactly zero or one times + return int(value in self) + + def __contains__(self, value): + """Return ``True`` if the integer `value` occurs in + the sequence this range represents.""" + try: + self.index(value) + return True + except ValueError: + return False + + def __reversed__(self): + return iter(self[::-1]) + + def __getitem__(self, index): + """Return the element at position ``index`` in the sequence + this range represents, or raise :class:`IndexError` if the + position is out of range.""" + if isinstance(index, slice): + return self.__getitem_slice(index) + if index < 0: + # negative indexes access from the end + index = self._len + index + if index < 0 or index >= self._len: + raise IndexError('range object index out of range') + return self._start + index * self._step + + def __getitem_slice(self, slce): + """Return a range which represents the requested slce + of the sequence represented by this range. + """ + scaled_indices = (self._step * n for n in slce.indices(self._len)) + start_offset, stop_offset, new_step = scaled_indices + return newrange(self._start + start_offset, + self._start + stop_offset, + new_step) + + def __iter__(self): + """Return an iterator which enumerates the elements of the + sequence this range represents.""" + return range_iterator(self) + + +class range_iterator(Iterator): + """An iterator for a :class:`range`. + """ + def __init__(self, range_): + self._stepper = islice(count(range_.start, range_.step), len(range_)) + + def __iter__(self): + return self + + def __next__(self): + return next(self._stepper) + + def next(self): + return next(self._stepper) + + +__all__ = ['newrange'] diff --git a/venv/lib/python3.10/site-packages/future/types/newstr.py b/venv/lib/python3.10/site-packages/future/types/newstr.py new file mode 100644 index 0000000..8ca191f --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/types/newstr.py @@ -0,0 +1,426 @@ +""" +This module redefines ``str`` on Python 2.x to be a subclass of the Py2 +``unicode`` type that behaves like the Python 3.x ``str``. + +The main differences between ``newstr`` and Python 2.x's ``unicode`` type are +the stricter type-checking and absence of a `u''` prefix in the representation. + +It is designed to be used together with the ``unicode_literals`` import +as follows: + + >>> from __future__ import unicode_literals + >>> from builtins import str, isinstance + +On Python 3.x and normally on Python 2.x, these expressions hold + + >>> str('blah') is 'blah' + True + >>> isinstance('blah', str) + True + +However, on Python 2.x, with this import: + + >>> from __future__ import unicode_literals + +the same expressions are False: + + >>> str('blah') is 'blah' + False + >>> isinstance('blah', str) + False + +This module is designed to be imported together with ``unicode_literals`` on +Python 2 to bring the meaning of ``str`` back into alignment with unprefixed +string literals (i.e. ``unicode`` subclasses). + +Note that ``str()`` (and ``print()``) would then normally call the +``__unicode__`` method on objects in Python 2. To define string +representations of your objects portably across Py3 and Py2, use the +:func:`python_2_unicode_compatible` decorator in :mod:`future.utils`. + +""" + +from numbers import Number + +from future.utils import PY3, istext, with_metaclass, isnewbytes +from future.types import no, issubset +from future.types.newobject import newobject + + +if PY3: + # We'll probably never use newstr on Py3 anyway... + unicode = str + from collections.abc import Iterable +else: + from collections import Iterable + + +class BaseNewStr(type): + def __instancecheck__(cls, instance): + if cls == newstr: + return isinstance(instance, unicode) + else: + return issubclass(instance.__class__, cls) + + +class newstr(with_metaclass(BaseNewStr, unicode)): + """ + A backport of the Python 3 str object to Py2 + """ + no_convert_msg = "Can't convert '{0}' object to str implicitly" + + def __new__(cls, *args, **kwargs): + """ + From the Py3 str docstring: + + str(object='') -> str + str(bytes_or_buffer[, encoding[, errors]]) -> str + + Create a new string object from the given object. If encoding or + errors is specified, then the object must expose a data buffer + that will be decoded using the given encoding and error handler. + Otherwise, returns the result of object.__str__() (if defined) + or repr(object). + encoding defaults to sys.getdefaultencoding(). + errors defaults to 'strict'. + + """ + if len(args) == 0: + return super(newstr, cls).__new__(cls) + # Special case: If someone requests str(str(u'abc')), return the same + # object (same id) for consistency with Py3.3. This is not true for + # other objects like list or dict. + elif type(args[0]) == newstr and cls == newstr: + return args[0] + elif isinstance(args[0], unicode): + value = args[0] + elif isinstance(args[0], bytes): # i.e. Py2 bytes or newbytes + if 'encoding' in kwargs or len(args) > 1: + value = args[0].decode(*args[1:], **kwargs) + else: + value = args[0].__str__() + else: + value = args[0] + return super(newstr, cls).__new__(cls, value) + + def __repr__(self): + """ + Without the u prefix + """ + + value = super(newstr, self).__repr__() + # assert value[0] == u'u' + return value[1:] + + def __getitem__(self, y): + """ + Warning: Python <= 2.7.6 has a bug that causes this method never to be called + when y is a slice object. Therefore the type of newstr()[:2] is wrong + (unicode instead of newstr). + """ + return newstr(super(newstr, self).__getitem__(y)) + + def __contains__(self, key): + errmsg = "'in ' requires string as left operand, not {0}" + # Don't use isinstance() here because we only want to catch + # newstr, not Python 2 unicode: + if type(key) == newstr: + newkey = key + elif isinstance(key, unicode) or isinstance(key, bytes) and not isnewbytes(key): + newkey = newstr(key) + else: + raise TypeError(errmsg.format(type(key))) + return issubset(list(newkey), list(self)) + + @no('newbytes') + def __add__(self, other): + return newstr(super(newstr, self).__add__(other)) + + @no('newbytes') + def __radd__(self, left): + " left + self " + try: + return newstr(left) + self + except: + return NotImplemented + + def __mul__(self, other): + return newstr(super(newstr, self).__mul__(other)) + + def __rmul__(self, other): + return newstr(super(newstr, self).__rmul__(other)) + + def join(self, iterable): + errmsg = 'sequence item {0}: expected unicode string, found bytes' + for i, item in enumerate(iterable): + # Here we use type() rather than isinstance() because + # __instancecheck__ is being overridden. E.g. + # isinstance(b'abc', newbytes) is True on Py2. + if isnewbytes(item): + raise TypeError(errmsg.format(i)) + # Support use as a staticmethod: str.join('-', ['a', 'b']) + if type(self) == newstr: + return newstr(super(newstr, self).join(iterable)) + else: + return newstr(super(newstr, newstr(self)).join(iterable)) + + @no('newbytes') + def find(self, sub, *args): + return super(newstr, self).find(sub, *args) + + @no('newbytes') + def rfind(self, sub, *args): + return super(newstr, self).rfind(sub, *args) + + @no('newbytes', (1, 2)) + def replace(self, old, new, *args): + return newstr(super(newstr, self).replace(old, new, *args)) + + def decode(self, *args): + raise AttributeError("decode method has been disabled in newstr") + + def encode(self, encoding='utf-8', errors='strict'): + """ + Returns bytes + + Encode S using the codec registered for encoding. Default encoding + is 'utf-8'. errors may be given to set a different error + handling scheme. Default is 'strict' meaning that encoding errors raise + a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and + 'xmlcharrefreplace' as well as any other name registered with + codecs.register_error that can handle UnicodeEncodeErrors. + """ + from future.types.newbytes import newbytes + # Py2 unicode.encode() takes encoding and errors as optional parameter, + # not keyword arguments as in Python 3 str. + + # For the surrogateescape error handling mechanism, the + # codecs.register_error() function seems to be inadequate for an + # implementation of it when encoding. (Decoding seems fine, however.) + # For example, in the case of + # u'\udcc3'.encode('ascii', 'surrogateescape_handler') + # after registering the ``surrogateescape_handler`` function in + # future.utils.surrogateescape, both Python 2.x and 3.x raise an + # exception anyway after the function is called because the unicode + # string it has to return isn't encodable strictly as ASCII. + + if errors == 'surrogateescape': + if encoding == 'utf-16': + # Known to fail here. See test_encoding_works_normally() + raise NotImplementedError('FIXME: surrogateescape handling is ' + 'not yet implemented properly') + # Encode char by char, building up list of byte-strings + mybytes = [] + for c in self: + code = ord(c) + if 0xD800 <= code <= 0xDCFF: + mybytes.append(newbytes([code - 0xDC00])) + else: + mybytes.append(c.encode(encoding=encoding)) + return newbytes(b'').join(mybytes) + return newbytes(super(newstr, self).encode(encoding, errors)) + + @no('newbytes', 1) + def startswith(self, prefix, *args): + if isinstance(prefix, Iterable): + for thing in prefix: + if isnewbytes(thing): + raise TypeError(self.no_convert_msg.format(type(thing))) + return super(newstr, self).startswith(prefix, *args) + + @no('newbytes', 1) + def endswith(self, prefix, *args): + # Note we need the decorator above as well as the isnewbytes() + # check because prefix can be either a bytes object or e.g. a + # tuple of possible prefixes. (If it's a bytes object, each item + # in it is an int.) + if isinstance(prefix, Iterable): + for thing in prefix: + if isnewbytes(thing): + raise TypeError(self.no_convert_msg.format(type(thing))) + return super(newstr, self).endswith(prefix, *args) + + @no('newbytes', 1) + def split(self, sep=None, maxsplit=-1): + # Py2 unicode.split() takes maxsplit as an optional parameter, + # not as a keyword argument as in Python 3 str. + parts = super(newstr, self).split(sep, maxsplit) + return [newstr(part) for part in parts] + + @no('newbytes', 1) + def rsplit(self, sep=None, maxsplit=-1): + # Py2 unicode.rsplit() takes maxsplit as an optional parameter, + # not as a keyword argument as in Python 3 str. + parts = super(newstr, self).rsplit(sep, maxsplit) + return [newstr(part) for part in parts] + + @no('newbytes', 1) + def partition(self, sep): + parts = super(newstr, self).partition(sep) + return tuple(newstr(part) for part in parts) + + @no('newbytes', 1) + def rpartition(self, sep): + parts = super(newstr, self).rpartition(sep) + return tuple(newstr(part) for part in parts) + + @no('newbytes', 1) + def index(self, sub, *args): + """ + Like newstr.find() but raise ValueError when the substring is not + found. + """ + pos = self.find(sub, *args) + if pos == -1: + raise ValueError('substring not found') + return pos + + def splitlines(self, keepends=False): + """ + S.splitlines(keepends=False) -> list of strings + + Return a list of the lines in S, breaking at line boundaries. + Line breaks are not included in the resulting list unless keepends + is given and true. + """ + # Py2 unicode.splitlines() takes keepends as an optional parameter, + # not as a keyword argument as in Python 3 str. + parts = super(newstr, self).splitlines(keepends) + return [newstr(part) for part in parts] + + def __eq__(self, other): + if (isinstance(other, unicode) or + isinstance(other, bytes) and not isnewbytes(other)): + return super(newstr, self).__eq__(other) + else: + return NotImplemented + + def __hash__(self): + if (isinstance(self, unicode) or + isinstance(self, bytes) and not isnewbytes(self)): + return super(newstr, self).__hash__() + else: + raise NotImplementedError() + + def __ne__(self, other): + if (isinstance(other, unicode) or + isinstance(other, bytes) and not isnewbytes(other)): + return super(newstr, self).__ne__(other) + else: + return True + + unorderable_err = 'unorderable types: str() and {0}' + + def __lt__(self, other): + if (isinstance(other, unicode) or + isinstance(other, bytes) and not isnewbytes(other)): + return super(newstr, self).__lt__(other) + raise TypeError(self.unorderable_err.format(type(other))) + + def __le__(self, other): + if (isinstance(other, unicode) or + isinstance(other, bytes) and not isnewbytes(other)): + return super(newstr, self).__le__(other) + raise TypeError(self.unorderable_err.format(type(other))) + + def __gt__(self, other): + if (isinstance(other, unicode) or + isinstance(other, bytes) and not isnewbytes(other)): + return super(newstr, self).__gt__(other) + raise TypeError(self.unorderable_err.format(type(other))) + + def __ge__(self, other): + if (isinstance(other, unicode) or + isinstance(other, bytes) and not isnewbytes(other)): + return super(newstr, self).__ge__(other) + raise TypeError(self.unorderable_err.format(type(other))) + + def __getattribute__(self, name): + """ + A trick to cause the ``hasattr`` builtin-fn to return False for + the 'decode' method on Py2. + """ + if name in ['decode', u'decode']: + raise AttributeError("decode method has been disabled in newstr") + return super(newstr, self).__getattribute__(name) + + def __native__(self): + """ + A hook for the future.utils.native() function. + """ + return unicode(self) + + @staticmethod + def maketrans(x, y=None, z=None): + """ + Return a translation table usable for str.translate(). + + If there is only one argument, it must be a dictionary mapping Unicode + ordinals (integers) or characters to Unicode ordinals, strings or None. + Character keys will be then converted to ordinals. + If there are two arguments, they must be strings of equal length, and + in the resulting dictionary, each character in x will be mapped to the + character at the same position in y. If there is a third argument, it + must be a string, whose characters will be mapped to None in the result. + """ + + if y is None: + assert z is None + if not isinstance(x, dict): + raise TypeError('if you give only one argument to maketrans it must be a dict') + result = {} + for (key, value) in x.items(): + if len(key) > 1: + raise ValueError('keys in translate table must be strings or integers') + result[ord(key)] = value + else: + if not isinstance(x, unicode) and isinstance(y, unicode): + raise TypeError('x and y must be unicode strings') + if not len(x) == len(y): + raise ValueError('the first two maketrans arguments must have equal length') + result = {} + for (xi, yi) in zip(x, y): + if len(xi) > 1: + raise ValueError('keys in translate table must be strings or integers') + result[ord(xi)] = ord(yi) + + if z is not None: + for char in z: + result[ord(char)] = None + return result + + def translate(self, table): + """ + S.translate(table) -> str + + Return a copy of the string S, where all characters have been mapped + through the given translation table, which must be a mapping of + Unicode ordinals to Unicode ordinals, strings, or None. + Unmapped characters are left untouched. Characters mapped to None + are deleted. + """ + l = [] + for c in self: + if ord(c) in table: + val = table[ord(c)] + if val is None: + continue + elif isinstance(val, unicode): + l.append(val) + else: + l.append(chr(val)) + else: + l.append(c) + return ''.join(l) + + def isprintable(self): + raise NotImplementedError('fixme') + + def isidentifier(self): + raise NotImplementedError('fixme') + + def format_map(self): + raise NotImplementedError('fixme') + + +__all__ = ['newstr'] diff --git a/venv/lib/python3.10/site-packages/future/utils/__init__.py b/venv/lib/python3.10/site-packages/future/utils/__init__.py new file mode 100644 index 0000000..ec1b102 --- /dev/null +++ b/venv/lib/python3.10/site-packages/future/utils/__init__.py @@ -0,0 +1,770 @@ +""" +A selection of cross-compatible functions for Python 2 and 3. + +This module exports useful functions for 2/3 compatible code: + + * bind_method: binds functions to classes + * ``native_str_to_bytes`` and ``bytes_to_native_str`` + * ``native_str``: always equal to the native platform string object (because + this may be shadowed by imports from future.builtins) + * lists: lrange(), lmap(), lzip(), lfilter() + * iterable method compatibility: + - iteritems, iterkeys, itervalues + - viewitems, viewkeys, viewvalues + + These use the original method if available, otherwise they use items, + keys, values. + + * types: + + * text_type: unicode in Python 2, str in Python 3 + * string_types: basestring in Python 2, str in Python 3 + * binary_type: str in Python 2, bytes in Python 3 + * integer_types: (int, long) in Python 2, int in Python 3 + * class_types: (type, types.ClassType) in Python 2, type in Python 3 + + * bchr(c): + Take an integer and make a 1-character byte string + * bord(c) + Take the result of indexing on a byte string and make an integer + * tobytes(s) + Take a text string, a byte string, or a sequence of characters taken + from a byte string, and make a byte string. + + * raise_from() + * raise_with_traceback() + +This module also defines these decorators: + + * ``python_2_unicode_compatible`` + * ``with_metaclass`` + * ``implements_iterator`` + +Some of the functions in this module come from the following sources: + + * Jinja2 (BSD licensed: see + https://github.com/mitsuhiko/jinja2/blob/master/LICENSE) + * Pandas compatibility module pandas.compat + * six.py by Benjamin Peterson + * Django +""" + +import types +import sys +import numbers +import functools +import copy +import inspect + + +PY3 = sys.version_info[0] >= 3 +PY34_PLUS = sys.version_info[0:2] >= (3, 4) +PY35_PLUS = sys.version_info[0:2] >= (3, 5) +PY36_PLUS = sys.version_info[0:2] >= (3, 6) +PY37_PLUS = sys.version_info[0:2] >= (3, 7) +PY38_PLUS = sys.version_info[0:2] >= (3, 8) +PY39_PLUS = sys.version_info[0:2] >= (3, 9) +PY2 = sys.version_info[0] == 2 +PY26 = sys.version_info[0:2] == (2, 6) +PY27 = sys.version_info[0:2] == (2, 7) +PYPY = hasattr(sys, 'pypy_translation_info') + + +def python_2_unicode_compatible(cls): + """ + A decorator that defines __unicode__ and __str__ methods under Python + 2. Under Python 3, this decorator is a no-op. + + To support Python 2 and 3 with a single code base, define a __str__ + method returning unicode text and apply this decorator to the class, like + this:: + + >>> from future.utils import python_2_unicode_compatible + + >>> @python_2_unicode_compatible + ... class MyClass(object): + ... def __str__(self): + ... return u'Unicode string: \u5b54\u5b50' + + >>> a = MyClass() + + Then, after this import: + + >>> from future.builtins import str + + the following is ``True`` on both Python 3 and 2:: + + >>> str(a) == a.encode('utf-8').decode('utf-8') + True + + and, on a Unicode-enabled terminal with the right fonts, these both print the + Chinese characters for Confucius:: + + >>> print(a) + >>> print(str(a)) + + The implementation comes from django.utils.encoding. + """ + if not PY3: + cls.__unicode__ = cls.__str__ + cls.__str__ = lambda self: self.__unicode__().encode('utf-8') + return cls + + +def with_metaclass(meta, *bases): + """ + Function from jinja2/_compat.py. License: BSD. + + Use it like this:: + + class BaseForm(object): + pass + + class FormType(type): + pass + + class Form(with_metaclass(FormType, BaseForm)): + pass + + This requires a bit of explanation: the basic idea is to make a + dummy metaclass for one level of class instantiation that replaces + itself with the actual metaclass. Because of internal type checks + we also need to make sure that we downgrade the custom metaclass + for one level to something closer to type (that's why __call__ and + __init__ comes back from type etc.). + + This has the advantage over six.with_metaclass of not introducing + dummy classes into the final MRO. + """ + class metaclass(meta): + __call__ = type.__call__ + __init__ = type.__init__ + def __new__(cls, name, this_bases, d): + if this_bases is None: + return type.__new__(cls, name, (), d) + return meta(name, bases, d) + return metaclass('temporary_class', None, {}) + + +# Definitions from pandas.compat and six.py follow: +if PY3: + def bchr(s): + return bytes([s]) + def bstr(s): + if isinstance(s, str): + return bytes(s, 'latin-1') + else: + return bytes(s) + def bord(s): + return s + + string_types = str, + integer_types = int, + class_types = type, + text_type = str + binary_type = bytes + +else: + # Python 2 + def bchr(s): + return chr(s) + def bstr(s): + return str(s) + def bord(s): + return ord(s) + + string_types = basestring, + integer_types = (int, long) + class_types = (type, types.ClassType) + text_type = unicode + binary_type = str + +### + +if PY3: + def tobytes(s): + if isinstance(s, bytes): + return s + else: + if isinstance(s, str): + return s.encode('latin-1') + else: + return bytes(s) +else: + # Python 2 + def tobytes(s): + if isinstance(s, unicode): + return s.encode('latin-1') + else: + return ''.join(s) + +tobytes.__doc__ = """ + Encodes to latin-1 (where the first 256 chars are the same as + ASCII.) + """ + +if PY3: + def native_str_to_bytes(s, encoding='utf-8'): + return s.encode(encoding) + + def bytes_to_native_str(b, encoding='utf-8'): + return b.decode(encoding) + + def text_to_native_str(t, encoding=None): + return t +else: + # Python 2 + def native_str_to_bytes(s, encoding=None): + from future.types import newbytes # to avoid a circular import + return newbytes(s) + + def bytes_to_native_str(b, encoding=None): + return native(b) + + def text_to_native_str(t, encoding='ascii'): + """ + Use this to create a Py2 native string when "from __future__ import + unicode_literals" is in effect. + """ + return unicode(t).encode(encoding) + +native_str_to_bytes.__doc__ = """ + On Py3, returns an encoded string. + On Py2, returns a newbytes type, ignoring the ``encoding`` argument. + """ + +if PY3: + # list-producing versions of the major Python iterating functions + def lrange(*args, **kwargs): + return list(range(*args, **kwargs)) + + def lzip(*args, **kwargs): + return list(zip(*args, **kwargs)) + + def lmap(*args, **kwargs): + return list(map(*args, **kwargs)) + + def lfilter(*args, **kwargs): + return list(filter(*args, **kwargs)) +else: + import __builtin__ + # Python 2-builtin ranges produce lists + lrange = __builtin__.range + lzip = __builtin__.zip + lmap = __builtin__.map + lfilter = __builtin__.filter + + +def isidentifier(s, dotted=False): + ''' + A function equivalent to the str.isidentifier method on Py3 + ''' + if dotted: + return all(isidentifier(a) for a in s.split('.')) + if PY3: + return s.isidentifier() + else: + import re + _name_re = re.compile(r"[a-zA-Z_][a-zA-Z0-9_]*$") + return bool(_name_re.match(s)) + + +def viewitems(obj, **kwargs): + """ + Function for iterating over dictionary items with the same set-like + behaviour on Py2.7 as on Py3. + + Passes kwargs to method.""" + func = getattr(obj, "viewitems", None) + if not func: + func = obj.items + return func(**kwargs) + + +def viewkeys(obj, **kwargs): + """ + Function for iterating over dictionary keys with the same set-like + behaviour on Py2.7 as on Py3. + + Passes kwargs to method.""" + func = getattr(obj, "viewkeys", None) + if not func: + func = obj.keys + return func(**kwargs) + + +def viewvalues(obj, **kwargs): + """ + Function for iterating over dictionary values with the same set-like + behaviour on Py2.7 as on Py3. + + Passes kwargs to method.""" + func = getattr(obj, "viewvalues", None) + if not func: + func = obj.values + return func(**kwargs) + + +def iteritems(obj, **kwargs): + """Use this only if compatibility with Python versions before 2.7 is + required. Otherwise, prefer viewitems(). + """ + func = getattr(obj, "iteritems", None) + if not func: + func = obj.items + return func(**kwargs) + + +def iterkeys(obj, **kwargs): + """Use this only if compatibility with Python versions before 2.7 is + required. Otherwise, prefer viewkeys(). + """ + func = getattr(obj, "iterkeys", None) + if not func: + func = obj.keys + return func(**kwargs) + + +def itervalues(obj, **kwargs): + """Use this only if compatibility with Python versions before 2.7 is + required. Otherwise, prefer viewvalues(). + """ + func = getattr(obj, "itervalues", None) + if not func: + func = obj.values + return func(**kwargs) + + +def bind_method(cls, name, func): + """Bind a method to class, python 2 and python 3 compatible. + + Parameters + ---------- + + cls : type + class to receive bound method + name : basestring + name of method on class instance + func : function + function to be bound as method + + Returns + ------- + None + """ + # only python 2 has an issue with bound/unbound methods + if not PY3: + setattr(cls, name, types.MethodType(func, None, cls)) + else: + setattr(cls, name, func) + + +def getexception(): + return sys.exc_info()[1] + + +def _get_caller_globals_and_locals(): + """ + Returns the globals and locals of the calling frame. + + Is there an alternative to frame hacking here? + """ + caller_frame = inspect.stack()[2] + myglobals = caller_frame[0].f_globals + mylocals = caller_frame[0].f_locals + return myglobals, mylocals + + +def _repr_strip(mystring): + """ + Returns the string without any initial or final quotes. + """ + r = repr(mystring) + if r.startswith("'") and r.endswith("'"): + return r[1:-1] + else: + return r + + +if PY3: + def raise_from(exc, cause): + """ + Equivalent to: + + raise EXCEPTION from CAUSE + + on Python 3. (See PEP 3134). + """ + myglobals, mylocals = _get_caller_globals_and_locals() + + # We pass the exception and cause along with other globals + # when we exec(): + myglobals = myglobals.copy() + myglobals['__python_future_raise_from_exc'] = exc + myglobals['__python_future_raise_from_cause'] = cause + execstr = "raise __python_future_raise_from_exc from __python_future_raise_from_cause" + exec(execstr, myglobals, mylocals) + + def raise_(tp, value=None, tb=None): + """ + A function that matches the Python 2.x ``raise`` statement. This + allows re-raising exceptions with the cls value and traceback on + Python 2 and 3. + """ + if isinstance(tp, BaseException): + # If the first object is an instance, the type of the exception + # is the class of the instance, the instance itself is the value, + # and the second object must be None. + if value is not None: + raise TypeError("instance exception may not have a separate value") + exc = tp + elif isinstance(tp, type) and not issubclass(tp, BaseException): + # If the first object is a class, it becomes the type of the + # exception. + raise TypeError("class must derive from BaseException, not %s" % tp.__name__) + else: + # The second object is used to determine the exception value: If it + # is an instance of the class, the instance becomes the exception + # value. If the second object is a tuple, it is used as the argument + # list for the class constructor; if it is None, an empty argument + # list is used, and any other object is treated as a single argument + # to the constructor. The instance so created by calling the + # constructor is used as the exception value. + if isinstance(value, tp): + exc = value + elif isinstance(value, tuple): + exc = tp(*value) + elif value is None: + exc = tp() + else: + exc = tp(value) + + if exc.__traceback__ is not tb: + raise exc.with_traceback(tb) + raise exc + + def raise_with_traceback(exc, traceback=Ellipsis): + if traceback == Ellipsis: + _, _, traceback = sys.exc_info() + raise exc.with_traceback(traceback) + +else: + def raise_from(exc, cause): + """ + Equivalent to: + + raise EXCEPTION from CAUSE + + on Python 3. (See PEP 3134). + """ + # Is either arg an exception class (e.g. IndexError) rather than + # instance (e.g. IndexError('my message here')? If so, pass the + # name of the class undisturbed through to "raise ... from ...". + if isinstance(exc, type) and issubclass(exc, Exception): + e = exc() + # exc = exc.__name__ + # execstr = "e = " + _repr_strip(exc) + "()" + # myglobals, mylocals = _get_caller_globals_and_locals() + # exec(execstr, myglobals, mylocals) + else: + e = exc + e.__suppress_context__ = False + if isinstance(cause, type) and issubclass(cause, Exception): + e.__cause__ = cause() + e.__cause__.__traceback__ = sys.exc_info()[2] + e.__suppress_context__ = True + elif cause is None: + e.__cause__ = None + e.__suppress_context__ = True + elif isinstance(cause, BaseException): + e.__cause__ = cause + object.__setattr__(e.__cause__, '__traceback__', sys.exc_info()[2]) + e.__suppress_context__ = True + else: + raise TypeError("exception causes must derive from BaseException") + e.__context__ = sys.exc_info()[1] + raise e + + exec(''' +def raise_(tp, value=None, tb=None): + raise tp, value, tb + +def raise_with_traceback(exc, traceback=Ellipsis): + if traceback == Ellipsis: + _, _, traceback = sys.exc_info() + raise exc, None, traceback +'''.strip()) + + +raise_with_traceback.__doc__ = ( +"""Raise exception with existing traceback. +If traceback is not passed, uses sys.exc_info() to get traceback.""" +) + + +# Deprecated alias for backward compatibility with ``future`` versions < 0.11: +reraise = raise_ + + +def implements_iterator(cls): + ''' + From jinja2/_compat.py. License: BSD. + + Use as a decorator like this:: + + @implements_iterator + class UppercasingIterator(object): + def __init__(self, iterable): + self._iter = iter(iterable) + def __iter__(self): + return self + def __next__(self): + return next(self._iter).upper() + + ''' + if PY3: + return cls + else: + cls.next = cls.__next__ + del cls.__next__ + return cls + +if PY3: + get_next = lambda x: x.__next__ +else: + get_next = lambda x: x.next + + +def encode_filename(filename): + if PY3: + return filename + else: + if isinstance(filename, unicode): + return filename.encode('utf-8') + return filename + + +def is_new_style(cls): + """ + Python 2.7 has both new-style and old-style classes. Old-style classes can + be pesky in some circumstances, such as when using inheritance. Use this + function to test for whether a class is new-style. (Python 3 only has + new-style classes.) + """ + return hasattr(cls, '__class__') and ('__dict__' in dir(cls) + or hasattr(cls, '__slots__')) + +# The native platform string and bytes types. Useful because ``str`` and +# ``bytes`` are redefined on Py2 by ``from future.builtins import *``. +native_str = str +native_bytes = bytes + + +def istext(obj): + """ + Deprecated. Use:: + >>> isinstance(obj, str) + after this import: + >>> from future.builtins import str + """ + return isinstance(obj, type(u'')) + + +def isbytes(obj): + """ + Deprecated. Use:: + >>> isinstance(obj, bytes) + after this import: + >>> from future.builtins import bytes + """ + return isinstance(obj, type(b'')) + + +def isnewbytes(obj): + """ + Equivalent to the result of ``type(obj) == type(newbytes)`` + in other words, it is REALLY a newbytes instance, not a Py2 native str + object? + + Note that this does not cover subclasses of newbytes, and it is not + equivalent to ininstance(obj, newbytes) + """ + return type(obj).__name__ == 'newbytes' + + +def isint(obj): + """ + Deprecated. Tests whether an object is a Py3 ``int`` or either a Py2 ``int`` or + ``long``. + + Instead of using this function, you can use: + + >>> from future.builtins import int + >>> isinstance(obj, int) + + The following idiom is equivalent: + + >>> from numbers import Integral + >>> isinstance(obj, Integral) + """ + + return isinstance(obj, numbers.Integral) + + +def native(obj): + """ + On Py3, this is a no-op: native(obj) -> obj + + On Py2, returns the corresponding native Py2 types that are + superclasses for backported objects from Py3: + + >>> from builtins import str, bytes, int + + >>> native(str(u'ABC')) + u'ABC' + >>> type(native(str(u'ABC'))) + unicode + + >>> native(bytes(b'ABC')) + b'ABC' + >>> type(native(bytes(b'ABC'))) + bytes + + >>> native(int(10**20)) + 100000000000000000000L + >>> type(native(int(10**20))) + long + + Existing native types on Py2 will be returned unchanged: + + >>> type(native(u'ABC')) + unicode + """ + if hasattr(obj, '__native__'): + return obj.__native__() + else: + return obj + + +# Implementation of exec_ is from ``six``: +if PY3: + import builtins + exec_ = getattr(builtins, "exec") +else: + def exec_(code, globs=None, locs=None): + """Execute code in a namespace.""" + if globs is None: + frame = sys._getframe(1) + globs = frame.f_globals + if locs is None: + locs = frame.f_locals + del frame + elif locs is None: + locs = globs + exec("""exec code in globs, locs""") + + +# Defined here for backward compatibility: +def old_div(a, b): + """ + DEPRECATED: import ``old_div`` from ``past.utils`` instead. + + Equivalent to ``a / b`` on Python 2 without ``from __future__ import + division``. + + TODO: generalize this to other objects (like arrays etc.) + """ + if isinstance(a, numbers.Integral) and isinstance(b, numbers.Integral): + return a // b + else: + return a / b + + +def as_native_str(encoding='utf-8'): + ''' + A decorator to turn a function or method call that returns text, i.e. + unicode, into one that returns a native platform str. + + Use it as a decorator like this:: + + from __future__ import unicode_literals + + class MyClass(object): + @as_native_str(encoding='ascii') + def __repr__(self): + return next(self._iter).upper() + ''' + if PY3: + return lambda f: f + else: + def encoder(f): + @functools.wraps(f) + def wrapper(*args, **kwargs): + return f(*args, **kwargs).encode(encoding=encoding) + return wrapper + return encoder + +# listvalues and listitems definitions from Nick Coghlan's (withdrawn) +# PEP 496: +try: + dict.iteritems +except AttributeError: + # Python 3 + def listvalues(d): + return list(d.values()) + def listitems(d): + return list(d.items()) +else: + # Python 2 + def listvalues(d): + return d.values() + def listitems(d): + return d.items() + +if PY3: + def ensure_new_type(obj): + return obj +else: + def ensure_new_type(obj): + from future.types.newbytes import newbytes + from future.types.newstr import newstr + from future.types.newint import newint + from future.types.newdict import newdict + + native_type = type(native(obj)) + + # Upcast only if the type is already a native (non-future) type + if issubclass(native_type, type(obj)): + # Upcast + if native_type == str: # i.e. Py2 8-bit str + return newbytes(obj) + elif native_type == unicode: + return newstr(obj) + elif native_type == int: + return newint(obj) + elif native_type == long: + return newint(obj) + elif native_type == dict: + return newdict(obj) + else: + return obj + else: + # Already a new type + assert type(obj) in [newbytes, newstr] + return obj + + +__all__ = ['PY2', 'PY26', 'PY3', 'PYPY', + 'as_native_str', 'binary_type', 'bind_method', 'bord', 'bstr', + 'bytes_to_native_str', 'class_types', 'encode_filename', + 'ensure_new_type', 'exec_', 'get_next', 'getexception', + 'implements_iterator', 'integer_types', 'is_new_style', 'isbytes', + 'isidentifier', 'isint', 'isnewbytes', 'istext', 'iteritems', + 'iterkeys', 'itervalues', 'lfilter', 'listitems', 'listvalues', + 'lmap', 'lrange', 'lzip', 'native', 'native_bytes', 'native_str', + 'native_str_to_bytes', 'old_div', + 'python_2_unicode_compatible', 'raise_', + 'raise_with_traceback', 'reraise', 'string_types', + 'text_to_native_str', 'text_type', 'tobytes', 'viewitems', + 'viewkeys', 'viewvalues', 'with_metaclass' + ] diff --git a/venv/lib/python3.10/site-packages/future/utils/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/future/utils/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2065d6526e05f708622882b359cf2dd0f394a6a8 GIT binary patch literal 19996 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 12), + # 0x80 | ((code >> 6) & 0x3f), + # 0x80 | (code & 0x3f)] + # Is this a good idea? + if 0xDC00 <= code <= 0xDC7F: + decoded.append(_unichr(code - 0xDC00)) + elif code <= 0xDCFF: + decoded.append(_unichr(code - 0xDC00)) + else: + raise NotASurrogateError + return str().join(decoded) + + +def replace_surrogate_decode(mybytes): + """ + Returns a (unicode) string + """ + decoded = [] + for ch in mybytes: + # We may be parsing newbytes (in which case ch is an int) or a native + # str on Py2 + if isinstance(ch, int): + code = ch + else: + code = ord(ch) + if 0x80 <= code <= 0xFF: + decoded.append(_unichr(0xDC00 + code)) + elif code <= 0x7F: + decoded.append(_unichr(code)) + else: + # # It may be a bad byte + # # Try swallowing it. + # continue + # print("RAISE!") + raise NotASurrogateError + return str().join(decoded) + + +def encodefilename(fn): + if FS_ENCODING == 'ascii': + # ASCII encoder of Python 2 expects that the error handler returns a + # Unicode string encodable to ASCII, whereas our surrogateescape error + # handler has to return bytes in 0x80-0xFF range. + encoded = [] + for index, ch in enumerate(fn): + code = ord(ch) + if code < 128: + ch = bytes_chr(code) + elif 0xDC80 <= code <= 0xDCFF: + ch = bytes_chr(code - 0xDC00) + else: + raise UnicodeEncodeError(FS_ENCODING, + fn, index, index+1, + 'ordinal not in range(128)') + encoded.append(ch) + return bytes().join(encoded) + elif FS_ENCODING == 'utf-8': + # UTF-8 encoder of Python 2 encodes surrogates, so U+DC80-U+DCFF + # doesn't go through our error handler + encoded = [] + for index, ch in enumerate(fn): + code = ord(ch) + if 0xD800 <= code <= 0xDFFF: + if 0xDC80 <= code <= 0xDCFF: + ch = bytes_chr(code - 0xDC00) + encoded.append(ch) + else: + raise UnicodeEncodeError( + FS_ENCODING, + fn, index, index+1, 'surrogates not allowed') + else: + ch_utf8 = ch.encode('utf-8') + encoded.append(ch_utf8) + return bytes().join(encoded) + else: + return fn.encode(FS_ENCODING, FS_ERRORS) + +def decodefilename(fn): + return fn.decode(FS_ENCODING, FS_ERRORS) + +FS_ENCODING = 'ascii'; fn = b('[abc\xff]'); encoded = u('[abc\udcff]') +# FS_ENCODING = 'cp932'; fn = b('[abc\x81\x00]'); encoded = u('[abc\udc81\x00]') +# FS_ENCODING = 'UTF-8'; fn = b('[abc\xff]'); encoded = u('[abc\udcff]') + + +# normalize the filesystem encoding name. +# For example, we expect "utf-8", not "UTF8". +FS_ENCODING = codecs.lookup(FS_ENCODING).name + + +def register_surrogateescape(): + """ + Registers the surrogateescape error handler on Python 2 (only) + """ + if utils.PY3: + return + try: + codecs.lookup_error(FS_ERRORS) + except LookupError: + codecs.register_error(FS_ERRORS, surrogateescape_handler) + + +if __name__ == '__main__': + pass + # # Tests: + # register_surrogateescape() + + # b = decodefilename(fn) + # assert b == encoded, "%r != %r" % (b, encoded) + # c = encodefilename(b) + # assert c == fn, '%r != %r' % (c, fn) + # # print("ok") diff --git a/venv/lib/python3.10/site-packages/idna-3.11.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/idna-3.11.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/idna-3.11.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/idna-3.11.dist-info/METADATA b/venv/lib/python3.10/site-packages/idna-3.11.dist-info/METADATA new file mode 100644 index 0000000..7a4a4b7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/idna-3.11.dist-info/METADATA @@ -0,0 +1,209 @@ +Metadata-Version: 2.4 +Name: idna +Version: 3.11 +Summary: Internationalized Domain Names in Applications (IDNA) +Author-email: Kim Davies +Requires-Python: >=3.8 +Description-Content-Type: text/x-rst +License-Expression: BSD-3-Clause +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: System Administrators +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: Name Service (DNS) +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Utilities +License-File: LICENSE.md +Requires-Dist: ruff >= 0.6.2 ; extra == "all" +Requires-Dist: mypy >= 1.11.2 ; extra == "all" +Requires-Dist: pytest >= 8.3.2 ; extra == "all" +Requires-Dist: flake8 >= 7.1.1 ; extra == "all" +Project-URL: Changelog, https://github.com/kjd/idna/blob/master/HISTORY.rst +Project-URL: Issue tracker, https://github.com/kjd/idna/issues +Project-URL: Source, https://github.com/kjd/idna +Provides-Extra: all + +Internationalized Domain Names in Applications (IDNA) +===================================================== + +Support for `Internationalized Domain Names in +Applications (IDNA) `_ +and `Unicode IDNA Compatibility Processing +`_. + +The latest versions of these standards supplied here provide +more comprehensive language coverage and reduce the potential of +allowing domains with known security vulnerabilities. This library +is a suitable replacement for the “encodings.idna” +module that comes with the Python standard library, but which +only supports an older superseded IDNA specification from 2003. + +Basic functions are simply executed: + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('ドメイン.テスト') + b'xn--eckwd4c7c.xn--zckzah' + >>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) + ドメイン.テスト + + +Installation +------------ + +This package is available for installation from PyPI via the +typical mechanisms, such as: + +.. code-block:: bash + + $ python3 -m pip install idna + + +Usage +----- + +For typical usage, the ``encode`` and ``decode`` functions will take a +domain name argument and perform a conversion to ASCII compatible encoding +(known as A-labels), or to Unicode strings (known as U-labels) +respectively. + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('ドメイン.テスト') + b'xn--eckwd4c7c.xn--zckzah' + >>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) + ドメイン.テスト + +Conversions can be applied at a per-label basis using the ``ulabel`` or +``alabel`` functions if necessary: + +.. code-block:: pycon + + >>> idna.alabel('测试') + b'xn--0zwm56d' + + +Compatibility Mapping (UTS #46) ++++++++++++++++++++++++++++++++ + +This library provides support for `Unicode IDNA Compatibility +Processing `_ which normalizes input from +different potential ways a user may input a domain prior to performing the IDNA +conversion operations. This functionality, known as a +`mapping `_, is considered by the +specification to be a local user-interface issue distinct from IDNA +conversion functionality. + +For example, “Königsgäßchen” is not a permissible label as *LATIN +CAPITAL LETTER K* is not allowed (nor are capital letters in general). +UTS 46 will convert this into lower case prior to applying the IDNA +conversion. + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('Königsgäßchen') + ... + idna.core.InvalidCodepoint: Codepoint U+004B at position 1 of 'Königsgäßchen' not allowed + >>> idna.encode('Königsgäßchen', uts46=True) + b'xn--knigsgchen-b4a3dun' + >>> print(idna.decode('xn--knigsgchen-b4a3dun')) + königsgäßchen + + +Exceptions +---------- + +All errors raised during the conversion following the specification +should raise an exception derived from the ``idna.IDNAError`` base +class. + +More specific exceptions that may be generated as ``idna.IDNABidiError`` +when the error reflects an illegal combination of left-to-right and +right-to-left characters in a label; ``idna.InvalidCodepoint`` when +a specific codepoint is an illegal character in an IDN label (i.e. +INVALID); and ``idna.InvalidCodepointContext`` when the codepoint is +illegal based on its position in the string (i.e. it is CONTEXTO or CONTEXTJ +but the contextual requirements are not satisfied.) + +Building and Diagnostics +------------------------ + +The IDNA and UTS 46 functionality relies upon pre-calculated lookup +tables for performance. These tables are derived from computing against +eligibility criteria in the respective standards using the command-line +script ``tools/idna-data``. + +This tool will fetch relevant codepoint data from the Unicode repository +and perform the required calculations to identify eligibility. There are +three main modes: + +* ``idna-data make-libdata``. Generates ``idnadata.py`` and + ``uts46data.py``, the pre-calculated lookup tables used for IDNA and + UTS 46 conversions. Implementers who wish to track this library against + a different Unicode version may use this tool to manually generate a + different version of the ``idnadata.py`` and ``uts46data.py`` files. + +* ``idna-data make-table``. Generate a table of the IDNA disposition + (e.g. PVALID, CONTEXTJ, CONTEXTO) in the format found in Appendix + B.1 of RFC 5892 and the pre-computed tables published by `IANA + `_. + +* ``idna-data U+0061``. Prints debugging output on the various + properties associated with an individual Unicode codepoint (in this + case, U+0061), that are used to assess the IDNA and UTS 46 status of a + codepoint. This is helpful in debugging or analysis. + +The tool accepts a number of arguments, described using ``idna-data +-h``. Most notably, the ``--version`` argument allows the specification +of the version of Unicode to be used in computing the table data. For +example, ``idna-data --version 9.0.0 make-libdata`` will generate +library data against Unicode 9.0.0. + + +Additional Notes +---------------- + +* **Packages**. The latest tagged release version is published in the + `Python Package Index `_. + +* **Version support**. This library supports Python 3.8 and higher. + As this library serves as a low-level toolkit for a variety of + applications, many of which strive for broad compatibility with older + Python versions, there is no rush to remove older interpreter support. + Support for older versions are likely to be removed from new releases + as automated tests can no longer easily be run, i.e. once the Python + version is officially end-of-life. + +* **Testing**. The library has a test suite based on each rule of the + IDNA specification, as well as tests that are provided as part of the + Unicode Technical Standard 46, `Unicode IDNA Compatibility Processing + `_. + +* **Emoji**. It is an occasional request to support emoji domains in + this library. Encoding of symbols like emoji is expressly prohibited by + the technical standard IDNA 2008 and emoji domains are broadly phased + out across the domain industry due to associated security risks. For + now, applications that need to support these non-compliant labels + may wish to consider trying the encode/decode operation in this library + first, and then falling back to using `encodings.idna`. See `the Github + project `_ for more discussion. + +* **Transitional processing**. Unicode 16.0.0 removed transitional + processing so the `transitional` argument for the encode() method + no longer has any effect and will be removed at a later date. + diff --git a/venv/lib/python3.10/site-packages/idna-3.11.dist-info/RECORD b/venv/lib/python3.10/site-packages/idna-3.11.dist-info/RECORD new file mode 100644 index 0000000..8995942 --- /dev/null +++ b/venv/lib/python3.10/site-packages/idna-3.11.dist-info/RECORD @@ -0,0 +1,22 @@ +idna-3.11.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +idna-3.11.dist-info/METADATA,sha256=fCwSww9SuiN8TIHllFSASUQCW55hAs8dzKnr9RaEEbA,8378 +idna-3.11.dist-info/RECORD,, +idna-3.11.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82 +idna-3.11.dist-info/licenses/LICENSE.md,sha256=t6M2q_OwThgOwGXN0W5wXQeeHMehT5EKpukYfza5zYc,1541 +idna/__init__.py,sha256=MPqNDLZbXqGaNdXxAFhiqFPKEQXju2jNQhCey6-5eJM,868 +idna/__pycache__/__init__.cpython-310.pyc,, +idna/__pycache__/codec.cpython-310.pyc,, +idna/__pycache__/compat.cpython-310.pyc,, +idna/__pycache__/core.cpython-310.pyc,, +idna/__pycache__/idnadata.cpython-310.pyc,, +idna/__pycache__/intranges.cpython-310.pyc,, +idna/__pycache__/package_data.cpython-310.pyc,, +idna/__pycache__/uts46data.cpython-310.pyc,, +idna/codec.py,sha256=M2SGWN7cs_6B32QmKTyTN6xQGZeYQgQ2wiX3_DR6loE,3438 +idna/compat.py,sha256=RzLy6QQCdl9784aFhb2EX9EKGCJjg0P3PilGdeXXcx8,316 +idna/core.py,sha256=P26_XVycuMTZ1R2mNK1ZREVzM5mvTzdabBXfyZVU1Lc,13246 +idna/idnadata.py,sha256=SG8jhaGE53iiD6B49pt2pwTv_UvClciWE-N54oR2p4U,79623 +idna/intranges.py,sha256=amUtkdhYcQG8Zr-CoMM_kVRacxkivC1WgxN1b63KKdU,1898 +idna/package_data.py,sha256=_CUavOxobnbyNG2FLyHoN8QHP3QM9W1tKuw7eq9QwBk,21 +idna/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +idna/uts46data.py,sha256=H9J35VkD0F9L9mKOqjeNGd2A-Va6FlPoz6Jz4K7h-ps,243725 diff --git a/venv/lib/python3.10/site-packages/idna-3.11.dist-info/WHEEL b/venv/lib/python3.10/site-packages/idna-3.11.dist-info/WHEEL new file mode 100644 index 0000000..d8b9936 --- /dev/null +++ b/venv/lib/python3.10/site-packages/idna-3.11.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.12.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.10/site-packages/idna-3.11.dist-info/licenses/LICENSE.md b/venv/lib/python3.10/site-packages/idna-3.11.dist-info/licenses/LICENSE.md new file mode 100644 index 0000000..256ba90 --- /dev/null +++ b/venv/lib/python3.10/site-packages/idna-3.11.dist-info/licenses/LICENSE.md @@ -0,0 +1,31 @@ +BSD 3-Clause License + +Copyright (c) 2013-2025, Kim Davies and contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.10/site-packages/idna/__init__.py b/venv/lib/python3.10/site-packages/idna/__init__.py new file mode 100644 index 0000000..cfdc030 --- /dev/null +++ b/venv/lib/python3.10/site-packages/idna/__init__.py @@ -0,0 +1,45 @@ +from .core import ( + IDNABidiError, + IDNAError, + InvalidCodepoint, + InvalidCodepointContext, + alabel, + check_bidi, + check_hyphen_ok, + check_initial_combiner, + check_label, + check_nfc, + decode, + encode, + ulabel, + uts46_remap, + valid_contextj, + valid_contexto, + valid_label_length, + valid_string_length, +) +from .intranges import intranges_contain +from .package_data import __version__ + +__all__ = [ + "__version__", + "IDNABidiError", + "IDNAError", + "InvalidCodepoint", + "InvalidCodepointContext", + "alabel", + "check_bidi", + "check_hyphen_ok", + "check_initial_combiner", + "check_label", + "check_nfc", + "decode", + "encode", + "intranges_contain", + "ulabel", + "uts46_remap", + "valid_contextj", + "valid_contexto", + "valid_label_length", + "valid_string_length", +] diff --git a/venv/lib/python3.10/site-packages/idna/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/idna/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9c505b76dcb13bbfb0aac8aadff8b91b1e8d451a GIT binary patch literal 840 zcmbu7&5qMB5XX~#q)n6bd%K7m#~yaW0zyJU2v|7mWregiUo1BHR zeC5O|aKe+U5ZVJ5EajJ(zwMc^JvvE7o*PdFUq#;aydUWNJvz>L>%OXX$i3W`9{9wE z4(ULbbfHIj&?kKeNB{#efFT(|NJ1Eq5kw?{n8c8f1jb|x6EcA*nZk_BU{2;f#_Pxh zEXlI5yYdWHWaWEXFYkTx$$8$t^VY#n-=$v9ZF2MB_T77ti;u==V?%UXb9$qWOp5$k z=e*QH)%N_Ma;;U(ztlEhl5M!OqpaZBo^D(?J8A9WR2E!Oy|=4Y5K7d7Nt$Wc2*r(! zTD^@BwvPIo*&yecOKk(L+W(X{y*j|dP0#1Ii8 zum?y pR-)z?_Zi&kT(Oi=Yy(O!%aa|x2Av-ye}f%a;q`s;;$`f|o!=a!;WhvO literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/idna/__pycache__/codec.cpython-310.pyc b/venv/lib/python3.10/site-packages/idna/__pycache__/codec.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4cd09352ac522f4d27538b4e5a13a68dca9e0e9f GIT binary patch literal 3261 zcmb7`&u<(x6vxLio*%o}Y|=FSk@71I<;T)C+ZHM)P)KPDDnbEK5YnP*HCcO`NoQxa zo>@@ZiG)b6@HZsK-1r0F#+g6BS57@~$O$g+eV$D=X@Ux~nm6`)Ufa+9yl1E5<5dgK zY5!rAj9b?4RN4Eus4U>keuEH}V6oLIzpTYjw`05Kw45Gq@t)gqnI#;-W3T78{9e!s zdX-kCS8Y{$W34e}Nw!fF?j~!Ee`EU~%OKYXR?zHOA1fl{>1)2$HCZVZ{F=)o1 zIRecTG&L~}&A6;XcXXY%jzU)#6VOc<-86L5Vp1LxMl}eTN!Z=)# zvG#=Qq(W*>Cgpcv^n)7y@%8-g-+lkb&p-b0%jTU94Y2pApt68B`vgK-w1h1iZraij z4qlE)yVC30n6@We;XQI&zOlQzc4yb_ivV^k8=M)_?sZJ5qrEIwQ76}2gn5V=(!?|E zDVYyc(s3~E&O>F6_d4F~d5FRm?4F~>a_s8{E9_0S&c0^_%O-?#+sf?%_1q!ZwJ{`L zROIkqFMOF~gML3%xfHWzyxHY25pk58 zXt$HFC);gZZMS==7{pYrwcGaxVLY@r*l|J3><0-9;l-bkN?KAO;Ip!VnLCUjlcwiK}Juu2T4Sj zwnds}Z6&pv_2Vc<;_3HgB9u>k5mTD4q*2nSsuQHyjTv=@Y@W$RnXct3j3^ALJ4ylB zAVy-yq6g@>%w)Av**4@n!Kkjcmj>OgRP8b%UO?a31&E!HsUmDR3x=;}Y7|PwZe-o5 z;rrn9K@R5k_r2JtsOQL)=Sk2=Y8FECr8JEV-Rd+c=SW;6aTwMw!ayBt6HbBkGE=1a zUr=-8Sr<@y$iz>F`i40N_CRem;3-J|ia9+E=>my%-Ogqx-3q>Lud$qOxI@fcgZX8k z?E&+1fS54%hL{_@!Td5=4CcW;%)Q*-gZan6yfVZ**v0%E;cry-VICAuVqV>g`7`iJ zyJ6OeBK0iF>LpUJy{K3Bpk9r#D9Q3L=}5EF>J|FWt0WpEC<&C=^EH$X2VI?|M(0SJ zCqX$%H6e6$h&83g5h#@UMo^c@_8N5A8xSL?tL#63Z65%8$ignzJIVY2*fvHheZE8` zVzuP@3YA9F9i?lU-vSw5CqcCXOjBA}z`IRH@+eUw4coeQJ6AI7eWh?Fs>Lnm$w)hF z$am0B=osx(1H0fZv)0+^InWA8|-~=3%7EfwWa!}C@}Bb^ZG1+{6Ttat_N-mCr<|$jsk!Mh)BGf_ G*Z%>X)2%T8 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/idna/__pycache__/compat.cpython-310.pyc b/venv/lib/python3.10/site-packages/idna/__pycache__/compat.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..255cdb8d8f5a0720eb9456ac575ddea80043d2d9 GIT binary patch literal 743 zcmZ`$J8K*<5SI3RFZ&WhAgMOxLhL;|O#&w5a8g`z5YB0?+gpw8bym`%)fqN+73a_R zFR4xC+Fh#5++i>Q56pX{`SeMTMtz3zHomToIb(k)c`5-WpHbTt8o>mwndD0@y`{&Q z@PuFcGFS#OT!xqj5Qz}tvp_^5{v9k6tauPZ@63D6uoGb?5k2hmMIX2b#Q-ZqF~Z6~ z3>GZgxyL;$^PE3boeRIKN~?PWMx{tVsRg(Q)W(N(v4Yw~2JG6XlBOPoVh{BM^&vrH z*$unp3wFon88;DD?zoA`F*8K>_gj9UCFGaw(c#CuG5Qip+vZiR_hq4qb1?Z8sH?oL zR(aFe3$5NC98U7KvasJ2|X`za|)Uqk;LDRYTR8JQtvl(rBAT$X#JLsN8YI@i; z^dX2bqRsDKYMk%B|-38{)=bc{O7ybm-#e3noK^V zLPMJ>ZPT@_>Z*lQ6%rZ)O^Q5NUFtgHZf~ybOg1%0P!_~jW3)k(FKGLJ0F%e_^w=%F zJ&dxUi)`0a>f8_+#z*6VQXAO5m1uH)YmEz6orQM8mFrPl7*lkcM;f~6$->R*4K2yB X)M8!3C;I!As2Q`d_tJk8ybAsSj{=`r literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/idna/__pycache__/core.cpython-310.pyc b/venv/lib/python3.10/site-packages/idna/__pycache__/core.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..94182209f4bf6eec810a8cea1fa14abd2af760fa GIT binary patch literal 9663 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 EUwp31vH$=8 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/idna/__pycache__/idnadata.cpython-310.pyc b/venv/lib/python3.10/site-packages/idna/__pycache__/idnadata.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a435be5894c78b3dd6af762104b70098fd8f8c8 GIT binary patch literal 198639 zcmYhk37pM!|G$5XW6l^$Dk0hTW$a@g48}h8At9kp_GB3ngHhU5DwQNjDn%u!B$cF+ z6iFqiBo#%e)ZL=`zpnS|dA`5@{e9fmb-g~$oO#a~_nf!S=bZUoRjO2a%>Gk7F>hj` zb&=TD4FCWCq}q^e|DAcmrLkBP8y<^_L@80xC>|AyQdbrmUSwh{N;|;GDo~0_O(K3oHnnAGiR9 z&$KYig@KC#uMNB|aB<-Efj0!+7BXB1SpXtpozZGurcIaK9-wC}t^t*w30^bXKKX7lj&Az}70`~`g822DA5`ATBKN|Y$z+-{m1b!R%9Soo8c$iOwwR|7? zhrpBJ(Kr?OW8hDLrvrZu{3Y<$z%zlr1^yoRzra6W_)LF>`LDpg1J4Hj6Zmi7e{gA$ zC?*$SEjFjfMRh#RdhK{IIaN-`X>xJQXSds?>pn`zCFN3bY55$vjC`(qo_xMsR=z+k zCzqEi$QQ~L|9@+_Nb9R4SC*^DRpn}Ob-9LIQ?4b~mg~rM<$7{`xq;je>v74@`WnfN zWrv&EZ*4YYESV zb}T#_n#1#R^P)LCGn&J5qd7b~n&)bb^W*}3E%W6C@Faz&U-zr>Yw~vab$N&UhP)GNEpO^rcn-Jwep~Y{ zeU5kJ-SWHo^F8u=^84~$d7u1&ykGuMJ|O?!GrWE7@EmUr&+_K*JZ}!q^yWia!)J1M zzPIDy8Q=Vc?(<9eh;H|l=A)XwmcuT>$K^ZS=D2)9_YrmkcH18`pOjC@ zKgwZmV7Cjq19R9Pn8Oai9QFw2uuCw9eS$gc6wG0-ptXb@gB=U|1@m9}9DmDa<$vUV z<^O_HZ0}&-@1-gBZ%McB9r$;p&vCh!oGK^eG#u8FV*l>+kMX@jN>oB~Nx76oPkxw7vaQlj%Umz90*kP`XcAtmy?LrUa(hZOr)>Hk|xMSaXgVGooNRgx>qRphF2 zHMzQ6L#`>;VxMS_Q*F(4v3tQV;OQIxv|_tZYnpEo69ZaOu41pN^UK; zk=x4cKV``#fX8mQU#4k^)K&3XE|hR8$Zi*-N4>hEH{JWHOfukUJkj(m+gSDq&q=>F#G@mnB=e_?AaVgF!%@58^e z&AxX?vAqNT_DG4szqifdU)<&!bl*41H_124x5&53OXS<++vPjtrL0kFxl`-COTJt7 zy+camdxwNKlOLDY z$xp~n%IoC~@>8(d{F;t$mtU86$Zue+Wv7n4DZeGZE$@=wk$21Q%6sJZ zBirU_Rk1J~D9o$9bxLiz5l@mCu#cru% z#pQIlgj`ZCC6|`Zk;};E%IC@F%Vp&YrN)_m>CA1LZ;TU^!3ry+hH+ z_YOs)i*k$iY8Wwm-ov1}y5yN>-&{zLv#{!9K_J}dtt|119&9M|3;l55L#{(BR}sDk8aW9bE|H@M6>T5;!)T;Xf0v?VBZ_xJH#X3 zJH#X3JH#X3JH#X3JH+k0ga54Zy+b_my+b_my+b_my+b_my+b_my+b_my+hp2JNU=@ z-XR`^y@S>g_7Aoe-#f(px`oZYcZlnnMO@b`;<{!L*ENf{u35x&%_6RA7I9s(i0hg~ zT-Pk(x@HmAd55^4chFkG{=q)C?;YZP-NI(yJH&O~A+GZdah-RF>%2o;=N;lY?-18{ zhq%r=#3SE3#C6^wuJaD@$oCF$d!51mdkzTu2m9QeD4sC zeD4sqYZm^weeV#rYZgBH-XU(+EPVF8Lp<`mL)@-e_;KGm#3SE3#3SE3#3SE3#O+lJ ze!H-D&|1R&!Peq?hqzt0@Z0#_As+eOAs+eOAs+eOA#T?!{C2)~h)2G6h)2G6h)2G6 zi0iyVT<0C)I`0tId55^4chFkG{=wGbdxyARx3Jmw4so4#i0iyVJo3FmT<0C)I`0sV zeD4sCeD6?9dxv7$I~3F2p_uj##k6-QX0La!uPLm>ULhC0zGD6gxuy0env2W6cPM7p zEO;D>MZR|^7M0RmT0TcEBcCguC!a5ul`oLXVXdXSj#ZE^lq<>?$(7{FauvC%TurVn z*N|(R3Cu zy__X?kUPqq zyifiBYc2bA>_hp0{E_^z{7Kla7Srn;is|(Z#cc1up1N4{nS5COT>e7-Qa&PoB_G9F z%hx(~O#VjxR{l;tE}xLUmw%8?%BSQX<)7r!^3U=w@~>EHIiq90$-m40lmC$al>d_d zme0!n$p6a!1*huu4yk&*L#kdYnX1=2q}tvgxt3JhKkyi*+TOwK=N(dQ@8ENB`?K_L zixT0xm8xAss&);jcE-WJ<94faGr76kLe7+1%B|$q zavQ9*wAHb8a(g*T?jU!RJIUE{XSs{qRnC#S$=&51a!?Y&SRXl8?ko3``^y95 zf$|`Eu$(6kk%!6`%fsYLdEt)Do{=M;$<%1&|NX@B*GZ;E;k6E0%|p7izg9BU&N=wKtkJzcBCnMnl^^@RdwpC- z*2z!E{%VI*JL}*-IXCE@pVIua{0!D=HtIId%A539JST6~$2>2;AipSY(Z{`{d8_7^ zHTx?iQ|+vSf0eJwuj$XXW3AaRP7y7?Yx7p&i4+f zdaY!topwI$oCGZdc9<-zh2T-?R$q*JMZ8h>wAY(JMZAL z?;TPj-#et*c?Uo4dxumz@8GlV9a8PQgU`NqNVW40_DJe+@x4Q;Uh|Nu^A4#x?~tnV z4yiitkgD?zsXFhFs`C!1I`5FG^A4#x?~t&)1K+iT_6`Z{9TGb4knr;kVJ!(i_h7e8 z4S!n`x@M8k-XWpaN+#@@h2Lk1@O33@2f^2uupNZEw0w?SMm|?QPd;BRD_?-MmU22) zUalZtC|8s(l6?n}(CZx%k?$Z9k?$Z9k?$Z9dc8v;@*PAX@*PAX@*PA%ua!(hb$AT4 zmb&^J_2l|;13eB6HD}0;In-L9$JOvjtcE#yqOrQAwxjkT6GI@VThC%2cgWZyv~ z?3#sr9rnHP9Yn&eS@_&px9cKzmHoAniKv^_+FkCUKkvz`we-@T_12&Dk#lvtujYPo ze|doZ++Qo1hz9Anzg994dZ$G~@3cthofZkb(;}gFS|s#Ni-g{3 zkL^lHh3 zy;{;ghwmX0cGbdX-$NvH)glr39wHHiJ%rX0_7S!g-$NuK-$NvH)gqy*771OoNa(6X zLRT#kx@wWIS4;ZmyiZ;(-!HF_ACOnd4`Qulm5x0mua+N{*T|2^Yvo7f$K=Q5b@CJP zlk$3bgZz~IG}c<4(Xoy4v$F3W61r-U&{d0su398?)gqy*771OoNa(6XLRT#kx@wWo zRf~kKS|oJUBH>ppw3hAq+^@?!8eGV zu3Dt|?jfutO;;|`w0lU??jcQAEz)$=B2BM&NYg7G(sb1#P3Irdbp9bt=O5B^{vpj? z@nB!~(lmR;gZn)Be7P*vS}xGBa&mdOf_$M|QNBp7Bv+QJ$W`TPa&_5v4{6#xq-pn% z=DP>2rH*b}SFR`5mmA0po&E*zyrrc6)g|(K}I@U&RE4P!|%UN;< zxue`k&XzmNUF5EEj@(V|F89D%OHUo^CHI#5$hmS~xu4u$9v}~t2g!rwJb8#bRK8dq zhP9SUbZodhLLMn!Dvy#clSj*AJEU%Ft zk=M$P%8$v9%j@JPne7-Qa*yUmalZ|sQk5jO#VjxR{l;tE}xLUmw%8?%BSQX z<)7r!^3Pan`9;TmmCwk($-m40lmC$al>d_dme0!n$p6a!1sB)ep}6)A#eMG()>2$& zABt=5P+WV5;@UeD*WRJH_726hcPOsCLvigLifivsTziM&+B+22-l4em4#l;1C~mKo zw8vv7s%!0@^S_FLb;-Rkz7fxELV}M%GKoRat*nrTnp=QsjXvm zkTd0$SZiseW3A;ja$C8b++NO-JIEd7PI9)~ zS?(ftm2>27a(Aq?^w6=Maxb~J+(*up`^x>~{_+5Mpgc$(Ea%BXxpmWetxNuDfEk*}1e%2&zLq~lds==*-Y7pSZ<3#rH_OkkUx??mOqgX z%Ad-I^8^5^mw@|Rd^Iih1<$w%d{AGr>u6J6b>zx+qdZ$IY-f5BU@3hcb z{K`eT-ffYtcUz?E-4^NkEf4AXEf48>r$xHnX_2mXTBO^%G<{8#{l()?OmEaH<6ple$^t~-lge( z?pH0+?OmESYb}1|BHiAp>9+}2F6?{dS1r=*otl2!uUe!>e$^s9@~al#UL;>D zUneh?ua|F-Zqx`JANq$b= zEI%*5AipSYkzbOx$}h{?u-5X5j=d_sCU2Ktmv_i-$UEgX<+tRw_`zvAyy>`2%^s{Goh6{z(2<{zN_~e<~l6Ka&s3pUYoht>sG{J0gE2ACq!2f zYb`Z(td?9`t|Ql#>&f-y2696=LvAEDmYc{;!xvQLmwU%x=)?Mx)_mq3dz2!b~uH0AdC-;{J$OGj;@?ben9)h)& zp*nW4JWRes9xjiNN6MGVqvXrv(efC1tbDl~$ydnZu+}nO$0o=V%M0X%a-qCPzE-|YUMycP-yq*8--NZ6 zn|16K`Br&}e4Bi`e22VLzEi$SzFS@<-y`2E-zP7Z@5hf8;pY|qx3omGVrBf%BEwUx z9@=wo8lir6B(yVs>|B{7>4owxQAmK2&LA!=)P5^eYxC9IfH2$;D#Z z+m-X1jhbphlk)yatIV~J8C~B0q|f>MKM|}YD1o_JKWm@8b;o=7~JR#F%}GiA6vPC<@}B7)S*P zkOqo_bWj461f@V}a1JN~&IRXz^Fdi~0VoH`g9_k6P!U`NDuK$N3aARIf$E?Js0nI; z+Mo`o3+jRTpaEzIGC(8H7}!G_o5({t(H^ka#O9y{$OJ7xE6^IW0c}A$&>m!g4xl6G z1hPSA&;@h_IiMTp4tju|pcm*3`hZ-}7xV-D!2mE2@Z)CUV2}rffT7@GFbrG*hJz7c zB)Ale0+)f&U;!Luw?P^EnKs2wV%U1B=1+;0ACbxCz`0ZUMJ~CEzx2JGcWZ1$TnG zz};XOxCh(|?gPug{a^)n0IUQLf>q!luo^rJ)__OATJR`%3_K3jfhWL|U_ICXo&ryU zXTV1AEZ78|1DnC~;05p^*aBVxTfxg<8+Zl03SI--!RufLcmwPNZ-TeL+h7-X2kZv# zf<53p@IKfJ_JI$;e()jq2z(4a0SCdS;1Ku>90p&4Bj77=6nqVif$zX^@ICkeoCK%9 zkKiZp7x){T1^xk4Xam}UcA!1T0v$j{&i#uJwY$f8}tSJKz}d*3&ua0q+`4uj9Z7vM{91bhXKg0I0b@D2DDdcd6Xb(gU^ciK%mLScxnLeB0Q12Dun-i2Mc`U+9as#m2RDG5!7bocums!& zZU^^)<=}p>0z3d#f(OAW@DNxH9tLZ`BVa9f6g&nV2kXES;7PC^YyeM#XTV1AEZ78| z1DnC~;05p^*aBVxTfxg<8+Zl03SI--!RufLcmwPNZ-TeL+h7;i4c-NNz&ua0q+`4uj9Z7vM{91bhX)2FJiR;9Kw=I1WyL@4*k?Bsc|r z1V4e(;Aij)_!XQ1zk%Pu|G*#MPw*G`8=M9IfPcY%AXeN^1f+m=APaN`T|ifm1G<6k zpa_morA}|(Q4i|Kz}d* z3q!luo^rJ)__OATJR`%3_K3jfhWL|pxT9o>YxUw3+jR9pe<+z z+Jo{H4HdveU?>;{E&;>A2rv>{3Pyp^U@W)-j05Ar1TYay0+YcMFcaj1SztD}8q5LL zfVp5EC;$t=M(`}y1fBz%!Smn+@FLg(UIJUe%U~OL1-uGg1KYvtU;!Lux4_$A z7kCHk2JeDB;63m@h+SkT0#ZOxkO^9W)}Re&3)+D!&;?8eQ^1vAD!2+v1Jl6_FcTDl zMPLnh1gr&*f_2~tupVpxPl0d2ac}~h0zZM%;AfCg$*fZgD=3B;0QPhz6Qs@H{e_F9XJk7fivI_@F(E9>BQH; z4)6xp3El*6fw#df@DA7w-UWNWd*FSr7wiKcfc@Y@Z~%M+J_etFgWywe2z&+(gU`Vi z;7f1>dk z0L%xgz(e3P_!*?EGo*qNpf;!jGC(%y47z}>AO~~<-9Zn~6Z8VTK_8F{`htF-KNtW8 zf3GhAm0h|PnZ3a2os!{sVQM zFw_P0Kz+~vGz1x-5$FMWf?l9E=mT;=U(gTq2Lr%BPzV-*Yr%8i1@I!+0$u{!z$@Sz zQ2$9o1JDp;fJUG(Xa<^tmY@~r3UWaK*a$X(=fGz0BG>|61+RhE!AWom{0_cZZ#WK4 zfhvC+V*eV7fD}*^#6dBT3KAd<6bI>`1Skngfzsd{Pz_WEH9$>J3)BX6KwVG|)CUbf zLy!R)fyST-_z(Q~pW!d?H~6PW5&P?tVwhdja5b0%t^spFk#s`}C<=;!R8SI>0;Rz@ zpbcmX+JR1BJ9r)J0B?Yu;7#y0cn9nT?}7KhUa${*0QQ3q!2$3Q_!xWw4uVg?A@CVE z3_b^6fG@!j@D(@)z5(BYAHYd)3j7Fu0)-_Ei@>$uI@=fyrPBxDu={ZP);I zfH%NSa2EUn{ssSmrso)%f##qE$OJ7xE6^IW0c}A$&>m!g4xl6G1hPSA&;@h_IiNe} z0eXU7pf~6PazS6v5A+8Ez(6nv3|2FwNXKmnK!7J!AI z5G(@Mg6qIya6Q-vHi75BX7D_C0c-&;fvwXY?nP4U;1dG56;6<FJeU9` zf=OU9m;$DO>0kz!3G%_qU>kS^yb4|e+rj%_AJ`AR0!KlcvWB*x9cT}-KnKtfbOK#K zSC9j`gHhl)uo*lLUH~tGEnq8n4QvNHz#CxG1%~IqX7D`N23`TLf$iWh_#Ct-XUGIC zK`YQ2v;l2FJJ11i0@+|acnWL;&w@?hIj|W#4_*Y7%NweK8lWbq1!{x3pdP3X8i0nN zNd-ew&4A)v|_Lsd`>R0lOcO;8Ke26aGPP!H4xjX-121e~5^_!;~Heg$Vh z)5(TrpgCv(GC@nw3iQ9qa0gfl?gV#%W8lGUhE-rSco?h!kAT=-LlKYyih?*O22w!+ zq=Dif9h3kiK`BrgoCC^$bHRDwd{7o#0Lp>#paQrMR0J1+N}w{R0;+;)pgO1lYJysz zHmC#Yf_k7nXaE|54A2NP1VUeS9;go*fQBFgGy;u56VMbi1Ii#uJwY$f8}tFWpfBhL`hx*rAQ%J&gFG+< z3q0^CV+`x5||98fLUNMcmS*f4}w+T zA@DF*10Dfu!K2_Y@Hkipo&ZmR^d3Oo&-0kI>7A|M461#wUeq=Gb19HfI1pd=^- zN`rGi8E`H*51bFmf(t-7P##nO7lBHkGN=Nof@+{Ts0nI;I-oA72kL_c;11CAD?>BT z9JBzLpe1Mpo<3?g2~L3@!B64XF^+*B!B3&Sp}@Z5h7Z7g@F6$=J^~+u*a<@skOGQ= zI4A~EK?0m!g4xl6G1hPSA&;@h_IiMTp4tju|pcm*3`hZ-} z7xV-D!2mE23<85e9vA|Kf{Vd0a0wU=Mu3svQZNc!21bK1U@W*CMBoZA4vYsAz(g+y{^T7hJ5X6cYihvYQ6vRO>kO~qY z4HO6IpaduhN`cbg98d6mx0k> z3>XV82NAdej05Ar1TYay0+YcMa3z=ut^(7*bT9+V1o>bVm<_H5bHFuVE|>=jza1*#0+yZU|OTca5c5nw+3ho4VfxE#na1Xc_+y|C}`@stE z09Xkg1gpS9U^RFctO1XJwct_k7;oTw{oq4z z0DJ^K2A_a~;8So2dvyethCd`V{yP z{A8&2p1nDbxAest+kZEEwzJ&sInQ!&k#K|mSr!xx8MAla9`Q`EjK{;#xMfMtRLioS zX_l2d(=BUxmbA?9v{Ub~Oiw%08q4yuQ;)G6&$5=eo_5+Rmgi~bq+%mID_TaLl`N-t z+UbK>zGpSd0?!(ji#=;uF7d2mxy-Ykc#gGP>={`u@f>Hl%yWX}N>4iz z5nJmy#d3q^RLjkt(=4}n&am9+nQytrbGGFH&pDQdJ$diJ#Vlq>v^+fHP72En|j`D+0*l0%RJAOmXYT}mUBGUST6QlYq`YpG0SD1Pgt(@ z++exR^J&Y?p3hot_k7-RpXZB~2R-dfOYE5EPRlc%cA6m8CK0|i`?q;4+w()qo}M3B z4)FZMa+v3*mZLpCvz*}hh2=EQBbEi8M=ck79v__0gXfQy zn>~NF+~)ba}r|jzjC3c zWhKwvmbE-{Ei*j(S!Q}}w9N9{VRKn_T-nCobT=P}DAp5Iz7^E__3((`-EwVwQvkqw?dT5k3{ZMn_! z7t5WVXDs)4{%(1|^AF3zo_|>$^E_*L((_--GoCT~9SUbXQ!L|U!-E>PEa{nQS=KYn zvXW=IWi8K=mKmOvzFx&Pk#N*GS7OJD?J-nuJz2Y+~C>Ra(3CjY{)0XQzWA?t@g`*?M>LDjv7JA-fx!v;)%UU(U4USrl^c+^)z6&+O(a5r}cF1X#%RLuc z?)1FPvTU7jgF7v=JfE=4^?cTHo#%6wyF9mA9`tGln%7w)WtWm(U2Eweo9TjqK;vs~xd!g7~qE6W3(?JSRY zcCb9{+12t7&t8_5>W9zP&oaYvkY$eNrIyn?XIn1!Tx=O{5I*d7%d(z#S!Q`YVVUds ztmQh-&6c}7w^|s#h}HnUvknQ6Jpvz_Gu&u*5dJ$qSJYUB@;WrpW4%RJA>vcPki<#Nv% zmODKcTc$M*_i(FaS+oUkTGsRY$TG|G6U$+qM=VEsp0-@>dB$>=XN%IdhBo2O+FS1P>~9%s8;%aQ z%=WyF+qMfwueU7Yd8=gw&$X6KJs-1N=J}lEO3zm<_j$f)8EYTz>}|^mo_j5;c^)a$Fs;e_F-A!!%A9acviF=?b*Px(6g200nav;hdtX_9`o#K`G;pu%Q79p{r0u2 zCym$AnzJLD?M?9L(oCcB1= zooj!&JbRsIx9u5@_Oq zU)llTXrbk{OF}-t(cvL~uq^ca({ksCaI~DguQoO^WJ}8e&peJ^8jfCRS?D?4a*Joa ziqHr|Bvd}Zja=YhL%L-S78_eRU=LXBzxNvkgM?DW&W{(d?E7^MrV-rGNW?ASt zpPU$u-eP&ybA@I0q;Pbd=)|(NIerTCJGvwcv13WYA-DUPGDcK4)wcO^JWqH!Gzh#?Q z;RbUoH+Vi^dCW6b#Xk1xaDx=f_?(b&%aWd{mSsKDEGv1YTh{U{X_?_!+A`C#jAfSR zd6qezWi4|(%UR}mR1>|zbE##P=UtXLp35wAJy%%fd9JdY=DFIkz;lh|V$ZdfOFSR5T;{pXa;4{! zmTNsXSZ?rq+H$k!M$2uUn=E&FZnoUx`GVyE&n=dRJ-1pO^W0{6((_fzGoITm&wB2# zjL!=X-%iVto^M%}_1tAy$#b`5Ezdoc8J_Q3W_s?k%<|lCnd5oDGS~BC%RJA6mLok6 zSw^0REvI;XVVUoF#InHisO4hMW0p%izqMTEdE9cP=l7OtJx^M0@chwov*&5cZJxha z?({rkxySQ&%LAT&SRVHL%kr4#S<922|5~2$Osi^-uP488I=dh|zV$5iYo^;+Zug`7 z^6A)oE;hx&ttN1*`5~usE6%(7umawxFjU~;(D zhPYk%44-td4JDJq4K|cb4ma6QDLLF?L#^bn#D1M>N*ksmhgCM@Cx_KG6eNc=HY`pKYi(GP93Hb_S#nrs!^-6F zqz!A6!v-5RB!{PM*qj_T+ORD-Y_efza@cIcp5*X?4F{6L78?#HhpjdoOAgy?IGG$? zwc$*1*lxqw2ZNe*Awke?im*ieuhj@qy|IecTolH_p8 zhKR{@VF}ZOA@fzahU=9s3hIZyxR{!-i}-T^@!m zHpDN~kYhv1LWyxWJ4J(twBpcQy zhbcB}NDk9%*qj^|*sw1-6xwh$Ib3T)+^#x=M|80bC6mJqHk3^cH`!1rIox7Ht>m!8 zhK%HJyA7GiVW|yS$>A;=a+1R`8*-Dwy*A_}hvhbmOb#n-h?2uf8>S?OZ*7>99DcE3 z`$hT^s@1hSuuCW5>#1eKlH^dwhGog2o((ILLjxPuCWj0gHYA6}Hf&A~&28A095QX# zlN?&va3DFfvEguXXlKK*h+{hBL__+lI5rp^FXi%E`aiHk3>b-EAnF9D3SN zDLM4Ep;mIpwIL%p^s^x|ISjBND>)3ZAtyQH*^rwYhT4#q9ERC2GC2&lAxaJ-ZJ3fA zM%j>`97fwvkQ~O^usAtHHY`aF<7`-#946SXGC54LVQq4lV#9{yFx7_5$zhre|6gTy z0=L^$l?VLhk?Y;K% zJmtQ73|=aD{}{YX@ToC)h2Ya;a6)j+7<`9dPhPwB$6s*6F?hA$^f7pi;5K9My@Gp= z!D|H%7=zad&KZLr6r4K-uNORh4Bj9(e+=FzxOfcSB)DP>-XeJU82qTeEKg9P7Za4-XR5_6Py@>YXn!1 z!9C9M2Qmgv7Mvu*4gl{J93sSCizax;T~hEx!HF@r|A7sVNIR50{vbFj1?LHlj=_rs zC&u7?f=`XX9| zV{mi9xnppK;N@d*d%>&5;7)=o$KWdkZybZe9DFbFzob2U&ON`~7xh1lJp@+>KJ0%Y zdkAiL=wR?j|Ip4|1os((2MgXZ1`iW_dJG;fxMmE#S#b1}1n>pHp69I(Sqgsm zz+ra%6#S0h#29??Ah;OH2<>7eIJQ|A4G6Jzk( zf-`QMGH=@Z@3~0|-Yz(CvlLt-c*d8d;LI<9c6tiV7n~e}9~C_P%TwlO1y_#2FA6?9 z2EQ!0dJH}zICP8DbN}lKZkd9o90a#b!E*&C#^99)nXgEhQxA-HXQbeIf-}b8eu6W{ z;DLgVjln|&pB{s!2(B4}7Yk0@E}^|yaOn0a_`8G59a8WQg5Ms4FTb9$JEqKo1SiJe zT?d&vr_4#g=f+@v;1N7CWv(kYeGE<)+;a?WDR}Z2+)r@+7(7_;i7_}TxMmDqAvkeX zg8pH_p|4EAhYo_frr^&7cN~NJ-9YAUDf5(r;O;57TySCxUU!h;eHeZ*9&_Mryk`pj z?jX2#3eLQd;65pMkl^GPJnRJeqzC&%EvH-&aiDmyCp=oma&aFa)-%oT#8WANgGvN8C8 z;Lz8kvfmWk@lh%G1Hl8v;130tj={|itfh}mWe*UXI|g4Z_}mzL*Fo81Q`u_-XN2n@0xZ4;!NpN%wo+^0y7@RM-Vho-yc>Nf>P;hb# zzDIEA@d^4$!QIB-`vngegLev!j=_5c9~*=B2~K-L0{Ecd^fCAi!EMIiBZ7O5!Ji0T zH3pA6umwLc0h}i|`lJ**OYo90_~1d=*QLyd1h@J66kK)CGY0Rxxw5CE%zFi&7=u3& zJmVWu=HUkh?%ItFhNTyas#{G;IH7<}^904_x{vpzDDLI*S|LNpl1rWyN0p{UL-gp1;-8owyq&_k>JD_ zyhm_y41WEf?5?TouLVcP;O`I0#^C>daI-v=I&f=3BXj=}v8{%yPGrp)sNSC7Gq1RuFDWxi8zlZ#UD z7Qw}1@D9PN#^CV5KZy78RCZUv4~)TepCNPT#@BwGTM5n>gWC%(9)mjxt{j8A3SK`3 zuN6FGmjLd5@Xzh-Q}8gs$uW5BLFP+R<_UrajKNPo%OBPCQ|9x6LpK-$|61SCFH6A} z{HuLOZ;^sO_Ye1-IGlp31#cOHzY+Z07<^H1atuCj@bCPck$Qe#aP$r-IM+Y^_uY3) z!FhtCce?SR%MPgJ%Q%D&UB=FP=-?kcI%Grhf7nwGUB+*D=)li-=&VzQzsWB>!?1ej z6#pXUAa}h>=3~3z^+i55{nNDv{{-lVZ!xT11oXtMhS!6CNbBUS2b61Y)mP)H&$`Z4 zr#|s14?p)Y=UjE#BcAa1CqMG3Pk!w5_JqfuwZG~H$Bw<|g3B(y@RAoCJ9gD|FMsxB z7hZbB#Ln-@lakoC_{H`$ZSL z;6-O&eBraszVxM6Jol0p-1{E)y64%KUwFj@cfa(R&wic?)#tz9nZy4%-#@TyUy;;yIbyVusiM4pV~cpf6DHQ*8XXKo!$T4 z?|0Yizhw7?{i(ap@2|W2$Ng!$&+V_b`>gxRKkRR?`}_S3cc0ncX!m#fFWvp0{f&2j zyT8fq)BBt5|7L%)-CrC3{`da$-PQY>@BV84<-5P!-(vR{`&;flwZGNw&-edq_rLbH z-u>DBHoHIF-*)#W`>)vj@&54cllwDvpV;4S_woJhPyM6)9d>`XzvJ#>`#bIaV1MV` zRr|Z_{^$P8-ADIl?S6m%mAl{D-*xvt_IKNTWPkVFf8XC@_q+SEcfYg0=kB-n_uBop z{a5XNYk%)ke{+AI-G}%0-TlV?e!E}a-+%XO`v>ekw1434zwRHj`{4e;yASLivU~sj zp}Y6(AGZ6|{gK^!_eXap_YdE_XaCi^U)eum_sjcpPJQ?Ok-J~of6eX}_mA5B!v4{_ zckLgu`}zH2ckkRkZuejI=k9)P|FygSynp=eXZKIo{mlM}yLarLwEOA(*X@34|Mk0{ z+&_8u6Z?OD>VMilW%u^|H|&0V|J2>v_TRYskNfj>Kem6`?mz6GzI*Hbn|A+x|IND} z-5=Zi$o?6-x9p#}d-MKTyEpBhz5C()`MWpnFWCLN{kNR@hW&GPKeT`D?)Cc%cmH;O z(e4NL&)fZ*{l&W<*gt>wulFz5y>5TW?qBUM-Mx1It-J5vU$*4k?Yr;TAK$(5(DD5# zhhDk+qUX-@pFFSQ`F}n4p4WJOiRTwQPxbt~=XE{*(epIV&v{<&&?`^`vO`L~`o@%*&sO+Ej{^JboZ?fGS%|J(C)&#OIe?)g`q zU+(#rp11J)3(s46e#-M!o`3H7&wP*n<#}uIpLyQK^G`i*>-i_1U*Y-3o`*d@>3N3d zCp>TG`Ek$Nd;XE<9X$Wg^NyY$^SqPiA9&u`^D57~c>Yh%Gd(}*d6wtzdw!+o?|I(U z_xK;4cN2fa^X{Ji-SZxvzw3Fn=kIvl)AP4I@8$X5Jip5Gw>r|085 z|BL6jo z=Tki2?)eR#KkoTd&$oGgqvwD0JkRsTJfG(IA3UG#`Bu+w^8ELn-|Tz*sOK^9k9a=A z^DUmw^nA1DvpnDA`E1W0_B`M7jh+{H{yWca@qB~lb3A{@^SPd{_q@>a-+Er;`GcO% z^ZYlS7kmDI=kq=PwdV^wU*~y=@A0oZFBQMm^IJW?-}5rh@AJIe^Lst7@VwIVg`WS? z^F^NDbLjY~FZO(m=Sw`l+w-NK-{tvjp0DqW@NO6IZXfV&C-81B@NPHoZa?sDNAPY>@NQS|ZeQ?j zXYg)s@NReTZh!D@hwyHX@NSpzZlCaOr|@pC@NT#8Zolwu$M9~?@NU=eZr|{3=kRXt z@NW0;-(vspZU?b$5Akjn@opdSZYS|>FY#_S@oqoyZb$KMPw{S7@or!7ZfEgsZ}Dz- z@osP}-N?KB$h#fMyFJOfUCFzB$-AA&yS>S~-O0QC$-5oO zyFJRgUCO(C%DbJ)yS>W0-O9WD%DWxQyFJUhUCXZ1-OIcE%ex)SyFJXi zUCe)reayR^%(}hIyWPyY{mi=^&AUC#yIsw@ea*X_&AYwLyWP#Z{mr`_&bvL%yIsz^ zea^d`&bz(NyWP&a{m#1`&$~U(yIs$_eb4*Dhxhjk?{+`y_CM=(K=1ZI?{-1&_CfD< zLjNuHLhp7%>-IzMc0}*?MDKP*@AgISc1G{^M(=h<@AgOUc1Z8`Nbhz@@AgUWc1rK| zO7C_{@AgaYc1-W~Oz(D0@Aggac24j1PVaV4@Agmcc2Mv3Q15n8@Agsec2e*5Qtx(C z|1I`Y?{-w{_Ehh7Rqysy?{-%2_Ezt9SMT;$?{--4_E_(BS?~5)?{-@6_FC_DTkrN; z@5hFBd#-o8u66sa_h%08Zyw(5zSix(*6qOF?ZMvd!rtw}-tENR?Zw{h#@_A6-tEZ# zTkOf+?aJ2e%iitG-tEoa?atoq&))6O-tE!e?b6=u)86gW-tE=i?bhDy*WT^e-tF1m z?b_b$+urTm-tFDq?cUz)-`?%u-tFPu?c(0;54*p3*#E`D2_PQM0P%1Nh=+4PJe&mL;Vcjjr-67l55&WXARf*H@o*}L zhjT$ZoDBY(hqFOEoDTBC`5+!n2=Q=6h=)@`Je(8a;iM1`XN7n;EyTllAs$W)@o;8{ zhf_m5oEzfddC4Cjk@IAP?6Ge$g|GUDN!5f3MgcsOgshtuEhaNdZA z6GwhHbHukx`H!c+|Ka43AI={6;q(y?=Z|#KVat9?mTBaB7K%b4xs&T;k#E5)Y@BcsRer!wDuH&M@(CiiwAFOgx-q;^8b4 z52u-UIM2kxi6$P-H1Tk%iHCDdJe+Le;cOERr<-^<-^9ZSCmzl?@o>ud^BB%K@o>_~ z4`-eDNc#I7&O7mN;>izZp7`M@|DN>sKb(B>!`UZ4oPOfr{1Xo+pm;a~#ltBm9?n7W za1x4#vrs&ohT`Eo6b~n&csLWq!>K49&PDNXGKz<@Q9PWE;^BN04=1E}I3vZwDJdS# zN%3$}`tumhO7U=7$`9wIcsMb|!DaL$T{lU6*Owc=yf{{5ahoVViP#FZb;T=6s0-~XG_-~Vv($`5C+{BZh;hx1oF zoWSDY3>FWkuy{C!#luM~9?oL%a2kt;^H@Bb$l~El77wSgcsQ5E!^tcj&Svp&I*W(% zSv;K3;^B-I52v(vIH$$KNi81EYVmMdi-+@CJe=5mK87<}Je=C{!?`UUPHypVc8iD8 zTRfcK;^71r4`;Y|IK{=oIW8Vfa`AAMi-*%(Je=p^;Y1e?XS#Se)y2cPE*?&H@o=__ zhtpj=obTe{gclEIym&a}#ltx-9!`4kaMp{Dr@!BH-dj24+7&fly!P+hS~~UpxukR7 zS~~gFrL*5!I{mGs^WR#U0Ia1Mz*?FDtfe`?TABo`rCGpQng*<;dB9ql2&|=3rP;t*nhva``M_G55Uiyc!CIOUtfe`@TACEBrCGsRnij03dBIwm7_6n4 z!CIOctfjfZTACdEnWovnTACizrTM{HnjoyD8NyncBCMr3!djXntfg7PTAC)TrFp_y znkcNLnZjC{Dy*fs!djXvtfkq)TAD7brTM~InlP-T8N*tdGOVRJ!`k8L=PJz_*3z`0 zF3lU((!^mc%^cR!)L|{n9oEw1VJ*!b*3$Ih&os>+*3tx`F3lj;(iCDX%^}v(Bw{Vi zBG%G0VlB-h*3v{`EzKm>(o|wC%_Y{-WMVDNCf3q)VlB-l*3yJxEzKy_(v)H?%_-K> zq+%`2D%R4pVlB-p*3!gcEzK;}($r!t%`Mi_AOEZ_XG<8`^ zbCiCIgtn6)&G`7=%Pn6)&KsY^4N zwKSDkOLLjEG?`gTvzfItomorsnYA>bSxYmTwKSz!OLLmFG^trjvzoOutyxR+nzb~s zSxYmUwKTO^OLLpGG`U$zvzxUvy;)21o3%8-SxYmVwKT<9OLLsHG|5>@vz)aw%~?zH zoV7I3`7=#3owYR8sY`R6wKUmTOS7G|G~HQC^PROc;aN*Fp0zaPSxa-Cwd2#z-!$u4 zou)mt)4XSWn)s|wGoSTo>a#x0eb%SR&-yg`S)Zmq>(l&aeVPERPcxwPX$rJH&4JdZ zNznQ<3tFG1LF>~zXnmRptxq$d^=T^f=ReJb)~Cr({WKd|pQc0W(|l-snh>o|Gotlr zO0+)BiPon{(fTwiTA!vx>(jhweVQ1pPcx(SX==1S&5hQl$ ztxq$g^=XQPcx?V!{bl6^=ZzuK24g|r&-hbG;La+=1uF<#A$t+Ijv7qr}b&>v_4Iq z)~DIi`ZRr7pXN{N(*$aLnnA5kQ>gW64z)f_qSmKb)cQ1yTA$`o>(fMPeVR$FPgAM& zX)d)sO{UhT+0^*o9ZnZv5uGXj7)%rBOTA$`u>(c~leVSpdPgAV*X^yo%O|sUfS=RbA&03%4 zS?kk8Ykit&txr>}^=YoPK25gPr`gu}G~HUC=3DF2gzN8RnsKcknf?4vbFTGi(uFh4 zy4I&@*ZMT?TAwCf>(k6@eVTf$Pjj#JY4Wu`&A!&B>DT%+|5~3WVC&NiY<-%7txt2X z^=T5eKFz|`r)k*wG!I*!CSvQ;Ol*Ccimgv`vGr*(wm!|q)~D&%`ZOO~pC)AM(~N9= znv(s!OmnjJX;M}{&C1rNY1#TTFI%4`X6w_;Y<-%Vtxt2a^=WdpKF!Y7r|H@HG(TIP zCTQ!^3~hayqODJJwDoC{wm!|$)~9LO`ZP~lpC)SS(@brBnyRf&bG7wpvbH|W*4C%# z+WItKTc0Lu>(h*F{n+g1f10zcPm{L4muc3vK26(jrg_`?G;v#>W^U`#)NOs5yRA=? zxAkfEwmwbY)~ET~`ZR%CpJs6D(-dxfn!~M6leqP17Pmf4(f+j zeVWUyPm{UzX*Rb$P3P99`P}+6p^=VeOK27WXUZ#27`ZTet zpJsOJ)6{N#n%k{Ule_h4cDFuF@7AaJ-TE}aTc2il>(dl(eVXH~Pm{d$X_mJ>P4m{L zdEWXo(OaKpdh63vZ+)8UtxuD^^=Y=ZK27)5r}^IcG~rvHW_;_%XFvb5IbUWr>Fb%z z`f{^rUv4(<%grW!e@C;KUv4(_>zmE}a?R>MyGzK;ZWD5|`-I%=Mj_tCh1~3B zAve2Q$jxpSa<%I~yM@Tj?jdrsn~2=(E+RL(jmXXJ zBXYAFiQMc?A~(C0$j$C0a-0W^5H@lt4&F&|1vm1)s?2aNgyQRp@?kRG!n~L1* zt|B+Pt;o&pD{`|Ni`?waA~(CW$j$C8a^37eyU)nYZZvYUJB{4zRwFmN*T~IoHgdDOjoj>ZBR9L>$Q@by z{>|<|#^O2j~edK1h zAGz86M{afl@^?GC1If*9LHcI*Ai3F1NN#o)lAGOz>egJyNUU`o!!OcX16hYv-_Cb>_#RxyOYVyZe?<_dzswqW+pego5{^?XL7UqncVD# zCO5mI$<1zQa~1GFyWPpn?ssy>7r%dtJD%*~mZx`d&y!!=^yC+JJ^96LPkwRVlV9BU+D#XV7eaZ{9E z+!f^)w?+BIeNldKW0YUq8RZwZM)}3PQGRiAlwaH(|H z#XVAfag&r^+$H4~w@LZMeNujLqm*CVDdiWpN48UzK0nSmhUY zR{6!PReo`Am0#Rk++^h!cUk$xZB~A9 zpOs(SXyq4oTKUDTR(^4>m0#R!9fE-tvpvxBTM%Ex)*d%P;QW@{3!z{Nf%izqpCZFYe;c5DxVy_QZtwDo`@8(&1~0$3!^)>#JGa_Wiu9?)z$1H-0#)JHMLMtzXUR-mhkL^H;OF z`>R>q{?)AR|7unYfSMHtpk~Das9Es_Uie*r<;u+Me zm|o7zs5iPD0I!l~A+dCDg2#2{kKjLd}YuP_yDE z)T|f^H7kxn&5ET^v*Ib#te6TlE3QJ#imgzy;w#jw7z;Hk&O*(KwNSI-E!3=-3qNBk z?n2Fqy@0dgFVw6U3^gkbL(PiCP_yDO)U22cH7hPd&5F%Xv*I(&6*VhPMa_y;QM2Mz)EwLFKPzrU&5B)tv*K6O ztQZzGD~?6Yie*u=;#t(Jm=-lFu0_p?ZBeu0Thy!=7d0!+Ma_zJQM2M*)U22nH7o8# z&5C_dv*KUWtQZ(ID-K4@iiPnrw&G#bte6-$D=tROij7gT;$zgT7#TGyPDag&l~J?e zWz?*g88s_zM$L+yQM2M_)T|g9H7kxr&5ET_v*Kygte6@#E3QV(img$z;%n5b7#lS! z&PL6OwNbO;ZPcuo8#OELM$L-7QM2N2)T|gBH7gEB&5FfQv*K~ote6}>V=FF4&5F%| zv*L5qtQZ|ND^5qviq%oG;&s#<-|RmdZb#LI-GQ~?chqed9(5azN8N_yQMciF)NPm^ zbsMfn-G=Q^x8Zx#Z5SVQ8_q}FhV@am;eFI?m>+c;?nm8*{ZY5!f7ERlAaxrKNZp17 zQn%rO)NPm`bsH{7-G&YFbGhMz)NL3ccpFYg-G&uXx8a4NXscx(&;uZo@OF+b~V)He8ds4cnw{!#AnhFiz?= zoRhi@>!fbOJE_|+PwF<@le!K2q;A7MsoOA6>NXsdx(y4ZZo@;V+b~h;He8gt4I8Cy z!$+yxFjDF^oRqo^E9K{O!%L~#FjMe0+?2WvJEd;JPpR85RO&VymAVZ}rEbGhsoOAB z>NZ@Jx(!>UZo^lp+b~w@Hk_5Z4Qr)t!&|A_Fjwj}+?Bcwd!=r}U#Z(LSn4($mbwj# zrEbGxsoOAF>NZ@Kx(%D9Zo_A(+b~+{Hk_8aBbohg!)vMAFk603H{6!G4ZG!YH~f~m z4a22w!*QwGuw3dkJeRr+)1_|1b*bC1UFtS`m%0t(rEbG{soSt#>NdQWx()NCZo_@4 z+pu5iHvE^m4Fjfb!-1*Wuwd#oJeax-6Q*v%g{j-HVd^$~n7R!krf$QDsoSt(>NdQX zx(zd?Zo`eK+puGPPB;9Rx(!1HZ^MzP+puKnHawZS4O6CW!NfnDx($P-Zo{Fe+puWrHawcT4U?vB!=NfnEx(&nT=XArdsoSt@@HRY~x((B& zZo{>y+pulwHhi194dbS6!?~&3ux{!$yqmfW^QLaYy{X%NY%_x(ySjZo|c?+pux!Hhi4A4I`&+!^x@JuyX1)yqvlXGpBCD&8ge4bLuwyoVpD| zr*6a1soSu0eoi+$ow^NE2XDjGsoSu1>Nb3xx(#EeZo}EB+pu=(HoTp>4Rfb%!`-Rd zuy^V<{GGZDgQsr8;i=oOcNb3yx(%bJZo}!RJD%D9GQ6J3 z46_F_!|kcfuzPAV{GQqj!>2aG@u|(Qd}=d1pV|!5=Vv#=^{LIUeQ+~;pV|!Lr#8d+ zsm-u{YBRi_+6?ojHpBg?&9HxJGyI?03Zq> z6{^j!g?`pEe4*M5V+c3H8LG{&hH5jsq1p^{s5ZkLs?D&6YBT(y+6;rJHp3yR&9I1S zGd!Z&43nrf!zHTCu!(9je4^UJ+Z|PHhEr6VVHMS8cty1tW>Ia1TU4827u9C?MYS1* zQEi4}RGVQL)n<4`wHc;SZH8-9n_(N(X81<68OG7idWLgUn_(T{W_U-n8Rk)KhI>?- zVIS3I_(!!F22yQ?gH)SgA=PGhNVORzQf-EdRGVQV)n@oewHZcIZHALnn_(r@W_U@p z8D>&#hMQEIVJFpQ_(`=HhEi>Yqg0z=Db;3pO0^lLQf-E-RGVQd)n@ogwHd}zZHBW{ zn_(^etY>&jwHf9TZic&5n_(~2X823B83t2rhQm~wVKLQacuch!CR1&O%T$|TGu3AJ zOtnX{`)`KRRGVQn;bwSEwHanpZHC)an_)NAX829D8HQ7BhT~M5VL8=icuut$rc-T( z>r|UzJJn|RPPG}vQ*DOxRGVQv)n<54wHfBq&w7UYRGVQx;b!f$@RhwZ^)n<59wHYQ=ZH7x#n_*McX82UK$FloxhEr9WVO8N~cvZC- zW>sy5TUDE3SJh_tRkaz0Rc(f2Rhwa1)n<5BwHc;WZH8-An_*kkX82aM8OBv@hI3V$ zVO`Z`cvrO<=2dNmdsUlZU)5&#SG5@i*3Wu|gH@YhVc}+YShX1@R&9ohRhwaB)n@ou zwHZcMZHALon_*?uW_Ve(8D>^(hMQHJVQ1B5_*u0XhE{Ecqg9(>Y1L+UTD2LbR&9o> zRhwaJ)n@owwHd}%ZHBW|n_+F$W_Vk*8Rk}PhPzdpVQs6m+d(~(8UiDeVSACZARi9;j)n|EM^;zaueU|%GpJjj5 zXZc_CSq4~rmIGFwWr5Xad0_QfCfM&tmJ3#&WrN{o`C#=~Mp%886IP#Ph1F+yVf9&N zSbdfoR-a{u)o1x(^;w2keU>9upJj>FXL(}vS*BQhmMd1DWsB8k`C|21##nupGghBv zjn!v)WA$0)Sbdf|R-a{$)o1x*^;rg4eU?L3pJkENXL)4xSteP1mP=NDIJcYoeaZ64 z>a&b8{4A%eKFcbr&+^LZv&^#kEVrya%Py%<8jDv-&L8 ztUk*&tIzVy>a&cq`Yh+HKFd0*&+^Xdv&^&lEcdKF%RZ~m^3UqC47Ba&cr-Wtv<_2!_V^4>a)zW`YboCKFdz4&+^mivkbNR zEJv+A%TlY)^3>|HOttzfSFJwFR;$nQ)#|g1wfZb)tv<_ItIzV*>a)zX`Yd;?KFeOK z&+^ymvkbQSEQhT=%VMj~^4RLLOt$(gm#zLte*fQP`E2!BMjL*X(^j8lwf(+id2RJs zW*dH%+g6`tx7BC)ZS`4(TYZ+}R-a|L)n|Eb^;xD{eU|H1pJlt%XZddRS;kv^mh)Dh zWxdsBd2jVu=39N1`&OT2ztv~?Z}nLQTz!@USD$6U)n|Ed^;srdeU=MXpJl_uamJ?T>WyRHJd2#hwX58;fmK#@}Wyj%X`Em7GhFpD?BUhhg$<=3ha`joJTz!@+ zSD$6e)o1x~^;yPTeU>v{}QmOEFUWzW@T`E&JI23>uYLsy?=(bZ>p zboE&#U452ISAVRq|NqFLa&cy`Yh+JKFhkR&+_i-v&_5tEcdQH z%f746^6%=i47~a*2d_TM!mH2n@anTny!tE`uRhDhtIzWB>a&cz`Yb1}KFi9h&+_u> zv&_8uEH|${%g(FM^7HDm487l%EJv?C%hJQo^7QJnOuhOnSFb+H)~nC*_3E>Xz4|O? zuRhD#tIzWG>a)zf`Yd;^KFi*#&+_-`vkboaEQhZ?%i^og^7!hrOuqUom#_YKVgG++ zet*_cVDx>)7mGawR$otn*Y`OEW?xT%+t*WI_w^L`eLV$+Ur&MK*Hd8m{T>x~emw=I z-{%y#emw=YUr&MW*Hd8p^%OXNJq6ZZPl5M8bo{ge^RK7C{rj8(`>&_K|LZ9z0D1}< zfS!U1pr@b%=qV@xdJ0;Ao`M>nr=SPuDJTMZ3YvhPf-0b=pbO|JCj|7xWYq20aChK~F(t&{NPE^c0i^Jq4{nPeE<)J6F&f z^b`~apHt8r^b}MFJq6uCPeFOmQ_vpt6x0Vj1^q!!L4nXy&>-{_R0ur<9YRk*iO^Hf zBJ>p02t5ToLQg@F&{NPP^b}MHJq2AtPeGZ`Q_v>#6x0bl1${zKL7~u7&?xj2R0=%> zokCARsnAoLr+2L&{I%5^c3_CJq5)>PeJq0Q&2tp&J}bI zJq6{%=M=OLJq7hcPeK3CQ&2$k6f_V$1r#OD&%8H(XwxXw?uIMS~D|!kFi=KkUqNkv; z=qczddJ0O5o`Tk*r=YgzDd;VF3W|%Kg65*9pt|TO=q`E+%8QrqMoC#sOab` zYC8Igs*b**uA{H0?C2|MJNk<1j=rM4qpzs&=qqYG`id%#zM{^fuc-9sD{4LZifWI( zqTZvgsQBnBYCigks*k>+?xU}${OBucKl+O5kG`V*qpzp{=__hL`id%$-`AoJq_3z1 z`MjbQq_3z3=_~3%`ihE>zM>|iuc!*?E9ye}ipr3_qBf+js1E5X>O=a93X#5|Mx?K( z66q`IMEZ(Kk-nlPOV! zqJpHas3G~h!=+P9Ur|TWS5%Vx-WIhaeML3N=N0uNeMLn{Ur|%iS5%es6?G+jMP*4} zQCreiRG0J>^(B2pg-KsgW71btne-KPCOHOlX8QIFDB zRHS@fQIpbFRHgJ4bt!#CWlCRBo6=WQr}P!|DSbtSN?%c<(pOZe^c8g~eMO~8Us0>l zS5&L?74<58Ma4>AQM1xlRIT(Cbt`>EsyV6%wuk;o5D}6-;OJ7mL(s!hC{uOmB zeMKe9=M}XqeML1(Us2D}S5&n8-WD}2eMMEv=M{A=eMMzUUs2oAS5&w374(WQ3KOgRKfHWbufKJB}`vY3)5Fr!}JyPFnvWuOkYtGGiMc5F~7G(UCied zl`)@J)W-A`)iHfVeN10bA=6jX$n+IeGJQpzOkYtc(^u5W^cB@IeMP-YUr{mBSJce( z6;(5RMcqtaQ909B)Xwx3)iZrX{Y+m`LDN^%(DWUvoPR|fO(^u5f z^c58~eML=8Ur|-lSJc(?6_qu=w?%DDUr}B2c}0CqUr}MxSJc?_6;(EUMV(DwQEAgx z)Y|kF)i!-ay-i z^La&$PG3=_(^u5#^c9sleMPNKUs0{oSJdnD6%{*uMa@oMQMJ=o)a~>Yl{%`txs=7?bBP)`}9^6KfM*r zPj5x_(_7K~^j4HVy%p_GZ$lL%kLKQ19XL397fEA?mHD zhaD1WdMkRO-io5Ax1uTPt*DB6E4rfIin6G;qAlvJsEc|l`l8;7 z!l<{RG3u?TjCw0Nquz?r=y$)OHR`RXjXt-cH|nh@j(RJaquz?@sJEg!>a8e`dMnza z-irFDx1vAlttgOsD;lKUiVCT>qC@JfD3N+ATBP2J8mYIUN9wI8l6oteq~3}uskfp_ z>a8e~dMnzb-ikV@x1vw#ttgawD;lNVib|=sqEqUvD3y9ETBY8KTIqMcqF3szD3(6A zqFL&#sFr#wx~1NVa;dkXUFxlaD1lKDVM{>a8f5dMjF{-in&3 zx1wk2ttgs$E1IU>imIu%qHF4{D4TjK+NR!$x~aFKZ|bcmoO&x7r{0RnskfqY>a8f9 zdMjF|-iq3(x1x9Ittg&;_bZyG-iqq!b1S;1-iq?6x1xROt*D=REBdG2iUO*)qJiqI zsGxc)I;h@?5~{bNh3c)Sp?WKNsNRYqs<)zv>aD1vdMmo9-ik7+x1x>et*E1VEBdJ3 zibATlqLEUMD=MkpicactD@v)}idL$(qL%8d=%soqimBd;W~#TMn)=Z#s}eyaCa_57`9sCp|Zs?V+HsCp|(s@{s0s<)!1>aFOhdMk>m-ioHGx1y@* zt>~(HE6S?gingk^qOR(#=&O1w3aj3V#;UiXvg)nqta>X-tKN#%s<)!H>aFOldMk>n z-iqd`x1zf0t>~_LE6S_i{fhRgx1zrK+=~9Hx1zx6t!S`%D=MtsiVmx{qQvU0Xt8=L zYOLOh9;>&a$m*?VvU)43tlo+)tGA-e>aA$AdMoOz-ikh}x1!MMt!T7*D=MwticYJy zqSWfGXtjDPYOUUiUaPmF*y^olwt6e7t=@`mtGA-u>aA$EdMoO!-~EbytM_>I{H! zclB2lUj0>#SASLI)nCm0$f; z?N@(Q{ncO9fAv=tV0%YZ1J++vfqi~e2i9Lzg7sImVEt7!SbtRy)?ZbG^;b1v{Z&<1 ze^nROUsZ=GSy0ZSNvaG+VE$gqU%lfPOvi_>VtiP%;>#wTJ`l~v# z{;JZfzp6Fsud2=Zt9rBks^YA_syXYgs?PeWy0iYO@~pqAJ?pQk&-$zSv;L|At-q>4 z>#wTN`l~v${;Cpf|EOxw`m1WR&#&sy`m2hx{;DRezp6^>uj# z>eKqG3bp>KMyP>#yq7`m2hy{;FoJzp7g6ujeu?K3bxO$YS{X#Dz^Trj;+6{Wb3bL+4`$$w*8~3XX~#j+CIOkY3r}5 z+WM=yw*IQJt-q>m>#wTY`m6f3{;I;Qzp8QTud3Yot2(#-s?x2$s&(tHs@?jldbj?n z;;p}`dF!vL-ukP$xBjZ~t-q>$>#wTc`m6f4{;C45zp8=jud3kst2(&;suHfhs)g&X zs^R*pdbs|oB5wbvYU28f-vV%DDcjHm<*_j_a@L#yqM z`m0L0{;F24zp9q&uj=LctBSe)s%Eags+#Ms>gM{Z%DMikcCP#u6*`m1WX{;Hm?zpAL~uWIW0tE#&FqpGXxuPW<4zpAb4ud3_% ztNObBs=}_ns@s_go!I=lX=(yqU%wd=2{?fR>FyZ)-;uD`0e>#wTr`m4IT{;Kk> zzpB0Kud46*tNOeCssgXSs=@28s_^=&I=ud>60g6i#p|!C@%pQJy#A^pufM9v>#wTv z`m4IU{;D!>|EOy7`m5@^&#&t9`l|}P{;Ec=zpB#fuj=&rt4h88s#dSRs@ChT>h=1o zioO1-X0N}h+Uu|C_WG;Jz5c3pum5=C{BP*@5E=@;@6gcjVKh{H7!4gCMnlPm(a`c? zG}L?;4Lu)5L(zxP(DY$6RDBo?T^~k6*@w~4_F**Cefvv8--ppq_!)WOJFdB+KjE3e9qoMl4Xz2bh8p=P6hV~Dmq5i{Y=>ISp4geSp z4*-mY3jjvL2LPkt1c1@-0>Egv0bn%z05BSk02mEV0E~t!07kOZ0E~uL07kDbV1B`}u07k<-0Hfg_fYERez-V{~U^H9=Fd9Ar7!4-@jE0v0M#D`2qv0oj(Qp*N zXm|=>G+YHR8omM;4QBz2hPMDl!(9NQ;V*#Ea2UX7cnn}PTn6@_hR*;-!)f4qG`t2d z8g2s^4Zi`5hT{N6!*c+m;W~iP@EyQtI1gYnyazBE?gJPN{{f7K0|7?Eg8-x9LV(fm zA;4%j5nwdD2rwFM1Q-oJ0*rcYx7w zJop|B&jXBx>j6f?_W+~ee1OsLKEPU@JhgFxFujT{1Px4jtP5E!!rS+;hOM08omh_$C~p;!#e?^;hyk48vY3w z4F?5`hKB-1!$kq3;iG`ja8kf%cqw2s+!QbxehL^3M+JntANpPR={X@ zD_}I-6)+n93K$KC1&oHr0!G7S0i)rwfYESTz-V|aU^LtoFdBXf7!Ah-jE3g|M#FVs z4{G=>U^JW;zDL7*0i)r*fYI<@z-TxyU^F}!Fd8ll7!4l=jD`~fM#GB%qv6JY(ePuy zXgD%pG&~tF8mE)5tBp9YMEQv*iB zs{y0o)_~FQYrtqYHefV78!#HK4HymI28`pa`Qy~4cLPe(z2Unw{Tpza4h}d?4+os4 zivv#6#{sA5Z2Ip8$?9B`VB4meFu2b`v>15VS|0jKHgfYbDLz-hWW;57Xm zaGDMeI8BcSoTkeIPSfWBr|I;7)AV}4X}Ue&H2ofMnvM@RP0t6Mrt1Sv)As?V>HL7x z^nSo;x zN#HcSBygH;5;#pi37n>*1Wwaa0;lOJfz$Mrz-c;5;55A@aGLHCI8A>EoTkGBPSaxo zr|B|*)AX6ZX*x~dG`%Kpnr;&~O}`18rsD)o({lo+={kYa^qs(II#1v2!h9^t!-lx?SKj{Vs5tju$vh&kLNU>jh5J_X4Nse1X&SzQAd^U*I(TFL0U;7&uK2 z44kG522Rrl1E=YPfz$NDz-hW+>|;$o44kGT#`kG@V&F7gF>so`7&uL544kGn22Rr* z1E=Yafzx!zz-fA9;51z_aGE|DI8CPvoTgU>PSY&|r|Fl0({#+hX?kYh91F}pP2UWh zrgO&kX?kbiG~F|Bn*JF$O$QB}riTVj(?tWP>7#+ubke|SdTHP^-868Tei}GUM~!`~ z>8XL!bk+DiO8^p(^w+>?I&9!HJvMNfE*m&apADR*(*{n{YXhh0 zwt>_1+rVi$Zs0UMH*lJ+8#qnh4VDhsEJTU(Rd^?Z=&K=(=;N5{0 zaPPnh_;+9h96YcB9v)Z$7Z0p}j|W!3$pb6k<$)D&^S}!Dd0+(`J+K0v9#{ca53GQ% z2Uft@W3LN%dte3JJ-%1K-vcY)@PQTZ_`nLdd|(B9KCl8#A6Nme53GRO2UfuE11sS8 zffexlzzVp2USOM=3tbqFmR>1!QE8qZv74QJT3b=q^1$;oT0!|=U0WT1& zfEx%_zz+l~;0S^h@C3mMxPo8>d_k}R&LCI;ZxF12JIG!b@CU&PID~w!fJX>cz$FAL z;1hxsa0Lb;2VM!a1Ox=c!yvG+(WPe{vlWa z2NA4*hX_`{MFcD0BZ3uh62S_1iC_iXM6d#WB3J=O5v+ix2v)#V1S{Yxf)#KU!3ubb zU5Sc;6{QK@FT$r zIFeumJV~$ut|V9iUlOc(ZwXewxdbcVU4j*GFTo10W=E8uN{6>vAf3iz8~ z1sqPW0v;z=0hbf3fX@k5!0BW!40xSj1>8=)SHSNCE8uv774SU43b>wN1$w9*3izpD1sqkd0-h>Z0aq2QfUgQxz*z+=;H`oca96({nd{?jn&MQ~}?-i_o`wCXT ze+4Vxz=9R7cp)zsypS6VUdRsyFXRY=7xIL`3%SDJg?wS~Le4OFA#WJGkUI=s z$R7qT~V zJZkVlE;V=|pBlW7Qw?6os|N2#aQ+MV)!>C3YrbE|vj#8ZT7wtzt-%X9*WiV`Yw$wu zHFzQa8oZE$4PMB@1~24dv!8~1Z16%(Hs3GgWrG)Tv%w4b+2Dm7ZSX>#Hh3Xd8@!OO z4PMCE1~24ogBNnQ!3+7@;DsD+@IoFpcp;Y?ypYcgUdZVNFXVND7jnD73;EsPg&c42 zLY_BxA=ewcknas%$oU2@eIdEwxN z+;F~M$PWiEZydakI}TpR9|tewkb@WU$iWM_L`GXmB{lN_S{$K{3e=vjI zKbS%HAIzZt4`$E-2s7vbgc)=J!VLNVVFsOmFoRw|m_aun%%C3-X3!A`Gw2C~8FU50 z4Eh3L2AzTS54e<94E!_fB(dJJI( zU4}4&K0}y6rypFoP~fdveg{2s7w( z^gV-KN0>pkBg~-R5oXZw2s7w;gc)=_!VLNzVFsO#FoWJlm_hd=%%J}fX3zl%Gw6YY z8FWFy4Ei8p2Az;FgI-9OK{q7KpdS)u&=CnU=!t|GbVb4p`XXTloslqu-bk21cO=Z9 zKN4opAqg|+k%Sp^Nx}^JBw-$l&Y!0Sy^=74Zb{!W=$C{UbWFkwdM058U6U|_zDbxt z=OoOacM@jMJqa`DpM)87P{Is)C}9R&lrV!nN|-?>CCs3g5@yg%2{Y)Ygc)>H!VG#U zVFq25FoV8Im_cVH%%HatX3$*;Gw82`8FW~}40 z4*D%&1|65aXV7yAGw8a68T4Jk3_34i2ECUsgYHY1LH{MppaT<&;Dj6YaKa6{IN^qUoN&WVPPkz&C)}``6K>eg2{-KMgd6sB!VSAR;f8&k zaKp|{xM6Q6+_1Y7ZrI-mH|+3)8}@j@4ZA$yhJBuJ!%k1QVXr6Lu-g-E*zXB9?D&Km z_I$z(yFTsfVc#d*u=CUR4SPS~hTWfV!~RdWVFxJOum==w*aZqV>;r`xc7nnUdqLrb z-Jo#8eo(k!M=0E|Clqej6$&@(3xykYhQbYdL*a(qp>V_gP`F`-DBQ3|6z<{ZlnOWO z6NMXgioy+hMd60sqHx20QMh5pDBQ4T6mHlx3ODQaKo-rxM5!@+_1A0ZrEE2 zH|#Ej8}^sN4LeNXhCQZm!!A>}VV^17u+tQ7*lP+m>^6lP_M5^DJ5J$-J*RNPu2Z;S z-znU%^Av8_dkQz~KDDoh{ikrl4piSa>_LSacA>%z`%vMAov3ibUR1bYH!9q)9~Exc zkqS5LNrfABrNRySQsIW3sc^&IRJdVxD%`L?6>iv}3ODRgg?pr9{tf$7;f9^6zHiv8 z3ODRlg&X#(!VNoC;f6h{aKo-uxMANa+^};MZrHmDH|$=88}_fl4Lexv>tPQo+^~z) z_YM14;f9^8aKm0!xM4Rd+_0Y&ZrITZH|%MJ8+NtA4f|T*hMlc&!`@c7VRtLsu)h^< z*x?E{>~Vz~cDce0`&{9Movv`hURStbw=3MR-xY4y@d`KWd4(Hxy}}LqUg3tFuW-ZO zSGZyKE8MXE6>iu83peb6g&TIk+SkKASh!&)tnVB4!om%^Vc~}TuyDhUSh!(NEZndw z7H-%V3pebHg&X$9!VSA);fDROaKjE+xM7bh++!W{Z`dabH|&)4eZyW^xM8;}+^}C3 zZrCvkH|&{(8+OgY4f|%{hMlu;!`@lAVfQTDuzwbA*g*?7?4gAlcG1EO`)J{YowWA# zu$LBY*iGyEhW)f~!;V_GVNWgGu&Wks*jEcT?5u?w_SV7;yKCWw{k3qz4qLckk1gD= z%NB0fXA3v%w1pe?+QJRHZQ+Lfws6CaTexA*E!?o{7H-&g3peb%g&X$X!VSA`;fDRU zaKjEtR1G+^{3p_YHe;;f7tgaKpY_xM625 z+^{znZrGg*H|)=a8+Pcz4SRIq9`BfcJAAs3JDj?{bB9+Kc86ORc86aVc86mZc86yd zc86;hc86~lc87Bpc87Ntc87Zxc87l#c87x(c87--c87}>c88A_c88M}c88Z2c88l6 zc88xAc88t?(h`D?r;^u?(h}E?r;`68#=tjushtvzITVe77Df=_&@F~OYa4N&@@G8UZa4W;^@GHaaa4f^_@GQgb za4o~`@GZmca4y5{@Gisda4*B|@Gryea4^H}@G!&fa52N~@G-;ga5BU0@G`^ha5Ka1 z@H4~ia5Tg2@HE5ja5cm3@HNBka5ls4@HWHla5uy5@HfNma5y^~Iy}y>J6z7bcZbgz zc8Aj$c8Av)c8A*;c8A{?c8B8`c8BK~c8BX3c8Bj7c8BvBc8B*Fc8B{Jc8C8Nc83ER zc83QVc83cZc83odc83!hc83=lc841pc84Dtc84Pxc84b#c84n(c84z-c84<>c850_ zc85C}c85P2_OY({yTc<5yTc{zZ0PVw!|rfO`!nhAO2h7OOT+H)OT+GPOvCQ*OvCPQ zO~dZ+O~dYRPQ&i-PQ&hSPs8r;Ps8qTP{Z!Qp4_WQ^W4? zQ^W3XRKxD@RKxCYRm1M^Rm1LZR>SV_R>SUaSHte`SHtdbSi|n{Si|mcS;Ow|S;Ovd zT00v$yw?hc_E` zhdUc~hd&$k@viy1%cBjw%cbqRclos8cR97;cX_qpce%Bl6J367_+5@|-@nVV4Zq8^ z4Zq8`4Zq8|4Zq8~4Zq914Zq934Zq954Zq974Zq994Zq9B4Zq9D4Zq9F4Zq9H4Zq9J z4Zq9L4Zq9N4Zq9P4Zq9R4Zq9T4Zq9V4Zq9X4Zq9Z4Zq9b4Zq9d4Zq9f4Zq9h4Zq9j z4Zq9l4Zq9n4Zq9p4Zq9r?R@F-e8cZ@ef$1hzHj(l&Tsf#-f#F_?r->A{%`nQ4siHg z9&q?wE^zo=K5+P5PH^~LUU2wbZgBWresK6*j&S&0o^beGu5kEWzHsvUH)+RT@G>hT^@1xT`qC>T|RO6T~2ZMU0!kcU2bvsU4C)+U5;`1U7m6HU9Ry% suiSU}#t$9e-FbJ)!T;;~DZPG|Tl&!P{oM{7U;n@TQ}>xq{n8)%eDO(tXSX2|T!V0(eI zyW%0O)QA2Ec~A`JJX$zB z!8Ctjk!+huF1?&@bA0{W8~NM*DA*1-lY#P8xXfgz0u{>Ez*}a6K(=M)w_v*^FM!s? z3{^O2$r(8dYFo}Z3iv^7_~+$C+;rpuZZ4f`g4_kjU6xmH+m+r67A+Ee)< zg;D9)LhVPo(sERdt%9&tl~zU-HnCY*khtAbVo>T)cXid+MBDW>p$fSkt%>Hm;m#Y8 z==FM0Pi*axzlC`N<0SfOtc+8&@+L9jtvFHN%?fv2>TH-5N$vuCyaJzu%|=T6xSE&4 z)!WYRDC%{OfDd~Xd3EpuGEs+H<0@BmNNI`dmR5GGi(ZP1oehE(kh5Wj{}yh+gGfO-(71WZ}4>y$lr?lr24w3JFx2qr6r`FWk46pYy16!$m8 zgml5hqO`+K!GfjtERmOVp}crqou+I&^uc{ah7wE2%1|sOMrN2`1y_E_9lr zmJT3V&oqKD6$Yf#g41{XIn3e`z+>AM`6- zzEr6-{VXrfStNZVy0P1<4(cms zr+A>tk@IU7=FC+rold|5zJT8n_xK{e$y>bR>CY&T&;e2Vh&c5?I32X7>B^imP4I?2 zLfL-9P-@<@BLSL=DDpHJ(brB1j;a^wNP;VvhE&aRcdohqq@f53AJbV{z=kY6rqz4G z2J~k6&-4=LIdL7oJAUV%80LBzl*Sz8*4YGZQk~=WCFsuj0@v5EuLEQ%))%q;BwlK1 zLe_cl8XIbB$q&7$XZd?H^u+t%O?@;d-w*U1>o?81ga$t3KY7yttr|?A!e{$je=!NE z)usP}p-riQ@f?8ippiS1X^{+?{{eBz0I`O@JbbFG(xa?Eg%89Ixw|6$Dg6=l<2J*MpVdU)j<0u>b%7 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/idna/__pycache__/package_data.cpython-310.pyc b/venv/lib/python3.10/site-packages/idna/__pycache__/package_data.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..542d452e47a46395d775b73d89eada3d8fdca57f GIT binary patch literal 200 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 X-8{7*eM4$~`o`3}^i8R`rS| Tuple[bytes, int]: + if errors != "strict": + raise IDNAError('Unsupported error handling "{}"'.format(errors)) + + if not data: + return b"", 0 + + return encode(data), len(data) + + def decode(self, data: bytes, errors: str = "strict") -> Tuple[str, int]: + if errors != "strict": + raise IDNAError('Unsupported error handling "{}"'.format(errors)) + + if not data: + return "", 0 + + return decode(data), len(data) + + +class IncrementalEncoder(codecs.BufferedIncrementalEncoder): + def _buffer_encode(self, data: str, errors: str, final: bool) -> Tuple[bytes, int]: + if errors != "strict": + raise IDNAError('Unsupported error handling "{}"'.format(errors)) + + if not data: + return b"", 0 + + labels = _unicode_dots_re.split(data) + trailing_dot = b"" + if labels: + if not labels[-1]: + trailing_dot = b"." + del labels[-1] + elif not final: + # Keep potentially unfinished label until the next call + del labels[-1] + if labels: + trailing_dot = b"." + + result = [] + size = 0 + for label in labels: + result.append(alabel(label)) + if size: + size += 1 + size += len(label) + + # Join with U+002E + result_bytes = b".".join(result) + trailing_dot + size += len(trailing_dot) + return result_bytes, size + + +class IncrementalDecoder(codecs.BufferedIncrementalDecoder): + def _buffer_decode(self, data: Any, errors: str, final: bool) -> Tuple[str, int]: + if errors != "strict": + raise IDNAError('Unsupported error handling "{}"'.format(errors)) + + if not data: + return ("", 0) + + if not isinstance(data, str): + data = str(data, "ascii") + + labels = _unicode_dots_re.split(data) + trailing_dot = "" + if labels: + if not labels[-1]: + trailing_dot = "." + del labels[-1] + elif not final: + # Keep potentially unfinished label until the next call + del labels[-1] + if labels: + trailing_dot = "." + + result = [] + size = 0 + for label in labels: + result.append(ulabel(label)) + if size: + size += 1 + size += len(label) + + result_str = ".".join(result) + trailing_dot + size += len(trailing_dot) + return (result_str, size) + + +class StreamWriter(Codec, codecs.StreamWriter): + pass + + +class StreamReader(Codec, codecs.StreamReader): + pass + + +def search_function(name: str) -> Optional[codecs.CodecInfo]: + if name != "idna2008": + return None + return codecs.CodecInfo( + name=name, + encode=Codec().encode, + decode=Codec().decode, # type: ignore + incrementalencoder=IncrementalEncoder, + incrementaldecoder=IncrementalDecoder, + streamwriter=StreamWriter, + streamreader=StreamReader, + ) + + +codecs.register(search_function) diff --git a/venv/lib/python3.10/site-packages/idna/compat.py b/venv/lib/python3.10/site-packages/idna/compat.py new file mode 100644 index 0000000..1df9f2a --- /dev/null +++ b/venv/lib/python3.10/site-packages/idna/compat.py @@ -0,0 +1,15 @@ +from typing import Any, Union + +from .core import decode, encode + + +def ToASCII(label: str) -> bytes: + return encode(label) + + +def ToUnicode(label: Union[bytes, bytearray]) -> str: + return decode(label) + + +def nameprep(s: Any) -> None: + raise NotImplementedError("IDNA 2008 does not utilise nameprep protocol") diff --git a/venv/lib/python3.10/site-packages/idna/core.py b/venv/lib/python3.10/site-packages/idna/core.py new file mode 100644 index 0000000..8177bf7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/idna/core.py @@ -0,0 +1,437 @@ +import bisect +import re +import unicodedata +from typing import Optional, Union + +from . import idnadata +from .intranges import intranges_contain + +_virama_combining_class = 9 +_alabel_prefix = b"xn--" +_unicode_dots_re = re.compile("[\u002e\u3002\uff0e\uff61]") + + +class IDNAError(UnicodeError): + """Base exception for all IDNA-encoding related problems""" + + pass + + +class IDNABidiError(IDNAError): + """Exception when bidirectional requirements are not satisfied""" + + pass + + +class InvalidCodepoint(IDNAError): + """Exception when a disallowed or unallocated codepoint is used""" + + pass + + +class InvalidCodepointContext(IDNAError): + """Exception when the codepoint is not valid in the context it is used""" + + pass + + +def _combining_class(cp: int) -> int: + v = unicodedata.combining(chr(cp)) + if v == 0: + if not unicodedata.name(chr(cp)): + raise ValueError("Unknown character in unicodedata") + return v + + +def _is_script(cp: str, script: str) -> bool: + return intranges_contain(ord(cp), idnadata.scripts[script]) + + +def _punycode(s: str) -> bytes: + return s.encode("punycode") + + +def _unot(s: int) -> str: + return "U+{:04X}".format(s) + + +def valid_label_length(label: Union[bytes, str]) -> bool: + if len(label) > 63: + return False + return True + + +def valid_string_length(label: Union[bytes, str], trailing_dot: bool) -> bool: + if len(label) > (254 if trailing_dot else 253): + return False + return True + + +def check_bidi(label: str, check_ltr: bool = False) -> bool: + # Bidi rules should only be applied if string contains RTL characters + bidi_label = False + for idx, cp in enumerate(label, 1): + direction = unicodedata.bidirectional(cp) + if direction == "": + # String likely comes from a newer version of Unicode + raise IDNABidiError("Unknown directionality in label {} at position {}".format(repr(label), idx)) + if direction in ["R", "AL", "AN"]: + bidi_label = True + if not bidi_label and not check_ltr: + return True + + # Bidi rule 1 + direction = unicodedata.bidirectional(label[0]) + if direction in ["R", "AL"]: + rtl = True + elif direction == "L": + rtl = False + else: + raise IDNABidiError("First codepoint in label {} must be directionality L, R or AL".format(repr(label))) + + valid_ending = False + number_type: Optional[str] = None + for idx, cp in enumerate(label, 1): + direction = unicodedata.bidirectional(cp) + + if rtl: + # Bidi rule 2 + if direction not in [ + "R", + "AL", + "AN", + "EN", + "ES", + "CS", + "ET", + "ON", + "BN", + "NSM", + ]: + raise IDNABidiError("Invalid direction for codepoint at position {} in a right-to-left label".format(idx)) + # Bidi rule 3 + if direction in ["R", "AL", "EN", "AN"]: + valid_ending = True + elif direction != "NSM": + valid_ending = False + # Bidi rule 4 + if direction in ["AN", "EN"]: + if not number_type: + number_type = direction + else: + if number_type != direction: + raise IDNABidiError("Can not mix numeral types in a right-to-left label") + else: + # Bidi rule 5 + if direction not in ["L", "EN", "ES", "CS", "ET", "ON", "BN", "NSM"]: + raise IDNABidiError("Invalid direction for codepoint at position {} in a left-to-right label".format(idx)) + # Bidi rule 6 + if direction in ["L", "EN"]: + valid_ending = True + elif direction != "NSM": + valid_ending = False + + if not valid_ending: + raise IDNABidiError("Label ends with illegal codepoint directionality") + + return True + + +def check_initial_combiner(label: str) -> bool: + if unicodedata.category(label[0])[0] == "M": + raise IDNAError("Label begins with an illegal combining character") + return True + + +def check_hyphen_ok(label: str) -> bool: + if label[2:4] == "--": + raise IDNAError("Label has disallowed hyphens in 3rd and 4th position") + if label[0] == "-" or label[-1] == "-": + raise IDNAError("Label must not start or end with a hyphen") + return True + + +def check_nfc(label: str) -> None: + if unicodedata.normalize("NFC", label) != label: + raise IDNAError("Label must be in Normalization Form C") + + +def valid_contextj(label: str, pos: int) -> bool: + cp_value = ord(label[pos]) + + if cp_value == 0x200C: + if pos > 0: + if _combining_class(ord(label[pos - 1])) == _virama_combining_class: + return True + + ok = False + for i in range(pos - 1, -1, -1): + joining_type = idnadata.joining_types.get(ord(label[i])) + if joining_type == ord("T"): + continue + elif joining_type in [ord("L"), ord("D")]: + ok = True + break + else: + break + + if not ok: + return False + + ok = False + for i in range(pos + 1, len(label)): + joining_type = idnadata.joining_types.get(ord(label[i])) + if joining_type == ord("T"): + continue + elif joining_type in [ord("R"), ord("D")]: + ok = True + break + else: + break + return ok + + if cp_value == 0x200D: + if pos > 0: + if _combining_class(ord(label[pos - 1])) == _virama_combining_class: + return True + return False + + else: + return False + + +def valid_contexto(label: str, pos: int, exception: bool = False) -> bool: + cp_value = ord(label[pos]) + + if cp_value == 0x00B7: + if 0 < pos < len(label) - 1: + if ord(label[pos - 1]) == 0x006C and ord(label[pos + 1]) == 0x006C: + return True + return False + + elif cp_value == 0x0375: + if pos < len(label) - 1 and len(label) > 1: + return _is_script(label[pos + 1], "Greek") + return False + + elif cp_value == 0x05F3 or cp_value == 0x05F4: + if pos > 0: + return _is_script(label[pos - 1], "Hebrew") + return False + + elif cp_value == 0x30FB: + for cp in label: + if cp == "\u30fb": + continue + if _is_script(cp, "Hiragana") or _is_script(cp, "Katakana") or _is_script(cp, "Han"): + return True + return False + + elif 0x660 <= cp_value <= 0x669: + for cp in label: + if 0x6F0 <= ord(cp) <= 0x06F9: + return False + return True + + elif 0x6F0 <= cp_value <= 0x6F9: + for cp in label: + if 0x660 <= ord(cp) <= 0x0669: + return False + return True + + return False + + +def check_label(label: Union[str, bytes, bytearray]) -> None: + if isinstance(label, (bytes, bytearray)): + label = label.decode("utf-8") + if len(label) == 0: + raise IDNAError("Empty Label") + + check_nfc(label) + check_hyphen_ok(label) + check_initial_combiner(label) + + for pos, cp in enumerate(label): + cp_value = ord(cp) + if intranges_contain(cp_value, idnadata.codepoint_classes["PVALID"]): + continue + elif intranges_contain(cp_value, idnadata.codepoint_classes["CONTEXTJ"]): + try: + if not valid_contextj(label, pos): + raise InvalidCodepointContext( + "Joiner {} not allowed at position {} in {}".format(_unot(cp_value), pos + 1, repr(label)) + ) + except ValueError: + raise IDNAError( + "Unknown codepoint adjacent to joiner {} at position {} in {}".format( + _unot(cp_value), pos + 1, repr(label) + ) + ) + elif intranges_contain(cp_value, idnadata.codepoint_classes["CONTEXTO"]): + if not valid_contexto(label, pos): + raise InvalidCodepointContext( + "Codepoint {} not allowed at position {} in {}".format(_unot(cp_value), pos + 1, repr(label)) + ) + else: + raise InvalidCodepoint( + "Codepoint {} at position {} of {} not allowed".format(_unot(cp_value), pos + 1, repr(label)) + ) + + check_bidi(label) + + +def alabel(label: str) -> bytes: + try: + label_bytes = label.encode("ascii") + ulabel(label_bytes) + if not valid_label_length(label_bytes): + raise IDNAError("Label too long") + return label_bytes + except UnicodeEncodeError: + pass + + check_label(label) + label_bytes = _alabel_prefix + _punycode(label) + + if not valid_label_length(label_bytes): + raise IDNAError("Label too long") + + return label_bytes + + +def ulabel(label: Union[str, bytes, bytearray]) -> str: + if not isinstance(label, (bytes, bytearray)): + try: + label_bytes = label.encode("ascii") + except UnicodeEncodeError: + check_label(label) + return label + else: + label_bytes = bytes(label) + + label_bytes = label_bytes.lower() + if label_bytes.startswith(_alabel_prefix): + label_bytes = label_bytes[len(_alabel_prefix) :] + if not label_bytes: + raise IDNAError("Malformed A-label, no Punycode eligible content found") + if label_bytes.decode("ascii")[-1] == "-": + raise IDNAError("A-label must not end with a hyphen") + else: + check_label(label_bytes) + return label_bytes.decode("ascii") + + try: + label = label_bytes.decode("punycode") + except UnicodeError: + raise IDNAError("Invalid A-label") + check_label(label) + return label + + +def uts46_remap(domain: str, std3_rules: bool = True, transitional: bool = False) -> str: + """Re-map the characters in the string according to UTS46 processing.""" + from .uts46data import uts46data + + output = "" + + for pos, char in enumerate(domain): + code_point = ord(char) + try: + uts46row = uts46data[code_point if code_point < 256 else bisect.bisect_left(uts46data, (code_point, "Z")) - 1] + status = uts46row[1] + replacement: Optional[str] = None + if len(uts46row) == 3: + replacement = uts46row[2] + if ( + status == "V" + or (status == "D" and not transitional) + or (status == "3" and not std3_rules and replacement is None) + ): + output += char + elif replacement is not None and ( + status == "M" or (status == "3" and not std3_rules) or (status == "D" and transitional) + ): + output += replacement + elif status != "I": + raise IndexError() + except IndexError: + raise InvalidCodepoint( + "Codepoint {} not allowed at position {} in {}".format(_unot(code_point), pos + 1, repr(domain)) + ) + + return unicodedata.normalize("NFC", output) + + +def encode( + s: Union[str, bytes, bytearray], + strict: bool = False, + uts46: bool = False, + std3_rules: bool = False, + transitional: bool = False, +) -> bytes: + if not isinstance(s, str): + try: + s = str(s, "ascii") + except UnicodeDecodeError: + raise IDNAError("should pass a unicode string to the function rather than a byte string.") + if uts46: + s = uts46_remap(s, std3_rules, transitional) + trailing_dot = False + result = [] + if strict: + labels = s.split(".") + else: + labels = _unicode_dots_re.split(s) + if not labels or labels == [""]: + raise IDNAError("Empty domain") + if labels[-1] == "": + del labels[-1] + trailing_dot = True + for label in labels: + s = alabel(label) + if s: + result.append(s) + else: + raise IDNAError("Empty label") + if trailing_dot: + result.append(b"") + s = b".".join(result) + if not valid_string_length(s, trailing_dot): + raise IDNAError("Domain too long") + return s + + +def decode( + s: Union[str, bytes, bytearray], + strict: bool = False, + uts46: bool = False, + std3_rules: bool = False, +) -> str: + try: + if not isinstance(s, str): + s = str(s, "ascii") + except UnicodeDecodeError: + raise IDNAError("Invalid ASCII in A-label") + if uts46: + s = uts46_remap(s, std3_rules, False) + trailing_dot = False + result = [] + if not strict: + labels = _unicode_dots_re.split(s) + else: + labels = s.split(".") + if not labels or labels == [""]: + raise IDNAError("Empty domain") + if not labels[-1]: + del labels[-1] + trailing_dot = True + for label in labels: + s = ulabel(label) + if s: + result.append(s) + else: + raise IDNAError("Empty label") + if trailing_dot: + result.append("") + return ".".join(result) diff --git a/venv/lib/python3.10/site-packages/idna/idnadata.py b/venv/lib/python3.10/site-packages/idna/idnadata.py new file mode 100644 index 0000000..ded47ca --- /dev/null +++ b/venv/lib/python3.10/site-packages/idna/idnadata.py @@ -0,0 +1,4309 @@ +# This file is automatically generated by tools/idna-data + +__version__ = "16.0.0" + +scripts = { + "Greek": ( + 0x37000000374, + 0x37500000378, + 0x37A0000037E, + 0x37F00000380, + 0x38400000385, + 0x38600000387, + 0x3880000038B, + 0x38C0000038D, + 0x38E000003A2, + 0x3A3000003E2, + 0x3F000000400, + 0x1D2600001D2B, + 0x1D5D00001D62, + 0x1D6600001D6B, + 0x1DBF00001DC0, + 0x1F0000001F16, + 0x1F1800001F1E, + 0x1F2000001F46, + 0x1F4800001F4E, + 0x1F5000001F58, + 0x1F5900001F5A, + 0x1F5B00001F5C, + 0x1F5D00001F5E, + 0x1F5F00001F7E, + 0x1F8000001FB5, + 0x1FB600001FC5, + 0x1FC600001FD4, + 0x1FD600001FDC, + 0x1FDD00001FF0, + 0x1FF200001FF5, + 0x1FF600001FFF, + 0x212600002127, + 0xAB650000AB66, + 0x101400001018F, + 0x101A0000101A1, + 0x1D2000001D246, + ), + "Han": ( + 0x2E8000002E9A, + 0x2E9B00002EF4, + 0x2F0000002FD6, + 0x300500003006, + 0x300700003008, + 0x30210000302A, + 0x30380000303C, + 0x340000004DC0, + 0x4E000000A000, + 0xF9000000FA6E, + 0xFA700000FADA, + 0x16FE200016FE4, + 0x16FF000016FF2, + 0x200000002A6E0, + 0x2A7000002B73A, + 0x2B7400002B81E, + 0x2B8200002CEA2, + 0x2CEB00002EBE1, + 0x2EBF00002EE5E, + 0x2F8000002FA1E, + 0x300000003134B, + 0x31350000323B0, + ), + "Hebrew": ( + 0x591000005C8, + 0x5D0000005EB, + 0x5EF000005F5, + 0xFB1D0000FB37, + 0xFB380000FB3D, + 0xFB3E0000FB3F, + 0xFB400000FB42, + 0xFB430000FB45, + 0xFB460000FB50, + ), + "Hiragana": ( + 0x304100003097, + 0x309D000030A0, + 0x1B0010001B120, + 0x1B1320001B133, + 0x1B1500001B153, + 0x1F2000001F201, + ), + "Katakana": ( + 0x30A1000030FB, + 0x30FD00003100, + 0x31F000003200, + 0x32D0000032FF, + 0x330000003358, + 0xFF660000FF70, + 0xFF710000FF9E, + 0x1AFF00001AFF4, + 0x1AFF50001AFFC, + 0x1AFFD0001AFFF, + 0x1B0000001B001, + 0x1B1200001B123, + 0x1B1550001B156, + 0x1B1640001B168, + ), +} +joining_types = { + 0xAD: 84, + 0x300: 84, + 0x301: 84, + 0x302: 84, + 0x303: 84, + 0x304: 84, + 0x305: 84, + 0x306: 84, + 0x307: 84, + 0x308: 84, + 0x309: 84, + 0x30A: 84, + 0x30B: 84, + 0x30C: 84, + 0x30D: 84, + 0x30E: 84, + 0x30F: 84, + 0x310: 84, + 0x311: 84, + 0x312: 84, + 0x313: 84, + 0x314: 84, + 0x315: 84, + 0x316: 84, + 0x317: 84, + 0x318: 84, + 0x319: 84, + 0x31A: 84, + 0x31B: 84, + 0x31C: 84, + 0x31D: 84, + 0x31E: 84, + 0x31F: 84, + 0x320: 84, + 0x321: 84, + 0x322: 84, + 0x323: 84, + 0x324: 84, + 0x325: 84, + 0x326: 84, + 0x327: 84, + 0x328: 84, + 0x329: 84, + 0x32A: 84, + 0x32B: 84, + 0x32C: 84, + 0x32D: 84, + 0x32E: 84, + 0x32F: 84, + 0x330: 84, + 0x331: 84, + 0x332: 84, + 0x333: 84, + 0x334: 84, + 0x335: 84, + 0x336: 84, + 0x337: 84, + 0x338: 84, + 0x339: 84, + 0x33A: 84, + 0x33B: 84, + 0x33C: 84, + 0x33D: 84, + 0x33E: 84, + 0x33F: 84, + 0x340: 84, + 0x341: 84, + 0x342: 84, + 0x343: 84, + 0x344: 84, + 0x345: 84, + 0x346: 84, + 0x347: 84, + 0x348: 84, + 0x349: 84, + 0x34A: 84, + 0x34B: 84, + 0x34C: 84, + 0x34D: 84, + 0x34E: 84, + 0x34F: 84, + 0x350: 84, + 0x351: 84, + 0x352: 84, + 0x353: 84, + 0x354: 84, + 0x355: 84, + 0x356: 84, + 0x357: 84, + 0x358: 84, + 0x359: 84, + 0x35A: 84, + 0x35B: 84, + 0x35C: 84, + 0x35D: 84, + 0x35E: 84, + 0x35F: 84, + 0x360: 84, + 0x361: 84, + 0x362: 84, + 0x363: 84, + 0x364: 84, + 0x365: 84, + 0x366: 84, + 0x367: 84, + 0x368: 84, + 0x369: 84, + 0x36A: 84, + 0x36B: 84, + 0x36C: 84, + 0x36D: 84, + 0x36E: 84, + 0x36F: 84, + 0x483: 84, + 0x484: 84, + 0x485: 84, + 0x486: 84, + 0x487: 84, + 0x488: 84, + 0x489: 84, + 0x591: 84, + 0x592: 84, + 0x593: 84, + 0x594: 84, + 0x595: 84, + 0x596: 84, + 0x597: 84, + 0x598: 84, + 0x599: 84, + 0x59A: 84, + 0x59B: 84, + 0x59C: 84, + 0x59D: 84, + 0x59E: 84, + 0x59F: 84, + 0x5A0: 84, + 0x5A1: 84, + 0x5A2: 84, + 0x5A3: 84, + 0x5A4: 84, + 0x5A5: 84, + 0x5A6: 84, + 0x5A7: 84, + 0x5A8: 84, + 0x5A9: 84, + 0x5AA: 84, + 0x5AB: 84, + 0x5AC: 84, + 0x5AD: 84, + 0x5AE: 84, + 0x5AF: 84, + 0x5B0: 84, + 0x5B1: 84, + 0x5B2: 84, + 0x5B3: 84, + 0x5B4: 84, + 0x5B5: 84, + 0x5B6: 84, + 0x5B7: 84, + 0x5B8: 84, + 0x5B9: 84, + 0x5BA: 84, + 0x5BB: 84, + 0x5BC: 84, + 0x5BD: 84, + 0x5BF: 84, + 0x5C1: 84, + 0x5C2: 84, + 0x5C4: 84, + 0x5C5: 84, + 0x5C7: 84, + 0x610: 84, + 0x611: 84, + 0x612: 84, + 0x613: 84, + 0x614: 84, + 0x615: 84, + 0x616: 84, + 0x617: 84, + 0x618: 84, + 0x619: 84, + 0x61A: 84, + 0x61C: 84, + 0x620: 68, + 0x622: 82, + 0x623: 82, + 0x624: 82, + 0x625: 82, + 0x626: 68, + 0x627: 82, + 0x628: 68, + 0x629: 82, + 0x62A: 68, + 0x62B: 68, + 0x62C: 68, + 0x62D: 68, + 0x62E: 68, + 0x62F: 82, + 0x630: 82, + 0x631: 82, + 0x632: 82, + 0x633: 68, + 0x634: 68, + 0x635: 68, + 0x636: 68, + 0x637: 68, + 0x638: 68, + 0x639: 68, + 0x63A: 68, + 0x63B: 68, + 0x63C: 68, + 0x63D: 68, + 0x63E: 68, + 0x63F: 68, + 0x640: 67, + 0x641: 68, + 0x642: 68, + 0x643: 68, + 0x644: 68, + 0x645: 68, + 0x646: 68, + 0x647: 68, + 0x648: 82, + 0x649: 68, + 0x64A: 68, + 0x64B: 84, + 0x64C: 84, + 0x64D: 84, + 0x64E: 84, + 0x64F: 84, + 0x650: 84, + 0x651: 84, + 0x652: 84, + 0x653: 84, + 0x654: 84, + 0x655: 84, + 0x656: 84, + 0x657: 84, + 0x658: 84, + 0x659: 84, + 0x65A: 84, + 0x65B: 84, + 0x65C: 84, + 0x65D: 84, + 0x65E: 84, + 0x65F: 84, + 0x66E: 68, + 0x66F: 68, + 0x670: 84, + 0x671: 82, + 0x672: 82, + 0x673: 82, + 0x675: 82, + 0x676: 82, + 0x677: 82, + 0x678: 68, + 0x679: 68, + 0x67A: 68, + 0x67B: 68, + 0x67C: 68, + 0x67D: 68, + 0x67E: 68, + 0x67F: 68, + 0x680: 68, + 0x681: 68, + 0x682: 68, + 0x683: 68, + 0x684: 68, + 0x685: 68, + 0x686: 68, + 0x687: 68, + 0x688: 82, + 0x689: 82, + 0x68A: 82, + 0x68B: 82, + 0x68C: 82, + 0x68D: 82, + 0x68E: 82, + 0x68F: 82, + 0x690: 82, + 0x691: 82, + 0x692: 82, + 0x693: 82, + 0x694: 82, + 0x695: 82, + 0x696: 82, + 0x697: 82, + 0x698: 82, + 0x699: 82, + 0x69A: 68, + 0x69B: 68, + 0x69C: 68, + 0x69D: 68, + 0x69E: 68, + 0x69F: 68, + 0x6A0: 68, + 0x6A1: 68, + 0x6A2: 68, + 0x6A3: 68, + 0x6A4: 68, + 0x6A5: 68, + 0x6A6: 68, + 0x6A7: 68, + 0x6A8: 68, + 0x6A9: 68, + 0x6AA: 68, + 0x6AB: 68, + 0x6AC: 68, + 0x6AD: 68, + 0x6AE: 68, + 0x6AF: 68, + 0x6B0: 68, + 0x6B1: 68, + 0x6B2: 68, + 0x6B3: 68, + 0x6B4: 68, + 0x6B5: 68, + 0x6B6: 68, + 0x6B7: 68, + 0x6B8: 68, + 0x6B9: 68, + 0x6BA: 68, + 0x6BB: 68, + 0x6BC: 68, + 0x6BD: 68, + 0x6BE: 68, + 0x6BF: 68, + 0x6C0: 82, + 0x6C1: 68, + 0x6C2: 68, + 0x6C3: 82, + 0x6C4: 82, + 0x6C5: 82, + 0x6C6: 82, + 0x6C7: 82, + 0x6C8: 82, + 0x6C9: 82, + 0x6CA: 82, + 0x6CB: 82, + 0x6CC: 68, + 0x6CD: 82, + 0x6CE: 68, + 0x6CF: 82, + 0x6D0: 68, + 0x6D1: 68, + 0x6D2: 82, + 0x6D3: 82, + 0x6D5: 82, + 0x6D6: 84, + 0x6D7: 84, + 0x6D8: 84, + 0x6D9: 84, + 0x6DA: 84, + 0x6DB: 84, + 0x6DC: 84, + 0x6DF: 84, + 0x6E0: 84, + 0x6E1: 84, + 0x6E2: 84, + 0x6E3: 84, + 0x6E4: 84, + 0x6E7: 84, + 0x6E8: 84, + 0x6EA: 84, + 0x6EB: 84, + 0x6EC: 84, + 0x6ED: 84, + 0x6EE: 82, + 0x6EF: 82, + 0x6FA: 68, + 0x6FB: 68, + 0x6FC: 68, + 0x6FF: 68, + 0x70F: 84, + 0x710: 82, + 0x711: 84, + 0x712: 68, + 0x713: 68, + 0x714: 68, + 0x715: 82, + 0x716: 82, + 0x717: 82, + 0x718: 82, + 0x719: 82, + 0x71A: 68, + 0x71B: 68, + 0x71C: 68, + 0x71D: 68, + 0x71E: 82, + 0x71F: 68, + 0x720: 68, + 0x721: 68, + 0x722: 68, + 0x723: 68, + 0x724: 68, + 0x725: 68, + 0x726: 68, + 0x727: 68, + 0x728: 82, + 0x729: 68, + 0x72A: 82, + 0x72B: 68, + 0x72C: 82, + 0x72D: 68, + 0x72E: 68, + 0x72F: 82, + 0x730: 84, + 0x731: 84, + 0x732: 84, + 0x733: 84, + 0x734: 84, + 0x735: 84, + 0x736: 84, + 0x737: 84, + 0x738: 84, + 0x739: 84, + 0x73A: 84, + 0x73B: 84, + 0x73C: 84, + 0x73D: 84, + 0x73E: 84, + 0x73F: 84, + 0x740: 84, + 0x741: 84, + 0x742: 84, + 0x743: 84, + 0x744: 84, + 0x745: 84, + 0x746: 84, + 0x747: 84, + 0x748: 84, + 0x749: 84, + 0x74A: 84, + 0x74D: 82, + 0x74E: 68, + 0x74F: 68, + 0x750: 68, + 0x751: 68, + 0x752: 68, + 0x753: 68, + 0x754: 68, + 0x755: 68, + 0x756: 68, + 0x757: 68, + 0x758: 68, + 0x759: 82, + 0x75A: 82, + 0x75B: 82, + 0x75C: 68, + 0x75D: 68, + 0x75E: 68, + 0x75F: 68, + 0x760: 68, + 0x761: 68, + 0x762: 68, + 0x763: 68, + 0x764: 68, + 0x765: 68, + 0x766: 68, + 0x767: 68, + 0x768: 68, + 0x769: 68, + 0x76A: 68, + 0x76B: 82, + 0x76C: 82, + 0x76D: 68, + 0x76E: 68, + 0x76F: 68, + 0x770: 68, + 0x771: 82, + 0x772: 68, + 0x773: 82, + 0x774: 82, + 0x775: 68, + 0x776: 68, + 0x777: 68, + 0x778: 82, + 0x779: 82, + 0x77A: 68, + 0x77B: 68, + 0x77C: 68, + 0x77D: 68, + 0x77E: 68, + 0x77F: 68, + 0x7A6: 84, + 0x7A7: 84, + 0x7A8: 84, + 0x7A9: 84, + 0x7AA: 84, + 0x7AB: 84, + 0x7AC: 84, + 0x7AD: 84, + 0x7AE: 84, + 0x7AF: 84, + 0x7B0: 84, + 0x7CA: 68, + 0x7CB: 68, + 0x7CC: 68, + 0x7CD: 68, + 0x7CE: 68, + 0x7CF: 68, + 0x7D0: 68, + 0x7D1: 68, + 0x7D2: 68, + 0x7D3: 68, + 0x7D4: 68, + 0x7D5: 68, + 0x7D6: 68, + 0x7D7: 68, + 0x7D8: 68, + 0x7D9: 68, + 0x7DA: 68, + 0x7DB: 68, + 0x7DC: 68, + 0x7DD: 68, + 0x7DE: 68, + 0x7DF: 68, + 0x7E0: 68, + 0x7E1: 68, + 0x7E2: 68, + 0x7E3: 68, + 0x7E4: 68, + 0x7E5: 68, + 0x7E6: 68, + 0x7E7: 68, + 0x7E8: 68, + 0x7E9: 68, + 0x7EA: 68, + 0x7EB: 84, + 0x7EC: 84, + 0x7ED: 84, + 0x7EE: 84, + 0x7EF: 84, + 0x7F0: 84, + 0x7F1: 84, + 0x7F2: 84, + 0x7F3: 84, + 0x7FA: 67, + 0x7FD: 84, + 0x816: 84, + 0x817: 84, + 0x818: 84, + 0x819: 84, + 0x81B: 84, + 0x81C: 84, + 0x81D: 84, + 0x81E: 84, + 0x81F: 84, + 0x820: 84, + 0x821: 84, + 0x822: 84, + 0x823: 84, + 0x825: 84, + 0x826: 84, + 0x827: 84, + 0x829: 84, + 0x82A: 84, + 0x82B: 84, + 0x82C: 84, + 0x82D: 84, + 0x840: 82, + 0x841: 68, + 0x842: 68, + 0x843: 68, + 0x844: 68, + 0x845: 68, + 0x846: 82, + 0x847: 82, + 0x848: 68, + 0x849: 82, + 0x84A: 68, + 0x84B: 68, + 0x84C: 68, + 0x84D: 68, + 0x84E: 68, + 0x84F: 68, + 0x850: 68, + 0x851: 68, + 0x852: 68, + 0x853: 68, + 0x854: 82, + 0x855: 68, + 0x856: 82, + 0x857: 82, + 0x858: 82, + 0x859: 84, + 0x85A: 84, + 0x85B: 84, + 0x860: 68, + 0x862: 68, + 0x863: 68, + 0x864: 68, + 0x865: 68, + 0x867: 82, + 0x868: 68, + 0x869: 82, + 0x86A: 82, + 0x870: 82, + 0x871: 82, + 0x872: 82, + 0x873: 82, + 0x874: 82, + 0x875: 82, + 0x876: 82, + 0x877: 82, + 0x878: 82, + 0x879: 82, + 0x87A: 82, + 0x87B: 82, + 0x87C: 82, + 0x87D: 82, + 0x87E: 82, + 0x87F: 82, + 0x880: 82, + 0x881: 82, + 0x882: 82, + 0x883: 67, + 0x884: 67, + 0x885: 67, + 0x886: 68, + 0x889: 68, + 0x88A: 68, + 0x88B: 68, + 0x88C: 68, + 0x88D: 68, + 0x88E: 82, + 0x897: 84, + 0x898: 84, + 0x899: 84, + 0x89A: 84, + 0x89B: 84, + 0x89C: 84, + 0x89D: 84, + 0x89E: 84, + 0x89F: 84, + 0x8A0: 68, + 0x8A1: 68, + 0x8A2: 68, + 0x8A3: 68, + 0x8A4: 68, + 0x8A5: 68, + 0x8A6: 68, + 0x8A7: 68, + 0x8A8: 68, + 0x8A9: 68, + 0x8AA: 82, + 0x8AB: 82, + 0x8AC: 82, + 0x8AE: 82, + 0x8AF: 68, + 0x8B0: 68, + 0x8B1: 82, + 0x8B2: 82, + 0x8B3: 68, + 0x8B4: 68, + 0x8B5: 68, + 0x8B6: 68, + 0x8B7: 68, + 0x8B8: 68, + 0x8B9: 82, + 0x8BA: 68, + 0x8BB: 68, + 0x8BC: 68, + 0x8BD: 68, + 0x8BE: 68, + 0x8BF: 68, + 0x8C0: 68, + 0x8C1: 68, + 0x8C2: 68, + 0x8C3: 68, + 0x8C4: 68, + 0x8C5: 68, + 0x8C6: 68, + 0x8C7: 68, + 0x8C8: 68, + 0x8CA: 84, + 0x8CB: 84, + 0x8CC: 84, + 0x8CD: 84, + 0x8CE: 84, + 0x8CF: 84, + 0x8D0: 84, + 0x8D1: 84, + 0x8D2: 84, + 0x8D3: 84, + 0x8D4: 84, + 0x8D5: 84, + 0x8D6: 84, + 0x8D7: 84, + 0x8D8: 84, + 0x8D9: 84, + 0x8DA: 84, + 0x8DB: 84, + 0x8DC: 84, + 0x8DD: 84, + 0x8DE: 84, + 0x8DF: 84, + 0x8E0: 84, + 0x8E1: 84, + 0x8E3: 84, + 0x8E4: 84, + 0x8E5: 84, + 0x8E6: 84, + 0x8E7: 84, + 0x8E8: 84, + 0x8E9: 84, + 0x8EA: 84, + 0x8EB: 84, + 0x8EC: 84, + 0x8ED: 84, + 0x8EE: 84, + 0x8EF: 84, + 0x8F0: 84, + 0x8F1: 84, + 0x8F2: 84, + 0x8F3: 84, + 0x8F4: 84, + 0x8F5: 84, + 0x8F6: 84, + 0x8F7: 84, + 0x8F8: 84, + 0x8F9: 84, + 0x8FA: 84, + 0x8FB: 84, + 0x8FC: 84, + 0x8FD: 84, + 0x8FE: 84, + 0x8FF: 84, + 0x900: 84, + 0x901: 84, + 0x902: 84, + 0x93A: 84, + 0x93C: 84, + 0x941: 84, + 0x942: 84, + 0x943: 84, + 0x944: 84, + 0x945: 84, + 0x946: 84, + 0x947: 84, + 0x948: 84, + 0x94D: 84, + 0x951: 84, + 0x952: 84, + 0x953: 84, + 0x954: 84, + 0x955: 84, + 0x956: 84, + 0x957: 84, + 0x962: 84, + 0x963: 84, + 0x981: 84, + 0x9BC: 84, + 0x9C1: 84, + 0x9C2: 84, + 0x9C3: 84, + 0x9C4: 84, + 0x9CD: 84, + 0x9E2: 84, + 0x9E3: 84, + 0x9FE: 84, + 0xA01: 84, + 0xA02: 84, + 0xA3C: 84, + 0xA41: 84, + 0xA42: 84, + 0xA47: 84, + 0xA48: 84, + 0xA4B: 84, + 0xA4C: 84, + 0xA4D: 84, + 0xA51: 84, + 0xA70: 84, + 0xA71: 84, + 0xA75: 84, + 0xA81: 84, + 0xA82: 84, + 0xABC: 84, + 0xAC1: 84, + 0xAC2: 84, + 0xAC3: 84, + 0xAC4: 84, + 0xAC5: 84, + 0xAC7: 84, + 0xAC8: 84, + 0xACD: 84, + 0xAE2: 84, + 0xAE3: 84, + 0xAFA: 84, + 0xAFB: 84, + 0xAFC: 84, + 0xAFD: 84, + 0xAFE: 84, + 0xAFF: 84, + 0xB01: 84, + 0xB3C: 84, + 0xB3F: 84, + 0xB41: 84, + 0xB42: 84, + 0xB43: 84, + 0xB44: 84, + 0xB4D: 84, + 0xB55: 84, + 0xB56: 84, + 0xB62: 84, + 0xB63: 84, + 0xB82: 84, + 0xBC0: 84, + 0xBCD: 84, + 0xC00: 84, + 0xC04: 84, + 0xC3C: 84, + 0xC3E: 84, + 0xC3F: 84, + 0xC40: 84, + 0xC46: 84, + 0xC47: 84, + 0xC48: 84, + 0xC4A: 84, + 0xC4B: 84, + 0xC4C: 84, + 0xC4D: 84, + 0xC55: 84, + 0xC56: 84, + 0xC62: 84, + 0xC63: 84, + 0xC81: 84, + 0xCBC: 84, + 0xCBF: 84, + 0xCC6: 84, + 0xCCC: 84, + 0xCCD: 84, + 0xCE2: 84, + 0xCE3: 84, + 0xD00: 84, + 0xD01: 84, + 0xD3B: 84, + 0xD3C: 84, + 0xD41: 84, + 0xD42: 84, + 0xD43: 84, + 0xD44: 84, + 0xD4D: 84, + 0xD62: 84, + 0xD63: 84, + 0xD81: 84, + 0xDCA: 84, + 0xDD2: 84, + 0xDD3: 84, + 0xDD4: 84, + 0xDD6: 84, + 0xE31: 84, + 0xE34: 84, + 0xE35: 84, + 0xE36: 84, + 0xE37: 84, + 0xE38: 84, + 0xE39: 84, + 0xE3A: 84, + 0xE47: 84, + 0xE48: 84, + 0xE49: 84, + 0xE4A: 84, + 0xE4B: 84, + 0xE4C: 84, + 0xE4D: 84, + 0xE4E: 84, + 0xEB1: 84, + 0xEB4: 84, + 0xEB5: 84, + 0xEB6: 84, + 0xEB7: 84, + 0xEB8: 84, + 0xEB9: 84, + 0xEBA: 84, + 0xEBB: 84, + 0xEBC: 84, + 0xEC8: 84, + 0xEC9: 84, + 0xECA: 84, + 0xECB: 84, + 0xECC: 84, + 0xECD: 84, + 0xECE: 84, + 0xF18: 84, + 0xF19: 84, + 0xF35: 84, + 0xF37: 84, + 0xF39: 84, + 0xF71: 84, + 0xF72: 84, + 0xF73: 84, + 0xF74: 84, + 0xF75: 84, + 0xF76: 84, + 0xF77: 84, + 0xF78: 84, + 0xF79: 84, + 0xF7A: 84, + 0xF7B: 84, + 0xF7C: 84, + 0xF7D: 84, + 0xF7E: 84, + 0xF80: 84, + 0xF81: 84, + 0xF82: 84, + 0xF83: 84, + 0xF84: 84, + 0xF86: 84, + 0xF87: 84, + 0xF8D: 84, + 0xF8E: 84, + 0xF8F: 84, + 0xF90: 84, + 0xF91: 84, + 0xF92: 84, + 0xF93: 84, + 0xF94: 84, + 0xF95: 84, + 0xF96: 84, + 0xF97: 84, + 0xF99: 84, + 0xF9A: 84, + 0xF9B: 84, + 0xF9C: 84, + 0xF9D: 84, + 0xF9E: 84, + 0xF9F: 84, + 0xFA0: 84, + 0xFA1: 84, + 0xFA2: 84, + 0xFA3: 84, + 0xFA4: 84, + 0xFA5: 84, + 0xFA6: 84, + 0xFA7: 84, + 0xFA8: 84, + 0xFA9: 84, + 0xFAA: 84, + 0xFAB: 84, + 0xFAC: 84, + 0xFAD: 84, + 0xFAE: 84, + 0xFAF: 84, + 0xFB0: 84, + 0xFB1: 84, + 0xFB2: 84, + 0xFB3: 84, + 0xFB4: 84, + 0xFB5: 84, + 0xFB6: 84, + 0xFB7: 84, + 0xFB8: 84, + 0xFB9: 84, + 0xFBA: 84, + 0xFBB: 84, + 0xFBC: 84, + 0xFC6: 84, + 0x102D: 84, + 0x102E: 84, + 0x102F: 84, + 0x1030: 84, + 0x1032: 84, + 0x1033: 84, + 0x1034: 84, + 0x1035: 84, + 0x1036: 84, + 0x1037: 84, + 0x1039: 84, + 0x103A: 84, + 0x103D: 84, + 0x103E: 84, + 0x1058: 84, + 0x1059: 84, + 0x105E: 84, + 0x105F: 84, + 0x1060: 84, + 0x1071: 84, + 0x1072: 84, + 0x1073: 84, + 0x1074: 84, + 0x1082: 84, + 0x1085: 84, + 0x1086: 84, + 0x108D: 84, + 0x109D: 84, + 0x135D: 84, + 0x135E: 84, + 0x135F: 84, + 0x1712: 84, + 0x1713: 84, + 0x1714: 84, + 0x1732: 84, + 0x1733: 84, + 0x1752: 84, + 0x1753: 84, + 0x1772: 84, + 0x1773: 84, + 0x17B4: 84, + 0x17B5: 84, + 0x17B7: 84, + 0x17B8: 84, + 0x17B9: 84, + 0x17BA: 84, + 0x17BB: 84, + 0x17BC: 84, + 0x17BD: 84, + 0x17C6: 84, + 0x17C9: 84, + 0x17CA: 84, + 0x17CB: 84, + 0x17CC: 84, + 0x17CD: 84, + 0x17CE: 84, + 0x17CF: 84, + 0x17D0: 84, + 0x17D1: 84, + 0x17D2: 84, + 0x17D3: 84, + 0x17DD: 84, + 0x1807: 68, + 0x180A: 67, + 0x180B: 84, + 0x180C: 84, + 0x180D: 84, + 0x180F: 84, + 0x1820: 68, + 0x1821: 68, + 0x1822: 68, + 0x1823: 68, + 0x1824: 68, + 0x1825: 68, + 0x1826: 68, + 0x1827: 68, + 0x1828: 68, + 0x1829: 68, + 0x182A: 68, + 0x182B: 68, + 0x182C: 68, + 0x182D: 68, + 0x182E: 68, + 0x182F: 68, + 0x1830: 68, + 0x1831: 68, + 0x1832: 68, + 0x1833: 68, + 0x1834: 68, + 0x1835: 68, + 0x1836: 68, + 0x1837: 68, + 0x1838: 68, + 0x1839: 68, + 0x183A: 68, + 0x183B: 68, + 0x183C: 68, + 0x183D: 68, + 0x183E: 68, + 0x183F: 68, + 0x1840: 68, + 0x1841: 68, + 0x1842: 68, + 0x1843: 68, + 0x1844: 68, + 0x1845: 68, + 0x1846: 68, + 0x1847: 68, + 0x1848: 68, + 0x1849: 68, + 0x184A: 68, + 0x184B: 68, + 0x184C: 68, + 0x184D: 68, + 0x184E: 68, + 0x184F: 68, + 0x1850: 68, + 0x1851: 68, + 0x1852: 68, + 0x1853: 68, + 0x1854: 68, + 0x1855: 68, + 0x1856: 68, + 0x1857: 68, + 0x1858: 68, + 0x1859: 68, + 0x185A: 68, + 0x185B: 68, + 0x185C: 68, + 0x185D: 68, + 0x185E: 68, + 0x185F: 68, + 0x1860: 68, + 0x1861: 68, + 0x1862: 68, + 0x1863: 68, + 0x1864: 68, + 0x1865: 68, + 0x1866: 68, + 0x1867: 68, + 0x1868: 68, + 0x1869: 68, + 0x186A: 68, + 0x186B: 68, + 0x186C: 68, + 0x186D: 68, + 0x186E: 68, + 0x186F: 68, + 0x1870: 68, + 0x1871: 68, + 0x1872: 68, + 0x1873: 68, + 0x1874: 68, + 0x1875: 68, + 0x1876: 68, + 0x1877: 68, + 0x1878: 68, + 0x1885: 84, + 0x1886: 84, + 0x1887: 68, + 0x1888: 68, + 0x1889: 68, + 0x188A: 68, + 0x188B: 68, + 0x188C: 68, + 0x188D: 68, + 0x188E: 68, + 0x188F: 68, + 0x1890: 68, + 0x1891: 68, + 0x1892: 68, + 0x1893: 68, + 0x1894: 68, + 0x1895: 68, + 0x1896: 68, + 0x1897: 68, + 0x1898: 68, + 0x1899: 68, + 0x189A: 68, + 0x189B: 68, + 0x189C: 68, + 0x189D: 68, + 0x189E: 68, + 0x189F: 68, + 0x18A0: 68, + 0x18A1: 68, + 0x18A2: 68, + 0x18A3: 68, + 0x18A4: 68, + 0x18A5: 68, + 0x18A6: 68, + 0x18A7: 68, + 0x18A8: 68, + 0x18A9: 84, + 0x18AA: 68, + 0x1920: 84, + 0x1921: 84, + 0x1922: 84, + 0x1927: 84, + 0x1928: 84, + 0x1932: 84, + 0x1939: 84, + 0x193A: 84, + 0x193B: 84, + 0x1A17: 84, + 0x1A18: 84, + 0x1A1B: 84, + 0x1A56: 84, + 0x1A58: 84, + 0x1A59: 84, + 0x1A5A: 84, + 0x1A5B: 84, + 0x1A5C: 84, + 0x1A5D: 84, + 0x1A5E: 84, + 0x1A60: 84, + 0x1A62: 84, + 0x1A65: 84, + 0x1A66: 84, + 0x1A67: 84, + 0x1A68: 84, + 0x1A69: 84, + 0x1A6A: 84, + 0x1A6B: 84, + 0x1A6C: 84, + 0x1A73: 84, + 0x1A74: 84, + 0x1A75: 84, + 0x1A76: 84, + 0x1A77: 84, + 0x1A78: 84, + 0x1A79: 84, + 0x1A7A: 84, + 0x1A7B: 84, + 0x1A7C: 84, + 0x1A7F: 84, + 0x1AB0: 84, + 0x1AB1: 84, + 0x1AB2: 84, + 0x1AB3: 84, + 0x1AB4: 84, + 0x1AB5: 84, + 0x1AB6: 84, + 0x1AB7: 84, + 0x1AB8: 84, + 0x1AB9: 84, + 0x1ABA: 84, + 0x1ABB: 84, + 0x1ABC: 84, + 0x1ABD: 84, + 0x1ABE: 84, + 0x1ABF: 84, + 0x1AC0: 84, + 0x1AC1: 84, + 0x1AC2: 84, + 0x1AC3: 84, + 0x1AC4: 84, + 0x1AC5: 84, + 0x1AC6: 84, + 0x1AC7: 84, + 0x1AC8: 84, + 0x1AC9: 84, + 0x1ACA: 84, + 0x1ACB: 84, + 0x1ACC: 84, + 0x1ACD: 84, + 0x1ACE: 84, + 0x1B00: 84, + 0x1B01: 84, + 0x1B02: 84, + 0x1B03: 84, + 0x1B34: 84, + 0x1B36: 84, + 0x1B37: 84, + 0x1B38: 84, + 0x1B39: 84, + 0x1B3A: 84, + 0x1B3C: 84, + 0x1B42: 84, + 0x1B6B: 84, + 0x1B6C: 84, + 0x1B6D: 84, + 0x1B6E: 84, + 0x1B6F: 84, + 0x1B70: 84, + 0x1B71: 84, + 0x1B72: 84, + 0x1B73: 84, + 0x1B80: 84, + 0x1B81: 84, + 0x1BA2: 84, + 0x1BA3: 84, + 0x1BA4: 84, + 0x1BA5: 84, + 0x1BA8: 84, + 0x1BA9: 84, + 0x1BAB: 84, + 0x1BAC: 84, + 0x1BAD: 84, + 0x1BE6: 84, + 0x1BE8: 84, + 0x1BE9: 84, + 0x1BED: 84, + 0x1BEF: 84, + 0x1BF0: 84, + 0x1BF1: 84, + 0x1C2C: 84, + 0x1C2D: 84, + 0x1C2E: 84, + 0x1C2F: 84, + 0x1C30: 84, + 0x1C31: 84, + 0x1C32: 84, + 0x1C33: 84, + 0x1C36: 84, + 0x1C37: 84, + 0x1CD0: 84, + 0x1CD1: 84, + 0x1CD2: 84, + 0x1CD4: 84, + 0x1CD5: 84, + 0x1CD6: 84, + 0x1CD7: 84, + 0x1CD8: 84, + 0x1CD9: 84, + 0x1CDA: 84, + 0x1CDB: 84, + 0x1CDC: 84, + 0x1CDD: 84, + 0x1CDE: 84, + 0x1CDF: 84, + 0x1CE0: 84, + 0x1CE2: 84, + 0x1CE3: 84, + 0x1CE4: 84, + 0x1CE5: 84, + 0x1CE6: 84, + 0x1CE7: 84, + 0x1CE8: 84, + 0x1CED: 84, + 0x1CF4: 84, + 0x1CF8: 84, + 0x1CF9: 84, + 0x1DC0: 84, + 0x1DC1: 84, + 0x1DC2: 84, + 0x1DC3: 84, + 0x1DC4: 84, + 0x1DC5: 84, + 0x1DC6: 84, + 0x1DC7: 84, + 0x1DC8: 84, + 0x1DC9: 84, + 0x1DCA: 84, + 0x1DCB: 84, + 0x1DCC: 84, + 0x1DCD: 84, + 0x1DCE: 84, + 0x1DCF: 84, + 0x1DD0: 84, + 0x1DD1: 84, + 0x1DD2: 84, + 0x1DD3: 84, + 0x1DD4: 84, + 0x1DD5: 84, + 0x1DD6: 84, + 0x1DD7: 84, + 0x1DD8: 84, + 0x1DD9: 84, + 0x1DDA: 84, + 0x1DDB: 84, + 0x1DDC: 84, + 0x1DDD: 84, + 0x1DDE: 84, + 0x1DDF: 84, + 0x1DE0: 84, + 0x1DE1: 84, + 0x1DE2: 84, + 0x1DE3: 84, + 0x1DE4: 84, + 0x1DE5: 84, + 0x1DE6: 84, + 0x1DE7: 84, + 0x1DE8: 84, + 0x1DE9: 84, + 0x1DEA: 84, + 0x1DEB: 84, + 0x1DEC: 84, + 0x1DED: 84, + 0x1DEE: 84, + 0x1DEF: 84, + 0x1DF0: 84, + 0x1DF1: 84, + 0x1DF2: 84, + 0x1DF3: 84, + 0x1DF4: 84, + 0x1DF5: 84, + 0x1DF6: 84, + 0x1DF7: 84, + 0x1DF8: 84, + 0x1DF9: 84, + 0x1DFA: 84, + 0x1DFB: 84, + 0x1DFC: 84, + 0x1DFD: 84, + 0x1DFE: 84, + 0x1DFF: 84, + 0x200B: 84, + 0x200D: 67, + 0x200E: 84, + 0x200F: 84, + 0x202A: 84, + 0x202B: 84, + 0x202C: 84, + 0x202D: 84, + 0x202E: 84, + 0x2060: 84, + 0x2061: 84, + 0x2062: 84, + 0x2063: 84, + 0x2064: 84, + 0x206A: 84, + 0x206B: 84, + 0x206C: 84, + 0x206D: 84, + 0x206E: 84, + 0x206F: 84, + 0x20D0: 84, + 0x20D1: 84, + 0x20D2: 84, + 0x20D3: 84, + 0x20D4: 84, + 0x20D5: 84, + 0x20D6: 84, + 0x20D7: 84, + 0x20D8: 84, + 0x20D9: 84, + 0x20DA: 84, + 0x20DB: 84, + 0x20DC: 84, + 0x20DD: 84, + 0x20DE: 84, + 0x20DF: 84, + 0x20E0: 84, + 0x20E1: 84, + 0x20E2: 84, + 0x20E3: 84, + 0x20E4: 84, + 0x20E5: 84, + 0x20E6: 84, + 0x20E7: 84, + 0x20E8: 84, + 0x20E9: 84, + 0x20EA: 84, + 0x20EB: 84, + 0x20EC: 84, + 0x20ED: 84, + 0x20EE: 84, + 0x20EF: 84, + 0x20F0: 84, + 0x2CEF: 84, + 0x2CF0: 84, + 0x2CF1: 84, + 0x2D7F: 84, + 0x2DE0: 84, + 0x2DE1: 84, + 0x2DE2: 84, + 0x2DE3: 84, + 0x2DE4: 84, + 0x2DE5: 84, + 0x2DE6: 84, + 0x2DE7: 84, + 0x2DE8: 84, + 0x2DE9: 84, + 0x2DEA: 84, + 0x2DEB: 84, + 0x2DEC: 84, + 0x2DED: 84, + 0x2DEE: 84, + 0x2DEF: 84, + 0x2DF0: 84, + 0x2DF1: 84, + 0x2DF2: 84, + 0x2DF3: 84, + 0x2DF4: 84, + 0x2DF5: 84, + 0x2DF6: 84, + 0x2DF7: 84, + 0x2DF8: 84, + 0x2DF9: 84, + 0x2DFA: 84, + 0x2DFB: 84, + 0x2DFC: 84, + 0x2DFD: 84, + 0x2DFE: 84, + 0x2DFF: 84, + 0x302A: 84, + 0x302B: 84, + 0x302C: 84, + 0x302D: 84, + 0x3099: 84, + 0x309A: 84, + 0xA66F: 84, + 0xA670: 84, + 0xA671: 84, + 0xA672: 84, + 0xA674: 84, + 0xA675: 84, + 0xA676: 84, + 0xA677: 84, + 0xA678: 84, + 0xA679: 84, + 0xA67A: 84, + 0xA67B: 84, + 0xA67C: 84, + 0xA67D: 84, + 0xA69E: 84, + 0xA69F: 84, + 0xA6F0: 84, + 0xA6F1: 84, + 0xA802: 84, + 0xA806: 84, + 0xA80B: 84, + 0xA825: 84, + 0xA826: 84, + 0xA82C: 84, + 0xA840: 68, + 0xA841: 68, + 0xA842: 68, + 0xA843: 68, + 0xA844: 68, + 0xA845: 68, + 0xA846: 68, + 0xA847: 68, + 0xA848: 68, + 0xA849: 68, + 0xA84A: 68, + 0xA84B: 68, + 0xA84C: 68, + 0xA84D: 68, + 0xA84E: 68, + 0xA84F: 68, + 0xA850: 68, + 0xA851: 68, + 0xA852: 68, + 0xA853: 68, + 0xA854: 68, + 0xA855: 68, + 0xA856: 68, + 0xA857: 68, + 0xA858: 68, + 0xA859: 68, + 0xA85A: 68, + 0xA85B: 68, + 0xA85C: 68, + 0xA85D: 68, + 0xA85E: 68, + 0xA85F: 68, + 0xA860: 68, + 0xA861: 68, + 0xA862: 68, + 0xA863: 68, + 0xA864: 68, + 0xA865: 68, + 0xA866: 68, + 0xA867: 68, + 0xA868: 68, + 0xA869: 68, + 0xA86A: 68, + 0xA86B: 68, + 0xA86C: 68, + 0xA86D: 68, + 0xA86E: 68, + 0xA86F: 68, + 0xA870: 68, + 0xA871: 68, + 0xA872: 76, + 0xA8C4: 84, + 0xA8C5: 84, + 0xA8E0: 84, + 0xA8E1: 84, + 0xA8E2: 84, + 0xA8E3: 84, + 0xA8E4: 84, + 0xA8E5: 84, + 0xA8E6: 84, + 0xA8E7: 84, + 0xA8E8: 84, + 0xA8E9: 84, + 0xA8EA: 84, + 0xA8EB: 84, + 0xA8EC: 84, + 0xA8ED: 84, + 0xA8EE: 84, + 0xA8EF: 84, + 0xA8F0: 84, + 0xA8F1: 84, + 0xA8FF: 84, + 0xA926: 84, + 0xA927: 84, + 0xA928: 84, + 0xA929: 84, + 0xA92A: 84, + 0xA92B: 84, + 0xA92C: 84, + 0xA92D: 84, + 0xA947: 84, + 0xA948: 84, + 0xA949: 84, + 0xA94A: 84, + 0xA94B: 84, + 0xA94C: 84, + 0xA94D: 84, + 0xA94E: 84, + 0xA94F: 84, + 0xA950: 84, + 0xA951: 84, + 0xA980: 84, + 0xA981: 84, + 0xA982: 84, + 0xA9B3: 84, + 0xA9B6: 84, + 0xA9B7: 84, + 0xA9B8: 84, + 0xA9B9: 84, + 0xA9BC: 84, + 0xA9BD: 84, + 0xA9E5: 84, + 0xAA29: 84, + 0xAA2A: 84, + 0xAA2B: 84, + 0xAA2C: 84, + 0xAA2D: 84, + 0xAA2E: 84, + 0xAA31: 84, + 0xAA32: 84, + 0xAA35: 84, + 0xAA36: 84, + 0xAA43: 84, + 0xAA4C: 84, + 0xAA7C: 84, + 0xAAB0: 84, + 0xAAB2: 84, + 0xAAB3: 84, + 0xAAB4: 84, + 0xAAB7: 84, + 0xAAB8: 84, + 0xAABE: 84, + 0xAABF: 84, + 0xAAC1: 84, + 0xAAEC: 84, + 0xAAED: 84, + 0xAAF6: 84, + 0xABE5: 84, + 0xABE8: 84, + 0xABED: 84, + 0xFB1E: 84, + 0xFE00: 84, + 0xFE01: 84, + 0xFE02: 84, + 0xFE03: 84, + 0xFE04: 84, + 0xFE05: 84, + 0xFE06: 84, + 0xFE07: 84, + 0xFE08: 84, + 0xFE09: 84, + 0xFE0A: 84, + 0xFE0B: 84, + 0xFE0C: 84, + 0xFE0D: 84, + 0xFE0E: 84, + 0xFE0F: 84, + 0xFE20: 84, + 0xFE21: 84, + 0xFE22: 84, + 0xFE23: 84, + 0xFE24: 84, + 0xFE25: 84, + 0xFE26: 84, + 0xFE27: 84, + 0xFE28: 84, + 0xFE29: 84, + 0xFE2A: 84, + 0xFE2B: 84, + 0xFE2C: 84, + 0xFE2D: 84, + 0xFE2E: 84, + 0xFE2F: 84, + 0xFEFF: 84, + 0xFFF9: 84, + 0xFFFA: 84, + 0xFFFB: 84, + 0x101FD: 84, + 0x102E0: 84, + 0x10376: 84, + 0x10377: 84, + 0x10378: 84, + 0x10379: 84, + 0x1037A: 84, + 0x10A01: 84, + 0x10A02: 84, + 0x10A03: 84, + 0x10A05: 84, + 0x10A06: 84, + 0x10A0C: 84, + 0x10A0D: 84, + 0x10A0E: 84, + 0x10A0F: 84, + 0x10A38: 84, + 0x10A39: 84, + 0x10A3A: 84, + 0x10A3F: 84, + 0x10AC0: 68, + 0x10AC1: 68, + 0x10AC2: 68, + 0x10AC3: 68, + 0x10AC4: 68, + 0x10AC5: 82, + 0x10AC7: 82, + 0x10AC9: 82, + 0x10ACA: 82, + 0x10ACD: 76, + 0x10ACE: 82, + 0x10ACF: 82, + 0x10AD0: 82, + 0x10AD1: 82, + 0x10AD2: 82, + 0x10AD3: 68, + 0x10AD4: 68, + 0x10AD5: 68, + 0x10AD6: 68, + 0x10AD7: 76, + 0x10AD8: 68, + 0x10AD9: 68, + 0x10ADA: 68, + 0x10ADB: 68, + 0x10ADC: 68, + 0x10ADD: 82, + 0x10ADE: 68, + 0x10ADF: 68, + 0x10AE0: 68, + 0x10AE1: 82, + 0x10AE4: 82, + 0x10AE5: 84, + 0x10AE6: 84, + 0x10AEB: 68, + 0x10AEC: 68, + 0x10AED: 68, + 0x10AEE: 68, + 0x10AEF: 82, + 0x10B80: 68, + 0x10B81: 82, + 0x10B82: 68, + 0x10B83: 82, + 0x10B84: 82, + 0x10B85: 82, + 0x10B86: 68, + 0x10B87: 68, + 0x10B88: 68, + 0x10B89: 82, + 0x10B8A: 68, + 0x10B8B: 68, + 0x10B8C: 82, + 0x10B8D: 68, + 0x10B8E: 82, + 0x10B8F: 82, + 0x10B90: 68, + 0x10B91: 82, + 0x10BA9: 82, + 0x10BAA: 82, + 0x10BAB: 82, + 0x10BAC: 82, + 0x10BAD: 68, + 0x10BAE: 68, + 0x10D00: 76, + 0x10D01: 68, + 0x10D02: 68, + 0x10D03: 68, + 0x10D04: 68, + 0x10D05: 68, + 0x10D06: 68, + 0x10D07: 68, + 0x10D08: 68, + 0x10D09: 68, + 0x10D0A: 68, + 0x10D0B: 68, + 0x10D0C: 68, + 0x10D0D: 68, + 0x10D0E: 68, + 0x10D0F: 68, + 0x10D10: 68, + 0x10D11: 68, + 0x10D12: 68, + 0x10D13: 68, + 0x10D14: 68, + 0x10D15: 68, + 0x10D16: 68, + 0x10D17: 68, + 0x10D18: 68, + 0x10D19: 68, + 0x10D1A: 68, + 0x10D1B: 68, + 0x10D1C: 68, + 0x10D1D: 68, + 0x10D1E: 68, + 0x10D1F: 68, + 0x10D20: 68, + 0x10D21: 68, + 0x10D22: 82, + 0x10D23: 68, + 0x10D24: 84, + 0x10D25: 84, + 0x10D26: 84, + 0x10D27: 84, + 0x10D69: 84, + 0x10D6A: 84, + 0x10D6B: 84, + 0x10D6C: 84, + 0x10D6D: 84, + 0x10EAB: 84, + 0x10EAC: 84, + 0x10EC2: 82, + 0x10EC3: 68, + 0x10EC4: 68, + 0x10EFC: 84, + 0x10EFD: 84, + 0x10EFE: 84, + 0x10EFF: 84, + 0x10F30: 68, + 0x10F31: 68, + 0x10F32: 68, + 0x10F33: 82, + 0x10F34: 68, + 0x10F35: 68, + 0x10F36: 68, + 0x10F37: 68, + 0x10F38: 68, + 0x10F39: 68, + 0x10F3A: 68, + 0x10F3B: 68, + 0x10F3C: 68, + 0x10F3D: 68, + 0x10F3E: 68, + 0x10F3F: 68, + 0x10F40: 68, + 0x10F41: 68, + 0x10F42: 68, + 0x10F43: 68, + 0x10F44: 68, + 0x10F46: 84, + 0x10F47: 84, + 0x10F48: 84, + 0x10F49: 84, + 0x10F4A: 84, + 0x10F4B: 84, + 0x10F4C: 84, + 0x10F4D: 84, + 0x10F4E: 84, + 0x10F4F: 84, + 0x10F50: 84, + 0x10F51: 68, + 0x10F52: 68, + 0x10F53: 68, + 0x10F54: 82, + 0x10F70: 68, + 0x10F71: 68, + 0x10F72: 68, + 0x10F73: 68, + 0x10F74: 82, + 0x10F75: 82, + 0x10F76: 68, + 0x10F77: 68, + 0x10F78: 68, + 0x10F79: 68, + 0x10F7A: 68, + 0x10F7B: 68, + 0x10F7C: 68, + 0x10F7D: 68, + 0x10F7E: 68, + 0x10F7F: 68, + 0x10F80: 68, + 0x10F81: 68, + 0x10F82: 84, + 0x10F83: 84, + 0x10F84: 84, + 0x10F85: 84, + 0x10FB0: 68, + 0x10FB2: 68, + 0x10FB3: 68, + 0x10FB4: 82, + 0x10FB5: 82, + 0x10FB6: 82, + 0x10FB8: 68, + 0x10FB9: 82, + 0x10FBA: 82, + 0x10FBB: 68, + 0x10FBC: 68, + 0x10FBD: 82, + 0x10FBE: 68, + 0x10FBF: 68, + 0x10FC1: 68, + 0x10FC2: 82, + 0x10FC3: 82, + 0x10FC4: 68, + 0x10FC9: 82, + 0x10FCA: 68, + 0x10FCB: 76, + 0x11001: 84, + 0x11038: 84, + 0x11039: 84, + 0x1103A: 84, + 0x1103B: 84, + 0x1103C: 84, + 0x1103D: 84, + 0x1103E: 84, + 0x1103F: 84, + 0x11040: 84, + 0x11041: 84, + 0x11042: 84, + 0x11043: 84, + 0x11044: 84, + 0x11045: 84, + 0x11046: 84, + 0x11070: 84, + 0x11073: 84, + 0x11074: 84, + 0x1107F: 84, + 0x11080: 84, + 0x11081: 84, + 0x110B3: 84, + 0x110B4: 84, + 0x110B5: 84, + 0x110B6: 84, + 0x110B9: 84, + 0x110BA: 84, + 0x110C2: 84, + 0x11100: 84, + 0x11101: 84, + 0x11102: 84, + 0x11127: 84, + 0x11128: 84, + 0x11129: 84, + 0x1112A: 84, + 0x1112B: 84, + 0x1112D: 84, + 0x1112E: 84, + 0x1112F: 84, + 0x11130: 84, + 0x11131: 84, + 0x11132: 84, + 0x11133: 84, + 0x11134: 84, + 0x11173: 84, + 0x11180: 84, + 0x11181: 84, + 0x111B6: 84, + 0x111B7: 84, + 0x111B8: 84, + 0x111B9: 84, + 0x111BA: 84, + 0x111BB: 84, + 0x111BC: 84, + 0x111BD: 84, + 0x111BE: 84, + 0x111C9: 84, + 0x111CA: 84, + 0x111CB: 84, + 0x111CC: 84, + 0x111CF: 84, + 0x1122F: 84, + 0x11230: 84, + 0x11231: 84, + 0x11234: 84, + 0x11236: 84, + 0x11237: 84, + 0x1123E: 84, + 0x11241: 84, + 0x112DF: 84, + 0x112E3: 84, + 0x112E4: 84, + 0x112E5: 84, + 0x112E6: 84, + 0x112E7: 84, + 0x112E8: 84, + 0x112E9: 84, + 0x112EA: 84, + 0x11300: 84, + 0x11301: 84, + 0x1133B: 84, + 0x1133C: 84, + 0x11340: 84, + 0x11366: 84, + 0x11367: 84, + 0x11368: 84, + 0x11369: 84, + 0x1136A: 84, + 0x1136B: 84, + 0x1136C: 84, + 0x11370: 84, + 0x11371: 84, + 0x11372: 84, + 0x11373: 84, + 0x11374: 84, + 0x113BB: 84, + 0x113BC: 84, + 0x113BD: 84, + 0x113BE: 84, + 0x113BF: 84, + 0x113C0: 84, + 0x113CE: 84, + 0x113D0: 84, + 0x113D2: 84, + 0x113E1: 84, + 0x113E2: 84, + 0x11438: 84, + 0x11439: 84, + 0x1143A: 84, + 0x1143B: 84, + 0x1143C: 84, + 0x1143D: 84, + 0x1143E: 84, + 0x1143F: 84, + 0x11442: 84, + 0x11443: 84, + 0x11444: 84, + 0x11446: 84, + 0x1145E: 84, + 0x114B3: 84, + 0x114B4: 84, + 0x114B5: 84, + 0x114B6: 84, + 0x114B7: 84, + 0x114B8: 84, + 0x114BA: 84, + 0x114BF: 84, + 0x114C0: 84, + 0x114C2: 84, + 0x114C3: 84, + 0x115B2: 84, + 0x115B3: 84, + 0x115B4: 84, + 0x115B5: 84, + 0x115BC: 84, + 0x115BD: 84, + 0x115BF: 84, + 0x115C0: 84, + 0x115DC: 84, + 0x115DD: 84, + 0x11633: 84, + 0x11634: 84, + 0x11635: 84, + 0x11636: 84, + 0x11637: 84, + 0x11638: 84, + 0x11639: 84, + 0x1163A: 84, + 0x1163D: 84, + 0x1163F: 84, + 0x11640: 84, + 0x116AB: 84, + 0x116AD: 84, + 0x116B0: 84, + 0x116B1: 84, + 0x116B2: 84, + 0x116B3: 84, + 0x116B4: 84, + 0x116B5: 84, + 0x116B7: 84, + 0x1171D: 84, + 0x1171F: 84, + 0x11722: 84, + 0x11723: 84, + 0x11724: 84, + 0x11725: 84, + 0x11727: 84, + 0x11728: 84, + 0x11729: 84, + 0x1172A: 84, + 0x1172B: 84, + 0x1182F: 84, + 0x11830: 84, + 0x11831: 84, + 0x11832: 84, + 0x11833: 84, + 0x11834: 84, + 0x11835: 84, + 0x11836: 84, + 0x11837: 84, + 0x11839: 84, + 0x1183A: 84, + 0x1193B: 84, + 0x1193C: 84, + 0x1193E: 84, + 0x11943: 84, + 0x119D4: 84, + 0x119D5: 84, + 0x119D6: 84, + 0x119D7: 84, + 0x119DA: 84, + 0x119DB: 84, + 0x119E0: 84, + 0x11A01: 84, + 0x11A02: 84, + 0x11A03: 84, + 0x11A04: 84, + 0x11A05: 84, + 0x11A06: 84, + 0x11A07: 84, + 0x11A08: 84, + 0x11A09: 84, + 0x11A0A: 84, + 0x11A33: 84, + 0x11A34: 84, + 0x11A35: 84, + 0x11A36: 84, + 0x11A37: 84, + 0x11A38: 84, + 0x11A3B: 84, + 0x11A3C: 84, + 0x11A3D: 84, + 0x11A3E: 84, + 0x11A47: 84, + 0x11A51: 84, + 0x11A52: 84, + 0x11A53: 84, + 0x11A54: 84, + 0x11A55: 84, + 0x11A56: 84, + 0x11A59: 84, + 0x11A5A: 84, + 0x11A5B: 84, + 0x11A8A: 84, + 0x11A8B: 84, + 0x11A8C: 84, + 0x11A8D: 84, + 0x11A8E: 84, + 0x11A8F: 84, + 0x11A90: 84, + 0x11A91: 84, + 0x11A92: 84, + 0x11A93: 84, + 0x11A94: 84, + 0x11A95: 84, + 0x11A96: 84, + 0x11A98: 84, + 0x11A99: 84, + 0x11C30: 84, + 0x11C31: 84, + 0x11C32: 84, + 0x11C33: 84, + 0x11C34: 84, + 0x11C35: 84, + 0x11C36: 84, + 0x11C38: 84, + 0x11C39: 84, + 0x11C3A: 84, + 0x11C3B: 84, + 0x11C3C: 84, + 0x11C3D: 84, + 0x11C3F: 84, + 0x11C92: 84, + 0x11C93: 84, + 0x11C94: 84, + 0x11C95: 84, + 0x11C96: 84, + 0x11C97: 84, + 0x11C98: 84, + 0x11C99: 84, + 0x11C9A: 84, + 0x11C9B: 84, + 0x11C9C: 84, + 0x11C9D: 84, + 0x11C9E: 84, + 0x11C9F: 84, + 0x11CA0: 84, + 0x11CA1: 84, + 0x11CA2: 84, + 0x11CA3: 84, + 0x11CA4: 84, + 0x11CA5: 84, + 0x11CA6: 84, + 0x11CA7: 84, + 0x11CAA: 84, + 0x11CAB: 84, + 0x11CAC: 84, + 0x11CAD: 84, + 0x11CAE: 84, + 0x11CAF: 84, + 0x11CB0: 84, + 0x11CB2: 84, + 0x11CB3: 84, + 0x11CB5: 84, + 0x11CB6: 84, + 0x11D31: 84, + 0x11D32: 84, + 0x11D33: 84, + 0x11D34: 84, + 0x11D35: 84, + 0x11D36: 84, + 0x11D3A: 84, + 0x11D3C: 84, + 0x11D3D: 84, + 0x11D3F: 84, + 0x11D40: 84, + 0x11D41: 84, + 0x11D42: 84, + 0x11D43: 84, + 0x11D44: 84, + 0x11D45: 84, + 0x11D47: 84, + 0x11D90: 84, + 0x11D91: 84, + 0x11D95: 84, + 0x11D97: 84, + 0x11EF3: 84, + 0x11EF4: 84, + 0x11F00: 84, + 0x11F01: 84, + 0x11F36: 84, + 0x11F37: 84, + 0x11F38: 84, + 0x11F39: 84, + 0x11F3A: 84, + 0x11F40: 84, + 0x11F42: 84, + 0x11F5A: 84, + 0x13430: 84, + 0x13431: 84, + 0x13432: 84, + 0x13433: 84, + 0x13434: 84, + 0x13435: 84, + 0x13436: 84, + 0x13437: 84, + 0x13438: 84, + 0x13439: 84, + 0x1343A: 84, + 0x1343B: 84, + 0x1343C: 84, + 0x1343D: 84, + 0x1343E: 84, + 0x1343F: 84, + 0x13440: 84, + 0x13447: 84, + 0x13448: 84, + 0x13449: 84, + 0x1344A: 84, + 0x1344B: 84, + 0x1344C: 84, + 0x1344D: 84, + 0x1344E: 84, + 0x1344F: 84, + 0x13450: 84, + 0x13451: 84, + 0x13452: 84, + 0x13453: 84, + 0x13454: 84, + 0x13455: 84, + 0x1611E: 84, + 0x1611F: 84, + 0x16120: 84, + 0x16121: 84, + 0x16122: 84, + 0x16123: 84, + 0x16124: 84, + 0x16125: 84, + 0x16126: 84, + 0x16127: 84, + 0x16128: 84, + 0x16129: 84, + 0x1612D: 84, + 0x1612E: 84, + 0x1612F: 84, + 0x16AF0: 84, + 0x16AF1: 84, + 0x16AF2: 84, + 0x16AF3: 84, + 0x16AF4: 84, + 0x16B30: 84, + 0x16B31: 84, + 0x16B32: 84, + 0x16B33: 84, + 0x16B34: 84, + 0x16B35: 84, + 0x16B36: 84, + 0x16F4F: 84, + 0x16F8F: 84, + 0x16F90: 84, + 0x16F91: 84, + 0x16F92: 84, + 0x16FE4: 84, + 0x1BC9D: 84, + 0x1BC9E: 84, + 0x1BCA0: 84, + 0x1BCA1: 84, + 0x1BCA2: 84, + 0x1BCA3: 84, + 0x1CF00: 84, + 0x1CF01: 84, + 0x1CF02: 84, + 0x1CF03: 84, + 0x1CF04: 84, + 0x1CF05: 84, + 0x1CF06: 84, + 0x1CF07: 84, + 0x1CF08: 84, + 0x1CF09: 84, + 0x1CF0A: 84, + 0x1CF0B: 84, + 0x1CF0C: 84, + 0x1CF0D: 84, + 0x1CF0E: 84, + 0x1CF0F: 84, + 0x1CF10: 84, + 0x1CF11: 84, + 0x1CF12: 84, + 0x1CF13: 84, + 0x1CF14: 84, + 0x1CF15: 84, + 0x1CF16: 84, + 0x1CF17: 84, + 0x1CF18: 84, + 0x1CF19: 84, + 0x1CF1A: 84, + 0x1CF1B: 84, + 0x1CF1C: 84, + 0x1CF1D: 84, + 0x1CF1E: 84, + 0x1CF1F: 84, + 0x1CF20: 84, + 0x1CF21: 84, + 0x1CF22: 84, + 0x1CF23: 84, + 0x1CF24: 84, + 0x1CF25: 84, + 0x1CF26: 84, + 0x1CF27: 84, + 0x1CF28: 84, + 0x1CF29: 84, + 0x1CF2A: 84, + 0x1CF2B: 84, + 0x1CF2C: 84, + 0x1CF2D: 84, + 0x1CF30: 84, + 0x1CF31: 84, + 0x1CF32: 84, + 0x1CF33: 84, + 0x1CF34: 84, + 0x1CF35: 84, + 0x1CF36: 84, + 0x1CF37: 84, + 0x1CF38: 84, + 0x1CF39: 84, + 0x1CF3A: 84, + 0x1CF3B: 84, + 0x1CF3C: 84, + 0x1CF3D: 84, + 0x1CF3E: 84, + 0x1CF3F: 84, + 0x1CF40: 84, + 0x1CF41: 84, + 0x1CF42: 84, + 0x1CF43: 84, + 0x1CF44: 84, + 0x1CF45: 84, + 0x1CF46: 84, + 0x1D167: 84, + 0x1D168: 84, + 0x1D169: 84, + 0x1D173: 84, + 0x1D174: 84, + 0x1D175: 84, + 0x1D176: 84, + 0x1D177: 84, + 0x1D178: 84, + 0x1D179: 84, + 0x1D17A: 84, + 0x1D17B: 84, + 0x1D17C: 84, + 0x1D17D: 84, + 0x1D17E: 84, + 0x1D17F: 84, + 0x1D180: 84, + 0x1D181: 84, + 0x1D182: 84, + 0x1D185: 84, + 0x1D186: 84, + 0x1D187: 84, + 0x1D188: 84, + 0x1D189: 84, + 0x1D18A: 84, + 0x1D18B: 84, + 0x1D1AA: 84, + 0x1D1AB: 84, + 0x1D1AC: 84, + 0x1D1AD: 84, + 0x1D242: 84, + 0x1D243: 84, + 0x1D244: 84, + 0x1DA00: 84, + 0x1DA01: 84, + 0x1DA02: 84, + 0x1DA03: 84, + 0x1DA04: 84, + 0x1DA05: 84, + 0x1DA06: 84, + 0x1DA07: 84, + 0x1DA08: 84, + 0x1DA09: 84, + 0x1DA0A: 84, + 0x1DA0B: 84, + 0x1DA0C: 84, + 0x1DA0D: 84, + 0x1DA0E: 84, + 0x1DA0F: 84, + 0x1DA10: 84, + 0x1DA11: 84, + 0x1DA12: 84, + 0x1DA13: 84, + 0x1DA14: 84, + 0x1DA15: 84, + 0x1DA16: 84, + 0x1DA17: 84, + 0x1DA18: 84, + 0x1DA19: 84, + 0x1DA1A: 84, + 0x1DA1B: 84, + 0x1DA1C: 84, + 0x1DA1D: 84, + 0x1DA1E: 84, + 0x1DA1F: 84, + 0x1DA20: 84, + 0x1DA21: 84, + 0x1DA22: 84, + 0x1DA23: 84, + 0x1DA24: 84, + 0x1DA25: 84, + 0x1DA26: 84, + 0x1DA27: 84, + 0x1DA28: 84, + 0x1DA29: 84, + 0x1DA2A: 84, + 0x1DA2B: 84, + 0x1DA2C: 84, + 0x1DA2D: 84, + 0x1DA2E: 84, + 0x1DA2F: 84, + 0x1DA30: 84, + 0x1DA31: 84, + 0x1DA32: 84, + 0x1DA33: 84, + 0x1DA34: 84, + 0x1DA35: 84, + 0x1DA36: 84, + 0x1DA3B: 84, + 0x1DA3C: 84, + 0x1DA3D: 84, + 0x1DA3E: 84, + 0x1DA3F: 84, + 0x1DA40: 84, + 0x1DA41: 84, + 0x1DA42: 84, + 0x1DA43: 84, + 0x1DA44: 84, + 0x1DA45: 84, + 0x1DA46: 84, + 0x1DA47: 84, + 0x1DA48: 84, + 0x1DA49: 84, + 0x1DA4A: 84, + 0x1DA4B: 84, + 0x1DA4C: 84, + 0x1DA4D: 84, + 0x1DA4E: 84, + 0x1DA4F: 84, + 0x1DA50: 84, + 0x1DA51: 84, + 0x1DA52: 84, + 0x1DA53: 84, + 0x1DA54: 84, + 0x1DA55: 84, + 0x1DA56: 84, + 0x1DA57: 84, + 0x1DA58: 84, + 0x1DA59: 84, + 0x1DA5A: 84, + 0x1DA5B: 84, + 0x1DA5C: 84, + 0x1DA5D: 84, + 0x1DA5E: 84, + 0x1DA5F: 84, + 0x1DA60: 84, + 0x1DA61: 84, + 0x1DA62: 84, + 0x1DA63: 84, + 0x1DA64: 84, + 0x1DA65: 84, + 0x1DA66: 84, + 0x1DA67: 84, + 0x1DA68: 84, + 0x1DA69: 84, + 0x1DA6A: 84, + 0x1DA6B: 84, + 0x1DA6C: 84, + 0x1DA75: 84, + 0x1DA84: 84, + 0x1DA9B: 84, + 0x1DA9C: 84, + 0x1DA9D: 84, + 0x1DA9E: 84, + 0x1DA9F: 84, + 0x1DAA1: 84, + 0x1DAA2: 84, + 0x1DAA3: 84, + 0x1DAA4: 84, + 0x1DAA5: 84, + 0x1DAA6: 84, + 0x1DAA7: 84, + 0x1DAA8: 84, + 0x1DAA9: 84, + 0x1DAAA: 84, + 0x1DAAB: 84, + 0x1DAAC: 84, + 0x1DAAD: 84, + 0x1DAAE: 84, + 0x1DAAF: 84, + 0x1E000: 84, + 0x1E001: 84, + 0x1E002: 84, + 0x1E003: 84, + 0x1E004: 84, + 0x1E005: 84, + 0x1E006: 84, + 0x1E008: 84, + 0x1E009: 84, + 0x1E00A: 84, + 0x1E00B: 84, + 0x1E00C: 84, + 0x1E00D: 84, + 0x1E00E: 84, + 0x1E00F: 84, + 0x1E010: 84, + 0x1E011: 84, + 0x1E012: 84, + 0x1E013: 84, + 0x1E014: 84, + 0x1E015: 84, + 0x1E016: 84, + 0x1E017: 84, + 0x1E018: 84, + 0x1E01B: 84, + 0x1E01C: 84, + 0x1E01D: 84, + 0x1E01E: 84, + 0x1E01F: 84, + 0x1E020: 84, + 0x1E021: 84, + 0x1E023: 84, + 0x1E024: 84, + 0x1E026: 84, + 0x1E027: 84, + 0x1E028: 84, + 0x1E029: 84, + 0x1E02A: 84, + 0x1E08F: 84, + 0x1E130: 84, + 0x1E131: 84, + 0x1E132: 84, + 0x1E133: 84, + 0x1E134: 84, + 0x1E135: 84, + 0x1E136: 84, + 0x1E2AE: 84, + 0x1E2EC: 84, + 0x1E2ED: 84, + 0x1E2EE: 84, + 0x1E2EF: 84, + 0x1E4EC: 84, + 0x1E4ED: 84, + 0x1E4EE: 84, + 0x1E4EF: 84, + 0x1E5EE: 84, + 0x1E5EF: 84, + 0x1E8D0: 84, + 0x1E8D1: 84, + 0x1E8D2: 84, + 0x1E8D3: 84, + 0x1E8D4: 84, + 0x1E8D5: 84, + 0x1E8D6: 84, + 0x1E900: 68, + 0x1E901: 68, + 0x1E902: 68, + 0x1E903: 68, + 0x1E904: 68, + 0x1E905: 68, + 0x1E906: 68, + 0x1E907: 68, + 0x1E908: 68, + 0x1E909: 68, + 0x1E90A: 68, + 0x1E90B: 68, + 0x1E90C: 68, + 0x1E90D: 68, + 0x1E90E: 68, + 0x1E90F: 68, + 0x1E910: 68, + 0x1E911: 68, + 0x1E912: 68, + 0x1E913: 68, + 0x1E914: 68, + 0x1E915: 68, + 0x1E916: 68, + 0x1E917: 68, + 0x1E918: 68, + 0x1E919: 68, + 0x1E91A: 68, + 0x1E91B: 68, + 0x1E91C: 68, + 0x1E91D: 68, + 0x1E91E: 68, + 0x1E91F: 68, + 0x1E920: 68, + 0x1E921: 68, + 0x1E922: 68, + 0x1E923: 68, + 0x1E924: 68, + 0x1E925: 68, + 0x1E926: 68, + 0x1E927: 68, + 0x1E928: 68, + 0x1E929: 68, + 0x1E92A: 68, + 0x1E92B: 68, + 0x1E92C: 68, + 0x1E92D: 68, + 0x1E92E: 68, + 0x1E92F: 68, + 0x1E930: 68, + 0x1E931: 68, + 0x1E932: 68, + 0x1E933: 68, + 0x1E934: 68, + 0x1E935: 68, + 0x1E936: 68, + 0x1E937: 68, + 0x1E938: 68, + 0x1E939: 68, + 0x1E93A: 68, + 0x1E93B: 68, + 0x1E93C: 68, + 0x1E93D: 68, + 0x1E93E: 68, + 0x1E93F: 68, + 0x1E940: 68, + 0x1E941: 68, + 0x1E942: 68, + 0x1E943: 68, + 0x1E944: 84, + 0x1E945: 84, + 0x1E946: 84, + 0x1E947: 84, + 0x1E948: 84, + 0x1E949: 84, + 0x1E94A: 84, + 0x1E94B: 84, + 0xE0001: 84, + 0xE0020: 84, + 0xE0021: 84, + 0xE0022: 84, + 0xE0023: 84, + 0xE0024: 84, + 0xE0025: 84, + 0xE0026: 84, + 0xE0027: 84, + 0xE0028: 84, + 0xE0029: 84, + 0xE002A: 84, + 0xE002B: 84, + 0xE002C: 84, + 0xE002D: 84, + 0xE002E: 84, + 0xE002F: 84, + 0xE0030: 84, + 0xE0031: 84, + 0xE0032: 84, + 0xE0033: 84, + 0xE0034: 84, + 0xE0035: 84, + 0xE0036: 84, + 0xE0037: 84, + 0xE0038: 84, + 0xE0039: 84, + 0xE003A: 84, + 0xE003B: 84, + 0xE003C: 84, + 0xE003D: 84, + 0xE003E: 84, + 0xE003F: 84, + 0xE0040: 84, + 0xE0041: 84, + 0xE0042: 84, + 0xE0043: 84, + 0xE0044: 84, + 0xE0045: 84, + 0xE0046: 84, + 0xE0047: 84, + 0xE0048: 84, + 0xE0049: 84, + 0xE004A: 84, + 0xE004B: 84, + 0xE004C: 84, + 0xE004D: 84, + 0xE004E: 84, + 0xE004F: 84, + 0xE0050: 84, + 0xE0051: 84, + 0xE0052: 84, + 0xE0053: 84, + 0xE0054: 84, + 0xE0055: 84, + 0xE0056: 84, + 0xE0057: 84, + 0xE0058: 84, + 0xE0059: 84, + 0xE005A: 84, + 0xE005B: 84, + 0xE005C: 84, + 0xE005D: 84, + 0xE005E: 84, + 0xE005F: 84, + 0xE0060: 84, + 0xE0061: 84, + 0xE0062: 84, + 0xE0063: 84, + 0xE0064: 84, + 0xE0065: 84, + 0xE0066: 84, + 0xE0067: 84, + 0xE0068: 84, + 0xE0069: 84, + 0xE006A: 84, + 0xE006B: 84, + 0xE006C: 84, + 0xE006D: 84, + 0xE006E: 84, + 0xE006F: 84, + 0xE0070: 84, + 0xE0071: 84, + 0xE0072: 84, + 0xE0073: 84, + 0xE0074: 84, + 0xE0075: 84, + 0xE0076: 84, + 0xE0077: 84, + 0xE0078: 84, + 0xE0079: 84, + 0xE007A: 84, + 0xE007B: 84, + 0xE007C: 84, + 0xE007D: 84, + 0xE007E: 84, + 0xE007F: 84, + 0xE0100: 84, + 0xE0101: 84, + 0xE0102: 84, + 0xE0103: 84, + 0xE0104: 84, + 0xE0105: 84, + 0xE0106: 84, + 0xE0107: 84, + 0xE0108: 84, + 0xE0109: 84, + 0xE010A: 84, + 0xE010B: 84, + 0xE010C: 84, + 0xE010D: 84, + 0xE010E: 84, + 0xE010F: 84, + 0xE0110: 84, + 0xE0111: 84, + 0xE0112: 84, + 0xE0113: 84, + 0xE0114: 84, + 0xE0115: 84, + 0xE0116: 84, + 0xE0117: 84, + 0xE0118: 84, + 0xE0119: 84, + 0xE011A: 84, + 0xE011B: 84, + 0xE011C: 84, + 0xE011D: 84, + 0xE011E: 84, + 0xE011F: 84, + 0xE0120: 84, + 0xE0121: 84, + 0xE0122: 84, + 0xE0123: 84, + 0xE0124: 84, + 0xE0125: 84, + 0xE0126: 84, + 0xE0127: 84, + 0xE0128: 84, + 0xE0129: 84, + 0xE012A: 84, + 0xE012B: 84, + 0xE012C: 84, + 0xE012D: 84, + 0xE012E: 84, + 0xE012F: 84, + 0xE0130: 84, + 0xE0131: 84, + 0xE0132: 84, + 0xE0133: 84, + 0xE0134: 84, + 0xE0135: 84, + 0xE0136: 84, + 0xE0137: 84, + 0xE0138: 84, + 0xE0139: 84, + 0xE013A: 84, + 0xE013B: 84, + 0xE013C: 84, + 0xE013D: 84, + 0xE013E: 84, + 0xE013F: 84, + 0xE0140: 84, + 0xE0141: 84, + 0xE0142: 84, + 0xE0143: 84, + 0xE0144: 84, + 0xE0145: 84, + 0xE0146: 84, + 0xE0147: 84, + 0xE0148: 84, + 0xE0149: 84, + 0xE014A: 84, + 0xE014B: 84, + 0xE014C: 84, + 0xE014D: 84, + 0xE014E: 84, + 0xE014F: 84, + 0xE0150: 84, + 0xE0151: 84, + 0xE0152: 84, + 0xE0153: 84, + 0xE0154: 84, + 0xE0155: 84, + 0xE0156: 84, + 0xE0157: 84, + 0xE0158: 84, + 0xE0159: 84, + 0xE015A: 84, + 0xE015B: 84, + 0xE015C: 84, + 0xE015D: 84, + 0xE015E: 84, + 0xE015F: 84, + 0xE0160: 84, + 0xE0161: 84, + 0xE0162: 84, + 0xE0163: 84, + 0xE0164: 84, + 0xE0165: 84, + 0xE0166: 84, + 0xE0167: 84, + 0xE0168: 84, + 0xE0169: 84, + 0xE016A: 84, + 0xE016B: 84, + 0xE016C: 84, + 0xE016D: 84, + 0xE016E: 84, + 0xE016F: 84, + 0xE0170: 84, + 0xE0171: 84, + 0xE0172: 84, + 0xE0173: 84, + 0xE0174: 84, + 0xE0175: 84, + 0xE0176: 84, + 0xE0177: 84, + 0xE0178: 84, + 0xE0179: 84, + 0xE017A: 84, + 0xE017B: 84, + 0xE017C: 84, + 0xE017D: 84, + 0xE017E: 84, + 0xE017F: 84, + 0xE0180: 84, + 0xE0181: 84, + 0xE0182: 84, + 0xE0183: 84, + 0xE0184: 84, + 0xE0185: 84, + 0xE0186: 84, + 0xE0187: 84, + 0xE0188: 84, + 0xE0189: 84, + 0xE018A: 84, + 0xE018B: 84, + 0xE018C: 84, + 0xE018D: 84, + 0xE018E: 84, + 0xE018F: 84, + 0xE0190: 84, + 0xE0191: 84, + 0xE0192: 84, + 0xE0193: 84, + 0xE0194: 84, + 0xE0195: 84, + 0xE0196: 84, + 0xE0197: 84, + 0xE0198: 84, + 0xE0199: 84, + 0xE019A: 84, + 0xE019B: 84, + 0xE019C: 84, + 0xE019D: 84, + 0xE019E: 84, + 0xE019F: 84, + 0xE01A0: 84, + 0xE01A1: 84, + 0xE01A2: 84, + 0xE01A3: 84, + 0xE01A4: 84, + 0xE01A5: 84, + 0xE01A6: 84, + 0xE01A7: 84, + 0xE01A8: 84, + 0xE01A9: 84, + 0xE01AA: 84, + 0xE01AB: 84, + 0xE01AC: 84, + 0xE01AD: 84, + 0xE01AE: 84, + 0xE01AF: 84, + 0xE01B0: 84, + 0xE01B1: 84, + 0xE01B2: 84, + 0xE01B3: 84, + 0xE01B4: 84, + 0xE01B5: 84, + 0xE01B6: 84, + 0xE01B7: 84, + 0xE01B8: 84, + 0xE01B9: 84, + 0xE01BA: 84, + 0xE01BB: 84, + 0xE01BC: 84, + 0xE01BD: 84, + 0xE01BE: 84, + 0xE01BF: 84, + 0xE01C0: 84, + 0xE01C1: 84, + 0xE01C2: 84, + 0xE01C3: 84, + 0xE01C4: 84, + 0xE01C5: 84, + 0xE01C6: 84, + 0xE01C7: 84, + 0xE01C8: 84, + 0xE01C9: 84, + 0xE01CA: 84, + 0xE01CB: 84, + 0xE01CC: 84, + 0xE01CD: 84, + 0xE01CE: 84, + 0xE01CF: 84, + 0xE01D0: 84, + 0xE01D1: 84, + 0xE01D2: 84, + 0xE01D3: 84, + 0xE01D4: 84, + 0xE01D5: 84, + 0xE01D6: 84, + 0xE01D7: 84, + 0xE01D8: 84, + 0xE01D9: 84, + 0xE01DA: 84, + 0xE01DB: 84, + 0xE01DC: 84, + 0xE01DD: 84, + 0xE01DE: 84, + 0xE01DF: 84, + 0xE01E0: 84, + 0xE01E1: 84, + 0xE01E2: 84, + 0xE01E3: 84, + 0xE01E4: 84, + 0xE01E5: 84, + 0xE01E6: 84, + 0xE01E7: 84, + 0xE01E8: 84, + 0xE01E9: 84, + 0xE01EA: 84, + 0xE01EB: 84, + 0xE01EC: 84, + 0xE01ED: 84, + 0xE01EE: 84, + 0xE01EF: 84, +} +codepoint_classes = { + "PVALID": ( + 0x2D0000002E, + 0x300000003A, + 0x610000007B, + 0xDF000000F7, + 0xF800000100, + 0x10100000102, + 0x10300000104, + 0x10500000106, + 0x10700000108, + 0x1090000010A, + 0x10B0000010C, + 0x10D0000010E, + 0x10F00000110, + 0x11100000112, + 0x11300000114, + 0x11500000116, + 0x11700000118, + 0x1190000011A, + 0x11B0000011C, + 0x11D0000011E, + 0x11F00000120, + 0x12100000122, + 0x12300000124, + 0x12500000126, + 0x12700000128, + 0x1290000012A, + 0x12B0000012C, + 0x12D0000012E, + 0x12F00000130, + 0x13100000132, + 0x13500000136, + 0x13700000139, + 0x13A0000013B, + 0x13C0000013D, + 0x13E0000013F, + 0x14200000143, + 0x14400000145, + 0x14600000147, + 0x14800000149, + 0x14B0000014C, + 0x14D0000014E, + 0x14F00000150, + 0x15100000152, + 0x15300000154, + 0x15500000156, + 0x15700000158, + 0x1590000015A, + 0x15B0000015C, + 0x15D0000015E, + 0x15F00000160, + 0x16100000162, + 0x16300000164, + 0x16500000166, + 0x16700000168, + 0x1690000016A, + 0x16B0000016C, + 0x16D0000016E, + 0x16F00000170, + 0x17100000172, + 0x17300000174, + 0x17500000176, + 0x17700000178, + 0x17A0000017B, + 0x17C0000017D, + 0x17E0000017F, + 0x18000000181, + 0x18300000184, + 0x18500000186, + 0x18800000189, + 0x18C0000018E, + 0x19200000193, + 0x19500000196, + 0x1990000019C, + 0x19E0000019F, + 0x1A1000001A2, + 0x1A3000001A4, + 0x1A5000001A6, + 0x1A8000001A9, + 0x1AA000001AC, + 0x1AD000001AE, + 0x1B0000001B1, + 0x1B4000001B5, + 0x1B6000001B7, + 0x1B9000001BC, + 0x1BD000001C4, + 0x1CE000001CF, + 0x1D0000001D1, + 0x1D2000001D3, + 0x1D4000001D5, + 0x1D6000001D7, + 0x1D8000001D9, + 0x1DA000001DB, + 0x1DC000001DE, + 0x1DF000001E0, + 0x1E1000001E2, + 0x1E3000001E4, + 0x1E5000001E6, + 0x1E7000001E8, + 0x1E9000001EA, + 0x1EB000001EC, + 0x1ED000001EE, + 0x1EF000001F1, + 0x1F5000001F6, + 0x1F9000001FA, + 0x1FB000001FC, + 0x1FD000001FE, + 0x1FF00000200, + 0x20100000202, + 0x20300000204, + 0x20500000206, + 0x20700000208, + 0x2090000020A, + 0x20B0000020C, + 0x20D0000020E, + 0x20F00000210, + 0x21100000212, + 0x21300000214, + 0x21500000216, + 0x21700000218, + 0x2190000021A, + 0x21B0000021C, + 0x21D0000021E, + 0x21F00000220, + 0x22100000222, + 0x22300000224, + 0x22500000226, + 0x22700000228, + 0x2290000022A, + 0x22B0000022C, + 0x22D0000022E, + 0x22F00000230, + 0x23100000232, + 0x2330000023A, + 0x23C0000023D, + 0x23F00000241, + 0x24200000243, + 0x24700000248, + 0x2490000024A, + 0x24B0000024C, + 0x24D0000024E, + 0x24F000002B0, + 0x2B9000002C2, + 0x2C6000002D2, + 0x2EC000002ED, + 0x2EE000002EF, + 0x30000000340, + 0x34200000343, + 0x3460000034F, + 0x35000000370, + 0x37100000372, + 0x37300000374, + 0x37700000378, + 0x37B0000037E, + 0x39000000391, + 0x3AC000003CF, + 0x3D7000003D8, + 0x3D9000003DA, + 0x3DB000003DC, + 0x3DD000003DE, + 0x3DF000003E0, + 0x3E1000003E2, + 0x3E3000003E4, + 0x3E5000003E6, + 0x3E7000003E8, + 0x3E9000003EA, + 0x3EB000003EC, + 0x3ED000003EE, + 0x3EF000003F0, + 0x3F3000003F4, + 0x3F8000003F9, + 0x3FB000003FD, + 0x43000000460, + 0x46100000462, + 0x46300000464, + 0x46500000466, + 0x46700000468, + 0x4690000046A, + 0x46B0000046C, + 0x46D0000046E, + 0x46F00000470, + 0x47100000472, + 0x47300000474, + 0x47500000476, + 0x47700000478, + 0x4790000047A, + 0x47B0000047C, + 0x47D0000047E, + 0x47F00000480, + 0x48100000482, + 0x48300000488, + 0x48B0000048C, + 0x48D0000048E, + 0x48F00000490, + 0x49100000492, + 0x49300000494, + 0x49500000496, + 0x49700000498, + 0x4990000049A, + 0x49B0000049C, + 0x49D0000049E, + 0x49F000004A0, + 0x4A1000004A2, + 0x4A3000004A4, + 0x4A5000004A6, + 0x4A7000004A8, + 0x4A9000004AA, + 0x4AB000004AC, + 0x4AD000004AE, + 0x4AF000004B0, + 0x4B1000004B2, + 0x4B3000004B4, + 0x4B5000004B6, + 0x4B7000004B8, + 0x4B9000004BA, + 0x4BB000004BC, + 0x4BD000004BE, + 0x4BF000004C0, + 0x4C2000004C3, + 0x4C4000004C5, + 0x4C6000004C7, + 0x4C8000004C9, + 0x4CA000004CB, + 0x4CC000004CD, + 0x4CE000004D0, + 0x4D1000004D2, + 0x4D3000004D4, + 0x4D5000004D6, + 0x4D7000004D8, + 0x4D9000004DA, + 0x4DB000004DC, + 0x4DD000004DE, + 0x4DF000004E0, + 0x4E1000004E2, + 0x4E3000004E4, + 0x4E5000004E6, + 0x4E7000004E8, + 0x4E9000004EA, + 0x4EB000004EC, + 0x4ED000004EE, + 0x4EF000004F0, + 0x4F1000004F2, + 0x4F3000004F4, + 0x4F5000004F6, + 0x4F7000004F8, + 0x4F9000004FA, + 0x4FB000004FC, + 0x4FD000004FE, + 0x4FF00000500, + 0x50100000502, + 0x50300000504, + 0x50500000506, + 0x50700000508, + 0x5090000050A, + 0x50B0000050C, + 0x50D0000050E, + 0x50F00000510, + 0x51100000512, + 0x51300000514, + 0x51500000516, + 0x51700000518, + 0x5190000051A, + 0x51B0000051C, + 0x51D0000051E, + 0x51F00000520, + 0x52100000522, + 0x52300000524, + 0x52500000526, + 0x52700000528, + 0x5290000052A, + 0x52B0000052C, + 0x52D0000052E, + 0x52F00000530, + 0x5590000055A, + 0x56000000587, + 0x58800000589, + 0x591000005BE, + 0x5BF000005C0, + 0x5C1000005C3, + 0x5C4000005C6, + 0x5C7000005C8, + 0x5D0000005EB, + 0x5EF000005F3, + 0x6100000061B, + 0x62000000640, + 0x64100000660, + 0x66E00000675, + 0x679000006D4, + 0x6D5000006DD, + 0x6DF000006E9, + 0x6EA000006F0, + 0x6FA00000700, + 0x7100000074B, + 0x74D000007B2, + 0x7C0000007F6, + 0x7FD000007FE, + 0x8000000082E, + 0x8400000085C, + 0x8600000086B, + 0x87000000888, + 0x8890000088F, + 0x897000008E2, + 0x8E300000958, + 0x96000000964, + 0x96600000970, + 0x97100000984, + 0x9850000098D, + 0x98F00000991, + 0x993000009A9, + 0x9AA000009B1, + 0x9B2000009B3, + 0x9B6000009BA, + 0x9BC000009C5, + 0x9C7000009C9, + 0x9CB000009CF, + 0x9D7000009D8, + 0x9E0000009E4, + 0x9E6000009F2, + 0x9FC000009FD, + 0x9FE000009FF, + 0xA0100000A04, + 0xA0500000A0B, + 0xA0F00000A11, + 0xA1300000A29, + 0xA2A00000A31, + 0xA3200000A33, + 0xA3500000A36, + 0xA3800000A3A, + 0xA3C00000A3D, + 0xA3E00000A43, + 0xA4700000A49, + 0xA4B00000A4E, + 0xA5100000A52, + 0xA5C00000A5D, + 0xA6600000A76, + 0xA8100000A84, + 0xA8500000A8E, + 0xA8F00000A92, + 0xA9300000AA9, + 0xAAA00000AB1, + 0xAB200000AB4, + 0xAB500000ABA, + 0xABC00000AC6, + 0xAC700000ACA, + 0xACB00000ACE, + 0xAD000000AD1, + 0xAE000000AE4, + 0xAE600000AF0, + 0xAF900000B00, + 0xB0100000B04, + 0xB0500000B0D, + 0xB0F00000B11, + 0xB1300000B29, + 0xB2A00000B31, + 0xB3200000B34, + 0xB3500000B3A, + 0xB3C00000B45, + 0xB4700000B49, + 0xB4B00000B4E, + 0xB5500000B58, + 0xB5F00000B64, + 0xB6600000B70, + 0xB7100000B72, + 0xB8200000B84, + 0xB8500000B8B, + 0xB8E00000B91, + 0xB9200000B96, + 0xB9900000B9B, + 0xB9C00000B9D, + 0xB9E00000BA0, + 0xBA300000BA5, + 0xBA800000BAB, + 0xBAE00000BBA, + 0xBBE00000BC3, + 0xBC600000BC9, + 0xBCA00000BCE, + 0xBD000000BD1, + 0xBD700000BD8, + 0xBE600000BF0, + 0xC0000000C0D, + 0xC0E00000C11, + 0xC1200000C29, + 0xC2A00000C3A, + 0xC3C00000C45, + 0xC4600000C49, + 0xC4A00000C4E, + 0xC5500000C57, + 0xC5800000C5B, + 0xC5D00000C5E, + 0xC6000000C64, + 0xC6600000C70, + 0xC8000000C84, + 0xC8500000C8D, + 0xC8E00000C91, + 0xC9200000CA9, + 0xCAA00000CB4, + 0xCB500000CBA, + 0xCBC00000CC5, + 0xCC600000CC9, + 0xCCA00000CCE, + 0xCD500000CD7, + 0xCDD00000CDF, + 0xCE000000CE4, + 0xCE600000CF0, + 0xCF100000CF4, + 0xD0000000D0D, + 0xD0E00000D11, + 0xD1200000D45, + 0xD4600000D49, + 0xD4A00000D4F, + 0xD5400000D58, + 0xD5F00000D64, + 0xD6600000D70, + 0xD7A00000D80, + 0xD8100000D84, + 0xD8500000D97, + 0xD9A00000DB2, + 0xDB300000DBC, + 0xDBD00000DBE, + 0xDC000000DC7, + 0xDCA00000DCB, + 0xDCF00000DD5, + 0xDD600000DD7, + 0xDD800000DE0, + 0xDE600000DF0, + 0xDF200000DF4, + 0xE0100000E33, + 0xE3400000E3B, + 0xE4000000E4F, + 0xE5000000E5A, + 0xE8100000E83, + 0xE8400000E85, + 0xE8600000E8B, + 0xE8C00000EA4, + 0xEA500000EA6, + 0xEA700000EB3, + 0xEB400000EBE, + 0xEC000000EC5, + 0xEC600000EC7, + 0xEC800000ECF, + 0xED000000EDA, + 0xEDE00000EE0, + 0xF0000000F01, + 0xF0B00000F0C, + 0xF1800000F1A, + 0xF2000000F2A, + 0xF3500000F36, + 0xF3700000F38, + 0xF3900000F3A, + 0xF3E00000F43, + 0xF4400000F48, + 0xF4900000F4D, + 0xF4E00000F52, + 0xF5300000F57, + 0xF5800000F5C, + 0xF5D00000F69, + 0xF6A00000F6D, + 0xF7100000F73, + 0xF7400000F75, + 0xF7A00000F81, + 0xF8200000F85, + 0xF8600000F93, + 0xF9400000F98, + 0xF9900000F9D, + 0xF9E00000FA2, + 0xFA300000FA7, + 0xFA800000FAC, + 0xFAD00000FB9, + 0xFBA00000FBD, + 0xFC600000FC7, + 0x10000000104A, + 0x10500000109E, + 0x10D0000010FB, + 0x10FD00001100, + 0x120000001249, + 0x124A0000124E, + 0x125000001257, + 0x125800001259, + 0x125A0000125E, + 0x126000001289, + 0x128A0000128E, + 0x1290000012B1, + 0x12B2000012B6, + 0x12B8000012BF, + 0x12C0000012C1, + 0x12C2000012C6, + 0x12C8000012D7, + 0x12D800001311, + 0x131200001316, + 0x13180000135B, + 0x135D00001360, + 0x138000001390, + 0x13A0000013F6, + 0x14010000166D, + 0x166F00001680, + 0x16810000169B, + 0x16A0000016EB, + 0x16F1000016F9, + 0x170000001716, + 0x171F00001735, + 0x174000001754, + 0x17600000176D, + 0x176E00001771, + 0x177200001774, + 0x1780000017B4, + 0x17B6000017D4, + 0x17D7000017D8, + 0x17DC000017DE, + 0x17E0000017EA, + 0x18100000181A, + 0x182000001879, + 0x1880000018AB, + 0x18B0000018F6, + 0x19000000191F, + 0x19200000192C, + 0x19300000193C, + 0x19460000196E, + 0x197000001975, + 0x1980000019AC, + 0x19B0000019CA, + 0x19D0000019DA, + 0x1A0000001A1C, + 0x1A2000001A5F, + 0x1A6000001A7D, + 0x1A7F00001A8A, + 0x1A9000001A9A, + 0x1AA700001AA8, + 0x1AB000001ABE, + 0x1ABF00001ACF, + 0x1B0000001B4D, + 0x1B5000001B5A, + 0x1B6B00001B74, + 0x1B8000001BF4, + 0x1C0000001C38, + 0x1C4000001C4A, + 0x1C4D00001C7E, + 0x1C8A00001C8B, + 0x1CD000001CD3, + 0x1CD400001CFB, + 0x1D0000001D2C, + 0x1D2F00001D30, + 0x1D3B00001D3C, + 0x1D4E00001D4F, + 0x1D6B00001D78, + 0x1D7900001D9B, + 0x1DC000001E00, + 0x1E0100001E02, + 0x1E0300001E04, + 0x1E0500001E06, + 0x1E0700001E08, + 0x1E0900001E0A, + 0x1E0B00001E0C, + 0x1E0D00001E0E, + 0x1E0F00001E10, + 0x1E1100001E12, + 0x1E1300001E14, + 0x1E1500001E16, + 0x1E1700001E18, + 0x1E1900001E1A, + 0x1E1B00001E1C, + 0x1E1D00001E1E, + 0x1E1F00001E20, + 0x1E2100001E22, + 0x1E2300001E24, + 0x1E2500001E26, + 0x1E2700001E28, + 0x1E2900001E2A, + 0x1E2B00001E2C, + 0x1E2D00001E2E, + 0x1E2F00001E30, + 0x1E3100001E32, + 0x1E3300001E34, + 0x1E3500001E36, + 0x1E3700001E38, + 0x1E3900001E3A, + 0x1E3B00001E3C, + 0x1E3D00001E3E, + 0x1E3F00001E40, + 0x1E4100001E42, + 0x1E4300001E44, + 0x1E4500001E46, + 0x1E4700001E48, + 0x1E4900001E4A, + 0x1E4B00001E4C, + 0x1E4D00001E4E, + 0x1E4F00001E50, + 0x1E5100001E52, + 0x1E5300001E54, + 0x1E5500001E56, + 0x1E5700001E58, + 0x1E5900001E5A, + 0x1E5B00001E5C, + 0x1E5D00001E5E, + 0x1E5F00001E60, + 0x1E6100001E62, + 0x1E6300001E64, + 0x1E6500001E66, + 0x1E6700001E68, + 0x1E6900001E6A, + 0x1E6B00001E6C, + 0x1E6D00001E6E, + 0x1E6F00001E70, + 0x1E7100001E72, + 0x1E7300001E74, + 0x1E7500001E76, + 0x1E7700001E78, + 0x1E7900001E7A, + 0x1E7B00001E7C, + 0x1E7D00001E7E, + 0x1E7F00001E80, + 0x1E8100001E82, + 0x1E8300001E84, + 0x1E8500001E86, + 0x1E8700001E88, + 0x1E8900001E8A, + 0x1E8B00001E8C, + 0x1E8D00001E8E, + 0x1E8F00001E90, + 0x1E9100001E92, + 0x1E9300001E94, + 0x1E9500001E9A, + 0x1E9C00001E9E, + 0x1E9F00001EA0, + 0x1EA100001EA2, + 0x1EA300001EA4, + 0x1EA500001EA6, + 0x1EA700001EA8, + 0x1EA900001EAA, + 0x1EAB00001EAC, + 0x1EAD00001EAE, + 0x1EAF00001EB0, + 0x1EB100001EB2, + 0x1EB300001EB4, + 0x1EB500001EB6, + 0x1EB700001EB8, + 0x1EB900001EBA, + 0x1EBB00001EBC, + 0x1EBD00001EBE, + 0x1EBF00001EC0, + 0x1EC100001EC2, + 0x1EC300001EC4, + 0x1EC500001EC6, + 0x1EC700001EC8, + 0x1EC900001ECA, + 0x1ECB00001ECC, + 0x1ECD00001ECE, + 0x1ECF00001ED0, + 0x1ED100001ED2, + 0x1ED300001ED4, + 0x1ED500001ED6, + 0x1ED700001ED8, + 0x1ED900001EDA, + 0x1EDB00001EDC, + 0x1EDD00001EDE, + 0x1EDF00001EE0, + 0x1EE100001EE2, + 0x1EE300001EE4, + 0x1EE500001EE6, + 0x1EE700001EE8, + 0x1EE900001EEA, + 0x1EEB00001EEC, + 0x1EED00001EEE, + 0x1EEF00001EF0, + 0x1EF100001EF2, + 0x1EF300001EF4, + 0x1EF500001EF6, + 0x1EF700001EF8, + 0x1EF900001EFA, + 0x1EFB00001EFC, + 0x1EFD00001EFE, + 0x1EFF00001F08, + 0x1F1000001F16, + 0x1F2000001F28, + 0x1F3000001F38, + 0x1F4000001F46, + 0x1F5000001F58, + 0x1F6000001F68, + 0x1F7000001F71, + 0x1F7200001F73, + 0x1F7400001F75, + 0x1F7600001F77, + 0x1F7800001F79, + 0x1F7A00001F7B, + 0x1F7C00001F7D, + 0x1FB000001FB2, + 0x1FB600001FB7, + 0x1FC600001FC7, + 0x1FD000001FD3, + 0x1FD600001FD8, + 0x1FE000001FE3, + 0x1FE400001FE8, + 0x1FF600001FF7, + 0x214E0000214F, + 0x218400002185, + 0x2C3000002C60, + 0x2C6100002C62, + 0x2C6500002C67, + 0x2C6800002C69, + 0x2C6A00002C6B, + 0x2C6C00002C6D, + 0x2C7100002C72, + 0x2C7300002C75, + 0x2C7600002C7C, + 0x2C8100002C82, + 0x2C8300002C84, + 0x2C8500002C86, + 0x2C8700002C88, + 0x2C8900002C8A, + 0x2C8B00002C8C, + 0x2C8D00002C8E, + 0x2C8F00002C90, + 0x2C9100002C92, + 0x2C9300002C94, + 0x2C9500002C96, + 0x2C9700002C98, + 0x2C9900002C9A, + 0x2C9B00002C9C, + 0x2C9D00002C9E, + 0x2C9F00002CA0, + 0x2CA100002CA2, + 0x2CA300002CA4, + 0x2CA500002CA6, + 0x2CA700002CA8, + 0x2CA900002CAA, + 0x2CAB00002CAC, + 0x2CAD00002CAE, + 0x2CAF00002CB0, + 0x2CB100002CB2, + 0x2CB300002CB4, + 0x2CB500002CB6, + 0x2CB700002CB8, + 0x2CB900002CBA, + 0x2CBB00002CBC, + 0x2CBD00002CBE, + 0x2CBF00002CC0, + 0x2CC100002CC2, + 0x2CC300002CC4, + 0x2CC500002CC6, + 0x2CC700002CC8, + 0x2CC900002CCA, + 0x2CCB00002CCC, + 0x2CCD00002CCE, + 0x2CCF00002CD0, + 0x2CD100002CD2, + 0x2CD300002CD4, + 0x2CD500002CD6, + 0x2CD700002CD8, + 0x2CD900002CDA, + 0x2CDB00002CDC, + 0x2CDD00002CDE, + 0x2CDF00002CE0, + 0x2CE100002CE2, + 0x2CE300002CE5, + 0x2CEC00002CED, + 0x2CEE00002CF2, + 0x2CF300002CF4, + 0x2D0000002D26, + 0x2D2700002D28, + 0x2D2D00002D2E, + 0x2D3000002D68, + 0x2D7F00002D97, + 0x2DA000002DA7, + 0x2DA800002DAF, + 0x2DB000002DB7, + 0x2DB800002DBF, + 0x2DC000002DC7, + 0x2DC800002DCF, + 0x2DD000002DD7, + 0x2DD800002DDF, + 0x2DE000002E00, + 0x2E2F00002E30, + 0x300500003008, + 0x302A0000302E, + 0x303C0000303D, + 0x304100003097, + 0x30990000309B, + 0x309D0000309F, + 0x30A1000030FB, + 0x30FC000030FF, + 0x310500003130, + 0x31A0000031C0, + 0x31F000003200, + 0x340000004DC0, + 0x4E000000A48D, + 0xA4D00000A4FE, + 0xA5000000A60D, + 0xA6100000A62C, + 0xA6410000A642, + 0xA6430000A644, + 0xA6450000A646, + 0xA6470000A648, + 0xA6490000A64A, + 0xA64B0000A64C, + 0xA64D0000A64E, + 0xA64F0000A650, + 0xA6510000A652, + 0xA6530000A654, + 0xA6550000A656, + 0xA6570000A658, + 0xA6590000A65A, + 0xA65B0000A65C, + 0xA65D0000A65E, + 0xA65F0000A660, + 0xA6610000A662, + 0xA6630000A664, + 0xA6650000A666, + 0xA6670000A668, + 0xA6690000A66A, + 0xA66B0000A66C, + 0xA66D0000A670, + 0xA6740000A67E, + 0xA67F0000A680, + 0xA6810000A682, + 0xA6830000A684, + 0xA6850000A686, + 0xA6870000A688, + 0xA6890000A68A, + 0xA68B0000A68C, + 0xA68D0000A68E, + 0xA68F0000A690, + 0xA6910000A692, + 0xA6930000A694, + 0xA6950000A696, + 0xA6970000A698, + 0xA6990000A69A, + 0xA69B0000A69C, + 0xA69E0000A6E6, + 0xA6F00000A6F2, + 0xA7170000A720, + 0xA7230000A724, + 0xA7250000A726, + 0xA7270000A728, + 0xA7290000A72A, + 0xA72B0000A72C, + 0xA72D0000A72E, + 0xA72F0000A732, + 0xA7330000A734, + 0xA7350000A736, + 0xA7370000A738, + 0xA7390000A73A, + 0xA73B0000A73C, + 0xA73D0000A73E, + 0xA73F0000A740, + 0xA7410000A742, + 0xA7430000A744, + 0xA7450000A746, + 0xA7470000A748, + 0xA7490000A74A, + 0xA74B0000A74C, + 0xA74D0000A74E, + 0xA74F0000A750, + 0xA7510000A752, + 0xA7530000A754, + 0xA7550000A756, + 0xA7570000A758, + 0xA7590000A75A, + 0xA75B0000A75C, + 0xA75D0000A75E, + 0xA75F0000A760, + 0xA7610000A762, + 0xA7630000A764, + 0xA7650000A766, + 0xA7670000A768, + 0xA7690000A76A, + 0xA76B0000A76C, + 0xA76D0000A76E, + 0xA76F0000A770, + 0xA7710000A779, + 0xA77A0000A77B, + 0xA77C0000A77D, + 0xA77F0000A780, + 0xA7810000A782, + 0xA7830000A784, + 0xA7850000A786, + 0xA7870000A789, + 0xA78C0000A78D, + 0xA78E0000A790, + 0xA7910000A792, + 0xA7930000A796, + 0xA7970000A798, + 0xA7990000A79A, + 0xA79B0000A79C, + 0xA79D0000A79E, + 0xA79F0000A7A0, + 0xA7A10000A7A2, + 0xA7A30000A7A4, + 0xA7A50000A7A6, + 0xA7A70000A7A8, + 0xA7A90000A7AA, + 0xA7AF0000A7B0, + 0xA7B50000A7B6, + 0xA7B70000A7B8, + 0xA7B90000A7BA, + 0xA7BB0000A7BC, + 0xA7BD0000A7BE, + 0xA7BF0000A7C0, + 0xA7C10000A7C2, + 0xA7C30000A7C4, + 0xA7C80000A7C9, + 0xA7CA0000A7CB, + 0xA7CD0000A7CE, + 0xA7D10000A7D2, + 0xA7D30000A7D4, + 0xA7D50000A7D6, + 0xA7D70000A7D8, + 0xA7D90000A7DA, + 0xA7DB0000A7DC, + 0xA7F60000A7F8, + 0xA7FA0000A828, + 0xA82C0000A82D, + 0xA8400000A874, + 0xA8800000A8C6, + 0xA8D00000A8DA, + 0xA8E00000A8F8, + 0xA8FB0000A8FC, + 0xA8FD0000A92E, + 0xA9300000A954, + 0xA9800000A9C1, + 0xA9CF0000A9DA, + 0xA9E00000A9FF, + 0xAA000000AA37, + 0xAA400000AA4E, + 0xAA500000AA5A, + 0xAA600000AA77, + 0xAA7A0000AAC3, + 0xAADB0000AADE, + 0xAAE00000AAF0, + 0xAAF20000AAF7, + 0xAB010000AB07, + 0xAB090000AB0F, + 0xAB110000AB17, + 0xAB200000AB27, + 0xAB280000AB2F, + 0xAB300000AB5B, + 0xAB600000AB69, + 0xABC00000ABEB, + 0xABEC0000ABEE, + 0xABF00000ABFA, + 0xAC000000D7A4, + 0xFA0E0000FA10, + 0xFA110000FA12, + 0xFA130000FA15, + 0xFA1F0000FA20, + 0xFA210000FA22, + 0xFA230000FA25, + 0xFA270000FA2A, + 0xFB1E0000FB1F, + 0xFE200000FE30, + 0xFE730000FE74, + 0x100000001000C, + 0x1000D00010027, + 0x100280001003B, + 0x1003C0001003E, + 0x1003F0001004E, + 0x100500001005E, + 0x10080000100FB, + 0x101FD000101FE, + 0x102800001029D, + 0x102A0000102D1, + 0x102E0000102E1, + 0x1030000010320, + 0x1032D00010341, + 0x103420001034A, + 0x103500001037B, + 0x103800001039E, + 0x103A0000103C4, + 0x103C8000103D0, + 0x104280001049E, + 0x104A0000104AA, + 0x104D8000104FC, + 0x1050000010528, + 0x1053000010564, + 0x10597000105A2, + 0x105A3000105B2, + 0x105B3000105BA, + 0x105BB000105BD, + 0x105C0000105F4, + 0x1060000010737, + 0x1074000010756, + 0x1076000010768, + 0x1078000010781, + 0x1080000010806, + 0x1080800010809, + 0x1080A00010836, + 0x1083700010839, + 0x1083C0001083D, + 0x1083F00010856, + 0x1086000010877, + 0x108800001089F, + 0x108E0000108F3, + 0x108F4000108F6, + 0x1090000010916, + 0x109200001093A, + 0x10980000109B8, + 0x109BE000109C0, + 0x10A0000010A04, + 0x10A0500010A07, + 0x10A0C00010A14, + 0x10A1500010A18, + 0x10A1900010A36, + 0x10A3800010A3B, + 0x10A3F00010A40, + 0x10A6000010A7D, + 0x10A8000010A9D, + 0x10AC000010AC8, + 0x10AC900010AE7, + 0x10B0000010B36, + 0x10B4000010B56, + 0x10B6000010B73, + 0x10B8000010B92, + 0x10C0000010C49, + 0x10CC000010CF3, + 0x10D0000010D28, + 0x10D3000010D3A, + 0x10D4000010D50, + 0x10D6900010D6E, + 0x10D6F00010D86, + 0x10E8000010EAA, + 0x10EAB00010EAD, + 0x10EB000010EB2, + 0x10EC200010EC5, + 0x10EFC00010F1D, + 0x10F2700010F28, + 0x10F3000010F51, + 0x10F7000010F86, + 0x10FB000010FC5, + 0x10FE000010FF7, + 0x1100000011047, + 0x1106600011076, + 0x1107F000110BB, + 0x110C2000110C3, + 0x110D0000110E9, + 0x110F0000110FA, + 0x1110000011135, + 0x1113600011140, + 0x1114400011148, + 0x1115000011174, + 0x1117600011177, + 0x11180000111C5, + 0x111C9000111CD, + 0x111CE000111DB, + 0x111DC000111DD, + 0x1120000011212, + 0x1121300011238, + 0x1123E00011242, + 0x1128000011287, + 0x1128800011289, + 0x1128A0001128E, + 0x1128F0001129E, + 0x1129F000112A9, + 0x112B0000112EB, + 0x112F0000112FA, + 0x1130000011304, + 0x113050001130D, + 0x1130F00011311, + 0x1131300011329, + 0x1132A00011331, + 0x1133200011334, + 0x113350001133A, + 0x1133B00011345, + 0x1134700011349, + 0x1134B0001134E, + 0x1135000011351, + 0x1135700011358, + 0x1135D00011364, + 0x113660001136D, + 0x1137000011375, + 0x113800001138A, + 0x1138B0001138C, + 0x1138E0001138F, + 0x11390000113B6, + 0x113B7000113C1, + 0x113C2000113C3, + 0x113C5000113C6, + 0x113C7000113CB, + 0x113CC000113D4, + 0x113E1000113E3, + 0x114000001144B, + 0x114500001145A, + 0x1145E00011462, + 0x11480000114C6, + 0x114C7000114C8, + 0x114D0000114DA, + 0x11580000115B6, + 0x115B8000115C1, + 0x115D8000115DE, + 0x1160000011641, + 0x1164400011645, + 0x116500001165A, + 0x11680000116B9, + 0x116C0000116CA, + 0x116D0000116E4, + 0x117000001171B, + 0x1171D0001172C, + 0x117300001173A, + 0x1174000011747, + 0x118000001183B, + 0x118C0000118EA, + 0x118FF00011907, + 0x119090001190A, + 0x1190C00011914, + 0x1191500011917, + 0x1191800011936, + 0x1193700011939, + 0x1193B00011944, + 0x119500001195A, + 0x119A0000119A8, + 0x119AA000119D8, + 0x119DA000119E2, + 0x119E3000119E5, + 0x11A0000011A3F, + 0x11A4700011A48, + 0x11A5000011A9A, + 0x11A9D00011A9E, + 0x11AB000011AF9, + 0x11BC000011BE1, + 0x11BF000011BFA, + 0x11C0000011C09, + 0x11C0A00011C37, + 0x11C3800011C41, + 0x11C5000011C5A, + 0x11C7200011C90, + 0x11C9200011CA8, + 0x11CA900011CB7, + 0x11D0000011D07, + 0x11D0800011D0A, + 0x11D0B00011D37, + 0x11D3A00011D3B, + 0x11D3C00011D3E, + 0x11D3F00011D48, + 0x11D5000011D5A, + 0x11D6000011D66, + 0x11D6700011D69, + 0x11D6A00011D8F, + 0x11D9000011D92, + 0x11D9300011D99, + 0x11DA000011DAA, + 0x11EE000011EF7, + 0x11F0000011F11, + 0x11F1200011F3B, + 0x11F3E00011F43, + 0x11F5000011F5B, + 0x11FB000011FB1, + 0x120000001239A, + 0x1248000012544, + 0x12F9000012FF1, + 0x1300000013430, + 0x1344000013456, + 0x13460000143FB, + 0x1440000014647, + 0x161000001613A, + 0x1680000016A39, + 0x16A4000016A5F, + 0x16A6000016A6A, + 0x16A7000016ABF, + 0x16AC000016ACA, + 0x16AD000016AEE, + 0x16AF000016AF5, + 0x16B0000016B37, + 0x16B4000016B44, + 0x16B5000016B5A, + 0x16B6300016B78, + 0x16B7D00016B90, + 0x16D4000016D6D, + 0x16D7000016D7A, + 0x16E6000016E80, + 0x16F0000016F4B, + 0x16F4F00016F88, + 0x16F8F00016FA0, + 0x16FE000016FE2, + 0x16FE300016FE5, + 0x16FF000016FF2, + 0x17000000187F8, + 0x1880000018CD6, + 0x18CFF00018D09, + 0x1AFF00001AFF4, + 0x1AFF50001AFFC, + 0x1AFFD0001AFFF, + 0x1B0000001B123, + 0x1B1320001B133, + 0x1B1500001B153, + 0x1B1550001B156, + 0x1B1640001B168, + 0x1B1700001B2FC, + 0x1BC000001BC6B, + 0x1BC700001BC7D, + 0x1BC800001BC89, + 0x1BC900001BC9A, + 0x1BC9D0001BC9F, + 0x1CCF00001CCFA, + 0x1CF000001CF2E, + 0x1CF300001CF47, + 0x1DA000001DA37, + 0x1DA3B0001DA6D, + 0x1DA750001DA76, + 0x1DA840001DA85, + 0x1DA9B0001DAA0, + 0x1DAA10001DAB0, + 0x1DF000001DF1F, + 0x1DF250001DF2B, + 0x1E0000001E007, + 0x1E0080001E019, + 0x1E01B0001E022, + 0x1E0230001E025, + 0x1E0260001E02B, + 0x1E08F0001E090, + 0x1E1000001E12D, + 0x1E1300001E13E, + 0x1E1400001E14A, + 0x1E14E0001E14F, + 0x1E2900001E2AF, + 0x1E2C00001E2FA, + 0x1E4D00001E4FA, + 0x1E5D00001E5FB, + 0x1E7E00001E7E7, + 0x1E7E80001E7EC, + 0x1E7ED0001E7EF, + 0x1E7F00001E7FF, + 0x1E8000001E8C5, + 0x1E8D00001E8D7, + 0x1E9220001E94C, + 0x1E9500001E95A, + 0x200000002A6E0, + 0x2A7000002B73A, + 0x2B7400002B81E, + 0x2B8200002CEA2, + 0x2CEB00002EBE1, + 0x2EBF00002EE5E, + 0x300000003134B, + 0x31350000323B0, + ), + "CONTEXTJ": (0x200C0000200E,), + "CONTEXTO": ( + 0xB7000000B8, + 0x37500000376, + 0x5F3000005F5, + 0x6600000066A, + 0x6F0000006FA, + 0x30FB000030FC, + ), +} diff --git a/venv/lib/python3.10/site-packages/idna/intranges.py b/venv/lib/python3.10/site-packages/idna/intranges.py new file mode 100644 index 0000000..7bfaa8d --- /dev/null +++ b/venv/lib/python3.10/site-packages/idna/intranges.py @@ -0,0 +1,57 @@ +""" +Given a list of integers, made up of (hopefully) a small number of long runs +of consecutive integers, compute a representation of the form +((start1, end1), (start2, end2) ...). Then answer the question "was x present +in the original list?" in time O(log(# runs)). +""" + +import bisect +from typing import List, Tuple + + +def intranges_from_list(list_: List[int]) -> Tuple[int, ...]: + """Represent a list of integers as a sequence of ranges: + ((start_0, end_0), (start_1, end_1), ...), such that the original + integers are exactly those x such that start_i <= x < end_i for some i. + + Ranges are encoded as single integers (start << 32 | end), not as tuples. + """ + + sorted_list = sorted(list_) + ranges = [] + last_write = -1 + for i in range(len(sorted_list)): + if i + 1 < len(sorted_list): + if sorted_list[i] == sorted_list[i + 1] - 1: + continue + current_range = sorted_list[last_write + 1 : i + 1] + ranges.append(_encode_range(current_range[0], current_range[-1] + 1)) + last_write = i + + return tuple(ranges) + + +def _encode_range(start: int, end: int) -> int: + return (start << 32) | end + + +def _decode_range(r: int) -> Tuple[int, int]: + return (r >> 32), (r & ((1 << 32) - 1)) + + +def intranges_contain(int_: int, ranges: Tuple[int, ...]) -> bool: + """Determine if `int_` falls into one of the ranges in `ranges`.""" + tuple_ = _encode_range(int_, 0) + pos = bisect.bisect_left(ranges, tuple_) + # we could be immediately ahead of a tuple (start, end) + # with start < int_ <= end + if pos > 0: + left, right = _decode_range(ranges[pos - 1]) + if left <= int_ < right: + return True + # or we could be immediately behind a tuple (int_, end) + if pos < len(ranges): + left, _ = _decode_range(ranges[pos]) + if left == int_: + return True + return False diff --git a/venv/lib/python3.10/site-packages/idna/package_data.py b/venv/lib/python3.10/site-packages/idna/package_data.py new file mode 100644 index 0000000..7272c8d --- /dev/null +++ b/venv/lib/python3.10/site-packages/idna/package_data.py @@ -0,0 +1 @@ +__version__ = "3.11" diff --git a/venv/lib/python3.10/site-packages/idna/py.typed b/venv/lib/python3.10/site-packages/idna/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/idna/uts46data.py b/venv/lib/python3.10/site-packages/idna/uts46data.py new file mode 100644 index 0000000..4610b71 --- /dev/null +++ b/venv/lib/python3.10/site-packages/idna/uts46data.py @@ -0,0 +1,8841 @@ +# This file is automatically generated by tools/idna-data +# vim: set fileencoding=utf-8 : + +from typing import List, Tuple, Union + +"""IDNA Mapping Table from UTS46.""" + + +__version__ = "16.0.0" + + +def _seg_0() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x0, "V"), + (0x1, "V"), + (0x2, "V"), + (0x3, "V"), + (0x4, "V"), + (0x5, "V"), + (0x6, "V"), + (0x7, "V"), + (0x8, "V"), + (0x9, "V"), + (0xA, "V"), + (0xB, "V"), + (0xC, "V"), + (0xD, "V"), + (0xE, "V"), + (0xF, "V"), + (0x10, "V"), + (0x11, "V"), + (0x12, "V"), + (0x13, "V"), + (0x14, "V"), + (0x15, "V"), + (0x16, "V"), + (0x17, "V"), + (0x18, "V"), + (0x19, "V"), + (0x1A, "V"), + (0x1B, "V"), + (0x1C, "V"), + (0x1D, "V"), + (0x1E, "V"), + (0x1F, "V"), + (0x20, "V"), + (0x21, "V"), + (0x22, "V"), + (0x23, "V"), + (0x24, "V"), + (0x25, "V"), + (0x26, "V"), + (0x27, "V"), + (0x28, "V"), + (0x29, "V"), + (0x2A, "V"), + (0x2B, "V"), + (0x2C, "V"), + (0x2D, "V"), + (0x2E, "V"), + (0x2F, "V"), + (0x30, "V"), + (0x31, "V"), + (0x32, "V"), + (0x33, "V"), + (0x34, "V"), + (0x35, "V"), + (0x36, "V"), + (0x37, "V"), + (0x38, "V"), + (0x39, "V"), + (0x3A, "V"), + (0x3B, "V"), + (0x3C, "V"), + (0x3D, "V"), + (0x3E, "V"), + (0x3F, "V"), + (0x40, "V"), + (0x41, "M", "a"), + (0x42, "M", "b"), + (0x43, "M", "c"), + (0x44, "M", "d"), + (0x45, "M", "e"), + (0x46, "M", "f"), + (0x47, "M", "g"), + (0x48, "M", "h"), + (0x49, "M", "i"), + (0x4A, "M", "j"), + (0x4B, "M", "k"), + (0x4C, "M", "l"), + (0x4D, "M", "m"), + (0x4E, "M", "n"), + (0x4F, "M", "o"), + (0x50, "M", "p"), + (0x51, "M", "q"), + (0x52, "M", "r"), + (0x53, "M", "s"), + (0x54, "M", "t"), + (0x55, "M", "u"), + (0x56, "M", "v"), + (0x57, "M", "w"), + (0x58, "M", "x"), + (0x59, "M", "y"), + (0x5A, "M", "z"), + (0x5B, "V"), + (0x5C, "V"), + (0x5D, "V"), + (0x5E, "V"), + (0x5F, "V"), + (0x60, "V"), + (0x61, "V"), + (0x62, "V"), + (0x63, "V"), + ] + + +def _seg_1() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x64, "V"), + (0x65, "V"), + (0x66, "V"), + (0x67, "V"), + (0x68, "V"), + (0x69, "V"), + (0x6A, "V"), + (0x6B, "V"), + (0x6C, "V"), + (0x6D, "V"), + (0x6E, "V"), + (0x6F, "V"), + (0x70, "V"), + (0x71, "V"), + (0x72, "V"), + (0x73, "V"), + (0x74, "V"), + (0x75, "V"), + (0x76, "V"), + (0x77, "V"), + (0x78, "V"), + (0x79, "V"), + (0x7A, "V"), + (0x7B, "V"), + (0x7C, "V"), + (0x7D, "V"), + (0x7E, "V"), + (0x7F, "V"), + (0x80, "X"), + (0x81, "X"), + (0x82, "X"), + (0x83, "X"), + (0x84, "X"), + (0x85, "X"), + (0x86, "X"), + (0x87, "X"), + (0x88, "X"), + (0x89, "X"), + (0x8A, "X"), + (0x8B, "X"), + (0x8C, "X"), + (0x8D, "X"), + (0x8E, "X"), + (0x8F, "X"), + (0x90, "X"), + (0x91, "X"), + (0x92, "X"), + (0x93, "X"), + (0x94, "X"), + (0x95, "X"), + (0x96, "X"), + (0x97, "X"), + (0x98, "X"), + (0x99, "X"), + (0x9A, "X"), + (0x9B, "X"), + (0x9C, "X"), + (0x9D, "X"), + (0x9E, "X"), + (0x9F, "X"), + (0xA0, "M", " "), + (0xA1, "V"), + (0xA2, "V"), + (0xA3, "V"), + (0xA4, "V"), + (0xA5, "V"), + (0xA6, "V"), + (0xA7, "V"), + (0xA8, "M", " ̈"), + (0xA9, "V"), + (0xAA, "M", "a"), + (0xAB, "V"), + (0xAC, "V"), + (0xAD, "I"), + (0xAE, "V"), + (0xAF, "M", " ̄"), + (0xB0, "V"), + (0xB1, "V"), + (0xB2, "M", "2"), + (0xB3, "M", "3"), + (0xB4, "M", " ́"), + (0xB5, "M", "μ"), + (0xB6, "V"), + (0xB7, "V"), + (0xB8, "M", " ̧"), + (0xB9, "M", "1"), + (0xBA, "M", "o"), + (0xBB, "V"), + (0xBC, "M", "1⁄4"), + (0xBD, "M", "1⁄2"), + (0xBE, "M", "3⁄4"), + (0xBF, "V"), + (0xC0, "M", "à"), + (0xC1, "M", "á"), + (0xC2, "M", "â"), + (0xC3, "M", "ã"), + (0xC4, "M", "ä"), + (0xC5, "M", "å"), + (0xC6, "M", "æ"), + (0xC7, "M", "ç"), + ] + + +def _seg_2() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xC8, "M", "è"), + (0xC9, "M", "é"), + (0xCA, "M", "ê"), + (0xCB, "M", "ë"), + (0xCC, "M", "ì"), + (0xCD, "M", "í"), + (0xCE, "M", "î"), + (0xCF, "M", "ï"), + (0xD0, "M", "ð"), + (0xD1, "M", "ñ"), + (0xD2, "M", "ò"), + (0xD3, "M", "ó"), + (0xD4, "M", "ô"), + (0xD5, "M", "õ"), + (0xD6, "M", "ö"), + (0xD7, "V"), + (0xD8, "M", "ø"), + (0xD9, "M", "ù"), + (0xDA, "M", "ú"), + (0xDB, "M", "û"), + (0xDC, "M", "ü"), + (0xDD, "M", "ý"), + (0xDE, "M", "þ"), + (0xDF, "D", "ss"), + (0xE0, "V"), + (0xE1, "V"), + (0xE2, "V"), + (0xE3, "V"), + (0xE4, "V"), + (0xE5, "V"), + (0xE6, "V"), + (0xE7, "V"), + (0xE8, "V"), + (0xE9, "V"), + (0xEA, "V"), + (0xEB, "V"), + (0xEC, "V"), + (0xED, "V"), + (0xEE, "V"), + (0xEF, "V"), + (0xF0, "V"), + (0xF1, "V"), + (0xF2, "V"), + (0xF3, "V"), + (0xF4, "V"), + (0xF5, "V"), + (0xF6, "V"), + (0xF7, "V"), + (0xF8, "V"), + (0xF9, "V"), + (0xFA, "V"), + (0xFB, "V"), + (0xFC, "V"), + (0xFD, "V"), + (0xFE, "V"), + (0xFF, "V"), + (0x100, "M", "ā"), + (0x101, "V"), + (0x102, "M", "ă"), + (0x103, "V"), + (0x104, "M", "ą"), + (0x105, "V"), + (0x106, "M", "ć"), + (0x107, "V"), + (0x108, "M", "ĉ"), + (0x109, "V"), + (0x10A, "M", "ċ"), + (0x10B, "V"), + (0x10C, "M", "č"), + (0x10D, "V"), + (0x10E, "M", "ď"), + (0x10F, "V"), + (0x110, "M", "đ"), + (0x111, "V"), + (0x112, "M", "ē"), + (0x113, "V"), + (0x114, "M", "ĕ"), + (0x115, "V"), + (0x116, "M", "ė"), + (0x117, "V"), + (0x118, "M", "ę"), + (0x119, "V"), + (0x11A, "M", "ě"), + (0x11B, "V"), + (0x11C, "M", "ĝ"), + (0x11D, "V"), + (0x11E, "M", "ğ"), + (0x11F, "V"), + (0x120, "M", "ġ"), + (0x121, "V"), + (0x122, "M", "ģ"), + (0x123, "V"), + (0x124, "M", "ĥ"), + (0x125, "V"), + (0x126, "M", "ħ"), + (0x127, "V"), + (0x128, "M", "ĩ"), + (0x129, "V"), + (0x12A, "M", "ī"), + (0x12B, "V"), + ] + + +def _seg_3() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x12C, "M", "ĭ"), + (0x12D, "V"), + (0x12E, "M", "į"), + (0x12F, "V"), + (0x130, "M", "i̇"), + (0x131, "V"), + (0x132, "M", "ij"), + (0x134, "M", "ĵ"), + (0x135, "V"), + (0x136, "M", "ķ"), + (0x137, "V"), + (0x139, "M", "ĺ"), + (0x13A, "V"), + (0x13B, "M", "ļ"), + (0x13C, "V"), + (0x13D, "M", "ľ"), + (0x13E, "V"), + (0x13F, "M", "l·"), + (0x141, "M", "ł"), + (0x142, "V"), + (0x143, "M", "ń"), + (0x144, "V"), + (0x145, "M", "ņ"), + (0x146, "V"), + (0x147, "M", "ň"), + (0x148, "V"), + (0x149, "M", "ʼn"), + (0x14A, "M", "ŋ"), + (0x14B, "V"), + (0x14C, "M", "ō"), + (0x14D, "V"), + (0x14E, "M", "ŏ"), + (0x14F, "V"), + (0x150, "M", "ő"), + (0x151, "V"), + (0x152, "M", "œ"), + (0x153, "V"), + (0x154, "M", "ŕ"), + (0x155, "V"), + (0x156, "M", "ŗ"), + (0x157, "V"), + (0x158, "M", "ř"), + (0x159, "V"), + (0x15A, "M", "ś"), + (0x15B, "V"), + (0x15C, "M", "ŝ"), + (0x15D, "V"), + (0x15E, "M", "ş"), + (0x15F, "V"), + (0x160, "M", "š"), + (0x161, "V"), + (0x162, "M", "ţ"), + (0x163, "V"), + (0x164, "M", "ť"), + (0x165, "V"), + (0x166, "M", "ŧ"), + (0x167, "V"), + (0x168, "M", "ũ"), + (0x169, "V"), + (0x16A, "M", "ū"), + (0x16B, "V"), + (0x16C, "M", "ŭ"), + (0x16D, "V"), + (0x16E, "M", "ů"), + (0x16F, "V"), + (0x170, "M", "ű"), + (0x171, "V"), + (0x172, "M", "ų"), + (0x173, "V"), + (0x174, "M", "ŵ"), + (0x175, "V"), + (0x176, "M", "ŷ"), + (0x177, "V"), + (0x178, "M", "ÿ"), + (0x179, "M", "ź"), + (0x17A, "V"), + (0x17B, "M", "ż"), + (0x17C, "V"), + (0x17D, "M", "ž"), + (0x17E, "V"), + (0x17F, "M", "s"), + (0x180, "V"), + (0x181, "M", "ɓ"), + (0x182, "M", "ƃ"), + (0x183, "V"), + (0x184, "M", "ƅ"), + (0x185, "V"), + (0x186, "M", "ɔ"), + (0x187, "M", "ƈ"), + (0x188, "V"), + (0x189, "M", "ɖ"), + (0x18A, "M", "ɗ"), + (0x18B, "M", "ƌ"), + (0x18C, "V"), + (0x18E, "M", "ǝ"), + (0x18F, "M", "ə"), + (0x190, "M", "ɛ"), + (0x191, "M", "ƒ"), + (0x192, "V"), + (0x193, "M", "ɠ"), + ] + + +def _seg_4() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x194, "M", "ɣ"), + (0x195, "V"), + (0x196, "M", "ɩ"), + (0x197, "M", "ɨ"), + (0x198, "M", "ƙ"), + (0x199, "V"), + (0x19C, "M", "ɯ"), + (0x19D, "M", "ɲ"), + (0x19E, "V"), + (0x19F, "M", "ɵ"), + (0x1A0, "M", "ơ"), + (0x1A1, "V"), + (0x1A2, "M", "ƣ"), + (0x1A3, "V"), + (0x1A4, "M", "ƥ"), + (0x1A5, "V"), + (0x1A6, "M", "ʀ"), + (0x1A7, "M", "ƨ"), + (0x1A8, "V"), + (0x1A9, "M", "ʃ"), + (0x1AA, "V"), + (0x1AC, "M", "ƭ"), + (0x1AD, "V"), + (0x1AE, "M", "ʈ"), + (0x1AF, "M", "ư"), + (0x1B0, "V"), + (0x1B1, "M", "ʊ"), + (0x1B2, "M", "ʋ"), + (0x1B3, "M", "ƴ"), + (0x1B4, "V"), + (0x1B5, "M", "ƶ"), + (0x1B6, "V"), + (0x1B7, "M", "ʒ"), + (0x1B8, "M", "ƹ"), + (0x1B9, "V"), + (0x1BC, "M", "ƽ"), + (0x1BD, "V"), + (0x1C4, "M", "dž"), + (0x1C7, "M", "lj"), + (0x1CA, "M", "nj"), + (0x1CD, "M", "ǎ"), + (0x1CE, "V"), + (0x1CF, "M", "ǐ"), + (0x1D0, "V"), + (0x1D1, "M", "ǒ"), + (0x1D2, "V"), + (0x1D3, "M", "ǔ"), + (0x1D4, "V"), + (0x1D5, "M", "ǖ"), + (0x1D6, "V"), + (0x1D7, "M", "ǘ"), + (0x1D8, "V"), + (0x1D9, "M", "ǚ"), + (0x1DA, "V"), + (0x1DB, "M", "ǜ"), + (0x1DC, "V"), + (0x1DE, "M", "ǟ"), + (0x1DF, "V"), + (0x1E0, "M", "ǡ"), + (0x1E1, "V"), + (0x1E2, "M", "ǣ"), + (0x1E3, "V"), + (0x1E4, "M", "ǥ"), + (0x1E5, "V"), + (0x1E6, "M", "ǧ"), + (0x1E7, "V"), + (0x1E8, "M", "ǩ"), + (0x1E9, "V"), + (0x1EA, "M", "ǫ"), + (0x1EB, "V"), + (0x1EC, "M", "ǭ"), + (0x1ED, "V"), + (0x1EE, "M", "ǯ"), + (0x1EF, "V"), + (0x1F1, "M", "dz"), + (0x1F4, "M", "ǵ"), + (0x1F5, "V"), + (0x1F6, "M", "ƕ"), + (0x1F7, "M", "ƿ"), + (0x1F8, "M", "ǹ"), + (0x1F9, "V"), + (0x1FA, "M", "ǻ"), + (0x1FB, "V"), + (0x1FC, "M", "ǽ"), + (0x1FD, "V"), + (0x1FE, "M", "ǿ"), + (0x1FF, "V"), + (0x200, "M", "ȁ"), + (0x201, "V"), + (0x202, "M", "ȃ"), + (0x203, "V"), + (0x204, "M", "ȅ"), + (0x205, "V"), + (0x206, "M", "ȇ"), + (0x207, "V"), + (0x208, "M", "ȉ"), + (0x209, "V"), + (0x20A, "M", "ȋ"), + (0x20B, "V"), + (0x20C, "M", "ȍ"), + ] + + +def _seg_5() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x20D, "V"), + (0x20E, "M", "ȏ"), + (0x20F, "V"), + (0x210, "M", "ȑ"), + (0x211, "V"), + (0x212, "M", "ȓ"), + (0x213, "V"), + (0x214, "M", "ȕ"), + (0x215, "V"), + (0x216, "M", "ȗ"), + (0x217, "V"), + (0x218, "M", "ș"), + (0x219, "V"), + (0x21A, "M", "ț"), + (0x21B, "V"), + (0x21C, "M", "ȝ"), + (0x21D, "V"), + (0x21E, "M", "ȟ"), + (0x21F, "V"), + (0x220, "M", "ƞ"), + (0x221, "V"), + (0x222, "M", "ȣ"), + (0x223, "V"), + (0x224, "M", "ȥ"), + (0x225, "V"), + (0x226, "M", "ȧ"), + (0x227, "V"), + (0x228, "M", "ȩ"), + (0x229, "V"), + (0x22A, "M", "ȫ"), + (0x22B, "V"), + (0x22C, "M", "ȭ"), + (0x22D, "V"), + (0x22E, "M", "ȯ"), + (0x22F, "V"), + (0x230, "M", "ȱ"), + (0x231, "V"), + (0x232, "M", "ȳ"), + (0x233, "V"), + (0x23A, "M", "ⱥ"), + (0x23B, "M", "ȼ"), + (0x23C, "V"), + (0x23D, "M", "ƚ"), + (0x23E, "M", "ⱦ"), + (0x23F, "V"), + (0x241, "M", "ɂ"), + (0x242, "V"), + (0x243, "M", "ƀ"), + (0x244, "M", "ʉ"), + (0x245, "M", "ʌ"), + (0x246, "M", "ɇ"), + (0x247, "V"), + (0x248, "M", "ɉ"), + (0x249, "V"), + (0x24A, "M", "ɋ"), + (0x24B, "V"), + (0x24C, "M", "ɍ"), + (0x24D, "V"), + (0x24E, "M", "ɏ"), + (0x24F, "V"), + (0x2B0, "M", "h"), + (0x2B1, "M", "ɦ"), + (0x2B2, "M", "j"), + (0x2B3, "M", "r"), + (0x2B4, "M", "ɹ"), + (0x2B5, "M", "ɻ"), + (0x2B6, "M", "ʁ"), + (0x2B7, "M", "w"), + (0x2B8, "M", "y"), + (0x2B9, "V"), + (0x2D8, "M", " ̆"), + (0x2D9, "M", " ̇"), + (0x2DA, "M", " ̊"), + (0x2DB, "M", " ̨"), + (0x2DC, "M", " ̃"), + (0x2DD, "M", " ̋"), + (0x2DE, "V"), + (0x2E0, "M", "ɣ"), + (0x2E1, "M", "l"), + (0x2E2, "M", "s"), + (0x2E3, "M", "x"), + (0x2E4, "M", "ʕ"), + (0x2E5, "V"), + (0x340, "M", "̀"), + (0x341, "M", "́"), + (0x342, "V"), + (0x343, "M", "̓"), + (0x344, "M", "̈́"), + (0x345, "M", "ι"), + (0x346, "V"), + (0x34F, "I"), + (0x350, "V"), + (0x370, "M", "ͱ"), + (0x371, "V"), + (0x372, "M", "ͳ"), + (0x373, "V"), + (0x374, "M", "ʹ"), + (0x375, "V"), + (0x376, "M", "ͷ"), + (0x377, "V"), + ] + + +def _seg_6() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x378, "X"), + (0x37A, "M", " ι"), + (0x37B, "V"), + (0x37E, "M", ";"), + (0x37F, "M", "ϳ"), + (0x380, "X"), + (0x384, "M", " ́"), + (0x385, "M", " ̈́"), + (0x386, "M", "ά"), + (0x387, "M", "·"), + (0x388, "M", "έ"), + (0x389, "M", "ή"), + (0x38A, "M", "ί"), + (0x38B, "X"), + (0x38C, "M", "ό"), + (0x38D, "X"), + (0x38E, "M", "ύ"), + (0x38F, "M", "ώ"), + (0x390, "V"), + (0x391, "M", "α"), + (0x392, "M", "β"), + (0x393, "M", "γ"), + (0x394, "M", "δ"), + (0x395, "M", "ε"), + (0x396, "M", "ζ"), + (0x397, "M", "η"), + (0x398, "M", "θ"), + (0x399, "M", "ι"), + (0x39A, "M", "κ"), + (0x39B, "M", "λ"), + (0x39C, "M", "μ"), + (0x39D, "M", "ν"), + (0x39E, "M", "ξ"), + (0x39F, "M", "ο"), + (0x3A0, "M", "π"), + (0x3A1, "M", "ρ"), + (0x3A2, "X"), + (0x3A3, "M", "σ"), + (0x3A4, "M", "τ"), + (0x3A5, "M", "υ"), + (0x3A6, "M", "φ"), + (0x3A7, "M", "χ"), + (0x3A8, "M", "ψ"), + (0x3A9, "M", "ω"), + (0x3AA, "M", "ϊ"), + (0x3AB, "M", "ϋ"), + (0x3AC, "V"), + (0x3C2, "D", "σ"), + (0x3C3, "V"), + (0x3CF, "M", "ϗ"), + (0x3D0, "M", "β"), + (0x3D1, "M", "θ"), + (0x3D2, "M", "υ"), + (0x3D3, "M", "ύ"), + (0x3D4, "M", "ϋ"), + (0x3D5, "M", "φ"), + (0x3D6, "M", "π"), + (0x3D7, "V"), + (0x3D8, "M", "ϙ"), + (0x3D9, "V"), + (0x3DA, "M", "ϛ"), + (0x3DB, "V"), + (0x3DC, "M", "ϝ"), + (0x3DD, "V"), + (0x3DE, "M", "ϟ"), + (0x3DF, "V"), + (0x3E0, "M", "ϡ"), + (0x3E1, "V"), + (0x3E2, "M", "ϣ"), + (0x3E3, "V"), + (0x3E4, "M", "ϥ"), + (0x3E5, "V"), + (0x3E6, "M", "ϧ"), + (0x3E7, "V"), + (0x3E8, "M", "ϩ"), + (0x3E9, "V"), + (0x3EA, "M", "ϫ"), + (0x3EB, "V"), + (0x3EC, "M", "ϭ"), + (0x3ED, "V"), + (0x3EE, "M", "ϯ"), + (0x3EF, "V"), + (0x3F0, "M", "κ"), + (0x3F1, "M", "ρ"), + (0x3F2, "M", "σ"), + (0x3F3, "V"), + (0x3F4, "M", "θ"), + (0x3F5, "M", "ε"), + (0x3F6, "V"), + (0x3F7, "M", "ϸ"), + (0x3F8, "V"), + (0x3F9, "M", "σ"), + (0x3FA, "M", "ϻ"), + (0x3FB, "V"), + (0x3FD, "M", "ͻ"), + (0x3FE, "M", "ͼ"), + (0x3FF, "M", "ͽ"), + (0x400, "M", "ѐ"), + (0x401, "M", "ё"), + (0x402, "M", "ђ"), + ] + + +def _seg_7() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x403, "M", "ѓ"), + (0x404, "M", "є"), + (0x405, "M", "ѕ"), + (0x406, "M", "і"), + (0x407, "M", "ї"), + (0x408, "M", "ј"), + (0x409, "M", "љ"), + (0x40A, "M", "њ"), + (0x40B, "M", "ћ"), + (0x40C, "M", "ќ"), + (0x40D, "M", "ѝ"), + (0x40E, "M", "ў"), + (0x40F, "M", "џ"), + (0x410, "M", "а"), + (0x411, "M", "б"), + (0x412, "M", "в"), + (0x413, "M", "г"), + (0x414, "M", "д"), + (0x415, "M", "е"), + (0x416, "M", "ж"), + (0x417, "M", "з"), + (0x418, "M", "и"), + (0x419, "M", "й"), + (0x41A, "M", "к"), + (0x41B, "M", "л"), + (0x41C, "M", "м"), + (0x41D, "M", "н"), + (0x41E, "M", "о"), + (0x41F, "M", "п"), + (0x420, "M", "р"), + (0x421, "M", "с"), + (0x422, "M", "т"), + (0x423, "M", "у"), + (0x424, "M", "ф"), + (0x425, "M", "х"), + (0x426, "M", "ц"), + (0x427, "M", "ч"), + (0x428, "M", "ш"), + (0x429, "M", "щ"), + (0x42A, "M", "ъ"), + (0x42B, "M", "ы"), + (0x42C, "M", "ь"), + (0x42D, "M", "э"), + (0x42E, "M", "ю"), + (0x42F, "M", "я"), + (0x430, "V"), + (0x460, "M", "ѡ"), + (0x461, "V"), + (0x462, "M", "ѣ"), + (0x463, "V"), + (0x464, "M", "ѥ"), + (0x465, "V"), + (0x466, "M", "ѧ"), + (0x467, "V"), + (0x468, "M", "ѩ"), + (0x469, "V"), + (0x46A, "M", "ѫ"), + (0x46B, "V"), + (0x46C, "M", "ѭ"), + (0x46D, "V"), + (0x46E, "M", "ѯ"), + (0x46F, "V"), + (0x470, "M", "ѱ"), + (0x471, "V"), + (0x472, "M", "ѳ"), + (0x473, "V"), + (0x474, "M", "ѵ"), + (0x475, "V"), + (0x476, "M", "ѷ"), + (0x477, "V"), + (0x478, "M", "ѹ"), + (0x479, "V"), + (0x47A, "M", "ѻ"), + (0x47B, "V"), + (0x47C, "M", "ѽ"), + (0x47D, "V"), + (0x47E, "M", "ѿ"), + (0x47F, "V"), + (0x480, "M", "ҁ"), + (0x481, "V"), + (0x48A, "M", "ҋ"), + (0x48B, "V"), + (0x48C, "M", "ҍ"), + (0x48D, "V"), + (0x48E, "M", "ҏ"), + (0x48F, "V"), + (0x490, "M", "ґ"), + (0x491, "V"), + (0x492, "M", "ғ"), + (0x493, "V"), + (0x494, "M", "ҕ"), + (0x495, "V"), + (0x496, "M", "җ"), + (0x497, "V"), + (0x498, "M", "ҙ"), + (0x499, "V"), + (0x49A, "M", "қ"), + (0x49B, "V"), + (0x49C, "M", "ҝ"), + (0x49D, "V"), + ] + + +def _seg_8() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x49E, "M", "ҟ"), + (0x49F, "V"), + (0x4A0, "M", "ҡ"), + (0x4A1, "V"), + (0x4A2, "M", "ң"), + (0x4A3, "V"), + (0x4A4, "M", "ҥ"), + (0x4A5, "V"), + (0x4A6, "M", "ҧ"), + (0x4A7, "V"), + (0x4A8, "M", "ҩ"), + (0x4A9, "V"), + (0x4AA, "M", "ҫ"), + (0x4AB, "V"), + (0x4AC, "M", "ҭ"), + (0x4AD, "V"), + (0x4AE, "M", "ү"), + (0x4AF, "V"), + (0x4B0, "M", "ұ"), + (0x4B1, "V"), + (0x4B2, "M", "ҳ"), + (0x4B3, "V"), + (0x4B4, "M", "ҵ"), + (0x4B5, "V"), + (0x4B6, "M", "ҷ"), + (0x4B7, "V"), + (0x4B8, "M", "ҹ"), + (0x4B9, "V"), + (0x4BA, "M", "һ"), + (0x4BB, "V"), + (0x4BC, "M", "ҽ"), + (0x4BD, "V"), + (0x4BE, "M", "ҿ"), + (0x4BF, "V"), + (0x4C0, "M", "ӏ"), + (0x4C1, "M", "ӂ"), + (0x4C2, "V"), + (0x4C3, "M", "ӄ"), + (0x4C4, "V"), + (0x4C5, "M", "ӆ"), + (0x4C6, "V"), + (0x4C7, "M", "ӈ"), + (0x4C8, "V"), + (0x4C9, "M", "ӊ"), + (0x4CA, "V"), + (0x4CB, "M", "ӌ"), + (0x4CC, "V"), + (0x4CD, "M", "ӎ"), + (0x4CE, "V"), + (0x4D0, "M", "ӑ"), + (0x4D1, "V"), + (0x4D2, "M", "ӓ"), + (0x4D3, "V"), + (0x4D4, "M", "ӕ"), + (0x4D5, "V"), + (0x4D6, "M", "ӗ"), + (0x4D7, "V"), + (0x4D8, "M", "ә"), + (0x4D9, "V"), + (0x4DA, "M", "ӛ"), + (0x4DB, "V"), + (0x4DC, "M", "ӝ"), + (0x4DD, "V"), + (0x4DE, "M", "ӟ"), + (0x4DF, "V"), + (0x4E0, "M", "ӡ"), + (0x4E1, "V"), + (0x4E2, "M", "ӣ"), + (0x4E3, "V"), + (0x4E4, "M", "ӥ"), + (0x4E5, "V"), + (0x4E6, "M", "ӧ"), + (0x4E7, "V"), + (0x4E8, "M", "ө"), + (0x4E9, "V"), + (0x4EA, "M", "ӫ"), + (0x4EB, "V"), + (0x4EC, "M", "ӭ"), + (0x4ED, "V"), + (0x4EE, "M", "ӯ"), + (0x4EF, "V"), + (0x4F0, "M", "ӱ"), + (0x4F1, "V"), + (0x4F2, "M", "ӳ"), + (0x4F3, "V"), + (0x4F4, "M", "ӵ"), + (0x4F5, "V"), + (0x4F6, "M", "ӷ"), + (0x4F7, "V"), + (0x4F8, "M", "ӹ"), + (0x4F9, "V"), + (0x4FA, "M", "ӻ"), + (0x4FB, "V"), + (0x4FC, "M", "ӽ"), + (0x4FD, "V"), + (0x4FE, "M", "ӿ"), + (0x4FF, "V"), + (0x500, "M", "ԁ"), + (0x501, "V"), + (0x502, "M", "ԃ"), + ] + + +def _seg_9() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x503, "V"), + (0x504, "M", "ԅ"), + (0x505, "V"), + (0x506, "M", "ԇ"), + (0x507, "V"), + (0x508, "M", "ԉ"), + (0x509, "V"), + (0x50A, "M", "ԋ"), + (0x50B, "V"), + (0x50C, "M", "ԍ"), + (0x50D, "V"), + (0x50E, "M", "ԏ"), + (0x50F, "V"), + (0x510, "M", "ԑ"), + (0x511, "V"), + (0x512, "M", "ԓ"), + (0x513, "V"), + (0x514, "M", "ԕ"), + (0x515, "V"), + (0x516, "M", "ԗ"), + (0x517, "V"), + (0x518, "M", "ԙ"), + (0x519, "V"), + (0x51A, "M", "ԛ"), + (0x51B, "V"), + (0x51C, "M", "ԝ"), + (0x51D, "V"), + (0x51E, "M", "ԟ"), + (0x51F, "V"), + (0x520, "M", "ԡ"), + (0x521, "V"), + (0x522, "M", "ԣ"), + (0x523, "V"), + (0x524, "M", "ԥ"), + (0x525, "V"), + (0x526, "M", "ԧ"), + (0x527, "V"), + (0x528, "M", "ԩ"), + (0x529, "V"), + (0x52A, "M", "ԫ"), + (0x52B, "V"), + (0x52C, "M", "ԭ"), + (0x52D, "V"), + (0x52E, "M", "ԯ"), + (0x52F, "V"), + (0x530, "X"), + (0x531, "M", "ա"), + (0x532, "M", "բ"), + (0x533, "M", "գ"), + (0x534, "M", "դ"), + (0x535, "M", "ե"), + (0x536, "M", "զ"), + (0x537, "M", "է"), + (0x538, "M", "ը"), + (0x539, "M", "թ"), + (0x53A, "M", "ժ"), + (0x53B, "M", "ի"), + (0x53C, "M", "լ"), + (0x53D, "M", "խ"), + (0x53E, "M", "ծ"), + (0x53F, "M", "կ"), + (0x540, "M", "հ"), + (0x541, "M", "ձ"), + (0x542, "M", "ղ"), + (0x543, "M", "ճ"), + (0x544, "M", "մ"), + (0x545, "M", "յ"), + (0x546, "M", "ն"), + (0x547, "M", "շ"), + (0x548, "M", "ո"), + (0x549, "M", "չ"), + (0x54A, "M", "պ"), + (0x54B, "M", "ջ"), + (0x54C, "M", "ռ"), + (0x54D, "M", "ս"), + (0x54E, "M", "վ"), + (0x54F, "M", "տ"), + (0x550, "M", "ր"), + (0x551, "M", "ց"), + (0x552, "M", "ւ"), + (0x553, "M", "փ"), + (0x554, "M", "ք"), + (0x555, "M", "օ"), + (0x556, "M", "ֆ"), + (0x557, "X"), + (0x559, "V"), + (0x587, "M", "եւ"), + (0x588, "V"), + (0x58B, "X"), + (0x58D, "V"), + (0x590, "X"), + (0x591, "V"), + (0x5C8, "X"), + (0x5D0, "V"), + (0x5EB, "X"), + (0x5EF, "V"), + (0x5F5, "X"), + (0x606, "V"), + (0x61C, "X"), + (0x61D, "V"), + ] + + +def _seg_10() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x675, "M", "اٴ"), + (0x676, "M", "وٴ"), + (0x677, "M", "ۇٴ"), + (0x678, "M", "يٴ"), + (0x679, "V"), + (0x6DD, "X"), + (0x6DE, "V"), + (0x70E, "X"), + (0x710, "V"), + (0x74B, "X"), + (0x74D, "V"), + (0x7B2, "X"), + (0x7C0, "V"), + (0x7FB, "X"), + (0x7FD, "V"), + (0x82E, "X"), + (0x830, "V"), + (0x83F, "X"), + (0x840, "V"), + (0x85C, "X"), + (0x85E, "V"), + (0x85F, "X"), + (0x860, "V"), + (0x86B, "X"), + (0x870, "V"), + (0x88F, "X"), + (0x897, "V"), + (0x8E2, "X"), + (0x8E3, "V"), + (0x958, "M", "क़"), + (0x959, "M", "ख़"), + (0x95A, "M", "ग़"), + (0x95B, "M", "ज़"), + (0x95C, "M", "ड़"), + (0x95D, "M", "ढ़"), + (0x95E, "M", "फ़"), + (0x95F, "M", "य़"), + (0x960, "V"), + (0x984, "X"), + (0x985, "V"), + (0x98D, "X"), + (0x98F, "V"), + (0x991, "X"), + (0x993, "V"), + (0x9A9, "X"), + (0x9AA, "V"), + (0x9B1, "X"), + (0x9B2, "V"), + (0x9B3, "X"), + (0x9B6, "V"), + (0x9BA, "X"), + (0x9BC, "V"), + (0x9C5, "X"), + (0x9C7, "V"), + (0x9C9, "X"), + (0x9CB, "V"), + (0x9CF, "X"), + (0x9D7, "V"), + (0x9D8, "X"), + (0x9DC, "M", "ড়"), + (0x9DD, "M", "ঢ়"), + (0x9DE, "X"), + (0x9DF, "M", "য়"), + (0x9E0, "V"), + (0x9E4, "X"), + (0x9E6, "V"), + (0x9FF, "X"), + (0xA01, "V"), + (0xA04, "X"), + (0xA05, "V"), + (0xA0B, "X"), + (0xA0F, "V"), + (0xA11, "X"), + (0xA13, "V"), + (0xA29, "X"), + (0xA2A, "V"), + (0xA31, "X"), + (0xA32, "V"), + (0xA33, "M", "ਲ਼"), + (0xA34, "X"), + (0xA35, "V"), + (0xA36, "M", "ਸ਼"), + (0xA37, "X"), + (0xA38, "V"), + (0xA3A, "X"), + (0xA3C, "V"), + (0xA3D, "X"), + (0xA3E, "V"), + (0xA43, "X"), + (0xA47, "V"), + (0xA49, "X"), + (0xA4B, "V"), + (0xA4E, "X"), + (0xA51, "V"), + (0xA52, "X"), + (0xA59, "M", "ਖ਼"), + (0xA5A, "M", "ਗ਼"), + (0xA5B, "M", "ਜ਼"), + (0xA5C, "V"), + (0xA5D, "X"), + ] + + +def _seg_11() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xA5E, "M", "ਫ਼"), + (0xA5F, "X"), + (0xA66, "V"), + (0xA77, "X"), + (0xA81, "V"), + (0xA84, "X"), + (0xA85, "V"), + (0xA8E, "X"), + (0xA8F, "V"), + (0xA92, "X"), + (0xA93, "V"), + (0xAA9, "X"), + (0xAAA, "V"), + (0xAB1, "X"), + (0xAB2, "V"), + (0xAB4, "X"), + (0xAB5, "V"), + (0xABA, "X"), + (0xABC, "V"), + (0xAC6, "X"), + (0xAC7, "V"), + (0xACA, "X"), + (0xACB, "V"), + (0xACE, "X"), + (0xAD0, "V"), + (0xAD1, "X"), + (0xAE0, "V"), + (0xAE4, "X"), + (0xAE6, "V"), + (0xAF2, "X"), + (0xAF9, "V"), + (0xB00, "X"), + (0xB01, "V"), + (0xB04, "X"), + (0xB05, "V"), + (0xB0D, "X"), + (0xB0F, "V"), + (0xB11, "X"), + (0xB13, "V"), + (0xB29, "X"), + (0xB2A, "V"), + (0xB31, "X"), + (0xB32, "V"), + (0xB34, "X"), + (0xB35, "V"), + (0xB3A, "X"), + (0xB3C, "V"), + (0xB45, "X"), + (0xB47, "V"), + (0xB49, "X"), + (0xB4B, "V"), + (0xB4E, "X"), + (0xB55, "V"), + (0xB58, "X"), + (0xB5C, "M", "ଡ଼"), + (0xB5D, "M", "ଢ଼"), + (0xB5E, "X"), + (0xB5F, "V"), + (0xB64, "X"), + (0xB66, "V"), + (0xB78, "X"), + (0xB82, "V"), + (0xB84, "X"), + (0xB85, "V"), + (0xB8B, "X"), + (0xB8E, "V"), + (0xB91, "X"), + (0xB92, "V"), + (0xB96, "X"), + (0xB99, "V"), + (0xB9B, "X"), + (0xB9C, "V"), + (0xB9D, "X"), + (0xB9E, "V"), + (0xBA0, "X"), + (0xBA3, "V"), + (0xBA5, "X"), + (0xBA8, "V"), + (0xBAB, "X"), + (0xBAE, "V"), + (0xBBA, "X"), + (0xBBE, "V"), + (0xBC3, "X"), + (0xBC6, "V"), + (0xBC9, "X"), + (0xBCA, "V"), + (0xBCE, "X"), + (0xBD0, "V"), + (0xBD1, "X"), + (0xBD7, "V"), + (0xBD8, "X"), + (0xBE6, "V"), + (0xBFB, "X"), + (0xC00, "V"), + (0xC0D, "X"), + (0xC0E, "V"), + (0xC11, "X"), + (0xC12, "V"), + (0xC29, "X"), + (0xC2A, "V"), + ] + + +def _seg_12() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xC3A, "X"), + (0xC3C, "V"), + (0xC45, "X"), + (0xC46, "V"), + (0xC49, "X"), + (0xC4A, "V"), + (0xC4E, "X"), + (0xC55, "V"), + (0xC57, "X"), + (0xC58, "V"), + (0xC5B, "X"), + (0xC5D, "V"), + (0xC5E, "X"), + (0xC60, "V"), + (0xC64, "X"), + (0xC66, "V"), + (0xC70, "X"), + (0xC77, "V"), + (0xC8D, "X"), + (0xC8E, "V"), + (0xC91, "X"), + (0xC92, "V"), + (0xCA9, "X"), + (0xCAA, "V"), + (0xCB4, "X"), + (0xCB5, "V"), + (0xCBA, "X"), + (0xCBC, "V"), + (0xCC5, "X"), + (0xCC6, "V"), + (0xCC9, "X"), + (0xCCA, "V"), + (0xCCE, "X"), + (0xCD5, "V"), + (0xCD7, "X"), + (0xCDD, "V"), + (0xCDF, "X"), + (0xCE0, "V"), + (0xCE4, "X"), + (0xCE6, "V"), + (0xCF0, "X"), + (0xCF1, "V"), + (0xCF4, "X"), + (0xD00, "V"), + (0xD0D, "X"), + (0xD0E, "V"), + (0xD11, "X"), + (0xD12, "V"), + (0xD45, "X"), + (0xD46, "V"), + (0xD49, "X"), + (0xD4A, "V"), + (0xD50, "X"), + (0xD54, "V"), + (0xD64, "X"), + (0xD66, "V"), + (0xD80, "X"), + (0xD81, "V"), + (0xD84, "X"), + (0xD85, "V"), + (0xD97, "X"), + (0xD9A, "V"), + (0xDB2, "X"), + (0xDB3, "V"), + (0xDBC, "X"), + (0xDBD, "V"), + (0xDBE, "X"), + (0xDC0, "V"), + (0xDC7, "X"), + (0xDCA, "V"), + (0xDCB, "X"), + (0xDCF, "V"), + (0xDD5, "X"), + (0xDD6, "V"), + (0xDD7, "X"), + (0xDD8, "V"), + (0xDE0, "X"), + (0xDE6, "V"), + (0xDF0, "X"), + (0xDF2, "V"), + (0xDF5, "X"), + (0xE01, "V"), + (0xE33, "M", "ํา"), + (0xE34, "V"), + (0xE3B, "X"), + (0xE3F, "V"), + (0xE5C, "X"), + (0xE81, "V"), + (0xE83, "X"), + (0xE84, "V"), + (0xE85, "X"), + (0xE86, "V"), + (0xE8B, "X"), + (0xE8C, "V"), + (0xEA4, "X"), + (0xEA5, "V"), + (0xEA6, "X"), + (0xEA7, "V"), + (0xEB3, "M", "ໍາ"), + (0xEB4, "V"), + ] + + +def _seg_13() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xEBE, "X"), + (0xEC0, "V"), + (0xEC5, "X"), + (0xEC6, "V"), + (0xEC7, "X"), + (0xEC8, "V"), + (0xECF, "X"), + (0xED0, "V"), + (0xEDA, "X"), + (0xEDC, "M", "ຫນ"), + (0xEDD, "M", "ຫມ"), + (0xEDE, "V"), + (0xEE0, "X"), + (0xF00, "V"), + (0xF0C, "M", "་"), + (0xF0D, "V"), + (0xF43, "M", "གྷ"), + (0xF44, "V"), + (0xF48, "X"), + (0xF49, "V"), + (0xF4D, "M", "ཌྷ"), + (0xF4E, "V"), + (0xF52, "M", "དྷ"), + (0xF53, "V"), + (0xF57, "M", "བྷ"), + (0xF58, "V"), + (0xF5C, "M", "ཛྷ"), + (0xF5D, "V"), + (0xF69, "M", "ཀྵ"), + (0xF6A, "V"), + (0xF6D, "X"), + (0xF71, "V"), + (0xF73, "M", "ཱི"), + (0xF74, "V"), + (0xF75, "M", "ཱུ"), + (0xF76, "M", "ྲྀ"), + (0xF77, "M", "ྲཱྀ"), + (0xF78, "M", "ླྀ"), + (0xF79, "M", "ླཱྀ"), + (0xF7A, "V"), + (0xF81, "M", "ཱྀ"), + (0xF82, "V"), + (0xF93, "M", "ྒྷ"), + (0xF94, "V"), + (0xF98, "X"), + (0xF99, "V"), + (0xF9D, "M", "ྜྷ"), + (0xF9E, "V"), + (0xFA2, "M", "ྡྷ"), + (0xFA3, "V"), + (0xFA7, "M", "ྦྷ"), + (0xFA8, "V"), + (0xFAC, "M", "ྫྷ"), + (0xFAD, "V"), + (0xFB9, "M", "ྐྵ"), + (0xFBA, "V"), + (0xFBD, "X"), + (0xFBE, "V"), + (0xFCD, "X"), + (0xFCE, "V"), + (0xFDB, "X"), + (0x1000, "V"), + (0x10A0, "M", "ⴀ"), + (0x10A1, "M", "ⴁ"), + (0x10A2, "M", "ⴂ"), + (0x10A3, "M", "ⴃ"), + (0x10A4, "M", "ⴄ"), + (0x10A5, "M", "ⴅ"), + (0x10A6, "M", "ⴆ"), + (0x10A7, "M", "ⴇ"), + (0x10A8, "M", "ⴈ"), + (0x10A9, "M", "ⴉ"), + (0x10AA, "M", "ⴊ"), + (0x10AB, "M", "ⴋ"), + (0x10AC, "M", "ⴌ"), + (0x10AD, "M", "ⴍ"), + (0x10AE, "M", "ⴎ"), + (0x10AF, "M", "ⴏ"), + (0x10B0, "M", "ⴐ"), + (0x10B1, "M", "ⴑ"), + (0x10B2, "M", "ⴒ"), + (0x10B3, "M", "ⴓ"), + (0x10B4, "M", "ⴔ"), + (0x10B5, "M", "ⴕ"), + (0x10B6, "M", "ⴖ"), + (0x10B7, "M", "ⴗ"), + (0x10B8, "M", "ⴘ"), + (0x10B9, "M", "ⴙ"), + (0x10BA, "M", "ⴚ"), + (0x10BB, "M", "ⴛ"), + (0x10BC, "M", "ⴜ"), + (0x10BD, "M", "ⴝ"), + (0x10BE, "M", "ⴞ"), + (0x10BF, "M", "ⴟ"), + (0x10C0, "M", "ⴠ"), + (0x10C1, "M", "ⴡ"), + (0x10C2, "M", "ⴢ"), + (0x10C3, "M", "ⴣ"), + (0x10C4, "M", "ⴤ"), + (0x10C5, "M", "ⴥ"), + ] + + +def _seg_14() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x10C6, "X"), + (0x10C7, "M", "ⴧ"), + (0x10C8, "X"), + (0x10CD, "M", "ⴭ"), + (0x10CE, "X"), + (0x10D0, "V"), + (0x10FC, "M", "ნ"), + (0x10FD, "V"), + (0x115F, "I"), + (0x1161, "V"), + (0x1249, "X"), + (0x124A, "V"), + (0x124E, "X"), + (0x1250, "V"), + (0x1257, "X"), + (0x1258, "V"), + (0x1259, "X"), + (0x125A, "V"), + (0x125E, "X"), + (0x1260, "V"), + (0x1289, "X"), + (0x128A, "V"), + (0x128E, "X"), + (0x1290, "V"), + (0x12B1, "X"), + (0x12B2, "V"), + (0x12B6, "X"), + (0x12B8, "V"), + (0x12BF, "X"), + (0x12C0, "V"), + (0x12C1, "X"), + (0x12C2, "V"), + (0x12C6, "X"), + (0x12C8, "V"), + (0x12D7, "X"), + (0x12D8, "V"), + (0x1311, "X"), + (0x1312, "V"), + (0x1316, "X"), + (0x1318, "V"), + (0x135B, "X"), + (0x135D, "V"), + (0x137D, "X"), + (0x1380, "V"), + (0x139A, "X"), + (0x13A0, "V"), + (0x13F6, "X"), + (0x13F8, "M", "Ᏸ"), + (0x13F9, "M", "Ᏹ"), + (0x13FA, "M", "Ᏺ"), + (0x13FB, "M", "Ᏻ"), + (0x13FC, "M", "Ᏼ"), + (0x13FD, "M", "Ᏽ"), + (0x13FE, "X"), + (0x1400, "V"), + (0x1680, "X"), + (0x1681, "V"), + (0x169D, "X"), + (0x16A0, "V"), + (0x16F9, "X"), + (0x1700, "V"), + (0x1716, "X"), + (0x171F, "V"), + (0x1737, "X"), + (0x1740, "V"), + (0x1754, "X"), + (0x1760, "V"), + (0x176D, "X"), + (0x176E, "V"), + (0x1771, "X"), + (0x1772, "V"), + (0x1774, "X"), + (0x1780, "V"), + (0x17B4, "I"), + (0x17B6, "V"), + (0x17DE, "X"), + (0x17E0, "V"), + (0x17EA, "X"), + (0x17F0, "V"), + (0x17FA, "X"), + (0x1800, "V"), + (0x180B, "I"), + (0x1810, "V"), + (0x181A, "X"), + (0x1820, "V"), + (0x1879, "X"), + (0x1880, "V"), + (0x18AB, "X"), + (0x18B0, "V"), + (0x18F6, "X"), + (0x1900, "V"), + (0x191F, "X"), + (0x1920, "V"), + (0x192C, "X"), + (0x1930, "V"), + (0x193C, "X"), + (0x1940, "V"), + (0x1941, "X"), + (0x1944, "V"), + (0x196E, "X"), + ] + + +def _seg_15() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1970, "V"), + (0x1975, "X"), + (0x1980, "V"), + (0x19AC, "X"), + (0x19B0, "V"), + (0x19CA, "X"), + (0x19D0, "V"), + (0x19DB, "X"), + (0x19DE, "V"), + (0x1A1C, "X"), + (0x1A1E, "V"), + (0x1A5F, "X"), + (0x1A60, "V"), + (0x1A7D, "X"), + (0x1A7F, "V"), + (0x1A8A, "X"), + (0x1A90, "V"), + (0x1A9A, "X"), + (0x1AA0, "V"), + (0x1AAE, "X"), + (0x1AB0, "V"), + (0x1ACF, "X"), + (0x1B00, "V"), + (0x1B4D, "X"), + (0x1B4E, "V"), + (0x1BF4, "X"), + (0x1BFC, "V"), + (0x1C38, "X"), + (0x1C3B, "V"), + (0x1C4A, "X"), + (0x1C4D, "V"), + (0x1C80, "M", "в"), + (0x1C81, "M", "д"), + (0x1C82, "M", "о"), + (0x1C83, "M", "с"), + (0x1C84, "M", "т"), + (0x1C86, "M", "ъ"), + (0x1C87, "M", "ѣ"), + (0x1C88, "M", "ꙋ"), + (0x1C89, "M", "ᲊ"), + (0x1C8A, "V"), + (0x1C8B, "X"), + (0x1C90, "M", "ა"), + (0x1C91, "M", "ბ"), + (0x1C92, "M", "გ"), + (0x1C93, "M", "დ"), + (0x1C94, "M", "ე"), + (0x1C95, "M", "ვ"), + (0x1C96, "M", "ზ"), + (0x1C97, "M", "თ"), + (0x1C98, "M", "ი"), + (0x1C99, "M", "კ"), + (0x1C9A, "M", "ლ"), + (0x1C9B, "M", "მ"), + (0x1C9C, "M", "ნ"), + (0x1C9D, "M", "ო"), + (0x1C9E, "M", "პ"), + (0x1C9F, "M", "ჟ"), + (0x1CA0, "M", "რ"), + (0x1CA1, "M", "ს"), + (0x1CA2, "M", "ტ"), + (0x1CA3, "M", "უ"), + (0x1CA4, "M", "ფ"), + (0x1CA5, "M", "ქ"), + (0x1CA6, "M", "ღ"), + (0x1CA7, "M", "ყ"), + (0x1CA8, "M", "შ"), + (0x1CA9, "M", "ჩ"), + (0x1CAA, "M", "ც"), + (0x1CAB, "M", "ძ"), + (0x1CAC, "M", "წ"), + (0x1CAD, "M", "ჭ"), + (0x1CAE, "M", "ხ"), + (0x1CAF, "M", "ჯ"), + (0x1CB0, "M", "ჰ"), + (0x1CB1, "M", "ჱ"), + (0x1CB2, "M", "ჲ"), + (0x1CB3, "M", "ჳ"), + (0x1CB4, "M", "ჴ"), + (0x1CB5, "M", "ჵ"), + (0x1CB6, "M", "ჶ"), + (0x1CB7, "M", "ჷ"), + (0x1CB8, "M", "ჸ"), + (0x1CB9, "M", "ჹ"), + (0x1CBA, "M", "ჺ"), + (0x1CBB, "X"), + (0x1CBD, "M", "ჽ"), + (0x1CBE, "M", "ჾ"), + (0x1CBF, "M", "ჿ"), + (0x1CC0, "V"), + (0x1CC8, "X"), + (0x1CD0, "V"), + (0x1CFB, "X"), + (0x1D00, "V"), + (0x1D2C, "M", "a"), + (0x1D2D, "M", "æ"), + (0x1D2E, "M", "b"), + (0x1D2F, "V"), + (0x1D30, "M", "d"), + (0x1D31, "M", "e"), + ] + + +def _seg_16() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D32, "M", "ǝ"), + (0x1D33, "M", "g"), + (0x1D34, "M", "h"), + (0x1D35, "M", "i"), + (0x1D36, "M", "j"), + (0x1D37, "M", "k"), + (0x1D38, "M", "l"), + (0x1D39, "M", "m"), + (0x1D3A, "M", "n"), + (0x1D3B, "V"), + (0x1D3C, "M", "o"), + (0x1D3D, "M", "ȣ"), + (0x1D3E, "M", "p"), + (0x1D3F, "M", "r"), + (0x1D40, "M", "t"), + (0x1D41, "M", "u"), + (0x1D42, "M", "w"), + (0x1D43, "M", "a"), + (0x1D44, "M", "ɐ"), + (0x1D45, "M", "ɑ"), + (0x1D46, "M", "ᴂ"), + (0x1D47, "M", "b"), + (0x1D48, "M", "d"), + (0x1D49, "M", "e"), + (0x1D4A, "M", "ə"), + (0x1D4B, "M", "ɛ"), + (0x1D4C, "M", "ɜ"), + (0x1D4D, "M", "g"), + (0x1D4E, "V"), + (0x1D4F, "M", "k"), + (0x1D50, "M", "m"), + (0x1D51, "M", "ŋ"), + (0x1D52, "M", "o"), + (0x1D53, "M", "ɔ"), + (0x1D54, "M", "ᴖ"), + (0x1D55, "M", "ᴗ"), + (0x1D56, "M", "p"), + (0x1D57, "M", "t"), + (0x1D58, "M", "u"), + (0x1D59, "M", "ᴝ"), + (0x1D5A, "M", "ɯ"), + (0x1D5B, "M", "v"), + (0x1D5C, "M", "ᴥ"), + (0x1D5D, "M", "β"), + (0x1D5E, "M", "γ"), + (0x1D5F, "M", "δ"), + (0x1D60, "M", "φ"), + (0x1D61, "M", "χ"), + (0x1D62, "M", "i"), + (0x1D63, "M", "r"), + (0x1D64, "M", "u"), + (0x1D65, "M", "v"), + (0x1D66, "M", "β"), + (0x1D67, "M", "γ"), + (0x1D68, "M", "ρ"), + (0x1D69, "M", "φ"), + (0x1D6A, "M", "χ"), + (0x1D6B, "V"), + (0x1D78, "M", "н"), + (0x1D79, "V"), + (0x1D9B, "M", "ɒ"), + (0x1D9C, "M", "c"), + (0x1D9D, "M", "ɕ"), + (0x1D9E, "M", "ð"), + (0x1D9F, "M", "ɜ"), + (0x1DA0, "M", "f"), + (0x1DA1, "M", "ɟ"), + (0x1DA2, "M", "ɡ"), + (0x1DA3, "M", "ɥ"), + (0x1DA4, "M", "ɨ"), + (0x1DA5, "M", "ɩ"), + (0x1DA6, "M", "ɪ"), + (0x1DA7, "M", "ᵻ"), + (0x1DA8, "M", "ʝ"), + (0x1DA9, "M", "ɭ"), + (0x1DAA, "M", "ᶅ"), + (0x1DAB, "M", "ʟ"), + (0x1DAC, "M", "ɱ"), + (0x1DAD, "M", "ɰ"), + (0x1DAE, "M", "ɲ"), + (0x1DAF, "M", "ɳ"), + (0x1DB0, "M", "ɴ"), + (0x1DB1, "M", "ɵ"), + (0x1DB2, "M", "ɸ"), + (0x1DB3, "M", "ʂ"), + (0x1DB4, "M", "ʃ"), + (0x1DB5, "M", "ƫ"), + (0x1DB6, "M", "ʉ"), + (0x1DB7, "M", "ʊ"), + (0x1DB8, "M", "ᴜ"), + (0x1DB9, "M", "ʋ"), + (0x1DBA, "M", "ʌ"), + (0x1DBB, "M", "z"), + (0x1DBC, "M", "ʐ"), + (0x1DBD, "M", "ʑ"), + (0x1DBE, "M", "ʒ"), + (0x1DBF, "M", "θ"), + (0x1DC0, "V"), + (0x1E00, "M", "ḁ"), + (0x1E01, "V"), + ] + + +def _seg_17() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1E02, "M", "ḃ"), + (0x1E03, "V"), + (0x1E04, "M", "ḅ"), + (0x1E05, "V"), + (0x1E06, "M", "ḇ"), + (0x1E07, "V"), + (0x1E08, "M", "ḉ"), + (0x1E09, "V"), + (0x1E0A, "M", "ḋ"), + (0x1E0B, "V"), + (0x1E0C, "M", "ḍ"), + (0x1E0D, "V"), + (0x1E0E, "M", "ḏ"), + (0x1E0F, "V"), + (0x1E10, "M", "ḑ"), + (0x1E11, "V"), + (0x1E12, "M", "ḓ"), + (0x1E13, "V"), + (0x1E14, "M", "ḕ"), + (0x1E15, "V"), + (0x1E16, "M", "ḗ"), + (0x1E17, "V"), + (0x1E18, "M", "ḙ"), + (0x1E19, "V"), + (0x1E1A, "M", "ḛ"), + (0x1E1B, "V"), + (0x1E1C, "M", "ḝ"), + (0x1E1D, "V"), + (0x1E1E, "M", "ḟ"), + (0x1E1F, "V"), + (0x1E20, "M", "ḡ"), + (0x1E21, "V"), + (0x1E22, "M", "ḣ"), + (0x1E23, "V"), + (0x1E24, "M", "ḥ"), + (0x1E25, "V"), + (0x1E26, "M", "ḧ"), + (0x1E27, "V"), + (0x1E28, "M", "ḩ"), + (0x1E29, "V"), + (0x1E2A, "M", "ḫ"), + (0x1E2B, "V"), + (0x1E2C, "M", "ḭ"), + (0x1E2D, "V"), + (0x1E2E, "M", "ḯ"), + (0x1E2F, "V"), + (0x1E30, "M", "ḱ"), + (0x1E31, "V"), + (0x1E32, "M", "ḳ"), + (0x1E33, "V"), + (0x1E34, "M", "ḵ"), + (0x1E35, "V"), + (0x1E36, "M", "ḷ"), + (0x1E37, "V"), + (0x1E38, "M", "ḹ"), + (0x1E39, "V"), + (0x1E3A, "M", "ḻ"), + (0x1E3B, "V"), + (0x1E3C, "M", "ḽ"), + (0x1E3D, "V"), + (0x1E3E, "M", "ḿ"), + (0x1E3F, "V"), + (0x1E40, "M", "ṁ"), + (0x1E41, "V"), + (0x1E42, "M", "ṃ"), + (0x1E43, "V"), + (0x1E44, "M", "ṅ"), + (0x1E45, "V"), + (0x1E46, "M", "ṇ"), + (0x1E47, "V"), + (0x1E48, "M", "ṉ"), + (0x1E49, "V"), + (0x1E4A, "M", "ṋ"), + (0x1E4B, "V"), + (0x1E4C, "M", "ṍ"), + (0x1E4D, "V"), + (0x1E4E, "M", "ṏ"), + (0x1E4F, "V"), + (0x1E50, "M", "ṑ"), + (0x1E51, "V"), + (0x1E52, "M", "ṓ"), + (0x1E53, "V"), + (0x1E54, "M", "ṕ"), + (0x1E55, "V"), + (0x1E56, "M", "ṗ"), + (0x1E57, "V"), + (0x1E58, "M", "ṙ"), + (0x1E59, "V"), + (0x1E5A, "M", "ṛ"), + (0x1E5B, "V"), + (0x1E5C, "M", "ṝ"), + (0x1E5D, "V"), + (0x1E5E, "M", "ṟ"), + (0x1E5F, "V"), + (0x1E60, "M", "ṡ"), + (0x1E61, "V"), + (0x1E62, "M", "ṣ"), + (0x1E63, "V"), + (0x1E64, "M", "ṥ"), + (0x1E65, "V"), + ] + + +def _seg_18() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1E66, "M", "ṧ"), + (0x1E67, "V"), + (0x1E68, "M", "ṩ"), + (0x1E69, "V"), + (0x1E6A, "M", "ṫ"), + (0x1E6B, "V"), + (0x1E6C, "M", "ṭ"), + (0x1E6D, "V"), + (0x1E6E, "M", "ṯ"), + (0x1E6F, "V"), + (0x1E70, "M", "ṱ"), + (0x1E71, "V"), + (0x1E72, "M", "ṳ"), + (0x1E73, "V"), + (0x1E74, "M", "ṵ"), + (0x1E75, "V"), + (0x1E76, "M", "ṷ"), + (0x1E77, "V"), + (0x1E78, "M", "ṹ"), + (0x1E79, "V"), + (0x1E7A, "M", "ṻ"), + (0x1E7B, "V"), + (0x1E7C, "M", "ṽ"), + (0x1E7D, "V"), + (0x1E7E, "M", "ṿ"), + (0x1E7F, "V"), + (0x1E80, "M", "ẁ"), + (0x1E81, "V"), + (0x1E82, "M", "ẃ"), + (0x1E83, "V"), + (0x1E84, "M", "ẅ"), + (0x1E85, "V"), + (0x1E86, "M", "ẇ"), + (0x1E87, "V"), + (0x1E88, "M", "ẉ"), + (0x1E89, "V"), + (0x1E8A, "M", "ẋ"), + (0x1E8B, "V"), + (0x1E8C, "M", "ẍ"), + (0x1E8D, "V"), + (0x1E8E, "M", "ẏ"), + (0x1E8F, "V"), + (0x1E90, "M", "ẑ"), + (0x1E91, "V"), + (0x1E92, "M", "ẓ"), + (0x1E93, "V"), + (0x1E94, "M", "ẕ"), + (0x1E95, "V"), + (0x1E9A, "M", "aʾ"), + (0x1E9B, "M", "ṡ"), + (0x1E9C, "V"), + (0x1E9E, "M", "ß"), + (0x1E9F, "V"), + (0x1EA0, "M", "ạ"), + (0x1EA1, "V"), + (0x1EA2, "M", "ả"), + (0x1EA3, "V"), + (0x1EA4, "M", "ấ"), + (0x1EA5, "V"), + (0x1EA6, "M", "ầ"), + (0x1EA7, "V"), + (0x1EA8, "M", "ẩ"), + (0x1EA9, "V"), + (0x1EAA, "M", "ẫ"), + (0x1EAB, "V"), + (0x1EAC, "M", "ậ"), + (0x1EAD, "V"), + (0x1EAE, "M", "ắ"), + (0x1EAF, "V"), + (0x1EB0, "M", "ằ"), + (0x1EB1, "V"), + (0x1EB2, "M", "ẳ"), + (0x1EB3, "V"), + (0x1EB4, "M", "ẵ"), + (0x1EB5, "V"), + (0x1EB6, "M", "ặ"), + (0x1EB7, "V"), + (0x1EB8, "M", "ẹ"), + (0x1EB9, "V"), + (0x1EBA, "M", "ẻ"), + (0x1EBB, "V"), + (0x1EBC, "M", "ẽ"), + (0x1EBD, "V"), + (0x1EBE, "M", "ế"), + (0x1EBF, "V"), + (0x1EC0, "M", "ề"), + (0x1EC1, "V"), + (0x1EC2, "M", "ể"), + (0x1EC3, "V"), + (0x1EC4, "M", "ễ"), + (0x1EC5, "V"), + (0x1EC6, "M", "ệ"), + (0x1EC7, "V"), + (0x1EC8, "M", "ỉ"), + (0x1EC9, "V"), + (0x1ECA, "M", "ị"), + (0x1ECB, "V"), + (0x1ECC, "M", "ọ"), + (0x1ECD, "V"), + (0x1ECE, "M", "ỏ"), + ] + + +def _seg_19() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1ECF, "V"), + (0x1ED0, "M", "ố"), + (0x1ED1, "V"), + (0x1ED2, "M", "ồ"), + (0x1ED3, "V"), + (0x1ED4, "M", "ổ"), + (0x1ED5, "V"), + (0x1ED6, "M", "ỗ"), + (0x1ED7, "V"), + (0x1ED8, "M", "ộ"), + (0x1ED9, "V"), + (0x1EDA, "M", "ớ"), + (0x1EDB, "V"), + (0x1EDC, "M", "ờ"), + (0x1EDD, "V"), + (0x1EDE, "M", "ở"), + (0x1EDF, "V"), + (0x1EE0, "M", "ỡ"), + (0x1EE1, "V"), + (0x1EE2, "M", "ợ"), + (0x1EE3, "V"), + (0x1EE4, "M", "ụ"), + (0x1EE5, "V"), + (0x1EE6, "M", "ủ"), + (0x1EE7, "V"), + (0x1EE8, "M", "ứ"), + (0x1EE9, "V"), + (0x1EEA, "M", "ừ"), + (0x1EEB, "V"), + (0x1EEC, "M", "ử"), + (0x1EED, "V"), + (0x1EEE, "M", "ữ"), + (0x1EEF, "V"), + (0x1EF0, "M", "ự"), + (0x1EF1, "V"), + (0x1EF2, "M", "ỳ"), + (0x1EF3, "V"), + (0x1EF4, "M", "ỵ"), + (0x1EF5, "V"), + (0x1EF6, "M", "ỷ"), + (0x1EF7, "V"), + (0x1EF8, "M", "ỹ"), + (0x1EF9, "V"), + (0x1EFA, "M", "ỻ"), + (0x1EFB, "V"), + (0x1EFC, "M", "ỽ"), + (0x1EFD, "V"), + (0x1EFE, "M", "ỿ"), + (0x1EFF, "V"), + (0x1F08, "M", "ἀ"), + (0x1F09, "M", "ἁ"), + (0x1F0A, "M", "ἂ"), + (0x1F0B, "M", "ἃ"), + (0x1F0C, "M", "ἄ"), + (0x1F0D, "M", "ἅ"), + (0x1F0E, "M", "ἆ"), + (0x1F0F, "M", "ἇ"), + (0x1F10, "V"), + (0x1F16, "X"), + (0x1F18, "M", "ἐ"), + (0x1F19, "M", "ἑ"), + (0x1F1A, "M", "ἒ"), + (0x1F1B, "M", "ἓ"), + (0x1F1C, "M", "ἔ"), + (0x1F1D, "M", "ἕ"), + (0x1F1E, "X"), + (0x1F20, "V"), + (0x1F28, "M", "ἠ"), + (0x1F29, "M", "ἡ"), + (0x1F2A, "M", "ἢ"), + (0x1F2B, "M", "ἣ"), + (0x1F2C, "M", "ἤ"), + (0x1F2D, "M", "ἥ"), + (0x1F2E, "M", "ἦ"), + (0x1F2F, "M", "ἧ"), + (0x1F30, "V"), + (0x1F38, "M", "ἰ"), + (0x1F39, "M", "ἱ"), + (0x1F3A, "M", "ἲ"), + (0x1F3B, "M", "ἳ"), + (0x1F3C, "M", "ἴ"), + (0x1F3D, "M", "ἵ"), + (0x1F3E, "M", "ἶ"), + (0x1F3F, "M", "ἷ"), + (0x1F40, "V"), + (0x1F46, "X"), + (0x1F48, "M", "ὀ"), + (0x1F49, "M", "ὁ"), + (0x1F4A, "M", "ὂ"), + (0x1F4B, "M", "ὃ"), + (0x1F4C, "M", "ὄ"), + (0x1F4D, "M", "ὅ"), + (0x1F4E, "X"), + (0x1F50, "V"), + (0x1F58, "X"), + (0x1F59, "M", "ὑ"), + (0x1F5A, "X"), + (0x1F5B, "M", "ὓ"), + (0x1F5C, "X"), + (0x1F5D, "M", "ὕ"), + ] + + +def _seg_20() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1F5E, "X"), + (0x1F5F, "M", "ὗ"), + (0x1F60, "V"), + (0x1F68, "M", "ὠ"), + (0x1F69, "M", "ὡ"), + (0x1F6A, "M", "ὢ"), + (0x1F6B, "M", "ὣ"), + (0x1F6C, "M", "ὤ"), + (0x1F6D, "M", "ὥ"), + (0x1F6E, "M", "ὦ"), + (0x1F6F, "M", "ὧ"), + (0x1F70, "V"), + (0x1F71, "M", "ά"), + (0x1F72, "V"), + (0x1F73, "M", "έ"), + (0x1F74, "V"), + (0x1F75, "M", "ή"), + (0x1F76, "V"), + (0x1F77, "M", "ί"), + (0x1F78, "V"), + (0x1F79, "M", "ό"), + (0x1F7A, "V"), + (0x1F7B, "M", "ύ"), + (0x1F7C, "V"), + (0x1F7D, "M", "ώ"), + (0x1F7E, "X"), + (0x1F80, "M", "ἀι"), + (0x1F81, "M", "ἁι"), + (0x1F82, "M", "ἂι"), + (0x1F83, "M", "ἃι"), + (0x1F84, "M", "ἄι"), + (0x1F85, "M", "ἅι"), + (0x1F86, "M", "ἆι"), + (0x1F87, "M", "ἇι"), + (0x1F88, "M", "ἀι"), + (0x1F89, "M", "ἁι"), + (0x1F8A, "M", "ἂι"), + (0x1F8B, "M", "ἃι"), + (0x1F8C, "M", "ἄι"), + (0x1F8D, "M", "ἅι"), + (0x1F8E, "M", "ἆι"), + (0x1F8F, "M", "ἇι"), + (0x1F90, "M", "ἠι"), + (0x1F91, "M", "ἡι"), + (0x1F92, "M", "ἢι"), + (0x1F93, "M", "ἣι"), + (0x1F94, "M", "ἤι"), + (0x1F95, "M", "ἥι"), + (0x1F96, "M", "ἦι"), + (0x1F97, "M", "ἧι"), + (0x1F98, "M", "ἠι"), + (0x1F99, "M", "ἡι"), + (0x1F9A, "M", "ἢι"), + (0x1F9B, "M", "ἣι"), + (0x1F9C, "M", "ἤι"), + (0x1F9D, "M", "ἥι"), + (0x1F9E, "M", "ἦι"), + (0x1F9F, "M", "ἧι"), + (0x1FA0, "M", "ὠι"), + (0x1FA1, "M", "ὡι"), + (0x1FA2, "M", "ὢι"), + (0x1FA3, "M", "ὣι"), + (0x1FA4, "M", "ὤι"), + (0x1FA5, "M", "ὥι"), + (0x1FA6, "M", "ὦι"), + (0x1FA7, "M", "ὧι"), + (0x1FA8, "M", "ὠι"), + (0x1FA9, "M", "ὡι"), + (0x1FAA, "M", "ὢι"), + (0x1FAB, "M", "ὣι"), + (0x1FAC, "M", "ὤι"), + (0x1FAD, "M", "ὥι"), + (0x1FAE, "M", "ὦι"), + (0x1FAF, "M", "ὧι"), + (0x1FB0, "V"), + (0x1FB2, "M", "ὰι"), + (0x1FB3, "M", "αι"), + (0x1FB4, "M", "άι"), + (0x1FB5, "X"), + (0x1FB6, "V"), + (0x1FB7, "M", "ᾶι"), + (0x1FB8, "M", "ᾰ"), + (0x1FB9, "M", "ᾱ"), + (0x1FBA, "M", "ὰ"), + (0x1FBB, "M", "ά"), + (0x1FBC, "M", "αι"), + (0x1FBD, "M", " ̓"), + (0x1FBE, "M", "ι"), + (0x1FBF, "M", " ̓"), + (0x1FC0, "M", " ͂"), + (0x1FC1, "M", " ̈͂"), + (0x1FC2, "M", "ὴι"), + (0x1FC3, "M", "ηι"), + (0x1FC4, "M", "ήι"), + (0x1FC5, "X"), + (0x1FC6, "V"), + (0x1FC7, "M", "ῆι"), + (0x1FC8, "M", "ὲ"), + (0x1FC9, "M", "έ"), + (0x1FCA, "M", "ὴ"), + ] + + +def _seg_21() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1FCB, "M", "ή"), + (0x1FCC, "M", "ηι"), + (0x1FCD, "M", " ̓̀"), + (0x1FCE, "M", " ̓́"), + (0x1FCF, "M", " ̓͂"), + (0x1FD0, "V"), + (0x1FD3, "M", "ΐ"), + (0x1FD4, "X"), + (0x1FD6, "V"), + (0x1FD8, "M", "ῐ"), + (0x1FD9, "M", "ῑ"), + (0x1FDA, "M", "ὶ"), + (0x1FDB, "M", "ί"), + (0x1FDC, "X"), + (0x1FDD, "M", " ̔̀"), + (0x1FDE, "M", " ̔́"), + (0x1FDF, "M", " ̔͂"), + (0x1FE0, "V"), + (0x1FE3, "M", "ΰ"), + (0x1FE4, "V"), + (0x1FE8, "M", "ῠ"), + (0x1FE9, "M", "ῡ"), + (0x1FEA, "M", "ὺ"), + (0x1FEB, "M", "ύ"), + (0x1FEC, "M", "ῥ"), + (0x1FED, "M", " ̈̀"), + (0x1FEE, "M", " ̈́"), + (0x1FEF, "M", "`"), + (0x1FF0, "X"), + (0x1FF2, "M", "ὼι"), + (0x1FF3, "M", "ωι"), + (0x1FF4, "M", "ώι"), + (0x1FF5, "X"), + (0x1FF6, "V"), + (0x1FF7, "M", "ῶι"), + (0x1FF8, "M", "ὸ"), + (0x1FF9, "M", "ό"), + (0x1FFA, "M", "ὼ"), + (0x1FFB, "M", "ώ"), + (0x1FFC, "M", "ωι"), + (0x1FFD, "M", " ́"), + (0x1FFE, "M", " ̔"), + (0x1FFF, "X"), + (0x2000, "M", " "), + (0x200B, "I"), + (0x200C, "D", ""), + (0x200E, "X"), + (0x2010, "V"), + (0x2011, "M", "‐"), + (0x2012, "V"), + (0x2017, "M", " ̳"), + (0x2018, "V"), + (0x2024, "X"), + (0x2027, "V"), + (0x2028, "X"), + (0x202F, "M", " "), + (0x2030, "V"), + (0x2033, "M", "′′"), + (0x2034, "M", "′′′"), + (0x2035, "V"), + (0x2036, "M", "‵‵"), + (0x2037, "M", "‵‵‵"), + (0x2038, "V"), + (0x203C, "M", "!!"), + (0x203D, "V"), + (0x203E, "M", " ̅"), + (0x203F, "V"), + (0x2047, "M", "??"), + (0x2048, "M", "?!"), + (0x2049, "M", "!?"), + (0x204A, "V"), + (0x2057, "M", "′′′′"), + (0x2058, "V"), + (0x205F, "M", " "), + (0x2060, "I"), + (0x2065, "X"), + (0x206A, "I"), + (0x2070, "M", "0"), + (0x2071, "M", "i"), + (0x2072, "X"), + (0x2074, "M", "4"), + (0x2075, "M", "5"), + (0x2076, "M", "6"), + (0x2077, "M", "7"), + (0x2078, "M", "8"), + (0x2079, "M", "9"), + (0x207A, "M", "+"), + (0x207B, "M", "−"), + (0x207C, "M", "="), + (0x207D, "M", "("), + (0x207E, "M", ")"), + (0x207F, "M", "n"), + (0x2080, "M", "0"), + (0x2081, "M", "1"), + (0x2082, "M", "2"), + (0x2083, "M", "3"), + (0x2084, "M", "4"), + (0x2085, "M", "5"), + (0x2086, "M", "6"), + (0x2087, "M", "7"), + ] + + +def _seg_22() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2088, "M", "8"), + (0x2089, "M", "9"), + (0x208A, "M", "+"), + (0x208B, "M", "−"), + (0x208C, "M", "="), + (0x208D, "M", "("), + (0x208E, "M", ")"), + (0x208F, "X"), + (0x2090, "M", "a"), + (0x2091, "M", "e"), + (0x2092, "M", "o"), + (0x2093, "M", "x"), + (0x2094, "M", "ə"), + (0x2095, "M", "h"), + (0x2096, "M", "k"), + (0x2097, "M", "l"), + (0x2098, "M", "m"), + (0x2099, "M", "n"), + (0x209A, "M", "p"), + (0x209B, "M", "s"), + (0x209C, "M", "t"), + (0x209D, "X"), + (0x20A0, "V"), + (0x20A8, "M", "rs"), + (0x20A9, "V"), + (0x20C1, "X"), + (0x20D0, "V"), + (0x20F1, "X"), + (0x2100, "M", "a/c"), + (0x2101, "M", "a/s"), + (0x2102, "M", "c"), + (0x2103, "M", "°c"), + (0x2104, "V"), + (0x2105, "M", "c/o"), + (0x2106, "M", "c/u"), + (0x2107, "M", "ɛ"), + (0x2108, "V"), + (0x2109, "M", "°f"), + (0x210A, "M", "g"), + (0x210B, "M", "h"), + (0x210F, "M", "ħ"), + (0x2110, "M", "i"), + (0x2112, "M", "l"), + (0x2114, "V"), + (0x2115, "M", "n"), + (0x2116, "M", "no"), + (0x2117, "V"), + (0x2119, "M", "p"), + (0x211A, "M", "q"), + (0x211B, "M", "r"), + (0x211E, "V"), + (0x2120, "M", "sm"), + (0x2121, "M", "tel"), + (0x2122, "M", "tm"), + (0x2123, "V"), + (0x2124, "M", "z"), + (0x2125, "V"), + (0x2126, "M", "ω"), + (0x2127, "V"), + (0x2128, "M", "z"), + (0x2129, "V"), + (0x212A, "M", "k"), + (0x212B, "M", "å"), + (0x212C, "M", "b"), + (0x212D, "M", "c"), + (0x212E, "V"), + (0x212F, "M", "e"), + (0x2131, "M", "f"), + (0x2132, "M", "ⅎ"), + (0x2133, "M", "m"), + (0x2134, "M", "o"), + (0x2135, "M", "א"), + (0x2136, "M", "ב"), + (0x2137, "M", "ג"), + (0x2138, "M", "ד"), + (0x2139, "M", "i"), + (0x213A, "V"), + (0x213B, "M", "fax"), + (0x213C, "M", "π"), + (0x213D, "M", "γ"), + (0x213F, "M", "π"), + (0x2140, "M", "∑"), + (0x2141, "V"), + (0x2145, "M", "d"), + (0x2147, "M", "e"), + (0x2148, "M", "i"), + (0x2149, "M", "j"), + (0x214A, "V"), + (0x2150, "M", "1⁄7"), + (0x2151, "M", "1⁄9"), + (0x2152, "M", "1⁄10"), + (0x2153, "M", "1⁄3"), + (0x2154, "M", "2⁄3"), + (0x2155, "M", "1⁄5"), + (0x2156, "M", "2⁄5"), + (0x2157, "M", "3⁄5"), + (0x2158, "M", "4⁄5"), + (0x2159, "M", "1⁄6"), + (0x215A, "M", "5⁄6"), + (0x215B, "M", "1⁄8"), + ] + + +def _seg_23() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x215C, "M", "3⁄8"), + (0x215D, "M", "5⁄8"), + (0x215E, "M", "7⁄8"), + (0x215F, "M", "1⁄"), + (0x2160, "M", "i"), + (0x2161, "M", "ii"), + (0x2162, "M", "iii"), + (0x2163, "M", "iv"), + (0x2164, "M", "v"), + (0x2165, "M", "vi"), + (0x2166, "M", "vii"), + (0x2167, "M", "viii"), + (0x2168, "M", "ix"), + (0x2169, "M", "x"), + (0x216A, "M", "xi"), + (0x216B, "M", "xii"), + (0x216C, "M", "l"), + (0x216D, "M", "c"), + (0x216E, "M", "d"), + (0x216F, "M", "m"), + (0x2170, "M", "i"), + (0x2171, "M", "ii"), + (0x2172, "M", "iii"), + (0x2173, "M", "iv"), + (0x2174, "M", "v"), + (0x2175, "M", "vi"), + (0x2176, "M", "vii"), + (0x2177, "M", "viii"), + (0x2178, "M", "ix"), + (0x2179, "M", "x"), + (0x217A, "M", "xi"), + (0x217B, "M", "xii"), + (0x217C, "M", "l"), + (0x217D, "M", "c"), + (0x217E, "M", "d"), + (0x217F, "M", "m"), + (0x2180, "V"), + (0x2183, "M", "ↄ"), + (0x2184, "V"), + (0x2189, "M", "0⁄3"), + (0x218A, "V"), + (0x218C, "X"), + (0x2190, "V"), + (0x222C, "M", "∫∫"), + (0x222D, "M", "∫∫∫"), + (0x222E, "V"), + (0x222F, "M", "∮∮"), + (0x2230, "M", "∮∮∮"), + (0x2231, "V"), + (0x2329, "M", "〈"), + (0x232A, "M", "〉"), + (0x232B, "V"), + (0x242A, "X"), + (0x2440, "V"), + (0x244B, "X"), + (0x2460, "M", "1"), + (0x2461, "M", "2"), + (0x2462, "M", "3"), + (0x2463, "M", "4"), + (0x2464, "M", "5"), + (0x2465, "M", "6"), + (0x2466, "M", "7"), + (0x2467, "M", "8"), + (0x2468, "M", "9"), + (0x2469, "M", "10"), + (0x246A, "M", "11"), + (0x246B, "M", "12"), + (0x246C, "M", "13"), + (0x246D, "M", "14"), + (0x246E, "M", "15"), + (0x246F, "M", "16"), + (0x2470, "M", "17"), + (0x2471, "M", "18"), + (0x2472, "M", "19"), + (0x2473, "M", "20"), + (0x2474, "M", "(1)"), + (0x2475, "M", "(2)"), + (0x2476, "M", "(3)"), + (0x2477, "M", "(4)"), + (0x2478, "M", "(5)"), + (0x2479, "M", "(6)"), + (0x247A, "M", "(7)"), + (0x247B, "M", "(8)"), + (0x247C, "M", "(9)"), + (0x247D, "M", "(10)"), + (0x247E, "M", "(11)"), + (0x247F, "M", "(12)"), + (0x2480, "M", "(13)"), + (0x2481, "M", "(14)"), + (0x2482, "M", "(15)"), + (0x2483, "M", "(16)"), + (0x2484, "M", "(17)"), + (0x2485, "M", "(18)"), + (0x2486, "M", "(19)"), + (0x2487, "M", "(20)"), + (0x2488, "X"), + (0x249C, "M", "(a)"), + (0x249D, "M", "(b)"), + (0x249E, "M", "(c)"), + (0x249F, "M", "(d)"), + ] + + +def _seg_24() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x24A0, "M", "(e)"), + (0x24A1, "M", "(f)"), + (0x24A2, "M", "(g)"), + (0x24A3, "M", "(h)"), + (0x24A4, "M", "(i)"), + (0x24A5, "M", "(j)"), + (0x24A6, "M", "(k)"), + (0x24A7, "M", "(l)"), + (0x24A8, "M", "(m)"), + (0x24A9, "M", "(n)"), + (0x24AA, "M", "(o)"), + (0x24AB, "M", "(p)"), + (0x24AC, "M", "(q)"), + (0x24AD, "M", "(r)"), + (0x24AE, "M", "(s)"), + (0x24AF, "M", "(t)"), + (0x24B0, "M", "(u)"), + (0x24B1, "M", "(v)"), + (0x24B2, "M", "(w)"), + (0x24B3, "M", "(x)"), + (0x24B4, "M", "(y)"), + (0x24B5, "M", "(z)"), + (0x24B6, "M", "a"), + (0x24B7, "M", "b"), + (0x24B8, "M", "c"), + (0x24B9, "M", "d"), + (0x24BA, "M", "e"), + (0x24BB, "M", "f"), + (0x24BC, "M", "g"), + (0x24BD, "M", "h"), + (0x24BE, "M", "i"), + (0x24BF, "M", "j"), + (0x24C0, "M", "k"), + (0x24C1, "M", "l"), + (0x24C2, "M", "m"), + (0x24C3, "M", "n"), + (0x24C4, "M", "o"), + (0x24C5, "M", "p"), + (0x24C6, "M", "q"), + (0x24C7, "M", "r"), + (0x24C8, "M", "s"), + (0x24C9, "M", "t"), + (0x24CA, "M", "u"), + (0x24CB, "M", "v"), + (0x24CC, "M", "w"), + (0x24CD, "M", "x"), + (0x24CE, "M", "y"), + (0x24CF, "M", "z"), + (0x24D0, "M", "a"), + (0x24D1, "M", "b"), + (0x24D2, "M", "c"), + (0x24D3, "M", "d"), + (0x24D4, "M", "e"), + (0x24D5, "M", "f"), + (0x24D6, "M", "g"), + (0x24D7, "M", "h"), + (0x24D8, "M", "i"), + (0x24D9, "M", "j"), + (0x24DA, "M", "k"), + (0x24DB, "M", "l"), + (0x24DC, "M", "m"), + (0x24DD, "M", "n"), + (0x24DE, "M", "o"), + (0x24DF, "M", "p"), + (0x24E0, "M", "q"), + (0x24E1, "M", "r"), + (0x24E2, "M", "s"), + (0x24E3, "M", "t"), + (0x24E4, "M", "u"), + (0x24E5, "M", "v"), + (0x24E6, "M", "w"), + (0x24E7, "M", "x"), + (0x24E8, "M", "y"), + (0x24E9, "M", "z"), + (0x24EA, "M", "0"), + (0x24EB, "V"), + (0x2A0C, "M", "∫∫∫∫"), + (0x2A0D, "V"), + (0x2A74, "M", "::="), + (0x2A75, "M", "=="), + (0x2A76, "M", "==="), + (0x2A77, "V"), + (0x2ADC, "M", "⫝̸"), + (0x2ADD, "V"), + (0x2B74, "X"), + (0x2B76, "V"), + (0x2B96, "X"), + (0x2B97, "V"), + (0x2C00, "M", "ⰰ"), + (0x2C01, "M", "ⰱ"), + (0x2C02, "M", "ⰲ"), + (0x2C03, "M", "ⰳ"), + (0x2C04, "M", "ⰴ"), + (0x2C05, "M", "ⰵ"), + (0x2C06, "M", "ⰶ"), + (0x2C07, "M", "ⰷ"), + (0x2C08, "M", "ⰸ"), + (0x2C09, "M", "ⰹ"), + (0x2C0A, "M", "ⰺ"), + (0x2C0B, "M", "ⰻ"), + ] + + +def _seg_25() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2C0C, "M", "ⰼ"), + (0x2C0D, "M", "ⰽ"), + (0x2C0E, "M", "ⰾ"), + (0x2C0F, "M", "ⰿ"), + (0x2C10, "M", "ⱀ"), + (0x2C11, "M", "ⱁ"), + (0x2C12, "M", "ⱂ"), + (0x2C13, "M", "ⱃ"), + (0x2C14, "M", "ⱄ"), + (0x2C15, "M", "ⱅ"), + (0x2C16, "M", "ⱆ"), + (0x2C17, "M", "ⱇ"), + (0x2C18, "M", "ⱈ"), + (0x2C19, "M", "ⱉ"), + (0x2C1A, "M", "ⱊ"), + (0x2C1B, "M", "ⱋ"), + (0x2C1C, "M", "ⱌ"), + (0x2C1D, "M", "ⱍ"), + (0x2C1E, "M", "ⱎ"), + (0x2C1F, "M", "ⱏ"), + (0x2C20, "M", "ⱐ"), + (0x2C21, "M", "ⱑ"), + (0x2C22, "M", "ⱒ"), + (0x2C23, "M", "ⱓ"), + (0x2C24, "M", "ⱔ"), + (0x2C25, "M", "ⱕ"), + (0x2C26, "M", "ⱖ"), + (0x2C27, "M", "ⱗ"), + (0x2C28, "M", "ⱘ"), + (0x2C29, "M", "ⱙ"), + (0x2C2A, "M", "ⱚ"), + (0x2C2B, "M", "ⱛ"), + (0x2C2C, "M", "ⱜ"), + (0x2C2D, "M", "ⱝ"), + (0x2C2E, "M", "ⱞ"), + (0x2C2F, "M", "ⱟ"), + (0x2C30, "V"), + (0x2C60, "M", "ⱡ"), + (0x2C61, "V"), + (0x2C62, "M", "ɫ"), + (0x2C63, "M", "ᵽ"), + (0x2C64, "M", "ɽ"), + (0x2C65, "V"), + (0x2C67, "M", "ⱨ"), + (0x2C68, "V"), + (0x2C69, "M", "ⱪ"), + (0x2C6A, "V"), + (0x2C6B, "M", "ⱬ"), + (0x2C6C, "V"), + (0x2C6D, "M", "ɑ"), + (0x2C6E, "M", "ɱ"), + (0x2C6F, "M", "ɐ"), + (0x2C70, "M", "ɒ"), + (0x2C71, "V"), + (0x2C72, "M", "ⱳ"), + (0x2C73, "V"), + (0x2C75, "M", "ⱶ"), + (0x2C76, "V"), + (0x2C7C, "M", "j"), + (0x2C7D, "M", "v"), + (0x2C7E, "M", "ȿ"), + (0x2C7F, "M", "ɀ"), + (0x2C80, "M", "ⲁ"), + (0x2C81, "V"), + (0x2C82, "M", "ⲃ"), + (0x2C83, "V"), + (0x2C84, "M", "ⲅ"), + (0x2C85, "V"), + (0x2C86, "M", "ⲇ"), + (0x2C87, "V"), + (0x2C88, "M", "ⲉ"), + (0x2C89, "V"), + (0x2C8A, "M", "ⲋ"), + (0x2C8B, "V"), + (0x2C8C, "M", "ⲍ"), + (0x2C8D, "V"), + (0x2C8E, "M", "ⲏ"), + (0x2C8F, "V"), + (0x2C90, "M", "ⲑ"), + (0x2C91, "V"), + (0x2C92, "M", "ⲓ"), + (0x2C93, "V"), + (0x2C94, "M", "ⲕ"), + (0x2C95, "V"), + (0x2C96, "M", "ⲗ"), + (0x2C97, "V"), + (0x2C98, "M", "ⲙ"), + (0x2C99, "V"), + (0x2C9A, "M", "ⲛ"), + (0x2C9B, "V"), + (0x2C9C, "M", "ⲝ"), + (0x2C9D, "V"), + (0x2C9E, "M", "ⲟ"), + (0x2C9F, "V"), + (0x2CA0, "M", "ⲡ"), + (0x2CA1, "V"), + (0x2CA2, "M", "ⲣ"), + (0x2CA3, "V"), + (0x2CA4, "M", "ⲥ"), + (0x2CA5, "V"), + ] + + +def _seg_26() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2CA6, "M", "ⲧ"), + (0x2CA7, "V"), + (0x2CA8, "M", "ⲩ"), + (0x2CA9, "V"), + (0x2CAA, "M", "ⲫ"), + (0x2CAB, "V"), + (0x2CAC, "M", "ⲭ"), + (0x2CAD, "V"), + (0x2CAE, "M", "ⲯ"), + (0x2CAF, "V"), + (0x2CB0, "M", "ⲱ"), + (0x2CB1, "V"), + (0x2CB2, "M", "ⲳ"), + (0x2CB3, "V"), + (0x2CB4, "M", "ⲵ"), + (0x2CB5, "V"), + (0x2CB6, "M", "ⲷ"), + (0x2CB7, "V"), + (0x2CB8, "M", "ⲹ"), + (0x2CB9, "V"), + (0x2CBA, "M", "ⲻ"), + (0x2CBB, "V"), + (0x2CBC, "M", "ⲽ"), + (0x2CBD, "V"), + (0x2CBE, "M", "ⲿ"), + (0x2CBF, "V"), + (0x2CC0, "M", "ⳁ"), + (0x2CC1, "V"), + (0x2CC2, "M", "ⳃ"), + (0x2CC3, "V"), + (0x2CC4, "M", "ⳅ"), + (0x2CC5, "V"), + (0x2CC6, "M", "ⳇ"), + (0x2CC7, "V"), + (0x2CC8, "M", "ⳉ"), + (0x2CC9, "V"), + (0x2CCA, "M", "ⳋ"), + (0x2CCB, "V"), + (0x2CCC, "M", "ⳍ"), + (0x2CCD, "V"), + (0x2CCE, "M", "ⳏ"), + (0x2CCF, "V"), + (0x2CD0, "M", "ⳑ"), + (0x2CD1, "V"), + (0x2CD2, "M", "ⳓ"), + (0x2CD3, "V"), + (0x2CD4, "M", "ⳕ"), + (0x2CD5, "V"), + (0x2CD6, "M", "ⳗ"), + (0x2CD7, "V"), + (0x2CD8, "M", "ⳙ"), + (0x2CD9, "V"), + (0x2CDA, "M", "ⳛ"), + (0x2CDB, "V"), + (0x2CDC, "M", "ⳝ"), + (0x2CDD, "V"), + (0x2CDE, "M", "ⳟ"), + (0x2CDF, "V"), + (0x2CE0, "M", "ⳡ"), + (0x2CE1, "V"), + (0x2CE2, "M", "ⳣ"), + (0x2CE3, "V"), + (0x2CEB, "M", "ⳬ"), + (0x2CEC, "V"), + (0x2CED, "M", "ⳮ"), + (0x2CEE, "V"), + (0x2CF2, "M", "ⳳ"), + (0x2CF3, "V"), + (0x2CF4, "X"), + (0x2CF9, "V"), + (0x2D26, "X"), + (0x2D27, "V"), + (0x2D28, "X"), + (0x2D2D, "V"), + (0x2D2E, "X"), + (0x2D30, "V"), + (0x2D68, "X"), + (0x2D6F, "M", "ⵡ"), + (0x2D70, "V"), + (0x2D71, "X"), + (0x2D7F, "V"), + (0x2D97, "X"), + (0x2DA0, "V"), + (0x2DA7, "X"), + (0x2DA8, "V"), + (0x2DAF, "X"), + (0x2DB0, "V"), + (0x2DB7, "X"), + (0x2DB8, "V"), + (0x2DBF, "X"), + (0x2DC0, "V"), + (0x2DC7, "X"), + (0x2DC8, "V"), + (0x2DCF, "X"), + (0x2DD0, "V"), + (0x2DD7, "X"), + (0x2DD8, "V"), + (0x2DDF, "X"), + (0x2DE0, "V"), + (0x2E5E, "X"), + ] + + +def _seg_27() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2E80, "V"), + (0x2E9A, "X"), + (0x2E9B, "V"), + (0x2E9F, "M", "母"), + (0x2EA0, "V"), + (0x2EF3, "M", "龟"), + (0x2EF4, "X"), + (0x2F00, "M", "一"), + (0x2F01, "M", "丨"), + (0x2F02, "M", "丶"), + (0x2F03, "M", "丿"), + (0x2F04, "M", "乙"), + (0x2F05, "M", "亅"), + (0x2F06, "M", "二"), + (0x2F07, "M", "亠"), + (0x2F08, "M", "人"), + (0x2F09, "M", "儿"), + (0x2F0A, "M", "入"), + (0x2F0B, "M", "八"), + (0x2F0C, "M", "冂"), + (0x2F0D, "M", "冖"), + (0x2F0E, "M", "冫"), + (0x2F0F, "M", "几"), + (0x2F10, "M", "凵"), + (0x2F11, "M", "刀"), + (0x2F12, "M", "力"), + (0x2F13, "M", "勹"), + (0x2F14, "M", "匕"), + (0x2F15, "M", "匚"), + (0x2F16, "M", "匸"), + (0x2F17, "M", "十"), + (0x2F18, "M", "卜"), + (0x2F19, "M", "卩"), + (0x2F1A, "M", "厂"), + (0x2F1B, "M", "厶"), + (0x2F1C, "M", "又"), + (0x2F1D, "M", "口"), + (0x2F1E, "M", "囗"), + (0x2F1F, "M", "土"), + (0x2F20, "M", "士"), + (0x2F21, "M", "夂"), + (0x2F22, "M", "夊"), + (0x2F23, "M", "夕"), + (0x2F24, "M", "大"), + (0x2F25, "M", "女"), + (0x2F26, "M", "子"), + (0x2F27, "M", "宀"), + (0x2F28, "M", "寸"), + (0x2F29, "M", "小"), + (0x2F2A, "M", "尢"), + (0x2F2B, "M", "尸"), + (0x2F2C, "M", "屮"), + (0x2F2D, "M", "山"), + (0x2F2E, "M", "巛"), + (0x2F2F, "M", "工"), + (0x2F30, "M", "己"), + (0x2F31, "M", "巾"), + (0x2F32, "M", "干"), + (0x2F33, "M", "幺"), + (0x2F34, "M", "广"), + (0x2F35, "M", "廴"), + (0x2F36, "M", "廾"), + (0x2F37, "M", "弋"), + (0x2F38, "M", "弓"), + (0x2F39, "M", "彐"), + (0x2F3A, "M", "彡"), + (0x2F3B, "M", "彳"), + (0x2F3C, "M", "心"), + (0x2F3D, "M", "戈"), + (0x2F3E, "M", "戶"), + (0x2F3F, "M", "手"), + (0x2F40, "M", "支"), + (0x2F41, "M", "攴"), + (0x2F42, "M", "文"), + (0x2F43, "M", "斗"), + (0x2F44, "M", "斤"), + (0x2F45, "M", "方"), + (0x2F46, "M", "无"), + (0x2F47, "M", "日"), + (0x2F48, "M", "曰"), + (0x2F49, "M", "月"), + (0x2F4A, "M", "木"), + (0x2F4B, "M", "欠"), + (0x2F4C, "M", "止"), + (0x2F4D, "M", "歹"), + (0x2F4E, "M", "殳"), + (0x2F4F, "M", "毋"), + (0x2F50, "M", "比"), + (0x2F51, "M", "毛"), + (0x2F52, "M", "氏"), + (0x2F53, "M", "气"), + (0x2F54, "M", "水"), + (0x2F55, "M", "火"), + (0x2F56, "M", "爪"), + (0x2F57, "M", "父"), + (0x2F58, "M", "爻"), + (0x2F59, "M", "爿"), + (0x2F5A, "M", "片"), + (0x2F5B, "M", "牙"), + (0x2F5C, "M", "牛"), + ] + + +def _seg_28() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F5D, "M", "犬"), + (0x2F5E, "M", "玄"), + (0x2F5F, "M", "玉"), + (0x2F60, "M", "瓜"), + (0x2F61, "M", "瓦"), + (0x2F62, "M", "甘"), + (0x2F63, "M", "生"), + (0x2F64, "M", "用"), + (0x2F65, "M", "田"), + (0x2F66, "M", "疋"), + (0x2F67, "M", "疒"), + (0x2F68, "M", "癶"), + (0x2F69, "M", "白"), + (0x2F6A, "M", "皮"), + (0x2F6B, "M", "皿"), + (0x2F6C, "M", "目"), + (0x2F6D, "M", "矛"), + (0x2F6E, "M", "矢"), + (0x2F6F, "M", "石"), + (0x2F70, "M", "示"), + (0x2F71, "M", "禸"), + (0x2F72, "M", "禾"), + (0x2F73, "M", "穴"), + (0x2F74, "M", "立"), + (0x2F75, "M", "竹"), + (0x2F76, "M", "米"), + (0x2F77, "M", "糸"), + (0x2F78, "M", "缶"), + (0x2F79, "M", "网"), + (0x2F7A, "M", "羊"), + (0x2F7B, "M", "羽"), + (0x2F7C, "M", "老"), + (0x2F7D, "M", "而"), + (0x2F7E, "M", "耒"), + (0x2F7F, "M", "耳"), + (0x2F80, "M", "聿"), + (0x2F81, "M", "肉"), + (0x2F82, "M", "臣"), + (0x2F83, "M", "自"), + (0x2F84, "M", "至"), + (0x2F85, "M", "臼"), + (0x2F86, "M", "舌"), + (0x2F87, "M", "舛"), + (0x2F88, "M", "舟"), + (0x2F89, "M", "艮"), + (0x2F8A, "M", "色"), + (0x2F8B, "M", "艸"), + (0x2F8C, "M", "虍"), + (0x2F8D, "M", "虫"), + (0x2F8E, "M", "血"), + (0x2F8F, "M", "行"), + (0x2F90, "M", "衣"), + (0x2F91, "M", "襾"), + (0x2F92, "M", "見"), + (0x2F93, "M", "角"), + (0x2F94, "M", "言"), + (0x2F95, "M", "谷"), + (0x2F96, "M", "豆"), + (0x2F97, "M", "豕"), + (0x2F98, "M", "豸"), + (0x2F99, "M", "貝"), + (0x2F9A, "M", "赤"), + (0x2F9B, "M", "走"), + (0x2F9C, "M", "足"), + (0x2F9D, "M", "身"), + (0x2F9E, "M", "車"), + (0x2F9F, "M", "辛"), + (0x2FA0, "M", "辰"), + (0x2FA1, "M", "辵"), + (0x2FA2, "M", "邑"), + (0x2FA3, "M", "酉"), + (0x2FA4, "M", "釆"), + (0x2FA5, "M", "里"), + (0x2FA6, "M", "金"), + (0x2FA7, "M", "長"), + (0x2FA8, "M", "門"), + (0x2FA9, "M", "阜"), + (0x2FAA, "M", "隶"), + (0x2FAB, "M", "隹"), + (0x2FAC, "M", "雨"), + (0x2FAD, "M", "靑"), + (0x2FAE, "M", "非"), + (0x2FAF, "M", "面"), + (0x2FB0, "M", "革"), + (0x2FB1, "M", "韋"), + (0x2FB2, "M", "韭"), + (0x2FB3, "M", "音"), + (0x2FB4, "M", "頁"), + (0x2FB5, "M", "風"), + (0x2FB6, "M", "飛"), + (0x2FB7, "M", "食"), + (0x2FB8, "M", "首"), + (0x2FB9, "M", "香"), + (0x2FBA, "M", "馬"), + (0x2FBB, "M", "骨"), + (0x2FBC, "M", "高"), + (0x2FBD, "M", "髟"), + (0x2FBE, "M", "鬥"), + (0x2FBF, "M", "鬯"), + (0x2FC0, "M", "鬲"), + ] + + +def _seg_29() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2FC1, "M", "鬼"), + (0x2FC2, "M", "魚"), + (0x2FC3, "M", "鳥"), + (0x2FC4, "M", "鹵"), + (0x2FC5, "M", "鹿"), + (0x2FC6, "M", "麥"), + (0x2FC7, "M", "麻"), + (0x2FC8, "M", "黃"), + (0x2FC9, "M", "黍"), + (0x2FCA, "M", "黑"), + (0x2FCB, "M", "黹"), + (0x2FCC, "M", "黽"), + (0x2FCD, "M", "鼎"), + (0x2FCE, "M", "鼓"), + (0x2FCF, "M", "鼠"), + (0x2FD0, "M", "鼻"), + (0x2FD1, "M", "齊"), + (0x2FD2, "M", "齒"), + (0x2FD3, "M", "龍"), + (0x2FD4, "M", "龜"), + (0x2FD5, "M", "龠"), + (0x2FD6, "X"), + (0x3000, "M", " "), + (0x3001, "V"), + (0x3002, "M", "."), + (0x3003, "V"), + (0x3036, "M", "〒"), + (0x3037, "V"), + (0x3038, "M", "十"), + (0x3039, "M", "卄"), + (0x303A, "M", "卅"), + (0x303B, "V"), + (0x3040, "X"), + (0x3041, "V"), + (0x3097, "X"), + (0x3099, "V"), + (0x309B, "M", " ゙"), + (0x309C, "M", " ゚"), + (0x309D, "V"), + (0x309F, "M", "より"), + (0x30A0, "V"), + (0x30FF, "M", "コト"), + (0x3100, "X"), + (0x3105, "V"), + (0x3130, "X"), + (0x3131, "M", "ᄀ"), + (0x3132, "M", "ᄁ"), + (0x3133, "M", "ᆪ"), + (0x3134, "M", "ᄂ"), + (0x3135, "M", "ᆬ"), + (0x3136, "M", "ᆭ"), + (0x3137, "M", "ᄃ"), + (0x3138, "M", "ᄄ"), + (0x3139, "M", "ᄅ"), + (0x313A, "M", "ᆰ"), + (0x313B, "M", "ᆱ"), + (0x313C, "M", "ᆲ"), + (0x313D, "M", "ᆳ"), + (0x313E, "M", "ᆴ"), + (0x313F, "M", "ᆵ"), + (0x3140, "M", "ᄚ"), + (0x3141, "M", "ᄆ"), + (0x3142, "M", "ᄇ"), + (0x3143, "M", "ᄈ"), + (0x3144, "M", "ᄡ"), + (0x3145, "M", "ᄉ"), + (0x3146, "M", "ᄊ"), + (0x3147, "M", "ᄋ"), + (0x3148, "M", "ᄌ"), + (0x3149, "M", "ᄍ"), + (0x314A, "M", "ᄎ"), + (0x314B, "M", "ᄏ"), + (0x314C, "M", "ᄐ"), + (0x314D, "M", "ᄑ"), + (0x314E, "M", "ᄒ"), + (0x314F, "M", "ᅡ"), + (0x3150, "M", "ᅢ"), + (0x3151, "M", "ᅣ"), + (0x3152, "M", "ᅤ"), + (0x3153, "M", "ᅥ"), + (0x3154, "M", "ᅦ"), + (0x3155, "M", "ᅧ"), + (0x3156, "M", "ᅨ"), + (0x3157, "M", "ᅩ"), + (0x3158, "M", "ᅪ"), + (0x3159, "M", "ᅫ"), + (0x315A, "M", "ᅬ"), + (0x315B, "M", "ᅭ"), + (0x315C, "M", "ᅮ"), + (0x315D, "M", "ᅯ"), + (0x315E, "M", "ᅰ"), + (0x315F, "M", "ᅱ"), + (0x3160, "M", "ᅲ"), + (0x3161, "M", "ᅳ"), + (0x3162, "M", "ᅴ"), + (0x3163, "M", "ᅵ"), + (0x3164, "I"), + (0x3165, "M", "ᄔ"), + (0x3166, "M", "ᄕ"), + (0x3167, "M", "ᇇ"), + ] + + +def _seg_30() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x3168, "M", "ᇈ"), + (0x3169, "M", "ᇌ"), + (0x316A, "M", "ᇎ"), + (0x316B, "M", "ᇓ"), + (0x316C, "M", "ᇗ"), + (0x316D, "M", "ᇙ"), + (0x316E, "M", "ᄜ"), + (0x316F, "M", "ᇝ"), + (0x3170, "M", "ᇟ"), + (0x3171, "M", "ᄝ"), + (0x3172, "M", "ᄞ"), + (0x3173, "M", "ᄠ"), + (0x3174, "M", "ᄢ"), + (0x3175, "M", "ᄣ"), + (0x3176, "M", "ᄧ"), + (0x3177, "M", "ᄩ"), + (0x3178, "M", "ᄫ"), + (0x3179, "M", "ᄬ"), + (0x317A, "M", "ᄭ"), + (0x317B, "M", "ᄮ"), + (0x317C, "M", "ᄯ"), + (0x317D, "M", "ᄲ"), + (0x317E, "M", "ᄶ"), + (0x317F, "M", "ᅀ"), + (0x3180, "M", "ᅇ"), + (0x3181, "M", "ᅌ"), + (0x3182, "M", "ᇱ"), + (0x3183, "M", "ᇲ"), + (0x3184, "M", "ᅗ"), + (0x3185, "M", "ᅘ"), + (0x3186, "M", "ᅙ"), + (0x3187, "M", "ᆄ"), + (0x3188, "M", "ᆅ"), + (0x3189, "M", "ᆈ"), + (0x318A, "M", "ᆑ"), + (0x318B, "M", "ᆒ"), + (0x318C, "M", "ᆔ"), + (0x318D, "M", "ᆞ"), + (0x318E, "M", "ᆡ"), + (0x318F, "X"), + (0x3190, "V"), + (0x3192, "M", "一"), + (0x3193, "M", "二"), + (0x3194, "M", "三"), + (0x3195, "M", "四"), + (0x3196, "M", "上"), + (0x3197, "M", "中"), + (0x3198, "M", "下"), + (0x3199, "M", "甲"), + (0x319A, "M", "乙"), + (0x319B, "M", "丙"), + (0x319C, "M", "丁"), + (0x319D, "M", "天"), + (0x319E, "M", "地"), + (0x319F, "M", "人"), + (0x31A0, "V"), + (0x31E6, "X"), + (0x31F0, "V"), + (0x3200, "M", "(ᄀ)"), + (0x3201, "M", "(ᄂ)"), + (0x3202, "M", "(ᄃ)"), + (0x3203, "M", "(ᄅ)"), + (0x3204, "M", "(ᄆ)"), + (0x3205, "M", "(ᄇ)"), + (0x3206, "M", "(ᄉ)"), + (0x3207, "M", "(ᄋ)"), + (0x3208, "M", "(ᄌ)"), + (0x3209, "M", "(ᄎ)"), + (0x320A, "M", "(ᄏ)"), + (0x320B, "M", "(ᄐ)"), + (0x320C, "M", "(ᄑ)"), + (0x320D, "M", "(ᄒ)"), + (0x320E, "M", "(가)"), + (0x320F, "M", "(나)"), + (0x3210, "M", "(다)"), + (0x3211, "M", "(라)"), + (0x3212, "M", "(마)"), + (0x3213, "M", "(바)"), + (0x3214, "M", "(사)"), + (0x3215, "M", "(아)"), + (0x3216, "M", "(자)"), + (0x3217, "M", "(차)"), + (0x3218, "M", "(카)"), + (0x3219, "M", "(타)"), + (0x321A, "M", "(파)"), + (0x321B, "M", "(하)"), + (0x321C, "M", "(주)"), + (0x321D, "M", "(오전)"), + (0x321E, "M", "(오후)"), + (0x321F, "X"), + (0x3220, "M", "(一)"), + (0x3221, "M", "(二)"), + (0x3222, "M", "(三)"), + (0x3223, "M", "(四)"), + (0x3224, "M", "(五)"), + (0x3225, "M", "(六)"), + (0x3226, "M", "(七)"), + (0x3227, "M", "(八)"), + (0x3228, "M", "(九)"), + (0x3229, "M", "(十)"), + ] + + +def _seg_31() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x322A, "M", "(月)"), + (0x322B, "M", "(火)"), + (0x322C, "M", "(水)"), + (0x322D, "M", "(木)"), + (0x322E, "M", "(金)"), + (0x322F, "M", "(土)"), + (0x3230, "M", "(日)"), + (0x3231, "M", "(株)"), + (0x3232, "M", "(有)"), + (0x3233, "M", "(社)"), + (0x3234, "M", "(名)"), + (0x3235, "M", "(特)"), + (0x3236, "M", "(財)"), + (0x3237, "M", "(祝)"), + (0x3238, "M", "(労)"), + (0x3239, "M", "(代)"), + (0x323A, "M", "(呼)"), + (0x323B, "M", "(学)"), + (0x323C, "M", "(監)"), + (0x323D, "M", "(企)"), + (0x323E, "M", "(資)"), + (0x323F, "M", "(協)"), + (0x3240, "M", "(祭)"), + (0x3241, "M", "(休)"), + (0x3242, "M", "(自)"), + (0x3243, "M", "(至)"), + (0x3244, "M", "問"), + (0x3245, "M", "幼"), + (0x3246, "M", "文"), + (0x3247, "M", "箏"), + (0x3248, "V"), + (0x3250, "M", "pte"), + (0x3251, "M", "21"), + (0x3252, "M", "22"), + (0x3253, "M", "23"), + (0x3254, "M", "24"), + (0x3255, "M", "25"), + (0x3256, "M", "26"), + (0x3257, "M", "27"), + (0x3258, "M", "28"), + (0x3259, "M", "29"), + (0x325A, "M", "30"), + (0x325B, "M", "31"), + (0x325C, "M", "32"), + (0x325D, "M", "33"), + (0x325E, "M", "34"), + (0x325F, "M", "35"), + (0x3260, "M", "ᄀ"), + (0x3261, "M", "ᄂ"), + (0x3262, "M", "ᄃ"), + (0x3263, "M", "ᄅ"), + (0x3264, "M", "ᄆ"), + (0x3265, "M", "ᄇ"), + (0x3266, "M", "ᄉ"), + (0x3267, "M", "ᄋ"), + (0x3268, "M", "ᄌ"), + (0x3269, "M", "ᄎ"), + (0x326A, "M", "ᄏ"), + (0x326B, "M", "ᄐ"), + (0x326C, "M", "ᄑ"), + (0x326D, "M", "ᄒ"), + (0x326E, "M", "가"), + (0x326F, "M", "나"), + (0x3270, "M", "다"), + (0x3271, "M", "라"), + (0x3272, "M", "마"), + (0x3273, "M", "바"), + (0x3274, "M", "사"), + (0x3275, "M", "아"), + (0x3276, "M", "자"), + (0x3277, "M", "차"), + (0x3278, "M", "카"), + (0x3279, "M", "타"), + (0x327A, "M", "파"), + (0x327B, "M", "하"), + (0x327C, "M", "참고"), + (0x327D, "M", "주의"), + (0x327E, "M", "우"), + (0x327F, "V"), + (0x3280, "M", "一"), + (0x3281, "M", "二"), + (0x3282, "M", "三"), + (0x3283, "M", "四"), + (0x3284, "M", "五"), + (0x3285, "M", "六"), + (0x3286, "M", "七"), + (0x3287, "M", "八"), + (0x3288, "M", "九"), + (0x3289, "M", "十"), + (0x328A, "M", "月"), + (0x328B, "M", "火"), + (0x328C, "M", "水"), + (0x328D, "M", "木"), + (0x328E, "M", "金"), + (0x328F, "M", "土"), + (0x3290, "M", "日"), + (0x3291, "M", "株"), + (0x3292, "M", "有"), + (0x3293, "M", "社"), + (0x3294, "M", "名"), + ] + + +def _seg_32() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x3295, "M", "特"), + (0x3296, "M", "財"), + (0x3297, "M", "祝"), + (0x3298, "M", "労"), + (0x3299, "M", "秘"), + (0x329A, "M", "男"), + (0x329B, "M", "女"), + (0x329C, "M", "適"), + (0x329D, "M", "優"), + (0x329E, "M", "印"), + (0x329F, "M", "注"), + (0x32A0, "M", "項"), + (0x32A1, "M", "休"), + (0x32A2, "M", "写"), + (0x32A3, "M", "正"), + (0x32A4, "M", "上"), + (0x32A5, "M", "中"), + (0x32A6, "M", "下"), + (0x32A7, "M", "左"), + (0x32A8, "M", "右"), + (0x32A9, "M", "医"), + (0x32AA, "M", "宗"), + (0x32AB, "M", "学"), + (0x32AC, "M", "監"), + (0x32AD, "M", "企"), + (0x32AE, "M", "資"), + (0x32AF, "M", "協"), + (0x32B0, "M", "夜"), + (0x32B1, "M", "36"), + (0x32B2, "M", "37"), + (0x32B3, "M", "38"), + (0x32B4, "M", "39"), + (0x32B5, "M", "40"), + (0x32B6, "M", "41"), + (0x32B7, "M", "42"), + (0x32B8, "M", "43"), + (0x32B9, "M", "44"), + (0x32BA, "M", "45"), + (0x32BB, "M", "46"), + (0x32BC, "M", "47"), + (0x32BD, "M", "48"), + (0x32BE, "M", "49"), + (0x32BF, "M", "50"), + (0x32C0, "M", "1月"), + (0x32C1, "M", "2月"), + (0x32C2, "M", "3月"), + (0x32C3, "M", "4月"), + (0x32C4, "M", "5月"), + (0x32C5, "M", "6月"), + (0x32C6, "M", "7月"), + (0x32C7, "M", "8月"), + (0x32C8, "M", "9月"), + (0x32C9, "M", "10月"), + (0x32CA, "M", "11月"), + (0x32CB, "M", "12月"), + (0x32CC, "M", "hg"), + (0x32CD, "M", "erg"), + (0x32CE, "M", "ev"), + (0x32CF, "M", "ltd"), + (0x32D0, "M", "ア"), + (0x32D1, "M", "イ"), + (0x32D2, "M", "ウ"), + (0x32D3, "M", "エ"), + (0x32D4, "M", "オ"), + (0x32D5, "M", "カ"), + (0x32D6, "M", "キ"), + (0x32D7, "M", "ク"), + (0x32D8, "M", "ケ"), + (0x32D9, "M", "コ"), + (0x32DA, "M", "サ"), + (0x32DB, "M", "シ"), + (0x32DC, "M", "ス"), + (0x32DD, "M", "セ"), + (0x32DE, "M", "ソ"), + (0x32DF, "M", "タ"), + (0x32E0, "M", "チ"), + (0x32E1, "M", "ツ"), + (0x32E2, "M", "テ"), + (0x32E3, "M", "ト"), + (0x32E4, "M", "ナ"), + (0x32E5, "M", "ニ"), + (0x32E6, "M", "ヌ"), + (0x32E7, "M", "ネ"), + (0x32E8, "M", "ノ"), + (0x32E9, "M", "ハ"), + (0x32EA, "M", "ヒ"), + (0x32EB, "M", "フ"), + (0x32EC, "M", "ヘ"), + (0x32ED, "M", "ホ"), + (0x32EE, "M", "マ"), + (0x32EF, "M", "ミ"), + (0x32F0, "M", "ム"), + (0x32F1, "M", "メ"), + (0x32F2, "M", "モ"), + (0x32F3, "M", "ヤ"), + (0x32F4, "M", "ユ"), + (0x32F5, "M", "ヨ"), + (0x32F6, "M", "ラ"), + (0x32F7, "M", "リ"), + (0x32F8, "M", "ル"), + ] + + +def _seg_33() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x32F9, "M", "レ"), + (0x32FA, "M", "ロ"), + (0x32FB, "M", "ワ"), + (0x32FC, "M", "ヰ"), + (0x32FD, "M", "ヱ"), + (0x32FE, "M", "ヲ"), + (0x32FF, "M", "令和"), + (0x3300, "M", "アパート"), + (0x3301, "M", "アルファ"), + (0x3302, "M", "アンペア"), + (0x3303, "M", "アール"), + (0x3304, "M", "イニング"), + (0x3305, "M", "インチ"), + (0x3306, "M", "ウォン"), + (0x3307, "M", "エスクード"), + (0x3308, "M", "エーカー"), + (0x3309, "M", "オンス"), + (0x330A, "M", "オーム"), + (0x330B, "M", "カイリ"), + (0x330C, "M", "カラット"), + (0x330D, "M", "カロリー"), + (0x330E, "M", "ガロン"), + (0x330F, "M", "ガンマ"), + (0x3310, "M", "ギガ"), + (0x3311, "M", "ギニー"), + (0x3312, "M", "キュリー"), + (0x3313, "M", "ギルダー"), + (0x3314, "M", "キロ"), + (0x3315, "M", "キログラム"), + (0x3316, "M", "キロメートル"), + (0x3317, "M", "キロワット"), + (0x3318, "M", "グラム"), + (0x3319, "M", "グラムトン"), + (0x331A, "M", "クルゼイロ"), + (0x331B, "M", "クローネ"), + (0x331C, "M", "ケース"), + (0x331D, "M", "コルナ"), + (0x331E, "M", "コーポ"), + (0x331F, "M", "サイクル"), + (0x3320, "M", "サンチーム"), + (0x3321, "M", "シリング"), + (0x3322, "M", "センチ"), + (0x3323, "M", "セント"), + (0x3324, "M", "ダース"), + (0x3325, "M", "デシ"), + (0x3326, "M", "ドル"), + (0x3327, "M", "トン"), + (0x3328, "M", "ナノ"), + (0x3329, "M", "ノット"), + (0x332A, "M", "ハイツ"), + (0x332B, "M", "パーセント"), + (0x332C, "M", "パーツ"), + (0x332D, "M", "バーレル"), + (0x332E, "M", "ピアストル"), + (0x332F, "M", "ピクル"), + (0x3330, "M", "ピコ"), + (0x3331, "M", "ビル"), + (0x3332, "M", "ファラッド"), + (0x3333, "M", "フィート"), + (0x3334, "M", "ブッシェル"), + (0x3335, "M", "フラン"), + (0x3336, "M", "ヘクタール"), + (0x3337, "M", "ペソ"), + (0x3338, "M", "ペニヒ"), + (0x3339, "M", "ヘルツ"), + (0x333A, "M", "ペンス"), + (0x333B, "M", "ページ"), + (0x333C, "M", "ベータ"), + (0x333D, "M", "ポイント"), + (0x333E, "M", "ボルト"), + (0x333F, "M", "ホン"), + (0x3340, "M", "ポンド"), + (0x3341, "M", "ホール"), + (0x3342, "M", "ホーン"), + (0x3343, "M", "マイクロ"), + (0x3344, "M", "マイル"), + (0x3345, "M", "マッハ"), + (0x3346, "M", "マルク"), + (0x3347, "M", "マンション"), + (0x3348, "M", "ミクロン"), + (0x3349, "M", "ミリ"), + (0x334A, "M", "ミリバール"), + (0x334B, "M", "メガ"), + (0x334C, "M", "メガトン"), + (0x334D, "M", "メートル"), + (0x334E, "M", "ヤード"), + (0x334F, "M", "ヤール"), + (0x3350, "M", "ユアン"), + (0x3351, "M", "リットル"), + (0x3352, "M", "リラ"), + (0x3353, "M", "ルピー"), + (0x3354, "M", "ルーブル"), + (0x3355, "M", "レム"), + (0x3356, "M", "レントゲン"), + (0x3357, "M", "ワット"), + (0x3358, "M", "0点"), + (0x3359, "M", "1点"), + (0x335A, "M", "2点"), + (0x335B, "M", "3点"), + (0x335C, "M", "4点"), + ] + + +def _seg_34() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x335D, "M", "5点"), + (0x335E, "M", "6点"), + (0x335F, "M", "7点"), + (0x3360, "M", "8点"), + (0x3361, "M", "9点"), + (0x3362, "M", "10点"), + (0x3363, "M", "11点"), + (0x3364, "M", "12点"), + (0x3365, "M", "13点"), + (0x3366, "M", "14点"), + (0x3367, "M", "15点"), + (0x3368, "M", "16点"), + (0x3369, "M", "17点"), + (0x336A, "M", "18点"), + (0x336B, "M", "19点"), + (0x336C, "M", "20点"), + (0x336D, "M", "21点"), + (0x336E, "M", "22点"), + (0x336F, "M", "23点"), + (0x3370, "M", "24点"), + (0x3371, "M", "hpa"), + (0x3372, "M", "da"), + (0x3373, "M", "au"), + (0x3374, "M", "bar"), + (0x3375, "M", "ov"), + (0x3376, "M", "pc"), + (0x3377, "M", "dm"), + (0x3378, "M", "dm2"), + (0x3379, "M", "dm3"), + (0x337A, "M", "iu"), + (0x337B, "M", "平成"), + (0x337C, "M", "昭和"), + (0x337D, "M", "大正"), + (0x337E, "M", "明治"), + (0x337F, "M", "株式会社"), + (0x3380, "M", "pa"), + (0x3381, "M", "na"), + (0x3382, "M", "μa"), + (0x3383, "M", "ma"), + (0x3384, "M", "ka"), + (0x3385, "M", "kb"), + (0x3386, "M", "mb"), + (0x3387, "M", "gb"), + (0x3388, "M", "cal"), + (0x3389, "M", "kcal"), + (0x338A, "M", "pf"), + (0x338B, "M", "nf"), + (0x338C, "M", "μf"), + (0x338D, "M", "μg"), + (0x338E, "M", "mg"), + (0x338F, "M", "kg"), + (0x3390, "M", "hz"), + (0x3391, "M", "khz"), + (0x3392, "M", "mhz"), + (0x3393, "M", "ghz"), + (0x3394, "M", "thz"), + (0x3395, "M", "μl"), + (0x3396, "M", "ml"), + (0x3397, "M", "dl"), + (0x3398, "M", "kl"), + (0x3399, "M", "fm"), + (0x339A, "M", "nm"), + (0x339B, "M", "μm"), + (0x339C, "M", "mm"), + (0x339D, "M", "cm"), + (0x339E, "M", "km"), + (0x339F, "M", "mm2"), + (0x33A0, "M", "cm2"), + (0x33A1, "M", "m2"), + (0x33A2, "M", "km2"), + (0x33A3, "M", "mm3"), + (0x33A4, "M", "cm3"), + (0x33A5, "M", "m3"), + (0x33A6, "M", "km3"), + (0x33A7, "M", "m∕s"), + (0x33A8, "M", "m∕s2"), + (0x33A9, "M", "pa"), + (0x33AA, "M", "kpa"), + (0x33AB, "M", "mpa"), + (0x33AC, "M", "gpa"), + (0x33AD, "M", "rad"), + (0x33AE, "M", "rad∕s"), + (0x33AF, "M", "rad∕s2"), + (0x33B0, "M", "ps"), + (0x33B1, "M", "ns"), + (0x33B2, "M", "μs"), + (0x33B3, "M", "ms"), + (0x33B4, "M", "pv"), + (0x33B5, "M", "nv"), + (0x33B6, "M", "μv"), + (0x33B7, "M", "mv"), + (0x33B8, "M", "kv"), + (0x33B9, "M", "mv"), + (0x33BA, "M", "pw"), + (0x33BB, "M", "nw"), + (0x33BC, "M", "μw"), + (0x33BD, "M", "mw"), + (0x33BE, "M", "kw"), + (0x33BF, "M", "mw"), + (0x33C0, "M", "kω"), + ] + + +def _seg_35() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x33C1, "M", "mω"), + (0x33C2, "X"), + (0x33C3, "M", "bq"), + (0x33C4, "M", "cc"), + (0x33C5, "M", "cd"), + (0x33C6, "M", "c∕kg"), + (0x33C7, "X"), + (0x33C8, "M", "db"), + (0x33C9, "M", "gy"), + (0x33CA, "M", "ha"), + (0x33CB, "M", "hp"), + (0x33CC, "M", "in"), + (0x33CD, "M", "kk"), + (0x33CE, "M", "km"), + (0x33CF, "M", "kt"), + (0x33D0, "M", "lm"), + (0x33D1, "M", "ln"), + (0x33D2, "M", "log"), + (0x33D3, "M", "lx"), + (0x33D4, "M", "mb"), + (0x33D5, "M", "mil"), + (0x33D6, "M", "mol"), + (0x33D7, "M", "ph"), + (0x33D8, "X"), + (0x33D9, "M", "ppm"), + (0x33DA, "M", "pr"), + (0x33DB, "M", "sr"), + (0x33DC, "M", "sv"), + (0x33DD, "M", "wb"), + (0x33DE, "M", "v∕m"), + (0x33DF, "M", "a∕m"), + (0x33E0, "M", "1日"), + (0x33E1, "M", "2日"), + (0x33E2, "M", "3日"), + (0x33E3, "M", "4日"), + (0x33E4, "M", "5日"), + (0x33E5, "M", "6日"), + (0x33E6, "M", "7日"), + (0x33E7, "M", "8日"), + (0x33E8, "M", "9日"), + (0x33E9, "M", "10日"), + (0x33EA, "M", "11日"), + (0x33EB, "M", "12日"), + (0x33EC, "M", "13日"), + (0x33ED, "M", "14日"), + (0x33EE, "M", "15日"), + (0x33EF, "M", "16日"), + (0x33F0, "M", "17日"), + (0x33F1, "M", "18日"), + (0x33F2, "M", "19日"), + (0x33F3, "M", "20日"), + (0x33F4, "M", "21日"), + (0x33F5, "M", "22日"), + (0x33F6, "M", "23日"), + (0x33F7, "M", "24日"), + (0x33F8, "M", "25日"), + (0x33F9, "M", "26日"), + (0x33FA, "M", "27日"), + (0x33FB, "M", "28日"), + (0x33FC, "M", "29日"), + (0x33FD, "M", "30日"), + (0x33FE, "M", "31日"), + (0x33FF, "M", "gal"), + (0x3400, "V"), + (0xA48D, "X"), + (0xA490, "V"), + (0xA4C7, "X"), + (0xA4D0, "V"), + (0xA62C, "X"), + (0xA640, "M", "ꙁ"), + (0xA641, "V"), + (0xA642, "M", "ꙃ"), + (0xA643, "V"), + (0xA644, "M", "ꙅ"), + (0xA645, "V"), + (0xA646, "M", "ꙇ"), + (0xA647, "V"), + (0xA648, "M", "ꙉ"), + (0xA649, "V"), + (0xA64A, "M", "ꙋ"), + (0xA64B, "V"), + (0xA64C, "M", "ꙍ"), + (0xA64D, "V"), + (0xA64E, "M", "ꙏ"), + (0xA64F, "V"), + (0xA650, "M", "ꙑ"), + (0xA651, "V"), + (0xA652, "M", "ꙓ"), + (0xA653, "V"), + (0xA654, "M", "ꙕ"), + (0xA655, "V"), + (0xA656, "M", "ꙗ"), + (0xA657, "V"), + (0xA658, "M", "ꙙ"), + (0xA659, "V"), + (0xA65A, "M", "ꙛ"), + (0xA65B, "V"), + (0xA65C, "M", "ꙝ"), + (0xA65D, "V"), + (0xA65E, "M", "ꙟ"), + ] + + +def _seg_36() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xA65F, "V"), + (0xA660, "M", "ꙡ"), + (0xA661, "V"), + (0xA662, "M", "ꙣ"), + (0xA663, "V"), + (0xA664, "M", "ꙥ"), + (0xA665, "V"), + (0xA666, "M", "ꙧ"), + (0xA667, "V"), + (0xA668, "M", "ꙩ"), + (0xA669, "V"), + (0xA66A, "M", "ꙫ"), + (0xA66B, "V"), + (0xA66C, "M", "ꙭ"), + (0xA66D, "V"), + (0xA680, "M", "ꚁ"), + (0xA681, "V"), + (0xA682, "M", "ꚃ"), + (0xA683, "V"), + (0xA684, "M", "ꚅ"), + (0xA685, "V"), + (0xA686, "M", "ꚇ"), + (0xA687, "V"), + (0xA688, "M", "ꚉ"), + (0xA689, "V"), + (0xA68A, "M", "ꚋ"), + (0xA68B, "V"), + (0xA68C, "M", "ꚍ"), + (0xA68D, "V"), + (0xA68E, "M", "ꚏ"), + (0xA68F, "V"), + (0xA690, "M", "ꚑ"), + (0xA691, "V"), + (0xA692, "M", "ꚓ"), + (0xA693, "V"), + (0xA694, "M", "ꚕ"), + (0xA695, "V"), + (0xA696, "M", "ꚗ"), + (0xA697, "V"), + (0xA698, "M", "ꚙ"), + (0xA699, "V"), + (0xA69A, "M", "ꚛ"), + (0xA69B, "V"), + (0xA69C, "M", "ъ"), + (0xA69D, "M", "ь"), + (0xA69E, "V"), + (0xA6F8, "X"), + (0xA700, "V"), + (0xA722, "M", "ꜣ"), + (0xA723, "V"), + (0xA724, "M", "ꜥ"), + (0xA725, "V"), + (0xA726, "M", "ꜧ"), + (0xA727, "V"), + (0xA728, "M", "ꜩ"), + (0xA729, "V"), + (0xA72A, "M", "ꜫ"), + (0xA72B, "V"), + (0xA72C, "M", "ꜭ"), + (0xA72D, "V"), + (0xA72E, "M", "ꜯ"), + (0xA72F, "V"), + (0xA732, "M", "ꜳ"), + (0xA733, "V"), + (0xA734, "M", "ꜵ"), + (0xA735, "V"), + (0xA736, "M", "ꜷ"), + (0xA737, "V"), + (0xA738, "M", "ꜹ"), + (0xA739, "V"), + (0xA73A, "M", "ꜻ"), + (0xA73B, "V"), + (0xA73C, "M", "ꜽ"), + (0xA73D, "V"), + (0xA73E, "M", "ꜿ"), + (0xA73F, "V"), + (0xA740, "M", "ꝁ"), + (0xA741, "V"), + (0xA742, "M", "ꝃ"), + (0xA743, "V"), + (0xA744, "M", "ꝅ"), + (0xA745, "V"), + (0xA746, "M", "ꝇ"), + (0xA747, "V"), + (0xA748, "M", "ꝉ"), + (0xA749, "V"), + (0xA74A, "M", "ꝋ"), + (0xA74B, "V"), + (0xA74C, "M", "ꝍ"), + (0xA74D, "V"), + (0xA74E, "M", "ꝏ"), + (0xA74F, "V"), + (0xA750, "M", "ꝑ"), + (0xA751, "V"), + (0xA752, "M", "ꝓ"), + (0xA753, "V"), + (0xA754, "M", "ꝕ"), + (0xA755, "V"), + (0xA756, "M", "ꝗ"), + (0xA757, "V"), + ] + + +def _seg_37() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xA758, "M", "ꝙ"), + (0xA759, "V"), + (0xA75A, "M", "ꝛ"), + (0xA75B, "V"), + (0xA75C, "M", "ꝝ"), + (0xA75D, "V"), + (0xA75E, "M", "ꝟ"), + (0xA75F, "V"), + (0xA760, "M", "ꝡ"), + (0xA761, "V"), + (0xA762, "M", "ꝣ"), + (0xA763, "V"), + (0xA764, "M", "ꝥ"), + (0xA765, "V"), + (0xA766, "M", "ꝧ"), + (0xA767, "V"), + (0xA768, "M", "ꝩ"), + (0xA769, "V"), + (0xA76A, "M", "ꝫ"), + (0xA76B, "V"), + (0xA76C, "M", "ꝭ"), + (0xA76D, "V"), + (0xA76E, "M", "ꝯ"), + (0xA76F, "V"), + (0xA770, "M", "ꝯ"), + (0xA771, "V"), + (0xA779, "M", "ꝺ"), + (0xA77A, "V"), + (0xA77B, "M", "ꝼ"), + (0xA77C, "V"), + (0xA77D, "M", "ᵹ"), + (0xA77E, "M", "ꝿ"), + (0xA77F, "V"), + (0xA780, "M", "ꞁ"), + (0xA781, "V"), + (0xA782, "M", "ꞃ"), + (0xA783, "V"), + (0xA784, "M", "ꞅ"), + (0xA785, "V"), + (0xA786, "M", "ꞇ"), + (0xA787, "V"), + (0xA78B, "M", "ꞌ"), + (0xA78C, "V"), + (0xA78D, "M", "ɥ"), + (0xA78E, "V"), + (0xA790, "M", "ꞑ"), + (0xA791, "V"), + (0xA792, "M", "ꞓ"), + (0xA793, "V"), + (0xA796, "M", "ꞗ"), + (0xA797, "V"), + (0xA798, "M", "ꞙ"), + (0xA799, "V"), + (0xA79A, "M", "ꞛ"), + (0xA79B, "V"), + (0xA79C, "M", "ꞝ"), + (0xA79D, "V"), + (0xA79E, "M", "ꞟ"), + (0xA79F, "V"), + (0xA7A0, "M", "ꞡ"), + (0xA7A1, "V"), + (0xA7A2, "M", "ꞣ"), + (0xA7A3, "V"), + (0xA7A4, "M", "ꞥ"), + (0xA7A5, "V"), + (0xA7A6, "M", "ꞧ"), + (0xA7A7, "V"), + (0xA7A8, "M", "ꞩ"), + (0xA7A9, "V"), + (0xA7AA, "M", "ɦ"), + (0xA7AB, "M", "ɜ"), + (0xA7AC, "M", "ɡ"), + (0xA7AD, "M", "ɬ"), + (0xA7AE, "M", "ɪ"), + (0xA7AF, "V"), + (0xA7B0, "M", "ʞ"), + (0xA7B1, "M", "ʇ"), + (0xA7B2, "M", "ʝ"), + (0xA7B3, "M", "ꭓ"), + (0xA7B4, "M", "ꞵ"), + (0xA7B5, "V"), + (0xA7B6, "M", "ꞷ"), + (0xA7B7, "V"), + (0xA7B8, "M", "ꞹ"), + (0xA7B9, "V"), + (0xA7BA, "M", "ꞻ"), + (0xA7BB, "V"), + (0xA7BC, "M", "ꞽ"), + (0xA7BD, "V"), + (0xA7BE, "M", "ꞿ"), + (0xA7BF, "V"), + (0xA7C0, "M", "ꟁ"), + (0xA7C1, "V"), + (0xA7C2, "M", "ꟃ"), + (0xA7C3, "V"), + (0xA7C4, "M", "ꞔ"), + (0xA7C5, "M", "ʂ"), + (0xA7C6, "M", "ᶎ"), + (0xA7C7, "M", "ꟈ"), + (0xA7C8, "V"), + ] + + +def _seg_38() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xA7C9, "M", "ꟊ"), + (0xA7CA, "V"), + (0xA7CB, "M", "ɤ"), + (0xA7CC, "M", "ꟍ"), + (0xA7CD, "V"), + (0xA7CE, "X"), + (0xA7D0, "M", "ꟑ"), + (0xA7D1, "V"), + (0xA7D2, "X"), + (0xA7D3, "V"), + (0xA7D4, "X"), + (0xA7D5, "V"), + (0xA7D6, "M", "ꟗ"), + (0xA7D7, "V"), + (0xA7D8, "M", "ꟙ"), + (0xA7D9, "V"), + (0xA7DA, "M", "ꟛ"), + (0xA7DB, "V"), + (0xA7DC, "M", "ƛ"), + (0xA7DD, "X"), + (0xA7F2, "M", "c"), + (0xA7F3, "M", "f"), + (0xA7F4, "M", "q"), + (0xA7F5, "M", "ꟶ"), + (0xA7F6, "V"), + (0xA7F8, "M", "ħ"), + (0xA7F9, "M", "œ"), + (0xA7FA, "V"), + (0xA82D, "X"), + (0xA830, "V"), + (0xA83A, "X"), + (0xA840, "V"), + (0xA878, "X"), + (0xA880, "V"), + (0xA8C6, "X"), + (0xA8CE, "V"), + (0xA8DA, "X"), + (0xA8E0, "V"), + (0xA954, "X"), + (0xA95F, "V"), + (0xA97D, "X"), + (0xA980, "V"), + (0xA9CE, "X"), + (0xA9CF, "V"), + (0xA9DA, "X"), + (0xA9DE, "V"), + (0xA9FF, "X"), + (0xAA00, "V"), + (0xAA37, "X"), + (0xAA40, "V"), + (0xAA4E, "X"), + (0xAA50, "V"), + (0xAA5A, "X"), + (0xAA5C, "V"), + (0xAAC3, "X"), + (0xAADB, "V"), + (0xAAF7, "X"), + (0xAB01, "V"), + (0xAB07, "X"), + (0xAB09, "V"), + (0xAB0F, "X"), + (0xAB11, "V"), + (0xAB17, "X"), + (0xAB20, "V"), + (0xAB27, "X"), + (0xAB28, "V"), + (0xAB2F, "X"), + (0xAB30, "V"), + (0xAB5C, "M", "ꜧ"), + (0xAB5D, "M", "ꬷ"), + (0xAB5E, "M", "ɫ"), + (0xAB5F, "M", "ꭒ"), + (0xAB60, "V"), + (0xAB69, "M", "ʍ"), + (0xAB6A, "V"), + (0xAB6C, "X"), + (0xAB70, "M", "Ꭰ"), + (0xAB71, "M", "Ꭱ"), + (0xAB72, "M", "Ꭲ"), + (0xAB73, "M", "Ꭳ"), + (0xAB74, "M", "Ꭴ"), + (0xAB75, "M", "Ꭵ"), + (0xAB76, "M", "Ꭶ"), + (0xAB77, "M", "Ꭷ"), + (0xAB78, "M", "Ꭸ"), + (0xAB79, "M", "Ꭹ"), + (0xAB7A, "M", "Ꭺ"), + (0xAB7B, "M", "Ꭻ"), + (0xAB7C, "M", "Ꭼ"), + (0xAB7D, "M", "Ꭽ"), + (0xAB7E, "M", "Ꭾ"), + (0xAB7F, "M", "Ꭿ"), + (0xAB80, "M", "Ꮀ"), + (0xAB81, "M", "Ꮁ"), + (0xAB82, "M", "Ꮂ"), + (0xAB83, "M", "Ꮃ"), + (0xAB84, "M", "Ꮄ"), + (0xAB85, "M", "Ꮅ"), + (0xAB86, "M", "Ꮆ"), + (0xAB87, "M", "Ꮇ"), + ] + + +def _seg_39() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xAB88, "M", "Ꮈ"), + (0xAB89, "M", "Ꮉ"), + (0xAB8A, "M", "Ꮊ"), + (0xAB8B, "M", "Ꮋ"), + (0xAB8C, "M", "Ꮌ"), + (0xAB8D, "M", "Ꮍ"), + (0xAB8E, "M", "Ꮎ"), + (0xAB8F, "M", "Ꮏ"), + (0xAB90, "M", "Ꮐ"), + (0xAB91, "M", "Ꮑ"), + (0xAB92, "M", "Ꮒ"), + (0xAB93, "M", "Ꮓ"), + (0xAB94, "M", "Ꮔ"), + (0xAB95, "M", "Ꮕ"), + (0xAB96, "M", "Ꮖ"), + (0xAB97, "M", "Ꮗ"), + (0xAB98, "M", "Ꮘ"), + (0xAB99, "M", "Ꮙ"), + (0xAB9A, "M", "Ꮚ"), + (0xAB9B, "M", "Ꮛ"), + (0xAB9C, "M", "Ꮜ"), + (0xAB9D, "M", "Ꮝ"), + (0xAB9E, "M", "Ꮞ"), + (0xAB9F, "M", "Ꮟ"), + (0xABA0, "M", "Ꮠ"), + (0xABA1, "M", "Ꮡ"), + (0xABA2, "M", "Ꮢ"), + (0xABA3, "M", "Ꮣ"), + (0xABA4, "M", "Ꮤ"), + (0xABA5, "M", "Ꮥ"), + (0xABA6, "M", "Ꮦ"), + (0xABA7, "M", "Ꮧ"), + (0xABA8, "M", "Ꮨ"), + (0xABA9, "M", "Ꮩ"), + (0xABAA, "M", "Ꮪ"), + (0xABAB, "M", "Ꮫ"), + (0xABAC, "M", "Ꮬ"), + (0xABAD, "M", "Ꮭ"), + (0xABAE, "M", "Ꮮ"), + (0xABAF, "M", "Ꮯ"), + (0xABB0, "M", "Ꮰ"), + (0xABB1, "M", "Ꮱ"), + (0xABB2, "M", "Ꮲ"), + (0xABB3, "M", "Ꮳ"), + (0xABB4, "M", "Ꮴ"), + (0xABB5, "M", "Ꮵ"), + (0xABB6, "M", "Ꮶ"), + (0xABB7, "M", "Ꮷ"), + (0xABB8, "M", "Ꮸ"), + (0xABB9, "M", "Ꮹ"), + (0xABBA, "M", "Ꮺ"), + (0xABBB, "M", "Ꮻ"), + (0xABBC, "M", "Ꮼ"), + (0xABBD, "M", "Ꮽ"), + (0xABBE, "M", "Ꮾ"), + (0xABBF, "M", "Ꮿ"), + (0xABC0, "V"), + (0xABEE, "X"), + (0xABF0, "V"), + (0xABFA, "X"), + (0xAC00, "V"), + (0xD7A4, "X"), + (0xD7B0, "V"), + (0xD7C7, "X"), + (0xD7CB, "V"), + (0xD7FC, "X"), + (0xF900, "M", "豈"), + (0xF901, "M", "更"), + (0xF902, "M", "車"), + (0xF903, "M", "賈"), + (0xF904, "M", "滑"), + (0xF905, "M", "串"), + (0xF906, "M", "句"), + (0xF907, "M", "龜"), + (0xF909, "M", "契"), + (0xF90A, "M", "金"), + (0xF90B, "M", "喇"), + (0xF90C, "M", "奈"), + (0xF90D, "M", "懶"), + (0xF90E, "M", "癩"), + (0xF90F, "M", "羅"), + (0xF910, "M", "蘿"), + (0xF911, "M", "螺"), + (0xF912, "M", "裸"), + (0xF913, "M", "邏"), + (0xF914, "M", "樂"), + (0xF915, "M", "洛"), + (0xF916, "M", "烙"), + (0xF917, "M", "珞"), + (0xF918, "M", "落"), + (0xF919, "M", "酪"), + (0xF91A, "M", "駱"), + (0xF91B, "M", "亂"), + (0xF91C, "M", "卵"), + (0xF91D, "M", "欄"), + (0xF91E, "M", "爛"), + (0xF91F, "M", "蘭"), + (0xF920, "M", "鸞"), + (0xF921, "M", "嵐"), + (0xF922, "M", "濫"), + ] + + +def _seg_40() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xF923, "M", "藍"), + (0xF924, "M", "襤"), + (0xF925, "M", "拉"), + (0xF926, "M", "臘"), + (0xF927, "M", "蠟"), + (0xF928, "M", "廊"), + (0xF929, "M", "朗"), + (0xF92A, "M", "浪"), + (0xF92B, "M", "狼"), + (0xF92C, "M", "郎"), + (0xF92D, "M", "來"), + (0xF92E, "M", "冷"), + (0xF92F, "M", "勞"), + (0xF930, "M", "擄"), + (0xF931, "M", "櫓"), + (0xF932, "M", "爐"), + (0xF933, "M", "盧"), + (0xF934, "M", "老"), + (0xF935, "M", "蘆"), + (0xF936, "M", "虜"), + (0xF937, "M", "路"), + (0xF938, "M", "露"), + (0xF939, "M", "魯"), + (0xF93A, "M", "鷺"), + (0xF93B, "M", "碌"), + (0xF93C, "M", "祿"), + (0xF93D, "M", "綠"), + (0xF93E, "M", "菉"), + (0xF93F, "M", "錄"), + (0xF940, "M", "鹿"), + (0xF941, "M", "論"), + (0xF942, "M", "壟"), + (0xF943, "M", "弄"), + (0xF944, "M", "籠"), + (0xF945, "M", "聾"), + (0xF946, "M", "牢"), + (0xF947, "M", "磊"), + (0xF948, "M", "賂"), + (0xF949, "M", "雷"), + (0xF94A, "M", "壘"), + (0xF94B, "M", "屢"), + (0xF94C, "M", "樓"), + (0xF94D, "M", "淚"), + (0xF94E, "M", "漏"), + (0xF94F, "M", "累"), + (0xF950, "M", "縷"), + (0xF951, "M", "陋"), + (0xF952, "M", "勒"), + (0xF953, "M", "肋"), + (0xF954, "M", "凜"), + (0xF955, "M", "凌"), + (0xF956, "M", "稜"), + (0xF957, "M", "綾"), + (0xF958, "M", "菱"), + (0xF959, "M", "陵"), + (0xF95A, "M", "讀"), + (0xF95B, "M", "拏"), + (0xF95C, "M", "樂"), + (0xF95D, "M", "諾"), + (0xF95E, "M", "丹"), + (0xF95F, "M", "寧"), + (0xF960, "M", "怒"), + (0xF961, "M", "率"), + (0xF962, "M", "異"), + (0xF963, "M", "北"), + (0xF964, "M", "磻"), + (0xF965, "M", "便"), + (0xF966, "M", "復"), + (0xF967, "M", "不"), + (0xF968, "M", "泌"), + (0xF969, "M", "數"), + (0xF96A, "M", "索"), + (0xF96B, "M", "參"), + (0xF96C, "M", "塞"), + (0xF96D, "M", "省"), + (0xF96E, "M", "葉"), + (0xF96F, "M", "說"), + (0xF970, "M", "殺"), + (0xF971, "M", "辰"), + (0xF972, "M", "沈"), + (0xF973, "M", "拾"), + (0xF974, "M", "若"), + (0xF975, "M", "掠"), + (0xF976, "M", "略"), + (0xF977, "M", "亮"), + (0xF978, "M", "兩"), + (0xF979, "M", "凉"), + (0xF97A, "M", "梁"), + (0xF97B, "M", "糧"), + (0xF97C, "M", "良"), + (0xF97D, "M", "諒"), + (0xF97E, "M", "量"), + (0xF97F, "M", "勵"), + (0xF980, "M", "呂"), + (0xF981, "M", "女"), + (0xF982, "M", "廬"), + (0xF983, "M", "旅"), + (0xF984, "M", "濾"), + (0xF985, "M", "礪"), + (0xF986, "M", "閭"), + ] + + +def _seg_41() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xF987, "M", "驪"), + (0xF988, "M", "麗"), + (0xF989, "M", "黎"), + (0xF98A, "M", "力"), + (0xF98B, "M", "曆"), + (0xF98C, "M", "歷"), + (0xF98D, "M", "轢"), + (0xF98E, "M", "年"), + (0xF98F, "M", "憐"), + (0xF990, "M", "戀"), + (0xF991, "M", "撚"), + (0xF992, "M", "漣"), + (0xF993, "M", "煉"), + (0xF994, "M", "璉"), + (0xF995, "M", "秊"), + (0xF996, "M", "練"), + (0xF997, "M", "聯"), + (0xF998, "M", "輦"), + (0xF999, "M", "蓮"), + (0xF99A, "M", "連"), + (0xF99B, "M", "鍊"), + (0xF99C, "M", "列"), + (0xF99D, "M", "劣"), + (0xF99E, "M", "咽"), + (0xF99F, "M", "烈"), + (0xF9A0, "M", "裂"), + (0xF9A1, "M", "說"), + (0xF9A2, "M", "廉"), + (0xF9A3, "M", "念"), + (0xF9A4, "M", "捻"), + (0xF9A5, "M", "殮"), + (0xF9A6, "M", "簾"), + (0xF9A7, "M", "獵"), + (0xF9A8, "M", "令"), + (0xF9A9, "M", "囹"), + (0xF9AA, "M", "寧"), + (0xF9AB, "M", "嶺"), + (0xF9AC, "M", "怜"), + (0xF9AD, "M", "玲"), + (0xF9AE, "M", "瑩"), + (0xF9AF, "M", "羚"), + (0xF9B0, "M", "聆"), + (0xF9B1, "M", "鈴"), + (0xF9B2, "M", "零"), + (0xF9B3, "M", "靈"), + (0xF9B4, "M", "領"), + (0xF9B5, "M", "例"), + (0xF9B6, "M", "禮"), + (0xF9B7, "M", "醴"), + (0xF9B8, "M", "隸"), + (0xF9B9, "M", "惡"), + (0xF9BA, "M", "了"), + (0xF9BB, "M", "僚"), + (0xF9BC, "M", "寮"), + (0xF9BD, "M", "尿"), + (0xF9BE, "M", "料"), + (0xF9BF, "M", "樂"), + (0xF9C0, "M", "燎"), + (0xF9C1, "M", "療"), + (0xF9C2, "M", "蓼"), + (0xF9C3, "M", "遼"), + (0xF9C4, "M", "龍"), + (0xF9C5, "M", "暈"), + (0xF9C6, "M", "阮"), + (0xF9C7, "M", "劉"), + (0xF9C8, "M", "杻"), + (0xF9C9, "M", "柳"), + (0xF9CA, "M", "流"), + (0xF9CB, "M", "溜"), + (0xF9CC, "M", "琉"), + (0xF9CD, "M", "留"), + (0xF9CE, "M", "硫"), + (0xF9CF, "M", "紐"), + (0xF9D0, "M", "類"), + (0xF9D1, "M", "六"), + (0xF9D2, "M", "戮"), + (0xF9D3, "M", "陸"), + (0xF9D4, "M", "倫"), + (0xF9D5, "M", "崙"), + (0xF9D6, "M", "淪"), + (0xF9D7, "M", "輪"), + (0xF9D8, "M", "律"), + (0xF9D9, "M", "慄"), + (0xF9DA, "M", "栗"), + (0xF9DB, "M", "率"), + (0xF9DC, "M", "隆"), + (0xF9DD, "M", "利"), + (0xF9DE, "M", "吏"), + (0xF9DF, "M", "履"), + (0xF9E0, "M", "易"), + (0xF9E1, "M", "李"), + (0xF9E2, "M", "梨"), + (0xF9E3, "M", "泥"), + (0xF9E4, "M", "理"), + (0xF9E5, "M", "痢"), + (0xF9E6, "M", "罹"), + (0xF9E7, "M", "裏"), + (0xF9E8, "M", "裡"), + (0xF9E9, "M", "里"), + (0xF9EA, "M", "離"), + ] + + +def _seg_42() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xF9EB, "M", "匿"), + (0xF9EC, "M", "溺"), + (0xF9ED, "M", "吝"), + (0xF9EE, "M", "燐"), + (0xF9EF, "M", "璘"), + (0xF9F0, "M", "藺"), + (0xF9F1, "M", "隣"), + (0xF9F2, "M", "鱗"), + (0xF9F3, "M", "麟"), + (0xF9F4, "M", "林"), + (0xF9F5, "M", "淋"), + (0xF9F6, "M", "臨"), + (0xF9F7, "M", "立"), + (0xF9F8, "M", "笠"), + (0xF9F9, "M", "粒"), + (0xF9FA, "M", "狀"), + (0xF9FB, "M", "炙"), + (0xF9FC, "M", "識"), + (0xF9FD, "M", "什"), + (0xF9FE, "M", "茶"), + (0xF9FF, "M", "刺"), + (0xFA00, "M", "切"), + (0xFA01, "M", "度"), + (0xFA02, "M", "拓"), + (0xFA03, "M", "糖"), + (0xFA04, "M", "宅"), + (0xFA05, "M", "洞"), + (0xFA06, "M", "暴"), + (0xFA07, "M", "輻"), + (0xFA08, "M", "行"), + (0xFA09, "M", "降"), + (0xFA0A, "M", "見"), + (0xFA0B, "M", "廓"), + (0xFA0C, "M", "兀"), + (0xFA0D, "M", "嗀"), + (0xFA0E, "V"), + (0xFA10, "M", "塚"), + (0xFA11, "V"), + (0xFA12, "M", "晴"), + (0xFA13, "V"), + (0xFA15, "M", "凞"), + (0xFA16, "M", "猪"), + (0xFA17, "M", "益"), + (0xFA18, "M", "礼"), + (0xFA19, "M", "神"), + (0xFA1A, "M", "祥"), + (0xFA1B, "M", "福"), + (0xFA1C, "M", "靖"), + (0xFA1D, "M", "精"), + (0xFA1E, "M", "羽"), + (0xFA1F, "V"), + (0xFA20, "M", "蘒"), + (0xFA21, "V"), + (0xFA22, "M", "諸"), + (0xFA23, "V"), + (0xFA25, "M", "逸"), + (0xFA26, "M", "都"), + (0xFA27, "V"), + (0xFA2A, "M", "飯"), + (0xFA2B, "M", "飼"), + (0xFA2C, "M", "館"), + (0xFA2D, "M", "鶴"), + (0xFA2E, "M", "郞"), + (0xFA2F, "M", "隷"), + (0xFA30, "M", "侮"), + (0xFA31, "M", "僧"), + (0xFA32, "M", "免"), + (0xFA33, "M", "勉"), + (0xFA34, "M", "勤"), + (0xFA35, "M", "卑"), + (0xFA36, "M", "喝"), + (0xFA37, "M", "嘆"), + (0xFA38, "M", "器"), + (0xFA39, "M", "塀"), + (0xFA3A, "M", "墨"), + (0xFA3B, "M", "層"), + (0xFA3C, "M", "屮"), + (0xFA3D, "M", "悔"), + (0xFA3E, "M", "慨"), + (0xFA3F, "M", "憎"), + (0xFA40, "M", "懲"), + (0xFA41, "M", "敏"), + (0xFA42, "M", "既"), + (0xFA43, "M", "暑"), + (0xFA44, "M", "梅"), + (0xFA45, "M", "海"), + (0xFA46, "M", "渚"), + (0xFA47, "M", "漢"), + (0xFA48, "M", "煮"), + (0xFA49, "M", "爫"), + (0xFA4A, "M", "琢"), + (0xFA4B, "M", "碑"), + (0xFA4C, "M", "社"), + (0xFA4D, "M", "祉"), + (0xFA4E, "M", "祈"), + (0xFA4F, "M", "祐"), + (0xFA50, "M", "祖"), + (0xFA51, "M", "祝"), + (0xFA52, "M", "禍"), + (0xFA53, "M", "禎"), + ] + + +def _seg_43() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFA54, "M", "穀"), + (0xFA55, "M", "突"), + (0xFA56, "M", "節"), + (0xFA57, "M", "練"), + (0xFA58, "M", "縉"), + (0xFA59, "M", "繁"), + (0xFA5A, "M", "署"), + (0xFA5B, "M", "者"), + (0xFA5C, "M", "臭"), + (0xFA5D, "M", "艹"), + (0xFA5F, "M", "著"), + (0xFA60, "M", "褐"), + (0xFA61, "M", "視"), + (0xFA62, "M", "謁"), + (0xFA63, "M", "謹"), + (0xFA64, "M", "賓"), + (0xFA65, "M", "贈"), + (0xFA66, "M", "辶"), + (0xFA67, "M", "逸"), + (0xFA68, "M", "難"), + (0xFA69, "M", "響"), + (0xFA6A, "M", "頻"), + (0xFA6B, "M", "恵"), + (0xFA6C, "M", "𤋮"), + (0xFA6D, "M", "舘"), + (0xFA6E, "X"), + (0xFA70, "M", "並"), + (0xFA71, "M", "况"), + (0xFA72, "M", "全"), + (0xFA73, "M", "侀"), + (0xFA74, "M", "充"), + (0xFA75, "M", "冀"), + (0xFA76, "M", "勇"), + (0xFA77, "M", "勺"), + (0xFA78, "M", "喝"), + (0xFA79, "M", "啕"), + (0xFA7A, "M", "喙"), + (0xFA7B, "M", "嗢"), + (0xFA7C, "M", "塚"), + (0xFA7D, "M", "墳"), + (0xFA7E, "M", "奄"), + (0xFA7F, "M", "奔"), + (0xFA80, "M", "婢"), + (0xFA81, "M", "嬨"), + (0xFA82, "M", "廒"), + (0xFA83, "M", "廙"), + (0xFA84, "M", "彩"), + (0xFA85, "M", "徭"), + (0xFA86, "M", "惘"), + (0xFA87, "M", "慎"), + (0xFA88, "M", "愈"), + (0xFA89, "M", "憎"), + (0xFA8A, "M", "慠"), + (0xFA8B, "M", "懲"), + (0xFA8C, "M", "戴"), + (0xFA8D, "M", "揄"), + (0xFA8E, "M", "搜"), + (0xFA8F, "M", "摒"), + (0xFA90, "M", "敖"), + (0xFA91, "M", "晴"), + (0xFA92, "M", "朗"), + (0xFA93, "M", "望"), + (0xFA94, "M", "杖"), + (0xFA95, "M", "歹"), + (0xFA96, "M", "殺"), + (0xFA97, "M", "流"), + (0xFA98, "M", "滛"), + (0xFA99, "M", "滋"), + (0xFA9A, "M", "漢"), + (0xFA9B, "M", "瀞"), + (0xFA9C, "M", "煮"), + (0xFA9D, "M", "瞧"), + (0xFA9E, "M", "爵"), + (0xFA9F, "M", "犯"), + (0xFAA0, "M", "猪"), + (0xFAA1, "M", "瑱"), + (0xFAA2, "M", "甆"), + (0xFAA3, "M", "画"), + (0xFAA4, "M", "瘝"), + (0xFAA5, "M", "瘟"), + (0xFAA6, "M", "益"), + (0xFAA7, "M", "盛"), + (0xFAA8, "M", "直"), + (0xFAA9, "M", "睊"), + (0xFAAA, "M", "着"), + (0xFAAB, "M", "磌"), + (0xFAAC, "M", "窱"), + (0xFAAD, "M", "節"), + (0xFAAE, "M", "类"), + (0xFAAF, "M", "絛"), + (0xFAB0, "M", "練"), + (0xFAB1, "M", "缾"), + (0xFAB2, "M", "者"), + (0xFAB3, "M", "荒"), + (0xFAB4, "M", "華"), + (0xFAB5, "M", "蝹"), + (0xFAB6, "M", "襁"), + (0xFAB7, "M", "覆"), + (0xFAB8, "M", "視"), + (0xFAB9, "M", "調"), + ] + + +def _seg_44() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFABA, "M", "諸"), + (0xFABB, "M", "請"), + (0xFABC, "M", "謁"), + (0xFABD, "M", "諾"), + (0xFABE, "M", "諭"), + (0xFABF, "M", "謹"), + (0xFAC0, "M", "變"), + (0xFAC1, "M", "贈"), + (0xFAC2, "M", "輸"), + (0xFAC3, "M", "遲"), + (0xFAC4, "M", "醙"), + (0xFAC5, "M", "鉶"), + (0xFAC6, "M", "陼"), + (0xFAC7, "M", "難"), + (0xFAC8, "M", "靖"), + (0xFAC9, "M", "韛"), + (0xFACA, "M", "響"), + (0xFACB, "M", "頋"), + (0xFACC, "M", "頻"), + (0xFACD, "M", "鬒"), + (0xFACE, "M", "龜"), + (0xFACF, "M", "𢡊"), + (0xFAD0, "M", "𢡄"), + (0xFAD1, "M", "𣏕"), + (0xFAD2, "M", "㮝"), + (0xFAD3, "M", "䀘"), + (0xFAD4, "M", "䀹"), + (0xFAD5, "M", "𥉉"), + (0xFAD6, "M", "𥳐"), + (0xFAD7, "M", "𧻓"), + (0xFAD8, "M", "齃"), + (0xFAD9, "M", "龎"), + (0xFADA, "X"), + (0xFB00, "M", "ff"), + (0xFB01, "M", "fi"), + (0xFB02, "M", "fl"), + (0xFB03, "M", "ffi"), + (0xFB04, "M", "ffl"), + (0xFB05, "M", "st"), + (0xFB07, "X"), + (0xFB13, "M", "մն"), + (0xFB14, "M", "մե"), + (0xFB15, "M", "մի"), + (0xFB16, "M", "վն"), + (0xFB17, "M", "մխ"), + (0xFB18, "X"), + (0xFB1D, "M", "יִ"), + (0xFB1E, "V"), + (0xFB1F, "M", "ײַ"), + (0xFB20, "M", "ע"), + (0xFB21, "M", "א"), + (0xFB22, "M", "ד"), + (0xFB23, "M", "ה"), + (0xFB24, "M", "כ"), + (0xFB25, "M", "ל"), + (0xFB26, "M", "ם"), + (0xFB27, "M", "ר"), + (0xFB28, "M", "ת"), + (0xFB29, "M", "+"), + (0xFB2A, "M", "שׁ"), + (0xFB2B, "M", "שׂ"), + (0xFB2C, "M", "שּׁ"), + (0xFB2D, "M", "שּׂ"), + (0xFB2E, "M", "אַ"), + (0xFB2F, "M", "אָ"), + (0xFB30, "M", "אּ"), + (0xFB31, "M", "בּ"), + (0xFB32, "M", "גּ"), + (0xFB33, "M", "דּ"), + (0xFB34, "M", "הּ"), + (0xFB35, "M", "וּ"), + (0xFB36, "M", "זּ"), + (0xFB37, "X"), + (0xFB38, "M", "טּ"), + (0xFB39, "M", "יּ"), + (0xFB3A, "M", "ךּ"), + (0xFB3B, "M", "כּ"), + (0xFB3C, "M", "לּ"), + (0xFB3D, "X"), + (0xFB3E, "M", "מּ"), + (0xFB3F, "X"), + (0xFB40, "M", "נּ"), + (0xFB41, "M", "סּ"), + (0xFB42, "X"), + (0xFB43, "M", "ףּ"), + (0xFB44, "M", "פּ"), + (0xFB45, "X"), + (0xFB46, "M", "צּ"), + (0xFB47, "M", "קּ"), + (0xFB48, "M", "רּ"), + (0xFB49, "M", "שּ"), + (0xFB4A, "M", "תּ"), + (0xFB4B, "M", "וֹ"), + (0xFB4C, "M", "בֿ"), + (0xFB4D, "M", "כֿ"), + (0xFB4E, "M", "פֿ"), + (0xFB4F, "M", "אל"), + (0xFB50, "M", "ٱ"), + (0xFB52, "M", "ٻ"), + (0xFB56, "M", "پ"), + ] + + +def _seg_45() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFB5A, "M", "ڀ"), + (0xFB5E, "M", "ٺ"), + (0xFB62, "M", "ٿ"), + (0xFB66, "M", "ٹ"), + (0xFB6A, "M", "ڤ"), + (0xFB6E, "M", "ڦ"), + (0xFB72, "M", "ڄ"), + (0xFB76, "M", "ڃ"), + (0xFB7A, "M", "چ"), + (0xFB7E, "M", "ڇ"), + (0xFB82, "M", "ڍ"), + (0xFB84, "M", "ڌ"), + (0xFB86, "M", "ڎ"), + (0xFB88, "M", "ڈ"), + (0xFB8A, "M", "ژ"), + (0xFB8C, "M", "ڑ"), + (0xFB8E, "M", "ک"), + (0xFB92, "M", "گ"), + (0xFB96, "M", "ڳ"), + (0xFB9A, "M", "ڱ"), + (0xFB9E, "M", "ں"), + (0xFBA0, "M", "ڻ"), + (0xFBA4, "M", "ۀ"), + (0xFBA6, "M", "ہ"), + (0xFBAA, "M", "ھ"), + (0xFBAE, "M", "ے"), + (0xFBB0, "M", "ۓ"), + (0xFBB2, "V"), + (0xFBC3, "X"), + (0xFBD3, "M", "ڭ"), + (0xFBD7, "M", "ۇ"), + (0xFBD9, "M", "ۆ"), + (0xFBDB, "M", "ۈ"), + (0xFBDD, "M", "ۇٴ"), + (0xFBDE, "M", "ۋ"), + (0xFBE0, "M", "ۅ"), + (0xFBE2, "M", "ۉ"), + (0xFBE4, "M", "ې"), + (0xFBE8, "M", "ى"), + (0xFBEA, "M", "ئا"), + (0xFBEC, "M", "ئە"), + (0xFBEE, "M", "ئو"), + (0xFBF0, "M", "ئۇ"), + (0xFBF2, "M", "ئۆ"), + (0xFBF4, "M", "ئۈ"), + (0xFBF6, "M", "ئې"), + (0xFBF9, "M", "ئى"), + (0xFBFC, "M", "ی"), + (0xFC00, "M", "ئج"), + (0xFC01, "M", "ئح"), + (0xFC02, "M", "ئم"), + (0xFC03, "M", "ئى"), + (0xFC04, "M", "ئي"), + (0xFC05, "M", "بج"), + (0xFC06, "M", "بح"), + (0xFC07, "M", "بخ"), + (0xFC08, "M", "بم"), + (0xFC09, "M", "بى"), + (0xFC0A, "M", "بي"), + (0xFC0B, "M", "تج"), + (0xFC0C, "M", "تح"), + (0xFC0D, "M", "تخ"), + (0xFC0E, "M", "تم"), + (0xFC0F, "M", "تى"), + (0xFC10, "M", "تي"), + (0xFC11, "M", "ثج"), + (0xFC12, "M", "ثم"), + (0xFC13, "M", "ثى"), + (0xFC14, "M", "ثي"), + (0xFC15, "M", "جح"), + (0xFC16, "M", "جم"), + (0xFC17, "M", "حج"), + (0xFC18, "M", "حم"), + (0xFC19, "M", "خج"), + (0xFC1A, "M", "خح"), + (0xFC1B, "M", "خم"), + (0xFC1C, "M", "سج"), + (0xFC1D, "M", "سح"), + (0xFC1E, "M", "سخ"), + (0xFC1F, "M", "سم"), + (0xFC20, "M", "صح"), + (0xFC21, "M", "صم"), + (0xFC22, "M", "ضج"), + (0xFC23, "M", "ضح"), + (0xFC24, "M", "ضخ"), + (0xFC25, "M", "ضم"), + (0xFC26, "M", "طح"), + (0xFC27, "M", "طم"), + (0xFC28, "M", "ظم"), + (0xFC29, "M", "عج"), + (0xFC2A, "M", "عم"), + (0xFC2B, "M", "غج"), + (0xFC2C, "M", "غم"), + (0xFC2D, "M", "فج"), + (0xFC2E, "M", "فح"), + (0xFC2F, "M", "فخ"), + (0xFC30, "M", "فم"), + (0xFC31, "M", "فى"), + (0xFC32, "M", "في"), + (0xFC33, "M", "قح"), + ] + + +def _seg_46() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFC34, "M", "قم"), + (0xFC35, "M", "قى"), + (0xFC36, "M", "قي"), + (0xFC37, "M", "كا"), + (0xFC38, "M", "كج"), + (0xFC39, "M", "كح"), + (0xFC3A, "M", "كخ"), + (0xFC3B, "M", "كل"), + (0xFC3C, "M", "كم"), + (0xFC3D, "M", "كى"), + (0xFC3E, "M", "كي"), + (0xFC3F, "M", "لج"), + (0xFC40, "M", "لح"), + (0xFC41, "M", "لخ"), + (0xFC42, "M", "لم"), + (0xFC43, "M", "لى"), + (0xFC44, "M", "لي"), + (0xFC45, "M", "مج"), + (0xFC46, "M", "مح"), + (0xFC47, "M", "مخ"), + (0xFC48, "M", "مم"), + (0xFC49, "M", "مى"), + (0xFC4A, "M", "مي"), + (0xFC4B, "M", "نج"), + (0xFC4C, "M", "نح"), + (0xFC4D, "M", "نخ"), + (0xFC4E, "M", "نم"), + (0xFC4F, "M", "نى"), + (0xFC50, "M", "ني"), + (0xFC51, "M", "هج"), + (0xFC52, "M", "هم"), + (0xFC53, "M", "هى"), + (0xFC54, "M", "هي"), + (0xFC55, "M", "يج"), + (0xFC56, "M", "يح"), + (0xFC57, "M", "يخ"), + (0xFC58, "M", "يم"), + (0xFC59, "M", "يى"), + (0xFC5A, "M", "يي"), + (0xFC5B, "M", "ذٰ"), + (0xFC5C, "M", "رٰ"), + (0xFC5D, "M", "ىٰ"), + (0xFC5E, "M", " ٌّ"), + (0xFC5F, "M", " ٍّ"), + (0xFC60, "M", " َّ"), + (0xFC61, "M", " ُّ"), + (0xFC62, "M", " ِّ"), + (0xFC63, "M", " ّٰ"), + (0xFC64, "M", "ئر"), + (0xFC65, "M", "ئز"), + (0xFC66, "M", "ئم"), + (0xFC67, "M", "ئن"), + (0xFC68, "M", "ئى"), + (0xFC69, "M", "ئي"), + (0xFC6A, "M", "بر"), + (0xFC6B, "M", "بز"), + (0xFC6C, "M", "بم"), + (0xFC6D, "M", "بن"), + (0xFC6E, "M", "بى"), + (0xFC6F, "M", "بي"), + (0xFC70, "M", "تر"), + (0xFC71, "M", "تز"), + (0xFC72, "M", "تم"), + (0xFC73, "M", "تن"), + (0xFC74, "M", "تى"), + (0xFC75, "M", "تي"), + (0xFC76, "M", "ثر"), + (0xFC77, "M", "ثز"), + (0xFC78, "M", "ثم"), + (0xFC79, "M", "ثن"), + (0xFC7A, "M", "ثى"), + (0xFC7B, "M", "ثي"), + (0xFC7C, "M", "فى"), + (0xFC7D, "M", "في"), + (0xFC7E, "M", "قى"), + (0xFC7F, "M", "قي"), + (0xFC80, "M", "كا"), + (0xFC81, "M", "كل"), + (0xFC82, "M", "كم"), + (0xFC83, "M", "كى"), + (0xFC84, "M", "كي"), + (0xFC85, "M", "لم"), + (0xFC86, "M", "لى"), + (0xFC87, "M", "لي"), + (0xFC88, "M", "ما"), + (0xFC89, "M", "مم"), + (0xFC8A, "M", "نر"), + (0xFC8B, "M", "نز"), + (0xFC8C, "M", "نم"), + (0xFC8D, "M", "نن"), + (0xFC8E, "M", "نى"), + (0xFC8F, "M", "ني"), + (0xFC90, "M", "ىٰ"), + (0xFC91, "M", "ير"), + (0xFC92, "M", "يز"), + (0xFC93, "M", "يم"), + (0xFC94, "M", "ين"), + (0xFC95, "M", "يى"), + (0xFC96, "M", "يي"), + (0xFC97, "M", "ئج"), + ] + + +def _seg_47() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFC98, "M", "ئح"), + (0xFC99, "M", "ئخ"), + (0xFC9A, "M", "ئم"), + (0xFC9B, "M", "ئه"), + (0xFC9C, "M", "بج"), + (0xFC9D, "M", "بح"), + (0xFC9E, "M", "بخ"), + (0xFC9F, "M", "بم"), + (0xFCA0, "M", "به"), + (0xFCA1, "M", "تج"), + (0xFCA2, "M", "تح"), + (0xFCA3, "M", "تخ"), + (0xFCA4, "M", "تم"), + (0xFCA5, "M", "ته"), + (0xFCA6, "M", "ثم"), + (0xFCA7, "M", "جح"), + (0xFCA8, "M", "جم"), + (0xFCA9, "M", "حج"), + (0xFCAA, "M", "حم"), + (0xFCAB, "M", "خج"), + (0xFCAC, "M", "خم"), + (0xFCAD, "M", "سج"), + (0xFCAE, "M", "سح"), + (0xFCAF, "M", "سخ"), + (0xFCB0, "M", "سم"), + (0xFCB1, "M", "صح"), + (0xFCB2, "M", "صخ"), + (0xFCB3, "M", "صم"), + (0xFCB4, "M", "ضج"), + (0xFCB5, "M", "ضح"), + (0xFCB6, "M", "ضخ"), + (0xFCB7, "M", "ضم"), + (0xFCB8, "M", "طح"), + (0xFCB9, "M", "ظم"), + (0xFCBA, "M", "عج"), + (0xFCBB, "M", "عم"), + (0xFCBC, "M", "غج"), + (0xFCBD, "M", "غم"), + (0xFCBE, "M", "فج"), + (0xFCBF, "M", "فح"), + (0xFCC0, "M", "فخ"), + (0xFCC1, "M", "فم"), + (0xFCC2, "M", "قح"), + (0xFCC3, "M", "قم"), + (0xFCC4, "M", "كج"), + (0xFCC5, "M", "كح"), + (0xFCC6, "M", "كخ"), + (0xFCC7, "M", "كل"), + (0xFCC8, "M", "كم"), + (0xFCC9, "M", "لج"), + (0xFCCA, "M", "لح"), + (0xFCCB, "M", "لخ"), + (0xFCCC, "M", "لم"), + (0xFCCD, "M", "له"), + (0xFCCE, "M", "مج"), + (0xFCCF, "M", "مح"), + (0xFCD0, "M", "مخ"), + (0xFCD1, "M", "مم"), + (0xFCD2, "M", "نج"), + (0xFCD3, "M", "نح"), + (0xFCD4, "M", "نخ"), + (0xFCD5, "M", "نم"), + (0xFCD6, "M", "نه"), + (0xFCD7, "M", "هج"), + (0xFCD8, "M", "هم"), + (0xFCD9, "M", "هٰ"), + (0xFCDA, "M", "يج"), + (0xFCDB, "M", "يح"), + (0xFCDC, "M", "يخ"), + (0xFCDD, "M", "يم"), + (0xFCDE, "M", "يه"), + (0xFCDF, "M", "ئم"), + (0xFCE0, "M", "ئه"), + (0xFCE1, "M", "بم"), + (0xFCE2, "M", "به"), + (0xFCE3, "M", "تم"), + (0xFCE4, "M", "ته"), + (0xFCE5, "M", "ثم"), + (0xFCE6, "M", "ثه"), + (0xFCE7, "M", "سم"), + (0xFCE8, "M", "سه"), + (0xFCE9, "M", "شم"), + (0xFCEA, "M", "شه"), + (0xFCEB, "M", "كل"), + (0xFCEC, "M", "كم"), + (0xFCED, "M", "لم"), + (0xFCEE, "M", "نم"), + (0xFCEF, "M", "نه"), + (0xFCF0, "M", "يم"), + (0xFCF1, "M", "يه"), + (0xFCF2, "M", "ـَّ"), + (0xFCF3, "M", "ـُّ"), + (0xFCF4, "M", "ـِّ"), + (0xFCF5, "M", "طى"), + (0xFCF6, "M", "طي"), + (0xFCF7, "M", "عى"), + (0xFCF8, "M", "عي"), + (0xFCF9, "M", "غى"), + (0xFCFA, "M", "غي"), + (0xFCFB, "M", "سى"), + ] + + +def _seg_48() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFCFC, "M", "سي"), + (0xFCFD, "M", "شى"), + (0xFCFE, "M", "شي"), + (0xFCFF, "M", "حى"), + (0xFD00, "M", "حي"), + (0xFD01, "M", "جى"), + (0xFD02, "M", "جي"), + (0xFD03, "M", "خى"), + (0xFD04, "M", "خي"), + (0xFD05, "M", "صى"), + (0xFD06, "M", "صي"), + (0xFD07, "M", "ضى"), + (0xFD08, "M", "ضي"), + (0xFD09, "M", "شج"), + (0xFD0A, "M", "شح"), + (0xFD0B, "M", "شخ"), + (0xFD0C, "M", "شم"), + (0xFD0D, "M", "شر"), + (0xFD0E, "M", "سر"), + (0xFD0F, "M", "صر"), + (0xFD10, "M", "ضر"), + (0xFD11, "M", "طى"), + (0xFD12, "M", "طي"), + (0xFD13, "M", "عى"), + (0xFD14, "M", "عي"), + (0xFD15, "M", "غى"), + (0xFD16, "M", "غي"), + (0xFD17, "M", "سى"), + (0xFD18, "M", "سي"), + (0xFD19, "M", "شى"), + (0xFD1A, "M", "شي"), + (0xFD1B, "M", "حى"), + (0xFD1C, "M", "حي"), + (0xFD1D, "M", "جى"), + (0xFD1E, "M", "جي"), + (0xFD1F, "M", "خى"), + (0xFD20, "M", "خي"), + (0xFD21, "M", "صى"), + (0xFD22, "M", "صي"), + (0xFD23, "M", "ضى"), + (0xFD24, "M", "ضي"), + (0xFD25, "M", "شج"), + (0xFD26, "M", "شح"), + (0xFD27, "M", "شخ"), + (0xFD28, "M", "شم"), + (0xFD29, "M", "شر"), + (0xFD2A, "M", "سر"), + (0xFD2B, "M", "صر"), + (0xFD2C, "M", "ضر"), + (0xFD2D, "M", "شج"), + (0xFD2E, "M", "شح"), + (0xFD2F, "M", "شخ"), + (0xFD30, "M", "شم"), + (0xFD31, "M", "سه"), + (0xFD32, "M", "شه"), + (0xFD33, "M", "طم"), + (0xFD34, "M", "سج"), + (0xFD35, "M", "سح"), + (0xFD36, "M", "سخ"), + (0xFD37, "M", "شج"), + (0xFD38, "M", "شح"), + (0xFD39, "M", "شخ"), + (0xFD3A, "M", "طم"), + (0xFD3B, "M", "ظم"), + (0xFD3C, "M", "اً"), + (0xFD3E, "V"), + (0xFD50, "M", "تجم"), + (0xFD51, "M", "تحج"), + (0xFD53, "M", "تحم"), + (0xFD54, "M", "تخم"), + (0xFD55, "M", "تمج"), + (0xFD56, "M", "تمح"), + (0xFD57, "M", "تمخ"), + (0xFD58, "M", "جمح"), + (0xFD5A, "M", "حمي"), + (0xFD5B, "M", "حمى"), + (0xFD5C, "M", "سحج"), + (0xFD5D, "M", "سجح"), + (0xFD5E, "M", "سجى"), + (0xFD5F, "M", "سمح"), + (0xFD61, "M", "سمج"), + (0xFD62, "M", "سمم"), + (0xFD64, "M", "صحح"), + (0xFD66, "M", "صمم"), + (0xFD67, "M", "شحم"), + (0xFD69, "M", "شجي"), + (0xFD6A, "M", "شمخ"), + (0xFD6C, "M", "شمم"), + (0xFD6E, "M", "ضحى"), + (0xFD6F, "M", "ضخم"), + (0xFD71, "M", "طمح"), + (0xFD73, "M", "طمم"), + (0xFD74, "M", "طمي"), + (0xFD75, "M", "عجم"), + (0xFD76, "M", "عمم"), + (0xFD78, "M", "عمى"), + (0xFD79, "M", "غمم"), + (0xFD7A, "M", "غمي"), + (0xFD7B, "M", "غمى"), + (0xFD7C, "M", "فخم"), + ] + + +def _seg_49() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFD7E, "M", "قمح"), + (0xFD7F, "M", "قمم"), + (0xFD80, "M", "لحم"), + (0xFD81, "M", "لحي"), + (0xFD82, "M", "لحى"), + (0xFD83, "M", "لجج"), + (0xFD85, "M", "لخم"), + (0xFD87, "M", "لمح"), + (0xFD89, "M", "محج"), + (0xFD8A, "M", "محم"), + (0xFD8B, "M", "محي"), + (0xFD8C, "M", "مجح"), + (0xFD8D, "M", "مجم"), + (0xFD8E, "M", "مخج"), + (0xFD8F, "M", "مخم"), + (0xFD90, "X"), + (0xFD92, "M", "مجخ"), + (0xFD93, "M", "همج"), + (0xFD94, "M", "همم"), + (0xFD95, "M", "نحم"), + (0xFD96, "M", "نحى"), + (0xFD97, "M", "نجم"), + (0xFD99, "M", "نجى"), + (0xFD9A, "M", "نمي"), + (0xFD9B, "M", "نمى"), + (0xFD9C, "M", "يمم"), + (0xFD9E, "M", "بخي"), + (0xFD9F, "M", "تجي"), + (0xFDA0, "M", "تجى"), + (0xFDA1, "M", "تخي"), + (0xFDA2, "M", "تخى"), + (0xFDA3, "M", "تمي"), + (0xFDA4, "M", "تمى"), + (0xFDA5, "M", "جمي"), + (0xFDA6, "M", "جحى"), + (0xFDA7, "M", "جمى"), + (0xFDA8, "M", "سخى"), + (0xFDA9, "M", "صحي"), + (0xFDAA, "M", "شحي"), + (0xFDAB, "M", "ضحي"), + (0xFDAC, "M", "لجي"), + (0xFDAD, "M", "لمي"), + (0xFDAE, "M", "يحي"), + (0xFDAF, "M", "يجي"), + (0xFDB0, "M", "يمي"), + (0xFDB1, "M", "ممي"), + (0xFDB2, "M", "قمي"), + (0xFDB3, "M", "نحي"), + (0xFDB4, "M", "قمح"), + (0xFDB5, "M", "لحم"), + (0xFDB6, "M", "عمي"), + (0xFDB7, "M", "كمي"), + (0xFDB8, "M", "نجح"), + (0xFDB9, "M", "مخي"), + (0xFDBA, "M", "لجم"), + (0xFDBB, "M", "كمم"), + (0xFDBC, "M", "لجم"), + (0xFDBD, "M", "نجح"), + (0xFDBE, "M", "جحي"), + (0xFDBF, "M", "حجي"), + (0xFDC0, "M", "مجي"), + (0xFDC1, "M", "فمي"), + (0xFDC2, "M", "بحي"), + (0xFDC3, "M", "كمم"), + (0xFDC4, "M", "عجم"), + (0xFDC5, "M", "صمم"), + (0xFDC6, "M", "سخي"), + (0xFDC7, "M", "نجي"), + (0xFDC8, "X"), + (0xFDCF, "V"), + (0xFDD0, "X"), + (0xFDF0, "M", "صلے"), + (0xFDF1, "M", "قلے"), + (0xFDF2, "M", "الله"), + (0xFDF3, "M", "اكبر"), + (0xFDF4, "M", "محمد"), + (0xFDF5, "M", "صلعم"), + (0xFDF6, "M", "رسول"), + (0xFDF7, "M", "عليه"), + (0xFDF8, "M", "وسلم"), + (0xFDF9, "M", "صلى"), + (0xFDFA, "M", "صلى الله عليه وسلم"), + (0xFDFB, "M", "جل جلاله"), + (0xFDFC, "M", "ریال"), + (0xFDFD, "V"), + (0xFE00, "I"), + (0xFE10, "M", ","), + (0xFE11, "M", "、"), + (0xFE12, "X"), + (0xFE13, "M", ":"), + (0xFE14, "M", ";"), + (0xFE15, "M", "!"), + (0xFE16, "M", "?"), + (0xFE17, "M", "〖"), + (0xFE18, "M", "〗"), + (0xFE19, "X"), + (0xFE20, "V"), + (0xFE30, "X"), + (0xFE31, "M", "—"), + (0xFE32, "M", "–"), + ] + + +def _seg_50() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFE33, "M", "_"), + (0xFE35, "M", "("), + (0xFE36, "M", ")"), + (0xFE37, "M", "{"), + (0xFE38, "M", "}"), + (0xFE39, "M", "〔"), + (0xFE3A, "M", "〕"), + (0xFE3B, "M", "【"), + (0xFE3C, "M", "】"), + (0xFE3D, "M", "《"), + (0xFE3E, "M", "》"), + (0xFE3F, "M", "〈"), + (0xFE40, "M", "〉"), + (0xFE41, "M", "「"), + (0xFE42, "M", "」"), + (0xFE43, "M", "『"), + (0xFE44, "M", "』"), + (0xFE45, "V"), + (0xFE47, "M", "["), + (0xFE48, "M", "]"), + (0xFE49, "M", " ̅"), + (0xFE4D, "M", "_"), + (0xFE50, "M", ","), + (0xFE51, "M", "、"), + (0xFE52, "X"), + (0xFE54, "M", ";"), + (0xFE55, "M", ":"), + (0xFE56, "M", "?"), + (0xFE57, "M", "!"), + (0xFE58, "M", "—"), + (0xFE59, "M", "("), + (0xFE5A, "M", ")"), + (0xFE5B, "M", "{"), + (0xFE5C, "M", "}"), + (0xFE5D, "M", "〔"), + (0xFE5E, "M", "〕"), + (0xFE5F, "M", "#"), + (0xFE60, "M", "&"), + (0xFE61, "M", "*"), + (0xFE62, "M", "+"), + (0xFE63, "M", "-"), + (0xFE64, "M", "<"), + (0xFE65, "M", ">"), + (0xFE66, "M", "="), + (0xFE67, "X"), + (0xFE68, "M", "\\"), + (0xFE69, "M", "$"), + (0xFE6A, "M", "%"), + (0xFE6B, "M", "@"), + (0xFE6C, "X"), + (0xFE70, "M", " ً"), + (0xFE71, "M", "ـً"), + (0xFE72, "M", " ٌ"), + (0xFE73, "V"), + (0xFE74, "M", " ٍ"), + (0xFE75, "X"), + (0xFE76, "M", " َ"), + (0xFE77, "M", "ـَ"), + (0xFE78, "M", " ُ"), + (0xFE79, "M", "ـُ"), + (0xFE7A, "M", " ِ"), + (0xFE7B, "M", "ـِ"), + (0xFE7C, "M", " ّ"), + (0xFE7D, "M", "ـّ"), + (0xFE7E, "M", " ْ"), + (0xFE7F, "M", "ـْ"), + (0xFE80, "M", "ء"), + (0xFE81, "M", "آ"), + (0xFE83, "M", "أ"), + (0xFE85, "M", "ؤ"), + (0xFE87, "M", "إ"), + (0xFE89, "M", "ئ"), + (0xFE8D, "M", "ا"), + (0xFE8F, "M", "ب"), + (0xFE93, "M", "ة"), + (0xFE95, "M", "ت"), + (0xFE99, "M", "ث"), + (0xFE9D, "M", "ج"), + (0xFEA1, "M", "ح"), + (0xFEA5, "M", "خ"), + (0xFEA9, "M", "د"), + (0xFEAB, "M", "ذ"), + (0xFEAD, "M", "ر"), + (0xFEAF, "M", "ز"), + (0xFEB1, "M", "س"), + (0xFEB5, "M", "ش"), + (0xFEB9, "M", "ص"), + (0xFEBD, "M", "ض"), + (0xFEC1, "M", "ط"), + (0xFEC5, "M", "ظ"), + (0xFEC9, "M", "ع"), + (0xFECD, "M", "غ"), + (0xFED1, "M", "ف"), + (0xFED5, "M", "ق"), + (0xFED9, "M", "ك"), + (0xFEDD, "M", "ل"), + (0xFEE1, "M", "م"), + (0xFEE5, "M", "ن"), + (0xFEE9, "M", "ه"), + (0xFEED, "M", "و"), + ] + + +def _seg_51() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFEEF, "M", "ى"), + (0xFEF1, "M", "ي"), + (0xFEF5, "M", "لآ"), + (0xFEF7, "M", "لأ"), + (0xFEF9, "M", "لإ"), + (0xFEFB, "M", "لا"), + (0xFEFD, "X"), + (0xFEFF, "I"), + (0xFF00, "X"), + (0xFF01, "M", "!"), + (0xFF02, "M", '"'), + (0xFF03, "M", "#"), + (0xFF04, "M", "$"), + (0xFF05, "M", "%"), + (0xFF06, "M", "&"), + (0xFF07, "M", "'"), + (0xFF08, "M", "("), + (0xFF09, "M", ")"), + (0xFF0A, "M", "*"), + (0xFF0B, "M", "+"), + (0xFF0C, "M", ","), + (0xFF0D, "M", "-"), + (0xFF0E, "M", "."), + (0xFF0F, "M", "/"), + (0xFF10, "M", "0"), + (0xFF11, "M", "1"), + (0xFF12, "M", "2"), + (0xFF13, "M", "3"), + (0xFF14, "M", "4"), + (0xFF15, "M", "5"), + (0xFF16, "M", "6"), + (0xFF17, "M", "7"), + (0xFF18, "M", "8"), + (0xFF19, "M", "9"), + (0xFF1A, "M", ":"), + (0xFF1B, "M", ";"), + (0xFF1C, "M", "<"), + (0xFF1D, "M", "="), + (0xFF1E, "M", ">"), + (0xFF1F, "M", "?"), + (0xFF20, "M", "@"), + (0xFF21, "M", "a"), + (0xFF22, "M", "b"), + (0xFF23, "M", "c"), + (0xFF24, "M", "d"), + (0xFF25, "M", "e"), + (0xFF26, "M", "f"), + (0xFF27, "M", "g"), + (0xFF28, "M", "h"), + (0xFF29, "M", "i"), + (0xFF2A, "M", "j"), + (0xFF2B, "M", "k"), + (0xFF2C, "M", "l"), + (0xFF2D, "M", "m"), + (0xFF2E, "M", "n"), + (0xFF2F, "M", "o"), + (0xFF30, "M", "p"), + (0xFF31, "M", "q"), + (0xFF32, "M", "r"), + (0xFF33, "M", "s"), + (0xFF34, "M", "t"), + (0xFF35, "M", "u"), + (0xFF36, "M", "v"), + (0xFF37, "M", "w"), + (0xFF38, "M", "x"), + (0xFF39, "M", "y"), + (0xFF3A, "M", "z"), + (0xFF3B, "M", "["), + (0xFF3C, "M", "\\"), + (0xFF3D, "M", "]"), + (0xFF3E, "M", "^"), + (0xFF3F, "M", "_"), + (0xFF40, "M", "`"), + (0xFF41, "M", "a"), + (0xFF42, "M", "b"), + (0xFF43, "M", "c"), + (0xFF44, "M", "d"), + (0xFF45, "M", "e"), + (0xFF46, "M", "f"), + (0xFF47, "M", "g"), + (0xFF48, "M", "h"), + (0xFF49, "M", "i"), + (0xFF4A, "M", "j"), + (0xFF4B, "M", "k"), + (0xFF4C, "M", "l"), + (0xFF4D, "M", "m"), + (0xFF4E, "M", "n"), + (0xFF4F, "M", "o"), + (0xFF50, "M", "p"), + (0xFF51, "M", "q"), + (0xFF52, "M", "r"), + (0xFF53, "M", "s"), + (0xFF54, "M", "t"), + (0xFF55, "M", "u"), + (0xFF56, "M", "v"), + (0xFF57, "M", "w"), + (0xFF58, "M", "x"), + (0xFF59, "M", "y"), + (0xFF5A, "M", "z"), + (0xFF5B, "M", "{"), + ] + + +def _seg_52() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFF5C, "M", "|"), + (0xFF5D, "M", "}"), + (0xFF5E, "M", "~"), + (0xFF5F, "M", "⦅"), + (0xFF60, "M", "⦆"), + (0xFF61, "M", "."), + (0xFF62, "M", "「"), + (0xFF63, "M", "」"), + (0xFF64, "M", "、"), + (0xFF65, "M", "・"), + (0xFF66, "M", "ヲ"), + (0xFF67, "M", "ァ"), + (0xFF68, "M", "ィ"), + (0xFF69, "M", "ゥ"), + (0xFF6A, "M", "ェ"), + (0xFF6B, "M", "ォ"), + (0xFF6C, "M", "ャ"), + (0xFF6D, "M", "ュ"), + (0xFF6E, "M", "ョ"), + (0xFF6F, "M", "ッ"), + (0xFF70, "M", "ー"), + (0xFF71, "M", "ア"), + (0xFF72, "M", "イ"), + (0xFF73, "M", "ウ"), + (0xFF74, "M", "エ"), + (0xFF75, "M", "オ"), + (0xFF76, "M", "カ"), + (0xFF77, "M", "キ"), + (0xFF78, "M", "ク"), + (0xFF79, "M", "ケ"), + (0xFF7A, "M", "コ"), + (0xFF7B, "M", "サ"), + (0xFF7C, "M", "シ"), + (0xFF7D, "M", "ス"), + (0xFF7E, "M", "セ"), + (0xFF7F, "M", "ソ"), + (0xFF80, "M", "タ"), + (0xFF81, "M", "チ"), + (0xFF82, "M", "ツ"), + (0xFF83, "M", "テ"), + (0xFF84, "M", "ト"), + (0xFF85, "M", "ナ"), + (0xFF86, "M", "ニ"), + (0xFF87, "M", "ヌ"), + (0xFF88, "M", "ネ"), + (0xFF89, "M", "ノ"), + (0xFF8A, "M", "ハ"), + (0xFF8B, "M", "ヒ"), + (0xFF8C, "M", "フ"), + (0xFF8D, "M", "ヘ"), + (0xFF8E, "M", "ホ"), + (0xFF8F, "M", "マ"), + (0xFF90, "M", "ミ"), + (0xFF91, "M", "ム"), + (0xFF92, "M", "メ"), + (0xFF93, "M", "モ"), + (0xFF94, "M", "ヤ"), + (0xFF95, "M", "ユ"), + (0xFF96, "M", "ヨ"), + (0xFF97, "M", "ラ"), + (0xFF98, "M", "リ"), + (0xFF99, "M", "ル"), + (0xFF9A, "M", "レ"), + (0xFF9B, "M", "ロ"), + (0xFF9C, "M", "ワ"), + (0xFF9D, "M", "ン"), + (0xFF9E, "M", "゙"), + (0xFF9F, "M", "゚"), + (0xFFA0, "I"), + (0xFFA1, "M", "ᄀ"), + (0xFFA2, "M", "ᄁ"), + (0xFFA3, "M", "ᆪ"), + (0xFFA4, "M", "ᄂ"), + (0xFFA5, "M", "ᆬ"), + (0xFFA6, "M", "ᆭ"), + (0xFFA7, "M", "ᄃ"), + (0xFFA8, "M", "ᄄ"), + (0xFFA9, "M", "ᄅ"), + (0xFFAA, "M", "ᆰ"), + (0xFFAB, "M", "ᆱ"), + (0xFFAC, "M", "ᆲ"), + (0xFFAD, "M", "ᆳ"), + (0xFFAE, "M", "ᆴ"), + (0xFFAF, "M", "ᆵ"), + (0xFFB0, "M", "ᄚ"), + (0xFFB1, "M", "ᄆ"), + (0xFFB2, "M", "ᄇ"), + (0xFFB3, "M", "ᄈ"), + (0xFFB4, "M", "ᄡ"), + (0xFFB5, "M", "ᄉ"), + (0xFFB6, "M", "ᄊ"), + (0xFFB7, "M", "ᄋ"), + (0xFFB8, "M", "ᄌ"), + (0xFFB9, "M", "ᄍ"), + (0xFFBA, "M", "ᄎ"), + (0xFFBB, "M", "ᄏ"), + (0xFFBC, "M", "ᄐ"), + (0xFFBD, "M", "ᄑ"), + (0xFFBE, "M", "ᄒ"), + (0xFFBF, "X"), + ] + + +def _seg_53() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFFC2, "M", "ᅡ"), + (0xFFC3, "M", "ᅢ"), + (0xFFC4, "M", "ᅣ"), + (0xFFC5, "M", "ᅤ"), + (0xFFC6, "M", "ᅥ"), + (0xFFC7, "M", "ᅦ"), + (0xFFC8, "X"), + (0xFFCA, "M", "ᅧ"), + (0xFFCB, "M", "ᅨ"), + (0xFFCC, "M", "ᅩ"), + (0xFFCD, "M", "ᅪ"), + (0xFFCE, "M", "ᅫ"), + (0xFFCF, "M", "ᅬ"), + (0xFFD0, "X"), + (0xFFD2, "M", "ᅭ"), + (0xFFD3, "M", "ᅮ"), + (0xFFD4, "M", "ᅯ"), + (0xFFD5, "M", "ᅰ"), + (0xFFD6, "M", "ᅱ"), + (0xFFD7, "M", "ᅲ"), + (0xFFD8, "X"), + (0xFFDA, "M", "ᅳ"), + (0xFFDB, "M", "ᅴ"), + (0xFFDC, "M", "ᅵ"), + (0xFFDD, "X"), + (0xFFE0, "M", "¢"), + (0xFFE1, "M", "£"), + (0xFFE2, "M", "¬"), + (0xFFE3, "M", " ̄"), + (0xFFE4, "M", "¦"), + (0xFFE5, "M", "¥"), + (0xFFE6, "M", "₩"), + (0xFFE7, "X"), + (0xFFE8, "M", "│"), + (0xFFE9, "M", "←"), + (0xFFEA, "M", "↑"), + (0xFFEB, "M", "→"), + (0xFFEC, "M", "↓"), + (0xFFED, "M", "■"), + (0xFFEE, "M", "○"), + (0xFFEF, "X"), + (0x10000, "V"), + (0x1000C, "X"), + (0x1000D, "V"), + (0x10027, "X"), + (0x10028, "V"), + (0x1003B, "X"), + (0x1003C, "V"), + (0x1003E, "X"), + (0x1003F, "V"), + (0x1004E, "X"), + (0x10050, "V"), + (0x1005E, "X"), + (0x10080, "V"), + (0x100FB, "X"), + (0x10100, "V"), + (0x10103, "X"), + (0x10107, "V"), + (0x10134, "X"), + (0x10137, "V"), + (0x1018F, "X"), + (0x10190, "V"), + (0x1019D, "X"), + (0x101A0, "V"), + (0x101A1, "X"), + (0x101D0, "V"), + (0x101FE, "X"), + (0x10280, "V"), + (0x1029D, "X"), + (0x102A0, "V"), + (0x102D1, "X"), + (0x102E0, "V"), + (0x102FC, "X"), + (0x10300, "V"), + (0x10324, "X"), + (0x1032D, "V"), + (0x1034B, "X"), + (0x10350, "V"), + (0x1037B, "X"), + (0x10380, "V"), + (0x1039E, "X"), + (0x1039F, "V"), + (0x103C4, "X"), + (0x103C8, "V"), + (0x103D6, "X"), + (0x10400, "M", "𐐨"), + (0x10401, "M", "𐐩"), + (0x10402, "M", "𐐪"), + (0x10403, "M", "𐐫"), + (0x10404, "M", "𐐬"), + (0x10405, "M", "𐐭"), + (0x10406, "M", "𐐮"), + (0x10407, "M", "𐐯"), + (0x10408, "M", "𐐰"), + (0x10409, "M", "𐐱"), + (0x1040A, "M", "𐐲"), + (0x1040B, "M", "𐐳"), + (0x1040C, "M", "𐐴"), + (0x1040D, "M", "𐐵"), + (0x1040E, "M", "𐐶"), + ] + + +def _seg_54() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1040F, "M", "𐐷"), + (0x10410, "M", "𐐸"), + (0x10411, "M", "𐐹"), + (0x10412, "M", "𐐺"), + (0x10413, "M", "𐐻"), + (0x10414, "M", "𐐼"), + (0x10415, "M", "𐐽"), + (0x10416, "M", "𐐾"), + (0x10417, "M", "𐐿"), + (0x10418, "M", "𐑀"), + (0x10419, "M", "𐑁"), + (0x1041A, "M", "𐑂"), + (0x1041B, "M", "𐑃"), + (0x1041C, "M", "𐑄"), + (0x1041D, "M", "𐑅"), + (0x1041E, "M", "𐑆"), + (0x1041F, "M", "𐑇"), + (0x10420, "M", "𐑈"), + (0x10421, "M", "𐑉"), + (0x10422, "M", "𐑊"), + (0x10423, "M", "𐑋"), + (0x10424, "M", "𐑌"), + (0x10425, "M", "𐑍"), + (0x10426, "M", "𐑎"), + (0x10427, "M", "𐑏"), + (0x10428, "V"), + (0x1049E, "X"), + (0x104A0, "V"), + (0x104AA, "X"), + (0x104B0, "M", "𐓘"), + (0x104B1, "M", "𐓙"), + (0x104B2, "M", "𐓚"), + (0x104B3, "M", "𐓛"), + (0x104B4, "M", "𐓜"), + (0x104B5, "M", "𐓝"), + (0x104B6, "M", "𐓞"), + (0x104B7, "M", "𐓟"), + (0x104B8, "M", "𐓠"), + (0x104B9, "M", "𐓡"), + (0x104BA, "M", "𐓢"), + (0x104BB, "M", "𐓣"), + (0x104BC, "M", "𐓤"), + (0x104BD, "M", "𐓥"), + (0x104BE, "M", "𐓦"), + (0x104BF, "M", "𐓧"), + (0x104C0, "M", "𐓨"), + (0x104C1, "M", "𐓩"), + (0x104C2, "M", "𐓪"), + (0x104C3, "M", "𐓫"), + (0x104C4, "M", "𐓬"), + (0x104C5, "M", "𐓭"), + (0x104C6, "M", "𐓮"), + (0x104C7, "M", "𐓯"), + (0x104C8, "M", "𐓰"), + (0x104C9, "M", "𐓱"), + (0x104CA, "M", "𐓲"), + (0x104CB, "M", "𐓳"), + (0x104CC, "M", "𐓴"), + (0x104CD, "M", "𐓵"), + (0x104CE, "M", "𐓶"), + (0x104CF, "M", "𐓷"), + (0x104D0, "M", "𐓸"), + (0x104D1, "M", "𐓹"), + (0x104D2, "M", "𐓺"), + (0x104D3, "M", "𐓻"), + (0x104D4, "X"), + (0x104D8, "V"), + (0x104FC, "X"), + (0x10500, "V"), + (0x10528, "X"), + (0x10530, "V"), + (0x10564, "X"), + (0x1056F, "V"), + (0x10570, "M", "𐖗"), + (0x10571, "M", "𐖘"), + (0x10572, "M", "𐖙"), + (0x10573, "M", "𐖚"), + (0x10574, "M", "𐖛"), + (0x10575, "M", "𐖜"), + (0x10576, "M", "𐖝"), + (0x10577, "M", "𐖞"), + (0x10578, "M", "𐖟"), + (0x10579, "M", "𐖠"), + (0x1057A, "M", "𐖡"), + (0x1057B, "X"), + (0x1057C, "M", "𐖣"), + (0x1057D, "M", "𐖤"), + (0x1057E, "M", "𐖥"), + (0x1057F, "M", "𐖦"), + (0x10580, "M", "𐖧"), + (0x10581, "M", "𐖨"), + (0x10582, "M", "𐖩"), + (0x10583, "M", "𐖪"), + (0x10584, "M", "𐖫"), + (0x10585, "M", "𐖬"), + (0x10586, "M", "𐖭"), + (0x10587, "M", "𐖮"), + (0x10588, "M", "𐖯"), + (0x10589, "M", "𐖰"), + (0x1058A, "M", "𐖱"), + ] + + +def _seg_55() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1058B, "X"), + (0x1058C, "M", "𐖳"), + (0x1058D, "M", "𐖴"), + (0x1058E, "M", "𐖵"), + (0x1058F, "M", "𐖶"), + (0x10590, "M", "𐖷"), + (0x10591, "M", "𐖸"), + (0x10592, "M", "𐖹"), + (0x10593, "X"), + (0x10594, "M", "𐖻"), + (0x10595, "M", "𐖼"), + (0x10596, "X"), + (0x10597, "V"), + (0x105A2, "X"), + (0x105A3, "V"), + (0x105B2, "X"), + (0x105B3, "V"), + (0x105BA, "X"), + (0x105BB, "V"), + (0x105BD, "X"), + (0x105C0, "V"), + (0x105F4, "X"), + (0x10600, "V"), + (0x10737, "X"), + (0x10740, "V"), + (0x10756, "X"), + (0x10760, "V"), + (0x10768, "X"), + (0x10780, "V"), + (0x10781, "M", "ː"), + (0x10782, "M", "ˑ"), + (0x10783, "M", "æ"), + (0x10784, "M", "ʙ"), + (0x10785, "M", "ɓ"), + (0x10786, "X"), + (0x10787, "M", "ʣ"), + (0x10788, "M", "ꭦ"), + (0x10789, "M", "ʥ"), + (0x1078A, "M", "ʤ"), + (0x1078B, "M", "ɖ"), + (0x1078C, "M", "ɗ"), + (0x1078D, "M", "ᶑ"), + (0x1078E, "M", "ɘ"), + (0x1078F, "M", "ɞ"), + (0x10790, "M", "ʩ"), + (0x10791, "M", "ɤ"), + (0x10792, "M", "ɢ"), + (0x10793, "M", "ɠ"), + (0x10794, "M", "ʛ"), + (0x10795, "M", "ħ"), + (0x10796, "M", "ʜ"), + (0x10797, "M", "ɧ"), + (0x10798, "M", "ʄ"), + (0x10799, "M", "ʪ"), + (0x1079A, "M", "ʫ"), + (0x1079B, "M", "ɬ"), + (0x1079C, "M", "𝼄"), + (0x1079D, "M", "ꞎ"), + (0x1079E, "M", "ɮ"), + (0x1079F, "M", "𝼅"), + (0x107A0, "M", "ʎ"), + (0x107A1, "M", "𝼆"), + (0x107A2, "M", "ø"), + (0x107A3, "M", "ɶ"), + (0x107A4, "M", "ɷ"), + (0x107A5, "M", "q"), + (0x107A6, "M", "ɺ"), + (0x107A7, "M", "𝼈"), + (0x107A8, "M", "ɽ"), + (0x107A9, "M", "ɾ"), + (0x107AA, "M", "ʀ"), + (0x107AB, "M", "ʨ"), + (0x107AC, "M", "ʦ"), + (0x107AD, "M", "ꭧ"), + (0x107AE, "M", "ʧ"), + (0x107AF, "M", "ʈ"), + (0x107B0, "M", "ⱱ"), + (0x107B1, "X"), + (0x107B2, "M", "ʏ"), + (0x107B3, "M", "ʡ"), + (0x107B4, "M", "ʢ"), + (0x107B5, "M", "ʘ"), + (0x107B6, "M", "ǀ"), + (0x107B7, "M", "ǁ"), + (0x107B8, "M", "ǂ"), + (0x107B9, "M", "𝼊"), + (0x107BA, "M", "𝼞"), + (0x107BB, "X"), + (0x10800, "V"), + (0x10806, "X"), + (0x10808, "V"), + (0x10809, "X"), + (0x1080A, "V"), + (0x10836, "X"), + (0x10837, "V"), + (0x10839, "X"), + (0x1083C, "V"), + (0x1083D, "X"), + (0x1083F, "V"), + (0x10856, "X"), + ] + + +def _seg_56() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x10857, "V"), + (0x1089F, "X"), + (0x108A7, "V"), + (0x108B0, "X"), + (0x108E0, "V"), + (0x108F3, "X"), + (0x108F4, "V"), + (0x108F6, "X"), + (0x108FB, "V"), + (0x1091C, "X"), + (0x1091F, "V"), + (0x1093A, "X"), + (0x1093F, "V"), + (0x10940, "X"), + (0x10980, "V"), + (0x109B8, "X"), + (0x109BC, "V"), + (0x109D0, "X"), + (0x109D2, "V"), + (0x10A04, "X"), + (0x10A05, "V"), + (0x10A07, "X"), + (0x10A0C, "V"), + (0x10A14, "X"), + (0x10A15, "V"), + (0x10A18, "X"), + (0x10A19, "V"), + (0x10A36, "X"), + (0x10A38, "V"), + (0x10A3B, "X"), + (0x10A3F, "V"), + (0x10A49, "X"), + (0x10A50, "V"), + (0x10A59, "X"), + (0x10A60, "V"), + (0x10AA0, "X"), + (0x10AC0, "V"), + (0x10AE7, "X"), + (0x10AEB, "V"), + (0x10AF7, "X"), + (0x10B00, "V"), + (0x10B36, "X"), + (0x10B39, "V"), + (0x10B56, "X"), + (0x10B58, "V"), + (0x10B73, "X"), + (0x10B78, "V"), + (0x10B92, "X"), + (0x10B99, "V"), + (0x10B9D, "X"), + (0x10BA9, "V"), + (0x10BB0, "X"), + (0x10C00, "V"), + (0x10C49, "X"), + (0x10C80, "M", "𐳀"), + (0x10C81, "M", "𐳁"), + (0x10C82, "M", "𐳂"), + (0x10C83, "M", "𐳃"), + (0x10C84, "M", "𐳄"), + (0x10C85, "M", "𐳅"), + (0x10C86, "M", "𐳆"), + (0x10C87, "M", "𐳇"), + (0x10C88, "M", "𐳈"), + (0x10C89, "M", "𐳉"), + (0x10C8A, "M", "𐳊"), + (0x10C8B, "M", "𐳋"), + (0x10C8C, "M", "𐳌"), + (0x10C8D, "M", "𐳍"), + (0x10C8E, "M", "𐳎"), + (0x10C8F, "M", "𐳏"), + (0x10C90, "M", "𐳐"), + (0x10C91, "M", "𐳑"), + (0x10C92, "M", "𐳒"), + (0x10C93, "M", "𐳓"), + (0x10C94, "M", "𐳔"), + (0x10C95, "M", "𐳕"), + (0x10C96, "M", "𐳖"), + (0x10C97, "M", "𐳗"), + (0x10C98, "M", "𐳘"), + (0x10C99, "M", "𐳙"), + (0x10C9A, "M", "𐳚"), + (0x10C9B, "M", "𐳛"), + (0x10C9C, "M", "𐳜"), + (0x10C9D, "M", "𐳝"), + (0x10C9E, "M", "𐳞"), + (0x10C9F, "M", "𐳟"), + (0x10CA0, "M", "𐳠"), + (0x10CA1, "M", "𐳡"), + (0x10CA2, "M", "𐳢"), + (0x10CA3, "M", "𐳣"), + (0x10CA4, "M", "𐳤"), + (0x10CA5, "M", "𐳥"), + (0x10CA6, "M", "𐳦"), + (0x10CA7, "M", "𐳧"), + (0x10CA8, "M", "𐳨"), + (0x10CA9, "M", "𐳩"), + (0x10CAA, "M", "𐳪"), + (0x10CAB, "M", "𐳫"), + (0x10CAC, "M", "𐳬"), + (0x10CAD, "M", "𐳭"), + ] + + +def _seg_57() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x10CAE, "M", "𐳮"), + (0x10CAF, "M", "𐳯"), + (0x10CB0, "M", "𐳰"), + (0x10CB1, "M", "𐳱"), + (0x10CB2, "M", "𐳲"), + (0x10CB3, "X"), + (0x10CC0, "V"), + (0x10CF3, "X"), + (0x10CFA, "V"), + (0x10D28, "X"), + (0x10D30, "V"), + (0x10D3A, "X"), + (0x10D40, "V"), + (0x10D50, "M", "𐵰"), + (0x10D51, "M", "𐵱"), + (0x10D52, "M", "𐵲"), + (0x10D53, "M", "𐵳"), + (0x10D54, "M", "𐵴"), + (0x10D55, "M", "𐵵"), + (0x10D56, "M", "𐵶"), + (0x10D57, "M", "𐵷"), + (0x10D58, "M", "𐵸"), + (0x10D59, "M", "𐵹"), + (0x10D5A, "M", "𐵺"), + (0x10D5B, "M", "𐵻"), + (0x10D5C, "M", "𐵼"), + (0x10D5D, "M", "𐵽"), + (0x10D5E, "M", "𐵾"), + (0x10D5F, "M", "𐵿"), + (0x10D60, "M", "𐶀"), + (0x10D61, "M", "𐶁"), + (0x10D62, "M", "𐶂"), + (0x10D63, "M", "𐶃"), + (0x10D64, "M", "𐶄"), + (0x10D65, "M", "𐶅"), + (0x10D66, "X"), + (0x10D69, "V"), + (0x10D86, "X"), + (0x10D8E, "V"), + (0x10D90, "X"), + (0x10E60, "V"), + (0x10E7F, "X"), + (0x10E80, "V"), + (0x10EAA, "X"), + (0x10EAB, "V"), + (0x10EAE, "X"), + (0x10EB0, "V"), + (0x10EB2, "X"), + (0x10EC2, "V"), + (0x10EC5, "X"), + (0x10EFC, "V"), + (0x10F28, "X"), + (0x10F30, "V"), + (0x10F5A, "X"), + (0x10F70, "V"), + (0x10F8A, "X"), + (0x10FB0, "V"), + (0x10FCC, "X"), + (0x10FE0, "V"), + (0x10FF7, "X"), + (0x11000, "V"), + (0x1104E, "X"), + (0x11052, "V"), + (0x11076, "X"), + (0x1107F, "V"), + (0x110BD, "X"), + (0x110BE, "V"), + (0x110C3, "X"), + (0x110D0, "V"), + (0x110E9, "X"), + (0x110F0, "V"), + (0x110FA, "X"), + (0x11100, "V"), + (0x11135, "X"), + (0x11136, "V"), + (0x11148, "X"), + (0x11150, "V"), + (0x11177, "X"), + (0x11180, "V"), + (0x111E0, "X"), + (0x111E1, "V"), + (0x111F5, "X"), + (0x11200, "V"), + (0x11212, "X"), + (0x11213, "V"), + (0x11242, "X"), + (0x11280, "V"), + (0x11287, "X"), + (0x11288, "V"), + (0x11289, "X"), + (0x1128A, "V"), + (0x1128E, "X"), + (0x1128F, "V"), + (0x1129E, "X"), + (0x1129F, "V"), + (0x112AA, "X"), + (0x112B0, "V"), + (0x112EB, "X"), + (0x112F0, "V"), + (0x112FA, "X"), + ] + + +def _seg_58() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x11300, "V"), + (0x11304, "X"), + (0x11305, "V"), + (0x1130D, "X"), + (0x1130F, "V"), + (0x11311, "X"), + (0x11313, "V"), + (0x11329, "X"), + (0x1132A, "V"), + (0x11331, "X"), + (0x11332, "V"), + (0x11334, "X"), + (0x11335, "V"), + (0x1133A, "X"), + (0x1133B, "V"), + (0x11345, "X"), + (0x11347, "V"), + (0x11349, "X"), + (0x1134B, "V"), + (0x1134E, "X"), + (0x11350, "V"), + (0x11351, "X"), + (0x11357, "V"), + (0x11358, "X"), + (0x1135D, "V"), + (0x11364, "X"), + (0x11366, "V"), + (0x1136D, "X"), + (0x11370, "V"), + (0x11375, "X"), + (0x11380, "V"), + (0x1138A, "X"), + (0x1138B, "V"), + (0x1138C, "X"), + (0x1138E, "V"), + (0x1138F, "X"), + (0x11390, "V"), + (0x113B6, "X"), + (0x113B7, "V"), + (0x113C1, "X"), + (0x113C2, "V"), + (0x113C3, "X"), + (0x113C5, "V"), + (0x113C6, "X"), + (0x113C7, "V"), + (0x113CB, "X"), + (0x113CC, "V"), + (0x113D6, "X"), + (0x113D7, "V"), + (0x113D9, "X"), + (0x113E1, "V"), + (0x113E3, "X"), + (0x11400, "V"), + (0x1145C, "X"), + (0x1145D, "V"), + (0x11462, "X"), + (0x11480, "V"), + (0x114C8, "X"), + (0x114D0, "V"), + (0x114DA, "X"), + (0x11580, "V"), + (0x115B6, "X"), + (0x115B8, "V"), + (0x115DE, "X"), + (0x11600, "V"), + (0x11645, "X"), + (0x11650, "V"), + (0x1165A, "X"), + (0x11660, "V"), + (0x1166D, "X"), + (0x11680, "V"), + (0x116BA, "X"), + (0x116C0, "V"), + (0x116CA, "X"), + (0x116D0, "V"), + (0x116E4, "X"), + (0x11700, "V"), + (0x1171B, "X"), + (0x1171D, "V"), + (0x1172C, "X"), + (0x11730, "V"), + (0x11747, "X"), + (0x11800, "V"), + (0x1183C, "X"), + (0x118A0, "M", "𑣀"), + (0x118A1, "M", "𑣁"), + (0x118A2, "M", "𑣂"), + (0x118A3, "M", "𑣃"), + (0x118A4, "M", "𑣄"), + (0x118A5, "M", "𑣅"), + (0x118A6, "M", "𑣆"), + (0x118A7, "M", "𑣇"), + (0x118A8, "M", "𑣈"), + (0x118A9, "M", "𑣉"), + (0x118AA, "M", "𑣊"), + (0x118AB, "M", "𑣋"), + (0x118AC, "M", "𑣌"), + (0x118AD, "M", "𑣍"), + (0x118AE, "M", "𑣎"), + (0x118AF, "M", "𑣏"), + ] + + +def _seg_59() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x118B0, "M", "𑣐"), + (0x118B1, "M", "𑣑"), + (0x118B2, "M", "𑣒"), + (0x118B3, "M", "𑣓"), + (0x118B4, "M", "𑣔"), + (0x118B5, "M", "𑣕"), + (0x118B6, "M", "𑣖"), + (0x118B7, "M", "𑣗"), + (0x118B8, "M", "𑣘"), + (0x118B9, "M", "𑣙"), + (0x118BA, "M", "𑣚"), + (0x118BB, "M", "𑣛"), + (0x118BC, "M", "𑣜"), + (0x118BD, "M", "𑣝"), + (0x118BE, "M", "𑣞"), + (0x118BF, "M", "𑣟"), + (0x118C0, "V"), + (0x118F3, "X"), + (0x118FF, "V"), + (0x11907, "X"), + (0x11909, "V"), + (0x1190A, "X"), + (0x1190C, "V"), + (0x11914, "X"), + (0x11915, "V"), + (0x11917, "X"), + (0x11918, "V"), + (0x11936, "X"), + (0x11937, "V"), + (0x11939, "X"), + (0x1193B, "V"), + (0x11947, "X"), + (0x11950, "V"), + (0x1195A, "X"), + (0x119A0, "V"), + (0x119A8, "X"), + (0x119AA, "V"), + (0x119D8, "X"), + (0x119DA, "V"), + (0x119E5, "X"), + (0x11A00, "V"), + (0x11A48, "X"), + (0x11A50, "V"), + (0x11AA3, "X"), + (0x11AB0, "V"), + (0x11AF9, "X"), + (0x11B00, "V"), + (0x11B0A, "X"), + (0x11BC0, "V"), + (0x11BE2, "X"), + (0x11BF0, "V"), + (0x11BFA, "X"), + (0x11C00, "V"), + (0x11C09, "X"), + (0x11C0A, "V"), + (0x11C37, "X"), + (0x11C38, "V"), + (0x11C46, "X"), + (0x11C50, "V"), + (0x11C6D, "X"), + (0x11C70, "V"), + (0x11C90, "X"), + (0x11C92, "V"), + (0x11CA8, "X"), + (0x11CA9, "V"), + (0x11CB7, "X"), + (0x11D00, "V"), + (0x11D07, "X"), + (0x11D08, "V"), + (0x11D0A, "X"), + (0x11D0B, "V"), + (0x11D37, "X"), + (0x11D3A, "V"), + (0x11D3B, "X"), + (0x11D3C, "V"), + (0x11D3E, "X"), + (0x11D3F, "V"), + (0x11D48, "X"), + (0x11D50, "V"), + (0x11D5A, "X"), + (0x11D60, "V"), + (0x11D66, "X"), + (0x11D67, "V"), + (0x11D69, "X"), + (0x11D6A, "V"), + (0x11D8F, "X"), + (0x11D90, "V"), + (0x11D92, "X"), + (0x11D93, "V"), + (0x11D99, "X"), + (0x11DA0, "V"), + (0x11DAA, "X"), + (0x11EE0, "V"), + (0x11EF9, "X"), + (0x11F00, "V"), + (0x11F11, "X"), + (0x11F12, "V"), + (0x11F3B, "X"), + (0x11F3E, "V"), + (0x11F5B, "X"), + ] + + +def _seg_60() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x11FB0, "V"), + (0x11FB1, "X"), + (0x11FC0, "V"), + (0x11FF2, "X"), + (0x11FFF, "V"), + (0x1239A, "X"), + (0x12400, "V"), + (0x1246F, "X"), + (0x12470, "V"), + (0x12475, "X"), + (0x12480, "V"), + (0x12544, "X"), + (0x12F90, "V"), + (0x12FF3, "X"), + (0x13000, "V"), + (0x13430, "X"), + (0x13440, "V"), + (0x13456, "X"), + (0x13460, "V"), + (0x143FB, "X"), + (0x14400, "V"), + (0x14647, "X"), + (0x16100, "V"), + (0x1613A, "X"), + (0x16800, "V"), + (0x16A39, "X"), + (0x16A40, "V"), + (0x16A5F, "X"), + (0x16A60, "V"), + (0x16A6A, "X"), + (0x16A6E, "V"), + (0x16ABF, "X"), + (0x16AC0, "V"), + (0x16ACA, "X"), + (0x16AD0, "V"), + (0x16AEE, "X"), + (0x16AF0, "V"), + (0x16AF6, "X"), + (0x16B00, "V"), + (0x16B46, "X"), + (0x16B50, "V"), + (0x16B5A, "X"), + (0x16B5B, "V"), + (0x16B62, "X"), + (0x16B63, "V"), + (0x16B78, "X"), + (0x16B7D, "V"), + (0x16B90, "X"), + (0x16D40, "V"), + (0x16D7A, "X"), + (0x16E40, "M", "𖹠"), + (0x16E41, "M", "𖹡"), + (0x16E42, "M", "𖹢"), + (0x16E43, "M", "𖹣"), + (0x16E44, "M", "𖹤"), + (0x16E45, "M", "𖹥"), + (0x16E46, "M", "𖹦"), + (0x16E47, "M", "𖹧"), + (0x16E48, "M", "𖹨"), + (0x16E49, "M", "𖹩"), + (0x16E4A, "M", "𖹪"), + (0x16E4B, "M", "𖹫"), + (0x16E4C, "M", "𖹬"), + (0x16E4D, "M", "𖹭"), + (0x16E4E, "M", "𖹮"), + (0x16E4F, "M", "𖹯"), + (0x16E50, "M", "𖹰"), + (0x16E51, "M", "𖹱"), + (0x16E52, "M", "𖹲"), + (0x16E53, "M", "𖹳"), + (0x16E54, "M", "𖹴"), + (0x16E55, "M", "𖹵"), + (0x16E56, "M", "𖹶"), + (0x16E57, "M", "𖹷"), + (0x16E58, "M", "𖹸"), + (0x16E59, "M", "𖹹"), + (0x16E5A, "M", "𖹺"), + (0x16E5B, "M", "𖹻"), + (0x16E5C, "M", "𖹼"), + (0x16E5D, "M", "𖹽"), + (0x16E5E, "M", "𖹾"), + (0x16E5F, "M", "𖹿"), + (0x16E60, "V"), + (0x16E9B, "X"), + (0x16F00, "V"), + (0x16F4B, "X"), + (0x16F4F, "V"), + (0x16F88, "X"), + (0x16F8F, "V"), + (0x16FA0, "X"), + (0x16FE0, "V"), + (0x16FE5, "X"), + (0x16FF0, "V"), + (0x16FF2, "X"), + (0x17000, "V"), + (0x187F8, "X"), + (0x18800, "V"), + (0x18CD6, "X"), + (0x18CFF, "V"), + (0x18D09, "X"), + ] + + +def _seg_61() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1AFF0, "V"), + (0x1AFF4, "X"), + (0x1AFF5, "V"), + (0x1AFFC, "X"), + (0x1AFFD, "V"), + (0x1AFFF, "X"), + (0x1B000, "V"), + (0x1B123, "X"), + (0x1B132, "V"), + (0x1B133, "X"), + (0x1B150, "V"), + (0x1B153, "X"), + (0x1B155, "V"), + (0x1B156, "X"), + (0x1B164, "V"), + (0x1B168, "X"), + (0x1B170, "V"), + (0x1B2FC, "X"), + (0x1BC00, "V"), + (0x1BC6B, "X"), + (0x1BC70, "V"), + (0x1BC7D, "X"), + (0x1BC80, "V"), + (0x1BC89, "X"), + (0x1BC90, "V"), + (0x1BC9A, "X"), + (0x1BC9C, "V"), + (0x1BCA0, "I"), + (0x1BCA4, "X"), + (0x1CC00, "V"), + (0x1CCD6, "M", "a"), + (0x1CCD7, "M", "b"), + (0x1CCD8, "M", "c"), + (0x1CCD9, "M", "d"), + (0x1CCDA, "M", "e"), + (0x1CCDB, "M", "f"), + (0x1CCDC, "M", "g"), + (0x1CCDD, "M", "h"), + (0x1CCDE, "M", "i"), + (0x1CCDF, "M", "j"), + (0x1CCE0, "M", "k"), + (0x1CCE1, "M", "l"), + (0x1CCE2, "M", "m"), + (0x1CCE3, "M", "n"), + (0x1CCE4, "M", "o"), + (0x1CCE5, "M", "p"), + (0x1CCE6, "M", "q"), + (0x1CCE7, "M", "r"), + (0x1CCE8, "M", "s"), + (0x1CCE9, "M", "t"), + (0x1CCEA, "M", "u"), + (0x1CCEB, "M", "v"), + (0x1CCEC, "M", "w"), + (0x1CCED, "M", "x"), + (0x1CCEE, "M", "y"), + (0x1CCEF, "M", "z"), + (0x1CCF0, "M", "0"), + (0x1CCF1, "M", "1"), + (0x1CCF2, "M", "2"), + (0x1CCF3, "M", "3"), + (0x1CCF4, "M", "4"), + (0x1CCF5, "M", "5"), + (0x1CCF6, "M", "6"), + (0x1CCF7, "M", "7"), + (0x1CCF8, "M", "8"), + (0x1CCF9, "M", "9"), + (0x1CCFA, "X"), + (0x1CD00, "V"), + (0x1CEB4, "X"), + (0x1CF00, "V"), + (0x1CF2E, "X"), + (0x1CF30, "V"), + (0x1CF47, "X"), + (0x1CF50, "V"), + (0x1CFC4, "X"), + (0x1D000, "V"), + (0x1D0F6, "X"), + (0x1D100, "V"), + (0x1D127, "X"), + (0x1D129, "V"), + (0x1D15E, "M", "𝅗𝅥"), + (0x1D15F, "M", "𝅘𝅥"), + (0x1D160, "M", "𝅘𝅥𝅮"), + (0x1D161, "M", "𝅘𝅥𝅯"), + (0x1D162, "M", "𝅘𝅥𝅰"), + (0x1D163, "M", "𝅘𝅥𝅱"), + (0x1D164, "M", "𝅘𝅥𝅲"), + (0x1D165, "V"), + (0x1D173, "I"), + (0x1D17B, "V"), + (0x1D1BB, "M", "𝆹𝅥"), + (0x1D1BC, "M", "𝆺𝅥"), + (0x1D1BD, "M", "𝆹𝅥𝅮"), + (0x1D1BE, "M", "𝆺𝅥𝅮"), + (0x1D1BF, "M", "𝆹𝅥𝅯"), + (0x1D1C0, "M", "𝆺𝅥𝅯"), + (0x1D1C1, "V"), + (0x1D1EB, "X"), + (0x1D200, "V"), + (0x1D246, "X"), + ] + + +def _seg_62() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D2C0, "V"), + (0x1D2D4, "X"), + (0x1D2E0, "V"), + (0x1D2F4, "X"), + (0x1D300, "V"), + (0x1D357, "X"), + (0x1D360, "V"), + (0x1D379, "X"), + (0x1D400, "M", "a"), + (0x1D401, "M", "b"), + (0x1D402, "M", "c"), + (0x1D403, "M", "d"), + (0x1D404, "M", "e"), + (0x1D405, "M", "f"), + (0x1D406, "M", "g"), + (0x1D407, "M", "h"), + (0x1D408, "M", "i"), + (0x1D409, "M", "j"), + (0x1D40A, "M", "k"), + (0x1D40B, "M", "l"), + (0x1D40C, "M", "m"), + (0x1D40D, "M", "n"), + (0x1D40E, "M", "o"), + (0x1D40F, "M", "p"), + (0x1D410, "M", "q"), + (0x1D411, "M", "r"), + (0x1D412, "M", "s"), + (0x1D413, "M", "t"), + (0x1D414, "M", "u"), + (0x1D415, "M", "v"), + (0x1D416, "M", "w"), + (0x1D417, "M", "x"), + (0x1D418, "M", "y"), + (0x1D419, "M", "z"), + (0x1D41A, "M", "a"), + (0x1D41B, "M", "b"), + (0x1D41C, "M", "c"), + (0x1D41D, "M", "d"), + (0x1D41E, "M", "e"), + (0x1D41F, "M", "f"), + (0x1D420, "M", "g"), + (0x1D421, "M", "h"), + (0x1D422, "M", "i"), + (0x1D423, "M", "j"), + (0x1D424, "M", "k"), + (0x1D425, "M", "l"), + (0x1D426, "M", "m"), + (0x1D427, "M", "n"), + (0x1D428, "M", "o"), + (0x1D429, "M", "p"), + (0x1D42A, "M", "q"), + (0x1D42B, "M", "r"), + (0x1D42C, "M", "s"), + (0x1D42D, "M", "t"), + (0x1D42E, "M", "u"), + (0x1D42F, "M", "v"), + (0x1D430, "M", "w"), + (0x1D431, "M", "x"), + (0x1D432, "M", "y"), + (0x1D433, "M", "z"), + (0x1D434, "M", "a"), + (0x1D435, "M", "b"), + (0x1D436, "M", "c"), + (0x1D437, "M", "d"), + (0x1D438, "M", "e"), + (0x1D439, "M", "f"), + (0x1D43A, "M", "g"), + (0x1D43B, "M", "h"), + (0x1D43C, "M", "i"), + (0x1D43D, "M", "j"), + (0x1D43E, "M", "k"), + (0x1D43F, "M", "l"), + (0x1D440, "M", "m"), + (0x1D441, "M", "n"), + (0x1D442, "M", "o"), + (0x1D443, "M", "p"), + (0x1D444, "M", "q"), + (0x1D445, "M", "r"), + (0x1D446, "M", "s"), + (0x1D447, "M", "t"), + (0x1D448, "M", "u"), + (0x1D449, "M", "v"), + (0x1D44A, "M", "w"), + (0x1D44B, "M", "x"), + (0x1D44C, "M", "y"), + (0x1D44D, "M", "z"), + (0x1D44E, "M", "a"), + (0x1D44F, "M", "b"), + (0x1D450, "M", "c"), + (0x1D451, "M", "d"), + (0x1D452, "M", "e"), + (0x1D453, "M", "f"), + (0x1D454, "M", "g"), + (0x1D455, "X"), + (0x1D456, "M", "i"), + (0x1D457, "M", "j"), + (0x1D458, "M", "k"), + (0x1D459, "M", "l"), + (0x1D45A, "M", "m"), + (0x1D45B, "M", "n"), + ] + + +def _seg_63() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D45C, "M", "o"), + (0x1D45D, "M", "p"), + (0x1D45E, "M", "q"), + (0x1D45F, "M", "r"), + (0x1D460, "M", "s"), + (0x1D461, "M", "t"), + (0x1D462, "M", "u"), + (0x1D463, "M", "v"), + (0x1D464, "M", "w"), + (0x1D465, "M", "x"), + (0x1D466, "M", "y"), + (0x1D467, "M", "z"), + (0x1D468, "M", "a"), + (0x1D469, "M", "b"), + (0x1D46A, "M", "c"), + (0x1D46B, "M", "d"), + (0x1D46C, "M", "e"), + (0x1D46D, "M", "f"), + (0x1D46E, "M", "g"), + (0x1D46F, "M", "h"), + (0x1D470, "M", "i"), + (0x1D471, "M", "j"), + (0x1D472, "M", "k"), + (0x1D473, "M", "l"), + (0x1D474, "M", "m"), + (0x1D475, "M", "n"), + (0x1D476, "M", "o"), + (0x1D477, "M", "p"), + (0x1D478, "M", "q"), + (0x1D479, "M", "r"), + (0x1D47A, "M", "s"), + (0x1D47B, "M", "t"), + (0x1D47C, "M", "u"), + (0x1D47D, "M", "v"), + (0x1D47E, "M", "w"), + (0x1D47F, "M", "x"), + (0x1D480, "M", "y"), + (0x1D481, "M", "z"), + (0x1D482, "M", "a"), + (0x1D483, "M", "b"), + (0x1D484, "M", "c"), + (0x1D485, "M", "d"), + (0x1D486, "M", "e"), + (0x1D487, "M", "f"), + (0x1D488, "M", "g"), + (0x1D489, "M", "h"), + (0x1D48A, "M", "i"), + (0x1D48B, "M", "j"), + (0x1D48C, "M", "k"), + (0x1D48D, "M", "l"), + (0x1D48E, "M", "m"), + (0x1D48F, "M", "n"), + (0x1D490, "M", "o"), + (0x1D491, "M", "p"), + (0x1D492, "M", "q"), + (0x1D493, "M", "r"), + (0x1D494, "M", "s"), + (0x1D495, "M", "t"), + (0x1D496, "M", "u"), + (0x1D497, "M", "v"), + (0x1D498, "M", "w"), + (0x1D499, "M", "x"), + (0x1D49A, "M", "y"), + (0x1D49B, "M", "z"), + (0x1D49C, "M", "a"), + (0x1D49D, "X"), + (0x1D49E, "M", "c"), + (0x1D49F, "M", "d"), + (0x1D4A0, "X"), + (0x1D4A2, "M", "g"), + (0x1D4A3, "X"), + (0x1D4A5, "M", "j"), + (0x1D4A6, "M", "k"), + (0x1D4A7, "X"), + (0x1D4A9, "M", "n"), + (0x1D4AA, "M", "o"), + (0x1D4AB, "M", "p"), + (0x1D4AC, "M", "q"), + (0x1D4AD, "X"), + (0x1D4AE, "M", "s"), + (0x1D4AF, "M", "t"), + (0x1D4B0, "M", "u"), + (0x1D4B1, "M", "v"), + (0x1D4B2, "M", "w"), + (0x1D4B3, "M", "x"), + (0x1D4B4, "M", "y"), + (0x1D4B5, "M", "z"), + (0x1D4B6, "M", "a"), + (0x1D4B7, "M", "b"), + (0x1D4B8, "M", "c"), + (0x1D4B9, "M", "d"), + (0x1D4BA, "X"), + (0x1D4BB, "M", "f"), + (0x1D4BC, "X"), + (0x1D4BD, "M", "h"), + (0x1D4BE, "M", "i"), + (0x1D4BF, "M", "j"), + (0x1D4C0, "M", "k"), + (0x1D4C1, "M", "l"), + (0x1D4C2, "M", "m"), + ] + + +def _seg_64() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D4C3, "M", "n"), + (0x1D4C4, "X"), + (0x1D4C5, "M", "p"), + (0x1D4C6, "M", "q"), + (0x1D4C7, "M", "r"), + (0x1D4C8, "M", "s"), + (0x1D4C9, "M", "t"), + (0x1D4CA, "M", "u"), + (0x1D4CB, "M", "v"), + (0x1D4CC, "M", "w"), + (0x1D4CD, "M", "x"), + (0x1D4CE, "M", "y"), + (0x1D4CF, "M", "z"), + (0x1D4D0, "M", "a"), + (0x1D4D1, "M", "b"), + (0x1D4D2, "M", "c"), + (0x1D4D3, "M", "d"), + (0x1D4D4, "M", "e"), + (0x1D4D5, "M", "f"), + (0x1D4D6, "M", "g"), + (0x1D4D7, "M", "h"), + (0x1D4D8, "M", "i"), + (0x1D4D9, "M", "j"), + (0x1D4DA, "M", "k"), + (0x1D4DB, "M", "l"), + (0x1D4DC, "M", "m"), + (0x1D4DD, "M", "n"), + (0x1D4DE, "M", "o"), + (0x1D4DF, "M", "p"), + (0x1D4E0, "M", "q"), + (0x1D4E1, "M", "r"), + (0x1D4E2, "M", "s"), + (0x1D4E3, "M", "t"), + (0x1D4E4, "M", "u"), + (0x1D4E5, "M", "v"), + (0x1D4E6, "M", "w"), + (0x1D4E7, "M", "x"), + (0x1D4E8, "M", "y"), + (0x1D4E9, "M", "z"), + (0x1D4EA, "M", "a"), + (0x1D4EB, "M", "b"), + (0x1D4EC, "M", "c"), + (0x1D4ED, "M", "d"), + (0x1D4EE, "M", "e"), + (0x1D4EF, "M", "f"), + (0x1D4F0, "M", "g"), + (0x1D4F1, "M", "h"), + (0x1D4F2, "M", "i"), + (0x1D4F3, "M", "j"), + (0x1D4F4, "M", "k"), + (0x1D4F5, "M", "l"), + (0x1D4F6, "M", "m"), + (0x1D4F7, "M", "n"), + (0x1D4F8, "M", "o"), + (0x1D4F9, "M", "p"), + (0x1D4FA, "M", "q"), + (0x1D4FB, "M", "r"), + (0x1D4FC, "M", "s"), + (0x1D4FD, "M", "t"), + (0x1D4FE, "M", "u"), + (0x1D4FF, "M", "v"), + (0x1D500, "M", "w"), + (0x1D501, "M", "x"), + (0x1D502, "M", "y"), + (0x1D503, "M", "z"), + (0x1D504, "M", "a"), + (0x1D505, "M", "b"), + (0x1D506, "X"), + (0x1D507, "M", "d"), + (0x1D508, "M", "e"), + (0x1D509, "M", "f"), + (0x1D50A, "M", "g"), + (0x1D50B, "X"), + (0x1D50D, "M", "j"), + (0x1D50E, "M", "k"), + (0x1D50F, "M", "l"), + (0x1D510, "M", "m"), + (0x1D511, "M", "n"), + (0x1D512, "M", "o"), + (0x1D513, "M", "p"), + (0x1D514, "M", "q"), + (0x1D515, "X"), + (0x1D516, "M", "s"), + (0x1D517, "M", "t"), + (0x1D518, "M", "u"), + (0x1D519, "M", "v"), + (0x1D51A, "M", "w"), + (0x1D51B, "M", "x"), + (0x1D51C, "M", "y"), + (0x1D51D, "X"), + (0x1D51E, "M", "a"), + (0x1D51F, "M", "b"), + (0x1D520, "M", "c"), + (0x1D521, "M", "d"), + (0x1D522, "M", "e"), + (0x1D523, "M", "f"), + (0x1D524, "M", "g"), + (0x1D525, "M", "h"), + (0x1D526, "M", "i"), + (0x1D527, "M", "j"), + ] + + +def _seg_65() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D528, "M", "k"), + (0x1D529, "M", "l"), + (0x1D52A, "M", "m"), + (0x1D52B, "M", "n"), + (0x1D52C, "M", "o"), + (0x1D52D, "M", "p"), + (0x1D52E, "M", "q"), + (0x1D52F, "M", "r"), + (0x1D530, "M", "s"), + (0x1D531, "M", "t"), + (0x1D532, "M", "u"), + (0x1D533, "M", "v"), + (0x1D534, "M", "w"), + (0x1D535, "M", "x"), + (0x1D536, "M", "y"), + (0x1D537, "M", "z"), + (0x1D538, "M", "a"), + (0x1D539, "M", "b"), + (0x1D53A, "X"), + (0x1D53B, "M", "d"), + (0x1D53C, "M", "e"), + (0x1D53D, "M", "f"), + (0x1D53E, "M", "g"), + (0x1D53F, "X"), + (0x1D540, "M", "i"), + (0x1D541, "M", "j"), + (0x1D542, "M", "k"), + (0x1D543, "M", "l"), + (0x1D544, "M", "m"), + (0x1D545, "X"), + (0x1D546, "M", "o"), + (0x1D547, "X"), + (0x1D54A, "M", "s"), + (0x1D54B, "M", "t"), + (0x1D54C, "M", "u"), + (0x1D54D, "M", "v"), + (0x1D54E, "M", "w"), + (0x1D54F, "M", "x"), + (0x1D550, "M", "y"), + (0x1D551, "X"), + (0x1D552, "M", "a"), + (0x1D553, "M", "b"), + (0x1D554, "M", "c"), + (0x1D555, "M", "d"), + (0x1D556, "M", "e"), + (0x1D557, "M", "f"), + (0x1D558, "M", "g"), + (0x1D559, "M", "h"), + (0x1D55A, "M", "i"), + (0x1D55B, "M", "j"), + (0x1D55C, "M", "k"), + (0x1D55D, "M", "l"), + (0x1D55E, "M", "m"), + (0x1D55F, "M", "n"), + (0x1D560, "M", "o"), + (0x1D561, "M", "p"), + (0x1D562, "M", "q"), + (0x1D563, "M", "r"), + (0x1D564, "M", "s"), + (0x1D565, "M", "t"), + (0x1D566, "M", "u"), + (0x1D567, "M", "v"), + (0x1D568, "M", "w"), + (0x1D569, "M", "x"), + (0x1D56A, "M", "y"), + (0x1D56B, "M", "z"), + (0x1D56C, "M", "a"), + (0x1D56D, "M", "b"), + (0x1D56E, "M", "c"), + (0x1D56F, "M", "d"), + (0x1D570, "M", "e"), + (0x1D571, "M", "f"), + (0x1D572, "M", "g"), + (0x1D573, "M", "h"), + (0x1D574, "M", "i"), + (0x1D575, "M", "j"), + (0x1D576, "M", "k"), + (0x1D577, "M", "l"), + (0x1D578, "M", "m"), + (0x1D579, "M", "n"), + (0x1D57A, "M", "o"), + (0x1D57B, "M", "p"), + (0x1D57C, "M", "q"), + (0x1D57D, "M", "r"), + (0x1D57E, "M", "s"), + (0x1D57F, "M", "t"), + (0x1D580, "M", "u"), + (0x1D581, "M", "v"), + (0x1D582, "M", "w"), + (0x1D583, "M", "x"), + (0x1D584, "M", "y"), + (0x1D585, "M", "z"), + (0x1D586, "M", "a"), + (0x1D587, "M", "b"), + (0x1D588, "M", "c"), + (0x1D589, "M", "d"), + (0x1D58A, "M", "e"), + (0x1D58B, "M", "f"), + (0x1D58C, "M", "g"), + (0x1D58D, "M", "h"), + ] + + +def _seg_66() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D58E, "M", "i"), + (0x1D58F, "M", "j"), + (0x1D590, "M", "k"), + (0x1D591, "M", "l"), + (0x1D592, "M", "m"), + (0x1D593, "M", "n"), + (0x1D594, "M", "o"), + (0x1D595, "M", "p"), + (0x1D596, "M", "q"), + (0x1D597, "M", "r"), + (0x1D598, "M", "s"), + (0x1D599, "M", "t"), + (0x1D59A, "M", "u"), + (0x1D59B, "M", "v"), + (0x1D59C, "M", "w"), + (0x1D59D, "M", "x"), + (0x1D59E, "M", "y"), + (0x1D59F, "M", "z"), + (0x1D5A0, "M", "a"), + (0x1D5A1, "M", "b"), + (0x1D5A2, "M", "c"), + (0x1D5A3, "M", "d"), + (0x1D5A4, "M", "e"), + (0x1D5A5, "M", "f"), + (0x1D5A6, "M", "g"), + (0x1D5A7, "M", "h"), + (0x1D5A8, "M", "i"), + (0x1D5A9, "M", "j"), + (0x1D5AA, "M", "k"), + (0x1D5AB, "M", "l"), + (0x1D5AC, "M", "m"), + (0x1D5AD, "M", "n"), + (0x1D5AE, "M", "o"), + (0x1D5AF, "M", "p"), + (0x1D5B0, "M", "q"), + (0x1D5B1, "M", "r"), + (0x1D5B2, "M", "s"), + (0x1D5B3, "M", "t"), + (0x1D5B4, "M", "u"), + (0x1D5B5, "M", "v"), + (0x1D5B6, "M", "w"), + (0x1D5B7, "M", "x"), + (0x1D5B8, "M", "y"), + (0x1D5B9, "M", "z"), + (0x1D5BA, "M", "a"), + (0x1D5BB, "M", "b"), + (0x1D5BC, "M", "c"), + (0x1D5BD, "M", "d"), + (0x1D5BE, "M", "e"), + (0x1D5BF, "M", "f"), + (0x1D5C0, "M", "g"), + (0x1D5C1, "M", "h"), + (0x1D5C2, "M", "i"), + (0x1D5C3, "M", "j"), + (0x1D5C4, "M", "k"), + (0x1D5C5, "M", "l"), + (0x1D5C6, "M", "m"), + (0x1D5C7, "M", "n"), + (0x1D5C8, "M", "o"), + (0x1D5C9, "M", "p"), + (0x1D5CA, "M", "q"), + (0x1D5CB, "M", "r"), + (0x1D5CC, "M", "s"), + (0x1D5CD, "M", "t"), + (0x1D5CE, "M", "u"), + (0x1D5CF, "M", "v"), + (0x1D5D0, "M", "w"), + (0x1D5D1, "M", "x"), + (0x1D5D2, "M", "y"), + (0x1D5D3, "M", "z"), + (0x1D5D4, "M", "a"), + (0x1D5D5, "M", "b"), + (0x1D5D6, "M", "c"), + (0x1D5D7, "M", "d"), + (0x1D5D8, "M", "e"), + (0x1D5D9, "M", "f"), + (0x1D5DA, "M", "g"), + (0x1D5DB, "M", "h"), + (0x1D5DC, "M", "i"), + (0x1D5DD, "M", "j"), + (0x1D5DE, "M", "k"), + (0x1D5DF, "M", "l"), + (0x1D5E0, "M", "m"), + (0x1D5E1, "M", "n"), + (0x1D5E2, "M", "o"), + (0x1D5E3, "M", "p"), + (0x1D5E4, "M", "q"), + (0x1D5E5, "M", "r"), + (0x1D5E6, "M", "s"), + (0x1D5E7, "M", "t"), + (0x1D5E8, "M", "u"), + (0x1D5E9, "M", "v"), + (0x1D5EA, "M", "w"), + (0x1D5EB, "M", "x"), + (0x1D5EC, "M", "y"), + (0x1D5ED, "M", "z"), + (0x1D5EE, "M", "a"), + (0x1D5EF, "M", "b"), + (0x1D5F0, "M", "c"), + (0x1D5F1, "M", "d"), + ] + + +def _seg_67() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D5F2, "M", "e"), + (0x1D5F3, "M", "f"), + (0x1D5F4, "M", "g"), + (0x1D5F5, "M", "h"), + (0x1D5F6, "M", "i"), + (0x1D5F7, "M", "j"), + (0x1D5F8, "M", "k"), + (0x1D5F9, "M", "l"), + (0x1D5FA, "M", "m"), + (0x1D5FB, "M", "n"), + (0x1D5FC, "M", "o"), + (0x1D5FD, "M", "p"), + (0x1D5FE, "M", "q"), + (0x1D5FF, "M", "r"), + (0x1D600, "M", "s"), + (0x1D601, "M", "t"), + (0x1D602, "M", "u"), + (0x1D603, "M", "v"), + (0x1D604, "M", "w"), + (0x1D605, "M", "x"), + (0x1D606, "M", "y"), + (0x1D607, "M", "z"), + (0x1D608, "M", "a"), + (0x1D609, "M", "b"), + (0x1D60A, "M", "c"), + (0x1D60B, "M", "d"), + (0x1D60C, "M", "e"), + (0x1D60D, "M", "f"), + (0x1D60E, "M", "g"), + (0x1D60F, "M", "h"), + (0x1D610, "M", "i"), + (0x1D611, "M", "j"), + (0x1D612, "M", "k"), + (0x1D613, "M", "l"), + (0x1D614, "M", "m"), + (0x1D615, "M", "n"), + (0x1D616, "M", "o"), + (0x1D617, "M", "p"), + (0x1D618, "M", "q"), + (0x1D619, "M", "r"), + (0x1D61A, "M", "s"), + (0x1D61B, "M", "t"), + (0x1D61C, "M", "u"), + (0x1D61D, "M", "v"), + (0x1D61E, "M", "w"), + (0x1D61F, "M", "x"), + (0x1D620, "M", "y"), + (0x1D621, "M", "z"), + (0x1D622, "M", "a"), + (0x1D623, "M", "b"), + (0x1D624, "M", "c"), + (0x1D625, "M", "d"), + (0x1D626, "M", "e"), + (0x1D627, "M", "f"), + (0x1D628, "M", "g"), + (0x1D629, "M", "h"), + (0x1D62A, "M", "i"), + (0x1D62B, "M", "j"), + (0x1D62C, "M", "k"), + (0x1D62D, "M", "l"), + (0x1D62E, "M", "m"), + (0x1D62F, "M", "n"), + (0x1D630, "M", "o"), + (0x1D631, "M", "p"), + (0x1D632, "M", "q"), + (0x1D633, "M", "r"), + (0x1D634, "M", "s"), + (0x1D635, "M", "t"), + (0x1D636, "M", "u"), + (0x1D637, "M", "v"), + (0x1D638, "M", "w"), + (0x1D639, "M", "x"), + (0x1D63A, "M", "y"), + (0x1D63B, "M", "z"), + (0x1D63C, "M", "a"), + (0x1D63D, "M", "b"), + (0x1D63E, "M", "c"), + (0x1D63F, "M", "d"), + (0x1D640, "M", "e"), + (0x1D641, "M", "f"), + (0x1D642, "M", "g"), + (0x1D643, "M", "h"), + (0x1D644, "M", "i"), + (0x1D645, "M", "j"), + (0x1D646, "M", "k"), + (0x1D647, "M", "l"), + (0x1D648, "M", "m"), + (0x1D649, "M", "n"), + (0x1D64A, "M", "o"), + (0x1D64B, "M", "p"), + (0x1D64C, "M", "q"), + (0x1D64D, "M", "r"), + (0x1D64E, "M", "s"), + (0x1D64F, "M", "t"), + (0x1D650, "M", "u"), + (0x1D651, "M", "v"), + (0x1D652, "M", "w"), + (0x1D653, "M", "x"), + (0x1D654, "M", "y"), + (0x1D655, "M", "z"), + ] + + +def _seg_68() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D656, "M", "a"), + (0x1D657, "M", "b"), + (0x1D658, "M", "c"), + (0x1D659, "M", "d"), + (0x1D65A, "M", "e"), + (0x1D65B, "M", "f"), + (0x1D65C, "M", "g"), + (0x1D65D, "M", "h"), + (0x1D65E, "M", "i"), + (0x1D65F, "M", "j"), + (0x1D660, "M", "k"), + (0x1D661, "M", "l"), + (0x1D662, "M", "m"), + (0x1D663, "M", "n"), + (0x1D664, "M", "o"), + (0x1D665, "M", "p"), + (0x1D666, "M", "q"), + (0x1D667, "M", "r"), + (0x1D668, "M", "s"), + (0x1D669, "M", "t"), + (0x1D66A, "M", "u"), + (0x1D66B, "M", "v"), + (0x1D66C, "M", "w"), + (0x1D66D, "M", "x"), + (0x1D66E, "M", "y"), + (0x1D66F, "M", "z"), + (0x1D670, "M", "a"), + (0x1D671, "M", "b"), + (0x1D672, "M", "c"), + (0x1D673, "M", "d"), + (0x1D674, "M", "e"), + (0x1D675, "M", "f"), + (0x1D676, "M", "g"), + (0x1D677, "M", "h"), + (0x1D678, "M", "i"), + (0x1D679, "M", "j"), + (0x1D67A, "M", "k"), + (0x1D67B, "M", "l"), + (0x1D67C, "M", "m"), + (0x1D67D, "M", "n"), + (0x1D67E, "M", "o"), + (0x1D67F, "M", "p"), + (0x1D680, "M", "q"), + (0x1D681, "M", "r"), + (0x1D682, "M", "s"), + (0x1D683, "M", "t"), + (0x1D684, "M", "u"), + (0x1D685, "M", "v"), + (0x1D686, "M", "w"), + (0x1D687, "M", "x"), + (0x1D688, "M", "y"), + (0x1D689, "M", "z"), + (0x1D68A, "M", "a"), + (0x1D68B, "M", "b"), + (0x1D68C, "M", "c"), + (0x1D68D, "M", "d"), + (0x1D68E, "M", "e"), + (0x1D68F, "M", "f"), + (0x1D690, "M", "g"), + (0x1D691, "M", "h"), + (0x1D692, "M", "i"), + (0x1D693, "M", "j"), + (0x1D694, "M", "k"), + (0x1D695, "M", "l"), + (0x1D696, "M", "m"), + (0x1D697, "M", "n"), + (0x1D698, "M", "o"), + (0x1D699, "M", "p"), + (0x1D69A, "M", "q"), + (0x1D69B, "M", "r"), + (0x1D69C, "M", "s"), + (0x1D69D, "M", "t"), + (0x1D69E, "M", "u"), + (0x1D69F, "M", "v"), + (0x1D6A0, "M", "w"), + (0x1D6A1, "M", "x"), + (0x1D6A2, "M", "y"), + (0x1D6A3, "M", "z"), + (0x1D6A4, "M", "ı"), + (0x1D6A5, "M", "ȷ"), + (0x1D6A6, "X"), + (0x1D6A8, "M", "α"), + (0x1D6A9, "M", "β"), + (0x1D6AA, "M", "γ"), + (0x1D6AB, "M", "δ"), + (0x1D6AC, "M", "ε"), + (0x1D6AD, "M", "ζ"), + (0x1D6AE, "M", "η"), + (0x1D6AF, "M", "θ"), + (0x1D6B0, "M", "ι"), + (0x1D6B1, "M", "κ"), + (0x1D6B2, "M", "λ"), + (0x1D6B3, "M", "μ"), + (0x1D6B4, "M", "ν"), + (0x1D6B5, "M", "ξ"), + (0x1D6B6, "M", "ο"), + (0x1D6B7, "M", "π"), + (0x1D6B8, "M", "ρ"), + (0x1D6B9, "M", "θ"), + (0x1D6BA, "M", "σ"), + ] + + +def _seg_69() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D6BB, "M", "τ"), + (0x1D6BC, "M", "υ"), + (0x1D6BD, "M", "φ"), + (0x1D6BE, "M", "χ"), + (0x1D6BF, "M", "ψ"), + (0x1D6C0, "M", "ω"), + (0x1D6C1, "M", "∇"), + (0x1D6C2, "M", "α"), + (0x1D6C3, "M", "β"), + (0x1D6C4, "M", "γ"), + (0x1D6C5, "M", "δ"), + (0x1D6C6, "M", "ε"), + (0x1D6C7, "M", "ζ"), + (0x1D6C8, "M", "η"), + (0x1D6C9, "M", "θ"), + (0x1D6CA, "M", "ι"), + (0x1D6CB, "M", "κ"), + (0x1D6CC, "M", "λ"), + (0x1D6CD, "M", "μ"), + (0x1D6CE, "M", "ν"), + (0x1D6CF, "M", "ξ"), + (0x1D6D0, "M", "ο"), + (0x1D6D1, "M", "π"), + (0x1D6D2, "M", "ρ"), + (0x1D6D3, "M", "σ"), + (0x1D6D5, "M", "τ"), + (0x1D6D6, "M", "υ"), + (0x1D6D7, "M", "φ"), + (0x1D6D8, "M", "χ"), + (0x1D6D9, "M", "ψ"), + (0x1D6DA, "M", "ω"), + (0x1D6DB, "M", "∂"), + (0x1D6DC, "M", "ε"), + (0x1D6DD, "M", "θ"), + (0x1D6DE, "M", "κ"), + (0x1D6DF, "M", "φ"), + (0x1D6E0, "M", "ρ"), + (0x1D6E1, "M", "π"), + (0x1D6E2, "M", "α"), + (0x1D6E3, "M", "β"), + (0x1D6E4, "M", "γ"), + (0x1D6E5, "M", "δ"), + (0x1D6E6, "M", "ε"), + (0x1D6E7, "M", "ζ"), + (0x1D6E8, "M", "η"), + (0x1D6E9, "M", "θ"), + (0x1D6EA, "M", "ι"), + (0x1D6EB, "M", "κ"), + (0x1D6EC, "M", "λ"), + (0x1D6ED, "M", "μ"), + (0x1D6EE, "M", "ν"), + (0x1D6EF, "M", "ξ"), + (0x1D6F0, "M", "ο"), + (0x1D6F1, "M", "π"), + (0x1D6F2, "M", "ρ"), + (0x1D6F3, "M", "θ"), + (0x1D6F4, "M", "σ"), + (0x1D6F5, "M", "τ"), + (0x1D6F6, "M", "υ"), + (0x1D6F7, "M", "φ"), + (0x1D6F8, "M", "χ"), + (0x1D6F9, "M", "ψ"), + (0x1D6FA, "M", "ω"), + (0x1D6FB, "M", "∇"), + (0x1D6FC, "M", "α"), + (0x1D6FD, "M", "β"), + (0x1D6FE, "M", "γ"), + (0x1D6FF, "M", "δ"), + (0x1D700, "M", "ε"), + (0x1D701, "M", "ζ"), + (0x1D702, "M", "η"), + (0x1D703, "M", "θ"), + (0x1D704, "M", "ι"), + (0x1D705, "M", "κ"), + (0x1D706, "M", "λ"), + (0x1D707, "M", "μ"), + (0x1D708, "M", "ν"), + (0x1D709, "M", "ξ"), + (0x1D70A, "M", "ο"), + (0x1D70B, "M", "π"), + (0x1D70C, "M", "ρ"), + (0x1D70D, "M", "σ"), + (0x1D70F, "M", "τ"), + (0x1D710, "M", "υ"), + (0x1D711, "M", "φ"), + (0x1D712, "M", "χ"), + (0x1D713, "M", "ψ"), + (0x1D714, "M", "ω"), + (0x1D715, "M", "∂"), + (0x1D716, "M", "ε"), + (0x1D717, "M", "θ"), + (0x1D718, "M", "κ"), + (0x1D719, "M", "φ"), + (0x1D71A, "M", "ρ"), + (0x1D71B, "M", "π"), + (0x1D71C, "M", "α"), + (0x1D71D, "M", "β"), + (0x1D71E, "M", "γ"), + (0x1D71F, "M", "δ"), + (0x1D720, "M", "ε"), + ] + + +def _seg_70() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D721, "M", "ζ"), + (0x1D722, "M", "η"), + (0x1D723, "M", "θ"), + (0x1D724, "M", "ι"), + (0x1D725, "M", "κ"), + (0x1D726, "M", "λ"), + (0x1D727, "M", "μ"), + (0x1D728, "M", "ν"), + (0x1D729, "M", "ξ"), + (0x1D72A, "M", "ο"), + (0x1D72B, "M", "π"), + (0x1D72C, "M", "ρ"), + (0x1D72D, "M", "θ"), + (0x1D72E, "M", "σ"), + (0x1D72F, "M", "τ"), + (0x1D730, "M", "υ"), + (0x1D731, "M", "φ"), + (0x1D732, "M", "χ"), + (0x1D733, "M", "ψ"), + (0x1D734, "M", "ω"), + (0x1D735, "M", "∇"), + (0x1D736, "M", "α"), + (0x1D737, "M", "β"), + (0x1D738, "M", "γ"), + (0x1D739, "M", "δ"), + (0x1D73A, "M", "ε"), + (0x1D73B, "M", "ζ"), + (0x1D73C, "M", "η"), + (0x1D73D, "M", "θ"), + (0x1D73E, "M", "ι"), + (0x1D73F, "M", "κ"), + (0x1D740, "M", "λ"), + (0x1D741, "M", "μ"), + (0x1D742, "M", "ν"), + (0x1D743, "M", "ξ"), + (0x1D744, "M", "ο"), + (0x1D745, "M", "π"), + (0x1D746, "M", "ρ"), + (0x1D747, "M", "σ"), + (0x1D749, "M", "τ"), + (0x1D74A, "M", "υ"), + (0x1D74B, "M", "φ"), + (0x1D74C, "M", "χ"), + (0x1D74D, "M", "ψ"), + (0x1D74E, "M", "ω"), + (0x1D74F, "M", "∂"), + (0x1D750, "M", "ε"), + (0x1D751, "M", "θ"), + (0x1D752, "M", "κ"), + (0x1D753, "M", "φ"), + (0x1D754, "M", "ρ"), + (0x1D755, "M", "π"), + (0x1D756, "M", "α"), + (0x1D757, "M", "β"), + (0x1D758, "M", "γ"), + (0x1D759, "M", "δ"), + (0x1D75A, "M", "ε"), + (0x1D75B, "M", "ζ"), + (0x1D75C, "M", "η"), + (0x1D75D, "M", "θ"), + (0x1D75E, "M", "ι"), + (0x1D75F, "M", "κ"), + (0x1D760, "M", "λ"), + (0x1D761, "M", "μ"), + (0x1D762, "M", "ν"), + (0x1D763, "M", "ξ"), + (0x1D764, "M", "ο"), + (0x1D765, "M", "π"), + (0x1D766, "M", "ρ"), + (0x1D767, "M", "θ"), + (0x1D768, "M", "σ"), + (0x1D769, "M", "τ"), + (0x1D76A, "M", "υ"), + (0x1D76B, "M", "φ"), + (0x1D76C, "M", "χ"), + (0x1D76D, "M", "ψ"), + (0x1D76E, "M", "ω"), + (0x1D76F, "M", "∇"), + (0x1D770, "M", "α"), + (0x1D771, "M", "β"), + (0x1D772, "M", "γ"), + (0x1D773, "M", "δ"), + (0x1D774, "M", "ε"), + (0x1D775, "M", "ζ"), + (0x1D776, "M", "η"), + (0x1D777, "M", "θ"), + (0x1D778, "M", "ι"), + (0x1D779, "M", "κ"), + (0x1D77A, "M", "λ"), + (0x1D77B, "M", "μ"), + (0x1D77C, "M", "ν"), + (0x1D77D, "M", "ξ"), + (0x1D77E, "M", "ο"), + (0x1D77F, "M", "π"), + (0x1D780, "M", "ρ"), + (0x1D781, "M", "σ"), + (0x1D783, "M", "τ"), + (0x1D784, "M", "υ"), + (0x1D785, "M", "φ"), + (0x1D786, "M", "χ"), + ] + + +def _seg_71() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D787, "M", "ψ"), + (0x1D788, "M", "ω"), + (0x1D789, "M", "∂"), + (0x1D78A, "M", "ε"), + (0x1D78B, "M", "θ"), + (0x1D78C, "M", "κ"), + (0x1D78D, "M", "φ"), + (0x1D78E, "M", "ρ"), + (0x1D78F, "M", "π"), + (0x1D790, "M", "α"), + (0x1D791, "M", "β"), + (0x1D792, "M", "γ"), + (0x1D793, "M", "δ"), + (0x1D794, "M", "ε"), + (0x1D795, "M", "ζ"), + (0x1D796, "M", "η"), + (0x1D797, "M", "θ"), + (0x1D798, "M", "ι"), + (0x1D799, "M", "κ"), + (0x1D79A, "M", "λ"), + (0x1D79B, "M", "μ"), + (0x1D79C, "M", "ν"), + (0x1D79D, "M", "ξ"), + (0x1D79E, "M", "ο"), + (0x1D79F, "M", "π"), + (0x1D7A0, "M", "ρ"), + (0x1D7A1, "M", "θ"), + (0x1D7A2, "M", "σ"), + (0x1D7A3, "M", "τ"), + (0x1D7A4, "M", "υ"), + (0x1D7A5, "M", "φ"), + (0x1D7A6, "M", "χ"), + (0x1D7A7, "M", "ψ"), + (0x1D7A8, "M", "ω"), + (0x1D7A9, "M", "∇"), + (0x1D7AA, "M", "α"), + (0x1D7AB, "M", "β"), + (0x1D7AC, "M", "γ"), + (0x1D7AD, "M", "δ"), + (0x1D7AE, "M", "ε"), + (0x1D7AF, "M", "ζ"), + (0x1D7B0, "M", "η"), + (0x1D7B1, "M", "θ"), + (0x1D7B2, "M", "ι"), + (0x1D7B3, "M", "κ"), + (0x1D7B4, "M", "λ"), + (0x1D7B5, "M", "μ"), + (0x1D7B6, "M", "ν"), + (0x1D7B7, "M", "ξ"), + (0x1D7B8, "M", "ο"), + (0x1D7B9, "M", "π"), + (0x1D7BA, "M", "ρ"), + (0x1D7BB, "M", "σ"), + (0x1D7BD, "M", "τ"), + (0x1D7BE, "M", "υ"), + (0x1D7BF, "M", "φ"), + (0x1D7C0, "M", "χ"), + (0x1D7C1, "M", "ψ"), + (0x1D7C2, "M", "ω"), + (0x1D7C3, "M", "∂"), + (0x1D7C4, "M", "ε"), + (0x1D7C5, "M", "θ"), + (0x1D7C6, "M", "κ"), + (0x1D7C7, "M", "φ"), + (0x1D7C8, "M", "ρ"), + (0x1D7C9, "M", "π"), + (0x1D7CA, "M", "ϝ"), + (0x1D7CC, "X"), + (0x1D7CE, "M", "0"), + (0x1D7CF, "M", "1"), + (0x1D7D0, "M", "2"), + (0x1D7D1, "M", "3"), + (0x1D7D2, "M", "4"), + (0x1D7D3, "M", "5"), + (0x1D7D4, "M", "6"), + (0x1D7D5, "M", "7"), + (0x1D7D6, "M", "8"), + (0x1D7D7, "M", "9"), + (0x1D7D8, "M", "0"), + (0x1D7D9, "M", "1"), + (0x1D7DA, "M", "2"), + (0x1D7DB, "M", "3"), + (0x1D7DC, "M", "4"), + (0x1D7DD, "M", "5"), + (0x1D7DE, "M", "6"), + (0x1D7DF, "M", "7"), + (0x1D7E0, "M", "8"), + (0x1D7E1, "M", "9"), + (0x1D7E2, "M", "0"), + (0x1D7E3, "M", "1"), + (0x1D7E4, "M", "2"), + (0x1D7E5, "M", "3"), + (0x1D7E6, "M", "4"), + (0x1D7E7, "M", "5"), + (0x1D7E8, "M", "6"), + (0x1D7E9, "M", "7"), + (0x1D7EA, "M", "8"), + (0x1D7EB, "M", "9"), + (0x1D7EC, "M", "0"), + (0x1D7ED, "M", "1"), + ] + + +def _seg_72() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D7EE, "M", "2"), + (0x1D7EF, "M", "3"), + (0x1D7F0, "M", "4"), + (0x1D7F1, "M", "5"), + (0x1D7F2, "M", "6"), + (0x1D7F3, "M", "7"), + (0x1D7F4, "M", "8"), + (0x1D7F5, "M", "9"), + (0x1D7F6, "M", "0"), + (0x1D7F7, "M", "1"), + (0x1D7F8, "M", "2"), + (0x1D7F9, "M", "3"), + (0x1D7FA, "M", "4"), + (0x1D7FB, "M", "5"), + (0x1D7FC, "M", "6"), + (0x1D7FD, "M", "7"), + (0x1D7FE, "M", "8"), + (0x1D7FF, "M", "9"), + (0x1D800, "V"), + (0x1DA8C, "X"), + (0x1DA9B, "V"), + (0x1DAA0, "X"), + (0x1DAA1, "V"), + (0x1DAB0, "X"), + (0x1DF00, "V"), + (0x1DF1F, "X"), + (0x1DF25, "V"), + (0x1DF2B, "X"), + (0x1E000, "V"), + (0x1E007, "X"), + (0x1E008, "V"), + (0x1E019, "X"), + (0x1E01B, "V"), + (0x1E022, "X"), + (0x1E023, "V"), + (0x1E025, "X"), + (0x1E026, "V"), + (0x1E02B, "X"), + (0x1E030, "M", "а"), + (0x1E031, "M", "б"), + (0x1E032, "M", "в"), + (0x1E033, "M", "г"), + (0x1E034, "M", "д"), + (0x1E035, "M", "е"), + (0x1E036, "M", "ж"), + (0x1E037, "M", "з"), + (0x1E038, "M", "и"), + (0x1E039, "M", "к"), + (0x1E03A, "M", "л"), + (0x1E03B, "M", "м"), + (0x1E03C, "M", "о"), + (0x1E03D, "M", "п"), + (0x1E03E, "M", "р"), + (0x1E03F, "M", "с"), + (0x1E040, "M", "т"), + (0x1E041, "M", "у"), + (0x1E042, "M", "ф"), + (0x1E043, "M", "х"), + (0x1E044, "M", "ц"), + (0x1E045, "M", "ч"), + (0x1E046, "M", "ш"), + (0x1E047, "M", "ы"), + (0x1E048, "M", "э"), + (0x1E049, "M", "ю"), + (0x1E04A, "M", "ꚉ"), + (0x1E04B, "M", "ә"), + (0x1E04C, "M", "і"), + (0x1E04D, "M", "ј"), + (0x1E04E, "M", "ө"), + (0x1E04F, "M", "ү"), + (0x1E050, "M", "ӏ"), + (0x1E051, "M", "а"), + (0x1E052, "M", "б"), + (0x1E053, "M", "в"), + (0x1E054, "M", "г"), + (0x1E055, "M", "д"), + (0x1E056, "M", "е"), + (0x1E057, "M", "ж"), + (0x1E058, "M", "з"), + (0x1E059, "M", "и"), + (0x1E05A, "M", "к"), + (0x1E05B, "M", "л"), + (0x1E05C, "M", "о"), + (0x1E05D, "M", "п"), + (0x1E05E, "M", "с"), + (0x1E05F, "M", "у"), + (0x1E060, "M", "ф"), + (0x1E061, "M", "х"), + (0x1E062, "M", "ц"), + (0x1E063, "M", "ч"), + (0x1E064, "M", "ш"), + (0x1E065, "M", "ъ"), + (0x1E066, "M", "ы"), + (0x1E067, "M", "ґ"), + (0x1E068, "M", "і"), + (0x1E069, "M", "ѕ"), + (0x1E06A, "M", "џ"), + (0x1E06B, "M", "ҫ"), + (0x1E06C, "M", "ꙑ"), + (0x1E06D, "M", "ұ"), + ] + + +def _seg_73() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1E06E, "X"), + (0x1E08F, "V"), + (0x1E090, "X"), + (0x1E100, "V"), + (0x1E12D, "X"), + (0x1E130, "V"), + (0x1E13E, "X"), + (0x1E140, "V"), + (0x1E14A, "X"), + (0x1E14E, "V"), + (0x1E150, "X"), + (0x1E290, "V"), + (0x1E2AF, "X"), + (0x1E2C0, "V"), + (0x1E2FA, "X"), + (0x1E2FF, "V"), + (0x1E300, "X"), + (0x1E4D0, "V"), + (0x1E4FA, "X"), + (0x1E5D0, "V"), + (0x1E5FB, "X"), + (0x1E5FF, "V"), + (0x1E600, "X"), + (0x1E7E0, "V"), + (0x1E7E7, "X"), + (0x1E7E8, "V"), + (0x1E7EC, "X"), + (0x1E7ED, "V"), + (0x1E7EF, "X"), + (0x1E7F0, "V"), + (0x1E7FF, "X"), + (0x1E800, "V"), + (0x1E8C5, "X"), + (0x1E8C7, "V"), + (0x1E8D7, "X"), + (0x1E900, "M", "𞤢"), + (0x1E901, "M", "𞤣"), + (0x1E902, "M", "𞤤"), + (0x1E903, "M", "𞤥"), + (0x1E904, "M", "𞤦"), + (0x1E905, "M", "𞤧"), + (0x1E906, "M", "𞤨"), + (0x1E907, "M", "𞤩"), + (0x1E908, "M", "𞤪"), + (0x1E909, "M", "𞤫"), + (0x1E90A, "M", "𞤬"), + (0x1E90B, "M", "𞤭"), + (0x1E90C, "M", "𞤮"), + (0x1E90D, "M", "𞤯"), + (0x1E90E, "M", "𞤰"), + (0x1E90F, "M", "𞤱"), + (0x1E910, "M", "𞤲"), + (0x1E911, "M", "𞤳"), + (0x1E912, "M", "𞤴"), + (0x1E913, "M", "𞤵"), + (0x1E914, "M", "𞤶"), + (0x1E915, "M", "𞤷"), + (0x1E916, "M", "𞤸"), + (0x1E917, "M", "𞤹"), + (0x1E918, "M", "𞤺"), + (0x1E919, "M", "𞤻"), + (0x1E91A, "M", "𞤼"), + (0x1E91B, "M", "𞤽"), + (0x1E91C, "M", "𞤾"), + (0x1E91D, "M", "𞤿"), + (0x1E91E, "M", "𞥀"), + (0x1E91F, "M", "𞥁"), + (0x1E920, "M", "𞥂"), + (0x1E921, "M", "𞥃"), + (0x1E922, "V"), + (0x1E94C, "X"), + (0x1E950, "V"), + (0x1E95A, "X"), + (0x1E95E, "V"), + (0x1E960, "X"), + (0x1EC71, "V"), + (0x1ECB5, "X"), + (0x1ED01, "V"), + (0x1ED3E, "X"), + (0x1EE00, "M", "ا"), + (0x1EE01, "M", "ب"), + (0x1EE02, "M", "ج"), + (0x1EE03, "M", "د"), + (0x1EE04, "X"), + (0x1EE05, "M", "و"), + (0x1EE06, "M", "ز"), + (0x1EE07, "M", "ح"), + (0x1EE08, "M", "ط"), + (0x1EE09, "M", "ي"), + (0x1EE0A, "M", "ك"), + (0x1EE0B, "M", "ل"), + (0x1EE0C, "M", "م"), + (0x1EE0D, "M", "ن"), + (0x1EE0E, "M", "س"), + (0x1EE0F, "M", "ع"), + (0x1EE10, "M", "ف"), + (0x1EE11, "M", "ص"), + (0x1EE12, "M", "ق"), + (0x1EE13, "M", "ر"), + (0x1EE14, "M", "ش"), + ] + + +def _seg_74() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1EE15, "M", "ت"), + (0x1EE16, "M", "ث"), + (0x1EE17, "M", "خ"), + (0x1EE18, "M", "ذ"), + (0x1EE19, "M", "ض"), + (0x1EE1A, "M", "ظ"), + (0x1EE1B, "M", "غ"), + (0x1EE1C, "M", "ٮ"), + (0x1EE1D, "M", "ں"), + (0x1EE1E, "M", "ڡ"), + (0x1EE1F, "M", "ٯ"), + (0x1EE20, "X"), + (0x1EE21, "M", "ب"), + (0x1EE22, "M", "ج"), + (0x1EE23, "X"), + (0x1EE24, "M", "ه"), + (0x1EE25, "X"), + (0x1EE27, "M", "ح"), + (0x1EE28, "X"), + (0x1EE29, "M", "ي"), + (0x1EE2A, "M", "ك"), + (0x1EE2B, "M", "ل"), + (0x1EE2C, "M", "م"), + (0x1EE2D, "M", "ن"), + (0x1EE2E, "M", "س"), + (0x1EE2F, "M", "ع"), + (0x1EE30, "M", "ف"), + (0x1EE31, "M", "ص"), + (0x1EE32, "M", "ق"), + (0x1EE33, "X"), + (0x1EE34, "M", "ش"), + (0x1EE35, "M", "ت"), + (0x1EE36, "M", "ث"), + (0x1EE37, "M", "خ"), + (0x1EE38, "X"), + (0x1EE39, "M", "ض"), + (0x1EE3A, "X"), + (0x1EE3B, "M", "غ"), + (0x1EE3C, "X"), + (0x1EE42, "M", "ج"), + (0x1EE43, "X"), + (0x1EE47, "M", "ح"), + (0x1EE48, "X"), + (0x1EE49, "M", "ي"), + (0x1EE4A, "X"), + (0x1EE4B, "M", "ل"), + (0x1EE4C, "X"), + (0x1EE4D, "M", "ن"), + (0x1EE4E, "M", "س"), + (0x1EE4F, "M", "ع"), + (0x1EE50, "X"), + (0x1EE51, "M", "ص"), + (0x1EE52, "M", "ق"), + (0x1EE53, "X"), + (0x1EE54, "M", "ش"), + (0x1EE55, "X"), + (0x1EE57, "M", "خ"), + (0x1EE58, "X"), + (0x1EE59, "M", "ض"), + (0x1EE5A, "X"), + (0x1EE5B, "M", "غ"), + (0x1EE5C, "X"), + (0x1EE5D, "M", "ں"), + (0x1EE5E, "X"), + (0x1EE5F, "M", "ٯ"), + (0x1EE60, "X"), + (0x1EE61, "M", "ب"), + (0x1EE62, "M", "ج"), + (0x1EE63, "X"), + (0x1EE64, "M", "ه"), + (0x1EE65, "X"), + (0x1EE67, "M", "ح"), + (0x1EE68, "M", "ط"), + (0x1EE69, "M", "ي"), + (0x1EE6A, "M", "ك"), + (0x1EE6B, "X"), + (0x1EE6C, "M", "م"), + (0x1EE6D, "M", "ن"), + (0x1EE6E, "M", "س"), + (0x1EE6F, "M", "ع"), + (0x1EE70, "M", "ف"), + (0x1EE71, "M", "ص"), + (0x1EE72, "M", "ق"), + (0x1EE73, "X"), + (0x1EE74, "M", "ش"), + (0x1EE75, "M", "ت"), + (0x1EE76, "M", "ث"), + (0x1EE77, "M", "خ"), + (0x1EE78, "X"), + (0x1EE79, "M", "ض"), + (0x1EE7A, "M", "ظ"), + (0x1EE7B, "M", "غ"), + (0x1EE7C, "M", "ٮ"), + (0x1EE7D, "X"), + (0x1EE7E, "M", "ڡ"), + (0x1EE7F, "X"), + (0x1EE80, "M", "ا"), + (0x1EE81, "M", "ب"), + (0x1EE82, "M", "ج"), + (0x1EE83, "M", "د"), + ] + + +def _seg_75() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1EE84, "M", "ه"), + (0x1EE85, "M", "و"), + (0x1EE86, "M", "ز"), + (0x1EE87, "M", "ح"), + (0x1EE88, "M", "ط"), + (0x1EE89, "M", "ي"), + (0x1EE8A, "X"), + (0x1EE8B, "M", "ل"), + (0x1EE8C, "M", "م"), + (0x1EE8D, "M", "ن"), + (0x1EE8E, "M", "س"), + (0x1EE8F, "M", "ع"), + (0x1EE90, "M", "ف"), + (0x1EE91, "M", "ص"), + (0x1EE92, "M", "ق"), + (0x1EE93, "M", "ر"), + (0x1EE94, "M", "ش"), + (0x1EE95, "M", "ت"), + (0x1EE96, "M", "ث"), + (0x1EE97, "M", "خ"), + (0x1EE98, "M", "ذ"), + (0x1EE99, "M", "ض"), + (0x1EE9A, "M", "ظ"), + (0x1EE9B, "M", "غ"), + (0x1EE9C, "X"), + (0x1EEA1, "M", "ب"), + (0x1EEA2, "M", "ج"), + (0x1EEA3, "M", "د"), + (0x1EEA4, "X"), + (0x1EEA5, "M", "و"), + (0x1EEA6, "M", "ز"), + (0x1EEA7, "M", "ح"), + (0x1EEA8, "M", "ط"), + (0x1EEA9, "M", "ي"), + (0x1EEAA, "X"), + (0x1EEAB, "M", "ل"), + (0x1EEAC, "M", "م"), + (0x1EEAD, "M", "ن"), + (0x1EEAE, "M", "س"), + (0x1EEAF, "M", "ع"), + (0x1EEB0, "M", "ف"), + (0x1EEB1, "M", "ص"), + (0x1EEB2, "M", "ق"), + (0x1EEB3, "M", "ر"), + (0x1EEB4, "M", "ش"), + (0x1EEB5, "M", "ت"), + (0x1EEB6, "M", "ث"), + (0x1EEB7, "M", "خ"), + (0x1EEB8, "M", "ذ"), + (0x1EEB9, "M", "ض"), + (0x1EEBA, "M", "ظ"), + (0x1EEBB, "M", "غ"), + (0x1EEBC, "X"), + (0x1EEF0, "V"), + (0x1EEF2, "X"), + (0x1F000, "V"), + (0x1F02C, "X"), + (0x1F030, "V"), + (0x1F094, "X"), + (0x1F0A0, "V"), + (0x1F0AF, "X"), + (0x1F0B1, "V"), + (0x1F0C0, "X"), + (0x1F0C1, "V"), + (0x1F0D0, "X"), + (0x1F0D1, "V"), + (0x1F0F6, "X"), + (0x1F101, "M", "0,"), + (0x1F102, "M", "1,"), + (0x1F103, "M", "2,"), + (0x1F104, "M", "3,"), + (0x1F105, "M", "4,"), + (0x1F106, "M", "5,"), + (0x1F107, "M", "6,"), + (0x1F108, "M", "7,"), + (0x1F109, "M", "8,"), + (0x1F10A, "M", "9,"), + (0x1F10B, "V"), + (0x1F110, "M", "(a)"), + (0x1F111, "M", "(b)"), + (0x1F112, "M", "(c)"), + (0x1F113, "M", "(d)"), + (0x1F114, "M", "(e)"), + (0x1F115, "M", "(f)"), + (0x1F116, "M", "(g)"), + (0x1F117, "M", "(h)"), + (0x1F118, "M", "(i)"), + (0x1F119, "M", "(j)"), + (0x1F11A, "M", "(k)"), + (0x1F11B, "M", "(l)"), + (0x1F11C, "M", "(m)"), + (0x1F11D, "M", "(n)"), + (0x1F11E, "M", "(o)"), + (0x1F11F, "M", "(p)"), + (0x1F120, "M", "(q)"), + (0x1F121, "M", "(r)"), + (0x1F122, "M", "(s)"), + (0x1F123, "M", "(t)"), + (0x1F124, "M", "(u)"), + (0x1F125, "M", "(v)"), + ] + + +def _seg_76() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1F126, "M", "(w)"), + (0x1F127, "M", "(x)"), + (0x1F128, "M", "(y)"), + (0x1F129, "M", "(z)"), + (0x1F12A, "M", "〔s〕"), + (0x1F12B, "M", "c"), + (0x1F12C, "M", "r"), + (0x1F12D, "M", "cd"), + (0x1F12E, "M", "wz"), + (0x1F12F, "V"), + (0x1F130, "M", "a"), + (0x1F131, "M", "b"), + (0x1F132, "M", "c"), + (0x1F133, "M", "d"), + (0x1F134, "M", "e"), + (0x1F135, "M", "f"), + (0x1F136, "M", "g"), + (0x1F137, "M", "h"), + (0x1F138, "M", "i"), + (0x1F139, "M", "j"), + (0x1F13A, "M", "k"), + (0x1F13B, "M", "l"), + (0x1F13C, "M", "m"), + (0x1F13D, "M", "n"), + (0x1F13E, "M", "o"), + (0x1F13F, "M", "p"), + (0x1F140, "M", "q"), + (0x1F141, "M", "r"), + (0x1F142, "M", "s"), + (0x1F143, "M", "t"), + (0x1F144, "M", "u"), + (0x1F145, "M", "v"), + (0x1F146, "M", "w"), + (0x1F147, "M", "x"), + (0x1F148, "M", "y"), + (0x1F149, "M", "z"), + (0x1F14A, "M", "hv"), + (0x1F14B, "M", "mv"), + (0x1F14C, "M", "sd"), + (0x1F14D, "M", "ss"), + (0x1F14E, "M", "ppv"), + (0x1F14F, "M", "wc"), + (0x1F150, "V"), + (0x1F16A, "M", "mc"), + (0x1F16B, "M", "md"), + (0x1F16C, "M", "mr"), + (0x1F16D, "V"), + (0x1F190, "M", "dj"), + (0x1F191, "V"), + (0x1F1AE, "X"), + (0x1F1E6, "V"), + (0x1F200, "M", "ほか"), + (0x1F201, "M", "ココ"), + (0x1F202, "M", "サ"), + (0x1F203, "X"), + (0x1F210, "M", "手"), + (0x1F211, "M", "字"), + (0x1F212, "M", "双"), + (0x1F213, "M", "デ"), + (0x1F214, "M", "二"), + (0x1F215, "M", "多"), + (0x1F216, "M", "解"), + (0x1F217, "M", "天"), + (0x1F218, "M", "交"), + (0x1F219, "M", "映"), + (0x1F21A, "M", "無"), + (0x1F21B, "M", "料"), + (0x1F21C, "M", "前"), + (0x1F21D, "M", "後"), + (0x1F21E, "M", "再"), + (0x1F21F, "M", "新"), + (0x1F220, "M", "初"), + (0x1F221, "M", "終"), + (0x1F222, "M", "生"), + (0x1F223, "M", "販"), + (0x1F224, "M", "声"), + (0x1F225, "M", "吹"), + (0x1F226, "M", "演"), + (0x1F227, "M", "投"), + (0x1F228, "M", "捕"), + (0x1F229, "M", "一"), + (0x1F22A, "M", "三"), + (0x1F22B, "M", "遊"), + (0x1F22C, "M", "左"), + (0x1F22D, "M", "中"), + (0x1F22E, "M", "右"), + (0x1F22F, "M", "指"), + (0x1F230, "M", "走"), + (0x1F231, "M", "打"), + (0x1F232, "M", "禁"), + (0x1F233, "M", "空"), + (0x1F234, "M", "合"), + (0x1F235, "M", "満"), + (0x1F236, "M", "有"), + (0x1F237, "M", "月"), + (0x1F238, "M", "申"), + (0x1F239, "M", "割"), + (0x1F23A, "M", "営"), + (0x1F23B, "M", "配"), + (0x1F23C, "X"), + ] + + +def _seg_77() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1F240, "M", "〔本〕"), + (0x1F241, "M", "〔三〕"), + (0x1F242, "M", "〔二〕"), + (0x1F243, "M", "〔安〕"), + (0x1F244, "M", "〔点〕"), + (0x1F245, "M", "〔打〕"), + (0x1F246, "M", "〔盗〕"), + (0x1F247, "M", "〔勝〕"), + (0x1F248, "M", "〔敗〕"), + (0x1F249, "X"), + (0x1F250, "M", "得"), + (0x1F251, "M", "可"), + (0x1F252, "X"), + (0x1F260, "V"), + (0x1F266, "X"), + (0x1F300, "V"), + (0x1F6D8, "X"), + (0x1F6DC, "V"), + (0x1F6ED, "X"), + (0x1F6F0, "V"), + (0x1F6FD, "X"), + (0x1F700, "V"), + (0x1F777, "X"), + (0x1F77B, "V"), + (0x1F7DA, "X"), + (0x1F7E0, "V"), + (0x1F7EC, "X"), + (0x1F7F0, "V"), + (0x1F7F1, "X"), + (0x1F800, "V"), + (0x1F80C, "X"), + (0x1F810, "V"), + (0x1F848, "X"), + (0x1F850, "V"), + (0x1F85A, "X"), + (0x1F860, "V"), + (0x1F888, "X"), + (0x1F890, "V"), + (0x1F8AE, "X"), + (0x1F8B0, "V"), + (0x1F8BC, "X"), + (0x1F8C0, "V"), + (0x1F8C2, "X"), + (0x1F900, "V"), + (0x1FA54, "X"), + (0x1FA60, "V"), + (0x1FA6E, "X"), + (0x1FA70, "V"), + (0x1FA7D, "X"), + (0x1FA80, "V"), + (0x1FA8A, "X"), + (0x1FA8F, "V"), + (0x1FAC7, "X"), + (0x1FACE, "V"), + (0x1FADD, "X"), + (0x1FADF, "V"), + (0x1FAEA, "X"), + (0x1FAF0, "V"), + (0x1FAF9, "X"), + (0x1FB00, "V"), + (0x1FB93, "X"), + (0x1FB94, "V"), + (0x1FBF0, "M", "0"), + (0x1FBF1, "M", "1"), + (0x1FBF2, "M", "2"), + (0x1FBF3, "M", "3"), + (0x1FBF4, "M", "4"), + (0x1FBF5, "M", "5"), + (0x1FBF6, "M", "6"), + (0x1FBF7, "M", "7"), + (0x1FBF8, "M", "8"), + (0x1FBF9, "M", "9"), + (0x1FBFA, "X"), + (0x20000, "V"), + (0x2A6E0, "X"), + (0x2A700, "V"), + (0x2B73A, "X"), + (0x2B740, "V"), + (0x2B81E, "X"), + (0x2B820, "V"), + (0x2CEA2, "X"), + (0x2CEB0, "V"), + (0x2EBE1, "X"), + (0x2EBF0, "V"), + (0x2EE5E, "X"), + (0x2F800, "M", "丽"), + (0x2F801, "M", "丸"), + (0x2F802, "M", "乁"), + (0x2F803, "M", "𠄢"), + (0x2F804, "M", "你"), + (0x2F805, "M", "侮"), + (0x2F806, "M", "侻"), + (0x2F807, "M", "倂"), + (0x2F808, "M", "偺"), + (0x2F809, "M", "備"), + (0x2F80A, "M", "僧"), + (0x2F80B, "M", "像"), + (0x2F80C, "M", "㒞"), + (0x2F80D, "M", "𠘺"), + (0x2F80E, "M", "免"), + ] + + +def _seg_78() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F80F, "M", "兔"), + (0x2F810, "M", "兤"), + (0x2F811, "M", "具"), + (0x2F812, "M", "𠔜"), + (0x2F813, "M", "㒹"), + (0x2F814, "M", "內"), + (0x2F815, "M", "再"), + (0x2F816, "M", "𠕋"), + (0x2F817, "M", "冗"), + (0x2F818, "M", "冤"), + (0x2F819, "M", "仌"), + (0x2F81A, "M", "冬"), + (0x2F81B, "M", "况"), + (0x2F81C, "M", "𩇟"), + (0x2F81D, "M", "凵"), + (0x2F81E, "M", "刃"), + (0x2F81F, "M", "㓟"), + (0x2F820, "M", "刻"), + (0x2F821, "M", "剆"), + (0x2F822, "M", "割"), + (0x2F823, "M", "剷"), + (0x2F824, "M", "㔕"), + (0x2F825, "M", "勇"), + (0x2F826, "M", "勉"), + (0x2F827, "M", "勤"), + (0x2F828, "M", "勺"), + (0x2F829, "M", "包"), + (0x2F82A, "M", "匆"), + (0x2F82B, "M", "北"), + (0x2F82C, "M", "卉"), + (0x2F82D, "M", "卑"), + (0x2F82E, "M", "博"), + (0x2F82F, "M", "即"), + (0x2F830, "M", "卽"), + (0x2F831, "M", "卿"), + (0x2F834, "M", "𠨬"), + (0x2F835, "M", "灰"), + (0x2F836, "M", "及"), + (0x2F837, "M", "叟"), + (0x2F838, "M", "𠭣"), + (0x2F839, "M", "叫"), + (0x2F83A, "M", "叱"), + (0x2F83B, "M", "吆"), + (0x2F83C, "M", "咞"), + (0x2F83D, "M", "吸"), + (0x2F83E, "M", "呈"), + (0x2F83F, "M", "周"), + (0x2F840, "M", "咢"), + (0x2F841, "M", "哶"), + (0x2F842, "M", "唐"), + (0x2F843, "M", "啓"), + (0x2F844, "M", "啣"), + (0x2F845, "M", "善"), + (0x2F847, "M", "喙"), + (0x2F848, "M", "喫"), + (0x2F849, "M", "喳"), + (0x2F84A, "M", "嗂"), + (0x2F84B, "M", "圖"), + (0x2F84C, "M", "嘆"), + (0x2F84D, "M", "圗"), + (0x2F84E, "M", "噑"), + (0x2F84F, "M", "噴"), + (0x2F850, "M", "切"), + (0x2F851, "M", "壮"), + (0x2F852, "M", "城"), + (0x2F853, "M", "埴"), + (0x2F854, "M", "堍"), + (0x2F855, "M", "型"), + (0x2F856, "M", "堲"), + (0x2F857, "M", "報"), + (0x2F858, "M", "墬"), + (0x2F859, "M", "𡓤"), + (0x2F85A, "M", "売"), + (0x2F85B, "M", "壷"), + (0x2F85C, "M", "夆"), + (0x2F85D, "M", "多"), + (0x2F85E, "M", "夢"), + (0x2F85F, "M", "奢"), + (0x2F860, "M", "𡚨"), + (0x2F861, "M", "𡛪"), + (0x2F862, "M", "姬"), + (0x2F863, "M", "娛"), + (0x2F864, "M", "娧"), + (0x2F865, "M", "姘"), + (0x2F866, "M", "婦"), + (0x2F867, "M", "㛮"), + (0x2F868, "M", "㛼"), + (0x2F869, "M", "嬈"), + (0x2F86A, "M", "嬾"), + (0x2F86C, "M", "𡧈"), + (0x2F86D, "M", "寃"), + (0x2F86E, "M", "寘"), + (0x2F86F, "M", "寧"), + (0x2F870, "M", "寳"), + (0x2F871, "M", "𡬘"), + (0x2F872, "M", "寿"), + (0x2F873, "M", "将"), + (0x2F874, "M", "当"), + (0x2F875, "M", "尢"), + (0x2F876, "M", "㞁"), + ] + + +def _seg_79() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F877, "M", "屠"), + (0x2F878, "M", "屮"), + (0x2F879, "M", "峀"), + (0x2F87A, "M", "岍"), + (0x2F87B, "M", "𡷤"), + (0x2F87C, "M", "嵃"), + (0x2F87D, "M", "𡷦"), + (0x2F87E, "M", "嵮"), + (0x2F87F, "M", "嵫"), + (0x2F880, "M", "嵼"), + (0x2F881, "M", "巡"), + (0x2F882, "M", "巢"), + (0x2F883, "M", "㠯"), + (0x2F884, "M", "巽"), + (0x2F885, "M", "帨"), + (0x2F886, "M", "帽"), + (0x2F887, "M", "幩"), + (0x2F888, "M", "㡢"), + (0x2F889, "M", "𢆃"), + (0x2F88A, "M", "㡼"), + (0x2F88B, "M", "庰"), + (0x2F88C, "M", "庳"), + (0x2F88D, "M", "庶"), + (0x2F88E, "M", "廊"), + (0x2F88F, "M", "𪎒"), + (0x2F890, "M", "廾"), + (0x2F891, "M", "𢌱"), + (0x2F893, "M", "舁"), + (0x2F894, "M", "弢"), + (0x2F896, "M", "㣇"), + (0x2F897, "M", "𣊸"), + (0x2F898, "M", "𦇚"), + (0x2F899, "M", "形"), + (0x2F89A, "M", "彫"), + (0x2F89B, "M", "㣣"), + (0x2F89C, "M", "徚"), + (0x2F89D, "M", "忍"), + (0x2F89E, "M", "志"), + (0x2F89F, "M", "忹"), + (0x2F8A0, "M", "悁"), + (0x2F8A1, "M", "㤺"), + (0x2F8A2, "M", "㤜"), + (0x2F8A3, "M", "悔"), + (0x2F8A4, "M", "𢛔"), + (0x2F8A5, "M", "惇"), + (0x2F8A6, "M", "慈"), + (0x2F8A7, "M", "慌"), + (0x2F8A8, "M", "慎"), + (0x2F8A9, "M", "慌"), + (0x2F8AA, "M", "慺"), + (0x2F8AB, "M", "憎"), + (0x2F8AC, "M", "憲"), + (0x2F8AD, "M", "憤"), + (0x2F8AE, "M", "憯"), + (0x2F8AF, "M", "懞"), + (0x2F8B0, "M", "懲"), + (0x2F8B1, "M", "懶"), + (0x2F8B2, "M", "成"), + (0x2F8B3, "M", "戛"), + (0x2F8B4, "M", "扝"), + (0x2F8B5, "M", "抱"), + (0x2F8B6, "M", "拔"), + (0x2F8B7, "M", "捐"), + (0x2F8B8, "M", "𢬌"), + (0x2F8B9, "M", "挽"), + (0x2F8BA, "M", "拼"), + (0x2F8BB, "M", "捨"), + (0x2F8BC, "M", "掃"), + (0x2F8BD, "M", "揤"), + (0x2F8BE, "M", "𢯱"), + (0x2F8BF, "M", "搢"), + (0x2F8C0, "M", "揅"), + (0x2F8C1, "M", "掩"), + (0x2F8C2, "M", "㨮"), + (0x2F8C3, "M", "摩"), + (0x2F8C4, "M", "摾"), + (0x2F8C5, "M", "撝"), + (0x2F8C6, "M", "摷"), + (0x2F8C7, "M", "㩬"), + (0x2F8C8, "M", "敏"), + (0x2F8C9, "M", "敬"), + (0x2F8CA, "M", "𣀊"), + (0x2F8CB, "M", "旣"), + (0x2F8CC, "M", "書"), + (0x2F8CD, "M", "晉"), + (0x2F8CE, "M", "㬙"), + (0x2F8CF, "M", "暑"), + (0x2F8D0, "M", "㬈"), + (0x2F8D1, "M", "㫤"), + (0x2F8D2, "M", "冒"), + (0x2F8D3, "M", "冕"), + (0x2F8D4, "M", "最"), + (0x2F8D5, "M", "暜"), + (0x2F8D6, "M", "肭"), + (0x2F8D7, "M", "䏙"), + (0x2F8D8, "M", "朗"), + (0x2F8D9, "M", "望"), + (0x2F8DA, "M", "朡"), + (0x2F8DB, "M", "杞"), + (0x2F8DC, "M", "杓"), + ] + + +def _seg_80() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F8DD, "M", "𣏃"), + (0x2F8DE, "M", "㭉"), + (0x2F8DF, "M", "柺"), + (0x2F8E0, "M", "枅"), + (0x2F8E1, "M", "桒"), + (0x2F8E2, "M", "梅"), + (0x2F8E3, "M", "𣑭"), + (0x2F8E4, "M", "梎"), + (0x2F8E5, "M", "栟"), + (0x2F8E6, "M", "椔"), + (0x2F8E7, "M", "㮝"), + (0x2F8E8, "M", "楂"), + (0x2F8E9, "M", "榣"), + (0x2F8EA, "M", "槪"), + (0x2F8EB, "M", "檨"), + (0x2F8EC, "M", "𣚣"), + (0x2F8ED, "M", "櫛"), + (0x2F8EE, "M", "㰘"), + (0x2F8EF, "M", "次"), + (0x2F8F0, "M", "𣢧"), + (0x2F8F1, "M", "歔"), + (0x2F8F2, "M", "㱎"), + (0x2F8F3, "M", "歲"), + (0x2F8F4, "M", "殟"), + (0x2F8F5, "M", "殺"), + (0x2F8F6, "M", "殻"), + (0x2F8F7, "M", "𣪍"), + (0x2F8F8, "M", "𡴋"), + (0x2F8F9, "M", "𣫺"), + (0x2F8FA, "M", "汎"), + (0x2F8FB, "M", "𣲼"), + (0x2F8FC, "M", "沿"), + (0x2F8FD, "M", "泍"), + (0x2F8FE, "M", "汧"), + (0x2F8FF, "M", "洖"), + (0x2F900, "M", "派"), + (0x2F901, "M", "海"), + (0x2F902, "M", "流"), + (0x2F903, "M", "浩"), + (0x2F904, "M", "浸"), + (0x2F905, "M", "涅"), + (0x2F906, "M", "𣴞"), + (0x2F907, "M", "洴"), + (0x2F908, "M", "港"), + (0x2F909, "M", "湮"), + (0x2F90A, "M", "㴳"), + (0x2F90B, "M", "滋"), + (0x2F90C, "M", "滇"), + (0x2F90D, "M", "𣻑"), + (0x2F90E, "M", "淹"), + (0x2F90F, "M", "潮"), + (0x2F910, "M", "𣽞"), + (0x2F911, "M", "𣾎"), + (0x2F912, "M", "濆"), + (0x2F913, "M", "瀹"), + (0x2F914, "M", "瀞"), + (0x2F915, "M", "瀛"), + (0x2F916, "M", "㶖"), + (0x2F917, "M", "灊"), + (0x2F918, "M", "災"), + (0x2F919, "M", "灷"), + (0x2F91A, "M", "炭"), + (0x2F91B, "M", "𠔥"), + (0x2F91C, "M", "煅"), + (0x2F91D, "M", "𤉣"), + (0x2F91E, "M", "熜"), + (0x2F91F, "M", "𤎫"), + (0x2F920, "M", "爨"), + (0x2F921, "M", "爵"), + (0x2F922, "M", "牐"), + (0x2F923, "M", "𤘈"), + (0x2F924, "M", "犀"), + (0x2F925, "M", "犕"), + (0x2F926, "M", "𤜵"), + (0x2F927, "M", "𤠔"), + (0x2F928, "M", "獺"), + (0x2F929, "M", "王"), + (0x2F92A, "M", "㺬"), + (0x2F92B, "M", "玥"), + (0x2F92C, "M", "㺸"), + (0x2F92E, "M", "瑇"), + (0x2F92F, "M", "瑜"), + (0x2F930, "M", "瑱"), + (0x2F931, "M", "璅"), + (0x2F932, "M", "瓊"), + (0x2F933, "M", "㼛"), + (0x2F934, "M", "甤"), + (0x2F935, "M", "𤰶"), + (0x2F936, "M", "甾"), + (0x2F937, "M", "𤲒"), + (0x2F938, "M", "異"), + (0x2F939, "M", "𢆟"), + (0x2F93A, "M", "瘐"), + (0x2F93B, "M", "𤾡"), + (0x2F93C, "M", "𤾸"), + (0x2F93D, "M", "𥁄"), + (0x2F93E, "M", "㿼"), + (0x2F93F, "M", "䀈"), + (0x2F940, "M", "直"), + (0x2F941, "M", "𥃳"), + ] + + +def _seg_81() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F942, "M", "𥃲"), + (0x2F943, "M", "𥄙"), + (0x2F944, "M", "𥄳"), + (0x2F945, "M", "眞"), + (0x2F946, "M", "真"), + (0x2F948, "M", "睊"), + (0x2F949, "M", "䀹"), + (0x2F94A, "M", "瞋"), + (0x2F94B, "M", "䁆"), + (0x2F94C, "M", "䂖"), + (0x2F94D, "M", "𥐝"), + (0x2F94E, "M", "硎"), + (0x2F94F, "M", "碌"), + (0x2F950, "M", "磌"), + (0x2F951, "M", "䃣"), + (0x2F952, "M", "𥘦"), + (0x2F953, "M", "祖"), + (0x2F954, "M", "𥚚"), + (0x2F955, "M", "𥛅"), + (0x2F956, "M", "福"), + (0x2F957, "M", "秫"), + (0x2F958, "M", "䄯"), + (0x2F959, "M", "穀"), + (0x2F95A, "M", "穊"), + (0x2F95B, "M", "穏"), + (0x2F95C, "M", "𥥼"), + (0x2F95D, "M", "𥪧"), + (0x2F95F, "M", "竮"), + (0x2F960, "M", "䈂"), + (0x2F961, "M", "𥮫"), + (0x2F962, "M", "篆"), + (0x2F963, "M", "築"), + (0x2F964, "M", "䈧"), + (0x2F965, "M", "𥲀"), + (0x2F966, "M", "糒"), + (0x2F967, "M", "䊠"), + (0x2F968, "M", "糨"), + (0x2F969, "M", "糣"), + (0x2F96A, "M", "紀"), + (0x2F96B, "M", "𥾆"), + (0x2F96C, "M", "絣"), + (0x2F96D, "M", "䌁"), + (0x2F96E, "M", "緇"), + (0x2F96F, "M", "縂"), + (0x2F970, "M", "繅"), + (0x2F971, "M", "䌴"), + (0x2F972, "M", "𦈨"), + (0x2F973, "M", "𦉇"), + (0x2F974, "M", "䍙"), + (0x2F975, "M", "𦋙"), + (0x2F976, "M", "罺"), + (0x2F977, "M", "𦌾"), + (0x2F978, "M", "羕"), + (0x2F979, "M", "翺"), + (0x2F97A, "M", "者"), + (0x2F97B, "M", "𦓚"), + (0x2F97C, "M", "𦔣"), + (0x2F97D, "M", "聠"), + (0x2F97E, "M", "𦖨"), + (0x2F97F, "M", "聰"), + (0x2F980, "M", "𣍟"), + (0x2F981, "M", "䏕"), + (0x2F982, "M", "育"), + (0x2F983, "M", "脃"), + (0x2F984, "M", "䐋"), + (0x2F985, "M", "脾"), + (0x2F986, "M", "媵"), + (0x2F987, "M", "𦞧"), + (0x2F988, "M", "𦞵"), + (0x2F989, "M", "𣎓"), + (0x2F98A, "M", "𣎜"), + (0x2F98B, "M", "舁"), + (0x2F98C, "M", "舄"), + (0x2F98D, "M", "辞"), + (0x2F98E, "M", "䑫"), + (0x2F98F, "M", "芑"), + (0x2F990, "M", "芋"), + (0x2F991, "M", "芝"), + (0x2F992, "M", "劳"), + (0x2F993, "M", "花"), + (0x2F994, "M", "芳"), + (0x2F995, "M", "芽"), + (0x2F996, "M", "苦"), + (0x2F997, "M", "𦬼"), + (0x2F998, "M", "若"), + (0x2F999, "M", "茝"), + (0x2F99A, "M", "荣"), + (0x2F99B, "M", "莭"), + (0x2F99C, "M", "茣"), + (0x2F99D, "M", "莽"), + (0x2F99E, "M", "菧"), + (0x2F99F, "M", "著"), + (0x2F9A0, "M", "荓"), + (0x2F9A1, "M", "菊"), + (0x2F9A2, "M", "菌"), + (0x2F9A3, "M", "菜"), + (0x2F9A4, "M", "𦰶"), + (0x2F9A5, "M", "𦵫"), + (0x2F9A6, "M", "𦳕"), + (0x2F9A7, "M", "䔫"), + ] + + +def _seg_82() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F9A8, "M", "蓱"), + (0x2F9A9, "M", "蓳"), + (0x2F9AA, "M", "蔖"), + (0x2F9AB, "M", "𧏊"), + (0x2F9AC, "M", "蕤"), + (0x2F9AD, "M", "𦼬"), + (0x2F9AE, "M", "䕝"), + (0x2F9AF, "M", "䕡"), + (0x2F9B0, "M", "𦾱"), + (0x2F9B1, "M", "𧃒"), + (0x2F9B2, "M", "䕫"), + (0x2F9B3, "M", "虐"), + (0x2F9B4, "M", "虜"), + (0x2F9B5, "M", "虧"), + (0x2F9B6, "M", "虩"), + (0x2F9B7, "M", "蚩"), + (0x2F9B8, "M", "蚈"), + (0x2F9B9, "M", "蜎"), + (0x2F9BA, "M", "蛢"), + (0x2F9BB, "M", "蝹"), + (0x2F9BC, "M", "蜨"), + (0x2F9BD, "M", "蝫"), + (0x2F9BE, "M", "螆"), + (0x2F9BF, "M", "䗗"), + (0x2F9C0, "M", "蟡"), + (0x2F9C1, "M", "蠁"), + (0x2F9C2, "M", "䗹"), + (0x2F9C3, "M", "衠"), + (0x2F9C4, "M", "衣"), + (0x2F9C5, "M", "𧙧"), + (0x2F9C6, "M", "裗"), + (0x2F9C7, "M", "裞"), + (0x2F9C8, "M", "䘵"), + (0x2F9C9, "M", "裺"), + (0x2F9CA, "M", "㒻"), + (0x2F9CB, "M", "𧢮"), + (0x2F9CC, "M", "𧥦"), + (0x2F9CD, "M", "䚾"), + (0x2F9CE, "M", "䛇"), + (0x2F9CF, "M", "誠"), + (0x2F9D0, "M", "諭"), + (0x2F9D1, "M", "變"), + (0x2F9D2, "M", "豕"), + (0x2F9D3, "M", "𧲨"), + (0x2F9D4, "M", "貫"), + (0x2F9D5, "M", "賁"), + (0x2F9D6, "M", "贛"), + (0x2F9D7, "M", "起"), + (0x2F9D8, "M", "𧼯"), + (0x2F9D9, "M", "𠠄"), + (0x2F9DA, "M", "跋"), + (0x2F9DB, "M", "趼"), + (0x2F9DC, "M", "跰"), + (0x2F9DD, "M", "𠣞"), + (0x2F9DE, "M", "軔"), + (0x2F9DF, "M", "輸"), + (0x2F9E0, "M", "𨗒"), + (0x2F9E1, "M", "𨗭"), + (0x2F9E2, "M", "邔"), + (0x2F9E3, "M", "郱"), + (0x2F9E4, "M", "鄑"), + (0x2F9E5, "M", "𨜮"), + (0x2F9E6, "M", "鄛"), + (0x2F9E7, "M", "鈸"), + (0x2F9E8, "M", "鋗"), + (0x2F9E9, "M", "鋘"), + (0x2F9EA, "M", "鉼"), + (0x2F9EB, "M", "鏹"), + (0x2F9EC, "M", "鐕"), + (0x2F9ED, "M", "𨯺"), + (0x2F9EE, "M", "開"), + (0x2F9EF, "M", "䦕"), + (0x2F9F0, "M", "閷"), + (0x2F9F1, "M", "𨵷"), + (0x2F9F2, "M", "䧦"), + (0x2F9F3, "M", "雃"), + (0x2F9F4, "M", "嶲"), + (0x2F9F5, "M", "霣"), + (0x2F9F6, "M", "𩅅"), + (0x2F9F7, "M", "𩈚"), + (0x2F9F8, "M", "䩮"), + (0x2F9F9, "M", "䩶"), + (0x2F9FA, "M", "韠"), + (0x2F9FB, "M", "𩐊"), + (0x2F9FC, "M", "䪲"), + (0x2F9FD, "M", "𩒖"), + (0x2F9FE, "M", "頋"), + (0x2FA00, "M", "頩"), + (0x2FA01, "M", "𩖶"), + (0x2FA02, "M", "飢"), + (0x2FA03, "M", "䬳"), + (0x2FA04, "M", "餩"), + (0x2FA05, "M", "馧"), + (0x2FA06, "M", "駂"), + (0x2FA07, "M", "駾"), + (0x2FA08, "M", "䯎"), + (0x2FA09, "M", "𩬰"), + (0x2FA0A, "M", "鬒"), + (0x2FA0B, "M", "鱀"), + (0x2FA0C, "M", "鳽"), + ] + + +def _seg_83() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2FA0D, "M", "䳎"), + (0x2FA0E, "M", "䳭"), + (0x2FA0F, "M", "鵧"), + (0x2FA10, "M", "𪃎"), + (0x2FA11, "M", "䳸"), + (0x2FA12, "M", "𪄅"), + (0x2FA13, "M", "𪈎"), + (0x2FA14, "M", "𪊑"), + (0x2FA15, "M", "麻"), + (0x2FA16, "M", "䵖"), + (0x2FA17, "M", "黹"), + (0x2FA18, "M", "黾"), + (0x2FA19, "M", "鼅"), + (0x2FA1A, "M", "鼏"), + (0x2FA1B, "M", "鼖"), + (0x2FA1C, "M", "鼻"), + (0x2FA1D, "M", "𪘀"), + (0x2FA1E, "X"), + (0x30000, "V"), + (0x3134B, "X"), + (0x31350, "V"), + (0x323B0, "X"), + (0xE0100, "I"), + (0xE01F0, "X"), + ] + + +uts46data = tuple( + _seg_0() + + _seg_1() + + _seg_2() + + _seg_3() + + _seg_4() + + _seg_5() + + _seg_6() + + _seg_7() + + _seg_8() + + _seg_9() + + _seg_10() + + _seg_11() + + _seg_12() + + _seg_13() + + _seg_14() + + _seg_15() + + _seg_16() + + _seg_17() + + _seg_18() + + _seg_19() + + _seg_20() + + _seg_21() + + _seg_22() + + _seg_23() + + _seg_24() + + _seg_25() + + _seg_26() + + _seg_27() + + _seg_28() + + _seg_29() + + _seg_30() + + _seg_31() + + _seg_32() + + _seg_33() + + _seg_34() + + _seg_35() + + _seg_36() + + _seg_37() + + _seg_38() + + _seg_39() + + _seg_40() + + _seg_41() + + _seg_42() + + _seg_43() + + _seg_44() + + _seg_45() + + _seg_46() + + _seg_47() + + _seg_48() + + _seg_49() + + _seg_50() + + _seg_51() + + _seg_52() + + _seg_53() + + _seg_54() + + _seg_55() + + _seg_56() + + _seg_57() + + _seg_58() + + _seg_59() + + _seg_60() + + _seg_61() + + _seg_62() + + _seg_63() + + _seg_64() + + _seg_65() + + _seg_66() + + _seg_67() + + _seg_68() + + _seg_69() + + _seg_70() + + _seg_71() + + _seg_72() + + _seg_73() + + _seg_74() + + _seg_75() + + _seg_76() + + _seg_77() + + _seg_78() + + _seg_79() + + _seg_80() + + _seg_81() + + _seg_82() + + _seg_83() +) # type: Tuple[Union[Tuple[int, str], Tuple[int, str, str]], ...] diff --git a/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/METADATA b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/METADATA new file mode 100644 index 0000000..11ba9ff --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/METADATA @@ -0,0 +1,40 @@ +Metadata-Version: 2.1 +Name: ilorest +Version: 7.0.0.0 +Summary: HPE iLORest Tool +Home-page: https://github.com/HewlettPackard/python-redfish-utility +Author: Hewlett Packard Enterprise +Author-email: rajeevalochana.kallur@hpe.com +Keywords: Hewlett Packard Enterprise +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Topic :: Communications +Requires-Dist: urllib3 >=1.26.2 +Requires-Dist: pyaes >=1.6.1 +Requires-Dist: colorama >=0.4.4 +Requires-Dist: jsonpointer >=2.0 +Requires-Dist: six >=1.15.0 +Requires-Dist: ply +Requires-Dist: requests +Requires-Dist: decorator >=4.4.2 +Requires-Dist: jsonpatch >=1.28 +Requires-Dist: jsonpath-rw >=1.4.0 +Requires-Dist: jsondiff >=1.2.0 +Requires-Dist: tabulate >=0.8.7 +Requires-Dist: prompt-toolkit +Requires-Dist: certifi >=2020.12.5 +Requires-Dist: wcwidth >=0.2.5 +Requires-Dist: pyudev +Requires-Dist: future +Requires-Dist: python-ilorest-library >=7.0.0.0 +Requires-Dist: setproctitle >=1.1.8 ; platform_system == "Linux" +Requires-Dist: pywin32 ; platform_system == "Windows" +Requires-Dist: enum ; python_version <= "2.7.19" +Requires-Dist: futures ; python_version <= "2.7.19" + diff --git a/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/RECORD b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/RECORD new file mode 100644 index 0000000..bb49051 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/RECORD @@ -0,0 +1,326 @@ +../../../bin/ilorest,sha256=PLP7vUiznKIPPNKauuYE1AkTyXlCYO0Ko25uS3mQ238,264 +../../../logging_config.json,sha256=H_vbfeKiyQPNLkCJ_p1iAcvfV_QlUWcq1qJqs2p-_EE,1171 +ilorest-7.0.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +ilorest-7.0.0.0.dist-info/METADATA,sha256=s851iAC0ePMC6Ns0aK9K6EB57roYOVmwGTzk5BWzPIM,1531 +ilorest-7.0.0.0.dist-info/RECORD,, +ilorest-7.0.0.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest-7.0.0.0.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110 +ilorest-7.0.0.0.dist-info/entry_points.txt,sha256=hZK831ZpPnfSjuVPord6I0D4r2NEzv0XO7AFKKd9UqU,56 +ilorest-7.0.0.0.dist-info/top_level.txt,sha256=PBm3JtzoqCberFEbu0RbzOYwiAVP05Exdx9afhHPAfg,14 +ilorest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/__pycache__/__init__.cpython-310.pyc,, +ilorest/__pycache__/cliutils.cpython-310.pyc,, +ilorest/__pycache__/debug_utils.cpython-310.pyc,, +ilorest/__pycache__/logging_config_path.cpython-310.pyc,, +ilorest/__pycache__/rdmc.cpython-310.pyc,, +ilorest/__pycache__/rdmc_base_classes.cpython-310.pyc,, +ilorest/__pycache__/rdmc_helper.cpython-310.pyc,, +ilorest/__pycache__/security_masking.cpython-310.pyc,, +ilorest/__pycache__/versioning.cpython-310.pyc,, +ilorest/chiflibrary/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/chiflibrary/__pycache__/__init__.cpython-310.pyc,, +ilorest/chiflibrary/arm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/chiflibrary/arm/__pycache__/__init__.cpython-310.pyc,, +ilorest/chiflibrary/arm/ilorest_chif.so,sha256=6kW4rWEmFWELZOkb30ezYXbBPMxZCjqPGo9CdbGRU28,9423008 +ilorest/chiflibrary/ilorest_chif.dll,sha256=1PLq8d7u7on53n8FcLXDFu_rLYI5-XQtkB3AiMQAdUI,3580048 +ilorest/chiflibrary/ilorest_chif.so,sha256=TnyuB9O791U3Pa485Hm4Zn_yEDvRxfMzyLLhktyCz0o,9918784 +ilorest/cliutils.py,sha256=Rgcu2Iqu-PK3bSDpQgkisDnFIMsPGjuyw7y7aARFhkg,6837 +ilorest/config/__init__.py,sha256=RWSNi8PsptVoQ4E3CvFKPU0RBQ7gSRjKu1QsDG9U97Q,30 +ilorest/config/__pycache__/__init__.cpython-310.pyc,, +ilorest/config/__pycache__/config.cpython-310.pyc,, +ilorest/config/__pycache__/rdmc_config.cpython-310.pyc,, +ilorest/config/config.py,sha256=917hDTAOLONGV6iQtMG54kuZFhUs2fzIqNtiUDGwboA,4603 +ilorest/config/rdmc_config.py,sha256=BWGp0GJulWPLkl81DPOW6utF5M4zexCIF9wZ5E3VF1w,8356 +ilorest/debug_utils.py,sha256=9RRfnfqpcWUyFbuy5EEabmkWpkzLkZdgdEnLbirvOlw,15914 +ilorest/extensions/BIOS_COMMANDS/BiosDefaultsCommand.py,sha256=svj96UdwlANpHRDJVtBxwLbejRNSfpQg7Vr56FKM73Q,5944 +ilorest/extensions/BIOS_COMMANDS/BootOrderCommand.py,sha256=Of_PGsNUqE8y9UziGNBV4zEzJKwaQ27pHeE20wgOKiQ,30819 +ilorest/extensions/BIOS_COMMANDS/IscsiConfigCommand.py,sha256=UGQew-apGEFxVzoTo-X9SmfQ2TX2GOymzr5CRNy8ZqM,41079 +ilorest/extensions/BIOS_COMMANDS/SetPasswordCommand.py,sha256=rmVGOfuCo1w6is2ZmUEPySlW02eSFiJWYt4IuhYKJcg,8101 +ilorest/extensions/BIOS_COMMANDS/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/extensions/BIOS_COMMANDS/__pycache__/BiosDefaultsCommand.cpython-310.pyc,, +ilorest/extensions/BIOS_COMMANDS/__pycache__/BootOrderCommand.cpython-310.pyc,, +ilorest/extensions/BIOS_COMMANDS/__pycache__/IscsiConfigCommand.cpython-310.pyc,, +ilorest/extensions/BIOS_COMMANDS/__pycache__/SetPasswordCommand.cpython-310.pyc,, +ilorest/extensions/BIOS_COMMANDS/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/COMMANDS/CommitCommand.py,sha256=J0TGidmyDr6CfAWQ45Py5MgkSdyupPU4sfA47ifvlEs,4710 +ilorest/extensions/COMMANDS/DetectiLOCommand.py,sha256=5-qSebt-yqXrQsdyiEZpQp8qt87ke67qJlNRmmh3hYc,7944 +ilorest/extensions/COMMANDS/GetCommand.py,sha256=_Krup0OgHyera46nT7VmS1ndSBvwYnL79d4Eh46Z6yU,21015 +ilorest/extensions/COMMANDS/InfoCommand.py,sha256=ooEooTW1r8gs3ZMIfsZaqdTxmQOlx-ib3JcoE0csdts,6614 +ilorest/extensions/COMMANDS/ListCommand.py,sha256=6d7PMUkQgJTfzf9Pir14KKN0_k0ZvAHeUm_VS1-czBo,6696 +ilorest/extensions/COMMANDS/LoadCommand.py,sha256=hPIA8uZfiDmhwbICM6TAmnqfkWnK25F-e2Fmb7AOugo,20867 +ilorest/extensions/COMMANDS/LoginCommand.py,sha256=5FfXEnCxEzFo7mon-zfoVYPfk8VYo_HggE-6HUDk40g,23852 +ilorest/extensions/COMMANDS/LogoutCommand.py,sha256=ugSDQ82L2iYkHg2HotER3Bib2y19rmuRiDdZIhjIHi8,2486 +ilorest/extensions/COMMANDS/PendingChangesCommand.py,sha256=3vEasrpdHLpMulMd2JPX1bH5A8gjas5m4aInySEMKdE,7116 +ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/ExitCommand.py,sha256=La8VTu8qqmHflAn5cHik5KTffXphTFOW0N2Hju79cVg,2635 +ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/HelpCommand.py,sha256=QHH9qF8KCPDdQu1Ed-FmXn06TL5Vvug2Nwqc-FPySyo,4037 +ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/__pycache__/ExitCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/__pycache__/HelpCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/COMMANDS/ResultsCommand.py,sha256=BrVezaY0o0WtS490gLUZWKENa0UCAA1oK8l5D3zBxUk,5809 +ilorest/extensions/COMMANDS/SaveCommand.py,sha256=kYNkxqQ6bj1I0gg62S-ACCBlldbkLdXQdqaQJaUUUQI,16873 +ilorest/extensions/COMMANDS/SelectCommand.py,sha256=6E_x97WCMELf8Xp9vLWMELtSLtPDG927J_CUOD72wGE,5069 +ilorest/extensions/COMMANDS/SetCommand.py,sha256=7DlOvsdgIqr0LMfkClyZHxnv5GyCzJ-b49BqGU1-rAs,20664 +ilorest/extensions/COMMANDS/StatusCommand.py,sha256=o1R48UQDtyAMlbwR8tEwadk8FT9w_ToqIo9VWHsNc7g,8037 +ilorest/extensions/COMMANDS/TypesCommand.py,sha256=-uG2n1vUJLGJv30-LkjHxUaULY_eiRkWkj-pnL739Tg,3883 +ilorest/extensions/COMMANDS/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/extensions/COMMANDS/__pycache__/CommitCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/DetectiLOCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/GetCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/InfoCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/ListCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/LoadCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/LoginCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/LogoutCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/PendingChangesCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/ResultsCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/SaveCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/SelectCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/SetCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/StatusCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/TypesCommand.cpython-310.pyc,, +ilorest/extensions/COMMANDS/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/AdvancedPmmConfigCommand.py,sha256=_MbN5SP1ehHzFWUjVy24UgO22hStFVht2w8eoKHGtNY,18808 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ApplyPmemConfigCommand.py,sha256=gmQyD-z60tPvFsZZazE9z2WmFFc3b18IHe-VwNZXqu8,14398 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ClearPendingConfigCommand.py,sha256=1ChJAb_VDyoL94x9Njw31REpqcj8bVuwa0IbZrDFDKU,4827 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/DisplaySecurityStateCommand.py,sha256=5FaeXgJueiWojgMKwcf5V1g5XDUVpa4PcIYAPCAtfss,3996 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowPmemCommand.py,sha256=9n4_zCDmksNek0Ld7qqtGw55ddNuI2dUTxpMwS89SMw,17737 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowPmemPendingConfigCommand.py,sha256=ncRm7Dc2-wHpxovPA4H2yXDWK8nTjjau2uh3YpyvOjM,6303 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowRecommendedConfigCommand.py,sha256=i3Sx9FKMiNhi2xUIqWeWv6T72pd_9SY0apa2Y3BdvIg,7216 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/AdvancedPmmConfigCommand.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ApplyPmemConfigCommand.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ClearPendingConfigCommand.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/DisplaySecurityStateCommand.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ShowPmemCommand.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ShowPmemPendingConfigCommand.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ShowRecommendedConfigCommand.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/DisplayHelpers.py,sha256=HFeOk7PR1_upJw7DiQ7yt_9oIggkZWwax7RBW9HcYlA,7133 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/Mapper.py,sha256=B_Xb2VpBuRfW5AVqQd_B3szbpsNc8I1jAJlmfb34EjI,4326 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/MapperRenderers.py,sha256=-_SimQIsIrG2eUPJeulacu7x9_pwgliwQ_SxSr6A2SI,18668 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/PmemHelpers.py,sha256=aFjrhiKmGw6U8DGosep9E3yORx13GR5tFhsh4IYqOKw,4802 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/RestHelpers.py,sha256=_f935lAQG_wjLADx5pwUtMO6HYSVJH1gBq4K7r9sjmA,11361 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/DisplayHelpers.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/Mapper.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/MapperRenderers.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/PmemHelpers.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/RestHelpers.cpython-310.pyc,, +ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/RAW_COMMANDS/RawDeleteCommand.py,sha256=YyPKH1_XUyzlZFZg68OmSy8Set8xq2mMDnnyiD7tyv0,6927 +ilorest/extensions/RAW_COMMANDS/RawGetCommand.py,sha256=8OnhE4t1MVs6LnJXZZI5gAystihzJ-uyDA0DqzyKogc,10936 +ilorest/extensions/RAW_COMMANDS/RawHeadCommand.py,sha256=8-SioIss_02rZXr112ofFJL0bWZv-llC74kJkt2Hs9o,4728 +ilorest/extensions/RAW_COMMANDS/RawPatchCommand.py,sha256=xIxSpIzdUEn2lxzC4KKMi8PzyoKkXTIUhADtkPpCcVU,8965 +ilorest/extensions/RAW_COMMANDS/RawPostCommand.py,sha256=noWsPUSAG0o8sLkOt8_FI_qVSprOwN8uePU37JsWeqc,9664 +ilorest/extensions/RAW_COMMANDS/RawPutCommand.py,sha256=6XlDQpPhdoW9Z7oRWOirKzjs1HEIPknG7KxqcZG2RYI,9155 +ilorest/extensions/RAW_COMMANDS/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/extensions/RAW_COMMANDS/__pycache__/RawDeleteCommand.cpython-310.pyc,, +ilorest/extensions/RAW_COMMANDS/__pycache__/RawGetCommand.cpython-310.pyc,, +ilorest/extensions/RAW_COMMANDS/__pycache__/RawHeadCommand.cpython-310.pyc,, +ilorest/extensions/RAW_COMMANDS/__pycache__/RawPatchCommand.cpython-310.pyc,, +ilorest/extensions/RAW_COMMANDS/__pycache__/RawPostCommand.cpython-310.pyc,, +ilorest/extensions/RAW_COMMANDS/__pycache__/RawPutCommand.cpython-310.pyc,, +ilorest/extensions/RAW_COMMANDS/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/SMART_ARRAY_COMMANDS/ClearControllerConfigCommand.py,sha256=oQyRUERDeRbUWLmNq_jlo9aPUo2MKZzcv2k69cNpU0E,6710 +ilorest/extensions/SMART_ARRAY_COMMANDS/CreateVolumeCommand.py,sha256=sTBWpFeFJd--oktN9NMtr8QV7cCF0BtomzOh7RMaSnU,51544 +ilorest/extensions/SMART_ARRAY_COMMANDS/DeleteVolumeCommand.py,sha256=mbyn6Ln7VtnwkuJkzC6U_IWZR0jo_nlmXowgffRLn7I,18602 +ilorest/extensions/SMART_ARRAY_COMMANDS/DriveSanitizeCommand.py,sha256=O1HMG0C9TQrAIEIV10pJU9Fkbtc5ucBdpdZU2gV9BDs,25977 +ilorest/extensions/SMART_ARRAY_COMMANDS/FactoryResetControllerCommand.py,sha256=A5AaSt9jLwOzqLUcDi_5ymWRJYzP4K9OyeljQg0MO-U,9361 +ilorest/extensions/SMART_ARRAY_COMMANDS/StorageControllerCommand.py,sha256=p8qtXCQIPMd3Q7J7bJXls4eUWeyqyQj34zDz0dsNrEg,115762 +ilorest/extensions/SMART_ARRAY_COMMANDS/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/ClearControllerConfigCommand.cpython-310.pyc,, +ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/CreateVolumeCommand.cpython-310.pyc,, +ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/DeleteVolumeCommand.cpython-310.pyc,, +ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/DriveSanitizeCommand.cpython-310.pyc,, +ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/FactoryResetControllerCommand.cpython-310.pyc,, +ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/StorageControllerCommand.cpython-310.pyc,, +ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/SMART_NIC_COMMANDS/SmartNicCommand.py,sha256=g6gWnnCqpgaKyeWUrEyuG07MYEz-y0M5dim3dZpJHhE,30343 +ilorest/extensions/SMART_NIC_COMMANDS/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/extensions/SMART_NIC_COMMANDS/__pycache__/SmartNicCommand.cpython-310.pyc,, +ilorest/extensions/SMART_NIC_COMMANDS/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/__init__.py,sha256=3rsbSdxIc6lIarsPy7XQnDg8DIL6aTvAVMaq-LolXRQ,899 +ilorest/extensions/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/_hidden_commands/AHSdiagCommand.py,sha256=Wt_BUevii30PhNCeJ8bpscbf4RGHOkQAJQasb-5G2oE,16463 +ilorest/extensions/_hidden_commands/AutomaticTestingCommand.py,sha256=G1Nz1_dpLK3DIgc7phkxq9NxMyKWbVVj-zmpOgKjOWM,122529 +ilorest/extensions/_hidden_commands/ExportAllConfigCommand.py,sha256=L3R3gZCGLmIMZHooPOvBq9W9-AGGWAB5jZNO5oS0vJk,3569 +ilorest/extensions/_hidden_commands/GetInventoryCommand.py,sha256=9Myn7vjfu03cxK0udwyflACogZWJ3BVzz2dvLn53LYs,12647 +ilorest/extensions/_hidden_commands/HpGooeyCommand.py,sha256=JITcGsZhNAM_9xvRDwc_RtcX0uMAi2c3ZiqP7vxTC8M,40801 +ilorest/extensions/_hidden_commands/ISToolCommand.py,sha256=AI9QUDXDG5wqYYBhAJ-IS39YJcITZtHNiSv-pKvP9Tw,6502 +ilorest/extensions/_hidden_commands/MonolithCommand.py,sha256=FzgTVvv7Bg0ma_0wrUyCn3md7zcIPCzU2SOmeY6k8W8,4023 +ilorest/extensions/_hidden_commands/SMBiosCommand.py,sha256=f9olt0JchtfUEglSrRSi3QoiLEBvNiUn3uAsCTzZlfg,6753 +ilorest/extensions/_hidden_commands/SecurityStatusCommand.py,sha256=dLH0PZ_9iN5QOxZSo99GOCFYjCutoktxUohJ56B9BEw,6798 +ilorest/extensions/_hidden_commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/extensions/_hidden_commands/__pycache__/AHSdiagCommand.cpython-310.pyc,, +ilorest/extensions/_hidden_commands/__pycache__/AutomaticTestingCommand.cpython-310.pyc,, +ilorest/extensions/_hidden_commands/__pycache__/ExportAllConfigCommand.cpython-310.pyc,, +ilorest/extensions/_hidden_commands/__pycache__/GetInventoryCommand.cpython-310.pyc,, +ilorest/extensions/_hidden_commands/__pycache__/HpGooeyCommand.cpython-310.pyc,, +ilorest/extensions/_hidden_commands/__pycache__/ISToolCommand.cpython-310.pyc,, +ilorest/extensions/_hidden_commands/__pycache__/MonolithCommand.cpython-310.pyc,, +ilorest/extensions/_hidden_commands/__pycache__/SMBiosCommand.cpython-310.pyc,, +ilorest/extensions/_hidden_commands/__pycache__/SecurityStatusCommand.cpython-310.pyc,, +ilorest/extensions/_hidden_commands/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/AppAccountCommand.py,sha256=txmffIVmyXwl5XfrHuLU_svv18dNJS7ULhYgMR1DEn0,34957 +ilorest/extensions/iLO_COMMANDS/CertificateCommand.py,sha256=p2r3sjkoIAosWmW1bejQCRi-93DLalZ3nau-jzVNXlI,57083 +ilorest/extensions/iLO_COMMANDS/ChannelInterfaceCommand.py,sha256=Kb9nbKxegOaQ6_UDaPwgr7LvY7ZfdzV5cdpwbDl9bBA,4358 +ilorest/extensions/iLO_COMMANDS/ClearRestApiStateCommand.py,sha256=wmKmlkvtqkA_5bf5V_geSFeguL7vAiWJaVYNY8P5JYE,4331 +ilorest/extensions/iLO_COMMANDS/ComputeOpsManagementCommand.py,sha256=hAl5FXeWRy4ScNMg4zCbXaIBUK6JAFSkzzWMgGZMh-I,147029 +ilorest/extensions/iLO_COMMANDS/DirectoryCommand.py,sha256=k44ai8_9aqXMcW3dstSoIsFogxxqpMNGJ4SWBQIv69s,38752 +ilorest/extensions/iLO_COMMANDS/DisableIloFunctionalityCommand.py,sha256=AEzYrIGl0b7mcHGTogxykJr4hmmAY_6E-mMKiTIHN5g,7201 +ilorest/extensions/iLO_COMMANDS/ESKMCommand.py,sha256=5be1-WdDpzSnZgXzeLDUBPElOV5NjeGKYxCEaP8RNFU,4119 +ilorest/extensions/iLO_COMMANDS/EthernetCommand.py,sha256=vxI4_VQvmpfSg5uSKGeefGnsNpcNoyjjIXn6L0zy3cM,60484 +ilorest/extensions/iLO_COMMANDS/FactoryDefaultsCommand.py,sha256=T0UXwnCITMwN_vkrSPPEwyQT_7V401ZnQaEBvCe2bbs,4364 +ilorest/extensions/iLO_COMMANDS/FirmwareIntegrityCheckCommand.py,sha256=YWz37yR4W8_tdNRndBc20HZmZZlvdZCioJvMVvfDxGk,6047 +ilorest/extensions/iLO_COMMANDS/FirmwareUpdateCommand.py,sha256=yVGpgz_pohTKeMGhErq9aznzg3kESSoRrUrNWADW3tY,12031 +ilorest/extensions/iLO_COMMANDS/IPProfilesCommand.py,sha256=amjTIzQ4kC5AB8T7GDcC1qxg_mFQ6XsSpQszToSNwh4,25536 +ilorest/extensions/iLO_COMMANDS/IloAccountsCommand.py,sha256=-n_Aesw55P99s2BcFZXwozPytT5pFQi-MZHmvY-BU4I,33192 +ilorest/extensions/iLO_COMMANDS/IloBackupRestoreCommand.py,sha256=XNj68Z6rDjASJjdkyg9CIQnMXBqmCqzIVI3XabRPu7c,11422 +ilorest/extensions/iLO_COMMANDS/IloFederationCommand.py,sha256=TV6kypUB7oGyF0ZqBjaCO7PY2ChzRtZQC8ePstOEfNQ,21571 +ilorest/extensions/iLO_COMMANDS/IloLicenseCommand.py,sha256=O5yBH8m68Eh6ZqC5u_aqtiGYnLHuj8I99DalnaXvf5E,11629 +ilorest/extensions/iLO_COMMANDS/IloResetCommand.py,sha256=eBaa6yj0CazGjgYs2eGinbTl6q5AMVqGxdfNz87k5mc,4368 +ilorest/extensions/iLO_COMMANDS/LogconfigCommand.py,sha256=ZGUi-lzmU6TY5rFlrGTOyNwEeyGxqB6FIdXpJILDZxA,38374 +ilorest/extensions/iLO_COMMANDS/OneButtonEraseCommand.py,sha256=4nx5oS9348tZJcmgFJQMYrFi8T-x8S1RitnanR-9TXQ,10970 +ilorest/extensions/iLO_COMMANDS/RebootCommand.py,sha256=yLFILZyMUjSsoKMHucyag7UU1DJiOmTUR6perlFeOws,10817 +ilorest/extensions/iLO_COMMANDS/SendTestCommand.py,sha256=LIwsGy2e7BfcXuDzPeNXuY_27T574JWtJB8-ETiAL6c,5255 +ilorest/extensions/iLO_COMMANDS/ServerCloneCommand.py,sha256=gVjdEjkGj-9vCzc49Pp6BmPeDnuXRTrgR7-y9P6uEHs,116013 +ilorest/extensions/iLO_COMMANDS/ServerConfigurationLockCommand.py,sha256=MGLk9vnUbPxnLjh9XYp6flR0Q40kkGGvpcaNCd4TDkw,11946 +ilorest/extensions/iLO_COMMANDS/ServerInfoCommand.py,sha256=6htgW9ct9pdV91ejMFVScWYllhHru8iihFiPWcb-xi4,55364 +ilorest/extensions/iLO_COMMANDS/ServerStateCommand.py,sha256=6N-RN5M8TjrKH-m4__ftlsMZ5siObtxXI2NautOr7gs,3492 +ilorest/extensions/iLO_COMMANDS/ServerlogsCommand.py,sha256=gEbmQLYiVJFwBo0wlrwvVaMvmKPvVeTabUfGkhASPRU,57706 +ilorest/extensions/iLO_COMMANDS/SetTwoFactorAuthenticationCommand.py,sha256=szF7k2wvXks_U3Skrbj0eozBclzpvDdmMXyxB--5k8Q,15395 +ilorest/extensions/iLO_COMMANDS/SigRecomputeCommand.py,sha256=JRwmOlRZppyfbzr3BkqrHFG181D5cb7K40N5IwdVBrE,3540 +ilorest/extensions/iLO_COMMANDS/SingleSignOnCommand.py,sha256=8G1QVrr1TUgpay8juPt5mbo18qK_tE7Tlu6BVrwf3h0,7232 +ilorest/extensions/iLO_COMMANDS/VirtualMediaCommand.py,sha256=EdB9t86MvdOIYPLHL_twdiRCVJkaWiCGEe6f8QkGysQ,16503 +ilorest/extensions/iLO_COMMANDS/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/extensions/iLO_COMMANDS/__pycache__/AppAccountCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/CertificateCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/ChannelInterfaceCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/ClearRestApiStateCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/ComputeOpsManagementCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/DirectoryCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/DisableIloFunctionalityCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/ESKMCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/EthernetCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/FactoryDefaultsCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/FirmwareIntegrityCheckCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/FirmwareUpdateCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/IPProfilesCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/IloAccountsCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/IloBackupRestoreCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/IloFederationCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/IloLicenseCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/IloResetCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/LogconfigCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/OneButtonEraseCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/RebootCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/SendTestCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/ServerCloneCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/ServerConfigurationLockCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/ServerInfoCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/ServerStateCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/ServerlogsCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/SetTwoFactorAuthenticationCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/SigRecomputeCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/SingleSignOnCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/VirtualMediaCommand.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/com_helpers/__init__.py,sha256=NjC5YIsmVXxSvGcCxULFdg3yttoi3vACJ8CkSAbpIw8,430 +ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/config_resolver.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/ilo_connector.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/network_configurator.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/progress_tracker.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/com_helpers/config_resolver.py,sha256=Q1KUwNP6Xkcq9V-Bn2NpcUZs1yrT6wjPLviXxPTtu2g,5945 +ilorest/extensions/iLO_COMMANDS/com_helpers/ilo_connector.py,sha256=XX5_WjwYXW1-f7ER39m2pp-HUzzazuVKDtI0gWTvWkM,8558 +ilorest/extensions/iLO_COMMANDS/com_helpers/network_configurator.py,sha256=yZkvVEmE3j4MMKaiuLV4-UikXSGwyKNszj1UloJvR4A,9572 +ilorest/extensions/iLO_COMMANDS/com_helpers/progress_tracker.py,sha256=J-y-8Tk3JAyoEg3nv4lZmW9u2TTXfIuvw-kcos7k2JI,3287 +ilorest/extensions/iLO_COMMANDS/data/InputTemplate.py,sha256=9QlHIW3VnzSw5rJ2yyInz-BOHMpFSPknKqS5lzkF818,1578 +ilorest/extensions/iLO_COMMANDS/data/__init__.py,sha256=ffkT9zzMfrTDZcngRQpum3EQB_zPs_ZUdGn3OkB2Xwo,36 +ilorest/extensions/iLO_COMMANDS/data/__pycache__/InputTemplate.cpython-310.pyc,, +ilorest/extensions/iLO_COMMANDS/data/__pycache__/__init__.cpython-310.pyc,, +ilorest/extensions/iLO_REPOSITORY_COMMANDS/DeleteComponentCommand.py,sha256=4aWxZO-f34vdocbJEA8v4etDlpBpEHTlkofs4XYF4kE,6160 +ilorest/extensions/iLO_REPOSITORY_COMMANDS/DownloadComponentCommand.py,sha256=cunaJk5Ek1q5Ai0hbb6Egv4oa8IlFIo1L44_ZWV1P4I,8165 +ilorest/extensions/iLO_REPOSITORY_COMMANDS/FwpkgCommand.py,sha256=VNN6AMF80BDnXQqJ-8zrgvtMBtyPGnUizTYx_Ns4D-M,32483 +ilorest/extensions/iLO_REPOSITORY_COMMANDS/InstallSetCommand.py,sha256=s3bFatYA0Y4UFbxujBsMNJ-zP-_DgpZRiu_-IQWE0EI,23843 +ilorest/extensions/iLO_REPOSITORY_COMMANDS/ListComponentCommand.py,sha256=-nv0lClwTk9X3pVegRE1Azos_LCz4Vd9zkm6nqiH630,4576 +ilorest/extensions/iLO_REPOSITORY_COMMANDS/MaintenanceWindowCommand.py,sha256=-mwcLxQJnB_1j9IkXex3NLVh05kTsFRyQzYJmjDeAN8,12486 +ilorest/extensions/iLO_REPOSITORY_COMMANDS/MakeInstallSetCommand.py,sha256=AeGuqvFK5-GwYpFiqtmhWuivlqqxz9hnJuJ_S8mCRB0,13167 +ilorest/extensions/iLO_REPOSITORY_COMMANDS/UpdateTaskQueueCommand.py,sha256=CFYps3nivVYHf0BjnRxw-Y9JGe2HaoZh7kMSRx8iqtU,16480 +ilorest/extensions/iLO_REPOSITORY_COMMANDS/UploadComponentCommand.py,sha256=LftdjEr2zNmKWC66LmCXOU1Qv71fDwHt3-DEJ5B7Sgs,34071 +ilorest/extensions/iLO_REPOSITORY_COMMANDS/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/DeleteComponentCommand.cpython-310.pyc,, +ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/DownloadComponentCommand.cpython-310.pyc,, +ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/FwpkgCommand.cpython-310.pyc,, +ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/InstallSetCommand.cpython-310.pyc,, +ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/ListComponentCommand.cpython-310.pyc,, +ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/MaintenanceWindowCommand.cpython-310.pyc,, +ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/MakeInstallSetCommand.cpython-310.pyc,, +ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/UpdateTaskQueueCommand.cpython-310.pyc,, +ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/UploadComponentCommand.cpython-310.pyc,, +ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/__init__.cpython-310.pyc,, +ilorest/logging_config_path.py,sha256=BHbopU-MEoU9Kac6viEEX7sFp0h81P7BGZI334dIGbM,1050 +ilorest/rdmc.py,sha256=0wkcDpKVwpSmfpE1XPmGGIc-kIaAhTayG3WpZnP2ckU,52247 +ilorest/rdmc_base_classes.py,sha256=NoZj8fW7H8--2Jk8bk3sjomu9gf8w8IcXw8BAJUC2BQ,21499 +ilorest/rdmc_helper.py,sha256=sbS4pycbM0JATEUG3HAFUYzWvL6I9kRc4Q6HU9aE-L0,45253 +ilorest/security_masking.py,sha256=9D5BrLASpjTXZn3Ds0CdsRGLWRyshRE0mZbkVpcZCGg,23386 +ilorest/versioning.py,sha256=bUNIH5lUhefdirBDtDo-heXTuQumfHDFO0rKbJ2cTl4,865 +tests/pmemtests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +tests/pmemtests/__pycache__/__init__.cpython-310.pyc,, +tests/pmemtests/__pycache__/conftest.cpython-310.pyc,, +tests/pmemtests/conftest.py,sha256=66bT2_cGlPmGiQ28N1jXe1ia7M_weILFEqNSCXTH8F8,3387 +tests/pmemtests/functional/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +tests/pmemtests/functional/__pycache__/__init__.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/conftest.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/ilomock.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/test_all_flag.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/test_applydcpmmconfig.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/test_cleardcpmmpendingconfig.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/test_config_flag.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/test_device_flag.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/test_display_flag.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/test_logical_flag.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/test_showdcpmm.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/test_showdcpmmpendingconfig.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/test_summary_flag.cpython-310.pyc,, +tests/pmemtests/functional/__pycache__/utils.cpython-310.pyc,, +tests/pmemtests/functional/conftest.py,sha256=k-x_1iHYdxzyXdXif5oqLYE_vE4c71LkCRNizLV9_YY,7351 +tests/pmemtests/functional/ilomock.py,sha256=RVaI4wgM3t4c5DysABowPoTPY-4aewftKsajMWUDL_w,3229 +tests/pmemtests/functional/test_all_flag.py,sha256=3aoP3SpPotIRxE6OqZme8T1EN7gDtOebiiVv5UjUVcU,1364 +tests/pmemtests/functional/test_applydcpmmconfig.py,sha256=qBde_vSFsCwecPRYtOzD2J7ykeH55W3535PeWti-K4A,6504 +tests/pmemtests/functional/test_cleardcpmmpendingconfig.py,sha256=6S03RdG8SSIMzvlj5e2CdL0u3kc_wNrPq-0sMBM5mKA,2131 +tests/pmemtests/functional/test_config_flag.py,sha256=4OM08T9VjnTFxTYOkY7ocAyCW-wm-EiJeiM3NwN1rEU,3968 +tests/pmemtests/functional/test_device_flag.py,sha256=ZJ2N2gncAj0QJCCo4eVTr7oofsxUKGvWMKxcKiOpj2A,4632 +tests/pmemtests/functional/test_display_flag.py,sha256=T9hos6NksyBFieQwd30YYZS5nVCy9ihOUUtxArqukpQ,2573 +tests/pmemtests/functional/test_logical_flag.py,sha256=v-xKCRGbo6el6UzUQd62PfYOEjhQ0oW75i_mwbsUBFI,1796 +tests/pmemtests/functional/test_showdcpmm.py,sha256=Wr4odVffd4g7al5IdhUJH8LgRwtQT9vWelTJ3Sn3n8s,5746 +tests/pmemtests/functional/test_showdcpmmpendingconfig.py,sha256=-gBXzgVpAzSChkXE_wJ9zkripe1e7KfMM-xaojXAN-U,2786 +tests/pmemtests/functional/test_summary_flag.py,sha256=zGvBk2MspJJ-mOhpNoLZKSrSflJBfUPHMxaksc6eHsQ,1796 +tests/pmemtests/functional/utils.py,sha256=mtL8gZprd2fJ0AspzwxAWhe68a6uRmoGKa5-X2-AuTA,3359 +tests/pmemtests/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +tests/pmemtests/integration/__pycache__/__init__.cpython-310.pyc,, +tests/pmemtests/integration/__pycache__/conftest.cpython-310.pyc,, +tests/pmemtests/integration/__pycache__/ilocli.cpython-310.pyc,, +tests/pmemtests/integration/__pycache__/ilodebug.cpython-310.pyc,, +tests/pmemtests/integration/conftest.py,sha256=64jwzUefkm4kXd-5MZwfgwQNOINk-HwNfPZtfPAYBSg,4960 +tests/pmemtests/integration/ilocli.py,sha256=Td5khTodClRvUiKXVzBQXxX8erahhQaW8Y6MQQBa0Ic,2635 +tests/pmemtests/integration/ilodebug.py,sha256=ZE-1RXBqAFPG0h4oHtgtkTiuGJmyXcJ5jtzLiJTWRZc,1874 +tests/pmemtests/unit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +tests/pmemtests/unit/__pycache__/__init__.cpython-310.pyc,, +tests/pmemtests/unit/__pycache__/conftest.cpython-310.pyc,, +tests/pmemtests/unit/__pycache__/test_applydcpmmconfig.cpython-310.pyc,, +tests/pmemtests/unit/__pycache__/test_clear_pending_config_command.cpython-310.pyc,, +tests/pmemtests/unit/__pycache__/test_display_helpers.cpython-310.pyc,, +tests/pmemtests/unit/__pycache__/test_mapper_renderers.cpython-310.pyc,, +tests/pmemtests/unit/__pycache__/test_pmem_helpers.cpython-310.pyc,, +tests/pmemtests/unit/__pycache__/test_rest_helpers.cpython-310.pyc,, +tests/pmemtests/unit/__pycache__/test_show_pmem_commands.cpython-310.pyc,, +tests/pmemtests/unit/conftest.py,sha256=uFoPRv4LN2t_tVrTXVcHY_qcOmL_FKYXwWnxyWiaM9I,409 +tests/pmemtests/unit/test_applydcpmmconfig.py,sha256=K6zZ4mWte_X6kA8YPxQ78FaaKtcceDhE8mxVL2I-Xfw,18985 +tests/pmemtests/unit/test_clear_pending_config_command.py,sha256=qStxUaXd9n4eE8Y9uQum3raVImqaIEZUXHwV_ix6W2Y,7366 +tests/pmemtests/unit/test_display_helpers.py,sha256=J40sv49RBfWSAH6pe4m_0ouwRYafcVEHvrAUpIvf-NQ,6745 +tests/pmemtests/unit/test_mapper_renderers.py,sha256=5LTC-LCfcvCQRm4HQU_yehZkCrbZrU1mr7lBFlLtKq8,10684 +tests/pmemtests/unit/test_pmem_helpers.py,sha256=dxqvoOEYOHQSgBPHl7XTSGvwitBK1HtdIM6GJTkoRmo,6963 +tests/pmemtests/unit/test_rest_helpers.py,sha256=xUbm5aUk3zwfsZy9KUIC9_2t1dEbu-nZq7Kn4akSxUE,19419 +tests/pmemtests/unit/test_show_pmem_commands.py,sha256=XJqZWSqzT9ss34ViSdOlr5zs-QDaRGw5vyCf3XPknt4,12666 diff --git a/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/REQUESTED b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/WHEEL b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/WHEEL new file mode 100644 index 0000000..832be11 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.43.0) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/entry_points.txt b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/entry_points.txt new file mode 100644 index 0000000..3770bdf --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +ilorest = ilorest.rdmc:ilorestcommand diff --git a/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/top_level.txt b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/top_level.txt new file mode 100644 index 0000000..b872e13 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest-7.0.0.0.dist-info/top_level.txt @@ -0,0 +1,2 @@ +ilorest +tests diff --git a/venv/lib/python3.10/site-packages/ilorest/__init__.py b/venv/lib/python3.10/site-packages/ilorest/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6f56cc4f349c482e7b863d01b77692d5bbc6e83a GIT binary patch literal 179 zcmd1j<>g`k0wwn9Oc4DTL?8o3AjbiSi&=m~3PUi1CZpdpP7@do12)In4VgsUzVCzrk|6Uq+d{3l98WhtY>JTUz}Nzs#}nl soDEa~R$Y`@T%sQzpP83g5+AQuPcJMfURlS;SRs+z_fBb{~(?(JMQ4f^Z4T2c2yBQ>`TZf(_>bKer*)e~KN$kgI&P5pM zZ`*O+@o#h1j%BB)XonGh0?imJO;cIlzoo1+Z(6Fd9j7cwl!te|)8jItHb;LZ3UA~2 z=L`~VK%WNb5_+UL+3HKzvTip_*-Dn*$oeU}{xIS_n#9xQIP2#fk!}0i9iIASb3c}T zn&p^1`m8*5loteP*yTZ>>Os)WSU;hBBM3g}he=se4FZ-$LGaiRQ<#lTp8jB=lXdyR zmb~)Xn+rXWZSg3V3vrTN#OR58LuT6hJCXE>%~>2Lp4LxLJYBQM@8>4%-yX@ zUfuHWuHmWUnb>rPX3)s1`;#b59hke;5TG9#%tmVMxx4ldImlWVT3ge1j5Rt4HOI(j zcHS%wLIHk^Im?`Ls7LP9{%PhOn1DfL@Mtv&b3n1{%N~#7b{zRE7TAhR>}ZJgB?nHk zv>k8ug;vUZz3$_;D0to%sa*8S4A8>;XPY0&n=ktjU>ALvi#XlXpM(vyJOMixf?%tv zORKBPOY2Kd%}<+i%F3j22uXresj9NWljQ0ZHM4f}9S-m&jEmJU@7xhC)jK!utSqZa zq>qJiqW~vFRcTf)4>tPk zHW$i!f9YTA$bLh9xecaYSkz{YZ=SXh5dOi~;#|g5th2G!9HLNj!nF z%j|Q;eg(NI;AiR<9<}($+O-INL-To=Mc%9cA) zdA;&ni8Ii!xPU}e_`_J{Qk#$ap)%!Cdq+IbR<24_~3Je&t@XAhV-F3aFtoeat!YwK+%E za*s>;8_{OjTsLa>lcdlBMkgMnJ@?@utYpO@8Qa`)@+BBc8D+zwZbdmX#imz4kI*Jw zqvQ%D1rlRP0|-Kba<;NKZMx#y<7&-J39zbaahjHNRnsP)mU0qy0BFhxcwI=)!1L;L zvtiBIL{L+jlB~}iTP&eI!ZZGnO(pkG1Mm09FcbEW?4t#nR<9WZtK4Gt9;jz%iWY$B zY=U?OlR0eW&|)s$`eBvNoLw8%?-Z^i0~fJMzc0^pwcQ9K_y1uJP${zVKYU!~r%z-QBXvI@06Ifq1BS>?z)-$5D=_zgHcuC}JCB6F7Y z!993$Ayx)%KW|@tV^I6}BX-HhbG|uSz=?Q8Z=|Zr{s#Ou%~kGd*5fdPtG8CKtLg`9 zh2un?5$G@%Y9fNSNv0L&LOI(Zn6DnoIF)&rMqIfYJ2{uC!Z_JpWeJX%=(DVm+pMWd zpjW8snh%0v5is6Txikl`C4U$Zi|Ta*QoKQ9JERHakXBBDc9x9mXgdN@$IsA1eglb9 zsar6vbKXB37*or9(VQ|HruP#IX4SLmR^6PTGC7v_(EJ#pQ8sKmZ{v}7ksNouxwGZA zfoJ9*Y^X4oRS-5*5lB#=VYWPWhE1>ray5LLWK+o1*)*F$s|j{i2N!0m!DfND7nFVN zy<3Az*OE|5O`aS5IAQRq02l4r`-!%&6kkvnA?Kfv8xYa-Mn7VGvIN)gNOEF_=FkYh zhUM_r>1e+9S zOu7IbPui+>*ukduA7NziAtmGZKxh{T(M6obc@X@XCP-9KF)L;r|0#3O!20J$4UQQ! zTGDt~)T>w)OAOai7yaKmF%D$?!wkY9axtL zds*>w!}S+^QFXZV#X`aDq%YwT z=$BuF0sdv5T*g<6(3k4{QuerB`-~^XC?y^B7-<44O&<%Ci46cpQ6lq~)Qpuk}ox-Dl>32`%e;fWa@f1wv}FMkkOr zQlj=mIxt562QUJM2`0aSgGx&m1$ts~um7$jZl08a#1;E&YSdG_?e zSZz|UQyg9$_LQyx)gaC}0!MvL4?8>$tL3%7s8HgJ1s|}1etk% zx$uc8T0@{SUl`nzvn~Z`A=w69?HnGBv7hyLhTkvcb|x6;E9>G84ghNRQ+*@&4CQs@=3?2-&#~~6ir4ke+uCs`Q)Ya9 zok8)pzOrE%IDmo-Ob8b~VTvm^Oys2av6SOOjJFh@Y5H2Emc-es6vm7O#c&veBo_m5 zb_f6$09f=_2H1N4!wd2r3i>(-A#fGOgtVk=Tos7-u_tg`F;s5^3mfZJ)p8V7?IM20 z1)(zI6Hrjog^q)f&i_W6Oc!@v&9fS2-I_zBj5`!-aJt}D+L3W<@X;39HqG_IjhGbV zT!;xu8k9^@GEd1nl*E*1??N+|<}gCDMx@xK+#!+aoW4=~7!{B4$Wut@3UkKts&%{W z)hE2#)U=@bVgfG|BR-%H`l4Zta0}&Gnmi9=6sDlpT;#SU7XGzttK-e z^d%h8VR4yO8{Y-%J5+tUsc)2Y=&0j>!r7}7r@WZjbJnE1?-ZBAZvp$In?36}9^7d9 bTNb(0Gy2ZT!+XY^sdyF7ub=b2Jm>!hXRu-p literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/__pycache__/debug_utils.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/__pycache__/debug_utils.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fa989626d887d61af36b3108d69f04a201fddbc7 GIT binary patch literal 10918 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 B-9Z2V literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/__pycache__/logging_config_path.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/__pycache__/logging_config_path.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c92d76a0b11daf3aa681cbbcec280c5a4f6dee7c GIT binary patch literal 1140 zcmbtUK~EGh6zdI4VvG?%NQ@!C!H_kRGVRQE>9%9rWo3oL zgFghg`IqME$-m&q*ICdd*@KBq`expnzP|7K`Z{`HVUFNfYJ3roBSL<7XL5w-yuxW8 zp<(2Ruz-a!I0{&eMc>F#$if5Cni;*_;j-WcoCd}nH+`WvNS)_GelCh~UAY6S&# zUC6WnCbEnht{fDSI*jyfdv5M0mLcy`Z*PZ((7?Hg(|$mcBZ%wZf}E2#!{X z8J-7Mfmy2FYn6@85$aX=Cwk+DBp?UmQ+>R~k;|DY;@2UK8odq(+2?LxCV)<1fj|Mr zE)u1VTX0>Y2YDALNMRl5Yzn)Ixdo~in5u$LHQ)Pn|Yrz(3=j zEs7-4y5 zf9v2d8%Wsop^T;+4z-rc)xNPVTr8xqY}__nE(7LM_oZx&BA9hj;QhT5E9yG&3Q87MCeH7JxGC^p`r6^&m1KdsUHBqj7F zD2<-}8>P{MDM!+(m!Y<02DIgz^8BviYK~ T*+BA_c&CW1qlri}ny>u^4P{^h literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/__pycache__/rdmc.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/__pycache__/rdmc.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..845a088a8913670e3dbdd9ca7fb7e326c512d26c GIT binary patch literal 35789 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%0ASNSg7%@QEJ^S=jjn|^xre=Kc# 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/__pycache__/rdmc_base_classes.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/__pycache__/rdmc_base_classes.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..357e5d1b807d03dfee49ea744dd79b9bf6344886 GIT binary patch literal 13848 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 F{uee)l(hf= literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/__pycache__/rdmc_helper.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/__pycache__/rdmc_helper.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9e500eba17d291331cbc7c68a564dea0c8376929 GIT binary patch literal 40369 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 Dql++A literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/chiflibrary/arm/__init__.py b/venv/lib/python3.10/site-packages/ilorest/chiflibrary/arm/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/chiflibrary/arm/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/chiflibrary/arm/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e6efd55d3e89f9d876f89329a63bdec2ec217de4 GIT binary patch literal 195 zcmd1j<>g`k0wwn9Oc4DTL?8o3AjbiSi&=m~3PUi1CZpdpP7@do12)In4VgsUzVCzrk|6Uq+d{3l98WhtY>JTUz}Nzs#}nl zoDEa~R$Y`@T%w^)sh?Pss~;bqnU`4-AFo$Xd5gm)H$SB`C)EyQe=!q~ HU||3Nb`>$m literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/chiflibrary/arm/ilorest_chif.so b/venv/lib/python3.10/site-packages/ilorest/chiflibrary/arm/ilorest_chif.so new file mode 100644 index 0000000000000000000000000000000000000000..06bce1a898cae5548614ca88c83c73a9fd86dff6 GIT binary patch literal 9423008 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

    -4*Vzb?kufy(8;ft@> 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

    tBTaf%4T0x)i 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¥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%0D|$MC~h3RWcKU7>YH8BBR(z+B|hhq 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⪼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 z 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

    |n3 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

    # z$8i)-;3S^JS?sZStn^>RR(uIN@n!7AS8xzd;V7QQNqiM&alq!?rT-eX;u-A3v)GI0 zaS$)yC|<-#yo9qjVsoMNFJmiS!A`u2z4#^$;x!z_>o|!wa26+Q`bz&TY{j>+6K`TK z-oin=jiY!6C-E-M;*8CEO8*|V;(hGI2iS`baS$KjC_ctXe1fysupemNTl!nE6}Mq0 zZpU8SfrGdcM{yTU;%=P97Mu5#{vK?_z1WHSuow5^ARfR`JcyHc2xqawroZ$LV=ErP zPCSaecnk;eIF8~8oWzqj-}Uu(wmhf%|FtjjxP5=Up4ykN6JN$&d<6&b6prF)oWxgg z76)uTQ2MT6E1tnlJd3?}9tZIPj^ag}#7j7fBQ_r_{ma;jSFjVWVlTdlgLn-`@j6c8 z4V=XZn}O1Q3tRDR?8KYci??tPZ{sN5!AZP}vp8e(q0+yHt#}_h@d5VYLmb3MIEs&P z5})8KHtYwQ510N{Y{hNZiQBOkciQ7duo*1u2`=ubsufINCXSM$*?yB}5 z#og8Zqu63|U-|nz*ou3x6Zc^+?#DqqfTMU2C-D%@Vuy_>{lnObN3au*VlN)UK|GG5 zcmgN!B+g=w&AHNl5nJ&k?8KL`7hl0aJcXlp8Yl5poW%i~mzDl&*otSc6VGBVp2tDF zfTMU3C-D-_;)u=5OaC&q;uY+~tJsTg;vinbQM`_mcmro~!lt$K-@;aW8$0nP_TnuZ z#M?NEcW@H#;w;YCyrT5)VJqIpPJDp9_z(y25suRH* z;w%o>JXrd#VJn`&PCSdfcpeAw0*>NEoWx5wiz7A-BUfs=R=XR*iT zvC@ALTk$3A#Fw!bU%^2HC-GIB#Q~dlm;P(mif6DB&tfm0$3eV+qj(V~@e;EsO&zxHMRzJLF{_1@9X|JRRCRsHh#bk#4uTJ?(qHXkU* zyN0cJ20QUA_TqUQ#0xlz7jY6V;Vh2We6aK{V=G?4PP~e}_$ChGH5|q3IEgoK7AI^5 zO8+fv#ka8&Z(=Xr!a=-^qj(1=@h;BdjLnBi{~osDeeA>s*ozNw5Fg7sNh?95- zXR*U(u=EdOD;~j4Jc_+|3+9K=&Nil=cB zU&UD*uz9@nU&B^BgPnL5d+|ID;sqSVi#Umwa27{wK34jdu@$diCtk%~d=m%p8jj+1 zoWvVAixW0OrT-ST;@jAXH?bFQ;UM0|QM`kbco%1J#^#CAzlW`OA3N~@_Tobv#78)a zk8u*8;C$-mbpOA8|GAa@LECa~JfBkqnk9&E%0|#*@j^Zwy#N9ZHEjIU+z8-AF zz1WHSuow5^ARfR`JcyHc2xqaw#+3eHY{etkiAS*)kKrI5$5A|ilXwzmvB&0I>A#4r z_!4&F%h-#r;2@sDQ9O;4_$togfX&NF|21sIGuVk|u@}$dAYQ;xyoi%{31@M{=H;b- z8C&rRcH&j+#W!&fui+?O$4R__vp8YXTKaEcE541LcoTc^77pTV9K}00iFa`pXKY?k z`uDIE?_(!Ez+QZagZKzX@i9)~6P(3{{Xp}|(%*`$xD7jTJNDuZ9K@YCio0+UcjGL! z*u1Lr_h2jT#ZKIZy|^C-@c@qEL7c=xIEx)NZKZ!0Tk!~X;!*6yV>pP%aTHJBB%Z`s z?6G-u>A#4r_!4&F%h-#r;2@sDQ9O;4_$togfX!=4|21sIGuVk|u@}$dAYQ;xyoi%{ z31@M{=C!4N8C&rRcH&j+#W!&fui+?O$4R__vp8YXUixogE541LcoTc^77pTV9K}00 ziFa`pXKY?q`uDIE?_(!Ez+QZagZKzX@i9)~6P(3{{Xp~j(%*`$xD7jTJNDuZ9K@YC zio0+UcjGL!*xX zIEp855>MiMYVQBBdEj0@_y5?6FJULXjJ@~@4&o^s#nU*6ui`8Y*gRPJuVE{m!A?Aj zy?7o6@dA$GMV!P-IEy1T50(C9Y{e_siC3`~-^4+@hNE~LC-DZ(;)G3S>A!`o_%?Rp zP3*;6IEc4#6z||9-o;s*v3a=k?_n$6$4-2Jz4#CZ@ez*VW1Pe%IExMYf##9Y--@lc z4Lfl=_Tmm4#GN>byKoYB<1Dt=yrJ~>U@Pv$PTYsRxE}}c0FL58oWw&oiybyyrGFS( z@d$R}QS8NIIEcq_6i?tJp2S(~v3Xl&82@CTk#5Z;#KU$H*pZJ;V53mNxXrxIAPOW z`fp(?zKxxD6MOL%4&rSb#XC5OcX1YHY~E7(_plZ3V<$eqUVMmy_y|YwF;3zWoW+Ly zK=anp--@lc4Lfl=_Tmm4#GN>byKoYB<1Dt=oG<-7*ou3x6Zc^+?#DqqfTMU2C-D%@ zVuy__{lnObN3au*VlN)UK|GG5cmgN!B+g=w&D%=NEoWx5wiz7DgDE-UWidV1`uVOF0iGz3zNAWsN z;tia|37ekMe+ygjZS2IG*o(Jt5O3os-oZ({i?cXm^Ul)0hpl)YJMjVb;zJz7M>vX) zaT1^4EH>;1ns=4{R&2#>*ooV*7kA(w?!-~tg_F1&XR*cR(bC_8t+*FEaUb^LejLOD zIEn{x5)a`lcG&cm{$XszBiM;Yu@{fwARfn2Jb{yV5@)f;=CRU$5nJ&k?8KL`7hl0a zJcXlp8Yl5poW%i~cbEQa*otSc6VGBVp2tDFfTMU3C-D-_;)uA!`o_%?RpP3*;6 zIEc4#6z||9-o;s*vH4Kx-@{hCkDd4cd+{L-;v*cz$2f^ka26Z(1I>p^e=D})HtfXh z*o!-G5O?Az?!rmjjkDNd^O4fugRQt1J8>WO;(i>&12~EYaS{*VEOyuomi}RE#Ut2> zN3j==;UFHzQ9OZ@coJu^$L6D@|01^HOW27oV=umfgLn!@@ib22t2m1THjkJ7YuJis zuoKT>FP_Iiynv&45hw8y&fcFQCidbj9K_o=ig$1l@8T@Z*gR4C_plZ3V<$eqUVMmy_y|YwF;3zWoKJn{%>Mr! z{ro@QAMTvl|G%T3|F0kKsP-RQ?ydih{`>#+<6YJMqdeYS?LUewHusgk--E5V7dvqu z_TqjV!~-~r2XPV);VgF8n9@Itt#|}G@hJAIEp855>MhR_Sl>&{THznU&2m& z8GG>+9K=&Nil=cBU&UD*uz6YOzlN=N20QUA_TqUQ#0xlz7jY6V;Vh2Wyu9=;V=G?4 zPP~e}_$ChGH5|q3IEgoK7AI_4OaCow#ka8&Z(=Xr!a=-^qj(1=@h;BdjLj=b{~osD zeeA>s*ozNw5Fg7sNh?95-XR*Vkt@ICLD;~j4Jc_+|3+9K=&Nil=cBU&UD*uz5}CzlN=N20QUA_TqUQ#0xlz7jY6V;Vh2W zytec&V=G?4PP~e}_$ChGH5|q3IEgoK7AI`lOaCow#ka8&Z(=Xr!a=-^qj(1=@h;Bd zjLqvx{~osDeeA>s*ozNw5FgrcfhJ$z@_Tnozh^KHAPva!MinBOi^WeSnzoGyBfBpWz439f` zd=`80JPzUo9L0+`iI;E|M{FJ{{ma;jSFjVWVlTdlgLn-`@j6c84V=XZo6gdI3tRDR z?8KYci??tPZ{sN5!AZP}vp8e(aOvN}R=kg$_yBwHAr9gr9L2{tiBE7A8}F>c-+>4#K4|{Px4&nhE#e+DBhj11HC-GIB#Q~c) zmHunkif6DB&tfm0$3eV+qj(V~@eT*o$xCAYQ{!ypEH217~r< zrn~gt!d846JMkv=;w>D++c=7Ma1!t0EY8@xrS$J%E8fRWe1N_95C`!Qj^bmS#3wk5 z4f}!SbU&W|{XcBQZP7sN zh?95-XR*V^mi}RE#Ut2>N3j==;UFHzQ9OZ@coJu^$L4LN|01^HOW27oV=umfgLn!@ z@ib22t2m1THg7Ne*RU1OU?-l%UObP3cmYT8B2MBZoW&8Fca;8RY{e_siC3`~-^4+@ zhNE~LC-DZ(;)G34>A!`o_%?RpP3*;6IEc4#6z||9-o;s*v3Y0d-@{hCkDd4cd+{L- z;v*cz$2f^ka26Z(1I@cie=D})HtfXh*o!-G5O?Az?!rmjjkDNd^JwYs!B*UhowyHs zaX${?0UX7HIEjaF7CUTuOaCyo;t}k`qu7hba1f8lLg`<|R=k3p zcolo`O&r8)IEvSC5^vxvPT2I7{#)3JZ(}Fk#9q9GgLoT9@eWSnU7W=koA;FdJ#5AM z*ohCY7a!svKEhFajFb2TXR%>F(7dOIEyVd?<@U1 z*ou3x6Zc^+?#DqqfTMU2C-D%@VuwwC=^w^cJc6Bg6npU)4&ref#S=J*CviUY^)vhb z*U#+#Uq7?|fBnq<|MfHb|JTp#|6jj8uuocf>C!WP# zJdcBT0Y~v7PU0n;#Sxnimi}dI#Vgo}SFso0#6i4<`+Od+WJzX8-@jnf?D8_jiyl`~Nr2?El}mzpL7Rl;d?*`;TIa&3&b>2U~G3 zcH%zl#r-&l2XGV*;v^ozS?sVerGFS(@d$R}QS8NIIEcq_6i?tJp2S(~u{l@zFJddc zgq`>@_Tnozh^KHAPva!MinBOi^Rm)^4O{UHcH&v=#q&6b7jP6W;v`dFfxq zR=k3pcolo`O&r8)IEvSC5^vxvPS~`T{#)3JZ(}Fk#9q9GgLoT9@eWSnU7W=kn^%F(7dwrw_+=9!%p0ey|@DhaVL)AE}X>OIEyVd zuPXgL*ou3x6Zc^+?#DqqfTMU2C-D%@Vuwvz=^w^cJc6Bg6npU)4&ref#S=J*Cvg^g zY+haZFJddcgq`>@_Tnozh^KHAPva!MinBOi^P19s4cohJ`A`4%pRT}vx&r^dU4d_W z`ky@ejdLw?U-{&H&wk}x%Sy|WEptzqmgm3rK+E%=I@j{Kub#VaAo zJUUms*1q=V&9e{j_yYggcK!8h?@Q-8R~~p<%bm|1zwp_=%=eNn->So=Kf4W?q}-t^_BH~>tl0+4Y|Kp_e$>j9-Dh_L+;0_oWJ|LeTunp{tw@2`(1y)75!PM&}1 z>-1Aq&dGIt^1|F#8*<-S<&5OM{leUSL+;z^Tz@%_r&w!4?h{omNbczibK4EMkJRgv z*WWW2=6^DCB%Rl?z@4R%LRNuQE;O{=j{HVTf z{W$;q^SuA}8Rp2B_#X6AtmQA)v*bbM#6v69pL%e_Ve-m^|9(4^JJzW_iwA5{XoevPo8eb{eGSM@V#6;Po^4jzg^{cpZIir%#$Bz z$o+bqtFG&d=fOPj4Y_|__YRaC^W?i4a{su>@&57Y@t7y04Y_|<<-FvWCx50P_cQhS zK2(m!JQ-}r{k?j9a-Eqc?`_EaSe=vW!aV6|$o;K)eUf9Iys07gH|pHo=k4A+>1fFP zP?h6-^V93XJb7h9?)&SUoCovdLoC&<=d2c2xa=gZw!29<9_iummO!(0= z-PKGuB=dRR!#_P|X2Op&vY`s6&A36C}8X6xKX%leoJ=NoeWW4%7fF%uqc$W7O|yU*Lbnef_%+<#Z) z?8izkGvQoA?qZ#j*8wx(`LDlpCj8e`j=h=F>}TCbOmC3^wK3g5H`kAA;KYiic%fDEE?|+1Qm`~sL>^DA9-N&4(?_)aox#R0^ zYkB_X`QI}Bx@qNp#ytC_a}TflOMd=%nl;|LkNGlx_SyPpj|W%2&i==jf2-^r zYh15#-rUPwujb6Ry)<{{MxCpk=X!nD&ogH}@zUIL%k}!?c+8oPG~|A=%Gq<}c+8pi zH00*19D5k2z08?+H01tfm2;=(%laOhd*e%Ucdpj!lk;HC-2c+tbAP4I-B)^h7Ip)kaj_%z9+-6NApMOQp%XMMS{OFln zbuV*B?lYn4eQ@Q||N5KnWxjIG%vI0rACakMisK%Y*>T4`^RBt`&%JAI=cIbC?7q3v zKY!VybLYSH(YfEK|J;;6e~LeU=Fz!L{`^b-18aH(@2~xIwYHY$|Mg$IZ*K3G@0 z-@k9}4?c0<+&SKh%jaIsOnYGEOYz*?`agZ)vtPxZG53A(X=dG}XYbCn@8kdflzHIa zeEfwMzT+W2Tb-)+TF5`s`RAVh0_*+8r$7GeS3c>U{o0@Z#Is+2+mp{T_vWhk_ci9D z9&h}`<9&x5ulk<#`hQm)qkg~V`n~siUc5iM!~NNf)B7|3n$w@fKE(BH{8`MtV(usE zYgpgcTtCnIJ@2lci*Nop`bWup-oJwD@?wq|X&Z7sQsvlpI?XX7A8E*ay3XCbcdVYb z>iwSfhTIQUIre!@kH?IBSwrr7>s<9(d2xNr$m6fQ^n3qz*S&H)X5@1XxldL(-&T&t zjNEI;eM^?DCf(Je5N6HuFlEpfEl^akb8c+y3TSQ%*emfko)5* z$9~%B^V@P^E;Qu+us)t#=O-`B{k4YN?^HP}IcDVLhTIqH+-pkjQy1pGry=(%RW3^I z=?ilc4Y@DW>yzi>nG18@-jMsb`gn3(n32P0a{9B_&upLGpZ&=*fzK%3yFcsac#SiG z&)NPM{ioNOnefgt-PQfsOtnTnb9J_jHwW?Ip)dc%UISRp&bHqO@azS#;g#V@?_iJ@dp0}qi%>9LiT&i;BfpQ*CUzqzZ z8*;x;uTP$jXD-bB=MA~l`goFKCVc!%PG>^=&6m!EYG0_6pGm5(-_M&jytps)P_-{~ zqmN_V-4}Xj+b4a>Y@5xs>=RIy~YR2IWrR;X~=!L z%JF&P)8jD{+8c5|Smz$Om#b&O%NlauTjgBmy<9yLj=ys6UZAY+yX%}hC(MNB8giek zd*yh{guRB`w^TXvaOq_x{BA?;i7LnEgHO+wnXuK6`(VAk)AOxo!ml>u9;??U=fOW)r6Kp)I(PSZyEhY_X~>gVJ9BkaXI&G-L?+|SkPyZd^nbIxb#BUi0Cb9SzC3?zgC@tuktVEm>I8b$X%{-e5U#|$IQ5| zA@@CXuDi~Cyt?1#-s0=L*K~Ie`*arEnW%DnhWYe(zxC+czir5Ud!3W#jG6KK4Y}dE zSB}Tb`0a+=<5kYTx%4tKe!U^rU*)Xim>K`PA@{C&eRt2dzRtY=@{b#G-Szt9JeV2( zup#$goqJ8Go-K*HY*19`93+v|O*=fBCV7+|j?Ro)0-+X2#!Y z$o*e+PF@GhjK9&4%T>virerT3`|bKlmGyHVx%toP~qp1v^miH6*Ay*_z9p1Cmhk%rt)*2k0U z!pwNjnOrq9=E;4A&yZI$8yF~^X}1anl-H)t6|pgbIjZ8HC|-B zr`L#CbIkiBXTIj2`|j%8U6n7h=DCL4C#xKvXFkm_YxWv)-%{t^Rp;)_n%`~6JyGTO z{P5}Vm^E7sxewO4x0M{T=2shXkJY_$JZ8;CL+*T)bMGw2W7d4GA@^{VGm>N0tTg0a zTd(i#`QDo~&ot!D)$5b22Zre?#u)>f_0E zevm=`hID6@9BFZzxQR{Kdygwru;t3=lQ*^Z)2UOU&G9- zFF*JH@g54F1$UZd9&M97`}+wWsjiQCtUND2@#x&IHRRq?<$~mxN2wwAjym_A`gr%| z(JwUQ-dN=vzq@d64l<8c8*=y8x!#gv9{v4>+$-u{IUe(9u_5=3FIMN z=Fvz)?jO`Sc^xp1o@~hdbd@u*KIYLtL+OVRb04Gs^tHuI_~M!F>OGVXRBQC_E3ZLj!ml*sdaGQP95dky4Y{}0 zxewOIyEhYlt|8Z1 z2TG2a@V6Us2UYIH-~GG0zTUYXZpi&XmE*JFr`MVLp}*RY+o^I{&V!loml|?+>fGJm z{i}PK34gI6cdK5XoG&xszj|rz&OfPhcaO*O@mzI3^j|dOZdSP$e|L@EJLj1R|5-!s zXY1VQ>)=kcAN|pW+)|bEr{{6!JTu{a4Y|)$xqSM3+&SNJVeXv`xtaQSr`P$;`6n;T zy}2Rxbd|G`VX2N1a?i;^et?#2H$4t21ko!uN z3zB0dTx-bvQI&I&X2QE0 zaz9$-j9kAKzW+DmexyF0K>}}wqI?KHOGc)7`0wfS#!b@Q$0TRMn z3KYUi;Y`vN)~*(zuGqRVN!0cc*Vf`=(RO75)uQ8Cu2wDo*1w&Et_50^r*)NS)lR^* zto5-hRm<94dnR!$kN7AnEy*d>Jm2e_`wlZ~-SzY7$ME}J_xpA3bD!(J=bW}8JLZJ( zZ(;Y*z%KOD;95^{|9=a+Th#7YkzJbm|Ns5ZbHZN-^(z{WEcgGnu-g*kSJW@e3BSI~ zu6Rz^@Pf_>JtNN+4{#sv;0##2HJM90&hjwk@k(&cZ4zhBbRVXkXP7VX9)L7+yW_P; zeQPB5Y}CoUpXVRXalXZGzc%xnb1KeWdKO*J=l^bac&ZakpBkLu_@{o!Gs@`7l{+YB zu&YdVa5m`mn4Vp!J$&1bIO|V({rmLe!w+7F#iYml`=|Un5((Kq^LN4MKjH5Vqd(8z z!@Fi3IxxyP(iI;QoO#jT9eI1oWZ;{QKiES$&dllW&s@^q@^yXgntHgO-w37o_YV3> ze=nrJU(PaM1> z4tJc`nAuKrd!pRA@r&ADQ8$+_b5=OaiwW}5esR1ue{hEDM;s^j_w-T20oq8O_2lWI z{U6hBpQg`xNZ(7k+0Nhoq27r$Cmd&K!r48&hdxd@@f8VY#!~$|>ol#{O?gS`kZ`V8 znk1jB(^90(G}^%;ZF-=k&Tm`MP1>;j)0W0b`(^5&b=7*_&EF$2vnt1bini>i*RyA} zhh6HZXN-;nHN8(7kKcDfxXJ?z=%x@IuW+Sr8aaMhX zzwhDi5AJggRXPXn7|nmX?v5VP{Ir~1cgGGDVzI-!?jCh$*PCVhSI&PGhdwlE^r2ha z$R}>u82QAmH^-n=@!wef8+T~e{_%(2f4AfRk2)uJs}srXdb0+70{=}swCnchC&KIH z*gXl8b$lUwghJNwEnoI^kVQ{<4twG#f`G;(;b zD|Tpzvt`pbgX@e=pQ<@A{9xxp?jb#o`vIOT%Y_%+p+IQ~ImH{KH0*EHvY z>#VfjCTqWKA9ZLo{kGnjepdVL*`GUy{(*jrzeT@IH~n_(Ir?piduWh+N97%vmJa*P zi%mQHtBJPH$}$J(v-i_3eyc^lY5ZvF;Q{8!U$r^8vbX5FZ6$rD`%`s?w|rC27GCPR z3-sNy^xe6_jUS7(+&T6_`y@**dE@G zroVsDzI)GQeK$KE`&rHR<zpvU z@7`0v9LBtJv1@)t=P;eW9>8wOO?yw>^}mN7oXP*Ity7cqU*&$K=O0ruoO2PkN>UAu z3|Fnoz1TA5i?1zPmrEUYqyv^nRmo4#Qe6@0(`O=gw7hony4*jZO(MTe@=tL#G_a+- z{ypn*$JG8nRPB!>;&bKv`L@TxeDbs8D4O0EQUfvR*1Y2_(tmMX?n(4x zs_z*U=9?wohV{88(EC+yC{vxidi3kp=e~v>Wgbl(4|INShrVNdE{oo#dRKXvk26;K zA6}n(2)$GFScMdVa=EV_U!VIT`fk+^7(Io4c75&(=mWK`^eStw4AW#Cd7v`AxwFQ} zea7%8b9-u_GAt`TRytdq+%Ch~lRd<_$28(?c}-)JEkl)He{M7bN+h`>sNNbu+$joY>MRGWmq%@ zYabV;%TJNcO_AI?469c*V3=1WojW7B4TiNT+cVzOlXTfg&NZx4SwnTm(oyL=5y`DG zY`3!GhNV_Y=ebC3sbRg!x@t^1+E*9NEif!P3KpB7>_{S2Bb{zEH^;DgWd|lmQvEki z`)-Zqt}v`kS^LB=Pp?`!_eFD44C_=j5U`Vp6k~KWnyZG5!OsV}nlru1_ta|IlZiB( zv9Ewv1$;r~nDT~6AOx5f2Tp|?-{Ne@p#DFi&v?CUDHipjgu|-#JA9A1!b+v^bg-hTW5saqpkSG6I#}R z7C8nx&-y18*fwNR2aKIFUe4be@zqayur0)9Ft^tp?k!878uzE+2P^OY>?yquz0uW_ z(YexP&U^j(dHz?3n=vo$tH|#;^;%bBhWmi;9BK2v`cM2`CY&QrM&jco&H8&dHY@iz z^44{5`WU~rSuiUX_=7uM?mKl-RMq@+=%WCEaBN>(qZP!Q^D_tc18T}|54X_lMcH)>zu!3p1;ZT*J}sX z%4;_`zH@Ygzs2-bx7LGxDlDir{Zb?Av>y0J&|h1Oo?a%cT3&-GkLQ-4yt^WPuPtwY z^7hR0H9pJu9C@v4jl6a}<-K;DztWT!wvX~&9zRlEJ^4D67hb0tkE+gT*)z4guEk;d zYhYysogk zU!i*g3rowpE#kk!mdE|{{7dtE&z5&!rM$MD^3GlB57_bof1$jy<3{@PCt6-{f7XWO zozU_cE-P<)#9wO5;~Dw<`FZ{i!txlu74q5|${Tx)|J>!}J$$LWC$+o@Mg4hvT+p9S zXn9==O51l!#GhizYv*@r)s4Q!XM_H1xJq8zMtKKa|8ZNM9lz@@mG@;WZ(LD%JHqnz zX?X`YbF9~c^_Q-Q|HhlDEjV>y$ zAuR7>THXMAoW=J?dG z%yf+c9q+ zFRwjAy&t{CpJ?h`xOHz(@9y6`dq?4cm>Gi!^5!D-r^X=fdYktR5&wfW?*n7x{KJj@ z5V0`z-`L8}(=QDf$7%O3@+_qD!6@!|{atf1g@$m9lV{9*AXO#5BL8T>>qE|1Cu{8e zV1oQBT<@>_UF$NDIbmNVTkZTmQGN>7XN3N)wV8x+`Yf3;+?^;thEEIls!UQjeV5#8 z^Pea`fa|k{-t)Va;}gjvHvd}rE_`ypugdf&=RTG^ZS${{Z^3n~(ciT+)2E#KS<;D{ z{;QQI;JQ}n@47NmP|kfV*<^UORvv}xTBpCOB@>wo=l+)5WVlx=UxDjdslRJUCZW8u zT#`EtXZ`#|xURMOyB24X%A*yM%-ZrN$>-s^R_pItl<8333qN6aev;e+*R@`M*TPJ< z^0rDzo-^E;EO*0ot=QkSAk(9q_w^;~5@GvNljUP@U2FEU*6dSGydvouo}DZohK~;T z{7gYPzk^ENYPd5+-Vd(~cvB`a4}J{3&*ncx-V3h?cw;7^yt7J@M{WL7 z%A;c?=^5@#k-vnO1$=I%Lpi^{NmkZ}^>?SrHE`>n-OAg>NwUT8>{M9`*EL%|KHa0d zAHLOaZ>lVZTmS7-zI(hR(}u_EWFg%8Z$Wu|wImN3o~n~MaO=O3M))!KNn3uM%!FJ2 zO(^fIk>rpqzfLB>t^X#K^Bap~yupmmG#LxG{@bCv7rxPOZ<>sPTmS7=-ZoK^w;LXx zE^jWpHz3b+27R34qe^>285ru-Og{kKDTFMO}z>6!8a zxb@#|<(x-P9Fho3gwn)-JB zZ22(U`fouwXI_)H8t%@P_rtCKMw;P#A1S%d@bqkXFWmZXLOEy4lSd8rX3LFm>%U3m z(Ky$?Ek7=Q3Agiahw@%{Wux)0xLgCb{@bm*Ey49~cq%Sy;nsh%@ZdR>n2)=)F_-R7 z$a1*#-yTiByPoU6F~{@jzC?PJEQDMC?NeUg!1ZtP&&FjA-1=`p`7!v(fb+Z?mzi+u zzmWy-&N*EFhI?_D1h@X1P#&Gj_1~oJW37{rv2g3Z9m;#*8x408G74_}H{fmaxc&`K zC*;iqm;AR|)Az&o8=g*cp_>%V=<>zla#4UgB$ui(~yBMafj z;5GBZ`n&b=uW;+X3FV#hx&94L*UL}g)_;@Aqs?6ZhUe?$$8hVv9m;#*dkuFQ|5d*GO0Ivyoq6(M z_=x{5hSx9U`ZwI2C+~-k_^U**x|T>rNG zM)^y)oqxNP_rfa|8vkmPYv9&@`;@m`#r1D^x>44`t^XF3_rtdu&U+P?!$10V5U<;UPB4d*=tGvOottGu(7>))2&B$MDH{;QmG z9m)8juzm6QG8R7Kzsh^z8w0*C!TM(u-1={y^0w7n|0X@}J$SSElK&Qz^G=-Pe#3bu z!fSBrzmXRB?loNhhI{knw{Yvf3FY-`x&963{Kv20)_;@AIe(F?Ssd0s#qZ?c)_*&c z^RAs_tKr#Z`6=A`Z@2R3I<9}iodxn^xb@#2<-PE|hPw;o2XO1ZeahR`bN$==7sz+v z)_)7id0$NOw9S8^d<$;xW5f%EqfrSthy3*f_i=0~_mW9oWQb)h3on?ld;;BH4$H^`~xZX4R?9tV}X% z>$6Di#m4$f4>r@TP@8F)E|#0HvE!7) zrfP-SRArL;jE%Qg-ieJJiw{xVTQ{k!&W8oQ_^b%Q*jU9^~ zY|5@x8^)sY%CKGD5?O(b9g99}VsBF$#-hd8I4!aW8#@*SY@8d^#>phN8k(e3=v9b4=BsLS@r#2Ha$&6%iT zv45jBV>8K(#wLBG{0j}BbgIrvFw*^KFj3m=sFfDjb+D7-{hCcV>W+{WiK$gvs`*?{ygIsw%Gn&E)T0-PCh)_ z7w)q8ESE1?d!FeF2aF!SO724s+RL+i;d!H{uaeKI{VuIP`gxnrRk8;?FDRxfNfdU}O?6un~_I?w2Z2aN8mknQN*>(O~O zFFa%OSt%dT{B?hlXY#^;&1a=-v-$HZUZ`4buDO-+9?fSA_B?|ZmKoh`l`ZIAgZf(S z;S2a0dxfXG4G~}8b2jGS7f$IJqw~Zk+^(_m`iqVJ+l|jv!p^g=;=K17f0OYyyVhWj z`A8()D(ZXNZeN;PO&N9_(WiTS8mHQC`Y_unOW}6T2z&=0Oy+GLw@NeIt|J1jajG+h zd#zFrxARFteNW?5HKtGEt7JOdt|K~(Zzfye`kawpBNO3vuIWf<9}%ZY*}h&SW8ik4 zi4%w8IflJxo@4ed%c=FDr&h@uO+|B%a*b1+HaxpZ{s6c4i*Duk zaMH13w@Q8kxA%%3t(ITF?c7yRu5qfJ%X3NHFO9E| zQ}B^_i#U_|crt6!r&r65;PxJ)aV+)q!lt(;-AVjPF2&Y_1~B9*2{Fb^-o=gr!-F08t@~DxFZwc);}XPaE()?3}+8}4BYx> zLb=AN_8OjcBnr3wnN+TEsw0Ny9eJbil7Dt6*ErQ_n|_h}0dD;>4G-#_o*=HXDwiT= z^&7bL&mK*$ajK?O;rKWa>4#hYEGXAF)h5H;i2MR>{WCHFu5qfJhNmNP3U2)~pQ;yK_agEn-1=va za*b2DhC5L?47dK-r(EMyw;CRgN-x~{XF<8fsrDJ3ipoQ9>z|Q{aE((PHJtM)_rpj0 zQ#rAzq-S_GDxZT}|Ljq&ajMESp?}4>{^8a?`;=>(swLpWp`!9hxb@G1a*b1MHQb5G z9dPTPky^OMsnUkWWAY)m_0ObojZ+;oJQb5pxb@Et`e%o7jZ>X5JU>e6;nqL9m1~@; z=4w;_Q8FEF{j*28#;IBjkC(|rxb@FI9bGKf9Ip!Z#W2mdh{T)<1icYn*DQ;i+;t1-Jg$r(EMyS;MpC@*}wQ&w_G|Q=Kr} zE0<$%>z|PXT;o*d43AgH({Ssb3FR86s#_nn&#jOr;nqKs$~8{q8lJ9@!*J`Lk$Sks zsctnqTOqx0>z@hb8mHQ4xK|+$!L5HLm1~^psNwNSxgT!*vqQPYsXW6|mGU`w*-iV{ z$C{hzR<3a>&a^U5A4y~@WjB0Oz~^Lolxv)-#c;1uJ_(Nnydl%4T;o(*4UdnOJK)iP z*JmOPaE()?4Nr}h55Z>zd|f7?T;o&+ZTX|66FxKGYcomZ8mBsG%O5Q_!KVd$Ri;C^ z#;JyE`D0`=d`iIC$5pOzs(2)9ALj+%2A>%4rI{Y(8mHQ5cy^4m!6yX#%1obfjZ@uj zxHm>t!)pT0KJ6U1#;Nuj&Y8}o@allGPpe$xRC&YQDrts~4>*3=9 z&OWVjjZ@V`!}_PIWIB9oz!zo;OW+!(YBfAxB@^LQ0bh{m<1Ac?I8`D)TDGO4xhmM0 zfHi0IOq0f_QW_W88_gxB>GMNeqS#ahHtfSX-9e0sHF_p_B&u`dzJ#+<{JH95>O=D~ z`V6Bns+7h>PTP9Smvh)yKZ>|vj4GvZ5htc?;rDg(mC_j131gEUD^Fu%$4~o5V^k@PQJph3*|GA!u(4wlVUE!lRZ3%2 zb)&*@%#W3W*o=&Y+a1KHg0XN%>0C`eUnP%VGcpz_#)24CFc!Ct%Jt|u$9TDX8Jm%@ zNOuP@s$eYkjmqixCzvz-4x5p&$aV)Ys$eXR2K8Yqn&lpBM#duF9mJ@DvG9U?7>ng{ z7d9hf;dKWws$eWC%W{$6{<}u*z-DADu+bP*FcvLkVcWg2@;|V#W07ze3u07}vV(U7 z;){g5XULLlWGm(q1vtv}i zuIz4W$2GIj*rltb0lSfLB90X6wsu@Mw;MaJTBc!V$4bvmI-jw2Ts!-Xom(T-*xB*Y zGm|qj){g5ZZ|pcvRfe4%vm|y?_E|fwp)?VB4+HoD#RD|u#PLTh= z&W@X2v(*o&-4Vu@acebp@rm*(c6Qtn*o}L{+A(e^W0#&N|Aw6%wUT@ZuB8*$G9Cac5bcw6Lxmoy0NSHhP7kdP8+*?tvrjJ9k+9*c2l0Sc8pur*m1Vz@36DiTMu>9{J<95{8W$R=Ec6Qvl zv5WoQ+A(gPv5QZWtFg1=)`Q)w*Q_1;DV1Zw_NJ%FGVJWyr4PGlzO`ddrN!8B)@D9- zc8yZNZsMP;9dY`tfgO8t(`7bxb}bT#?%iAy+heYy8sN- zcx!va*Y})htkrEFC$Im$(Lb-hBbvwWd{*r_b%EdaTzH(=erucm`uD=ve$q)#%xi4_ z`Dxmh`x2>{;*obkb&c(xH+pua`~p3qy2kcrOb_ijfAdpxO`9j4n&7<6aQpP!3t=9c z^BULRZfrSg^H1oMxjCD|S@{QTXH(`vBWLmR?fx^Soy3y&MdGtW+dBNf?A&9ve%i)oW`}KY zXGxE(pSE$p=&4!qu&p0$EL6oq`|K?F5_-4RTidzJ=-w>35532>^Jb%S7U#3*eYTx@ zjGme;d(aE2>;A>#Hvif3x9IvC;5@P5!izTl*>Wd(LUm%mg^M=-xO@~nsk-i8G$hQJ z#$`Kthw8e2alO&garpqcH_#CDFTY_5`*%&mf8jrjAH}NW^~NT@!}M>(O`oQJ8#5R7 z;78xR&hIk)+g+!1q%U7=4$EXc`wsGUoPC>FQ?XteE8fNCoch#8^aOg~M-9O_0oGgz zX+uw{u6=yH(K#Qp7QH))u6?}2=$wmLf!?FK`qINj=R8acdY|g*OUI4QIhSVig6i7G zXKg<9G6y{pL)Sj84fgd}kJrmA^n~i#$7_tvd6hc!r0UwoT}F2sWFmUE>e|N{qo*5W ztmZQcop^fTsfD?O_D6cLlxse!>mJd|MrRMzLGMsq_lRP_K0Wcr26>~N{8iUIq6Le> ze6pNXNAFQx_lUL_`}iFB9eSb+UH6FYGJ0x`oI&>*!ZB}SpC-7bR!02IcFYGD^Y$kH zS3d~njtd8t%7u3`-c9`e@4F+v|2qyR#&jM{45 z)VI$YJ-(FR@tQiTZ_fzMG&0t6WEXn3+N*E38=c=oegeHmb@lD-M(2#s4)i|N)wdro zdU~$>4SGR!_3dYjo}VkXpa=7c`u2d)IV;qG9?UE1+f{SJ`g2C;X7pfQQQux>bj}97 z3*BX23C4mwZ13i|IrZ}!H2=8PA0OUh?0N3|3v_QF9*o5?JKrpb_)ncP^Ua=#^7?~K z{xQ)-HEsw*`z!}#!61qmzbI>iB9?hRIP1Z~f z>+dwlAK*4V*QcDZO|}~DHpy?`Ha=HSuKR;2!_!UD54Z8TNCM7SC-)kj=UXjs8=p%k zXPlEqZ27z=6K>;kN#%@v^0X~~zWfMo<8vL#nctGml(7D3-jf5j@wsm0xRPWk$Sl951z33 zFOY}eHh!E?uKR=MZ2k-6ez^6&q;lOKtea~5Z-IOcZvC%Ax$Y0ThR1nNHr)DOw{qPd zyw&j3Lir@z`d^=N-5=a%cy^)O0k{5FP_FxfM{W5Frk%ygIf*HE|Rywt^ai^*Zsk? z;oc%?gIoXWQLg)g2Mu=@%WAmwzdq%|bYf ze=u&=x139=hg<(kD37xLx6yFUBu$4~|4S*Zsl$HvbkG1GoOy ztz7p9^M-TACopX}I;jKIOVUxXEy5nLG)%{-<%z ztnLr)G~8V#hvC-$0U!Md5|`dKcYgIoXWR<8SluHmWWvKwywuSdD=58i5ccDZ~KZvC%Mx$Y0{Gu&G) zcfhUx6_o4#;89!tRq`RY^}k3GuKRrk%ygIf(xt&q3Dt^ai^*Zsk?&3}co!L9%GDA)bLgN76PUJbYY*QZ?f z2TvOAu9T&4>wg91x<5E%czUHY!>#{C+TglB7@uX@w^Hii*8dX9b$@W$KbYst-ng<)W491|u2nrsJ!_QDqkCPm8P}-C*rI;OKD{)OOOTa0P@B)RZHlfRcS_2xPI#{R=SjOoJ6 zU>9S$_Zt6mm&Wv5B+a|nbW9(goBKHVCbYj8)542$!}es?%I)Y$)pcAi8a=;OK7`(( zx{hnZywKiTEAL0|R$a&SdZWj$miM9esIKF>!|0qd+KS$%x{m9^Mo;tmU-W|NI zrQ`ST%&`5OQ*zLgs_Xb2H#+B&-k4={9lx_i=Umcj=pAaW<5z3uJI*8h&gwdTYmCl0 zq%-Iadyv8N3->**>k9ljCjICU&iw@AmofHPNB$K(p}LOWQ%3h3`MKJ24kfrQU%o>3 zym)q9B`49nfh&Uk()U3G{ysJ0ueSZgyGSln%=dqs5B+`2w{#9`&I~?Ce{FUBpBxS6 zu!wVzGU=NGi?naJ#;PQzWvZ@y_PmXCMC2*0qvN*3=1KnrY`bCkh&%}EQAWQ7>;c1^sO*FFDdRc_*fWO3qw-mp z2h;XA)H8^S4J>A!D3jf=i25JbLy)d2IOoqAJt}v>63VzH0=CSsbW}bDb74B3L7p!2 z{>@8rI{*C*tV7drZ3OA|m~`2wd=S>HjO!y{j~nJiWgDzV8P`a_UNnqzL|b7IGyetb zqG6mNdM8Yut#sZCSVM3&oZsPb{zuc*!+0(W*!6~Swy0gxv1a#pCJWdO!}2j%3-e$j zeWr8k!!5LLtXvha(ARd`YqK`uKf*iBg8StFzSc0`zcTc-Bcp$@8(*8B8GIODyW91b z8D9(H!yfPD(`)m^DY@C?o6s>-Kf5@^T$?Lp8hTQ7y*3-nvlaV{wdmcd>$Q2k(K)j; z4m}d|Kl%=%b5^NB^AGx7=TM__Mk#{sbZq#=|P_LHqVNPzu4xvXPR8NbH1N9ZLavRwz)AgcrW>$xz;~s@{RD` z2hB5h??YE@IA`Q*n5XVZ-bvM=&+VKC`#9XLw*yZ7lf0KI z;Q2E72;8o>15P`VyqhZEUYUFlZr9t982Qtlq-S`%T;2z_>+KFLpLsA@8JxAC{Brp# zxLt1t>6r_YEr#dIlH!F-Zu4os#^dZ$9x z!R>ln>zrp^Ot=-Y?O-go5@y%pJz6)7Wu3HjtB@t|k+ryT=ECHVty_gO!tGjI&*S8o zACvJ>Vc$5FG8=B61;e%ztJ-KdXSt@r?XzIOnJ1IC8=kL}YWT>rpq8((to=6s(NY1o z&w@$i%$Lc$&408E&%E?3m{87~nLK0jA1#A$`z#o6jb+sY=Ogwd;$!6ZaQiG6`6}r( zmep!_dW^gZw|*B%!!?$bGMuwkufXlIpq{nKYb5zXg_RcbKPnR+FnkCR8>);IgK|239%!sb6t z9)w%p)O%=NV_D}6XKuR>Zv8VDAB|n?Ubyv7$JrhB4>2s)t;pqxYwdzt z{~Y1$4Y{|%iEG^nxBjX3m%PTZ_L=;>@p2p7`lqhx@*2xJYIwX_Zh>3>4E-PO8J?<^ zZE)+K5m(z!tg13Nhrr%gwY(c{V-w+KH{6sJ+z%T)sW45f;7Rc zZw7s%ajf|0@E*_mYU1z_-`u2aCr-7|aL&Zk!L4t0tM6$X>vqFA3sVCh@l8#yajgA@ zr)s4V?sZM$emCW?zV9_!&ffh+$G_t@de5lid6516Z_f8eeLuX%Pn&q}sW-b;Wt_bm z{EBaf_l$`5?8I~fYm*0B!+LwQ@`oARv%P0Gr;npQV|3n6^IO%K-_u>JSq6;G*_mIX z>vfrqv2UN9#CtqflmLRPih`P-O+a#owGGhsC@>Y)N4dXn` z-`g|;JPRJTc}+9XFSOBj>5|}ziIMO z&5wRh5AgfE*jiJ!X|i4Q{5L12_l#%n*yx;d`GD#z*f&(OcWm_ZblDcdMo#(Q2Yy!_^M&~@s+tGDhpJtCWSl6F7EIUK4(=@9oqkSUr zA#+Zivn{UG2hiJ%9-k?zHLri9Y~H0=*ly3&&y?kA?>tExCUHF&o%1S-t$rN+8KdWC zN|WX@{B_zend`ym&J|LR?y-I?#AXK9CGYh-@Y>Y*%+YJ}sXF7ES4b6k>zFxuZN41nJS(?K8G5(sdTqw0 zY0QNC!!#M5PMad=T$_aj({f3TrQ{chuX-F^ug@*$x~Ae>&3V;bbiF?BGJ5(7`M;{C z(e?T~FfEsuuJ0sil2_5a0p97!eACamRp%k^yyL&qwl#Kz48A(wA7Ibb<2hsM;(KW8 z%FNIf_QW@}`Tzc{u&qIxw5>Z5VO{c9$Vu`J+N5oL*yzqI`H|Lz>o#cXaihm)$q!WL z9vrmwtkF}mNYMAccl-lm5qhHY{=|3ls*Z8~oBH0OWNyR{FrO=pds<@}G< z(Ox^X!E+$jPC}YhSO3#%XN}Pv&i|l$2bc@E7W5e|7>`#S{|mP62WHFQnr1(4>R$6z zt$Rym=sxQ1x_lmkwj6q?$(c=wr zaT>a7>i&Qo?*@5Y^)$L(_syJ+ z-p*V(Oui%aK45frt~`o9Qt#)D&e@r-YCYI*(Ry@Rzj(>t*o1X8$4Tp>yQ; zg!bX$%+Q_GWxwlx#ndHInGLVgD%*#1x_5y4XK^3C==lG_yZBXe8yaNr@n(O!sryiD zoD6-FdbeKdf8_E$Y>$O~n4Tx^(R>HE$CF3B?UNTA|G3RJHb(}ZYxdt|#%A1m^&Yt> zGxQzuey{7l+xCgJUGEzM)5Ck7+bV6^7HxYlcg+a({7PA?x@-DmnbA`#WrgZ#biGz? zHoCV$T2yy>!amt!ba#a`2RePI*UIBY=ltB9K&KD&9{HltovUP4pdSqH8y9DUeUP6g zbynB=M#D_wUyU*`(D7%zZ(Kjq)PI?bMfV!QK5Mh{{qv6haocAD^w~hOUunmp>q;5g zLVx|r^{Xx)i<`%W<#8VALS2zR?=gC|QO==zx;|r!+UyuT=lD0-@{Z4y!Qp2Aw@-)H ze&Ikh_nXM!!g0#v8zaAal5fhKkL7+Fs}a5jKt59sKl0i2hj#zbIpob);JXLr$-kMj zRhiG6^4aTfK75_;kxt`T3FhRuj_u9n-2kjNo;P)k>)7tG?+j>?e?-@7FRuRnxY1Kh z@+`W}8F3xk7mc26k{mj*ymJv^wQ=V0;fu?2-$HYk*SUwCOyCz@!&SLBWBd)(!+YDg z1Tk9gdUVG4pz8MC79SR zz}c(9aq*gDpX#hP;<_HFT@mW>`SQ6y-@Q4m>wz^!PtBKm0{x!Nah^{KT}IE&mrn)y z-pz4+Hpv*Bb5J`2ec$Fd&nAVZZ2rx12YSNE()VLnx7hrf<-_Pn)p;%{#8!s&NjJ*} z(YsaGXOaa*&o@g-^N*nGGszaC^B$+0RCm#NCMn!ybl%@|qv~mNo<|A?jGkH`?@*oV zFs{!c&l^3xKsE+?FZJhHeGmYhcGZ>qG z*x7rXU+LWP)d>4%^Z9@M=ExA&#_Um%LlM5EbMw0<9J)xJfA#i>hn&aAZ)o{bgZHE8H(cuPafgoa zJ(4lhqk+8mb{pRzsU^QDhyVSvd^5^?yCpT1?>O~4;u9^J3x7Hh-!|J6>}A z?~(4U`eO}g>nfc82Q-67yS4s0M zX?BI>eEBWXOeW26wC+-0oh8jnqd^Er1^7x;XfXh z7xcq<(p9wkLkB3UYm|KCzesnsINhM@KiJMXdv?3u@fP*-uzjR>{4cuxOP%cPt!($- z^%nN}eY97iMgB5Oy>6gh_lEtp@h#FkN175Jt4R8VTiX4r)%GdlW6xajv1hRNs<7Eb zzPE+>F2(k(eB}tXIwnCMRg>mH(mWiF$K1E5%cGaqrIs|`B+Y|b&RD4<&7T{OFBO+H zm2}UM?q$-om&=&{BHg{k>1L4b71DK)E;dHqWRL34mG_C_bhAk}NV*+iy5E^}mtS`u zzPx=6N&h>?cn^Q|HTd^`zD`rvKU+MW3n-`Y8h>aH{&~Doe)?b3@14c<+itG!_1A>g z_mZUlkEDI8F>5E?$o0L9^4@)o|FqWa-DZxv?b00AifsYiySa3ZTZ-^Y zIrL}BYb>tk8q(ZLnnv2Ur$WB+U$k#pak}-SdxUh4Qx@0X7ygTMRYmE_C+y+(z~vde zPYm7{@x6BP`OY=|r%d|G$M4O<>d&>8=9mrGzd*Tyq4ns&WOTfJfAUfQi`(Y=eMY46gsw~_X-YyH=BKcd~FU3n?(9hw&1 zYuHe7@Bgr--9g%Cul4_3({3r2!AwWht3v@c!j|6J2vZ_?g-DeaA# z7Tw!Xn)V%<_Ab)?{#ySzO?!h$`^`&fuhq2Z-ovG7*K68cq^-ElABu5ZvR?T%dA!wn zWjVGb{&a8BzjF^~BW7RcAJTF!^S>tShodt_{JO86J#FH9_30|<Z$o~Z+zYgn)@_ffPsd3ama z<@jDH-)I{xsrHC$xB6Y{azP%HnHq@52hfRaY}Rj^M&ffN#kJFaU|nt-dXPRpOHy1L zL(i|v-GnxDp7fe8zsE`)kIB2xdPyJTnI%u=qy8D|b2p$LLyzk_{Nm^_)_v{kbAN%} zZ|(D1Z}jc!bM5HSh{=cj-xT+;{s-3Qu14pXd2==>)1l7j&#cd_MDMgZ>%tWCXaB(Z z+?D79d~$Obt9Dwmo zmElQYJC0eF8bcfTHW=?y88WQjGWM}j4Seg0cd7h`VNv$`g1UJ0F>`e%?@{@UVfB`= zH%1;dI z4H@T=YiJ*gccwgNSd{1Upq_bc-vsI8T`76P>O*!i;_*$YhKYRFESk$1)&_I+T1e^m z!FWf?lQ7+L9^gDwr{!rK!&=d?KMdDB>jBPx^;({X$0h~i-wW40Z~bQ5G0UBCv=xpI zJOtN0^8w-={g%6M*0kye_rrD1eSovO`c1Z=erfms9AEexT=(n;h==Jn*@ElH<@(yg zckl3r-EiIWA0URP-((AXKEIr{PYrzHlW;vVFhHC(%KQL75=lj9KODcf1FmNd28d19 zTkhfiU3GzPd*76ypBw~cVp$EF4T(FxZx4+HEqbXu<0)&V#^aueKRziTQ!5wtC@ zZJ#bTqU(OR$M<2T;u8V$wB6I??J(VIALwcbzReaeXFP455%|cpaNVo_6~FNtWd1zP zH`?~#ANmb8{r(!?G(G$V-&xk@W|x@Knd|5M@&0iC?WBHdt(|9TU03K_9puf~3;izV z67miH?T!~m=f;Lvxn`@S$4f9rUOy}6FgMPzdVajP%uU`7bmqoc=y8oT5j#q${xCZ8 zW1ZFAYDuep9Gy9GqSe#Yl2!dII&C z>{#$^HP4pAJ-N7?ACsT9W2BsmVG`k;()qZHp zVck$%&XZbBc~Lo!hvhtB%OSQm#Cjws=f&|sd%A2n2VyeFH`OkNdpt+Iaob8}eE{l(?5W(vyL6PEKAwwyhqWRP#E6>K?tL+yTB4(qStaz3Ty6!%+I zSk6vcj*buOx}cn8VL3}|IbD2foNuT-7nXBUzn!+zmctscxSaQ2Ud}V)g7JBuEr)j@ z4zczO${83J^xI@x4)^InzMb}U+aA7|_C8w<>)7IQ-lpXgkI(k7oNH`3<0yyqaZt_! zVL2BIdhP3eMTHD5X!IYj<(zBtud(H@)-Eomh5Ukly)Sd66z0KC0Z=zi!<`c}1JQoFhk`L?tDtS4amsKCm^PRMWhkpH}@cM@Zww#L% z>c3-B?qxJRFB|y0o{N1LTjqeDp{F=68|Zp2_BcB2cmZ9si~n!_S!fJid`O#PeX9Z=}_0o=?SsJU?plWZgB$ zx6nr0JoyIN(+;!tEKffTwFEt9%IFIZAGW+w+ZK`L&W)9*^^m`7*f$ZqGLcobzLz@{RD` zGT8>V=NkhapCk^yxpZ%bx0TDg;r4uESpFo5E8h?AFP9tO_IzW&IYZ_u&%<|D$OgDQ z-xzStlBJZNf!9~cdbmB`7;w&%rIpttXn&=wgxm9t0q3k(R(UJDbF?gh+w+ZK{!=8c zJOz)Akw&;Z-x%gUMLgwu;k{#IHr$?X4D+8N&OG=Lcw3cBh1>Iu0r#dzT={8uf0b0j zOZ>~7Dz0*;p7xKG3V4ZsWv5C?c@w;ToD5I6%)h*;l2*P6evC8q@Dl%u*GX3SPI%{d z`8~YEzfyIQSDuAOtL0UAiGOhx%~O5?-dioNz)Sqgs}qNBhq>qAZ8h=|yu`m!(dPf;^w3PCL@cOB;3tsA9GbOG3B>dP^xf5RE zU-2s>t9%IFStqx_OZ(AAsgT&{*~o9NckCf{Y+U8FY&MZEJ-V` znMeC)%1U^Nf5kbsrMwl+p1~4$iGR7XC9gaMkIs@tc!__dXN#wNFT8h_%!Zfvmp5A+ z-U;p=fw#?;sqhm2;#^l;`Du9nY^jEq`d3_BA+<(2bkf0H}{FY&K*y*PYZ%x!_U&6fw^CH|GKm$>q+@c#L7AH2lBoCa}~r{TMs z$~Q<>`4GHwq1*;9@h@kNc*^6= zw11J@0xy}r+&Q9aHFqPtcady^TmK5~Z|OM_SAILZZLz!?UgBT*IpQkc5AR!o~_?I(J^2%G`oma{d zc!__x^Tbo0f=8E1BfP}FINRj#Z83K*ymzV0h8OwQ$q46u;>wS}+m^{xc#(gxes2_4 z`Du9nGO30a`Pa#a+bAjJ&O+M1Tq@v2{&g~vZj`k0CV2f-GF)BaU&O!~C9ixF{Mc1I zbCvkl$w<6OJmov#oh#(`@FM>@8R1Ng!#4}uEIhhWUWFI=*U1QHYvRgJz{zd)fOIG=< z@cPyAEWF6SsNa0aE8hn{wpzXeFY+(yH(xyEN8z1o*QW|iGO7mNLKklc>Q|W1uyllg_2i(5`JvG+zBu7AI`ma@VeOUQ|=Hp(Ynk>uqm2@ zPEM%gU6=WV;#^5S@g>+y$b0~sVn3+n_oNYLk;K(zquNww-iuA~SdW{Cjk`!(wYgnw z#$~o(Q#_tkQ?W@cl9bx)SDUKL+psAfv(YoL$u5$#+T_)ScaCCHJT4WSsf>7wB&#-O z)TScSicN9fm(9Z_zF6{VQ`3S?S!M|~#r+#wp!HcSp4zmkO)N7Ho02}x^6tH*@Kj6A zY0*7PCvychCH>5Au;SR%T}40d)qLtQldvi2XU@__c%P7~c^y%k37INvO8R*{HoQ|P zr8cM4raBYFrlg;*!G`w=rPapKZ-b4?_~S3@=fA+lX_2hjG^tHh<{UO9{rnDWQoKJ; zZ8oXR=*+9wl=L&_u_L^L$Wxo0YEzN>r!ILlfrMG5l6V?-%LDdPn8Vv?KAzo zG<$6O^m}JV4w_gA``g^}nDeg;Vh>*--{9XK?b5jJ0RBOo^vhP~-AAtKRaXY_gkn| z=38jq%joQ>&9S<-Qu6Ezda>oyf1J#+I%kuE{1>3JmsW?av90tNVp|)MKKpQ|ye-Rv zIMfUOYW%BftPJvcOpneB0x(9O)Tov+4{oYtqehnX)vvn_tZ(zmo zGq(j!4Ca+V!ihos9B${CR3dmrITC!&EDa|H^%Ho>Jvg;W;u>Q+2qy;h zLwNBV6vyu`mW_OAQ{oEX$Rc!_`UE+JR>IXE$>S@077;+;Y%<#j7* z|3sMrxBeB>&s!J9C|o!(sPS;?UjdJ=4`T?o!ihnZ!%O_jT_45}_Q8ok{b}rF{*_uE z#t@Fei9ua}m-tt9eHcUV;KZPQ2QTq2Z@p+N!L4ki{Zr)E@FM>@7l}JzjGzTh4C&PCjaWR-7(6NCC1 zyvV;OpR>TqZ-*0u`YOE0zs^On5pgEK_rr-neHmWlU$ieGapie9F{m%Vi~NiJCC0D( z44fF$XW&KtbuQwu7q7f#HSM1zpMn?p7wwBmT6rs+7}Uq%MgB$pQOPP#!HGeA1YYD{ zj9*mp%J;&FL46QjG=I_lsCdecz==V<4_@S7v_C5PI|%nQoEX$!!Atxr&itX=Sws8l zu~*|MA=7l=5?MVotFfl z%x~#t$tri@#GuB*i~Q?kM1O0d{8l(IsB(Cbf1Ql*n-hmUHg_MK7}TGtO8krbM@d}y zQ8+QE3-BWUV!b*_T;(2|7}W3JMgB$oM@dR~<<+#mS$+*K@-OOFCTZm@@cISvOL&og z?bGMEtn#h!V+-Wx@FM@B{$-L^o`w^H`U$+qzo>tic*+mLi9!7kUgTdVBU#Qq#Jjov z;l!Z64=?dAuT0{~hv3AZz6~$(FX~?|uJZUg+P_%70k{5@LJ#i$E;bwC#Gt+gFY>RG zkyN>)HT~^yVo+a&7x@?UE0?VD{cvJXUxpX?7yVlug$#GpP7FY&Kzg}BO7aAHs&ftUD~NB(>_ z%-sto2K7OB(fmdKRZ3j>5jZiZ_rXj2i}&8R%1^_ILH!lne#0ZEU$&BO^}-#8_OFn4 z!0q?S0`65xT6q(k7}Rxe`)!Y~e@07I`6f6qsC97rEtY`u4YR!Rop54ME8um(x3F3> zVfmwZcRoA|CkC|`Zoj<}mOq;HC;SAQ7}Pwt{l-UF{uptUpMw*FngzGtWC_dXjGFSg z2<=}jQ{eX7A7S}pB(2e;T9y zrQiBmm~r?XS?Ir2;vR()gSr5>-wFxqSH=36^d6iT)bHT-+b#i5lU8|Ul=iQaU&BWS z`OgpgPtRj2Z-Eno`X$_c^MyTzeG$H8=JDM#cPpG2)X(7+LHfo_IdP|84rL!f&zNsZ zbN&x*{e$`ONSVf;oRz_u4EG>;5I^`wY>Is#rtzoze4gtm=cL-iGT+6f$Pc&=5v$eb zkfCVKAr_S)PV*EtC1dT36~`q`LmbMD$H=EHa~PZA@tmOXr#N;g^4h326EZ#66pvZ8 z#-Chl(%9UtHr1K^*w}H=ejTUrrxZ3>Z1$_oxXgXn6!(3V#-GyIRrB#({uPt7Q7Dl#9##`d$rnUOM$Kk@rjN9USW zwJFPN$Hw+^nz4*&{3%{eA7PVHn^>k38{5ypc}b(u}r*nXz0lM^)lMC`%IlGkaqnUL9ljqPWT`c!ND$>aGYkBw7?O?74+ zHYNQW#GkZ(uxV18aha>IDd}g8KRM$xZ%ah(ccQGs1n?J6>L*xCNpF^R-E&xoD=&LOZnp>}1N@z~iu59~O1n8q&l zQDb*b?P8fx*x7y$?40oYV31c`dCvKG*!ORYF6n#jr`3`tzq-5rA8+RZUR7}|{yFD_ zBs`Qyo`5wc2?_;Um3KhPPNEg1Rt@;5*m5AYT4@!C0ufsdpw$|0Ws8ahD@V`@v9(k{ zIoe8uKCJY%2x`63)}3ILN?RWRk^|!T|JLl8WSkAH?1`(Dl66(B+vNK7z26`ALl+ne*k5^W47%bUoBVc3e#H%UL6^}Vv3xfU zUH>NyUAxfrZ&(UlMt=}9qvS5Irwv^+7rMR;3!%&Ck7xn<%w1r7Cq&nAve2E-a6NPx z{ShxfpScU{c|$ix=z2F?4P8cmDB{AQ>-j4~_khs#Y`7A-jQ${gJPuvXPD9rubU6(d zLzmGXO@+k6au?VxL$_b(dNh0)oKB%jgg8 zElWVxv)#}Q6S|%ahjY912j6pQf-dKnp}SbE$eg*(V1IfgDFbdiSFpv&lw7~gDyPWQ(Py^^Yryl18weg~b*E7nGn{Z-u3z1J)0 z-OYP>&`6){Bj!8-t{IVi)%g(mvxV z+qUu(-8Swrd;O>8OoIE%8f@E!@_i}2)|{-{w!oI-ob1Q9Zz@U7voK<9Xczu%;>N2( z?l&x)7#m06k*IFh*DTy4_D0|%fYZL1g%eW~7x+}*wCzd@j}dDl@I}CB+cXPL5Mv|o zb-+1~_@adqJL3s_CveUqCR=zk%J>A{3Y_zZDhrQA8IQmRm+JF~vn)JL42{66fpZ=) z7Pyuvu=a_SDc9`I591bz-I$TuDvXrSe7{V zka;VBBiAeomlzd+KMNeWew3rf&&Ck3Crtw12OPP!TR1T%p1^ybrsev9g%fL{xQEOe z1su8l&BBQ>i3)r=@ak;$Eej{M#1Z&1;Ku=LR(Zd~9~fOF2X-NIu-+=RgEfOF3C zGvLzCQSLHpA4lA_oVTq0jPB<;+t2&xXYMTPO+P2(ojL9*``N>0Uf`WwJ$4ka)a0|? zmXjdng>$_0&OXU?whZ*No%evNWPG;v(Pdm|%h=J+ZR4)84>syDcF7%O>uedbDZ{)M zCuQ92mx0fOGXW_huV3;`TW-@3e|%2tr}gMoQ+7&3 zM}LP~diIZc9$5q&{T%{a^h@@X?IS8v+hrbEcZ!z(-dF5-@c_4td&%mo{JD>8h><_K zwOsZ9e7~cyKY0awRvSa!scu5f^WMu#_5v61S8WVMhx+^2V($0iJTDC1`m4xuV<=|u zj@%Cxa*t$-JtFsieYQdBs@q50zH_bI4;FSm03YyIZ45OH#b3r=ayfX;^WFh({Z)?T zcd)&;g6BN11-$iF#VkGw-UH8h-s|84{wn6fVff3)Ker&6;5=_P_<+A^W5^kXzYP2t z;5pBG5q!X3#k@8Qe;N2Iz;m9r9eluFMg56s5_}vy=XuY75BRGnA3s4U`1Rm9&wCPl zz+XlApT=JXeiwMo^BTbi{GpWpY5Zm2+re|5w-$WBA4=a5(M&Qo_-;evfIM2HdywxuUIQp|ue~)`Sc+T@?fw%hQ z>)&bk^Wcxk{a`1$SAx&buf%Ei^T6K$p7XpK@K(PxzemiH;5UNjJnsVVR=+gfVXYDT zYv4K0s{)^)U(wIt&jYWDX@5U=0{9I5!XK^AlZS!lJZ~iU4E;)Qo+SJigXcVNIQR_x z@`z6o{6g@Y=aqra&@YGePw)xwoaYS!Z}lqyT+5F&(s=k}8e2cGl1*THA#SM*H(os--_w11$x8@$yo zUw_W@-#Ix0Jm+~Yg3r(|;&(jB{|fM&=WPd{pJX4EPNFQmk8oUk{%1 zyeGkD=ofJ|j^KBJ=RB_we1?8Wyp7=7!E>Is7JP<&dBo`mK0288f6842-s)EZxbA;q zbDYWGInTQXe1?8Gqx|#yIp8_ZyA!2f%Zlw-mh9FD<_WaXipDP2f4t zyBWOIuc+ns;NK6P^SpWBGxRG;ypQnrJBjv}y4Qiv&@bYCVuBwJetW4q3w*}>l^E^D z1s?;?dES-aGxW;59A1b zIe5PD~xD&NJg_ zxx`d@>wvSLx*oXLwSsFesZ5p0zG)|Sk^wu#_G5Lv+s55vKj$4+`f-=sH+H@4$6DQw z*fHEW2G5m#y*7ptysN7BO{XL;wXi1IATnwd+dSl6WZ@od7Wm*(bzh!u;nB1GKC1>! zUshYVbGF}Svw_o>XIprj*dfVh1@IjacO390&Xgo>yGh{B0;ey}wDiORc>>=DoW2}k z;T|zU(g(eV>b^Y1!lT3n349cA`m)4_(+9)^34A(m`f{L!ODvGUmjS0Q^DJCqfCT_tnTQ2u+_%Yf5o zzp!u*IPo{$-`$BAnir$)n&hSlsn95?+sQ)kwUkP zJH~RXjJQ{9>krKQ#P`*Z(R+5k{D>_-N_>yvZm}KWcTny_7Va4M0pRHN0~Q`5-iLO> zGtbNWtd^B)aq*CrmBvj3hmPNAaZSYeSiV|t$ZVO#sj$|6&DQ`9x!q!MQQ~JT-zIR# z?j~@$Ezv%D9B971;E><-md_!s$MQu^*D}1u;^M^gplh0M1UPh`@7lb?&Y3taZT`*8Qg4e)xF(e;IzzSuEhSvC%z5I`P^W>9e{3yfIAi*C0?i+IAic=n6Y5t4)EE)(Wyhg z6*BW}Dc~!BqfhSwmv%(KwfDuRAwH#Ni*y@)Xxp%($Zg{;vCsK!*eLghz5AdUBYf*n z%ZM{jX~SMAN5%{~q1({VFZn7k^n`tSmOqbd>ZjYV%fg8_lD2qzfzyT;O`R0q{BG}! zzgFrL>96aw#MWtDvD?P|VFUd-Eth-4UbJ=EWa^}SEyaybnf%Jgr#*-7AvE~k0=VAh zwQQi<#=T+Lwtd_c_O#9Gc9U0=|2>3tZ|3fh@axyunWm6!_FtJs!4oId^>3_xC|S=iI^$+z~S3TP579;4nD)i zmzXNS^ZleId`vUJXW01BY#;v`czjG>0-s^yi$5^}zv50Wd`y>sw>G}78`*lUbB2M( z$8+!?~6DNc>GHP zz-QX`hW}dd_?LQt&#>XOAL->~DZZIbX9{fX~n`#a!xu9|j)((gol%^efKX z%iUql#o+NTRe{gYFMQj&{R_e4Uzz|uL%*1NH9i3z|I$eC0sTV1`!n{r%jkvN7CgSC z-rzHIE5`R+ME911$F~##FS@m_mb(&;vNpjR+uD=8ccFhj7;Es>-y7Sb+P@#{V!kKo z@7b{bSNrR>o^w6E<-#3C|4?RqjuJ=0ePQ0F@yR&$$9@YZ4h1;tGjME=77I@RXHNGb z+|9+B_D2hEB5sAXEIpzk`3DPA1@v)(J*wQ}6>(p(@EGtI@I}C}VR!m)bQ+%y>%X@S zIQHu=EgV0V+!yBU1di>x&E}IJpD6jX0>}1GTDS*XZ1uqtsC%}%$-<+BZX7!`T|FWB zgoP2O;vs8qHniBO>n)tP6kYcfz_C%+T6mQBk{s+pCo#`^792L}YKtTGMDy$ej(vKc zg%fMi!P9#pZRq8G&*F$L(Xto?9NY8`3n!jL^Ta4;Iyh|8B^KwwBXU{>9J_Rpg*yZN zydDS6yK6UDICn;M&1A? z0-g|G27M^~E~cQ@$g%Jk-QH(gH6heueSaE^zG!qP`*EQ-CurKd|sP@F?&) z;Ec(?0rv*V`&WDezyZD*IAiiH;MyjQW0STzeoV@afx3M^uzTLKbW#UX$5T`-=erw@TzTqP6cvj*%Lhi3DJVp$QjL&@%*Aa4?EW8Og z>#NthOtn*$qIQEJ6IB@2i zwE|a(nh<>?_kDSLfHUVj2wdV=Lrr|c3A}d{ICIYZ0_R!#-4rn-<#K+W?Jl?Z6W=0u zZwhecojZYRd501;?eDS&5WhuTxt4dOmG?gX?yvvhUD3G2F>v44omSo}j6M+`Bl)VAz;!#2b^8Iw-&^i1)a~eN+hOkedW?3kMlF{+zOJzCSZvxs+>Es299s_Y zGP)hl4$$rRoP{SOj)wC00jC|~Exd_18iDur_g*6{T=A`z5b#m{-s?2ry1wXG``c#k zHJy8%DSO|4n{m9(zvF9>tuOa_oo4HMx2-SnHt-bNa)`^(_022L^&Md0UYTFtiNL9E z9}AE24Hv0zEpX(XZQ(KEb)vu&b`Yl{?Rbm)^gI$B;lU6MZb#Zt4V-qo zY~jRn zm^%X?(14=>-!T^-#GCz^zZd1zo@kT_uNw_ z{+3$bM{aVJ<#I>Y^)|n!os?de9C=qA|3CTZXU?s3J0pX&{HIyC__w5; zBY@NXFIu=q9Fik)0Z#iTTet%}E^+}*`>QORcrm3OMlQh7`?D-u2^@Lt1kU_E7P!{m zCgiIg!A1nm{Cwf_~EP0ha>w0_5*PC0pGFkCcZ5s z@bYogzqcE=aK$%+1U>~gdw`oQoVXwr0$vB4J;03?9s}+GUkzOBe+!QTj|1NU9NYg| z3vU80WSmU|j_rS$g~tTWc&Y`C?SC=w_H7Qn z^Nlrf2N&Os-|aPw*W)S2>iIJN4z4vn^yl3J5x!k3_ivr$eB%9Ei!L3Y@86n#VP3}l zTc^}@-oGXHZXL>5Gf3{?+ETb?(0w&Z-@o;<6*87Te*f0DsYBQMw|d<0$@g#lmHNv4 zTN5v>*)aCPsUN$4>*p@_KeTjz|JGCBO3eLRQlDs6WxKscYYn)r_ir^yUd$JA|JGyj zoB1ZhS(#VedH074ycxK6I`?-to%e4w2t9LJ@cym)fl2vY%Z>{?c>fY>hTOk(r{uxf z5+Yx3UFW?kHwv6}DtQ0aVqjhKy$)E$T~(~>3z+-l{;guqzkh2kG{x)GOEM1!p1}QE7j(nJ7uqs;u!Dp5Z=Kx@54X2v z^1KUA;Qp;M1b-a8;6`XI!|v|iD*FV!-a$V0viANhZc_hPKXEce87FnzPvYT+viEQG z?1ui}^6u~7YP;P@9p}{a~rvT>wVzfCZl6dck0+)fpbne{pux-J15ewbS{ac5LFMoyei#tp?TeR#8GWvC{ z;nlLA?WAs!@y-2Pg)+X0X|D(0U7ytg-(tr%arbin*7d-=%gr1&yK|1a0(diU@AAw! zu14s2FF@|!I=swDy~0_@mxY$NrJ(Lj1}5#3`s;e~&WPNP0k5d+BR#k?tJGqQ7W$N;(;p4uoL%jDi26)%{MS(32mUABT+_!b; zF(3VhtJ)!I;*8m!C7q|XMnhI_p_=r4kv`?dN3_ntLl zaA)TjJaV`62Q=KTb+Exntymg%dvufUd(bTo=Xd5i9Uku2I=BWN#$Y>mU%r|3X#t*5 zpBeC-cW&x$Qtou42P-=D;8ozwz`ezpdaz6AYvJX7tv|`{8HV@SPTpS&FL3X%Oy1{( z{u+3>U+Z`Bd!pgp*U7t8c!7Jr&*Xhl=x4*r{aV}P_awvHyYs%O4Z;iDYs=(aC-gVK z``EdujqrOAO0-m8yw^yd>xHm@b*ZQjD-(?(JEcB61y%)d{A@F zNtI$>exChNzvtZD#}+voTBlZSI5fR#LtAb2hScnHHXN-xcfJ9L^NGhU7M zV~q|wsYyy5I5c$4pzpP$i@L(Tek@(o${jSR*;yMFm7nBp;oh3I+6eh%e{&HwO)SSr z&8+RT$xfx79djOS_|C@kO1XpfAZz7x?8(cpCoi3kocM0xU}#@o$8YY<`=i`V#+a7- z9K@$~W%V%kWy%WCCXc&kOLKW2X<2&ZmHX67m3^I*Q?6X$znA%Srnv)F?td)=HX2|2 zLhSN;^<18xF`s<&z0Nxk4`QF%dth_nvvz0?ertOZ8?+Q#)Y`A_!rRpjZJwg0i4EFD zd&CYs42}0R{y_Yn`Md+rT^;@usDt-=`T#q0zvTTB+Pbc?V;nqxK6x7()RTM{5a-3( zlOK(AoA0lK`Tl`?u|anW-!=Z7k@>7w-PI=<-mEq-`ntEkFFQK#h+Z>-9f$s@Np;XD&br4$>l8x^1TZmcIjQhhmU`& z^iwpqTe;K)`C8%2sZM=c_|`e8c4=QMt6RRW2Kn0HE2&P+0e0`c0(T+jEZz0N6#*Wt zmq+2_ZrEACUnTy&C_BEpI~(Hy@OBSz7#;M|@NrM&|s^cEx&KT-j=+HvFolqLxOqtg^&AUPZz$`*xjF?8-+nW zW3!eD-%83ORxLl?r`z&!gM3Alhs~NNe0!bL<)1JXkNj7s{5)f`_7J{W?#-0)RIhH! z`&*FD+N{95I_{ztzC`zYe-7};oamKP*S_bZ_5sTYwZI6s<9;xNk5N( z5Bv3XDRWt6>Q!lDQ}=rOe1KQ%Rk2-vD}1w^)O_iSE+ot}-Qc78~{nDR-HZx=dt5j7@jCb6=ob&)BgE;Tu|+x?kE!+*5aa zw+H!*9ea=PJpU-bKngvDy*mWmcHyMuxq~tPHfkYt^dF~)>UKEP6yWfEMs+N=U8nn zN8XoH7wp-o;JpSXwS~6lv1W9a?}T8!#-=@2_|{_*z9Dja@qyxVB%h zX@j~EweWyl8>*+SwbT`xc9`I2&=&03Am0EB57@Lz7QlB6eAu&t1V0fzY}p`RmW2oG z+0cCWX2XXq+eh$|;KPm$@*Td*zyr4Ik{jVOcI-!juZ9mBHpsW%!UJ|}s1813!@ei@ z^WejN4f4Hi;QP$( z*se>ihY!2;AoiNruD^uFi&UmAWvu04!*tjGKZ2%1A8)6w*sV_kt1~uYcRXu?Jm^gN z$LW>(wQp244#qYt#5P=ly(u=}U8Dy|SDW-flRj$jkC8Tz-^1p4nZXO+ZNQ&2@bxC$ zVA5Aj`UjJGCT%w9J0?9~(t{>FWYR{HK5o(nOlr&9WS;Lc=?5llB|S`gzVwlwUTM-= zlU{AoZ<_RaQfdD}lh%_S;(4ig{((s!GU;Omzk&2z+P}^`-)hnYCS67<^~f@54^k=T zP3kAmZ-8fj%dEdmU{96*88)<4Xql1|tLfc4r8mv4IM)fx6>+ zJjiEkpfcezHc%lpPew4z3$2Dv2X1s`$z{x| z*gj(S{87p?c25CzPj}^A9xQJneE9EvCwxPFyQcuVr#rs$gM7yBX%aqT_Y`3FbjLR_ z$X88y*ga3emxJANsCH<>tJpo=@qH%9cOHD$J&#Cv#_kz}-E$@5+F@K*2F7(skS}2K z+y}3$7cu&LW}wgWptoy`wlR#|^Ihn*-Shj-@mX1gtc~5XMCxMf9=lhLllPK9-XGrC znYTBcHsH&v6Fy`2*u864zJCPyjLq{^sn2xQ+Lf6)u@71eU)HG;vX}Z3aBKHmCcI+z zY|G?*S$GBhcqeaj1#P^Bx?=ZC7QTt#-_GRwmGB9CPbZ(0*(7Be+owW!#rEloZ4l7m zr-fJGM>~0&&!S9Y`-~7iv3st-$ocPVeUXbytO1FpjO$0``3QO0O#V2qBX?2ff}2R!M@)Q?3Tzvee*w2l1M zKCtsL^=_ERbSg3()u}tr=Ofdd@ZlGGQ1W=%_lp&=4z)4fJ;r2nU`!ST%lUSogat?+-z~x8cJt_C?`a{K@70CdhXH zKKx>i@U8gd@}3Ryy$c_Hv5~?z)%S}P;TP+!o<9!qwZeyAY>4o!^ZjB)tT)~9tqJnA z!G~Y05Wa6Q7Q_cU{ZaC0@O{ANrp-7q=~R;BU_T0-f0*ZYP1DF>=|{k`*MD!f)Ty=h)Q0DH?$PmlO2aRC7MxuR zWRIBDfgjQ!vTFh+dH&j@V@%$kBYlZFon@W}m~=4dPT;Z+6TZ)z^dghmx=Nb`KhdNY zm~^U1W&bAlLX);p{uc5*n`f!>IG!bSNPhzS3+B1e^#3N4_BZfBCVj=g|7_Aq1HZte zQ%q|6Y=n6pZPIrQU%N?j47{I7zh&UJne<+hK48+vOuEse+f4cbshr3CZ96)_-?2r{ zZ8#QDZfkFq8Z}hys^eWkxw}ZQuMi)cthuediLWhF?;TsTeSH<@ZEF8{sc$Sl4*x8l z|2?r=K7s!#_$6;O?7S3q%jT_5q*)ebyy{6@JTcbIq@|>CHkZJzSpse8Yv-map^d7N zSA|yE(Urbbshy=CR<9`iu(E;w6%Rwd6yB=I=Mj^sHamtl*zQ)!iiK+{96qc~oi?i1 zs#9@jW3*Y(-tR8toGzVS86{SdyDch29wG}}U*@r6i?(SQF8Eq{<*`N2Yq*6ec;x#V zo$#l9c~1>-HW}t@GP0o^{W^p#b2t)iJQ#^IwnnlVY47sVyDmzNQ;vR@TH>z8v5r%( zF&cN;1*!1?oP3||^dSDV3sYk<@P&;-gZP&(PK^bB#ffUO#I;6ev-VW0WcoanY#*vp z(G%5}Zzz?|*cgrvA?YC-?2M!elV0N_qmo|kBppf5bNF^FX(VrW@XYntqTl#3I*;|6 zGtc*sm7Je%;rF}pdz_PclHdQ3-={mNpYZ$d@_VS0`VqhX#%~#$QhrRS(Q*dF`WdN&I${Q`q>F@Q{b(dzkz>c+Ly( z(0}P_m3&3>6f|xS9`cZU50RhcIkxEM9l9uTK8OyAJeK137TqgFKUT4BG|~4~=SBgW z8d6)*Lj&a%QC_*yckv+u_fxg$mAUAS$mLEc8=TO$Lg#&y9`k|Uufyq&WCDG*dUI^i z4qso2ct3-FI^xqc3Z3ph;HR4Yll%ORE&5qU{SW1-lx@Qy#!=UHTuVDdhlA~?lXi>? zw4;P}j8e%K#**AC=QC->4f_YS%|b#EE>6Y_l1bvL%Rpc4-- zC3chf;dI&<<751FRmxo)4!s{DE}$gBSY{5&9G8B*3c!hsk1cwpQ;w7?{?S&-JZR)7 zy3je76f_o4PCPIV$vh%DBQa0XmJ@<_<{{CUPJDi2k073TXf*iwxiSwGHh%Q=P8lCY z#!jvpbGDs_7}t)>Lo%KvMUHVv1M|+YMZfZ8&e&g#Y!A^s8TSwH`=I z>b`*fZt07_T+txUfxfz3o@rly`l`Dz+QNL%%zPnwb5=af=d>8h-Hgl8AIVr|{7YNS zxID$3N>cJx)6N?6b(&_Sp!2+ddn{ z@9z4nO!_3yXD7>Zpw9-$GxdLjcPRc@pUqhO&-?7Mt9y)Ir9>SBxAAI2$fGOTGW~h?-VFJV?nc z>iwSbn;4IhpQ-l=xSv))96-s3>izTi-GU9mI3FDgw~uS)-F12QpfpQeqHYOIMF!U; zkR9a@n6yyMU5~BU5(y2j%2NHuP^T?r+Xo$r6bzTSNn~>UqV&oL^$>cQ`(%FI7FO>| zJJx2eSv8ZkJRH-$txM7uj2X`yIp(!*JNKla$r|h&@v`u}gq;f2gZB<{lxy2^KK*Lj z@>l9$+wxt0qZjW>dkUiWt+Ms_f~iOPg0bVDq#mhql}dF}mv5W8Oqw!g{G{3A$G2ds zi7hDa{VV|2Mw%+;tbjahUpy4}y_(;7C#eC4m?uBpr`$7&&P#kCbKvIYx~hsLwD+s? zL=XJ9xlbW0Sz9LG=-Y3iTQ`X<1*{sFPk=Vs%ttZTZXo$fLh_d} zxs7)-o+0-9P3l-jUy0sJ3QpUR#}>V)=W>A^g+|I2T1nptq{kNhsAFs_sZyJVFc#J@ zHqK#eIQYfS;rWp&HTq~>4;{DnVI(sAe09x3!}zyjWe&b}#z`tYF_cWVX8B`f2lt$Q z#f%kT9=K*;9`8Aw78olM8<-*6MT`@nTd7h4UySb5qF3|PidC}4oqH|vpbbso&he8^ z8wc|5+aAQlAYXYuLWREePzCfd-qZ;`y^OOE@ECd4KodhB6KAP0Q{jI! zy414gvvqmY)Mdt$(c@=ijIlwD4}p_+msY`>qK(2Q^WFVjp6}sVF~{5a;Qw-N3wI-T zncLRtxh>o=w~aGx6?&1o>?^mKw%WPvI@+@ZxtB1X9ElVTm-%fka>q`5|7zwp^>@~x zh*Qz@xAf@P|6+d2r!FTjo=c{TWzO>TRrZ-bB(_}i)nN|#pHemY2>)`fd!xkd%3L!^ zrMlMnY*T01JC;lyGrr{7iR3w$d9WDUST&9T|2FL{>7(ZUxCFf^54*o${qd@~=lEWE z*9$)b-_i0GV4FzU{a7a{|E6p;x??_tr<(bwo;su=1Ba)P+Ysd8nE5`A9!8PJf2xPO z>g64_kLzAGb(e9lm~pW9x(eDg(9G|7jcMkdHs;A!X`9tMnJ0F4dHx;G3$dT2-x9gV zG%{$o^S|i3M@?P3_QPK4Bf7Jgv9$QQ3Dk9v?gN?2Uk2As`XlNh?Ued1WSp?h)*ME* z(iiDfGVd2Qo=KnhYe;e9ldJ_dn)T!-{1(0#>xp7L@$@_zaWDLK=XxS>+%mVGwkEKq zF#m3y!R@}pvqr>|Czm?ZgALl;jfBdztg@uct28QtIZGUHlH+H*06Ed z#-*$y@;m<<`0J#f_&o+0Vl&K}$^2RuRyDn3T!K3f8I>qCk28g7OA1-18Mhy8Ku0N8 z)*jo>x0!x^nlf)FJ=Cgadf4DU18GcCcTPO-oN-0 zX&rPQw@Y6Bm|aq1c)t`#Q%BRItu78C9~le3z^{C4(UuN-MeJ>{OJsc)AE4~HkKzOT z5Fg-7WF~v>&i!*<2U1MJ*;V`pRIem02D@Bs=wzwy){-t4_qulVl2-RjRz z>=AZXK9XKJlR2|AA>Sm-YrGAA&Sk^={dpliPV477%zhv`OpQ4Un?wAVVh8OXrH&B? zk!1cEgMK7gL&k{zE>61mhpOV{UhMUIImtt;J(uRFEz*whrauaik8l4BqOQgI{fKJ^ zIL8(Ya*{_PMZ>S`=hIi1d8J6x57M@f*u#D09R~81b@)AW5Z!0LQly{%#&ewKSrI42 zp5gs0Y{Q2KvR2T(6S(Umgbd{O_mIyk1J#)PL28U5fBWvp{!z{`>qC+ENRBPq>H8Tj zC$55X>tE9E@~+Ic`TYy|&7NlwzjyFEk=?m&h+Saq7uoYz`$hIVL3?a_wmOqN&$P8U z$KUgaebsf(GnzVgwa3oHe=Y0e8rC$Cx7ak24O z_ElZWn_|inn=jq5)-nHL>z)IyoivWTq+Pp6OJZ@g%@H<9roYc#fmyn`lsT43z- ze|P`*GgF62vnPz7giNg66s*I$SNV0Yc9X=#lw4cNx*cNOX5UC3y#>wb@V8-u3$Ki= z5j@LW>95PhjlVH#>r~!V((5I2R4(O99&yG~4}O1E>cI1J(4MJ(7dJl3Z=H8wZjiGy zJJvQa=g6FNHu(nU4=G#bkeJv7jIRw+zRV@^%ouxAo|#khGvn-Gd1ma6AfNPODk<%d zK4`w2{oFd0+_x<3wp54l&9S~g_gD6MFEbCbB6iYV1nmly%s0NdKVD6q@JfCM$;ZPt zFKdqY_dD`u{*yBU>u3MH@Q{b(dx-oxeRG}rQ|n)mxl->(nJ;Cm*z+Gd_y2{w-`$W;+Fw&OXjGz{J9gb~{$bn)x}EbhZ%xt*}$EGL!E z`(-7O`~&gcYFaCE?^IdyO<9++9yEQJ9&MlVqWH41RH`JG|2``9b^HLb&T&S#OU?(y z=M(!;O{(_0>6NdEF4#I#$13tttcwWpSsndZoKGJVJGu{=nD?a*de8?0 z{?)v0>C7uMgt=uHdEt*_j7*cVLU#r5+;64EcfmiHmC`mE_C{TYzg}zx?5AbE&7tww z91Ak=+=~^&V{_b;fiGG*nH)uGlSpQ`xh~yxP7j z;-)wkt|%{eqvh;Nrm9qLY#y;)m)^kpozkDg8ZG9xocT%Y!NcUceVqmE*7dpR`uxb+h)5V(qWPC(s(n8!kGhXvauoApTCF7oUL4zl(jJz^+-w z7xUHW=qqd0nhQpaZ`Etnpy8Y`q~h$A;Ez#+Wd4;*LYaPxpb&&bJWb&x-C6n1-Qm*)Mq|Rr7e+pi7aMz8@?VI>5 zc0dT(Hd9yeC--Ep9zwqQ8K3fZv9ChNSU=-e7JDm1-SjiQl#lBX#m>SwFjwHD*w#2HSpPWfZ zIZ~#a^Ly9$_^x&Q^Odag)KUEH&D2q121_QFj&Fun(iZ9_K5c2^9%#QrUed;!=%dT{ zE$}*7x9P{Hua`YWLE}Nj+abo=Hohm&6jjsWh5lL|KauaVK@-n5&%{SI^31z#uAB+! z*xad3>cU5n+iaP?iVrxn^EZpJ9cMFM$@?F(ME3Z`xT98|N8&U35_=Zmm2YBwt_$xo z@E$puRndGji?Pjm@*RAwX`a(OuM4@ud6qtMvelRs{EM$V!dTeH{2=oNael7M9jr4u z6>%pmZ-<{;`~B~Kpl%7TUd((_g&%XQDr$Hk+c`Gj+67w=;hVYXjr10)$Baw8=MjId z$mq}5CNG@m9BUeY4sbSuzjFBN`+a(msn{Fhck$^98h1ng`ckLj)$ceJz6|mke{5v1 zRLg*KY}#Io3^pP|kJ*WTE!7S^@TVU3kNl;W(6xrsdUX8+f*^t2n_S+r+9bP4Fm zra?(v>5ngvuber`9?$Z1ty3RUr%GrGgqb?%vJ0J**s-?kOS&oh!jJs2@0YTn50?EI zQ?|sqN0mw)q~0sSar%k($waQ)yVHlUA+~23v=Y}YbW5Sp_y^8OWr1%+pAMo+@?C_7 zWp3gb{odRk9hJ4p?mz9GRDaKaed)19zCR+y`1$iU{dk2K^4ZJpI`mWQkOZ=eG0r^B zX2B($bb7S-ZM3b;`WTZjy4p$o4jx%2^)qYQi}K8R8Ee5NVqNTFVwp7G6PgyvW!{KA zW9Ya?M>*VaM7cJvTXp>+?gP**d@+z;A~V06b=@M|y%4Xde?36glu0*7*Da#&g^9fr zpo?-xL!jKR>H6{gK#|Ll09`DT?kZisEVsT_C?LB`nyI>O&y>NIPlQ{nZ-) z_~hN39qfm(^HYmQs)}~z^ls-}{2=20kQlcVex*EQmroh7a6b0bxhoQV)aJtW#d}Ir z;Q^)6_iVq%IkFxf#RQeV6My>d%fL%qNm<{@4P|{o8?NQ|sV6xbvQG+asE*HQ$5tcm zx1@bWoPVV%#J^C=e~IdGAV&X$9p&QRXWk4oma7@r~@}*D`_*vq&PU_wrAI$Jch4iaeD6I!t3mu=CsGfY`z3zqU#m~nzg3?{ zsZT{wj|S1RIPGX>tr34gHu_P#%&#MQgH9EH%=ds_Z?o8bM{nV*h5kuptJIdl!iGb= zSOdF!Gs%tzk#`~Tmwk==9*gXou*Lq&`Ybm7!{I>_o+@zKH_$g`kP&f6pC zMi~2au?in(!akZsd9zI4okMwRfG3c})xd^8cQxe=f#+(-4nvlTm@n2&ozUUwl!+2_W@|9;&l&gRt?v3pm9 z^BT52Vq(QtpV#=M%l)%4%gdnJ{rfKc zmqS70r)aOlqSq0FDRD>{b>#d`Y-p+HIh-jaXt%`RNi2Vqx-|7* zZp7Y>O8iaYjXr?_MVFEU5e@**}SYgn3P3?KZF{Ehe7= zP<- z{l*_nZ(cwfx8Pg4iFQg1j_h6L(>BQ)zwHehgfRDJzEV zsFyFq_u-dKTEV6B2`#7xIYD2h>zkY}NRPh|%pw2))&QQr{7V{yp5&GzlzM$u8%NxB| zxgVkfRwn2OvfkLyFYNs`)^5Hq6{9a^BA;2vM`WVmb1wN9ysNAv-_X{JWv~8ob?+2y zmlR|2l1>N!=#Ag!ZPe<}zI<`oCY@aQ*g6Lm3&bJNGaW4{ae@T2}9d(N}UXapyOe^V-rAc|S$hyP)xd)#;TMFLT~uXgp$>dFLcmciH8so0$LW zm|M2t^S-*5bL4sEy4Grc?RbITvTigpza_%hvehB}ISUxd8o*va){W+&V(-3pkMxm( zu8eYZ9h>BC$&g#aI1zuAT~A)c@6SBLyAa|-2)VDzIR$kQ->byO+BM~lOVca=g6^(h z&6WC!Z(ipS>*xNQ*isprYst5H2l2F{;ODta+f<EUat=$1LeP6JQzm~o^8~#o`-W*4M_^_6! zaKpY)$b&j8ru}ke{TIH8r25^qO5`CvXDR0|v~8Q^t{b>e-6^j-gG3 z(DtW&Yd-2bS7JGI%%j$C;!Du)eXNWATIatbb9FcQ?MGgs-&Occ{k1f&aRT}+?}UhM zZ(BxtNYA9tip3|$@2BMajJ!8XN_#|}wyhD`YS&X)N9CKSj7wMMKt1=1P6lMyM!Z^A z8GazJE;9VPz?eTSqHdB;$9oxF%HL<`&V}ySqRkm|f!K0~iPPs@t>LZZ+!3G7B0RST z|JnTK@Sn?nPyTytNI%QD!>Ev(hYv9}NV#XrzGW&l#7OpT+zlXW*n7k=+*G4nyN1c0 z;SK0SjxqKX`>D&}>F_YmDCTtL-k+;}(UZ@JMo*qCvBuP4Dl!y&h&7{3IrS|^Ref2m zQ_*rXR8iW;;Y=V@p;$NIt>-W|I5#(m&z{~cTOTR+|i-d|qH zw}8+If3EDW%X^dgM1^d5Il8>WpMFr&^rxTClQQ=~--?Z!#%|^ep}qy3ZKj@5?tRFq zO4}*E58%JCgM~-R=xXa~yHI4r`X#YvA=aXCvW}VcQP#6HVb(L|2Jye&1nt)Qr=(i0 ztK0fK|MBdq_7Hx7x&hce>;+3y{sB1?x9#-x)VI-tas8raqlw#WIbDfQcVjI!&`jkd znm?!7P@FQqA_eBc)G2l&N zYZzNbU~2`|i+EvV*HU8Fto+7e=4kQPi0+-s8H&7<;!#$RcLluBo}3v?sze6{jTF4( zBf93%50ZZsdMoqsEPYnv=lA0oI-X)nJY&rBGT$b06gDWnNalIj-?WfV347jn zHgJKlRz=zK%6N^k4rn=%M~png?-8>w`YxDn6n?2AdHAvguX*|fc0Y!IZW!yM``(N;ko7RbF?q#cl?$%v>>w>?Wn^}mUcJm zcC!wq($ikV&n4$qnyxj=jZybY80+%xorZ0Km%4oc*j`|wN5MQC=G-KCNM8(ICG%9K zPwy4tTDGhmfqoP;PF$W|i2?AQoCjd9EVt(YG0p?l<2Rd$p3_ghpMic5eC&yu)Wd=c zUzUNpY3VeLmwdl3_`>ru@YauikKms8Ldy30B>GT%7&qNHwS)h=LW8Z-mB!|=MDW;F z$HUiy*W)iw{C>WTFZNdxc7xrk&k6Vw{e4B?eM9rknDu#xU!)Bi?+AO~f#_ZVc|{`y z`17h(B$%U$wI8Gye_s1N;T8Dv=!1!>V5j&Xt^l9SIx5e_;Kko0zsG}9ZQtHg#hNB- zM=SCFPK3D9>n3hZV~;1u!+$40*4O;TyKeR881bJ>h!pLVdsloKiCGulMqcC4snFoJ zx=Gtd1&!lqV~0G4jj?%r!=Xm6U&}+zrMy$ClA-pC(2;&_RiA3T$MR!qiOG2I zywrYZ75Qb(yJ8=3uP*k%@!BT#4}GiGZQ3>*2P=KiV|W$q(`}=zFUk7xZ?>(Cb{)Qk zxH;N&koL9GHuj`rSdVpkMs?F3DO2VGY0u_=(jM$?35okiw)DYEn_;` z686W^;^T~^1!gQ&V~d?f{ikSqaJh_=Nw=sCGGE&IMT7Oz^CDxz$lcC~`w)dN%5 z+dIj6Y=h4AZ;!UKZQVsa>fUKWmny>kus%jDH{nNju>Z9kB=hD>=u7vrUZel=toel| z*U5a&a_TK!=KWHc_k|8PHpFa?JI*X#;2po26Xdt8pPmC5@46gt^XNBQN2!bW*Gl0R zA6rKrtPj#|d5+^V>k7wK>>tF%S)V>eGsn;vf1ctFS)oye*4FQ8>aa}ogL3d;48Ijw z#*t;ed7bqP(n|kyrR|YHo76gx#)n!;zT7`iF^jzM7gQ|ex#el=e{vT_@@=Q{bi^rPQPBH0*WiQ5s{xtXIcXF7;=S^dXst#xp+$Zn|ng- zZx#_Bggn+Dk2T0+jmTpv_1KfWFug5Qv2SOnqFnO+eW;?AzTLMcRKa*3u{VJ0ZALzF$7rFN2zZd_#H>9ikw5NYh3>o`3k+1jbP-pv!J7wI;oOW!{ ze}8=ZnLb!~@yB&W`buPO`|0!e1FZgAy%L(r0L|IQp%MKNy^;PZ#Xn^8EX7aNU7p9I zuYc&{^fzYY(fQ4-J&gUj?WenSWz1E~OJ(?@s@P+6#L-iCwg2+ea?W*w{?(v=R_D<& zN%PD1;=ALIe*%9iWngP*{_t`5=XBvm=DSsvdZ`+D)qYsymR(yrKFqr%rJO-cN~rgj zF#pPYkU{rgaVFiyHQ(U3|+De?B^BQnge+$IU!t{p9h(KHko8 zcK(X@_2;vAj+xiaFwd+>dT!*dQa#_9{G-J21fS#PIexZ*n|U#gzH5G)k15BN8)eQB zyx5PDI>cA#d@a4fD^q?@4|G2oJzCDUKf2R{kMQ*b^=PJypE(!GdZpK+V1Dcmb`M&r zee=uf=HYJ%JN3}@?uqYX7cr)#YB_#+&RcFNE3hYH*{VKX9h!Vlo~AX z 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 z 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 z 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

    k@yj#}B* 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/?CARZ)h-oE@vTc-FAs`UqA-RE3&e)(G>Cba*= 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⪼DCG-14uQ#1tHvghy^IbQ>`msynv0R7m zFR6EmzM%5-?T2nTq>iwrk(NGNwqI2)y zaqP*-{`cVSG5&k-_9%b)AI3UH`rr4h=)iv~JnzsyE7oy@Km8f8j^X}$>{_Y+{`}KA zhH#JlYv_Uh;rmzr$nqTi=Q+=N&KIZ$`#JWeLwz`3dGF`c>xyi2sNW^o(o@e1vOTB1 zGqcg5-ap9pocd48_8d8!&GXLLPj{cMB>UuGq5zo4!F%fK9rXLIuDtrLb4*7by4@8t zTXTj)ch}KhJv(;aUICW;U<6!Jf8~wW5F2s+AMp5$ne{<~Krjw%`eTgrVzDmE<_YcBezw_Xjgvn8z3bDT zx_4QxQdUJqS=gHmb0}{Rzl{GIH2!DG=nH(L!l9Wm`ulG2HZYlsd^XA6A)`&ROyeu~ zm?fu8v!ac{N0L{JJ)4qMggw#uuDm|m(KTK6{e1psgvzY>(K4$Q8ZDt5+JJL0zOv&H z%IdavmA9Uw=Y#F%6Wr&iZC&NhgJs6`A3LTT{vO;ZM8D zZ=l}7qW7*n+A`)CYliqm*N;OVTNo=D*UD6{hrxl!)%F9Z-j5A1(-*k3k;Mk3X>sYs zKkh1TLC3wkzay{4Amx{izR}-Izab;<1~+fwqpouCqr3smr4ijviHhw_R9aTt6V&umun8b7~D29WG;Dxy=~(@pLnABY{1+%^?!)@HN?1==0vZk z`nNNVw=;HXo)hIcy4Ya1CqAm5y5(J?`~Y;Pl<@^?(lg3VkC@>sagCZuyVB-!&cn%e0@mG!(ev zI(WQxfLS2m^u|svnGSN(`Q`cMS6xN29iDt&=iZr5`RC0cciwFK%aY4PKb2=`O}2wNbb+O9 zT*>}U@ZQQDZGk6ct4=)F`j5twYe`ScMMH7hG1ku3BdriRzBD+nowcdy@f+U;<5g}9 ze0sx1Fy8Bo7wxsgvTn5JQpL#YkmN@${m1y;g0p7J8Kv&C19_I{ZPqWpc-GibGq4@} zyAVBYu<>vBL`$-$0dqy_G!`6^oYmV{8{NF0?&+E?Os9FQhXJ+r>CN5sPI+v3f{$Ku z^QF+oZ0Q}jy-<%VwjRcKr+I+J)Nr1eF1)Yt@Cz`$aP)WihUAqYb7FV|nD}7)T=8h5 z+AB;St2>bXk!P+jVDQqu^k2qV>~upcae`eR^~FfE+*;P#5wd9)Zm#gXt^SQ#6sXniv-+QdTYBk+jQ7 zu?N|sM_D(!WeH!`a0XO0XG5thTQ-Su>q^R#4s6E{gst(-b=TVC-m#C_W0>aS4Kc>n z81ww*(-WGHH)x#g^U2<0Uo+#DXgN6Bp`-E?qoev)dG*IXI$HKKOS%5^;&-~6=Tda+ zsvTXUr+;}t3fD#=3~&EE3FHg$H-! z8tnPN1!t(+XwU?lY$=mJsM`Uj<8ywr#(o+CnculDb~iuGy{_{?hEXg$$jIuyYcfHiz+@Lb>i7U>-u@yn89Kw0xlmcFjbR9!IK{ZZ~TwL5A$!z-8o?CV#%5_c#6)=QbxtZbQ#CEdec16 z*{Am*^wrm7_coJXZMyJP2iL3Z)`L$Ajrj%Rw8q2aOMiF9?J)Rn7-Oj|-(i~P8hoV# zld7BAB$hhSy4r2qKjXVly)~!ybY{p0ZW;gST6wBHXDv>C0+!eMhst^C5yuCFonNVY z%^{wAde5Q~>M5Bf7%TL=nLLd1j2Xqrt2fx=Jl92Kd+--&>`m*)7;CD_&u7?H@v-HI z-k09=`JP1w;Iq;FT(0H6(e)gzH6NnhD}!K&2>+_%Cf=#6CD4zfkGg&y9#l^04|`t` zF{7<8_Hr2MC5LPFbZHONXnXE)#A%m`_I&WvHvAB}UiQqMMc+d%ZPYhYH)><)c3X|_ z$8RgHq210P-(R!ji&UiZJwZO{i1K>2;v({nv)iJeOnl_LLCo^zF8Y+yhT>c87>kav zdbu(aemI&us>hpl-s0qs!83e0xV$b?)=guqoo_k)`fO~eWD^OGww@!OWZB&&W~?<5 z`Gj|N*%(kZ!tT%EvDT52+YVvN;-u!FcOWO>8r`?fF^x;|aILL_JeLgQyKgIJ zuPfu#Zt&bY%rnG)D}EiDSN6?(wYzJP;rSkP(s?(;c^4mR?c`nf^RDt4=uw-E@iku> z-davIzAC%j*gx_zbx=%ub?<1$ z8n=$}aYv%#tkt}00>fAHZB?gTc^)2THA*IW-Y+9he4O>9WCCy11CTMcyr$5XH!;ro zF*2z$X0(UVx_LT@w$3rfr}(x*cUg7gtRK2{xb3U1>D4DVX{s3Ot51nGhLKlmr}W5P z4@D18vcBW1v(CQhrj;6J={$6`$I;M|FVT_j^F7ATICxEC=r&}HFBh!hjGr1ezvyik zCj-eY?6B-dyuVp_HTv>)>?GE(^2X?Tmc}RUb(ZA71MD>e#>s-@hV9I4h?9H|pSd?y z>KnBhE2T5TT;7gB$9Hz?n%ig0$<_~%Ym|L^ySm>AOEcC+Pqx0xyEyTWPw`H6TF-w0 zeruv#RrW;YPQtLaVjCqh59?}N@b-?}(JODvz)=4&@=xgeAe(=FrK3+JeK@CyaV?y- zK@0I?%l>#{&KcMZ(KnRijXho&wyf5iWO?+(+lUX`v0_Kps^4Xl(_ES^=W4f{3f6oy zmf5uCI!7|d^ltE8Fj^%TBO!yG#^zj$cR!rzEAe+!*?LBI-JZu7TL^Maf#{5`iH{w~@Ff3jO1 zf6x3E{FzMt60Dc__K2v^o?1#VTKKQ%O$KP-N3;zCA-`&2B{8F6RbXi({E3@#2 zzj?3r@!Gd|AN)=JGA+Lg{|o*aGWm-Jt%#4mTeI+2xgY*M2lr*uzt?>HP5dwT`(-A7 ziJ-O2$KUx`_#3hx{{FNN{&s_5JpC*BFZhdR@|Ox)0jK}k{bPI<{=NX0XZAm@ee3qY z-(==Y9)JISVekC=>c3+%`3r}vW}o~Dvher%e)zj~AN(bK@_XgK;IDrse~FM4@yYK~ zeBqh>cg24A`_4Z2+wHS|OaBZ0wmh8Cf15&9l}~;zX5nx4e)t=)5B_HOFUg-c-S#aE zN`AsT#Kz@dCh+e<`4P(V^2X@;PR489Yc9j$H<)Em^1f#sT!7DPrS4CpkJdr=)(^Vz z(?ZQD9Q;(6+_2smn;&CM%Ed^$7e;dYXMJ}$c&Nj{PrN(CeK+3f#k&-Eb`)o7JNT(E zIn2fG!bo3$-{nUXtrDNC9Y2;Mk1GRtV^-$$moH(Vu+z?AH?1(!+oU!81&GrKFb|Pmw2C=J zEaV z>|(xFkQ|9G3x0e)Y$sl;jTkTHhYRN_j+VWIDQKRLF4Pd$@?y|*tl&TA`OoE_b@n+2)Z@EYxeT9TdTwdY)fbAt zNcJ;lx@`bg2BRbGjyrbxfX4jlP@RiShU;Yo|zhC`0($n7R7u|Ej&e?C; z{(i5$_0D@H+1dQ_om%^wk@JGqPSHlc>g>6wQ{HgsHWB|5$0x9kwurlNaAK|F25s4%mf-=bFJm7v zEKkul;)Up&${K8!)nJ!ZXRNi96(w&A`5qdDg&dLc9($9pRu^CBKE& z9%^^5J?7Bts#sO=;_2BR;3b7G%h`Wen4Eh;V(Ra} z9`YM#9EwwRih78S%1}RE!@Sjw0k(ZpCdr<}g(l3mIjDo;9!JA>9KX`Zjr_v@IQ_!g zInsffWA*a0RWipP@}hJ=J~zj%%;lN-|KTqwo+Um1m8|3gdt`?lBU~;Uc0RUi8Ft;% z+0NO{{8n~C^zNqogRnD>UE_Qhu2(DG1-nOkv;Jt3!;qoc{g6*=-2#6MO#T?084sG# zs=M}F{^CLWz{FxzQ%8IV3uB21#FI?4zQaBM=}Ofh&KQ^X4*J`p|2X`p{W`!jYA?~e zqmSv(_?&6SH5N%fn>ce+KBy}4RdMaNdv;$7<&;&?cLFy=@3@k+nTcjld!E)`N$=_I z$FIrm6(p;Xfo%Kt`F`!A`23YedMQ3{#rH3Mq$m9tBgazDnD#zUzgW~*0oD?t+^epG zsH?_t(GRdc>sRi`hC^VXk$d{uHXt{D5gg6;VGT$^H^{(w%_K(&WByrxBDiO zS2}6b_vsS}?DT>33+bbDv5b6iY<_oniHX((@+5>`hcaH$wsHJ>-S3+wTBE)9zmC

    U>j+nWN`%xZ!{R-`)lD%Ra?%^-ebJZ>L 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�IYo&2hV47o_xUb+3#JWeK&X?4(CIFv*x)K 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 z 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 z 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

    pBRhSc$~sxO?pQoElQ9CRJuEgF+N;_L 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

    T)zpdAPY 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

    |8JYOrL$-c%2fiqK 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

    sn|C`#p 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

    8m(=^&_2}r3+El4o7a^qnbKTfItGNJ2G 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∈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

    uK|j#2D|JEbUh1} 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Ξ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⪙p>ffsop9$W5Te7mC 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%0AB0Q4J3Knw`byWArKZ?EABU@d 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Μ=}Y_mAW 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≻re9^gA5i1Gk32UI-*?daQU67sLc%?dR#RVh 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%0Dr_E!3YU+{XVk;*XHuD%{TZSCLQ6 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ⅆkSpmoUkkxLX&V6mS*|kq|LN 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 F{tuPPzmNa` literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/chiflibrary/ilorest_chif.dll b/venv/lib/python3.10/site-packages/ilorest/chiflibrary/ilorest_chif.dll new file mode 100644 index 0000000000000000000000000000000000000000..9075f717342f75ff77cf96f25195d297b56f9798 GIT binary patch literal 3580048 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� zS{c`7MF*w$_*?lsJX+Gn-=hTa@yA`F_ZDy#%5}dE+*8}#_vklH4Xp^>a3yGIe0|MS zSL&KBFx~>Es0($_Z-Uiof)4W76Qdnps!r2EZi7m&P!;Q7!tvmdI+$=g*qflE5H$O0 z+-3})nlSYxdvIoo7mhqu)KIu!(Ey$XfV8WQj2=wxheyCUm#+`@vfm3|xH}yDnnNw7 zqCLtj0v14|YPb6FX(=$j-M(;lb7em3ElnIl?&X)`PNvJ}_O@6VTh@rvHg)6*7#>i# zb~_=fsM*uNPPmX&hJ#;;vA60vH%x}vzi_v`PpW!?gtFk*L62o$D0tA$(`*<$?g$L6 zC@l#LGR^^|C!3xD5!iD7izSM_Sy1eUd(b&_z~~!?lIdmrtely{z`h>qUp10eqtaPE=2*w z8<8=)?e~&v*wdhQ*z&DjS;>*ymqk|v^|)zxVnMs_+{hp`mbR<&FyLAY@Gg*hSn-1& z?Y8qkv?X-I@zl0g%KA#x5tOy;i<#3IAni5z9gsGi#1y3clA|$$wEqBUBWL8P-B|jC z7WUNWbw-YQO)_+%pPH&b5U)as#~oOdk2!6Z40iO5alcYGK%d@`A&w=*9N|~Jq1lsz zxqTeTZWp!UTw*k#W?p2qNX>0mA0rCSgnjHxh}Im3W<{p|9v#ebjVO+iy!~}CF^+R$ zgGBi^gj(@duLVuqSR!v^x@%WZ2w~G*82b502FeRQ-b}PSCmqRtL8Pk>h>ixm zrE~KFr{Zq1PoUI{A*{2T^I*xhny_9iq4imKyvtLYE)<*?ljW_Sb9CD_R)gVlCYo~G ztj%5^;%2UiJ~>(4Cn8G!hHwLGHrDo#X7o;Y=6v2PuNtjPi&3$(2T~ zb?Ef;?0HLXC=7zIo7Gi7Q%tKb=htq=sHr<}QgX~83n418oV&wGLx6LpJiqLH&AR$izqEm&Z3 ze!E2jKn7L-W~rg%G$>?~Idpk9{<-;g2nAh-9I7X?pB1_s&7+ykp`pu9A|3w@;mXrO zmybDXd@GK0tY5~qG~KA!zeM-Ow$dwkjCsD(vb&=k$LE* ztbM|-%hm4X(tm6T_~9mtcu>?`b?m^gDM<1t+-nif&!Jt_5EAYIn9&}T9Bo%=q>ONA zZbh2A?isyca;u5uT2-E!jYS;2%(F7a=X0O^&^)t|9gIuc%AH5bBd0+nxA62Xwo{cp zP9H0GvJv#s?iloXp1f1_f!AQn2gR$+H`T&*Q8gQ*u5as+m8f2W+Y-CtR;3=3=7Zbd zX%gFAqZD#4GMb>i4^GPF=onR++!3 zsj7TaU__<;3ae|ku5`^Ag3iKMu7}cWRS)AbJv9I8G`Z2vj=J$H7E~NQY%r6zs;|jm zrsnEbH6r5GD?2Ld@Ik^jHGk7MIp3ykrZC};^wv_P)b)gg6GLy^as6=B*s(D&ELg;q z!C9)XVUCZ&9Q9@YE{=~vv$D3RWhbLgFdJ2Z4{zJT0vCOL#Pv9bt`v9fymXRj;;xE| zOFrXO2G*%|E`F6DlsG97AL3I8;6f!|I~1Qpz>B{XPiSwJdr2jsO6Iu!6h3@q#|3*f zdkS-zyta`hC79{8J;mz?V6ME|y*}Fu$DFan^ZbwKfFhahO00&`r+Ml&1^d{|q`L|v zT_ka?cLusn^OSE1_B18C>yp#L8xw}v2R96%CHEh8 zyKk!FW6_V=bbEe9>5LNsvnjSl#2ZyQ)s#WKe5u!-RE(iNdnQs(K99cSNiQE9D7~bA zsa*?8>Ojn1Cv8dg`Tf_~Y%rDx$;g*=VgQ?57Lt>GENP-BrYU9(lK&6iV>I0v`U zc3nhm#&o5hI@=WeGqs1L_L~Vum#foEwCr0SN%S>@OB%~uPxs*z`7V)v>*na~8Jke8 zWp&q1Ck#<~Ee9DNw>0rNw-@OtVa~;03*N3dCCNuXlqZTC=69nNV< z^aJVjdcNZOZa`c;OD47{!~n^CBPPU&vykNc>&9?+2stV%4vbZYKw~WXA%hhn5 z`8$FN2b|;{a7QVV+;qzdiWul&zzDvZ3x0yrN!&AXd-5d&Y2E&iB?qn}-$Y#Evv;`aFv%i)d2{8qERvfm-<8`Ta;;7~g^yG% zS8pLEEVb-gbPEjARW>tA7V3M8QM)ZGsG%5CI|unW^GXgy??Pyt zb5tLD4I#Pf#RMTa6YD4SB4G#PMWNrrkh@euHdHhI2|~smBPw;4+_bY$z>eve4t0xT zm#o<$&H4^8%^j6&?htA2Y~7r3y^|m9Vz!5b&6I<4ao;%lJ~T{YKFDUOdwY`zi1CYW zUx=w#CN+9XSINS2*WDnvZ(odC?^#*yI&Eug@ZMim?5>sPv&<4rf1!f>Aa?~xPG!kw-tbjhJ&~#`72S|%e5W*iI8FG&Ma;%w zJw-`5HH#Nom{Hc-**SJsf5ui>lJ?mwxe0~-jF+Q_*yD2SF1`$8J5Q!RgDqi0K3?^L z%03&i%y-7?zKpFJCdi@>$N<0unAyF{|7;xR!LjLr<{dTiP`J$y^Zi)#KY9DHQR zL@JVO!IS;=Y@Q!D%^$uZUh7caKMD+zss|*iewtb1&Pu$R8miIt-EsC2e28{-n<}UG zKnAiz-B<0>a`$facZ{gKB3an;cgnSN-ScDYLwp(Z2s=|f{8n|n#b!{{R4FKm&b>tq z&`r$WNmcJkRa=xzO-t=^6v`TOx4U=9BMSYZ^Yq;F$z&B&T{Gw(we|nHDYS~gz#g(HR?~!b8=ufuyS1BK{ zzVS5l007YJcZI(>M=J5*Ey_M!qeoRnOElMGTR9#(&B{QDhhMvlt-erWeidTi#|}=c zzhCfRK|ad)LX@6X`Cjvqj@LfPZ!gS}2^uCtVH6G+AJUl9s)o}G14f?#<6F1U0k2)+ z3pJseZ`5OJRa0od8!pjs>w%$1D&TgV&T(;b#g8ZFd+pgkZ6Q$Guf5?;d+W&Dp}lDb zY;X5{Ki%Fur@id%`W(VOogtr&0=(T_*E7a0BQqdfH!42$KU8(#884wCW_(ILekj7$ zkM@F6&fB3!`%U?E8oaHl3kA%SYqOXZ_4us-%g~vRUq}#v!D4sacb!a$-tk1#EQV>R zK4V=mB=Xo1t-7Bx(_cN*!3=w4A7%?i~nZ9cu? z2c`;zUa_3!<{!ig@WXgi;o1SEfch&m!EbZD9folydUVC|7{zEI8#~o*P;9=X zXKzyTJw;+_WAQschyG0_(_NcQKadnYgmrEE9#&9y76Z8soy{T>Tx*NEV>CJVT|06> zTDU9olyX`W`w-0R8d8^y3X$D?%e~ZQWSpm-*NAhluwL1Z$&~IOCKVdzYiR7&^NQ-o zwaFz^z4P?`?e6`j*JiDD4QFtaZjaCO*r#WP$M8Dc1Uw9m2N0*D`5Keu3r}EkO&n{T zO-D_~`k0Qf&7V!H*%9elMTf5KRE-Ryt%vZ;_I!D|qtwwfRjwZw>4~w3RyCarz|@1k z6IIYxMisQ%U;dRl)SGfuMc?`s{Rl2Bbk}wvEc8Yuxw%3+_5@etj4k*Zso%bEC;e#3 zl+jlygB(I?M$4(pC=bu%lnPfP=Yc!bpMS@)zi_A4{J_-^bHP2aSW{*mz1XN}9s6h7 zVhkHOfb1a^%7lg4bLS)kJbj0yPKd~E2&eTpN+Ca`5(dW7A zK4nxXS%1VP$_g#W&!07JH9*6DZH>XP#|bd3Qvq+A$Z;n1Zk-wswbq?-m!+AoQDe=6 zpH}K=s*7IhgOSN%9TfYD-U}ROrtLyg(pZR1mr1jU@!5R}ApOFzvok(3nk_fHpu$j< zB2z+630lY>KPBj6qD53*B$ouegyWhstRD_U&N|DE+Gk|3ZiV}R&ZXJsS0^atz0$p1 zge`n?MqIGjAi#nws|YEV+p4^^EPwHI+wI8mBj;vDPx9G)Irl<0oX>9f8ovd=4jWx< z3ZmZeAcsIstn^dE8GICg?)dIQ=MS3)!#7XtPDKU)2pBZM_Z8y}q?5dB{9Nij>)T}Q zs5Vqqvd;~_j$52nvo|~7uG!librR;M1 z{rgh=nNt0}t7e}bxPldSN@!n~Kry!>0tKOc*#V5ZM+SO^_MH2a zWendeE7^H20>4v$;%Iu6d}LF3+34NC^fbC8UZyva^Y#!0Z#DPG2^ z81A>P&hka(<6d%T6>8uZ^Bh~~FK@p-6FXJh_r4EVb=SW_HNx)Wl)KLn9&_o8#a5wS zhe?Hy2YXn|<_$aB{y;_+1fEdKw_~&|FqRYaC4AW3tXK=j*TFM%!xqoJ`O2Gp?lJF5 z**V8n*(g^!*MFU<-(5FPs**O|HPxeRlNL&d_VZ|iRzEZfCd@fW2Fy}5hX~l;3IiCK zyh2?>ir?M|CydBeDQA$63UDH>1wW3^B8|H)qM>y$yP=kp^lsuUEz-M*N93R_YRXdC zTu(|$N)O#mgh)!PYR>&(kshc8C=u6Cr`q7jTD-SUN~sk|X-{B~R6RgTO1kR0--36^ zYR;Bwq`uXsA3?{tq%nE9Jg9uN9%1r~WI?HxnjR62bk$?(p?CDobk$#UxIx|KgyZ%o z3klm7E@c@zCzvPxC4t8q?-XkWy=6_ z140&5QlZnCy?rILS{6bY-cjLoMPIDX+8jj>cf^@79)#ia!%<@$t|pYpd@*+uMCk_J ze-om2YP&RTn^gwb(6ttZLsB&nrg15o2oHYUv0kCG`OPTn)rmtDHVpOalq(;_wApKnzB>?d*MkTcFsc39hM zZa6wEz#9`orQmq&XEn7Ydv386xdzjT8Ksy`EHtJyFyc+ypg}xB=rH1|2x_sX{0A|e z7+xrN|Tqa^Qapp~GN`Mj@V4x^xwFF_@@>cMd& zwHFmuWn@~G7(}|BO(4vt;;7~X!v3<^7N#(ye)3ErwU2la=|`$L5AN$?z_RYL`0$pV z$aN|>XhTe&F{QZC57(DnE(PBs%5h5NEj_+#@Y`_ZEf7bWgU;Lhkx?z*jgTqlG*B!B zZsWOPCmm0Jo`~l=d+Yj7xpHlcV2a-HG<0PwRpl*}?$PT-#=cRee6y(DLICpC ziUdGr9mliMT^Sd|eki>juC86IFKiAsyxyOZS?eY14#Lo#@Z`Jo@b1SV7yk62=;3tq znsMx0k*d4ZkBjxhRy|}_-fvI7o3~Z_Mb7&!JW#|I8-YPZ-ol<^k%$hF%DX9f0+U9` zp{hkwl5I#ocCe=b;^uJGEpf?Bpm41%J&;(*C8$(+8yY*i>J~c#c!zt~Rkl4QGhAth z$HQS&-6rBB+t_VZn8zv0f<=O@Rm0Um^g)2}($fiG^pz3rC9JLtYasMDK=`A{QUV?f zmMm`(jt=qKu841h9CY#o=Aw3a+!_-^Y%_5rrRQrXo8h$Pu|?_WG<&~p_91oq-yvUB zw?sVq;+UXK8m;opaFkz&Rx^@&nA9M%7wn!yg*mGmm}S-bP+8Ps0C)vfK*-frj$EFq zk+iexG?`yGo8sXN{J&*mVP-|16I$dCpD1rXdF!w5DWiVl&xuj5SO{uoFeEGdoaj)! z_0O%~#|mF;waF1JnDHo6@if1y_+7^@UMc5q;rDHR-;cjS#W#2#6v-LW7D)8(yh_YBP$-kCN))E|lS{KnKT?`O@)qEVusTKEQoEDL7nU^g|>1i#Y3Z`CCxxI+iuS7(}Fs}6F1 z#{}2v;5v1@3I0h3pVoF?GTZ=9$N3 z1p)YaT`DYI+%aN*Xek3K|rp7SpJCfxDA1G)#+EsOvGy<{|)ha*g`9W zRkgIxC0}#o3s#l8Byv9ub{AKN>JeQ-*~Jz_QJR#xz(i@gEM6CJ6(SA)ochk9zR0X^ z!Y7qoP%sb4*j`dlLs9j}Yq1znR|=WJ$CJ9#gfB4RDXNw*4z23BGEjDLma)0ho#~|; zcI^UZG=P3dXPU3&)@VxtVC%02~T%Ee}%~su=y=Z+sWkW_i$+GF%b{{nYy zzI=sFEpXTM<*W4KB6r=*(pQ0CKhxe^Hp;M_atTy2U3@c2hy>!Ro5sw_f zvWTnvD{v7f>3KT1L_gD^R$mR`_#;bnCKP&FqvND~a4qMGyJd^g)GuW`PuKkylQ4Ql zmo#3{0}+I#%7GxK7;)ZhY1y)ZK6ET_uw;-fsvEaJ7&>9kG~!Z6ezplGMt(YBuxA_= zdDwILzLXLFrC_hxh8VH#KI0<;E61Bi|KcUeITzeXUg)znb(?9^$0 zDNy_p+^vJlwBKDRD*J=S?g!{O4T(dZFW2l-nIQRCU_PV|^<-9m4vEG_RGxZDu!iBI z5Q17I88!W~vnTTHr#gesx#uBzh(Khi@`Z|Px} zvKHD~rp0fFUA4OV6%mx2e4NvxKq~Ez_jj3-6*M6xu*GKRf{lLot5J+UlDqjD#tJ?T z8c09%5?#fTF}zv#KkBWmQZHoz$D#AZ@@6ZH^w>cnuC-`Y1$q^!OAKG|uPDlqUKC92 z-QLz%Y|-<&BX>}{yY5N4^a97HLPia24b}=!RV%sS7mV9^bpv!%)^sP-{-e&sh#!;D z{YMfoTe5dT?Wx42qV^;cPN4P}!jOQmh!O|tW`R_h=;rHC$^&#Wh8Yxc*w5|eR>|I} zo6i%M+RZ0TIMK~zgz4sTk+0vw?(hs#IARgZd0u%Mc_pS=OUaXEXQ zDEAHog(IZLiFRMnly<+#+KaW-FMz_!lD!iYRuY#Ag+H2b0t&w)3>5A|#$d^#+64TdnYI@B`y_8H71;Z(oDiYDS&urw4XyCPH?YY6piW}!cc`d*9iq&qDi#6 zAJEFy)gpk&xYN*Tl-E5)lVFKI{c7GK(x%NqBrcdIRcL2&sIxW?f&EG$RR3z$4Gc|f z;N)M{z`nUs#Tj|J5p`9k1|rgcpgdy~l>Y}Jm`3@Z%fEhfDU6KXO@-#C(4`V;PNMn; zP}~Dd;=wx8&z{8hoA#f?R^n18ajgj_Ch<>%*>ayw(CJH;>q+F9d(7Mz{v+*qMfSf)OR9$dA54)j$m? zmjNHw!Nk40`v__)Qr_Ks*B3rN^`Q>kob4K$&kijoAGHOAw1_cNQg&P(2WvuhoP2`= zSYLCfn0{+#y%E>T^RO-qhlH+b$+0S;Qw8VFRoNGJ5*#bymHga=H$&HOK*2FBUe_<# zw+^Si0||~ZHg?3e^G!H`ZQ}_;B;U^Z3BmEXIsXOP-Fnea36Af=2c;taD<+)i&hv!n zjzxF0;CNFv`h@^_BfmykoXOV#rNy%Url%jFi#f1}JF-(x2X*RcZ`0EU>5lO7_23mY zWZC~K4D%y~g=J3>5kc8g9BEN!vYVVeS*JZWHNGcn&NXGhFVfn#U&y}nVLV1!)WXUB ztYRlJ?_a+^fhr{~b&d*6I59_ggqfp9gjMV)@W{v;Wq}dj!ta3u9?7FfBg<|lYZi-C zqD8dyV5)5711;e!8NpH(QRfcxA^WssR~xTSiaH|U%#d_P!nuZT*$ITfW`EC<^~AEZ z)S0M-jD#beX@iHv8`aW_R2w}ZA=>Cxs)7tvL>mdQ8%QxD(@0;nOd}~;rjZXV(?}*G z)5w=2(@6ffOryU$$ut|+8H%aXewIwLx|k71a=*Kj(IL}J=pC17{>iY7OmpJBon)Fy z{FoS-W)|k_NtxyI z7k@R{QZJ*I6#bbd^M*a$5@4ylPR3NIuUYG`r=5oMF!9MDRYQY+!H_PO!kvaRk+{?$ zc}zGlq!EM8>nd+w zkQ6aVC&!cAIce^rvGQ@}SUK*at7^V<=Tzi>>F!mzRNa~=G)0cXxa*r*s8{7Zx=gRC z#}Z{4)OnQgtj;l8_Xo74?L+8-Zl|)*X=ZDp$WC>|Jzdk*u_NH{5vOaF%Bi(oXA#>t z-5qX+GzLxE$W^$ZnDCvx*xT@}>Kt&ZdOvx{Ie`Th-*IBOumR{ahS+ar!bY!&O<_35b z3>p@s^dYyq2CLL{&(Ez(w|t+TaMJzq(nRrDrub#1 z_(W6uSt5^61B?CAy>YI;>N^+xEAdVsJ#Ui8St z&4^x&Ebk+}Gs_!(Tb8%1+N8LdeBZId8o#n&w=8hIWL??4odsSA+RdMXaR{qdxOUx1 zZ7R7<9Haf?w#0&6Bjd`ZKidA|8k)oa%3X_dOFme_Fyxqb?aO!9P2vlV*c%y>FD@gi z8o||i^(pQGN_G$reiY2{MyBR0&g5BK=CYneRcUWp?7b+x2<4M!2;4Dr^Nth8&kQ>@^P#PeXv+YK8 z?Vp_@a`3=12mpe5IWDq<1<}W=6?nYhu3jVjtdPr6$Yl+{m+xZE>@g&ix8e!qt24gi zpuT7fxLo0jHTgoj(t{i?Prk=ne|dvAm-8G7D0!Qcn<`?$U9Xn4NUd5EHAmeh z0mf1xldBdHk`DaZ>A(o-0P~uq9*QKo>X)u=ADIDk_Iz0+bBJ=z;4uO*``;dCfiMNKK=|pnK;%50)^inI4-k(i3Mg_YuEOHMs=IcK2cmL#Fz@%*{mhXe z?&|;Z`jO1j-PP6I)z#J2-PP5(foDf_r(wqn%`3#snTgM?19c~u9sX8zDj*UE7!(*1Ucy`rf zBy+D-?n1(1(R_7|U0Zn0m!LF?M}L5#b6*p|^ysFwi;J87K_n;K9`_QIdQ?605n;V%Q?w{~^qCWpGG0SHvwzfb9Z!ov`Db7WTOTSIx_kP#rZl+#@vJ zu#h!`Y=?dm)wR$8f85v$W^0xa#w*p#Y)r;e?gdq!Ps_X7WZCl!%w9>CN5{1LHTcsS zfp=B@q$WX?&sF99sZ7nWm|Iz@I3x79@j36Wqaf7CCx-L2R9Q1IKjrpzDaN6=wNAKT zxi*PgGRZtkxFT{j^lE9TQdb_IRd7g;V#xGz6d#UC6)tm|q26F_j@$R&UJ{ZiLJ~dM z-k|PaHgX3Xg~OShUVSEeoY7(V=8`9{VViUH5uEzEo7nG?6Q$%I{8)fW0Jz>QlB17t zwM4e5gG)KopEn*MGWUeO{0+<-CAkvKI|jTuv@k=L*q+J{WwHk3E?-{4MGXGW-bT2{ zQ%v07*;dnfoWR4z-7cyAS>y7*cy>8@oUYr{qfS)@aC28uABem`mdYMqSIk8v(RG_; zge#(_V`IxjmovE7E%f+y3Cz2P6v`3)is;Z^@$Iq}F(C`=q;Ho=_;x9?Cd1rKtU8;? z0rms;7Hk5b6hmo)S%n3Ob?qVp!Cl7uEk2_DdY$E+T)Kw?otzsb$KN5Y5z4Bb_Fhl6 z)T{?U5t&`eoqn%v^cr{8H|~l9mwrzxgFI|K_s2g=iwJvz zOSyg^F>3WD-hh-9@kHI0m|ThJ?DSCNwNgz8PFG6j-LXmDb#DP$=L47(`}e_DU8~y# zpP}8V)ZHAmo9~ILEWRLw^wyM6-$VL$m-3>+aC?KDcH3Z4*Q))w+*3+>Lnuz+p1PXY z)1S6d93te$9SRQh#&I#nK0?ivdVn`p)||hDv#*=hi=WDu60GG{UdOGoal%{qXNcRT zJ5kZ0OUw++qMTF3T62m09)p50tSFSZ2IKpxLp2Dzf$fls93$ZoXy{`STr2Xq+E*CL z99$%0|1DO}I~lrTY-y)mt}OLucyYOEQz-N74Ge^yT(q?af^=Z0WJO?}dB!V zYeI8(i}R~aB-7A9`S)B=>*MEw`!mc>W72cAO6KB}Q#Y=UMy99+(Y#Ae_N!M70V?sN zP?TMj z;`8sfrh^Ze7YRG|omrg_v#T$Kksc+C_lDsNxFy=|ybt|P@BPu4S}WpUeLX||tvVfq zCjEOfuuqT7=nv`LDO0IAm7+qt{O%j1cW+>j-jBo-gY<5KjjZDStusi^HwA;F*f;}r zJYr=DKIyP>$HT&Hom8ed42_mq7yfynac{t~duAM&bm7lKJ<+Vsh)MV-@h8(CrM!Em zAP8{7@@l?$w;UFV49uqLd3V31t?nV&<$d0%lm{Tn99DB$ldVJeW4smvYl2O-dV`w< zYuXO>ldoOP zur|uKOZjjXiB#v3RjN;ciMh;m`Fis_Y1e60g3a9E@xH(^XRIDEpTdp4|L6vG$)2f~ zqLy>xIK+D5^7HWI8p3fvY%TXev`#(%I3ysXc{sO62EJTdhCdGN{IJsNQjz)duxS6j z^+#CtUS$V`IOCwR#o;W+G%j{kl*Fdy%sHWD6&I*~A#nNIW%5gq>IG?{+K^C#S5)-) zIW(6s#2~^&>ig7?n>=>W)0VRyZtTh}0(a}f!z;aGydKo7-5N=r=D0&(&{Y-73q@bK z3OKrqo0_n^{&+quSE%Mnbar(2@YoSWao>S|!K@F}iVHLbDSR&~l$o&IG- z&8v=0RObqd(=sf^glo*RR0oA9S(|5uvnUnT0br$@Lf%oxqN9X=Pzcnzj|WZDg?K^MzqEp1ahv?C$W!m*zGkUn$+5y0d{YmW>cX!Q) z=ZgO-YeM;2&Da+fzO9Uwwu_A2lo1*GK?YrR{u}Bt?Zs$OV8YDa3&j=PnF{kYGZkv_ z(Ss_=A;LOy8jaHLXHXnojk`i!ZMt@U!zy;fSYv5cil&zVX73#6RKFg{bc5H_{TyAT? z*>y(hJAtS954+m2hDYPg-hM%Edu5MpLrYc;4V;MIq*u8Yu)&OAu@mx4WwhsctGRQ~ z=d)n(xMtzX5METgl1hA#RMvFWta_Z<-!E9y&33KaCaf_h{6Px;NmHTJ$}t zda6(u+fXPpLhq4osq@dsAsLbLn(6R2ca;u*&&&4q^S-F)fkL{L4z8;#d6l0Hl^!xL zllw-t&}NXuu04jw2{BG97JIQaLH#*AORRzAsQ=0+5yK8EOZ_RJSlO%yk|wCXr&2=1 zi4;2H8-nqcmD=Ysr0xy3Epx75+<37*``Srv%NGpqS=nVAHoYhzXm^`6Zpyq|xHofy zB+_DurwQq6OmAPWMNMW+0M`Ue!(7#7;?+RW9BeNzGxa7e zExV~SrB5`M(l68V-FQL1)zbH`EQM^FUtTAWMHWja%XuPt}-4?Ga?Pxa@ znZ((f-tk5DISCot;NE4!V#B|o*sTyIrPwDcL=)m zKJ`CFE$O9UeWVpyCO~_|qi~uP-@~X4YKG%12`w{}3NhOwz5VG;J?jsHx9VQTsYZMZ zrp$GcyH++KOwowfWB)*F`MB3)J6Ukr-KjG1QlE1wN7$N@`8Q+iSSjh6VDJDs;^uydfQR}@x`NFDq*1BzxXs+E`> z_`fERt4?h=i5yAu()S>F(ix2mr2d6O!<|u zlm)?3hW2~qv-FUd2s>L8xAe)y===f^WH&;TJvJOnH7N` zPOAOkeKf;clffFlN?PZjvi9*OJUO7#Vx+_hqOyeMWapFXhWX9lSpqfVSlf(3TW_~_ zV_qBRnqkGpKg=^Wcro*v(+f-0S*ePXuMgt9!pcWR{7X8Q#&V&)329do?JAy|?2g!UuZEJ)^?7Ugd6^MqZN)i#UW_chKA;6lvcbagatIEIDyxxJJ7UkR}kQiay+-&jI&F^&o%3j<{ zasYCMyNEDweY*koKGBr0(50$2mz+&>t&5)FqE-JQlAco111{;DWR6c2eFNdd1Y&g( zX>agUcej~zR2sbUbFiuYXiI%!tD$Qlbd@vEi`;LZ=3e@2TP$k_!_FPCnJJ<~+_y%~ z6!mT!Fx6?Oxjp#TEl5@SkeBzP1TyDO)Gz2=vltNbIjJEpXDcaYjMUM{fQ@`-gmHP7 zb1z@9yuRl_{Af-VgTPFDrHOwyeyKw%3JIT)-InP!gl_Ka8aUJeh*pIFbyL-55a&{l zPG+xE${4~3p6<}d_tzYM7da~ld6FRe5w?!ithBB}?`J~(wY3n(7>PH;I3r&+Il(wb z30ECq)2_4iX3o)J$%+ zDr4Zpb1z+0s^=s#mS(UCSu?m*&EPg(R;#AH`0luBuqB40PH>K6IBNmYA&wbEDH z$et$QPW8D!=;*P2fB$1?20@3VwEC++_3b2vqSvX)s|HV`23kl>=N`5qDKJ!X-5ehz z--cwVptM2@IoTX@S)vR2bfq;D2;;G3vhC8crAw%vxrn*&`OKyn)<5JQmo@>xkWyAN zdtPh;q24mvFSR(@==?ONr?BLMrM_9@f{B0*D~#n$ACu2l&cEQB7X@fs>wtLp;1t- zzPXLCW?3F1gW zz>SBB89#Q3fhd|^H0MmEw<6uXV_nAu?hFttPa;?pIob_bDH=H3=( z=@ZRaE6`dJ9Ih@7*JVjut;PUw58=qw6EmvLqM%cgi95THcnx8^*-e(y=|e+vU$wR{ zNZCKlQ2fc0O_zE4xO#G*+GS#Z?;Zh3P7=v>AsIlJ=p7d)sPLU?)=jvhIXjoDr~i1i zdin<2t=_e^ld)#PC*xdwYoVUC1Hh2?Cztk)ZWmo^!E3JZnc;61(=aem+Wcf`|5j;B z32V=7TUSfb3zNysMTOf5tNqF7qZNG(;bjKt8q15FCB{4%7X6SfV7nz@#|d^M;Z@DQ zdFgK-k+@GX@lQ%DCJa9dhaMtYsmI{vIXoXtO3>v#fwl$|46BmSuPJ&b;rhW&20xli zGfLY+IK-Y|K5nfYL`@Q+`B)&9SqQBh;%s|C5@Ng{ZY7);09AG|Uf9t8PyA%Ary#d5 z9yNGE$~&4Ev!Gp48n-0kW%)GMs6~N|<_s5HAELcg)@dKhyKpC-!7v|RWSieVdWQJ_ zVS%**tiH$G6D))KZze8vU~vYI<^;}l16ujrqwhi2^cx&xmr(JTd|cLUEWT$E6{*U4 z-paga&LA?HhXJwx+3{pwt#UKJTQ#Q5XZ;*vwfa=yIG^zUoX`CAi}!`A+_x7dI{O^q z=pr03b29g`m^cbVkad7W$K+Yc>5-Nz1h<<==CS>0!%JsKqRrcaspiR#n#B&GXtx%? z`oVKcEZKZpx4AC4NNa!m1zGd{jpk8e>kEpP-zCCybrR$Z2dTNU8ZcD-dBkAj^k)@^ z-=tXHmuJGh#WVA(S`{xBO~Wjns{Y^_*3M-YasEMe6Cy12_%SS?tZ4~`rP*ftMBDss zKpi}e+WOBcZE?{7qDK+UVXDbiep~9*l96dm?-60!u}|Dl1jmW};kGZgh$JYi}}|v(I=pN|q^I6PCHmrK{DI zB$|5&+Z_qFIALbfcAOmm(#=>_;j>+H-dJYh!rY9nWBm4w1$bZu<@47O-^46i+cJqg1!N;oL z1%!j%nnc0=uJ~FbnYOo*fS^p$%Fg+YHlS#3yNn{!)Q*%`50^7%eOBNy17w4 z#fQ3)lpvcE*mD4=0jK=+GcidHABd0kre?5(thx}8?*XYl6O-j|TiF~oH9cI~P||Lj zK-z$^NGy9+TUSJDm#C#f3Aa7!^Lf>G4#myeF~b)%UyirkEK#!?2sWVGlgE3#PDZWa zOmAvOUo`b~7+-MkV%ZrJp_THNd+ViLVJ(X9ZwZ=vI^tM&e-Jp?RMn$+`E8UM?z&8B zv6)Vu<(H@$&}cb(dLVlXWOWbOZ;7{@)1}l;&G){sk0-LB;));OitkYANkAQYq1Ip# z$v-N7E@_qC&WZ>dmHR}jRLrOv$uL_IsxRc1*t!&euPVXL)rTC*x5S*{t*JU$az?y}H`nekmB z!eXW;^Oa8`-$R5W_bF4xUZgw?yF|(Cste;SIyPd7nNf9A?DfbmO#{)n4MJV6n>aSAQ${9w1qCQG=f0qW7!LO+hMxe4I~q3tSke zut&`&=ZZ3c>c#XNNcX)2hK%y<58A_h{`aA-Bt?hC&<{WjTIH`Br_3xTI%+ww(1(>N z5rDS~V+r38JK1Mcb*Cw2k_EE*+b#giorLYd*cy}FiD7hr&7kg)dSJ&-5g>{2Q>Z=2 zXih6^Y3e%JZ;hX|r)d4P-sCv!ZRzgCU;uC`fb5Iro8BrYGBZCTJV212j!kg?V%g;! zVC%8QOvCWWGN9l6%N^XApxOmoeT6dr)kUTh)8Bezp_nx!`R(D6D2K}5UYhK3iIbv$ z!%2S@u+=o$_zkE`!Yp$zR}$m+2w|SkGZJSUaXmTp%;?)P|H(aBH~%;$(a`6>XpR6M z7hvr9A-nkNd<`akV3D#n;^trcnmJ2PyY$>$_M&6TwPjvixwdP!o7<8l{7ogSCd|(B zSoRECS^n&zO^M5i_4zYUy$N9n8CC*b_d4Ip9c#v5q#=)*!4_el`Y8uhh;3QjJ$(CW zxzCzie5mV5aT>>iGD3r_%3l{&<~VEqaE@bkyNHbD>=DMH0F;;fFsrlU^mlxa0m>K6 znTf4o-4T4x`)Y;{vBZby;2;jdrnFAGCQKWbb&R}h1sZ;6F#);OLRu!jS*EM9OOe;K zv1k->ABzr?Z<%DhIT|LZTO+1_xdGD;Buj$nA9f?^IhCj#9JgPw>0~keTGP&z1~*>k zGyUXZe)?*?26&sT%c9;68yBuGgfu{q8 z>uo~wZ=&K8MHe;oL<`GaOEf1YxcAItVptTip9iEHEWLc?Al%(e6*++TqlU%5*k}Zo z=FKt6xuPzjoG3Km!yWX;Sf0?``#sObs%pDRuq}aIs))MNY%MjtTslM@{+4;%W#}CA zyu~g{UwqX1Dw&;S-U7nTGD(#zsGLJKR1RddGZ# zc?u*rin4aAUabJG&*${fpR-FR}tK}K(VL5!QT#-8M;a+?ohb)QdFxm8)Hf zTHOIRB<69#ZZ0crbf{fS2B2u-UAW(2-xe8iQU#`81 z_R%3t&G#6G*hz-Q{)g(k1zi1mURL+|LZ=YpF?s_qBq>Q z((_&it+stE*mnqT5#T$**=X&2~ZOth5s9L3jwVEhgC~! zI$ifgA^ZzOqGn~YDQ!G4@tWCnW?X4Z+|_C7@~D0{Do1a^=3Fcg;|k-yuue(T&yJM` z1=kWd#){5@M7>U;-m`#G{^;lkZT95P0ZevI^(Xm~;!r1cZ**XN{heUucOWGwl)t`{ z_T3KFHq!+TPE|W?F1T(b?Do;RdILMUhPN5_WAr(#yKT6lTnGn)s|42)IEZk!PlP<%|A0b-QB-Mb#_T>#`y5b7WTtaEG@j2goZ6_ypKCO z1Zv>TnwMtGI$Hbx0g1BZ!`=}R|0VVCi!u*+;rmzak5j9I+VInHF4P0-|pNh_3~4uA*X9$B}xVOI7hx zRs0~Ed5t+aUi=SO4j~C$@wEc!3J5trNKI&a0|_ma@L$h0oVk;Ihk~7f)E9@dZh70^ zq%X(f?c2m&feE`}RKb=i}sXBzjqGaatl{As? zvJKo}iRJzK1gW5d*mi%n+&j5dInH)v0z*_Ae%Wvul&iJ2i5~8}lT{rX+10M9wH!t4 z6I;RaNLO7`?`vW2oa~cGyf9SdWKd3IO{}gTOyd~gaUaHNh=&X217a$?{smeTFLbGD zEIv-#mx5x=c>G@N1xw{;&lym9NIA{Qh1|GibX#OJRi= zJo{bq|8%E>7E1hYAy$pQ*`=!S-POJoim&;4ph(ap*SPW&ikDoygo(Fo#l- z@7;XLv$5KCZRkJ4zazjoNn*Rztg6%&S^PcVH&oE~M3s4aDvPIf=PCoFx{nA5n<5i7 z17~HzYLfWqZbj3lj9IG6 z@{}ua6fr7Gj#I|+j;no(N(WUFO)=N1*)$x>0(_s?%CeH3SG`crP0aP?vmrjW^KNg> z3Bt0!@a|yUXZKuRi>GTej8Xb_VwCd{m!hiOs`!5reo;qmbkGeh4Hg+VQRz?wZDuL4 z$wLBO51tsPK8`U(hO=FUfHy+$hiODDAj4uB01I2`{l0amt9>yImuE0JDvDev9TS(`7c=z-mC2C z1=)DtM4RZGN(AP0bM<~;ugpDeRBvuHYe)&!{9OkhDz54@DmHB|=t~wl=(|bLJn=V9 zY+V6)u7KcPS?=(&Tto_NII8M&Fn8JuEb}IZd7#BSVl3EWBSzURh5{$V>MC5rq0vZy z$^BJ8cDQFn;0hW-JV?Pf>Wt8=-1dRcFkav{1f3wENiLG@3@Ak z5%7=$ag%A+n*n-{7-_nb;XHrG4?B3>=SZ{TxFm_aw=&+Xj5?I48sK#3N(a!MyRcGU z$^lC0pi6BzC_LYG!~daln26no^3T@;N$mFv`w14i-MsL1@6^4=_^y6w(x9x|f1uhz*Z zJg_|Q+~B4Z_YB36|8&+*q}VOt$X9p|;^;J1_h${=i_t#Z5lP8cf$Nu3qosD2xvY3_ zv%tJZ3480yB5%dad5xBPJ+a>U$SYzWEc)?eV*CJWf66{-9mIR;ic^RWcWCicRH4DZ*3sB$$VJu2FPDjFX>)K zDn|=))ZL&Qf#+HTOSaBB5js6(L95c}^Z~IX-r^DuAVXWQ90eBoz`R7X+i@RQVrHEH z;Khw%`IEyk%uj^cExab^dzp_=zUh}3c_kAviX(|zl1r5ZclLfmpmrm z3XSQKEc8z*^c2F-|MQA$#=S-nRtMBW~E+kC%tis;tsyt!*;;$Xn(PFd|QLO9RhJR~Ydp zwV$}sYP^Tdv)%TV2|FMW=yCx(K)BNL=BR=U*io9YrLfvdWTu4ll(T}Ja1)e9WBgRraksp-jqIAMLn&i-{UaJT75VzD-y0X#3?P}($wNn zivK%d3x^cF4~bUqAGM7pet8jyDM4Hkfve$?YJuBJip=0u{%y|qT~~M`KM1*Ckkbls zQ@y}NzC@aD_E*|vJPD{r8@HPsWvL47Hj$|-1?ZkW%kJ=@46KcSBu-AK$4>xJkDrNV zH*hm@I9T$_tb>4jSdcnKqsE^BIfdrcziXA9{e#6;^TBhGH*UJMU@u$nH8$X-^B*gi zLzc1^WngZHMtLCkjX4`!KJ!Qs{gWtFLtOO6&!N%MjYH4N-C3u@>g{E(?BV5}mAnlX z%-m**Z^2#-3UJ!W0k%%XCH8l2X7y7zxh)4$9b%PTcUk)hhUd;wTS|OVolGeylj=c~ z7w`R|a_@CHXM+*nH9sGM^1R;LW}a)9e`~}1n@Oc-i=;%n!ML%lgLUV+T#j`sZ=+>T z5HmMsWm4ZrY(~}5b7PM{l<-;3WNo<1AeQ-?z~>P5E%AOSgy#kv{0T=Wp!Tu|jj}3I0HMpAtP`X$=;}PCb>fv@6*; zm5tjU&9iYxjqoQ0`57@wC6w!4;*YiR_xSME2mM!e%r!2LTC-j`o+4byBt0LnP}DiK zmT9OP_FQCGW4fM4@$1=+8Wb;2Q_{D}U8R^U@loH+rU$Ce`$bb?&Y0VQIF-1%Q;5Lk z%PIn1b-`kl1%EZIDTEES9q-y}SMM{Gr!#r9f9KwYLUprFgRBfjecOA#(!U#pRmJ@d zmsC!;)^H03;r@clz2EZ( zSz_d@6N*0)>2$&2h}wY;1WhZxJSo0Y>e7h(AWb=6uu$yoA1F2zb1Rq4G2JwwJ&u^= znhCshB|imD{@BzF@Vi~aT?A6o)?(BCWi;nIl`_ssozN!`rO}JT~9rc+ZuUC0>ZTQf@ zi*H(s)xa&aJ2sVfsAW?k*!7jNXsF4?Ps$>@4i237s<&Y|vLho@vhnh+%k%xOgO(Ti zUxB5i`r_7V$p$<`Y|_p(bX)~bVMZ%Ukj^14({r1ESIN1w?y=0Ntt?ql85p?2L|f_F z+%&HLeid$~T{+x7ykRdyE<>8s#`1za^AR{l^H3oz8c^0(=Z4~;_8*|r4Y$n}o9C|>HsoGnP} zin#WUt>eWQlhmADh!3)&P|d7Td_;w?mu>lyw&GrAM@c;mq88?cDGkiZd8V z&L8pUfaj$*0@bZy%uuu}fc@{ZmZ7EFV)nm4D6(~%dE!ZY1NPWj86A(+Bi>_2;?rg* zvY`u?CC#b(;-;p@PMn`uW1@|wj0k&+a!oxplEiK_N5!KsI9g-!l_T1!Gl>$j`w^_W zQ7w+WY3~-lihG0l0~a(cTaaBgKZ9PH&&%s?hP+oRdekzSXLCk65>WzXAXoiY$od1g z@LF}if_+1=bqku$=ZW?e^IL~XKE^3j$;Y8Ua8Lcd3-(>m!X>bLS|0*!5BW)({kiis zxz_yge)*b&zMd|;LthX2M$gYp`WF+w`)825VL+$(U2~irW|9ztC2O7{>=clRE~VTX z*qt4YeS+SQBg^N#5pKn+xC$2!JhH0Uk|ta{tgWu)7Hl!OQTR{PPoP{^?1u5Fy|*z! zX+?Qnvas`1SUF+KJ-ut)2u@pv{<}C)ISa4+Zem%JOu0>%ej*(5_C-o^;B!#Xz*cxb zv$h5~X8anG82T#*w#rzx`U$Rl4a|<^oq9yRzf7BxMD@B*Eg}58jCo)JD=AWJ%@|d2 z-;2q2;61L*qR@=ve!PDk(i0Tr3G3x2g!K=qAV(sTnEsA>9XDJ&o4PePf7X}5npsAo z9;bHuujamQ`Ik*<%8kbqM$CNJd%>o1kGr@-x2kC!gGIBx3^xx(r}f6+WX+peQEp43 z3L6t%NtP9Ly-|f6sTLO{heY-^J|({7gr8$)x^eSMn^UEHLN=iV>9KatiZgp zk;%~^S?1Ma61^K!MYj`ngYBVY$^emW6Jf@ye~z#qnfkue+2;xOuC*&Zx89q|dT(ax zdQTfgFgl_?=b4Adk$ZUuxr>Oe0p-Za>iG>$T6%CfGNkJe<=a9Yek+*wYEFL$!BvHa zlHnZBz7uZ7^InBISUBSioh?)_r+ychJ#;G)^~5>-n`VS}Sl@N$e!K^^)!9LGMw9xk z69SjzoRi;^$)J1*nXSko`;wLAOEUUc1h_88M>tN>_sb0I$7Ab}v8Vv6O53q=%vi~? z;Ek$ddEs|;DDq?Aik^(GC7~FOoL&jd{ZY#Q<#{}gvFrNKNFV+pPs$Kj9k(Y%KEY}nsw}7B}et9 z{EkUNOrHg z&Q2#g6Q0X@@_t(=GPeGhP;?+@z6*KnLbkNa@@2NOqpFkU_UIt$QkYhkk{`k!>FC}1 zqC*+U`b6mLl8kDUhH6^GRY+F{J5M^-A`_9pJ61HQ%6Z=Ea172L7pwNx-=H>9(Ww%B z_jLhyE3uo30>)R(*UkTN#T1GDDi*KvGTssMQKh+m0jtj(nsr1zD z_*XB}2x0 zbIx)3f$Qwmg}_TqE0$$+b5|`Y0{6WVh|E!A8C;Q97={1ZR=+>c(=H7OlJu$Ll~(e0 zxbC~aWrx0r$mF-@JN(u+WBlb3+Mm(>D*ygDAyD-pzi;xJQws#YukkPMHNFEQHw8v+ z4vYlo{S^~-ZkT|Oc{%W0ZQzAk9BEb5}&JGC^l zYGBA-EuT7^;3!N6a>GYPPwsA7-wEHakOZ<2N#vI%SH*HWH5o($`IaA4ltz2a+TAjR z!F)NJs4=wcZr;KAE#$S3G%W~~49=}ODCCWT`B$6I=)O?R!5UpK{ipR=NI%v+-mrXs z5>sD_bL);m3i&czJ2X0HM4xf~X7$uYbOvoZeX*6=-e9U&z68w%jbkaqki%F0T$VGw zLr?l*_RtMz_JwFPTLCZ<&A_u>Aiq3^UivOuE7569g2l78hKJ!{esQpsMw+Ha~C)LcQ?{S zWy1cOy2!iBPPCePBQsiYi;9^k*ECUnd6h`q&58TGj{6OcPW%fUxtMx|ysUed6#5hK zv3Mb5@f9dv@O`l6{I=x_evai;9-I%*>dI(&KpyqckMHf2Z#Q3iLSra^0#@F(oRiyT zb|(bD4gzcw%X_0^KAn11K@+&}aId_>yxOwBEh`Chj1FsIx*jFEoKkb zKFQ)xw$K%in)CUg?}E6CkDk&rmUjgxbqsPhnPPd}JEQXKx-u~D27=zu7H04x>>k;- zSOV3T6Bi_s>a|ccS(!a=xkA`tc}F@-)p|Aokb^0U#j&ntMu#39tQlVrDqEHhygp0I zmgYk%eHJ~{R6lU?_=4{GlRsfqd7q4|Sl*`{R5hKge;+LFdIf9s(+_6O$$W!*mTMr} z8k-)Tow>85&*h&`ql064FB3=Mhm|dpgMqZ-6J?gVGK|mQo+o&=lxp*8ybk^T}-b!?Qp@7R&P8FZEo5<(*Fq8yK8yD1u-+p zB};8yt>iligW|AQ-nZ=?(wqd+wjeF9j)k+!t9NK%{9L*K`8D)d**N@ki&JtIQ+f1C z=C`RRIWr3zxRrK#rK{KW9tnN+Wfgpg3XTlee-4gY0`qj!~ekQ@5$^-l>Jk}y=&{y#dH%GpkBx%eiU02O{v{b)ed&q?Amsq0~-QZ*S}D?L4@lEI21n~VcXr6w6;Rw-~0a5 zMXMjisyzpgg^FgXqP=VDn=YX;$N=<@#7JNIm_O31-HYkk(8>E0oc5IyGk_Dbg)+OC z%w(T!7O>{wtOR3MojqtXA0R&r;`aBq>#0(xtv@!IN4kv z1R8+#2b$5z=;3@~+tXCLnC_KEF~>(YGat@ zgNU1N%AVG>phr!sF-|RcgrgWRpL7d)j02%du=@~lLJuWXLz{+xS+=O|a9s;m9V6q=|1ZYyKm zTk)2Xxj4hxd+kFdN>N(syE_{7a+N!PdcEZ8wMvZp2clOEY$qQQ4Qh8>qIMj^*|t{} zbTqFm7>6(F@bMBt-g$Ole3q)2Qwguiq#*If*R`-Ne0RsAiMCsVb(b|enf1^= zleLJj`R+#@U2-Lx-r@bGZi#mP0T2qADah79){n0Avc9^qS4P=_;eF=(*d*MhB2wE| zrR8%Z<*HEMcFvDY!@c7PEo_1iGpwE>>x5wO*wd<-2c9cEtv+k1x`uwVOu!(WBRB?W z@j@+j5^9b{rFGuz-f)ZG3r^}DD3FP<+w-Bs*ws=dX}Z>mh9!1MVxs+V#F$pt zpwADrtruRQnVnYg^3gt$o%KM-D-_0f!88BI#(_glp;W313yiInJz zue*;gm6uSacW)2ztQ8}>GXv3M)ounQqibKAsyy{woYY|K6`E%=*j^&CxQbDgtvAJr zO6M06Q(8Ko8}@p3DPIGLu_$5L=OoM(~Q*t3m5Akh| ze%L0J)?__QaAnr3)1if}Hzv}O25+9Ev!pszjGD~C;&HvX+7;oGUUnYMgin8{+SePL~_WQ+t^gEEssy<(LwN1{UQFfl}Ol=mXHX@5gEL}&1 zVA~J*3Bj*oF!5_m)M*@IR5XrUG!E=;XR^mXPTMPGiM3R&vs>`jI#g%&13tF~H8+0C zYa4c;mM-|woaJgHRy;-0@p{6gb7D=xNAQ$VQ#dK`?7+-m;MpNf_>&2{b!T>hC-O!J zdQVo9jQSIRZyGKJ!v(~lM;(yQxLOU&2{yc0VRQuyQ`Dc>!!ZfiuXU#Q@%X0R#zPWg zqEM(asfapuvYLLw^$m8EXttCsdHHZ_1X}F;8z=X!qYq6-;y{D3%^{zcHS>O-2J?nv zi^Iw#X&gO@qLZ82pNLK75hZh%0j^eUf;?Hk?b=)#xxZ?6KJm+%!r`IlElZF-=+AAf z{_Ni}%5wQc*4~2eM;LAG9t@#aU9wCI7F?`z?yJi5CK}6(vkF)|9u_`bkAelf?i+%lqoUd}yUD!dSQiCG_-5SVx;F z;XRcg`!MPDr>SzMJ%9CtW^))y_Kqbc^L(PG~?MMk2S-sg|h0 zV9#oEkrW&RQ7msb5J9gNM!NPo%@KOja1&x+A*cO)IY;cCBFVnws68kYej5Hc!4aHa zq%dqGuZ*RjEyUHXJYNR+?h7jit?&?V$d+o~kpp*@xpI&gkaoO{oS^Bw^DTq!7XqUW zYTs19o=s%1_$s8QFNK2Sish{%3*9ZZXyT%s2Pb&D*?r_Xj9ly|+{U79VW{TChhTwV z%>&jE1j2G`OUPkwaH~cL;iytrm@e$|PMgYHXf-uXyNTkZ>F zhA5p}%Pdhs5ak&So)D2DO3)D{WR8}M&09tmh;k>5VfSO9MRPWBh=!wWU?KsLYjx)Y zxqi?Lx{Giu?@FaEc&%=<&3}ufmMGAkc(RMJnp;9*Gz1k#!S9xeqkJmjE$De!0+uap zkt_cDCt@kiboX44V7e_tJEq%Dm&YvAjeD?hrkl3=|2NZR1%3LSMKz%Bi=8Yf@}v-p zm4`#)zlg@4k-Pui1ujm~X_3^fTM5VV z4zhVeUepRmq;9+GoYa*BWy0~ziY?85%ek_vZB;G9g zE5jkXjwm!6*qLxRE)=RDJ}SP}JF`nv?!Th_@l}!pHe- zB6>E_-Yyk}C`%N!`N!W|*vG1K$ny6{lzkdLMFE8ohl^ zU)?%|OMQ%RDy+|mfii+}jNv=}Ee36h^Hwol{o+dpfJ>fi1By(R7br|r() z%;mjKNTYhbi%3#EKtw~T-+hhNW=|Jv6;IE7t(G5W-=lZ6ll%BOb!Ee3Rr%5bf#9$s zn)T@2T4I#fa)d%3W5a9A#~T~%JYs$A1Oc>gP=7gUGh@R#R$_8uQ1NvWW=M>qhG#Q@jJS&lWF#QP;TJUD53Mz& zWKU^huLdP`ZBSAkA^Z5C7UEXKx$_2ldqZ!?CN|B~c%<9Yw>21T_9bPmI)0*kGYN1_ zFMW7wH){y>Qb(5RR#p+5@aE$_CunxL<$cQv{`3O)>TmsFfZ|>FTPBw8gu(pd8#q_) z(q`GxC1pYOv26HMHZ|gAtm6LnOm(jiroLdmy9A=1RgieWzRra!omMs6Y$lAc=m8Xf zoA7ZoPbT6c#`!fG<9csqp6$K%tUg!&QOd;zcRg#g>{k9vVuLd0rIi^@EAxC;<~=A{ z6gKDT!Y1KqJWMfEuK3Xz|Uiganl%X(di|CH_sl7}pT! z;up66PJUVOkF@S>pH^_ow1R)cu8Ki;Y@aQuOz|19sZ8;%3nvKl8sWswL0o4THp|Xo z8ba|MF6U3hKNn5RWg~A%8(rJ5os18ywq&gP~Q;dHC-hT7!i!m5P7H*eaEZH@I+uidPec&2rt)%BFc5TD!(HWVHPK z6Rds74JnM4K^@IN5*w6xL|U2c)5>h=%DgLOXjL(TYg~=yE}p%em@=;J+b>c0wrEP> z-^u1_C5a6R|J$(*8+^A5CmI|joIb9Ks~a}ASF*&bQ%h{3=AM>bVo6$wJ<>|-;7Uv% zSL46=oy;kefyLPCz^UM;l0Pz^=Y}TO3QUI;l0My&KU{a&>fJE=DfGY!5e7I(>5VKb+ zZ8*CjHp;vY5)>IS_?k@1dPlY4%wDCMZ0u%6cYRG48a5Fs3npq=!~q`X9H!sfU|=DH z39zPhnES?EaUPrFi@FdVX*HYui<>C6E)=Mm+S%-X74WXANH<(nm7~?m9I~12{cO)% z>?W|urkx8XL~k}>n2=}QGiv;8d446ec$E9+GqlD1Lcs=tA)>Wst?C_8C4u^rOd4nR3b(7WQiNz286khjQPeu(D$Q+L7!0JO09u7c~yCb#weI<#|N zqNS{>c=HxAJDpZP_i0G0FI_l6s}Bf6t6?qF9gAEu=*7+7$1C~(m@SKR(g*hysm|~2 z#n$W9i+fdn4237FpVLV72c%WMXIk|;x#};}-YjG&rKe2smQ<|YFyN}$)9C<m6= z1ZcMpT;d+P(K+B)wau;P^}2<5d8&?n1J$pgB&WuIGXr;nk?F0u2>NhZ(z_(_`jPit z#fxa%{Kr&Ta!ep{2@LP;3BB@pvkH7$RCIkkl(`GW$g(BkH^VRK1i*;?n#*JCMVV{C z7I-eydcrGpEqA7Z??9lqg;Vn1k+kNEn6cH)w{&-U28PExKf=&qReiGi;d*#>gQ!hA7_iXf?p zQWhDY_0deP_t}ZFnGPXBW8_ExoUkhtu989q@LdHR6>A56zG4q0R=}dJ0~Sq9YocQ- z>lXY1Zi#h&ad(FKonrkQ9GTjIX@|k}m#NAx*wH0R$w5}sBcoPTM&SY`pz4C*)QSr` zRb48)>AB|Gqp1KLt?`%umbvS?`h9puH;j$cm~7wB?)rkUYSF4IIy5FC`hzJcBEFEk zOPdYa13^?`HfZU>2?_V(QT9Af1JKgsSj!YyBmVe*kYj`1Or=ZJrN5Uhmr|GCNtY+W zjnbt6Oi8-DBSD%*m!?3Z(q(&38&1&W6TewW%|2jClIFSIdz0pKOr}yv^S%owNVAHt-7%>@&aRqLm5)c$ z^2+WDT#3A%@_xuL)Fh4aVmDh4oNN`mtpx4DN$zXhTg=WbIx?dTVMwq>(JKXE_Lsr+9^SCjc~d&!ijF9yz45kM6NGbOpzG$ z-0utd0o5n#XvE2WMK4vA2-otvs=D9}exMF&*Zo#C)9)rfyw(3T{08UW?`v}Ytx#{H zmQ*voMPJ#Zvzt2rvTgRY&Pnp{r8Yx{z4lQ4OFKqeY9P@UgV5Z43S1N{zTYWeRux@n zf|*t9{ZF)ov))O1WPq zU7i0BC^xP zLYa%~tJplY9zK9);}{3le73(HMJ}z!l45vnC@QO$f)7w)I9Sq|c9F)>x2jUKBZqZw zVRXS2%hjRG^%xKHF8uRHlV(o*pfiN}&L(nqspPvrr@a$U%M?l0)NW=(!0g>B=7y1xvV)|(aG7_^Ss>UwnozDDP=xq=6y zaaXjnyUo$z&F1d@BT0eatA0 zn1`{BwINl)`bQ(AjLpuqGU^js4L5O_ZEI7r{uRE`VrZFN@hq|;NzK?GydSP}iFYY6 z+UaZAS-8QzOUYMEa0`x~7;>rcf4w-dklLD-gwh-26-k<&GV?f$qJ;ec{(yd(x2ioh-clA`8 zh`!9v7DIh+kZp-eALFOr>Sw#%MTh+8)#=%0xb$2<{UOpDUr%xU@vZtCe?b*2D##A+ z#NH%6beYWDk_7uYYmY}&Uz6ztEjX=loX%c0WWIXeu1xYC@WBuLb@1!$Hi%j7a@Y}x z+@l3%7f}*X+k8e|s>n~{a7c{xX7@Sjy-k8r7A<&A)F6*?DTp|mqZbi&PJICgw}`0~ zri!jk+CHXeyW|nMO>d$t`1cg+;&+LO+q-zl1Z&Sb++@dN`nw&XQnTX_hV81l6>00D z6Sg=7XSh{xG?oxMiLuo0C10bp9DdIlTl{!5JzLCJ^B0gNN7gVzd2(c3Qei_HS&y7; z*B^Fnl#=bQKQ>mop)4ia>LuyLKl@^8@%eide@KJkHy{U-#eW@26yJm5otiJJmQ*$W z@c&hVz71;d=QqJA0hu7c;x2xfRCdGUy=r+K*U~^6WP%+RqC~T+x<}DD9*&+OxwzZE!y3 zZ?e2#6>WuUNlsC;<2szxzsS9nWMPpiQab+yt7KdI!coEK1;gbDY05Y#Rm1A?sY1w8Lg?KivqL2#bE_tWYL2U{ zxhPvYR83R*vdBBB8G-&aCpJTV_YZj|p<5unLp3KtLoDM$HCM7Dc2PSbiOVGmFl`7` z)|}V|fJ%bs!K}qeZl^56LynR9X%EjPd_};zRJ4)A&7kE!?@`vx7#|_PE!ekpMseyze{boh z{{!pBkpGQ#>`hZNsPG}Aj(vuane5mOShO|Lu^nk$TF36=q7oguyQ4j*DeV*6n=d{j zEiL<-E-I1zdBO>)p;0fXQ9jm64T*(RsS&@EUMY&b4e7+V<^|hB`#wKh13(M;x_>g1 z_FBtt6>cx9{q%&4*+dLR*7$tkfQPkwId|$XkS(=R+_w=JGTWa=;wL;u+~7+Zca6ww zf7TZ^@k5?N-%gqJ;A72tjNR^`Xtlp8_Xn~QDAoRMr;d9DJ?CUjE)}zjdrOb#fCrCv zi+j;Si^uM23c{q2Ut~@(Km4CqH;Mf^IMQ;stngw9&?^Etmw=%_}l zPJBm^FMZ~Ojx(o-?`vgT?UM@jEk)iVE&UlED)`jGBVOaIxs%PlGCdP0)@*;C&zdUM z%qjDypW7sXoo1)Y?G#u6eQ2=bBXM3ZxcQX^P+Q zgH-%~NNTvDQbc@db&QAZ?doEY+bDnr6V16O3|1+8i?%zZP!pQTB8$}+5=!BB?R?0e z1!;G1#FJ(V@v6(0iRf)Y@R}d}K_YsqqW?y;xMrfGEALTw?7j?!ZVQ>@Z=R_ozJEf9 z${QQau1tDsE)r&#eyli_---O90*o)w5URGD9g3b#bbOAUE?;mT=Mreppbod zi4?Nc4URLtQ<;l%4w#8z_E&Pc_E|lBj!3kiEyPfHs+B217~2lIo;24%3k5Y^P|A9- zQ>Q1JQx((LY(I-NiuFdTk+&FmV6oeg*Zg?DEIaZ_PqicOXrD_gRp9)bP4Ol_L&;Wl z`pfASGyb(F?OKg~<8@!N`Ntj0fIm{Q||8`OAS|I`}4JlrmI z9v6Euq|(OZlz54WF*(M?++UD3CI=JW$e1kjqtnLZK}1Wz2^NiQT*0vkR>7I|qd?Jm zvV%qEB8V@sVPCmo-pZ?4k&r#gVcj#Y4(z)6#U6tLG(j zmHDdSAXuk?LCTEP31(++vLUnE91E2LIT=?Q+)`!b$Y0YMgkqFknyfQR{u37r52}9Z zbHAeRh12@Hk&+Ko$&K~nTK1k2tCMYK(vLwD&$KQYk6D+Z)4FJ=A8ns) zFit(lP*fwT#bhQ4t6EfB#h@|m!bds?NME_=&``N(^SV_ovQQ7|Q4cI_($oXljp?dN z>LRWaaaJ|>&fh=X^82f5^$YgsK;WYQ3$m0iQa02C;q_U+;=MTQ%O>2izJFd;!h5OG zB@&0fjj(=)M>S00A7M0ev9Pf${sO4n6kp4inH%ssATh;XrkKWt%pK!YGk@LpB7?WF zA=8W8jSQLgestQ9$t0Q~GZVg$D_bc8qKULEk#Mpfp3ZMWH4E>$KFn?WD(_-`)6}f1 zq-Jr0xzh7ZzoL09pGr})PB}MD-=vyV%+i^CuB4h3dO5CUT`|6ankDjuoSO9*-C<53 zr{nyjn$@*6v`pwFZzI~1J@SprBt)vT9{DE6#&dNju5^82bP08Cj9L znXNr2+a*oS`YT5OPP0r`vljC@@c&||)ereBrH(R98#E{XSDKT*S94nbT62oeO=-?q zJWg(jWt)RfQZ?sP7KC;j&@6g8tLy9kW9B)qL5+tap_3hOsq8Tt>3~aHrFXztifOC^ zt{afoZL_sTZ$_Z@-5e4-%Gyj+Sjj5nta?fzCA^>Q?q_$ zA1SB}CaY#m*_~9gw2ySI4JXtrz`m^;s<;$2>&{Eln53ba^^kfczQcGM0SPqqpB7@J z=5K$6eMF1|XJ@L>jS=>!F)4&S<0+2Qq(8x@ z9SRa#l*~5Wv`-y3r2qDQ4J~Excbf}dcC1~>vaV2ME)r$g|Iy^-Xv|V8A@>W-um`|U z+&NHvGgU9s#{xd)%;wfcHh03SuOd`5rZBvJ@tE8|^`(T0$K+#Ez(?fxg2249_`rRc zKlfyPWshnH*($ZOU6}R2C9e0al?Kps>;JCSQrj?Acmr24gp;>te4JBKacaBgx8NKv zoT;`!%d;EW_dM#ti38|631dLplSK+) z&2^L;%Ws@0DDimhq~zj2A28hh)^=kXTwH zW9Lbz>l~2pQrO+ni{D9=$)&&MNREn~=QS7=&H&yL;UF;BA+czZPlouAIABJ~kof2? zX+vVa7k+1V^}p9264%l3$&sKF-sDJ_M97W=*=g93a3&wtAab2~eEZ(R;LjJObRM9; ziDjR(jbRw{f32}$a8WAG-^vhY3uo#ucsi>gL)`De35HlixRGJ-;fueMuAechH7K|w zt>7MM1$Q9a$S~-CVG1RGYpX9vFZ`uu4O{)V3nyCrXTpsRgL!Eg!)Y1MSH|>Vux+rL zAZqFOq$@aiC-Kh;03QaF=@%c+||EvI=S@X3H18=ic_u!n51v_MQSA|-3@N3zqo!+k%{j9A#l0(H{$5u5xRN@S5s(OW@Q`;3^{j;oj zTALr5(ver&+p;HbGoKR*MONnH2^atI&X6$7D+A78JJe%iDDufxxd!z;9Uo-99DAd8 z$)$Y6c{;|KD{Q4kT)}6;>6L#T*mFW3|adBNIGnU|joz^Bs=ZXFP zuHN9nvTabw(*=uZSfKg|HBY;<*V_{sbH%e-)Q`+n#A?#a`9z?8Vp$n0O zE%3V~@&=WAH_`ERMsi!~I%3P`AFC4}r=n$DTi|xL7uxDMUqoed_B09OUNNs|0&ARU z6PQd+O)avl@gk3Cw8%EZs!Quu>3lMp*GxFOf|FGmI!@Bi)2cbs6KYQKGEEH=$=gqzI8-on$U8VI@y;>bAtSKoFJa{wrKK(ftz$qc9%Fkz~V+ zL(?)2NXyuha6)cu5;2)RmkxA0b_BI!C(B~f_w%xmv<;f!am;8C4Q9IOjtY>LDSCm{QuJYD_1tZ+uSp zUsW8TDl!v}cS9L_o;`bH@O_#Kk1}_-aKcH=0>T>FkGonGN&zXf7ck$IWmF%wmu=PT zb<}v(UL5y-sM^xo)2bFot6Jz9CG_+EBCP^_Z+L^4-{643&ZlaJg8@pTgjA zI|K9XB}(sq%?nCziRK-pYQ`D=_4BZ)N>DN``u&AOB>uE=r3N>d?uLd+8 z54X)|}f&Gv1^`~2#h&nvsmN|iA0%f4#ww$|F{ z6xM%&h}5>;{RM8xBMxMxqGJ-en?v3`x8#p#m2`6?Cu{M z*1FDx6SdwlYWL!+J&kg$_3wi31?>dAkg>3a)gu=<=YV=s8Z$yjT% zSSlf#wBC>^;LBO3C}@-9A=?SsB$+Qhue?C0@Z{0z;Rrl`gr?6 zQa?T-C5YD}`Ov}gSpAu-v*|gYY8~o_UfN@&V5#ISRLz*Ai{p*Iggctk=(RLnP6@#O@1S>|Zx{fZZ2c7dv{BtvJXQI=&#$ ziflh3(TbfrX+;9hL2OPgeM1r{ro*Dh`WSlJR_dXyHTL&0{|fZ|c1fi|I6^8MfL{E7jx6{g}AEj$|U;VI9%*)LH2N3d85_~#BQM*VLJ+;@`(gOAqi z(-}2PeUnCyeQ2#tTod%zwZlau=wwm+s*)!QAMHOlp_24n7eXAeCYqt z_9pOARc9aYOfn$@3EV-U1_T*M)WD!b;*vNlbCVgk12cj}1jPkQ8)>zQWCntO1aDH9 zTt{tRTf5lSw|23wwxwzjX~l#sfglOsf*Zz_I}BRfNP^0I|NpsnCX*qe?e~5DBy;b% zXMN6dp7X5d;5}(6m~G}+Xy#drUzS~Brmr{C@5ir(z>9vkUxEE*y8esDPr|2Srag#2 zV9@sy*KwmF^Y6We3#BKc<0>j4(}Eo)px=sysB%=JVDBv}DhqeA-V!FjIk1GzM#TmR z&~gqg1}TXS{r)dNF_J*rq$HPE8z#W?|7a72iK!_mkda{H1cu;8ZMy$|hBwZ;orf&wy^qRhMGa)s7 z#mQP974?*0M9r~M8$b|!zyJlLva>cO2l_N}2~0D+J_gVGdQ2+^hy`wC4CpVPrVnTV zc8;C_tw?%WWDIBp%Jdr0VlyE%pn1t!#eh~!5Ci%SxHOz#Jm+RkVo%61(NLdA2oUut zfk^fHlOr6%hiK023%-7Y^X@Z8n8Dz*eqvUgG4dywo|?*=aAIN4$kz<-dnK+xnO-Bm z%}hv*{Q6|AV&rQs1Z8@Yl<9leFL|a!a^RTILw^HUM2H_TH=T4mdhOQ_ck#V_5BK$t z`yTFgrl*Fx6cn{*xc3k1d${+bOt0atF%we5y)9X*81DTSU_{$u)ESE5V8S_jfBwJp z9lno^;Gt;WV{x!{VnxQ(b-_!kXDokAZU!A_PWZX?MMSroo?R&-`lOkV8q4pJwTiK9 zN02I5zvMA2Li>cV{9|s$)ci;L_RAQE=v;=@;e64TQ+8j6nVhlvb{|VJhQdH2x;qrz zP4Rq>ast5fExB0md>in3dY-QX*a@C*Ng&1ZwIjt(ci#@!XL!&N!{srbzS0k5?K3a< zBM*4Lc5rlO7?Yfj?GC)(L8O59;|K75w^OgJ?E~-E@+Ek`G7ZC5u1Ak{6y;dj3B z3#GariihzK#uwqqTkewTt`!f+bR`}Pv3ok6$Qlr!{3Ywm-xmCOaZm6;wu!Ei1>$d` z`AY_h#(r!`VlI9iBtK~8H-g4km0pi@^VAJisfY0n?+6bD3-5@>#fGdzC%eQzl3ovw z8-bhPXt*~6cHhSj{!eY)OYp+dwdU`7{Id1M_!Uk>iX08j*6St$7y1fzP*ND|B!k1= zB)M#Gv6S%TO-VvE03WddmtBoTKwek>$s8dvdw?w{1y3X~Cxk=?N4PD538&3cNd`Qi zHF5@bRsiVHxk68;=nq|DT7%iRo@F@EJ)WtW%leSi=r7sSWYD;mh7bpgi;D^U z_4r1gXhrx$-vS#kuIUDl44-HoXQKb)e|sF4col=b)=2OWT*XXSf&|btgu05daGhrV zu1%&g5A!;h>Sb!W?~)N1%lY~{SR&JXi4|-DBVh@+!1J`Ewjb0Y>i!Y3_V`ER0LgU! z=qn!lo#;4$to!Nw!#?_e*S|RpVu^yMgB~8F4W7ArS+WJ_J3(Vw<_2^~Wz1HJI zBjuF!INYotV?Ab@$r!N5`Yr%+^6UBB7YwH-CO?Ygq}a2; z%-YDT$kT#fR?#lfZ#82bgf@VmYXyXIZn_S;n%Izl@b@DPT1KALVVPH z0j|S?9P}!w{vZpRl^_rV!c9%=7}EN{x&n+zKs*EMEXni?tkZ=%)hSrF&rHt1y3I&7 z{9YD+m3uKhe8BjriJyxR2>0UegQkrU?(DA0R#xS z0mJ=H3_UtjZ7`%vo1ssGMF1{0&`X&pw-fqNBhcYfII;^tx7BpK zJ98EU-JK|t0;wQ#g5dt?eRFZHGN=W+p#LP9m~ug?WeVG3&-DvIr3IE|P?>9)t1l{3 ze|aw|^T!L)sZ9RBzNt(;YU_i_eD#ZE6AWSzc!OIsLYR$ zj9tGYpCrYYIqtOTACuGK8F{9_*B1NM^p-r{@Ea%xoPfFAK2h6iz+3{BP~!l|rtqsBQ5 zck*L&4fU7PF=qMaKCCmq`J$DY5sR0xkvvP4Ag0+dFx%6=G0)u zbKC}16l<@R0CK%!0x&h{!7p7cMU zwmv5PUNbpk(wDRCUX%Vkrm)W)9MigykVcPD@9|g6n*l+rj)#2)Nh<*q_0pfQgaPOK zFpU9CFFlSE1tDzkKNNGXwxpkn;n#w8r4XmK@LY`WTp~iN?jK_yfEC!l_qCWrW3K8y z6!VA}d?fJ%!$Y$B97#QhR3J*z+c>un=WL`}^Rs3ghh8zrJi)@w0|CE{lQ`PNmDSqb z)cF;jvWo}c{0f6BjyxrJMkQh#P=j+UMj@E&W*eCfgB{lP_RcCjZK-O~2Rw??4=+S# z)NZF#e=hq9!r~CWhW=BZJC)8QbwUH^R~x^Op8;IfFq=Vb%xqgh>2a_Kcp7Q2DLSjr zbE78c!f`qiAOquZvKrm?#5m5Aj_>-7e-$`HwJoA0%(lsF>vI>0*=c81c1kb8QV(S7Oni zvJ6FD7Aj-1V9|vbAz1V{ZVAV2Rip4X(QKev>}hBlkdt^O)yraBLmv|jlQh5KJ?)wu zWH!$ei45XgMgXX2M*u*Ou$$JS=eVFMoqY4Ya;Bvg^6X@h`&q$B(na(tV;#Ggsjqc> zb!o44y!^cMb^Hdr#8}xLfH94BA36ln;8U3*a*L6gv522QD!ZFH{^Ea`keY>UPzr8( z6F`j}$)WCYJ8^^%<;FMWSILcU3R18h>y;!$TvK^k=x%^^kR8u}?zzdf1$495oeJG- zv%4wie*A{nT>;&PNiIL0l=cYq<4ZPX;;lUawGSUx(QZ^VzzE!uD$@~y090(0;AIb_5@ta`U2P!uk;D9 zUzy1n0INfCZ-6ajN(x{PAVk$T6zHGmDgdTUP6F(QQ+fdQAL(%(4FQzB*sPP#uZyu{ z=rG?$Isuj;&9s@x@1}MMop9WQ*rS_i&gb5=IM?Acy8xS(i z5`riL-YaL~#bC)ww^MpwBDM*`V+2=Xe-r=*RLoppmCFXAIhYZkwmVh<5JC0@e_(`p zOr1flPF!?VqYtPiBC!PaA3!u`a+Ib5WT%R+gpf?edGz>dIjO^@K8@Pw8fv3U^qW|b zmv(^fKo0Pg(+)6SJVE_G3lGAReHtDVZB#&8Zuh$ng)a1#-!g<3&de;(*S}2Y-eME4 zc6|k2adKlZvW1}w$yFlL?clzkY&Xsup_ZvdblG%Yg)93TKO-+E9EArZ0Ws7V)(P2! z0)|Q@qUd^==sNX)HTvqM1OyZ$n^=Ii6|dz3EHaJ!b+_>d$7`S}xkWe!=jjJu5*>6X z(aJ8x-5h=|RhZ%x%eeNzBlwu2HD!1N`{5DX)Z-D{4F?bXuT>e#BA}N&3B*nzR&%hq+U;=f&1rXi@yswO$$3YO=c9< z{3?80f=Ke$jZ+TI#gPrE9fv*XH^XZMWOKw+gKRF;FNMyl3ey1~Q!OBn-^g61AF2c7 zW$n1^?vzye@OZW3+9A}NqhvoMX4%vRv=fR2>&Z*a!Fn*|(_AC~= z4U~w|5>te^qx3c5UruAkLDSg5?rgw!1(`kixUnfObE)1S{tpN-nB!Wg-**vCF!vVS z0f4@wG#$y|S|sprFw7{;_G7Q~S1}4a3%Ikwhvon{x5cbp!zqE5tE$dM@4?0NM4GPW;@lzH+ppPPZ4wZ|b`n z>rt=3!i;V#>AM@(AQ^|YLny?W<4Iq@7|0B}M+;mI_4weI81;sFe38!)HHLbekq06{ zPHd0;5)xf>{0&hL!<9e)M214GQUnjJ~) zuA%>Acg?=l+?|Nj*quUisqkOO7i=X>U0F(WNIjasYWbSohUd=e_n+0X+ptCwe^%B9 znf*w3ZJk19Up136$m}*GW6hgNlgI#om2ZN~-UlsJUu5<^v#Ja-TO*QtliBYg4dTV` zIZ*B)4g;$7r5St3H)mV^?+0RcIc1YQv6u62GRHl%{~eLsdy{QLn!)Ia6C-Q%525}` zad{xDg3I%tA-KF+yry$`dQ%}nF7$umFXAp3x0sCOB~b;#Cy&GWFc>~E6(Zh(cRY&m z4?&6uxR_IJLLkZHUF$)yWGwHwaA)Ynw?I6XYxSH<$Gq6WC3-_Ks*_hIu_ zQ0QpR>&Li?lN_SyK8$xxJXnQB{9vgHZ(i1*zv&{`GH$vNZoF;!#oNFlbfqtrm+Jq+ zUcRvy)eQLq)_IBUNlf1xD%vOci{>&)Kmor1pv={Adpfr=8UQ zmhqkn=G%vNtvNHG^`9A~9?K~8E4-&rg!4*4;5-LV1Yv1{&sw{k2w(=Z_JJ2;i%)|W zg(zy^#bp_IQ86VAF9zP6fft^&{~^S05jA`@UTpvHtMOvJamx~?A0*;obXjj1OD(H- zCt~TF_zu!foZ;?Pv^^6?p7>8O`I)Ldab!SiUpVsVZjqXSBZrXM3rC)3wlo}h)_70h z$Y1b&DvmsuQEFXAspWV-1xK<5oeoC|#5E5_z-Oa?S&sF*6rK>IB3SFA6!8?Ho>yOz zfg~d*rI2L4u75WJNzPuAL=q7smrgwTj*y#%kpBB+A^)ud`ay`l3c-IcF2g}cvNz(c6p9ENbWGyFaoN&^cYFlgU56z+bE0qdi&u=^TyMi}3Z z&}gstKjXb8{txdmoR+^JL=Yar{!p?Y;qrq=ulubS6P6DnIoGcOmV$RKOS%-9F`Vf< zw&74j{(ASwH2!)U8jyF|imZgYLRA7-7scFUXB)AR_&`V(bNA>Q=Cc-Yr7;>*gtL0| zKQ;rXtkGnKj+=<|jcfc85%Geb;K=o<=w)UIWhI(O2Vtr4o&sSZ-oZd@=8)JEhcPy< z%fPABvDzHf*NyLX_9kNrx9#lR{*%Ugs{KdsZtx1HMscpoD7!qP?9D8jR32?$$FXO8 z+~1%F6y1}DARwBPH^ppAhy6GdMx?7Fb^tuS9ynXD8-m|}CrGHsF;7vCIu&ggISWKY zFI2QU?C~?x?vsh_FjoZhF}k9`;bfj8so^jKo(lq++{K`0zY9)qeC!&v{5(IbzRrQ@ zrFuU8-E8L{2k@7ihlaR8McwYaahv|kaCC|L+^PLRR}?CX)RjXlrm|=OdXv_B zQ@v$34-5U)TUIqJJlU(wg#uuj^J`nUx)}E`+x42X7S<@6N{#=r{pHi_Qr*31!mnK# z;IV+>_|a!(BSrV-5}UgeoR}L`ocfOChgI`67AW(ccK(X9W z<&E52AUUAd6P~zEoEbw|(8+z|d@OL7Z4t7Mh}!FlW*Y}2+)|8FbV~f%O2qxXBe?PF zw&^tp`vwbc;Gnr2pm^+0X=?(!ijGN5@_4n&8Xlu)?sx&%5hXg^p=f2B1-w)z8nPxF zyszvXMJ>eJOef1?Nm&!PFa=&jg94hx$c_0yRqP zjKY7yzrUqiqbBu(YgG15CE|NJ5Lx{k?hJ3n^X=aCtC!=>@#UraabJ0}eiS;x`xVXC zhS_XRN|_kM0L2|_3*j!dU>i!m`Ai8XPRqf>p$?_lW2aCOh}7VO@|pq|+BW2qwxYK+ znCY5gA^409ivl%H;v+pc^Z1$c1`SqCOXz)+^i#VhOv|kjy zU3BrVehFf8gog>fN6zMR@M)zy_$R6URg@OWso-J#e@4J=VK5JPgQ*W+!iP2AS&?Z@ z&G%fQF*2>#@T~*FY`htEjAMyu<4NK$dl#n9{Aj4Ias7?f3bp{VR}hGlVRFTca^hbL zze}_vxKQ$P!0zQF+)kCwhZ?6t^wI?{ck0Kn0swW~i<&yvhI3CO<*nrUPliHV+zf@K zMSr@$LYdLH3rrli?sw=Fji6Ns6El&L$A&+GDwBAfPU}|yhd<)YeAB63$IKQf?&%KV z>wFBZMelqLRYgYeL<TEc;dm4+=ccnw{*-*AdZ!(lS`xtS;C#w$6-5Arzz(e)lg=z)1(eeW9&F8D9{zVC?W`)>TC z`d)8I>wDU|6MMu|Ts&rSL|>eiEf_(LXpoInVV6)Bkt15uN&?(0>oTyMk?*-jJn8X3DzGEO;+%yOs<_`2~CtYSRs(3sQnJO z8I=mAE1&P1P}NRb3Dz@i2}cgxIq3V|IhJ^?S(&)Z1BY`W{Q{)luhf4K8c%X_zILYB z&mE|eRn0|z6<0GiZl0CjqJQyS769SFnp~)8x6-e7dx^1AgRxD6PYxUX<3pe0o6ZABa|fLd$l)t4S#8p$ZPT8>A}bw}|`@YUgvJ^nY_TtBVRynLrRg_SPh1fgA!((Sd(1f`8BUy~DZnagSVkv;@l` zpzUU;95(gR*Zhgbin0-K6Axr>4Qhjf_4`8=vQ_~GcSf;aZL*UU#sDm&;(!Q_ZUxPz zZ0*rE81_Rx=76(kIA|n44^g=R=Ra*{QzUSLMxcK=D~Di_QHzT@#SYSI_Yerny&^@8 zNr}IH10gzIi5_a%X?q;-P$}H4G+`(CD!TmHdxExoh@TW~`}60Rog`iEp+7zA>ng#H z3Mmm=@xPK=mNv{^_ysLM&`c}YZ}Ki1@Tu<44g0w)J-yiU^(>540aYYv%d~;=Ch8Qt zuEsbnjp(QCt16r~C^S&oGJW7P{NQSdXK9kx-4rfi5m=x0f~trM+xAppmXPo=6XwBh z^ab8BF>${|mAyT2qKO($kdtT-(qrhwP(`cEJgi} z1GVu_b43Bxpk-&4rP-r%pYv-?epe%InU1b-fSc!u2mnC#YVI&NnQdi(w9GC*u{(~9 zp;gJoW(_&o8PN6yv>o~xFA~<3j%6Tdjo~dlH8equW)d2J^j0E52q8;YDc}>u`Ys95 z<Sk;DHtfc~8KrT<6Z9hU-jVlx@}DJ22d$wUjnO@A%V3b$0^4%2rfSLK?xz!pI>A z^O(MNVuhA7(*dv zeF_Js+@ItI6txC`005A+ov2x+x05BHS|*zF+0A2t?72)Y*1y<4+#)#`-3lo;;x;lD zRs%<94JN;d{8kDc5PTJKiu z;eG)m!m|v?irXH}2}JC18`2#9NdG{@kNg#Oc9p*jI9-2DLGlq?gC7(}iNJY>9XM?Z zpdD;MaflWj@oY5YkN6$27cc;HKJ45n7g+mjX|_G~Br>r%jLR?DhIrtbCvNQdg0fw8i{7QzcZ$|B>yJ!TR)Perq2-rxJ_x&rz+V8nH71O zP9SZok=Bmm9i_Usz}H!hK=eCSR?$~Jtr0|A*@q^Yz=|%*_cu2)6a{YUad_3)2IB%? zzk9nPRkpyLM_P9etBm40yXd4H7$KHxzC4 zo5@ZIkbX_+qNWHJDEp%xJVK?e1hCg(tKIz>;e@SzW;Flz+?!zR8nPEED1S5`YA7%* zer<;m!HrsxSq>tb;COh8{5JiUqfRFF=-zD5SN-10@tns0_l0Xv!D}Z1u8V@$l3nG= zh@M2Qzv*O-xM>a==3`P_LZA*8VWZ;8^CxyHP2J#C_9^?0D6Xxbe9Q8c=A9kD6f$)s znBoC`?YQ5)6PR+$j~dnqV%hXQnLaQ&z>p8pG2}_Nz>pCiapbz99`1mmwR1QA>%=0|w4==pW$44^EZbsvkLDi^C&!hq#5VO%H)9!p;Vy0}sKXi$sEuO(C_f zB*v{V3?Z`$^lv{7j9X(9c9B_jy%MiRtqB@JAW9{55~nv+c!^JUa@|E-N;LmM6MMG% zF%yC8&jfM>gv18#HlkbxI?WtObo$IfbedX5bUFo}$Y9I0HN&v>yTpORvGCl0Mh!ZY z2e^A(;KZ9SI;bnXhM7mvLyvJiU2MFT>E9Et;Em}qT&!P>S3xkzV?F!vaGa<;%o2Kx z{VQRQ%Qy;;L1p*s@s;lKZ#uVdOx?Q=ecXy@v(Pye(ncGoCl1dQhkXP}8~ur3AZwT=1aL0Y&?t`}yoL+??wAps`#1LuSK)g$j?2}X*9%4U2HluQT zd}XTUEUE5&d{Dr-CmJbZN_8*cy|xT}eI5_-ZyROMgDrSfSB`*O_Y|I*D_5<;PmGA9 z#;yzfK#gUETxx7&Xb=ZQI5;62lysiw{Can(l zUtd`xZE3`07-WHbD^}XAMRZ7-n^YVHv=xdHy<-(7TK_g!sk+AS`RWv$+99lU(UqRf zb~HpT`4|jbLV|D8IZ1Jwg0JTO*Z~z0_WsyIB5$kyFPJ>J0a%P03sRLl)>8>-ZBSbd z5&ef?gs_z>+H|Z|aE#&wCU?I!tvH^G2xh2SKxrGppGK7u{V5$-932?_H|!AD;b*H0 z^MTb1N&OZUL-SyFuoDqfwb%($D^!F=P5y|lfFrA0Aa*qxmW1j6q{!gGsHX&sP>^gr zw?^QbaU+G=1#vDq-x?qMPmIW-HXeu3IXW{-n*Pc&#YoUcp;M$-G?;1a5hWk;A%LwE zpr><0Pf^oe;Yv{BG&jTKJ{Y?J&@=buB=yr?HR^3XoUGSF*!NU==tB-4mA28miwZ1} z`DVqWt+4?;b#l(pm*k)nZ7q=(a*6h1k~bx?_UGcqszAZ2Uj#=W?YH7Xba`=-xVZ); z>Dxd--?Gn9Na7|fgK`Tb&eboI%KZ|jqoq-~(*2-wq;gl!NuzQPk_2N2RqCG_@nqS# z?jZhJo7a(Y)c)+}mgaRGc$%LD2sZ)n0&sPWJ$wX>apqP6-ey%1wEgV?$W-p#Qr$mL zG6;DrDi;J?yKv&co*gBYO7*+;qu?gTSY}36S&zw@N0*@#P`4J#DpXo{KU%2;>_;mj zUi(q#3XaJU<>*W;U_CZ7;5CMwf!_>a{hlbrb_K93`J8gCJYSYkt4IeNE;JI0IAL#!ENayNbV!BU(YPTF)?NO zr8vC{n!rdUUMsPUS9%QUl;j1tY=Nw%uZ>|p(!LLdv^${PQ2-uQ1PupVpXpECiJB0i z0t--d;Df(~W#Mh47%{~^#}g%$;pXRK{Jf2cK*1*;hP-l)`QnK&i@c90c? zew6EcB?LPTe)lO&u^dPRQ5#B-XN=5kj0?2@LqnpryOoHqQHHKihK(r@4Ymg&b6eQD zR2*zX?Z?o36`Mr6zIJ^9Ry}MawW#cR;GO9Y;E&wWe;Xalu&9on`P-QQI#WXc(_p=D`*LVgtnpf-AsM4W+v}`z%o){&K2ia0@o<^iFgS%v!*2zLp6 zp30IwOFqaI$E8R=!CSyra;MUHkV-=JQ#2Qd+AdO>8@~XmgQZVSM$=na(7eRnWq;`F z#7)zU>EVmVXsk^ihlGG81%P7p$5)J^M2$H;OZ@hlQ_!q9L`4YedQLE!zZP?u9nfBq zieU%joC?1xh*Y>2gbZy7CX?oV2)@Mups6$HZVmSjxc4C(h$|BOe~yya74QEHU}W*D z*uI6;Cb2u-f3uOK+e|y8T%Rp#mQarLSbIEMda_-PSmGN3T2>$%N*_!z5Ui;qOR@UE z24~4?$0+>3$|%)+gsLS+5YrK~uW-@ABY;-zoDrRL5iw*hIor;5QAN~NZ{Y5+_>koH z7Vc*Pu`gb)XvVR2>R~`>uBg-7P@=eB3in6kr&L#m#=P1YYAc+Qx5)=OeDL4GvcUJE zXPo%v8P|3ouC;dVlk;}Tg}deBht6&++$I+`=Cwoy#Qk!^&f^F1=j>g+!hLdK3p7k} z-tNc%B|5_f#m@1AXYZFb?$`eqzQtg=9M$0?{FNbAr%>m1fq++zsSXf}7aHRjjQk zxzyl>)6;~K-9p@K5>1HTj3!!$n+S5!a{|%)yAgoKN&}JL20wOR7nPb>Sb;hI?1Mq* znSqB*Qr(|1DWF1)frzh#6o|sm+2qwhkw}W#4aVeuc*hozsNd(=8vV$#Y)P=guXVI1ty>gThcR0-sGn7Fz+N%e_a(%zzo+ixj)3Eff zC_w+04N4i|<l^9oKAg2LY#d+H;Q9`e*CU;E0$M$Nw}evR5aHvD}GRpI$5c?crdy}$;w z`}(jWJ+T6b4RavX&-Cc4z}w?S8HyIyfU4oBOkN7rs*ix(QJcAHgH`QLgmTpGRpDP7 zd$nK=)$R+!V8my7He*Az=;veGVIka7pNKc9-PeV$;j105hOAZ_ayL}gO!`i^V6&i5 zZ24oc5wz+!`Xdp4U{ZxyA;0S{iEovPx+LEkhq<9u&j+&_TZ9VL?ge4okKBs8W~g3m z)qe-Yp}KO__2Ct<8u7h2d=Aqa%BEGyC zgG*#0D!&9VWZ7&8+o73i_sY;TwR^QxzZq5a05Ei3Yzq>^Nb~~O1NIn?1I42NNS1g6 zhhot?|IG~OqeVX|9z}+?_?V($hHNDKBTfjasE>xbtMDQb;txHOOrZ=y9VIhJC^(`L z3o@tkEs8Du^jq-yObMHL?^Tu++QD`qKlLsO%W{uU7tMK4l+RKkOPz3f1Rl#+4{+oa zzZKZd;Z#7m3cfW;WQI_%8+s=C+weP0i5^D~+#j?;6)Y$c{E^w>qfr^W1h2G%4Kl`@ zCX+eY<5KoGI`AIR6)zPu=(xRfSGv@vwNcg+!xG}yN=%noAGUzrGWbHlQgv%JZ?sa1Vw6&Cnl3$Ex>E7}9;+c3Ht6!?y3p|vc1sc**GaDVl2CR1HN%#E( zxGvQp&<5)&N4jr39;7Si|JleX?(c$GGH*q2_c zzy;TR-_P+Lh6&}qhxw5IXg-5CEYbs8WP-GqS zD9ohN#)?GzQ0e~o5NYF#gtRfMbbm#I%~DZjvr0eRs`>Ke!X55*kMzLK*dg+z;L+Uc zL~)1qG`q6zLwU?+v90(9g-yJ;Q}mDS%Hg4kwvL@s%5%g0Jq;pv9O|{)+M2`wkMz@> zv3q*e7#fNiLXO(9fru%FCMc2{y9F8KhRQg%jhMtZMgQ={}xL23#a+#`4jScmRyw zM|T7c-fujFh6zM8sP>D5%nzVligCNfXq-N5UfjxH5|kU7ibhErTPid}!9N0C{bA(6 zXoA_h!1xzmq1jrl&;l*?pt~t_;b}pj{|XxloE`-Te#crOQtaFK4WPx^=bF$nOE^zf zS2!_*%aQKWWTy-|AdWeh1*27mam2x6jX2^!)~<9a*}y{RuYt=E?>>7h2Zc0DbXu}) zUjTmG@liq7^TD1$`L$hOPsEU(Y^jLY?$&&;Pcc z;lWrMPAAr4KHDxAs{>g7+(CS`z&R_0KcO5V)NQrTHHt6D-lpr=jp`ah*C^3h9vIE^ zA(%Yx`oA$p+zYPU>D6YG_?zCc1+wp}MWTA=#g?$kt5xLtwEpn{2!6?ji3d0-@6&x_ zcCgC7V{`FH8;{pPI`w{5`T_5=I)e_2(2xHR4*MTS^<|$UqI6vc>I2QQ!+T3S^Y*d_ z8p$m!%w)B%2dmA_@78nQhbCJ%tm(i1BNW-sP+h10LOcR%Ec(5C1b+j!zl^vZp=(GP zQQ-iFo%|!(-q+<}uAqIu$^}Dy5oB4&poTsSZi`JPZM_Vs!sL#D(vUg{aT%Xi!(HQZ zrRgv%`fc=7lVCk9^t-#Hb@UjDzt>}G|G_!Jka_@~Nl>O@nNw#5;40bA2VFZuc@P6^ zrTg_WJ&l(&VWHe z$$rDoen7!zDmZ2by@B%^>tKsz7dPS}m7_+20<(_o8lR+^vYKMFt118B(-!c!-Sv zYAYOm^&86ofv9a%yn-4_eDk~hEp!QA!uImzvJr~*hG}fkFGkiG(IJJ3>q|w04)YmS z!#d6uA8b<<#^+$`_MFy55o5;U0S5uL0-DWJ@hLTaVT%8VK9S!JXk!%Z2dKT=?>Y+J z12cs&ehDdt3JrbP94r<6d@;Z&;$npne*t7LT%pLg^D;3=H#_KuCIi1Eu-aP%v(Imc@C!&!NFJUaeVCp?2+Yd{@e6mPtSQ9iKE@$e=Y*Qpav73t<;Z6R$WhW-T%p z_J(y5h{0C@-;J$6V7;>YxdKc!?tYo!pj2*iB=IJS*J1RsT` z9RN%GwWLgvWeJTnBavG50Y=t>_`f!Tfx`U)RG1iGyrt)HAs>_cI87N?cF?29f@W(1 zq=>#7Atw;(a?L8xZ2;!%rTta+SgB4&wU0VOb5!@#@CPwMBFhw0T4 zpQ3&~Iy~eFNS1r`=|eCli9r(^WA~t_`uSwTqmx$Jz4|zOOk6P{{ubNol$TgAv{0_z ziZvTw0O>rj6{5%56FLS{T?Jz2(Tm$Xdk_btxdHCyA)sa-3j`k$~9f5k_6OD-OHp-N(nkI-n9qgQ9^TB*e{nQ2m;D7|vk zc&$1VvS}wNHni&1D2kR=ht5MGA(t9e@Y}3p+0YEE5#|cdP!We#hqHAP?vtw~$I9^F z`G=J_=xul&i%WY+|58v_0mqa#N?H^M&Z^Qsrs{Tl6|b=&Cb5l;24Bz^TmSH~lb}HIO+)TVU62!O0CPi_33uF2@cbsXH9lR}$ml z0twoQoj5mgi&L8k*M(ee86MC2i>--Dyb7O#l)Hi6{Sa`fuf6SR*g76YkA=@rw|Sc1o1nOEg}b=>v(;z;>x#vfAZI}POteCd>v;HC zRj}6=C>&y`uinv>#h^ux&8COhgZptnUx!ss|1c4_l z=u3RsN4|y*!7g@#|Fwn(=;wk+#KvLbJQF`K`&FWcFj@B_#2H2s@K{gRqA_g{qk00u zfrN5FQLztk1bO~)pCz2*o0y1a%THU?l|`0S1H9$cMbf>$LLsla+PV51UmXyg^hu6R zvqnJnD9Z`PWsW1h##i@l*aebbjDx%d>{YBIPlFEd<69#1Lqep4lTvXU``ka7R@6sL z%%K=XVOVg+`^oA_>zWCkx(~vaMFs^Ta8*fG)cqM}x)Lo?9n+={PPI5NmFGp|fh6mM z(p(e`;Ec+@yvm;KNNPb#3>A8{LcsIT1mPOl7Y?TQtIoBX00(1Bg>4FytJ~91LYvB3 zinhI$4b}&QbR5G2*(DggnYz=^tbic{d9~K^Yx9>~=GBG=wa$QcfJ$;`Fm@@~Ghnyv z2hYih%WZ?hc7I}P(0yR(QFvE|%6!?aUiXarrC2B5M(o)B@Fu1F`m)e9okGMGD-;So z;Vr~PS^@FL+t3&v7<4y>Uc@b9@vFQIP+IxQv;$skw#|nQjSRp!T-!RW%w}KSADYx@ zm)q>iE>O2-$?pA24^xbX0JWDotl{cgxp=0LC|hi)2i~rzgCAnnlhy`bev$R^gJIjm z#yC9D&o_1tkI5qT5p!ee_f{1-yxK3e18^eVVxJE{xE7JV3hgTmEwyir^20#$Parph z-u46URMd~Sk5Wg49Z&0VAg5NbI7q4X+Ts~ne)|<#{sF&xSNKv$-tG1oTHt^^fY+gN zqS5Exw)FodHj?UqsG(i3(RcqG^(wBG0RDIHiUX6hVDUute7-W?Ro`#nj4hA%< z3^MCaY{#?%jB5h!_rk65>7sU$-Dv^seZ~D*=n_^`%1WpnSt2)_qu+q<;-%pL)VMki zS~cqNT;3JFR8)jQe#!f39Lwb;)-sH>oYgP@fg1*NJiJ_$_U7p&&}c!{on978q_WqR zp|S_lUT>A^*QdXRR}&CXc-BO+0%WXlegs^;9bmART><(EeZ_v9JyCvU_^jv*t3GTy zf@VZE1~O&Cy8(zjvl#a$xM1>^t;#+fmNgpnq9Bs)-HKGXkDQG4P14Sp1tLP5Q6QBC z(qL=+8U>JUmP^POD-pRYt|Vb_6HYZS!Eq~mip|IB@ZRL(_rlwZ$I|^V+?|xrUjLGiHI~{CztDzY z&SAiYEZgH&?uV7Txrt`-_(e)|1hgTCs)ry-4t@*2MlE#Rg*qfbb;vY+gNz`wVURQfDQiDB!z%8|7lS+8WDE|G zkx?52dmJPKo+Se12Q(ZmSb5K)2gBO)A)rHn>;W?w0N+pRYSi{y?)Q2aH_~$;3MoU+ z7`Eww0m9{5%rDrMK#@HeKFnZH`e(q50$8m8Ar(>3=c5hAobf22Ky(JW07W$}x1**y zN|i{P{wYuiifSweXdl!nc!Q`_CHzwc#_5IV?_!sFc=(MzEZf22~afh zpq4aHR0GiQ9R2l1fFd%DTuccMTZl|6gMOyiuiXWn;Ob(aQG-!OZ2cR9Mp)=U->U!9$WX=@ zIbc4%HQ}3ZuW!|VBR(!ydbjtm$ROHV-P0ZgmS|2vGdhah3y=|3u3SUrK4lGyu|11* z$N!`Nti70T_lwdxItz4`?W+HOrF3`9)mS1Jge5m&VSdBTstiQj75bQDr#U+55D@oOm zrg%hr%(!;w8ud^v*X3Fw_2WLk zbsP~+k#LN}xWDAM4`r{OT4eTF%oiPDsYE&&Is+h`rJ4;d{hGO@P^g$)~uesL&Sx!D+Gqn^F=+RQ3rR zjY_kUG`*>zAZ}}b(~yWB9V?qQb+K5MlI}O+0!g57iJt~{cc+r#p z!g$o}3m0tD)xA^+8#pO;5^B=B^;OshjJUhm0twsn-*Cl?0b^l{&8V+6YRJ|}kA#I@ z&A)^W3Fy^goTp`%Yu~c!C1atMcv`OlOFR{J0>q+F?Q}UdPHfVPh5RpVtgI0i!hubn z)?llUo_1oXidCSyP~rWGTt-yr zpq``p4~`ho>KbYDTaM}}4gDrnK^-!0Kz!Du+rqg*ff4skT8c*q>y~)=q!1nnKPP={1qR6FG+e4zFuKA?8WcftdNzA-W<6u(x9YPC$yhN-G{%A)Y1 zPQ2NmprJs-L0x=E2xW^mXQPwS#zAnT1|9blRMihrq`ITXC2i?c%iG9tsU9CS{t-0n*|j_(mz0k zsYIo?8vj@AlyG<)4weEN92&zCzd;F+7sc@IjaGcB-z|!SL-8nbI+1gN7-lNR=lVkA zP`k22-%_D24$X<(MAEipW@v*IdfqsO)vDi7$YG~+WMbkBUE-)VC~#oFI?Mc(%->w| zH?i0F-pOARcZHtOWN5n$4|eMFbRY^>w02Pcb2}e#j61Dky_$_Zv5yrIp9^r50qL={ zkp?A0&3fz^VtyAzevi6s08CLCTGnXJ2aVj5K;Un7;uov;89>FNZ$!xe43jL04I#H_ z9HQc^aYT@j8Q$C#ga103kz$4z&HGT;+2q1#SA6bF(v916K*sFhlkte_BptB&? zNH@1l9&45K-F?M425vGMh6)tzmO-O+_#f;Ym{|HvKqZX*JOU~cnT_pxHt6^4vZ}~z z4}MW+J3Z8izg*)BVoQjVq}u{2owCqyc^Xb&G0_|ehYm=;hBOB0iP|i%)Wwi?!=vP= z;?$qogcx`nWkd+THC7so8BLZYJ=RjO-iCt;%$Osz zjqHXGMoNjG9q~yU--3S?A{4v8>f+R^e&GW3&LYHgBxV$86%g;fUEDAvOYe%42U=!V z@3Qv~^~2vmVH=nQCk}z5@scu(nlPhUqCqFTDpPZfs3YSDHg9xw386yqNd_)Oa}I40 z)2+YsG;`}5-E3U@_a`JH1F~{$l{Q9v`EW}^_k94n55T@2)3Dm9{}#mrf{20vtt$hc zdWA-yDD?KXik1$VE#*9mmIQLDix^Ll3Mq?ZH&@!RbS=7@1)>A%L{EjI!pou+1fOer z(L<6kSXF^#H^R4OC0fCOY?1kF4ezUq^<~hs!LWw}xOj_Sj^Z}_3p=2(lIj_P^u|j1<3_^kpcut7W$XcZ0u?Vj4U?zc98y+yw7 zlp`yO{E=&leG$1N5Si)JAAHRi9wYuaJRA+c)rQ|Y@P10X2~Pvf&};R?k{jw(UxRM= z29>_1eIm51%Fp%ju(#Y_e!cT9Nc#vdn~S>J^heM({XIzd1MbVhIa=5Wnzqv&cCI>T zsvw>EM=+$_?``-*m|Evzy%@^DDp5Ez%vbk;R98Wz2z-YchG$}R1nk- z$A3w7Wg!RiSA2=Ppc5X!B(O0E((~0FhZ>}vpYLPA1_+VV-rly;ROBwy7vZs&BA2>E zc*|6K`qCwO*DFq(69N31?ciZENsX>?w&VSPf;4u?CTVQVqh4vO=jZsNtcMawa%4$^ zc{bzRm+3ycQ$aX&Bn-La6?nit?JIrFr^UUI>z@l~$Cc<^l8{qq;r;_E^fgS8YZFk3 z(0v9^*GYAgjVGsccPXC0tN`z4V#MHYpklZZl#jk@;le=q+2H~rs{W5Bf$&M)0s;z< z14W=?phIj*$KZFhlZ)$7G5iJ_8+wPVFgZaJ0TqLHeYu?2;f?(8IjFb-=w$r@Y^k4k zrQ36qzl^i+Vc;x2NViWupTDwn`=wRV?R%?aDb#|8m-w&`4?C-*L(NrEs9CytpLBJ5 zmGtsfuwqg@?aVTa4{75PsuS43PZ`%6PkhsHsaw-^Cp!?N+%qtch{^)^>R#kmcRK## z4%f{B003W)O~R6yVA8HSM?8N~GTQUTEo z-nA9>b~st3v_PNlNgIi+oFk$502l9<;Lri#x4|}ey%iyVepR=IKMrJf0-(`lEcl?M%V@>Km6D@=)otI(P6efK4rzOMOH9oQvF+aUPPtC1pMidu z)ro%5t14N&)+)O7E%?G@?~Ya&-D+aDDvWM5v0F!Osy&gje5l%VO1I(z(>v2DIc1O^{nUYY*AD|#5`Dxx zg~$1#J{+*VLmA7ZNAeh4j`J9);0+II&J_{|hQf1);ieBd?7JPyANnifS`3);JP3ZM zJ|-38`g5ODT!|x>i)S{b?+D;^`;t4A1T>mByQPJPsA;e28_*USg@z|xqa4H41)$pp zxG~+S!&tor$GFwc6^Ypm_S){%;R)2l($@?Bk@bbN2GthSTk673Emh5)li3z!v;vOp zm?bs>1xr7u?H(i5XW>!)JA9^~%@WmDb|lmof@o2H z^Kh~(J#~BPoSrKFyPi6qNM)wLhw&zM)Rv78PwG`;)XWsV6&b`prFt*OCpBez_0LWJ zQ``-M!!Wbs(`(CC!^6)dH1V``Lm`}K6nWXbJtBK}bnLgxZ{*5ht~~R_#*RRFZ;Dwd z4OkjaZ%?xa3H?{b{Jjo|yN~(n7DE&O-V9F-WBzoJ2v}bK^|NQ|nZ3WGSPHhKALubu zSblqnRR8l-BZ(dQoK!Pwlg*3|2YLaw#LN=@4uFeZgut*S(cl5|Tj;NGuL0~kv1G~o zjRE)x>fZdxS7YoCC)bXQ2BKyif;tp<|3z zY6@y^1+;7JLDxIdy#3O=UA~5kWMP$*YfoMf&JAYoMubpDX#$q*(*3furT@p0W8_@d zc({c?=FYF}E(uR7J#J?6O>FcbS1oQYtgpw$fnz{eT5hn8FPQ{?r#~Uhhf&wxBpwn{ z{b4K^?PRP2KT)}Dl3iL?2TU`oi{8&gm#jnpr!sI zOpV!o_}WP&(mhVj)iW42|I43LF0C8H6n8iJG8(myG;4=Dvl@fy*M=j(C&@-{;#)v% zd<|OxVyGx<7JRHo<95Y<31ni;xKsc&V|4s)7`W2;$jt`+!Vm7%^U=aqjCRXuTEKXB z$8by^IQu3Tt^7E7!5V zCPS1(8!4w`rvN~rCYL>HqgA1er(bE!YKK+HYY|{!e{pPVdprEQ zO;RyVf!~c$ZC#d^*c#96K|3_~&(d8O$M-@5@Yg5ROTaYqJ1{XkN!yFL#(~al=ER&S zdJrFt0n-^P_Jz<#5}@i^=wJ^((ZPuV&0L{=lP(D7!;A@zs=-Qx=ah14*=@|?efRQN znBRlht;`Trh}m`f!_zkNYH8WEKYlX?JIR<2BTIfH>er+Bu&oi>Rt*#ITSfFAWY%Ip z^h4vPvGbL<8y_$0s}980-&c-lG_t-DKLf*~FQB+!*ytJ8W!>HEX!h>SdyvULe&!i7J%NH^HgHr@nESKTy8N5gr~WFAPh5=o9^L7UzBqJ1(*m#|H&m zl{hU5iu8RtqA&$N;sS%OZgm9QTm4dHJGGFdOuEcR!14ORoN$I?B!m>Z=xT4G!9h}xZ$KQjCK zi$A3LD};_giVH_WrG&!t{-((tYU5Y*cM}chqLb)y|Gv8%wpXbw9+9cDS#-9ZJPZ<@ zOpI}ju)AVDS9c!jtJ`n?{=ez=p6B}P_9DpR)=gx3Hy=ma^~b9u|JK+NL0nIT*vz3#$s2@3Z66oJs=gxDfNUnTz+^kx)4e?=r%rLt`hpyLq!a$&kVcbeltAO zui1+H<<@Y%RNN2ESYxdewu*7M-qpb5ek7Ex)@1msAIBAD=ZjcUn90vr0Tm4ce_;%) zMr1){IC}314xjAkQu|LrGD7YcMigR^J&V<4n~+1gEvZ26vZzixYzk@{r42 z2Rd*E-Fl804$U|&;DdM`2&Z-g@!Il%4}w}zkp{~=^gi;qJwEM(tR0aL!0`kjw5m4x9@l!{NbD+n z!8zXHsy^!XYG-;29}uncE*7?fTwb(7_;eohoxRIj_`EOg`C$FKp|i9z1G=mg$c3+qq5&W`kRy5d9L`UsW5$OZ ztEfgUY$o9MEp_?|9p1clAFARJ2zx}1Gf_Q29xK6)Ox_qw~N! z=#<&p{_=qsI}{%!8fiO#)w@^DYr?SzO!jGcBEvQth7^9iSMS^}EuD}oWR$@91R+`0 zAVu!gb{sg;*ddwYC4>|4$#3PSk(Ch3X>>DXKy%#DYn(l5y07%qy8So*ou}43+_b@M6ni=xD&Zu9zQR{4 ztE#zT5ClOQxKgw`-F|4o1P7aBz$7~blY@dg{5qH{%l`ijCJTQ3-@&93PW@j66R0*a zVA9+F2D2qB9CNTyz%v(Y4G!&%R$$dOEt?GtfrH(yaFJ4;7asNuC=KkNa7h<@48J8= zGpfG>u3dhE(+OmQK+>}#)jyr4adAWp&p zTm|-TBiy5s+Uc)E`L4DV6F+uHv~>?cD6oQ^cK65m4GZ;;q5*k$qDNx92QA;t4(4ul3z4~ZBcSJN*#Pht+%Oz=v7 z+v!EW;6f6a9@5wT6H2(aHT;l(Cn0Qh(gdaUqW-NUNl3im*elC>H<&M${Iu)Yps!$A^j|5;o8SxkN7&cdMG2jTJ@UOXi5#` z3TK}9W#Y#OIx?J5a0rb40yv1t5GmG#^68Bt)qlWho?!78QC!;Cr8UR)A`KNgsxRkh zB30qsP0+$w;(mGpZ4#>ZDf9#qs0rl~Jb^Y*X&*19C(tJ02{aPrrRuRP4=12a!U?E9 z4kkHk6FIv`rSQ|4g}bywJYW1q3@iSr+O;6;(aVvlELyorO-x=s)>J=xEJcd+NO$!x zcC-K)V2j1mPoO5-1dh`ZKc~4ew15wPQ@gImiI%v%qQA67u8GK@_=8D=5f}|$n%2h* zUm5tFd(9X;ZI`s=${HEbci*ZmRF8N=aKn{CmFf{&Xo`9yKU5B{+|b2Lo1mVs#lNGT zn6PGIXq_82{v*A58<8W00qo3FYf0cart29-t&(CrnTDH;siFEg4s8QSL+UA~KR6VpoD5`%7 ztW9h~hGW7dOVL)BQJ8Y_9P6K=rIc$CQlTvF(bOx0%L1nz$8M_3cn;n#9~nRW|L`m~q3mLsCZ3?+NYEaGA)nM<3A zjJZY-8J>hM@~v=R0cDv_%0j^w?wgNQA(~A81OI*%{28lU`WiIE4PDaHh~>dnJFTEf z{W3x4S%jQ!#PAh(uZ_PFCqKqV*M5FuXn5L(O}PL}RlV&>5%rR_!75+g9D=fXTG~v6 zALwf)cu*)j6H-%=J`oAH(l^6#8+A)}-$F&gR}Jx$anTNu@^FIFbsrv1#}phNP9I|W zi97!v-u?tW%If;##}kr3Si%G)8kHqrs==s4gPIu7jAUd+CK?wM7c><`zSadL16V+U z6C~krl)ALmy4G5k)~dBCxL^<@ARs6zATF_5ebT7Kr7WV%@BO*=nVBS_w*CKqKVL1G zd!M_Ud+xdCo_p>&=f*HN-f)X%(3rH8L_5vkm=b5Sos0}K8L`Ro>pS@0cK#0TFd1T= zo?D-pkupt2(6V`V=*3Kdg|(^?BMM_2-dV{|fFXN0mN)svL*xde2dc}n&Lx2n3WA!i z!GS14&cFQJjun4;f>YIxD|t6^*2&JH{i>a>Wz%tq_8k9$ef$e%Q_I+(a=fZF&Nb}u zY@Wu!2G^RsFh2;zUzP_9bASy<`*QP#{@s}A9~+BUpJ{|b$T+zi2dtagdkLsm-YPy< zEeIFRAa111 zr0+gk>J*T{TQ{lbxH8?@nRpBk*VP4hJ1z|sbL`rY?z`?C(7?*)ozL^rkp@E1l|Dk9 zO&@H;0u;SAz`i@ZFM7^HxJpEQ5cHj}QV0*qwk0Tmru6OaASvY_W+=F%LxBr&6&)t} zoo`wdFDP&*a%XKv#)yqe4>XQE+P|XeXl|zGeq)S^sll;<2MLILXdcIwg)RWBxywQL3 z4LDy%zZpejkxv7dBBV#ZIhNo5itaeJuE<%5`}@vOb%O~9hT|O42$s#O-F{E94UV2w zow40nNx8_|6)WuhX>|9okr7qS*eT#HEbYQrV{aT7y3UnLiws)oI2 z!f>f7x_eY)|6oOheUCy_DWM7Yk`rG0&!W2zkD$G+sH5T0!D>bM$Urq+Knba`3fvFb z<^|dGzaj}KRMW{a(>m z-Jh=DC%l%DJP8`platMIO}eTHt5?voE%wugRN6=yDV@28uKN@o->3e+>HLcu7MBNP)sKyDeEWKvGdIjet+EE|J%;%{>RSGqw~u8kB_gcf3?0NVQFQSR5l(V+?z9t z7N|L_;5e?eX82e^$NkmX7;c3w5;lfGC+pMuJy(tZ=Ecosi@>C~3cY?&7FF&4(|>{BCF(v{wCzV`PiHh zQgc3GfN#=S5d+E+_cd1FLJV$!oh{4+@G}Rl4RJ-p!()Kluwu+EWAk|tR}y;4;0ohK zK|!$Bb-sSpkIB6WW$qbtRg8$nbBlIo+RyAt&bd2+#k{FxeMfxrLv$$ycehz*X5*Xv zOn|elaas|a{1^hjKpDBGs!>W0!lK%dzsSgmc^=rPJ4Z(TqCdJO(~P{sfEndYjB>u& zQ0zF{Soe%`Y;v4oSSS{v8_hTgN?^yy3#p9rea1<rje& z;|vw!LD}#M&mxt^Y}4VzbNC;UDkAx2+A^_ zcsayw&*#-jYz?Zutk9OHokYa_-&AuvfxJ>DlnG5@2+$puA_mjOte&9xMMT2zZ0Y-S^E)dzsCXw7AS#Xf z<175UD#}oK`a)7n+gP}(hC1yq0;U4qiUgLt_vfZT4Tv@tOVi8IguAzDO*++ac@q7t z5kO*h7HWB5zBS&MZ}HE})-Fa{?*4c1F1Op?{M*<3o6Wy0IqR>ffFemDVhYE-8JJ^F zDX`wH34??9oP^gVM>ylS`Exy@<M;tO3+SvvO#1lKUMM6EPhTxPY~PhduN4&%&D!tHsrKP0++_+7(5Q^hE^P|Hz|+j z9U)ewvLZy5KrZ}BOE0scxUOh%0poRlJzs$08qrjwQ(wvr09O)4Rd)tU&K}8$F4q}N z%+|xpM`xQDA+agBDCW1g_AD_%XNjrV&e%Q(=jL#CC=o*XP&cwt3@^AxnQ_&4o$bW$ zYOwgP1l_>`iFn~yWxjjaAJI@5$u7YYvDli-v;Y13i57I6YLnKQ-n_TSfy_vnQzw85KPOqww^4B}jqd z&VYmyH{v%A06d$W?+X(rO#08g+~2G~*4M+A#Dr50g7j+rh5t;=4Q71N&Wo!)_qWVK zV-HT9!HV6H&($^fHgITPDdBy(PW{3i_cNiSugb=(E;>i8Z&a)MdR^HrBwB@eO+M1o zo$_z76+9E8%MeB1i@bt*McY`CN-tQ3n&i_pmE%tDaQAF%zhRc^@HY@#fD zqt(+?{g6UT6X1Cfo+-^?XZGZtGk)cMMHk8%ZnC&PUFWuXSu(=_5@oIRvU-|QXXXcDvwi;Oh5b;)#%YIYn~%Q~ zs(9n-0ot#1mb1&nh&##9wH(kNfz82?!!&!j&UVYz>)<4>-{})sL zO6t#{{&2jyZG9H#kJev}|XF=YK*)U$3bfXzG8Vus7&f zGaNSczlREK0Um|HkiSRa)2~q7TP$Lr06r!KRpOaAK!&f{-4n>9&O= z8>?p^){j?-TDUo-B+@sHo6=Z4o)2YJdQ!ET(r0jI)HJT9vAWFH&saB$`^O&A{PT?l zZhKtK#bo$Q#e8ZN=}Qf@N*b$?LkPn$F+W`KcW?Kbnd@Hy|77-c&l<~F@t~BA8{KDr zCXItj`B3y*^Gb5>M3E=GBEO-CL>_jpRH2|=SJr(AZC&RTyuvFu1xXv@mV6OitUA-8 zWf4Z3oFLeLFb=xzPu#CyWrGebRIxkkI{`%*+C2*Z`kemUrd2O;7r*dbe4&3a>zHn` z?!RvsVm{dm4r0)`CBEDlxdczZ53wqCi7(t#n_t;jrbx~~yYq!AmQN$}Y7HWCHM{DM z?0N?RjXPy7itBz6Cg=st9D5Tl!@embuR+@;_jIPmLz{IOO(LwaBdW&#=tz5Mq=9;aDoA$rWbniz zrf*Cuvv}I{qqSe>Cd}h%gK`$)2ny5A3fV~ zc3!>P%+3z?sRQ>sJ8%M_*8{lhM**If1;7toYbFQAF+0fQVCs>qz2iq~SF84=s%=yt zsRheX7IO1lcO(TkSAJ`0Z!1Uc{BZfj3UDz_tUD7F7<6~j2vHAUEu8oHT^{xQyMW44 ziWr{d?%vIm#Hu&B4`5-uFtOOirxx1}Ps)BXs9u3M^PxGy_XJ{pjpkJCYhlIrtpf?4)i4t@plt{A2%2>A7?kBAzB!W zy&z5;b{^HAP{o>%Z_IZ=?!V1{bAsG6&QAmEXZJCmzn;D~?tqQqri&N)a(fuP%8d3? zImw55FAr8MQ;e8p?HDD##AOC=C5Sz6nZZ9?#kdzO1#{#9S)@^L0(dp(J`p~*QD$9F zzBkZzWakkf^I}CE(hGpG+2HEpvc;05!WCZt<+tIAUB3C3B0+{Lc23_5mZ^0n=b$GQC=uHUW++n6?Tg<|{HjSgy!R zzA?Ln|JtxH_BM+jC^YGc-2KiFXu+^=3^5D26)*@37|?c3-!Ra&XMKigi^^j|5WYmsJSa_MTslKyP+cI9A~-e?Jq&F+PSEZ zipx_Kt$@GA?Uv}VGS#CNK%z$?K6F%L`R2E4f;s7}y2b;Q+g3mwW(V1#ik|*!4i%GH zLfzA?b8n@R4)`(2Y?2!vi@-imf=RghaV1#Ze94mUqbXVF_B6jU_;-!F*5quzUSGf9 z-!<-Ya|V| zVzGx7ePiU(Ty`hPr9mgFUo0V$%HPN6cO*xy=guw^eKj6vDzMA06@};flLZ?r$B*PC~>kL zGX)AL@USgVNP&YWP^khnPS*9NKqUq0ZGkEZoJfIM6`0~=%{B#UDKOm@xQGIiV6?3s zTj!)_1T??F@M6ZJ&bv|DWEYgu?4!0`8iWSV}8mO=sM=#n*tj1owh*NF~496Xw1*p z0%pue`Wh;5J|#)f$+}R*OdciAHYMjZ@TIEpf$RCx5l8nby=NQ|G}GO>uSL@MzkC<> z^TI=SJ?ZA5XgND6`|m;%&8xaGT+DkPJMgYs;~q4SMiHB4m`}9R;ae}h5zy7B`AS#C z^LBr$*nc}DC(L^ZVD#7@YTBGj$Cm(@f>_1!?)V*N4wzTat^b`Q1d6~7kGl0#6=Bn@ zlI(8eG<&7+N+D2l&ZvahQgM2LHe|D-7pXjq@RZyz+Y_`<>Aty&!d2xL6^<|Ins$W&*lX!|a!ZxU@nzl>$QPuQlGyVFVcfzrG z`c?Wmx}JDmA4aOX>HR5V1$Yglz`s~A$tfyTeK2;LYMAnG?6T$MdIS`XTrJVyck-n@KNnZ}HO0O?sspwdoF&dsQOmB1^fG-3ye% zT<*{~HJ7+|bAT~O_|duiQdqj}YW7Tvkv*-m3x^0`##9-MjWMgrtUoPV7MdiE#3Gxr zBDu)SWmK8F;*i~Oj6&=(GkG=cU&%9c^4g9;njNjT!yiekw?h4@D!-(VC~~~m<2F#5 zWPg*)cOy2LX_DFQB$8Z;F;s1B+Pc5K+-}|4|Jb^N=KiYd)zt-av@f5{zusG`sYkiz zewqu#vTJUc=k1yeg=wN;6Sb2YH>oy)3QdHC^l)sOg@T$;OEed12L@$-9UDfNqG&!j zlE#A7G4s_Z;!*y%4=op2svV9@s<7ofjzMZi_syVLjE-bcFy{Gc88p)rf*tAt%hI~N zOe^k3@9ajn6PLI_ZK=^gw$T$3z@>QPf7I?Hg08Ck`9d|QcY$sw)Q01JQ>2-gRXEG$ z)hq8~FYhuDt0wYIGMr^?wHVk2dDx)od2^8%=C5co96Rjgu_dssKNpHaDO-Wll+NXE zOGDv){NaCMckFZxg$3sG^Mxhe-!lGIH9lV`?NQLl`}|HODRzVD#BDppqM~kk?34_5 z?{2%}T(a!X)obmw#yXo_jVO5!!HBQG zc({u3+^b>oS0_x3%d+a{3&my=gKGB5toO=n;;-tq@)wRX*BexjF}iPTF)O3NG%TVh zkxc>5s>|WfX(+4_BCy4KMF(kbJOj9vu{7}@EgA)xo0)FVF%)#1ifcJ{&Fs%X=T@(Q zoHatrUw_E2XE%P3hpu~R&wZ48niTR@SMM2ltEtnKT%PgrlF0ib86fY7 zYz^WDGe-A%)-+cF^ZqPsh@KD7k66~t?|O?QLC;zXL9-UbL?*jymwJTT1$uuc=>KJS zWdc<>KLCBs9-!a(vo2HblCg-(op{?6^j>rAvAOM;x7iFmmEYr%czg-+QQD;PDSa*S%*+>X4gXy!M7Zi5j6 z? zi%8Dmc^hvRK32NDFS2;pV8)l%Y_eCoX%w^=kXw334E*utpTNLtgceR=pkmFQF>nlk zrYPqh%w!4!87J)-0~y|EJ5tWShIYZgdt_J)Owv9a%ll0CAn=;Qm~lJyc9XNx^-Z*6 zzt4{S4X}_!E)YyB3OiE0oYC>Wp zcS4Yiq|^g&B6DU(a)dXMz=d`sV)Yc<-z#`51%1y1`%YTg)@$2RLQ!@d(6C?q#AIf6 z8qgK5?0GgukF;_%tS1fI%v|oU|%8y9< z8v2iN2QKC4f#s7EM+YBosVW;;7TM0G6O@P&HmebzhhAa4IBK*R1v%@{_{$3!8{9bP z{tgkqulDBXwfT7oiXK1I&T5?svYpj-T+`@Ob>n5YdHlJKv-*Fl_Kbv!3pyfU?*ymc zN+<3SW4tAI!|dU;7+*oO>@HhE#oGz-vxPeWTd6RFeq5LtL}M{%btKOoK7 zWcjy|g=*bZgLm`9Rr;*Hi!TP8=&l~VlUMtj`f6Q|7qeqe>%PhEX|+c1(}va&1>b@+ zL!^eSOQ91%#8}v<8TW174jj^YAcry3WIGUS4t@8ptqvY&-F?HIDnwCgWY`D(Ku` zBy&mqyMHb%#hryUBJsJ)CBoY~U!r_+e~V(3XOriC+N?42c`G{&+j?BrN{jH2Rsf_UM z-4AeP0`TPImbmf$&BwAn&9%ex}A6E>sCdn&d@PL()^?wMArDh-wJ<5r(PuY2eRdwCndm5Ro z^7A^0`SAg}<76c#eF}3VGB+@j^szayK;emU}}NdW+wb zq_?2^OQNY5dYj?V+oS7+$A-ds>L*aib&p4Kll9Ax-1ww`T;jf|M*Pv^3Vrj6nU1DG z{-(i(=AhprkCUFlkeX}}5Y`sbvU|=t-N6~A=Sk*4FNXu@4QA!IN0Xz#0f{=7wsF<4 z197*iN*ptT ztEa}jk2DUeCy8mrDtF=9G_99Ey5l16;hk7sa}u~g9&o^ImiSL$@x8w#N4=eU0dLe) zZs~rJL8>OHJlXtx+mA6UD_JqprQ*e1Dvndd#O~NEsNq+w=fJP#E*DQS z&YgsE_ zM=i^fT>o(u&2!4XSJu)`^qmKHw&+!r4)1Q{JYWpDrwI~{Lf&&5JQ*x2ZmH|12%rM} zQ>0```_V?@jc?XOfQU}aN1OLnD0*!^R!Bq;$E!3~=Zlx`fJw=WRuzdlT)=CDk(YS{ zB-?w3rdD>u^3|%u3zo-d{`Pz0Qs>>Bfq@P-(B@4}LIJ=N2bIGUd4CC5eN|hf%0dXP zA9)<=b!Qmws!SasXITQY^~c=@^Q2eZnXlj=h{&81#ACJM-K#&;{r()!CB;||m&m@i zQU>N+PT~b={8Ma<3%Q&)n?uo6al!(fP(QL)T4bBKR$1vP*j!gs_;{taA8sJQTwgx| zaYSoDQA=gM?(LE9WUL%jl!~C!$%ijxevf^-Cb}GphUw$w<^_o=x** zvX@}s)-+!O$AY?;7k-wtzl&^^@K@fnHJq*lRFxgb@%c>9F@ z3!h!Yjx$)wT-eXK8#>|Yaf*C)Ae!0EzW@|=*t zI^~9Hjr%w$tRvDBekPRvz6b9pxe!3^)6d3(cW-xAq6G}UdH+Z)BwcuGtgnJ0ZQjh( z(*o|dlXU6-aa7!94|ef9m28mj>V6(B^V?el_?BwncO-lQe>UrCIH~s^p z88J)t`5WC1|MEGH3ma2yby z@#R96#tFceJ2p4$e8{Ce)^F9DLeWb~u;jh6Y(++zyBB&y=>z|0s(wXuyt@8C9g2Ql z06Ta0-HiB%Q_H7e=aaTSn=;#M^Y+Q~tZL`u&}-ikwas^91Dz6oEyNZR&WKmX=Cn4l zVPIH8kkB=FoUP>NDRSFpl!Aqkdf?;=oP7U^9%=5?;53Mn0xk~RkvX7K_hiY(mhj`i zr=z%l3gP;_@U-wm8h*p*haV%Gz|^yQumC${6~IW`_}<6Vsv z-7z`Zu6Qu1450P(>n=cj{Z58)>#a9n12m>r;|UkHXe_#8S3Hz;ZZmSwe+@C`%QSb% zncRdGZx0IB(T`h!yV4g6GuMpUSVylq4Zam!KDm>1G;gosmDf%TLt~#G+4x;tlVB%| zd(f5cao~`6tGoa)4hmf3o<@-bgok|}r?`2452w=)a0`G=8+Rz$VyJ80pHQTmSB2cA z6J^^XaiF8uCcA-LUAT1wN$gCut)Zp6iFgP_d`w`kZ`iIRo)8;3%z55<1s}MgYfqOK z&(b)gy4}boOF!-&j2*gfIF^Y-^QOB6*{Ydd8n4v z0FhSi-oD&(AuU7$QP^1izpt;~1-WW21H;Vku6{aHv3(jZS6yMjUF%M-qJOB-VoZS3vqcdo#L3#eR=F6B;1lrzJq&iJ}*gb0|0M>mnPfihIF ztxjBkMYWG$1VmB-?_|{l@P6k5BOQF@Yxo9{`loXm3YqLiOGf+v5?MC>GtYF5gL{DpVpQjr_WCx>L(+yP{$ft^}!R@3V`+5VCee+8^*Aw=YO_8k3BWaKKE+yqGc}M>fr_L{vEW;-tJgHa3!= zFwCv=NRz6{NA8Qvd&lKGYj_d%8N5vTgEH?<{6me*3ujfho31kNRU0JpA|x4!(fO-n z-VKwgnnn&5XE=r~ItaZtgpJT!g3w!r&|4{iSJNz^_j~7#V1b!!jxo%DJT&de@}K{-QGZnrdf4Z5%JJutueZ&G+thI?Pa#P6K!(@<2k*ER^(0)oVX62m>JA4 zYWV_p-+i=2qXd=LJMqk?)AlJ{+dkTBJKj=JHtP@VeND_cUO)`GBcC4Vf&TXUNgP}$ z0DIAhSW9K4UW%_Xhj*NSS+kN+^39QHoI*tF2xOde3nafkFP!qKnY$p>-X{X;S<;+I z_~cCIj5ndIDN^EIYzy^e?ZtBH)$J|hsQTDc^?cM%?o8#Iuy}#km?9oT@ZBh@w_q&q z>^W$sU_bp9i$nV6>2aSx?39CodJ!&`b*VmMlZFsi=0@y3KZMuq+%`OAy-EMIdf1O1 zOz5#lN&6fp0*y>4i|#()+LQc?tSLs`W7pcA9$aL2@ex(A;C}S5NZE-V_O?B|s2=9q z9v)$AZ_GR-t^H1CS@D=$d>AAEmo_uZrZJW7&r@*xMR5Fzw13IH8eG!_`TmM+v--%7 zsUoY0e(DHWy3Rd3Ri%9zRn8|JbjIY@&&W=%Bbe_xw~sA>WY4iMmh&bvQ005NvZwFq znrwGCA43`MRmGmJg=H_%iL0t&+icVHhIf-#snoP(sOhE)3jA|dq~UuS%y`cq-JNO6 zKA0*yLUXr~G-Zo;yJh7lZd22y5dwOhTW^c)h3l@!|6!WNDg6-@cE%JrB}DCwuE=Dd z*A7(iQ*H5n0T@&)XC@6JcFt1ii7Tp#x3TA^Ao!UrtA*Q55R4=3kFNL@C`zizOQ)HM zPP2uO$j^cba@r_J+kkMe8g<5$1Se)!6@O9HG`$KrgAmYbf*FJZJ_|d(cMLLo&RKlP zsZ|eOktO>4ll`QgE3YAc3u!HvT9zrRMXEQu|DSik9`=S#u?Gs+(Lxh3~Dc^c8-%e!$D|&!!2O#Lck}5aE^$tCXQaypo;frzhhZP?^Fu~g0F(K z^|!ASM`tfU*CnN#)Ege8%R;ftm{vTGjTDS2GM$?4e$IV-um}q zU`oJn3z%v9#%`I2mMJ_oq+Qau_H(k9SYq^Dv8>8|cTinNA5=UF> zY;~WubuGK{tM*6aM0aOIpo6@U*@vXH$)h`VVw{km*B{AGqG;&TD3)&9Fw$`HY?(LK zgDKM;;XO@{{zX|ro-VQ6Ye&XO4YkU7IW<~$)lxG|_cgQ=9#U7Rt8}_zy>L7h zm(^Z}PzXy}?N(S`cl-~x8KKRNUsK%$V*YOKnS5>^sHPq_P1W^7Cl||`Zzs>)0!sV~ zzBR$j@^1d6nNhztjm0S_EBWG{E1e2P{56#eSRd!&ApMIO-VdV5*~Jvw#0P|Nq`2D#X_}vk1gp_%$iuvW))sz3Xjcp+qv#E;&*gM z=Ip&0+&KoPjO@tfwm(ywCW)|6`g#?FU+Z^1FOA1*as$lS+$CLk?Gt>D4H;#^78$QK$0OdRu9JqgitRm%Qnoz%)RVz z3*5H1%&7WGgO~FwO+=vu>|$>X{U2(JBb(dzwIsK%&0R5igrY`f+wtpUS7Xmv<4#XK zkzphtZy*~@z0^SNNe%>U`;ps-sN~ikLdct@K#lP-&oJ^ByiDj<4BmKN|CT{%RYPD$ z__I`o`B4-=oMZx6z1TQpSw^uB!DuY`)%a^o;394sDJLsoyD@tAX=H=VH71J`ctxh!B4^jb=eF3|S$wj4M1Kg<&q)Y} z@SHKshkFR0giawiT3s3UFJ|s7Pc~dCfwpe$<0u|jI6vdK7mdg32F8Nj+&{n3fs*zW zP;ZmdG_yo8vkqE}5m=hrNRI7%FK1jO{SK#JZ77fNfd_7FsS9mO5+qJhJ2#X5L6+Iw zJrH1i@N+jelh3?bTZgd4Nb?>A7nW1CU#civXGUk16m!q_oy?zNdDlud_663r2P`aa zp{8KfmsIgk4DejQ4%dDFG-AIlvR}QW{d+z#EcfqHhs5%3u|2s5Gjh9n`dw%GHVm61 z1gj>g4i_x4ASK)V9n<$!6`nH$S>v}!A0~YLF zSSh(i*Nl2`A#uN<15oVGh0WU$kLP|`3B%`He9IZ$xp-a~HBDHpzoX%@-1Q1zDBa@m z*HwbyPI44qYbr}_%K2Cm7)3Cu@k4dPYb~S-+|zz;ETj&Vg;bHQk)(R!l<8i@qT$_g z-Q4NWiDbj3#u$u}kZBeZmXO~WMWnAr776Gh` zs3wd2p@D!ANor)8Fg}l|rIFf6BrZyaV`rVHDHhWuXY%cQ=I><^bJ(R8$(lycO>s9q zh|6x3^OY0G*T&Xkl=id8wE%N56=X!ty3>9V%lq`4VY+V!`2uhF7tJv(RM)$2!7XKI zsr^-+N*89z-a3+1J|R1DuI@1U<}Mc*nf1c88p|a~ zm%V@6nJym!NA4@5I?|=pLm}nZ7-!>xvB?iZn8rEI$@=Eh#P!=4mfaG1O+!9-2aBd8 zMLs6bdI6eHdkqx%-nkw{mNZUqnkLM*^jPA)1f{MBIO&R>DDuMNbi;uqnyN&JDIE!u zXwxFh2@X-^kEGxB9JdIHR#nq*V7{A=9kS?Bax6-M-?RkoF``LKuU`iqgdo@P_c1~- zK4Zvn!i$qy0?Q0B{vY$kx0_l5EgDoyK!(4TY;<9FlY1!MFHjA%LSV{R&TqwSgSVnV zJka-aV4tR}d_V^kuf1wWL38w;ill=YJ4e-HG(k;e*40Y*MAGCodul<*nOTIS>CICK zjKh-Eyi{ASsI8|+M@Ri-XbJSszPZ}1K@tKcSs@hIDyOBYw5ZB;q@Ao;RDtc-H#p4Q zdZ+olkNMpylsQ@Z*Cgimln(Rz?b;6Wdym>ZgmyK*KWBb-pKa!M!u-Yww=_+-Nt0JS z-~H%3&F(GCF6biNz+5_p$5hYPOy-wOxFs=@ecbcmD9o5?B5;#?3M7Mt)6I4s?`a7< z=*^>@zgU1v_rNpE+C#k=roVNaW6_s&f{;Gq;id>{$}R! zAZBlG2I?`^t=i^CldhjVDC;@x?pJ5}o}MsRT(bHUP34lK?NkbN-=DP5$hrBiau%6z|^jb3}mB@~N5HemT=z$jo7sFgklu(+HwD zIX#*(nta5qCnA2+=**^5h%Go4S$7QTu+jWqPksQJIW{ZWhS}&6`=qg15-?cwqT4r? zA3J%wOFF^Q&w@?3{Aca$K_rD^2C#_56$6C2nAF7fxy~JsO2)>S*oK$Z+JfE87r~JA zuX{BE2%A&0odXmIa)jbN4kxl7dJ!5q#;dZ9J{+GOb<-GPeS+awCiYKnxhMY4#ArZw zYzEU=fo%2UsaTD6$8|O1%y^7t>f8; zo$b7-8TJLX`kp?iukY#8ass}ms|x$@?-_-?`S-lSUc6XwUSUuEomGfg*fVv7ih_Sx zVJ1=V*$mF1v1(snr|`l99aQ##rYW4zCKFbsRyZ49r2sQkYykqdk~u1)a0!QDLcnGg zQUaydI<&06M=9_ud=uihp|GC6?hUWN(^iF=Fh`1I?YmzI&Zhy$&?;Ag(bb$3mrW|~ zGalD)8NjS{=StLX7A71@+I=YdpX}39_290Pd^@;9xizuMk8Z8auLjUURkYWJuLL>Tcb7VN%7SVEIhV zHe!=|WTiTWg>9{B906zOO;}`jbouB++w0YK{~vFA^Id8iw$Csl4AbJ|7cEIXT_*j_ z??~GNHl&zt>h#xG) z@KA!oTEtg&PzWgH4}QUs%g*8hsmA`Q#@-~YtK(H536Xs0DH2v!y9*9T zpdBAckF-}B(%xj~ew};!Z#**6Q1W0$U{U=Qmx`C-Z&CuyGE862% z=!{bH`-sS#O)D~U)7%_}%afx9$glz?$NF<)b!N8v_44HCpO^u_g#e6N+pL~VK>7WU zw8=AJLZ*8n)x`N4^9Q6^8t!WXkoOBsrZ z!9gx_}QWWCI7iHaj4Sxc4u^O!TUUeTj zRa{I4s=TeKiHR@c@{(Z8yW96t;9s{<)#`d3s2@9V6=C1*lV6aA>k%#8IkcC5Nk`99GP zd`my*cEW-_`80Bv~shfYr2^pi*0Z-}rS9C+P!8jnJ?QgR5Y0B`7nsdb;*s)Ax zd}JwO6Z<3cvXd*7(k%f+h~dHpgTprF$JcNbhy{l)aSf=K%|{+v5a|_)zZ73uP0Yc6 z@lV~AdU&_^B|=$syV|D`IgxCC{j6itd({!x;_1v|NA{{ae%>nIydg9-a#SS8&%@=> zo!xx%bCog2H(%iuu#hgB<7?3NsGpTndj?cTkETJ)^hj5}>#kw?k#2nrZz~_UYH7P( z#ex7Tp_G7h6G2|RC4DZD6L~}xlU^RY`^?vHAD?)D+jpH5A8gBk(k)hp73&nznb{&`Dh@V`BCEs6$N9=JK zQqU|zeeJLev5WGSA$G=J{qQnWKdEJSq`FY~)G|Ecd&^L3P;WRhUzI{}FmY2`g8M{L z7ZhhZ>8PXBaoJr`EN-9BQF<~Hd$(-e?VLi`S$9%Z4tY(4)!T{w-r0(3^udR{YlKkj zOb(Vqq3Ttv2PkG`mG2ongO?F#Ix!zw*HMbs%ZyY|5YPMLlY{UAp4WWM0ITM@@dd-> z`x+JQ;yU>J^WS-Uk%G}nja3^oT+g;spp__Z2OJcH0K&~SVi>&iW zchGC@hw*fd&Cj-THq-N^81KLAY;aLG#O>rZ^>8PoT6jfs5mO5W3>oGnj{{aC;?aLX z9vhOXd!l+j)zs}RIWj%&U1xsxY!br1tNp`NhSrR2Smo(DBwJ688K^%tjr2~(xao(S zHe)^c4f+W#;x~b*uwz5kSSq?d)pE9a-$0r+-U$y+t1nB77*kE&+ggW(zQ|C@dfCq| zw2FGY{{p|%6VyKkT-cG1{P}SWJ4>Wa)Np3V479POhs*k?+ebKkhtSuW~U;W ze2*tQa`5+fLV}zV2d6EIlNd_VIC?Vi}O|@I8cAq3|H=+cIvGxa;wQtmHH6ZV-isS^)lc!2O zHr3FJn!-y-8wW8o1ipUUK?EnBKENXDz>)UaH{vrlQD<-?V(!O_?38U?WQLllNuJ4)B9;(<5Jt`V@f`l;1p5IMn@j;{LZYZ-A>BA0TsH{!+;470-M0 zFG9|N_WqMq?u;3r1H28JE{`YkZAeb3;lBGu^0 zsBqy$@w{I>3J$iii42a7eajtdyR{}S)70@bo0&7h6UPh)I%^Tq!@kkY z?)vK!wv2sKFz>CZ$B}0E%x*9-yFB)b>kpyDG`CL|Xm0PcVG-souLmktRTsR*vRa^) zJ@C|(e>OaIr@nrVrw-RjwL5u&;5*Yz0myc~w75Q#u+N_AVxr)_o;0TE*>+u-BV{bh zuYR=PvIuvoiTl?r%IR?b zYGj+gn>Cn_ZM?Egr?Qx!dCu_Z@X<+2-RzOw5UU%pOfX%rXH70`F7xNs^;iTV;_ZeY z$BQa!>@_F9Dua#}n~Fr45)$jp<)#t~y#y*=SVT3CYD#(RUL(;qx_q+i+a}jvlbZ&I zG+kV-O3hv+gq;Qx3C(s%;&JZ_a$SRonWiuQ8wlIflt7SAY3Fg8(f$8EPOF)^u~R=C z$2#Tzo3UCj%z?}dH+lbVT?n`i*a0`w$&W3h|4|+{3v5*=eTllxQ;iJ45wZc{Pox7rqzX?8*fY0BeFt1OB&Gw64bY8LVd6)&?uj0 zfLAmeUeIvnJw&o8aIZ5@q}Vi}p>zvT)|(;=d6n;>_AFBx4qU@Y0c#0pzs$ejHz+n(6PWjr45ca^U)WcbH;4+PAbZId{NmEP zx|OYo{RwhM{`bdUcQ%dcc5hm9#FI@Qc_N9D2gOO=CcUWLh_v&zTvK5M*m<^4p}LD@ zT|hasf@NS(BD=3@JzMZAs(csaq-8*()!x(a_a+XMT+?k8d*1f|c<9{an%b25-P({O z`Nf}LD;@boJ}7hlI><6#%W1@SIR+)J(98{ywYqiReLOjsX9Z6V@QCrM3b@G1Q|r7P zDHgn9bgtAvb^A$iYac7@%66ItTW))Os@VfYHcylG-oFLc@`?vCYfF~61+x{aQxz8o zp4p~iXP!DNRc0SGezwXac`AT=HoE=TVD!Ry35tQbV%{~6ltsmO3bp>9jvFv(0Z2DT$wf^`D-nH{BLFc2j%%+tsosaLjqcpG>kJ#|6Z!A#bX8zLzQEM1TK7K^VGkMo& zb#RGu->3o7;*Nv*S*v;HX#Qg+&)48eA!qXqokncg-Ywl_J>0gA&vxPUF=OK5Qx#%4 zKckVh)fAz@+q{0tZQT>~PK2JA?2A(=!||65I3C-|3|R%mPDyvWV;#kFc&3E0J;w}q zrF+qAcv|BCZZ)T6w~aTQ6S~ZV zF21(FZY_qMOUxDNPA5I;W-3-qp#|*zKPQQ&W(r+yAZ-JvJ&DDEUgDX(6$bM1zuAv? z3IgfhuCiG5R`L+xb#O?_^h$<-w<&R`3GBOJx1HA2DqkwtmmGdV{_h7r^~xZC#S>(JN8AMR__ zk*2RN{EOuHF21e4e$lnBUWvYbOL_WQQP;6ALNzoSOFn>EfBg@RYl7`-muCeZ%ga?? z@n15oYPky$uiqa%J}Yv9?%FH-WyjSW9dzD9jq5KPIf&RKj2+Vijd&&lGCz8$$>L@B zPnxUrmF^R2O^;-}>OR6G*&C6%s>-smx}$Ms=gG+v%0`x$#<+enZ5*Cx?1dxn0xVvk zhytAAMgM9{tnv~TS|{9p!zfMVChCBXr>AzrN6!xUXrA|j_^75X^Ss@^2s1F@{_88i z$G@(z_{jYaadBk=l-(s=aPfdzvbeY#5A^>87ef<`Jwaoga4}wu2^Z(G+&banb4F-z zF`GKz;*qN@E}pH2JBIM0d3fdlhyq(HRz&u-%jt}V&2qYwHGUOCZZCyoje2j~4nGrj z#FzotlfPQAtgg`gzp(>68{xsW(ot0U^l}*izTt++YAY2g5L{da zko8QRyXD$}j8G>2#J0-v-SjCVuNy`Hd3#0YN6p}CkcX#!)tzJhJ(8jX(EJBQ!{xuo zwr>Ym{ERTe@HOZg;}`{(YgeQwmyzabU?A-> zmfXmJ7LLnIF<-+#JC1(~+S|!%le4AmDU@pIOnttFbW0EIbJ2>-uro6|vcJqd-(v&> zKS2^3o9n(tf<2{urZ|STWoc!PDLeESZEEs2kDZ+E9hH%%LuHm32= z5#gpwXzpAzTw924Mohx8LrYaVDYe#zBK^7%v|ItiMU#v7@IsJvZ`Q(^zSZ(hyhZZZPwv?v$ zaY=m>Ny|4|Zu)Y{MhTNU8im*x!U~KnAzebcl5{2M8qzhSYf0CVoll7nf* z%oDifuu`-{2W3|NfY{01-SbQ<|%$_ zFSW)x|P?9b|75x_j1<=nH#nkL(l!g<(F?Y{HE2t7yBju zlCNmE?FO1MF9!2Kp~B*fYehR&AWR!vm9&{#Fz0kaR=!?$AaCkc>eg$2Usu!hT9J3wh6Jit&a3^)(!98mVq|zgfkqRD62i zLxY)s&%lKn$kq-6T1Qa~ynXXtFo2(4VES;T7KNQlvO8i!*m0M>ZAD{Z2{zWZEsvVMQ?nSM;b4+ssCyp3yEXP*+7d5Kab7!Dpi2iKqXTu?i*w}2T%+FfI zBLi7O$l`C#F#9*_2rpgE-+12Co6*LubC=(jTrMB1rI)Ws2c4YnN)cycc`L{YMwfC; zttevgylubn)Y#qy-1WBhSaSh))vMJ18#(Q~Kb`X&El3uME+zhJJg@3@TeGgzA}efb z_S4=U%lRYyaAh=|OkgUp-^TM{0vkj7N#qT%dBXl{>PPj-&Pru}sXgQ<(rAZ{qjP87 zinMh1qkEI%dsqefn*tr~zlhUj1&C);CFcv@|0J#T5X-8CfI&tU1W5O9e=YR=?N{i8 zovb&HwAVl$2~111u}r=Fk+g07ywsOd)%p#jsec>w7i4eSd_eQ|P4Sh8A##*W>O9W6 zQ76WfkBSj=mgIEOdDt^e6>p;JPG4`NbFlmrRbdS^ZQrf;ByliLedn6KSG(i;Goa|j zI~Y~KHD`Hv5{Fp$T%Z6W`g|SfUH4szDK>&O2AnPm%*huPmd}0WO}ctO56hw}lG{|o zcGW+g_avY2Ta4u_5F+j(AA`-d*C1I7)YueIQv}pZ()P;{sV|2|`SNqpY)`sGHNtgG zzCRY?xP-PL`ckbld0eoZccZbwtri#2-At8xGp6Y#)ik<@d(qo~)JAitW6j#0TJBCF z<_z_;owVfKQwFdCH??~=y!Y8sjOl$kF=N_C4oIuW=b91Ph|b=TW_Z5q{u#S1dmB*8 zY}S}NhR4x+Ykf02Tn2Txk~yWoQ(~fmG-9P^Pdc2Iljfwogue+MWDo3xbU_%bbmlDU z4Za8?!hk<^YPvrbW;|~Kow8w#CgMe9|Hw#V zhDyEh9;_5Z17aeG&<-%uO3<{DfIXhKmxVi5Q!RQrUyb+|_dv;FdZ!i|Vg` z4Jpzq)iA%g(+m@;EK^HHNwE70X(F55L7+erJEb-=tM= zE$T%nOQ%RZIitJvBB*EBaPR^+xST;!wv(Dtqw#kkJOW)Bpq?>5cikAwo*b{tNX z2whK!St=17)vy&d9yuCtJ|s7uca(+#GP1RJjGY>OP<%n)is!io1zD$3hcb2VBnjg= z_OI^~#!`p2jLtJdO%4^(UjCgy+I{i73>q`Ey+4)R&&Y3gN?&K5N;GWgl*^dv8E*Sk z1A*%S)3q*AXo*YWoQ0YVrDItER!^|$&cZ~!5`Czpr5Vr}b?^JvaEk<_#awr^g+Mb< zD@05s&Gwxe+`j36E!#IlKl~sVor5+LhxB#sAJJ40U(=hs>{Qix0=mppUFYT!>r%IU z&2)!aSu<%#J<}YF^1u2iM->=89`?^I=DdD2y}2&sNX^p zF@$PH6@VAQ9wT}lkPEvnCXf~uzlvah^RsbEFs=ykyszoczo@dtf`KL^p0~J3b7AiD z>x}RH*M@=Dp(h@jt-W}m3RwHqnb~QPBdp;3>~E7pd`9xkKS|RvqKyV>!cJ6h}BrU%HtGeF9*z!DxI=Me!rN=`)YS~PGX^b zczbeK4~aJ;1d9&D3#A;&WT*#!+oxE0h@Ia&5o$L->jU`M~`Rp6a?zqsE-55cV&U0P~ zW~^$dT6^bVTB3A11t8bns|&4Irs{|PG%!?B-EZV00J#r9 zylAex9@v}mc*CvNy;W7y?2m#@4^er~mO!i6VtdbMbt@!d_S(QECVf3<^~Y+mSQ)wa zFHs%7GD=K4*8p2LIG%U%^>%5UsK4v&;yPAfA4U;l*%HsY8CGqmrM;4-iZlT1#Ab_^WB+}s3|Kh*W(Uhp$gk^$&_v)oqHo>S zEIW+_{*n5FEm27a9i3<7)X9$U%UhE}=pj@L)exBW4DKGK(aFGEC+KwNHY#3I$x<>F zT%|z*Z<|P%D2jsloLchTo!2LL$UUhh>x7kcqyg4iP9)7H68?lq{}qJr0=R=exs`0i z=*B%Q)!6%L>^joXcsjNVTGH*DRV|xH!giwgW0iA4Zn(Vr)Epnk` z;~x@}nLYV9l`BlYZr9pU&AQ?CHaBV0(a*H20n9Mh`v;#AQ|zztFB|Qtb_qM zo7|otUALcMGMuf*=mkON)O>rwp+XfwY~p#9RIq#GuWvS(Wor_HXcYj<$kNT`lcuFT z_FH26-8nba@2@aeB3xCj?ixLYly(~_N#XHs9n z`tk{BoV7*hmDWlbJvp(S>{$je9M|*93gvsg&`^RmM^jSGJf&vtCGE}8Lg_4UJ?XXR zW64K1naMJauLGm*|fT9ACPG;RuyMN5~sv9F3K2fO~m7LQu+piJO zJrMl0y#r=%c>BIhfxX!!d$a`h)qa3CYEz(?F&z-kTQ2wVw8R+^V(F>+EdzK^aokm084R+CDu!QeV17k2G8z z!|vzq8kW|xzOHfZu5A6Smvy16PilkK`Xm|bDC#|<@Slxy;f=`!beqQ6Ogb@6WV!#p zjPuh5QDADE18koOeVJ%$gF8kY|8L{eUaJ2bf0`vF{MlU8b3;R|N*2|6 zBumbaGRfsviPM*Vi(t@9KN{nB-n;BC1}&9#`m-!t9$GH2XekkJ_`}%g_cbU8q9p-e z!x{V*8SE?B$K37UM}si1&b@;xn9}BinwA6pFHqHfXkOO zz%o6I$g99pm=>%zXSOTj=`qI3?3#5627hnoP3?XN=)w!i}4Hmt)K;H}a z*s925h+!Z1294DPc%Xwlpcjrn8U`a4Pt^u(1zJ#?1GUeIgif-!+UywEJX}3_sUe|E z0Gzw4JIf=|<2h_r;_ZXHRg>ebnk-Zg?LD8<(#0!bOGjnbi%(dNLChG~1t^>9p)48C zBq2{suzicyd_%`>jC4X8MSbu&I~^y|A}C-i*BYzpawKA}zsBS$ly1@*{nlTaJS?>2 z>6|FJ#O4~0%mT~aq7zFno*lve%dqGgiT&Dw%d;c7ljhFI4xJpyZpqMzs=a?p zhIXblh0cstbo0%VZ6{F|EE6=hFVeW_Xiro_V!a_aboVx^TR?_b7l(i$+8cVC;rJSU zPZMCZQ1Bc>UYo)jNc&N5{<>YAxySI5D%QK)j%0^3R)vaDaAyt+Ijd5>;yr8irbcfI zRnsrB{fiU?4=^2~6ePg&p!#lx*{uo%(KSs5!RQ&E5v=QhYLKA1k9=aTVTG2#*$>{! zkoL7((22H+$YR<5QFIz<>#ICjULjMMAN#(IS$`&Oz88$CUOIVf+rewl$?D!4DX5fJ zVdhOSa>Hi7xkcertl0Xj%Xb@-lYfU`%Aq6Q(_>4bZCQ1FqiyMRJ@LBp&6`MVXY>f_ zz2@SXk%5z>Rb5r4sUt>T10N7C81F7fHMveK@mbPgB148VmIYsH$9m9t%fBFPK`-mW z*O(oWejls!e<}uQb*l2Esyv%CQkKr~#&OC$G*#d#6*$kdKAP5B)cQVZdf&z#vgc~d z?bP&_^OHmMspe2>8p#NTXZBO?`80dzhPxUu8U69_*hwt91E-rAJxnwDplzxqp7#%O zB@n&KUwdV-Gk1;dW>T>4#5*s;4IV>-$FX*#LPT# z931ck$3dudrSLm?;GypUth*mQ`<|}uI_FO?=K&7(EW*lar~9)gV3}#7%9Pex5{QWx2X++DvjFkL zP(wU#Ys8ZuLDek!ll&+OiswB&&7$is{I%%%+M??=inU2Rbta4mmS2!NHHQ!mvN&4j z{w1h|$tuHlBoV=3f4eG|V@f>rJlUBDA{G&cL>~duvfUTP4OCM^FAX}!Kp5`V^OCb) zE_4^tVK8TMRXJ|*o`k5G@b>Tz=L zwYFe}&kc9!FqrX`Tc4`?vg$rgIvf+Nu1M1AKBm*ow7S+kF;#P-YEC1KSOGx9qtzvD z2;Z?GsY2IYLZMSlp&RVvLqeNBHyQ;|N6LB_mnpkvOE+J`#Ti_pwR@6qDou`eUTJPf z;w(ov+e*6h_4acl#Avz;B%^E96g?~J6e;oYKANhzuk&%?Q5M&UYZlQNBh!*qWE!d} zmCpi}t@4Da5}9Bu%uYeunO4VM2AhGU-)i~c(J4rNAxI{XmgoEpg$7^-`{`$Py-d~s z<}TOBIFJdVU($R#dM|!n$xkM3vfixxju!;lUr5L=xQKe!gHu4rx-1VNGNRvXL3om< zeHfTn@=5_Ys`Mq zr~5JB^9rXR5)nIWW&u*9wJWpoqajE*0Qf&8GewXl$0Nw$scvRzbQhRz5P~5nh2kr! zq(4JlT=}S?P{ua9-15BUo4aCL~|=m zbJr!B^Hilbd(HK;&Gn{`vjHaOF6Kj%!LSTAb#PV)7trybzbFwC4 zGP*SlLV}9r6_pK3(`!rS9MCkT%$H3r19@d}C_5cm-OBbdQ_bA&!kLSAA*QdARMwoXC-;ic?)NuE;U-O>p!Pk~CW&g(@ zTDsTrFJZ=+Uf)$h%9sLCwh?u1the+cFSSZ=`mttdF`3qVa)4b*lWi$c%WQgcZznCa zA*)%qV>J)@r)cHQ!Wz<+Toh_fH;YMI^pusnt35Nj8k_vT20BNZwQj%WYy0p z$&3`#&p9GJa*QYc&q=QAg9J`b4;-mSQZBe1BJ#}Lm7Z3gR(ImuUER{|O{+Uff78y>4%l#vnOMbVo$T741VwTu7pQKYk3;4=Hd;^n-{CSq}mn;-A4zv^uSudtwTt z-%-e&MjCBa+a>S-y&Ymyf2f!Wa5LclyhE3ID{rrKEgs$1p$PSu*S2euLp1W_L9`dW zSZk$P%tzM(u*du>SRer?&IYUbk;}KczlPfuf1v87u6b7vBl&pV86N4j z7?`yPvY?&nY+Y4-`H49Ho}S~AJZgPG!11}re2U~iV5pt$G)#}k^P#0cW<|OfIa#==9v$l^_4Xf zfe28BauN@r>K@7_%a;v&aW*a8HQ1IPL3ul=m!`UCk+J6;rVDNhta(U@z`P(8>tTb5 ziQdK5=k+$tk%u0$hkNskOX=ITn~YR9o77Dy>H1yW>%5E7k7k;IqEpF{U#Z)l&+Ui6 z(<&}AJk6L|m;>drwxo4Qeo9Tbu3wLeda{&~b?(f<_G* zjY<^I#DI1~0v+iRYZRN`r~RNhL$$*mC6pd{Yi ztr>SlJ2RbaFJ+4p#ukAcwJuu3W41E>QZ4Kc%|htYY6YFV@J&bwh7dvj|JNo zgxfU@FFf75xHH)*SnTlRSOBz?LV3{Y#}a5e8ubr~T>cw4=TL{}dtLUR**=h^@kk)vTp)dt$oO5i0e3 z!fD(Jr|x<7O%|nl?MR_?gNXs9j-gXIjNaUs8sJx`w4Rg}h+k9WZs9_3Uos0wc?x3( z@_=j3-*rTCEYaIkkzwxfwTRxy)_;l?&jqZ2dIyJw_Wz3bg`zSV@DYdpK#Zq=1GeV|gwO_NE4 zD>NXqGV%?YxH3q)lWn9WZ8NU=6O%#OA5TkR;Ym^czI^6*pCv6sm(?9G`oa%W!W@>L zZ~amrm(2OVc9%^4=&nt`@#FLI$t}5A=}ImZs-Gat*w%P-$M)x9qGsE5OpzVjcy3;S zo{0F&_MBi#vhDe+0G>chMtk;6S7qpU2;p`^HM!1l?d%o-ICAzU+ft;mfEeQpC$*!v z{PGlzK3A1r5=Qljs6+qC8%E-B@+|f7V@9H(bLXQVXJU-fnjeX(>OGA`jeRpR>BqU! zRKyGG!HQ(!w!#-Kq`~51xIkF$1Z>Urwu0AG_vOT>xn-8OAD#y7C}DOCVdGx~n^~M{ zE)kH<(#3pCRW zL;N+S150c$X-TjbZ6fd9YGlegg2s#%MthoZ&jM9)M&|rr*FwgYZ>KXhJ~^UF(pK*V z3AdlQ3(_{>=v1QE$8YfXW2;*8UAsk2aO5<66RqA<6}^aq&u2Qpc<(EK zyG#G&@E^BX+pFl09D_?IziX4F)+gf3xo!hDHuLnBmjZBvN@_$aCI2-ki2QHW*uLYT)#rK9~H5o~J;RWrg2J^L|nC zWY_Vxisf9E?Ki@Kwsqoep0B?qVGK8l+d4Gti>*Q)lh!63eObW(p563hb|}Yx-Mbk@ zwchf5TLc(ai-Pg|X$mWRo-782+pjfEq;cNJJ%-3_10MmPndLt3Z0!KsJhPK|CX{nK$XX>zB;odLg`wjN}7XALH#eYrA;=iUn{=2Ab*X$%si7$VlzTa3?F*&zk zL@?IK!5_5V_3+LT;dFp(=T4|D?-M!>eYM$)T*Li~0;sQO#a&BG#V=8luSvo*1DqJT?pw_J8euyi%cTL)KweV;v)4^H+e+K1Yr zj`9RcziRF1e?eWOV?^zTQGo$oXx%Nd>u+Ff&#-?b;l7F$6_*zO7n}=) zJYUNuwvDj(F_$jhxPnX{xrZ6v$GGY`EJ85? zvv|bjmBantB$~g?;Z{=I7aru#*>J(DJ*rCo=AYT@ubSs&e=Pj(?1pu|c_+k&=Q)4B zFxBu*3G~${#7Qz(_b*+=be6+wgcalK@lGMe2S6htPNXYC?nv0^0 z{w2e2HESBOqo&(p+fh%gDH-M+S&UpyjPW>o5CXQZ{1|U!UtT6wTvFcP2_n|)!J>C) zc}>^>mJvQye+`4!P&4QBR}b|uSr(ovl}>y_mGh@nJ@_K5_~u=5nlVfpG0K@uET0>Q zyG%!wFQIs+j6zlq4RtV3c}qNX{f}S`GPLnJ&*{9)o2zBPm)-);wgE@*+;i??!q<7e zBs6bsll!eJ_3GP3^Q|MHd2=_p-((M`Z{4ZvI*;rh=FKhQJ?7bqbkVtEO?+pQXB_X& z&|b_uNQyo^S6R!v8%CN=V2+emNZPrMitZ&>Qf?9~5wg+>TnY zt7h*@tXgb3ZVYqSdgrd&k)xVI$HeA-%^3-U6ZZ6+QGn{A!Pz~4dn21bksa$SHo63(Gq@ivA@e}%w!FjTU0a5floL)otw?R=T7UdzH+R#K zyWP!|>-PIjg14hj!z^F+?UQAg9ANi%$>wgVbp?}LP3dZZRoNWy4np1oO2Jnq*A>>- z2YBIA&gs++qWcANLNuiEtEr1E*ZFjkFzt;DVWL3rk^b4)7qlegss_;0gR0)zT44X* z$QsRO_TOb}ox*q8Uy46@gr+D+$1u@Yl-I^SfZI9Ks4~4;GyBN*5@iVS?|@k)PA3!w zE4ZT28(FSbs-0qJ@+m@G{4E}cub&_Dz)P7AQ#>#iqO4~(*bwE-O-Z7x%HV;sh$Vd4 zVvEx;dBMtUP-azhQmD#1Se{y{qB9zut*jlupRdYNY9M~|HXZ7br>t5C_P56;)n2zw zOp)#!?XtW`_(!DcOL_CHlV=Gzax@1@{LGXtuS)sqP2$qW%^XQnO3W9WvUEkCX~Vmo zu%xid{4?2YxCnHHpxCF1XM(W4xJmlv^2()ZqrB!T z846kXV+t8jnL#0JOckCq!KILf7t$0mDK$%;P3%PPC7w=or4Z5$-)`*^%$9|9r}ox7Pwbne&uPK?go#$(=GozJU^E)yL`AJgRN9M~^OJmbzy z;rG&sw0u6{jH%#KRz*88K`7}$oVn>#j!Q(`!TIAcIYma;4{l`Fd~s0`Rkpr`h*FBO z0}r2HruI_a9WUG`Zzwrg5Ofvs;M%c& z{<{>ikJ6We0J5qAk1rguXk!7_T7uqtTzK2Lcypw}tk&+~Z4-Exom*?yfoph7^?1tR zlhK^k-gbceDP86UmARHMtDn}6*0v9xt&Q9wx&TqR08!cO{ny%~qPy@tW&6!hzZHAP`P{nndW(*1UVDn6B{pY6BL&Pny#m95EsEBl@4w=+~qSCvA)$+tvVvfsw4KiDdo zo#*zOPxk@_ID?m^ej8=3?>Z7mP3ek=8SD1jxSjj0-dVw(Iw|Th`mM+rp3!eb^xOUN z^>*K3$$mS*LamL3kQ}v5BCLK3WcFL|*Y(>!>r=GQq}ujYnLp|`b-}OcxAb_sN=t$t zjkk-aHQjHMRPk*@nST2nBxlCk8N8VBrtN<_-uhc;HQtsdlKs|LZ~E;Vl`=}D{8!^` zs&;B6LC`BdG2Xf`-;u(MH(YAgv9d5KX9m7TUSmcNYUDkle)?x|vIiT^PGS46=kVn| z!vFQi8)R{Eur1RYJDt@~{!&#qoG3dibJG>>A^h}Hg+J=v-44q%KW!{P-_hMp$?*qe zg|xU#$y59^epcpOc8OqmmMCUvZ)9$=f3Gq9d$>2E!z{sy`=)?PZ)7q7 z{|nMC$>CKMxm*VO$|uPVpL>?+@J%XqJPDNW0G`3v|29&FoBnRnb8mMbc9RMQHAPC_ zSLqNbHFE2c1G`ZjKbC=A;tuS3eV&{g*t+v6?ip#UGgyW5snH$SSGOP7wKJX8zJ@-g zm~jmu76mcpG(=)3#OLhGHK`neFud6ZRJRGL=0lPca@v_G3R!SAU&4f|nD8fOj`0hB z-575hmnyTXYU`siqlfOqo7J6+@gh_h+^ss^n5rYdWb$U#6^-}=Oq!g=A8ZsI)Qb*o zeAUna0!?jf6PvckY?cDArSjBD<55-rI59?|-H!={%TB$KZsrBr@bIEdk2>)Ehx?>% zP`~JetKI^#uWoFqo@x87`az6a=Fw|oO|Mli;QZ(aV9VyeVYVE5WEvA z0-jsWP>Z~geM|}YUob5>D~U_!bVEz^Q}lpa@`03`*`rUNVS02kewDQ*n~onynh8D1 zr{j0dn>O}<)*j&rPw8~Dlf3)5cC+(#32xW=;*-^~%$J-!4H(8k^pxYQqjXeWqGQkbTG@GLKVsm*Ivp(Tqa1w?Omd@DV^f@?161eyhj6U=7C3At6s$;t zN5sy&J-h=!aj9AdfIAQrml{E_+pHZ%QtUWug+xVR#;gD|JWTIAako2~)DOOl-tjs2 z^|ig@Q}0yS-U+C8v}~xVc>Y{Qym$6I>WtknS)(5xwJBTib}4?lB%{PN#Yx%o@pSgB7C+8 zpY!@Zb}r(tI~CC(UBnH7($8-CZBKEa5!%f(>g{i@;TLjV^-AdN6X*;lN>GD-h2xU5^Xy#UG*Hzbhi=?!g>?0 z^PP2dmf>HqRa!UH7n!+X|^952AuB>}6! z(7Ul%KuzBkp8mA~3O_wpwgc*Lw}fRN4WkwpsQj$X>=3sU;W_{ub_`T*^UhvD*Gg$v zuXX!mqbLcoj8Ey+%znvEdLS!v8lPSDT!>`7X?vgP0Ml#T+xyHK=j%O<73qOg*1`Ks zr->LfIIUd4vc`Gae(8#XVZP*;FZkZuz~x!}?&t%m8YoUYc7rqGJ(|R~CL-4u??|;x z&WVbQRW}*KiRn$T>Xp&zkKn&61F`Bg2p`x@G_1jnK3ctn*bTAj*Q3>6^Y%L5H}V}9 zh|~}ty-B;4+t+LCro65G&lM(^+)KLA23MM`r8Q2(246S9jZOnW?K6RZq<^KW(gGT~ z$dpgCQqBzNAAiF=;V0tmH8G#gXRBK-YHFZ#?P@&{rE2I3cN z3gldz*Lq0!s(qjW>|MG$?>DkNbXBem<~bV(g6X0_<-6D519qLWexD!O!ZU305#61~ z^_|XVUF314a=Vl00zJWfQOBxGLq%G*z zoa@qg8gh?&u~jY^IBHt;ME1Pld&GwNp!TkEkk|VHwW|rqd3Zr|2s6f*GUwVilIy_l zu;2k!O(e~l$d4L{T-Owc%`Z0SWbf{;&sr-eAsi}$x-MWxGkL(*j7h7tjGs|t#^74# z=0zIK(&yW5MVEVa;_U}yn;w|etb+YdWG6nj{QI^H+gxM4MW&zWdp1KfKMeb|5*eYnY{ zmtbQj(0ecwauM6~8xZ>%;n?@iQ2{!mF}LHiyoN5}#=M-Vo@F98Uu3J_Tg?=Cp&13g zyUR*I<@EQLMNGF)Av%N)ziShrVG77>gat3tEM9s>R$)jM4GR#q2l`owy4?9qL$Z&% zTTmnndjv{=u-%?*caZ<=v$=6D&0~dANIR_yeFZ}%w?!8tmpa)LGZXJs-iSHU5?(3@ z2a2i}*nN zNtM)^6Nr6-$zYL;d5a~6oOGwfQ3<)2)Rap@^|iB^)nsz+eMW_i(ol^FvbMsa!9r9g z)*Z!Jp?qPl#OW6j@A*N1HuSM3(uvwsJC9d8_Xmo$!UImi1aX6Z@pcB8b6`FY9cnxJ z*>v(5V@dugVRHyUZhS?!z6=*2Nq(F>criVl`C8TWC}H3g8Ods}TU%jx5I~3TQ4Hvd zHKo6tXTK=MrMW)o()LklXR9;@U-C>}=3Nw=4tdLUKw=a$U$Dhc9b=N3Fv$-h^PCTZ zDKv~xVS73Ps%yQVVR(LI6L2W0e_YBx)th$rjEM^sfPj3o}i%&ME zfqH`T%WTm?$_A0!J%qWQqO}Lrj!A!8sXFHp=D0~!#e^>2$X~^7Vzpl9yeTZH?=_(z z4Ej9d*?5Z1o*hgXd#B4-G=?$;6J9De#EFEOyrcx+f-yXYjYMpBk@P-e9y&M(@LsP; zjfT6`XSrktyu<+NqxAnxf8I-<|3w%G6LHFBtx)2Og>-^3hxalkXx=yVeW#YYAjiv2 z>nu!fJ0X0Y&lH7d2!b{k)Xn(^gdIH-s&9CoYg){Rm`Yq#{4(Yq?NY|7InZ1sEky16 zl2`_Fe#wP?e+zwwC$p;}--Pz|hd=&4JpCOblra=4FQEZjS7&n+cX}5a>2(exGV)I7 zz$F?8&Za=B&GFGRs(?oIeW&#(+Pf942r=|6t~4l$rgN?5M}atNTJ^_Z~3@Xj`;v%n(UYL*_KJKtW2 zK(m6wc6Oe-y?7%Zb}nj}o>rg?06klqr^~ z?68q3Qqzo4Po?I{hP=3cbK(}#$pwlBX3D@nR_u2FbRBf{7ZGJyAM!v-Xm;0`6Xom1giFa?+TJv zteSPKFH_z+hs^1{u$VxSChR-MqS0WJ%i&T{_XgxQrI3S>`WotRydW4C8(Lf)u3);a5W??-mA_R)h1qq zZ8Lzk1h8&oM%w1gua`0;ovx?Sbv#g(r{dS#Ai-V z3$X^+{(?0~82^`4oWjvab@#@^n^M83KlW6AfcP356x3k2fOqSvihllvtz6`aaY)a> zttZyt61A;G(N_`O*7EF$;7Mwzgm!x*I!&yKmIdQJ(hu*>Qqb{f$0XkKD)RJgXtLOx zImlqMFd%WF`BTgU^ZN_N2Z_(@iv?I;+3_{p=1^EMTNXA!e=v4?~n4XQYg&%qL*ZRGgnBT;G3EV%udI^8V;2jBh<@c^+=o18ykZ@B|oHrF@`9M!2EQnhv>^d z!m^hcixP;XO2AmmoW(-WE`{FnrGRJ^5Zy?=R0FH^ahu?IlfWDK9dXolI>=0n0s@ynjM(Fazm^JJ56mO(i?OVaDbwbz~6Dm16 z#+T53VJ9b)SJ~{H{Q#er8O_Zddi#)S6F2G<*b$dF$JjxRyt3#nIm@>)yIas9R}s z=z{RJt_>H&8(Ui^F4KCh_3UNx_SZT#9)9P$tur11(``DwUy_6OyAx*ZsL}KISvyAR zSu|_MXgv>_wWFYjX936kv%Aa;d1vkD%ClkbW&c!JU6*~Nhi91)hHg69AoBS5(38U3 zPMWqa4xkY^KIxB$-26dKptLy{%WFjf%zud}>rLZGaLK^=6FF_)jkINm`0p3d&LV6S zBaBgLSgbvntBdh0RrYVqdG@!QIfyc_YpvMaW#v(DNtTt0F#|V?HM)E2`35&C{)kl$ z8r_Sjz&)efUiV_WD;R&ypK_aM-xq75-DuipbNgh~M2FyrW_SV5?mUZlmej;HNPC^V zLa_gxGqMHFf0pb04c?2K1n&!Kv^g(ggfOiQmnah5QFwE?+(k1T`4M=V-C3`uz|p=E zI4Iwpo!8_iSn4*B2=gvf#cV^v^ryk?PH+xjW7r%z(ZQJ^AdT3=ol92%M=F z5w?6CE_p`b8n^tHZJGxZ=TREmCY-s{NM*~M(0G8TICHHDu6HKbU~;{Cx(&9Pub(?Z zZ7?a(mD^w!^VRDdVS@*l;6Y9g8!R=!K28@KtTfW!$Z@$DbUxil%>tT}Dn3ohk2!bot>Vmw z4Fr!lQL3a*tbckmku2VKG8RkgyJI8EC1!@d^5VT6fmBG7p%_5nBH?woMMN z(Qz=nZaZk&gc^{0`$G`C{NDvy2A8w#WT>rGVmn?QhN9>_tY=58-`}8 zEN4{B*ht>^d~@5g^Jfl_Es*Z6-kEeaMaMmL*Dxpmw4TKw7x6@jXHuBGoM(QqmKP>+ z5ie#xMn(}&ykPi=iU~MDx;cQb9=CT@zhJCFbnq}@ve?7pYUPkXY@xkn8r;KAD*rxp ze^CbgvJIY$J77Z{-nkAfbf!Nbyx(h%o=az(0Y#@k)YhdluzI(^vDwDEmZv%}9|)t$ z;RnJ%^%xKU$5f&C&{-&2o-1CNj+V&ooN1$FQtYPIOy>+C8U`MlUo4u{$)wls zrc-CF6j2-d{j*j$BcJS%wZIw1ui+;t!Y@;nnCI0cDZ_yNtuiAU@+D z$#cbXmh7Q;sR`qrd2d*azENmd!Hk-twsoMJYB1uHLR zq?n?k2g(YAzXJ8szuxNk^D-yhC%%IZ~VvnscOL2gCEIxgVZ!z+<_y{I{4z9FweL)it}QV_Ct@b?D3p zAl5nEk#!fecI^8O*`sV2FbXVNcP4SzYJuVDmPb2pv!{s#4t&8J2ey6HR#(I!4slhPE7ZhJ z(uMOim2IKJ!f4DTpNzrqT+)_Y%gHsdhC|T6am8veJ>fkIPI13jvxVC6hoFeiP zG0u&scf2+t=tk5zKb!&T5K>+G1a>f4wuh*3#c8(|F|8RVv)qeD=_S$*DdVR((7Y`tP`TV2zFW;+%+gf<4hmFm z@XlSQsCd6Ocx3hc3|sq#+}QW6>=msG%=$sX)6`DRxPN`eV%Ax8n~=2)#WTm`={s94 z3ZG*F@qMKDgZO_!emzGB=r1l4&poLo%73j8hZMAe033m}JTA6r2SRQwuKl!v-gb;gBj=DmhaF(;D0I*TV6A3 zn`uP%KbcIs5bZr8d#V{7y!EvX4NcK2S+?YC&y z>k6Fb|NMiz6ky?IJS|`;;+%y#Rb1creCZm9c3V9pFDrq2K)Rr>{g)G{@Z4}!pDc_Z z6&?3nNkG#hU43qGdDarqsZ)Ea!Mozi19A1Y4g$(E`ttjf61FtyY53&PYnia*?&Df?utk*Xr_l|j$A!L)j)(WoI%JXe(MR*gb*C_QX zq<+;~vgRxAS%3S=ThJ@2Tz%Gh=gg*sM6PfS{k~^b-xv9o|3>#xzBNzX_bczXW?nAK z4;WPiDQD7G6n9ipAg9?ZA#{1qyLt;@$^`R|b;5Zi~9L*WWu8<1-TG`H@Bb&vbnHCPdB&TBvA7RfWz&zLB1dKpEI_2Aywuqx+c4M~VUb@xl= zdBWsT$)ePd_ZoxTfcN<|aP8OdT>t}kP?Q%tI!mpI4{8f^;db~{O48OGcI+(WiTB}dd{+soP!83MX<>if3m=aG8#;*e7m#}%az9#&=87o{g zKBmC=J$j5_toNPd(vUfHYi-WfVHHPx-Oz1VwCC5uqT{~KOK8t$SS<84Ec}`hHtRDdP@Mq+n*@h6rAt8;!(k&!K!OmMZd3Q2AC>35Ixokde|bdmEabwMg(H-2P(f0 z9T$l8Uq7u+R^l_%lE9XccQ;@e>ZmhXS+Tcz!`WQF5h(fM`43h>CtW5PI{Aq?z%!O= zja*T9Ja09JHbb#J6_?Xw*6LR;hu>}&adv5~3_uZh7~!ZU>IF$US(BNM)+I|9Ty zv6OCs%1eqGx^t zm4d-&>c3>vh7ZmPpJV(>+I*GciIPf87f6yy`u z1HyV;66>k6qjYc}kKHg^z4~Tuk&V1f= zT|3TWfo8hA^0b0bo}7n6c=_@{O!Qhu`%rCcv8;~OW(CH#2o|6-u&Ce5%x=byWSh4! z$Lz~(JoJ+%GF8YybVzdX9y$}>zr0K6SY4h-(dAwHHf%H7nCqPe5G0|;^Egi(l&3cA z^wv0!Z0jk}n_g@u`6SOMC(mB%jL+%z77w4%qQ3PkQ(Tt6V&7@`tRbELIoM$Qg_!UJ zhriA6+}9K$F$G#kCWlCkz30QBgROP*`vsMIdWoO z_Q;CnKz;O-Yhwi=r0F?%9?H?5{fIEuO~o_m5o@EKXzP%V=nqVXT@mh>js&nlRE9G2R{dfx}*JcTeuR$IKy zo-xejZEGZJG4ZoQ-Ea^$0XvD_sSMXE!~SG&?tKJ{zZ#qDibJ=wc@7}2)pswk>5qal zcl489`CDBRnmg>b0_+gW`2I(g_abo?v>EoRc65Tu`50knNf*nRF~5_&-gZ`xi%d6o zY9DY{kJaB;87Mk>S#>N?9oys_nJ%Lf`)pGd2inThn${%~(DI_sAWRG!CGy7?4xB>2-JYF!F2)VaCKUti# zR^@_)e>Ia_9JMIwJ9K8e-&*Hv;*WyrvBkXu|`kHdM38MH?P_wrfTkCaP|7*YQ+Pz;=p7p+*TL9RZ(E8g$+aUwmi+Km>D*}Z6=HRQ_x$_;G!{3FaN1}2VA;VGn?&s3KNRgOBCP4H_8TeZj*N++ z-(I{)jheM`5s&s}R_Qf^E$-lSadR{nN2(%Y#?r}t@ft-@{;~Slk0=_^;E4}DytPHCOvn}(Ooi;4}r+m`%pUh@k;&{VO#GF_KRC@vpzmYllDBVInB@#r5I9M3hWwjM9+Edh_Q=))79&nAt)?_WX$EHW0 zs2QDlik$a>Kn@lIp_C#@nMx^8MlLqnjJ3+ zV$_|+yolVc*YLj_WQjv!Oa2*x`ya&EY2pvbZ)(%`>fa`PgN@?9)_zmZFIBGl38$q% zpJY(!p4!i;NF>au){&53dvBjQ$E3>{rgF|Aj6BtFXnaHmXHWCd8#xMwAm`2bi|Wi0sYEDX{s z^}^N5sA(Cph>Yy-sZR_#&6wo6V0Qi63P1H`;{T~`N&MHh6&}PVWvKTrE^7e7WM99= zAY&@7M>OaOgElzi!kaP!u{q0freLinOtP`9C)*w^!<8g$^!~a8!=FoW^E6lD^ zc-tWjIBmgP!ZjFe?wM-ZzG~VRgvm=e<{Y0K5G9oxF0S0w9SRxuI)Q7_Mf_Gp{DrV( z73bP7SlVH4k^kOFsJ7AKTu&_63*`o)S53AgpA&AqC^RPA+BGz+ zbYsXDZas!-T2Bgxi~pIVD}yXM$`IVf*Fu^p_p#5w-@beP3NNsP?o|xp%n>_H+_SCP4iCP8R9tUa3%!t0HMuD&2oNADC6y z(r`4+dYybFqrKFwr27+xdNnVapQV`C8hLVX#wB|4&ba|44iEgt1VC+YZ+4!ye+s3u z)tbeGGe|b09c=S`tE-1kPv>||Etx~OqSrzSZP>#(7{wAk$__=Az^DVm8ZgfVP#q!W z(zdli_syaN(EYK+OJ2IPfhw(>uw`;(q8G6?SC%m81LNOz-sqkJ`AcQ-kOj}blzWXP z&c3$b$I_{;R;u?2qjTDFt}ulU^gt~4EmZw6&pO2z($vl6$9bPVC7Zk3xIUzzw$no5!*UB}<`u-Kv`pk)O&m9-`$x7}k#XX%qU`rf*Z!~-B z^6XIOXBV?Bc2>`p+|=$akap{;M~VwLzOs0W(taE#ZRsW;+{KEV|m!d|8>6!q!sy%9~OXv;%31hosDb3X1V@5}b=9RL(L zYdJWAYn#0_%@o1T-xt+?{0__HVbb>G#b!T6;n7YOk>~B3Lgbx7&#i=Gvlo$~^&mT4 z549=mOubx%H4vk9UM#NelDNEMh835~_9V>B8T3=8xa=E!8k084EL4v1OcMB~#B4(X ziJLP?pl1AA_!#7_TJ{w!oXv$|C&{Z4pA;DXCQ8bZZbR{8uq~s@Z{h>ILSn#FwP_V$ zb-83Q?Z=k<(k`dJN5Y29B)_} z7qk0bpX{&PIAgq4ffu^HjgrXp_GKUK+}rPRa3r(0&ryT7y+v=IWDz%SpA<4I{S$8A z!4qu?+rh6e`8x}VY2U#;uA!qcI(FRIXZ_aR7iZ*T)U~XwjkY#9`xm6^ovx|ON0^~r zb3gqY3!u;R1*9&-LbY;DXdo=c?r-L@=M`w)gg1!hitf`pa_v=tPNQyM`?uk3l3v!S za{sHlDG#Ox{=CEz`qW+l=8fp^gS`gK8@b!QXD?!}Z@wGPwP08AJ)7tG?)6}2D9kls z==GQ-JIMZ+?;S!#miCA3E#%o7xXkkCRp}|_QXV!z-M&A9qiocVu8LsWcSmHk4&*qYZN{TWp+8~cm?}4$kUO~F5CR;9@n^DCgB!W$9z$Pap|AS?AM|xM#m2+fsQ>U#8|R9=v!@am^13EN}CD50EyTUH~hIg}y_Ae=-x7!LkCTnq(C3j-T1ZFI8RFK+vi5Qbz zr?l30JTNP9WmAV8vlRLQ6B5c&i+z;6feA)NJCsnW^kaVJyrdso6zNr=wQF0s+$HtRcmbzf3V2(@DzHO zHRAslPB3L>PH^`I)5BBf;VEtp&w1r1Il+$nR1Z6v!b@p_;RMMZe%mInJ#6NyJd)TR z_Nj;4af%=9)#+bYRE_xFimc3)0nG)nlO_Cy&Iwi8BGIYsM-ly1>SUtqOnYFuzNPvyoN&q^eA2pU zg@m~N%v{lq;Td^Zp(DfFJPo~h?bL9PjFD!Qcl4CbYS?=sek*bty3TCuC`CX=50s&` z__&zAYcyxp6?yEmW;F~a-=0(9^cXQMDJxx+U)H7L9=g-Le_%=doIv)3oZJq9ia=gN z@9TU8@E3cn`_<4((R?zHrA zQjWSjCtVK$`|3_haN~++hjdMK>jQwhVY%D{9rTazN_fm`_?QK|$rgJEP)x6C}( z;qRdXq`h$X8&@XDL)uDyIDYkk&0ZDi$yN9MK)dG@|$26)2bNo56D~V~X z=Uz^Y%vk@ISIMkhLnDQYXc&n-UW&gP$WHpO$H zuM7>oVL+gD=}rwS@(#2#^*5VDQ|Ef&^;^Pdx+%K0K=*B48bWYkSpbLEwj+DLBm>ekHn&KD=_i`VfmY+#@DW6MUMy&uVnK(rfdmbT(nLr3JQh zQCv9|X^aXi90TL+aB~hxXBnX^rxIqBBF$$I#~;7l)H7>Vo6NvNNAiT&a9yWs%UTDa zmp8Xon~mj{o#|p`8yRm$ASYE~dNk-gv)bV}z6zT97Dh|&*!s1=DQT;7cODn*VUVd4 z)%OX44TKk%nbM@oyhKi`Czz@hE`u%uf8mvNvI^2|+*Ws%Iw#Cxr3@%#NNT5rK`|F^ zvzq{vO;&4%i#fXOuO1c(_19c6xKjuR!ao!xZ{e$;n590lrfzBTIVZg@YkeBe#u;zaWi2qzNmgV=2^&VwE7M2GoI^tn;5NrtEKuKnR2;ZRy)&qNQH^N znq@I;fWB9-h|Qasu4Bab=%yu-mK|TMT+B3-+G}2B>de`TZ?Y^h>h?}~Db`S>Df|qE<{h%)0Anby3Q13+oy8F4i&&|IkjrE5S;g`r$xY&_GPZ!2QOd zB8m4e;NhKp7ZtKv?DNNxtQODq-}cFphf`P^s;fR{k}m2gvX4D^;4fsGF`w$&R(LRP z@{bg->DlY;^KQ>9#6qM(@6&6ep2ZXv&Hsyj2R_a(J=;qU4G{p!o^u4{#lDftEKXPz zHUnT=;bjU(JzxLEBn%yhC>c_wc;R{Gk$)DCwha@b1JCBg8GtU+SgO&=j(hZ)K$Gz3 zlRwO~&~u6ndQRjSD=Z;HEdM|i15LoyCYid|Iacsk=M3E=siev8nCkiS2Z6VNgv)yg zJD{rMwqvrEXe~U^TeUV&F;L-FjvJq&E}E+G>?guc@2A3RR(e!x>QyAuv|d9ArXB8#eKD*JAs(FfPUP0J?xg!1Lbi^g+A;Ru5gdGyu zbGwTW5xW%|M@w~qZJ)KofqTA%B7zO-@@gi?JU>>S#py!NQ=y{>$6|&A;seLfBQMaq zS@F}etKvg)!rM>w&fN;#;`W8#@b)6_+%x&^jZ8Md0`FX{=DZPUmi(13PpkAs_R_v+ zbLnb)$AB_D2fEMw-DkG@>}{T*y2{mw(P*Dy&0%K`Z{%IdFI^ofR?gYx-5Ys<&kFZ5 zPfq!+_Rg-Oo|dpqD0HTBdg(-ol>b8t8_S-uVh0c#h=z4^VUHV2_)R=alJNHZr=9GL zTuNBg?ire>;_snRrOQJFRNs}qJmO{#A&D(;KU?69s-}`Ml(C05GFX|&T7?^thSv#B~%1m=3GytytyW>|!nPWw};EJmKn z>J3DR&q$#{Dndsp<2$Bp7X42Hq;0|go1s`4o+E>e_1oCL6YKVJI3`SX4JZ10BQvSa zkIWpI#!EQS(HptgyqxNdOyH$-oi}o(`yA~)YfXYKiIer*et~zc4%vAlIyn^HKGr*T z6%~3T>tzoAVuDD35 z`lpf1U)mH3m#%KTB)t81(?*7lQo1uj7XacU{s2F8HV5gw5oSI^6_<<$2uoIBWiJspUO4fxi|3i zMs6W}c>DBeBfXKeZs`|>UQk=Src@Y_ORX0xO#E0ke3o)<>*$>=YOsK#C>G#@gv99r z^cpq#2kUgDkmzoz6S1ruGpk!N@j zwVL71^8xe0>y2LGF z*vi$RqpPC#xKQqSJsLI3HvO?CU-^?gD9>B9+~rejUAV)tOx49b(~pM?YiL6_aRe>@ z8>4p}+PQTNoh%TTF804~c%Q7ThR+pvXaAdgOiZ|unXrMy+QydZO~iE2?J;{Kj+FU* zwNo{3!ZyshHXwaD&Whi2BuO*a?|%3$DdN02k{Rp|gafkIoZaN}-qa##qY(LQgOh-U zeAltp!TWg&Abm3TPG^2qnMV`$McP7xsR!|~@c9#M_WLrXaO^q=V;cQ%r2N@lgP%k$~XUn=uwgkv!gS2)4u`4^zTxRsM- zYdF!@8@XOD+m8)h7Bl>NYjZ*97#%2y7ygFkGFrD}$8)Rm*jbE*izx=08_9>+F9x8> zggD&R=3H-Nhk3~k?b~8f<&vJ1LrIxydaZ?)ME#WLgKPt+CpRomgRyNx- z=K56Ohbd1HdDtD@+ieQp0Z;X4wh#_HHfm3z7^|9-Eb@IjQayJO-<&Cg-DN}O{;ktJ zo$d{A;RFbW2ll_=n5?#j)5E=w;)N>nkA-7N?$=Hsdj8Fl-_2(DaWvpNG9u2m6+YZb zJVN^lzIQV`yv2v~fNFOKG1DO8(T@x@oeMerqDI7#9}d z@#w(A<9*aI%s81)A;!tXPZh#(+BMEXTS$8c6P_MM5MU?BQ)b>U!8Vs8`DYGnKyqPC(fe&0@Rq@1L1=K@ti#U6kv-qsC#WZz*)LIYf1~8 z7QDeP;It;n`}U~@mt~~7+oZxq2#cR`!INQ^<*u2F1W4=*a~J}3q;C}^d_z@Z$Th-cDWRszb40sB&x@>L$#br$n8i?DGOq@<>hi@fKYwJ z1ohV>p?Xr0ezd{mdCZJ-w%|Og%-c|uYweF^IFC$q&nU({UyvqA@6hB-=*sDJPJ5b^ zobd~2Qh7y_e>j)ywo2ExP$o^*CutHD`%lwkrP^4n!ouV0^)p#NQ)uI`0*5VdnJ+A7 z&eZYOxM!nzOVQPfm;MA@t?ZYis}IeaA8K4Ksw!|UrQ8L0|HWuw=-AlcanYgUprd*e zJkVj3gpgk_KDa)EjDCajGjcSNgRO~7YRYVPquN~)h}}3(Xi7J|r@B^MoYB4BxpPRQ z<_{5j2#;^%=bo9w>8S!VFn=W`cl>VGm_$D-Og0)!2$R>Fw-hF4Ofkg5hd20;K`SMI z;e2rx=e056ihGtFcO*`mM1gVh=F7Y8v;zOUx`LW;eRuAHuP*}V!9`;Kxm()gq-QWE z>U`Z5$+M`2Qe4Kqd%mYSMPtXPG3{t9oyQJYDtae$G`s$0z=pSFHx#8ttQ*@^v6*8w z?wQ(Gl%c^h&%7lEk7W+3!|G5nnU%bT-)829Y)oo&oD25k%)@&iT!7P-9BNbF)8Op* znC!L!-@L0}c1t%g|D*gW37|e=7Mv|#Cg|U0My2M|_6l0Z!2|Y}IrHr0e2aOW;L||n z`x#cGN6FMW6eF(T_LT3WGeHS62@-04UwR-A<(NzUNb{z1i;Y0uSj1lme`Wl!2h!+k z@fEP-@%iR82GBVDiSktMYn4K;XTE~b@J2xz_sl6XW346Z5bmFsmE98F%v+fCsOCU= z! zjH<`>QPr-KAoMJ5@IlI9PlF{CEtPZh$s5+f znZ3^Lt7p~mmaVi!Rk7>Uz5d0-@NuE_3~~UPoT}?47gWuA#5h$6#_Acjfg(HzKviRl zg3)_Ttr`}f!FA_=b=DAn_+?yutzr-k&GYB1(jdf!Z#~nd8{1W}wA;j*i8E5%q`JXh zdDV5czChe{QL-W4xE0^LC;LQwg4X^$@MS;M36tMZJz{5h;e zSa!T_@&*~nC*A)n&4T5OmP>BPv z=S)aw+(>LN_CZbMcOkaYhT=|TXn_v)a`bPFQ^W;ZHDUN@Yd5o9xj|-)Lr(>`a7!SW zyLCl%)DBn#wVq9I`!cYl3dd zbPBUPfrS>1Ie$Fdrt=|lxLst!so{1eVL>JiqRpAl#=w4NtrUw%TLJ!dg)`wiMwLoa06TVE7Edj2km*RDxjqL465EA2I2w?XL40=MO75 zyh-FD(j*I<$$J$?@hQ`=%ru8!YuUKc83paH8OPaZNJ6QxtPPa~V>IR|8!@5e7#7h7YVq@AJb}fq5B}-+s zr9affRtGD8n7V&WxaIKL*yXGZR;L}#-OXsh!cyCo9RYKJ%w)@grJn~Y|2?&5O?cJe zoC(229V@J%W;NlRdzF}{yj#AZ>GqYeWXc>ML8>O48XyB~c$A&5#yUq4PJ9Ofy9R@?jM$!bjnM(0%8pj!&EXTWZ;}}*uJ1Z>Iq5~yCrnACnS2?er zPQzL|z&A4ll3^H=Wj3zThEt6zB`jQu&xvC$J=JhbF~W8nv+ucZOy_9xdpN%@IR~5f z1I&A&e)TUcXS-XK#&@Jog~vQMoS$N=<;3V*eC&fjbYbx(p-ODj%Zo8?Kk5jVt^)Dj zq}XVi1Z-KrU^3yH{}4pvFTc9Dpy4W$*A?(Ol>8(`PEJX8ST$mD5`f;zoaa?o1mo<5byH*K>QZPCg%oDYGGIbeckyy@`CFMPy%YBMy(2~ zfkp&{go-0@ZCqiwws*Gl`u^2(W|9V9C^+jU5e|a<(II6VUg^%s|8ghj6VRuX5vX%c zCcw+&q!&$15LmKU8g~xnt3P^8cY|>)fLCVI?n7<&z1lmY z-B8CbYIpp8wHwlwpyeEDVHpRQvRl1Yg;d^NJdi(zSub71#f>od4Yd-y{Of-%1M`Xm(EKK1RF{y&7o#5FOo$3~c@u4v3bx z$(;-T%qmrfuhue@+7ZMMY``)J;&>ZQ5yWAH6BQ;m7YYX|tt{l7{V@=x$o*gfkb8$D zzJ4jWpL1U(uD&@%{e~Ga7z54bKo8p3qJKJml57of=+?(N|`}2ikC| z;YSlr_{=^-;js}3sjiTfwFIDpv400EA1R(m!@ZIIFeHDhx}Y}_K-NH=IrN4PCaxx4 z%OYc;mCdr*##b3z$l@%hNt5U{MdVCMv%trR5K%YrTq0)YoD;MR(0oZVKqb)jgkgyA zz}psE9=MqJpj(ybUfGa>MD>T`BM}a$DJ^t{&}@oKPQ@zF3JMtrZ8w*C=S~zrkr9T) zxUD&f)*yieG&~dkVu6!nt3rzSsd#Bkd~|n*>o>v5XvFD%jXUemd#Z9MLDmCkZRe5Nm(dwr#OD=+P zkR=D#r)0?m!~|oyg+MD;L)XZZ57PF&TMhCHgtxe7)9;Re+)(`m811|T^R zC7E*HyIfXnX4HOS)#ls$;u6~848{{Z%TWo+xu#)#hlt^oxlTUFOhC%5Eni48FO_-#uM>;@Dp|qTRyA7vk zYd+z`4x}VaF)BiByqT*=+~%$sjXWDMq$dGKBg7xAwgQf8(f4An|Dwf@-0>?~yio9^ zT3lO`+2YRwJGJ=P?Dj4Gvkj+Od>i4!9+c=Sf2w#9E%we{X#IyszqxECr(g_^x-^OWO>aS zebZcjfryhKu!yH7bA{be+32ikw9;!gvZgwBZ{>)4dM44ZYyHEn7a;5ZBvin$RE;I) zl+?aRKlQ)Ubm&AWF2gS{t@5@B!TpLay zbQ`AqZF zHoDZW#xsZ(#^uizsWlX(gihJBKfwAHnt&oVsMde73J@BVB8^5IV=lC%{tOyNO2|5B zi18F}c0byKq}3$46gGCyG72PIQe}d4$CCCSNonZRWq_o9`NhDjRPH}i<2yb+x=1a| zQpB;xG7jfGRU9DT&IF6q@``bq2^L!9=beW0$ES+d@WC6AskMJzL%DeGKa#xHo&Cq` z|6g#TLv9tZ0+8wG=ltqumvmEvw@7&T8Ehv6_Y+kRt?r;Ve)UDKHKk}9TT--M8=HYf zlFk3*no7-;-hY~M3Jk-?_pjQCWIw_HER$qkx8W4Yt|Xl3tFpMQPME6`dSC4WvQ}4@ zXZxcrcVq5==sdmmb20Txx!ZR)XJYA(zW)|WE2!Uz4gR%Q`hzeDmPRV486PUA6aq-& z>|cWb3fXFF=1_kGo2*Q{-EPAvyv-+Ux*K#!w(5DZm8}*Tg4~sCbzPlgtBCo%hTk9U zafpr(pgN362~e74j7LhVk8@R*97St1;*(LzY14JTf2RbfD^mj0`Ik$8!YP0Rs5fqM zTf9Z>|H?;;&A0i+LB7-B3?o2|*jv4u+6bNO1|KAkv|EdLCIzS_^KJ#G4es|%JQ1KC z=iv%ak>Z(Zl(s#1+U4Y4CrN(Vrh3fB_~TZk_LNDJxuOjGSyB}87kQ2H{UzsCHk@islyIVjc8G0`HBUw;Pv^!XHE!|v#prXRf>UiLYOL(siFL^q{~B58o0QIj-E8^E9e8nkX8NmxVtSECYLks{-=FgUbf*>Tb?H@WG)i^ zVCS_JFsWH9A1Byuw`J8S?*8g#+NU`$sQ>^^1DPra3d~3kzyg|S7-?H*1Dy7&v+~67o zS(s`~oMh#j%)4df8VUNI1=z51QEQ5o8!4J^w-D)nPE6YmlNwy^E{7wo9z4a)m99Fr z((aI4eXr%^3y3t@!1d0{gELpeKj!6Uc>fFDHvb0049tr7tK^D!t5(F~<~yy3kIqwf zv6_OLuXT>biYkrR^(gh)>8fx03KGiLdAiPqQzUdH;Y0*%i5(PyKgk`lxpWeZr!+A3 z0#di_53#g>wJUySZt&M`|3$NJy8c%*`*;DFYWDFbW;T0c#ZJw>=gaoZzR`wL%?=Yz z#Lcq!Id@sSKHbO7)oP%-FXb)`YmyE8rHcB+@n6xnGXN#sxHA~X=|0_2zEk5?f6=~i zPup;+arYBWJkAQ4zN(|IQp%+?!`Dc1{-@Y>`xMe>XlfWaaW~SgtX;dbMk3wes`2D} zeX$8kra6twqM0}{d^gQKaI^cv7GRt?ObTb1ZIsdE5h z+Z1BhLUPq6-tcqTAIc^BKTZ&9u*OWOC6V(BD!)Lv?<9A+>wG8d)OB4rU6nZ;cYJQb zsjh1!ocNCsu3XfA52}-kY%zB6xh9^$*u8dnj`fVN6)gRj-HGItJTrooo4j-17q_$e zwb)Cwl^=5h&)d_@4LpPU(n#n+C7u%RStMasrPjvq)DB-+<9u+7yD>s6`-ira_=u#9 zp!Q0XS?ZN0AqV!Mr?UqZYL;F2E0$>y?TsA3uXE8L5Y?o{e7-ZxiBij*_ebp3 zC}-DV+Luu%k{(N0>DBz3i*Sgz+FInyRGa%NPBddW2#PZVD}4SO#nlMZ^ZSct6I$x-2s}srXlu`agv5FZ%tLq<*JzKS}O1sgLfr6R8({)}GW0 zY&b>gS%edvRnVzE5QQYx=t^Rjcd}A|a4XIsZ4KRsWraF1;G8(ma0yFGGH3p8F#mx% zZVSWU*J1u~vS|b7X_J#d(4=w}u%b(&;uKVoKic-#b8~xiWZQ5G9bdFsS#Ap$kt{c> zk6oHeINSBM$LBsR%_|zAJ?Ee1{ay3>ruluv{H`^>tN7Ix$ZqUu3dC=a|Nb9wZvq%q zk^GP6gmAi~h;O|YVzebXVwo#~TK_8x#kBrsz%ljdQI7sMRJFcO zFqHY1bUn5kb-^XpE9WCFnki>(4UaT!-`6VA8^3!|wQIM-KNG=j_)#bpzd05Z4pKtb z8*-kb>q&;h?g#TZy58(3^zO$CNVN2wPoY+Dj@w3fu64U%?S9;rsg<5GE+a5bKm~n( z?1kS%KIPKjIGQ9plqB3;&6!S29O3TAbzT5<_5uPI2*+iliP{~*utlu51mEyhrj$@?1l=7HJw*%Y6(ki?Xmn38rI7ugNw-QOk>Kr7_dNR)o zdYL&a?*jbuvtXl@XATQyAy4I2&-9a^QV`m9WL6L4Cq{;T&?>E$_R-<51hElCIYJkq zWf-AGB;znR;94W}6&42=A*MScbQ;QlfqxV}gtz$7Q1biJtPzst-OA=UWYp_CzCkdv zKTR|_vfbe(#$MUz-~e#001@`byebX>lmUk;p336KqPQ(g1cD_%*es3@wL5{>cmxfa z2T`Z0&ZXLPpqK&%196H#XB+nl>$Mr`YWYPnb?wHbh;F0pmw2x~4%My1CPiw9JjM1| zxC|9kcYQ~F_HakozK7=o7@SxJf05)_s~$fq6(`>pkG;rqad)Ds9XUy5NA# z!K1nfTc4D5Q;1#Ivk>c(-O1Ij$L-gz`FMr=EyNf8_uGmoSA-DN5W@H88F&_HJQNQr zBW3tZWrd_pQmH`1!gXT-TEyy^p!&T{10wuwYOyxg(ssSI-(loP$;|VGVO=yzp$bB~ge6VS-96?HF58G zqBW{}u0W)W<)b}i1)9=C7JGIik9+*H;uH`qQ(hDZG(48Wf4k>vGwB?jov*u=1`1&)^w;ufjC> zOrPr4bE6DGe=PPOcBu#;L+*;i_+-pV#zuHW6*6xJ3w@}n9z-O=r-v4y`R~fqa>!;ce#n_Y}f!2T13j3O(e4{ ztP_&iwL)$plh2|hsNI>rmY~+tmh;XT|3!jATt3JPKs<>4kcz0dF8$$H>$Mqzs`)sX zpcd+PhoI)-y?!%RaQ5u%maCi-Uf^g!%+0}fsNl=;0Zq(C@1rdEQ5%f@dW#s0jy;tv z*Vb~|U_>DwHeoQ5^L_L0(*~p2NDZu6tzi0JO}!6EtK=!SzuC@s?yWlG`{=|hsGCS)j^{bJ9D7XYCBr4 zQbGIHd9p=lxO!MjnCQ3sT0D$laJ04sLsVOe3C?Hg%FDDNin9ecKUtBvYJ%1tLi%WE znR<6CjZXi_djpxZ-KmOoy~$)MhBCsK?vB_{%GHMY;WSHS5ivgh6gTJHcN*Vp*AC5b z80Lg)2d-;{qn^vP<0XLP_VSZ9R1UZrk9#V?&s5JY$L$LB3>R(bc~@hJkXW`nP)BS| zxGsV4=oknWjXKLPbd5Fm>^x7#Cot>ifG6Xm>aRn|_iXMqkhz{d*_x+LcB5q6sYi>F zX91EZi4rP(HKK$UvJaz4qw;eor6u|3@t>%J826M%{R?kh}NG+ z3sH@HR?BCbQTyU*fjrKa&llzMS$xty)Z{EZNf?HqGcR-uLmQET3oNvMEKjj2bg?UL zCizlK{9HX+w*S;!dM@z0kJR5k2#|#S_l^Ss0^RRva@^{{AFNVGiOFcWiCb@m@a!>L*w-I*?7W6z-w4EJmIcb1KB$8{%hT?<~Ha zLkeltk%AEa^CoC4rrAbh%mQ88%7-jaLAhMm2<76L@+u2?@wgLTkZ_kHT85+1vbY+{ z^$YQ6)?CJ53X{*KU?}7Y2il{xKeHMOL&Jm{*~IoHe$>aD8*0tn_wHvIPiz#blWSV7^1u%`apbl zbV$8&at9tr7b9(xrgniH0!^Jdu|2L72%;rP`DCp^T&UJM-%5XbhGCle9ZA4(=XuhX*)!dhO#R%%rB>1Hm2(qm_CVQg~3!an-vwT8A?=gz&JTq>G&WJ5_=PG3N%5{{uI~%gpaXB34oz&e3 zmfr$0mT@v^l@6T_cyQ26spdlo@V!AjG8vjtETb!P>QWDh1%*v6LrHbbLNu9^8T+^R zYE_TceCH24wbxdcQ@0BRH1MipL5vG!{Boe zoBC>p!~((1BgCK|K-9#)W6a=x+K|MH7g?{}Sr1W9WS;?mNs5aM?PEenn+}P!T9VM2 zXbOjxlxIr>61#g^{QainY4INY?o5lf1Hz>>D6#VVhN)xaMgG-jD=j(A1XPY z_|T>%@$$_6I0MM|Z@G|BtteZ4hS_0p4sp4f`7trz#?=Od%*c{d9d#^%V1f02#qVmw z=~{<&x38VJZT7IBwoZmRE(xlqDbPXqxqco9!RoV@_x9%4cf@jc*4%>_G0_f2^eU*L zS9wEbkE~EZTH^F?a5ruob02%wH-;ID^s(sQryIo^b?ju!PPl5J+uP_Yrj=dgCt-`* zb}4SDp2r|HWGYWPVxi86o?=9YXQ2qDKHSd&g>^*Gyd4o2FJjko`H|1m!Uo6;@liVi zVQS=9rToM*+r>Xsd?rxL8sc#@Z@?LYsBeDWSFv1Of7L$R*0OG$nTq=vVPTM1F{4oz zmV}61hLH73a2b zJNq|$xtfvXd4ITFb;pWv<0FYn*4=}d6#e!k; zBr4d0_-(jP;)?T9)K3>;DmSYb(6m&n+2rnHA}l8ntWDtnKdUVjaok%E7QXWkwL?1}8n82c$AI~N+K*BI$lxJL%m zH>?_TIv5d#P74-)Q~?tGC~WS-rFLff>VTQj(8?(OkXr;-XBGGKR{Ri*o*Y=&D+`Nh z+?X(ocW&|aVPK4uS?EZwu(9Yx{ny$kD)o9Q3)vu?bja1W%;^>5mTdA3 zbVvAu2h4Cv)WCIf-;~T8-Ci!ciBzXza-7%_SHhfK-2kCejhg})%(zW8ld6973}tV+ zLvx1w(D_y$m~R#GVFT{kYR~zlDdYPY=6cly5)+s=PREib9k==n21ZKOfaAH(!#6&v1)?+g=s#wcUv&moxWbK!%E>!V5$zv)aP+7Hs^ z0wc;e45c~7>5~B*62CnTOb^bg$Tp(g8gau7Js%pXa3sE>g`~7Kib9RJ;sWE`m=%m( zL`0|7{{f2_5X)t6oCVwHCplt+5c%o4qg>xnfxs`CCJYL`dIUUks6uEW^qU?kB5$k?I@BYHAP0^V4MCy5`MBZ)4}k;IBNB#FlVdy+VXtue!e!P9FGP7?hS zBoS_gB!09=VxUD5op~3c5xqp>TMFBi0zR1#1Xdj?E)}Y{wA!YMH^ap%Nfk%|RSc>Y zs<<1R8vTtB#cWL!`HMjmw|pc-K{?+=2*ZjCyw`|f(rf0-eoaL^2dYrZI4#>`HqTTe z_i`4(jZx4cMCJu09A|4i$A3;P<*yd~A?`0Hu^fA@8Q^84w#YJAQLX|nS`534jJPcF zuTkgBA(?O@%x~v2&_$ zF{s45Mi?l=(;K%|elX6*r6?4qajlH%&oEnmFb)w*K5$m89>eqIDlV#0jLq9+1>29q z8|xWgDv2h-8bns5G8a~&xHEh6myGg=;3t=>7FZr3>=(k6-qYP+_#U$t@Cn*L#mhaF zs|nO>6a0CV7xl)nYSz$*^@DLd&s;NVD8BYpI#SE-`c0B z_US*SeRuc-aDik*io!b)YuwAM5IV(RCKnGX}apQM55oh>+Q z<%=MlrYr;@{_6u0qKgC*N)*+QjT1_=4%Ja~sIFCXRf4#6j0r8(h$}>kTHO+KhQP8> zs2}MPEVWS7C_N|NQYMOzyB>6ae^U$z{mrVn6Z|^_zsA;eTdGtI{^mo1Z>zx{prb66 zDo{ztL_Eyzjp8ky8P8}EkU+*)LZ{jkGS>t*)d!&tpbc$;u}jBjeFy?XTUr8(gA{_=UPxa)-h`=qgb-b5Jr1} z2@?v;wQQiA%T``0yC&wKN7V|~O{1@Ulpy8o{R>8$~IG~`pEC}Ta6G`=c1O-~D zg97cuS|Tf0a14GuQ1x1xP?@)QD%*j*;OPigfPT=_nlFK|*@QZ3s6G{M9DfXj2@XJ3 z?*ytFeuI9s<2Fd~+lHqn?f?e9ml5BwwunoFi*n7qR3jz|W-CA}cy7ow?%iYIsXfLK z8u{c*>Q|L{Q)Q@tFKyTYaO^a6TONwtWAG+$L}k4@ZwziErsL}4h}c493-4D#FV-{Li%$_IeHu(>f53+9GkWQt`zPy6f4D9TQmz_a#07jx!kdfaR=RSx~_IPMS*0$}Ky|Hg}P&;G^dc$TQ z7uj?0b1w5R-1cw1$QWwpWu~0|$etUH1<{2drVI$kNuWpe4&|34_*H#YeaokLRVL<0 zJWqNy@jStm9!DSK`E3R$Iy3)Y*kNJB^qB9~ z)ADhSIS*H8_RT@9&Xo)adJ!R~a)Bd#zX6}Pdgvu0K~^wUEP0v35id?x8M(7<3UAI1 zdez*wV1cmad3#-w+Z66l3+}gIA!~lH;99ZTW0~=-=nT5WVAMfBMI0|bD5GW2UL!SU zVYrEs?oon`jP&!v;71ui_06?`6dn#p9)Vn;f#kA$K0k2lC}tE8*wyv>Y5xD_Sew3@ zy&Iy;>SODJ_p!j;$L@CXjKeig`uJLg^wGW`LOOcXeY{-*X||6ivX8Bj`v`g(^5I#D z7~#7R+Bca}IufFu@vRXBEh9cQN?|DL-$sGN{WIzkh6ct(*O{Mwz~9r2C`KvTHy{5n zFZYFR)Yp%H2L6@d-%$J;fq$d%Zw&rTG@|BIqB&}c%|B|==!&;F`s)S#HJ@K*&oZO9 z=g{&DBieK5OjAs|2^Mh4%%-$TRgpZC(9<2{M~hNS@a8 zYO6N&xrp_xJRWVIfeg#x7^48Bt+fF9UQNYvhI?b(w~%mK;HlR;eCm~p$C3Im--wJN ze~$9=gMw%j1W{zvP=1U^sp(aSog2Rqy9cPGzh$H|ez-ABf5sC zD|??KBFJU;BjcJzj4;f=7-OW7futvpgoSLYiFh85=U^1t zf134Uw)G=)C_CvLsB+BjMgH?7e*mjnG)jZ}+4>ow8lANBtu*p)8$1W2ROZllU1Wsy zbG|Dr&q^yqk*R`!Kp}qaZWRe5iH+#)N{d=);QGuPbP+#(Hmo9hfe;okTxoAvX=NyK zGoFJ&U(>+~ZV^d+bTeE@VDDgQ(YfxGbZp_K&WNUk1{>s!I`U}2B4 zQGsZnENE7f_Uu2We@|_}&$06}Tok+aBxLKeRZ!`2G@P_8-3!Ev=#MZ~&jP0QS=WrEGM`Mh#a=$ISV7 zQ?W0k(X;uB1$+*l52Z&K$Uxcn{T^wpl#MQVjK!ew@XIuZ@(TciP?|>b834Jtcu?i! zM~Eo`eNqFJ^3f$DG*E$Hn%ym+)Wq0`L$>lS7Qnt5pp=a+@oRum+LSvI*~$O_7A62T ztGWzk>-K{^(8*j4C0~C@$(UJ(3f0?)Y660wVy0e~=e~xT&xZrml*f^*Mz_!t#=+Nc z3dBYIbsFnV(#$RS4{`*5SyKS4FqoyFgP>cu4kmRm+L(g9G6b<*+0%>Iabzg&M>P4} zo>>ww%_w)BneSK^oX9gw#Y||;L?QE|VDxI-Ks7FRh;i@NRs7A&?9vvCR(*evR(cTu zC6qU&>(*dR&s8|1L&?%_gYfLeaIEhtoOiwae0mawaFa`?zEI7kPVpjyyXZA^1UOEY zNkbW${ky|Cia2KH=;K%@djWhJA$uo0^-@OnKR?~UWHfFhRR63gUUvZg#q+R*&pTt} z#-O3TA&FnF!g3Vc3dg)$3l=t1kPI#9&>B6dQ!PKp~ehW`Pl% zp>cCmcYMOa}GA#+e!~%fjWW@CSg|H#)-$WUTD%O>G#di()&y2{p3= z?R5wGulv=A?8Z*Wb-x^;f9d08=y#|52E3y@y-Vh^2kOgImHh6^z}=)Qx%TOR>BCiRVRe3gfg`T3H2+b z4|G@oU4f_Z6yd5ZnT9}M=;;Ht3><1i?#xQTVGl5{p-#I{ccQba6aDN?pjR+8fmaXL zgLiwO2PCZ-T#P1l<_-RAV%_@uaKhGH|O0!rAqQI!6A%%E<&foC(ZHiyb~Vd;7_geMYW15;Jx zX0RCw;1cU$FQek=RUuF5_Yl(ED%waU7HY_aP6{^=Hb(h|?~5~$dCFU2lRmHe%$$H{ zVXqdYo`wA~xR+jPVukPP_7vcuh+i$hr4zVODa$Nm{LLd8huZ$b2>^ztkyxrh~wb1M2A*H7X$xvUbiJ5LXGVYj45!E}iRS*YUI+C7S) zCWIA5;A%!uMUT2Qt?8K;kT;G!iv3x4|A7>bQNr}CCg8?*YoHmB0Z1PmiuHy?+`ciE z*@mjwBQdxk6Cxsn!59<976OnvLjRZ!hscoGyDVh(ADa9NUDOuiDg)30oF}kl$_acZ zNrv;hIvF8q9V%0j?MXR6fF_J~H{pIcR-sz66@f+Y633ud>Vwl-qUduMmZG4c&wBJR z$!8rfx#DW^9e!YrBwGINuflnkoZ*Mn2Ou-EmubFWbIZu@eoJCi>N8>_JRad9WV$Dd zG6Q6msjWSLN1pyOb$xQj3gwS@t!^iH=*uRyz7BTn%8$gz7_vO(<&7v{vtJzx1FRqj z5WCRzvGE8X&J`R3A|#T=iPIo2emY!(ZfEgr-{=N$yzB;Lu`p<1D8ZdiLKuBGSk$Z4 zgMfvmfb3YX2fH!#2)gkD@~9ywtLv9ruk`IFA|B+j!0u|0!QpQp;_N%(}^CqY6_O5DAC2j)851+D!lHy8zL z=nMggm~mpm`M9vn?CmuQmca#LJnqsIZ?oeeX5fEV@IlviEHC`|gTzG-UieVKlI^Y9 z=fh=}{Kxlc_WqNXgI}vwHc$tow8xe%mJY+0ho`UhRC1ZBH=YN(ZXp%#k~?9Y+7mKQ zEyb}fY)b{PtxnfG#Y1!EhoRzCp8LK64nyX5#+#Uf_%|h7fIZQ-g9UH%=NUXQ6D(NQ zKbCQpVQ%7SD`CJ*Um=flch!WBKtXE&h5HsZl9e(2oAQ&5dw)qmtH)wRuwH$20d|Vf z-}S2OOBzOYI%H_Vk8NcT=di)$V}j{0*RJB@MD=9|h>Gk_t?+V_wvB`Yx!hbtw{p zv5emk71{~qxDK zdH~j{+RsTsjc_IH6Ki{UxS$4cJWj&I6&BZ<+HgUOpn1HysV^}Ir&4UUBcARC5}lu( zhz3pR&i3-~`i}-daVb7eI)%Mje|>+%;3e-w>T~OdIM4q2zRq)Q{gSWkJpTH5*7L}~ zzm0-b^&OGTu%0uX2Gx%Y>|^?(KP8^m@tOO=J?m{ax%HDAnBMxePP)H-q?2A)|C*ET ztzTk2TXi*Rn1%Jvxbht5D%&!-of&wQHbj(egN7qXF9QS~y!Br;*zGH<-|9T)))(kH z#70mC4YKdPbM-PG2XN{8f>l92tYg#>OM~&%#-jC9L-7~fz1^t(Dt*?ns_kj9w%)YW zC1+O$rdAb}&P0TkWpKx-z>aD#y(nFfXUa`n$Uq5l7zS}_VX?Y6LB{&P7zkG3Nb&wEy#mlF3C-`t54cl*^= zAzan$#WTKA`4!7-t>4<{uYD+_h64Zqo(>@Y20$@<)X&n1$3R-fvVAL1&qUS($%ZDn z_97!|d2e>7r&pYp5@~=v;}f(r*0;54t;@5Om$Q|Z;9dQ*704sjX*_C$YhP^U7;uyt z4M_}4{}zdGEvryQ?6Mn};YM6bS4Ue8SmrwMd{h5KEHkw9xDajx2jG*bwnGSff@E0a z@&!1c_b=OqH z0Q6Nn$9+E|n_yi9be$pm^gPs|hTQ2}?>v2HJoA<1KryPqodP1DAoXI?S1IbT zMpMzi40ufz^=-?=A~RNePWPa#6NRSjtypVG@W9NbR~h?z@|SqP<7(R^i;Z?-~>`>*BtL zH9*MxuJ6QsPcwCS!#K$DxbF%66#b1J&(FupczPKjAeOzm8t6H80`-DChl}}zog6p;8c_&o-+4%2d2mYHHvmPtRyAZU;_B{zd7N`HWwz~;qT6we z(+*PmT()BtlGu*F2+)6zB8K!{wi%&@BsHS}vFxdm<3r|%j2wfHXQtx!6fsMZ)fWj_ z_8k%TZ4fAH*LMS~)Z@rprlUnhV85(_nB znT={ixe&-PLLc8%VO)Mdie|ePNEX!5v@LT<{_(6~FWDN%X z^pfpLJKJ+e2Qw`ID?#(@5nk*3;2g^tcaz#;n0*V)#<*`SpPe469pj{b?WKReWB-mtlNzw0 zIIg=EAj@B_*u@N9@>-@*#}Nrin2 z+0F;2;sK<35vuHtuIfVbbRkxW-MH-TEVvbEBJIUX1Jb?+C5OEuL2@?YXIzBVa8LP4 z_NWX3<+gu2lXfn8pVHYWYRXpCn$4k*C#3emf%8bq?Y z?xfYbKY-^n+->QFxh_9mT?#!J#FGy(8TXl}5~a>yN-o-?PJ@jVWC2nPkpspNK^&1M zuERrYpb>bT_<_Dk@p_Feoe8&#hOD@6|8F~`z%v*n{T#I^TeZ$G9L|-{K%B8+&mR0S z(X+TO6TmI$E~k?@_0xTJCEdCn3vAM~G_i|ih6&kQ{0VZz}-`;xqK;=Xz0YVN0^st$4AL{yxZfv4fE z9^s-up_$`ZQS3pP$LZk>`#Dk|>V?#_tiJ*&>Xk7ZA^d<#c?<9zxuZ&=us!c7iB8Odq(X$R3~mfV*DH(r z{ueBR$#D96=ow&^8R=W&zL!V1`|=3hG)g^{e?ztsj8qwpb7kO+QwjZSIUC*qI3?yz z;9|_ElA_}Bn}LhP85s0X0oEuRjM%ij`?16T(VPGaUq%*nz3frgQIAxo8IiA2D?SFX z8L_~A!&6#~26rD7nUZ&TMT=22z4M@va1K|o-wA%;TmfTWcITyFki|%f`}PfYx3>k_ z8;I;b(NlSh48Sm$Ffa#<;2ba-IFlny8gE>&MlQSit@AL%mG7et&5C)tBJ%I|lwO1I zt~G?NtDz$t8}}^}60SHK1~j$nc8A+PW1G%IZiwH`fT}m~eC2|{Y#&n!D=1EHM#^Qp z54_?;E%skc06B(Leu{Sh`PZAA{BK47jK~@9;>AM6v_$p?nEmf~*KHr2_~mo{@)!YO zRhYy};PekPPKy%RcQN}-%pRMRYeX(jDbJXn+7OBqr&MHgscPs+KJSvT4^dD0;v`oU zHU}e{2(&#b+3I-+Ww@%t5Da(uFUZ)wnkcf8MLxwl zpy$$t@E^URQMQ(~Uok$P|HS@i=Z_(A5dm1%T zciigqKUL&En;Nh1VyB=mqoNhQMrTx{y#~eN*1Vy!uv{YJfjUQ^{eDoUA^Z$Au*um^ z7?pOyh@vZ*f=ar6WA)%GV&D~|1m2>IDurPn=JTO$EIax=N8wki-g)dquzE!hNu@{{ z6}fy^c?*1=5B)k)lh*L9QIif`YN~<7j}c!!s_2~I6}!c*v_UbJ5ftOm)9!o%Lbueg{WSc;%1_9|-JqfWu6qN}a z&-6!716uaxGY3JFi~{E#>va9CEHBfwo^KI{8&M#OZq3Wnk+SmDi?gBEk19GJzS{25 zGmkgYVHez>KHUGajNe#{qj`)`0M|?Ic(gS*m{_N%`XX#vG<05E%BG>fU#$WG6bLMu zC8^j&>6fLJBB!RnUv6^9{4@%_b8jY*B-?GU<%u0Q$lPn~^|jbH2U}-e4fAVD1BZqZ zCUt*bQ#zk^fyfR20FE+KrR$}OLb33C%$)CdIhTf4saMa2B|eBw1PfXO-hkZ?OT!iA zJyDn*2Ug*C-y+^h7uA&dWswjooo}JBRPg~;{%~C=Rtn8#uwU&b$cBNkS6$FD@Mf+6 zeY@NM(3}L&ZAS(4uLRmFsfxifTRmV4UnKTpPG1Fl_iW%hji!a$jL9KG&)D_{q5sb8;vz%WayE-I@pAx36h&z#Jmy z!}fr#Yq)ENQ`um&{5OPGYQYjUV6>aEWw;Sap)&}$G**#UTGTDCyeA7GN;g^a_e*q% zn$q7{+*M<9*9kUvwFGzV26z2V%^{rn8!+l3dN6vC#@zDDL(z&Fz`E|JU=0#j9RQ0a z`P*xSc);k}jM&6HBRcszYlUl%F_OL{`Jij+)?$b8a3Hrlvvk%^v?oAHW~sc(J7R_m zcpiev8m=J^!el>qi^YSMw{-_bbA?H~(G?-UGov5mzk2K)EI6aL)#xp((pu7OS8fzo zC;ghg>bC=mLLZ~G2pZNPz$mTURc;W|XJ|~Xz?oolulC3=ebJe~^pfvDYW1TrFoC!F z0ZMq}w?WerOkWQjJI`t#c64so0>I%Z0RB4+JpPqVS)3=80#)~xVk1`LZJX+L2^TZo zkU6;)C+TZK=oQ2lb^}7ijpdpCF7bwTI6lW7d~zAF==VH?x9~P%@d9A+yCcD3drGq_ zz-9i*xMw=g<-N|K^x)}TA_Sq(Dbg#zf!qdH~QQyXVvykmtwGco8k(DKZd-v}` zQzzp9@8lcn=U}4eXwj(zwEUabk7l%H=5e$(akOYdveEr^cMIK|B5*i$@{NWJpYnGR zK`VH@_(<`(j7Z!IK7kEJg9>r}k5uP{C`OM5U8pZFfCgY8rtm<-Sl78FA!fp0j`v>x zH(-8TQgqu%w7!K;Q5|Pul~8nB8+rApZ2kJPyvEi38PGwX^gfxlod~;k1*MW}(`vbD z`!R)D3;9fu&%GZ}!2O$_vTB?z!VGv^X^b3uIoB)@sb8*RcMzjLw9U%{*rBlEp_*YtEGs$;qSPx+mtVqLK zln3Xog-Iav%xk_2fre}*sj9#R+FDh8iNzcgFK3z1ngv@u%?u z2Z+H(gcoYlsuTJ&o7f=fHo-=-q&tM8@#VUl6!Vj!iUJ|c^VP`dZ~~~X$#}55*;L#c zZ`cmSWIRWDYEQ{XZn}2Jwme_V`H~Ryj^EIaKO++pgGdnX`0|K#4F~ z552$8gBoC!>c;W-astN#zEQRZ*M>||Z76SqdifNPEjHR=?P%?ZJ%iy5+_JJHQq|8G zxhj|*MlM^{SL%TGk!Quj1@Pd1MWE3CL;OIU7D;Qj7d8EIkhLB_{6-U*-;%}g8j-~; z4b$it%(pPDH<8RtgAr5wk1T-OvCJ=-wVguQeRFH4xB8;5SX@Kk?m=V*OW;ltQiaV@ zw#xl$DZ6)+-$kcj*`}cJO6}>wsk|y^4#^4@5Al}!Bd4WAuFD|OUV0ulg0T(ZZlY;{ zNN$SRCnI3`Gon2*0#Tf7G5cf%$(hI!jKT>j(mTuB(2AS(W6(~z^bJbUYpbEEU&Qh` zk(x1`;k?^J+EYk7`y5g+ScvYaDQh4i5xsICW{Sugd6h`Bd{1Wb=dY)U|6{r3?l@6x z)d|;I38U2-Bw+jJH_a5D*R=4Tnih^BVbRCra#LRmK{IR4N)F>cBnqG9e(1>HG1!3k z^h12&U#Ve>&yA|nWsdk%YU2gA_^gBY+?XUjsblPF5E(l8LYEAM^T+CPX#0afK-h!E z{b=tVBo^eKiRzzLK~6w`R+La!oP%=PwdiEIW(5T%-nHs26myA8ACL)?Sl1(kaXMk# z1sL-Y8yv$N$mFbLnHSil0h)NHo@wp zHp;_8fpR$0hw-m;s6;;vZ&WWAJ4&5W!wV0M@VG{J+iot6P7qFw&O&$-&8dlAyn{%e z3XuVguKXU#_@&F6)#aoY5^Z6N8g>@fUvaMau!^cxew2Sbmyo78g{>7Bdaq}k+Q3rg zfO90*VJBJ;+6Jgq*Q))Xc4vC9M%-?Av!f0kU#nK36tq39?0N2gfO?)CO%=9xhhMJ6 z=nZ|Bqjv>9^_~TSMj;d=ba&KwHP# z9U$hzW+|rEQrJ7HjLT9oQc}iqEjGWqF51H?T2so%swj2{OGlY%e3OSd>wsrLYH_t^`YhxPrLPSYuc`Pl9FqgF;aK3` z;o|D@(@|t|qDUHwq_D^kDY6_{D!vTG`lJPmHN5totf;~igE7a`q7w77=rtf{OmJr4WTUvHXZme~UV|3QvTkE^|B@(USa}6 zl(-FVP|H_N@W2jJ3f-a;S+eGQ3K37`E#RWkF5lFT5^f4( zkXjkBdwGsps~e=;$yLx6lf>6zIcN)5((Bq{T^~Dp`@XSUX83 zO$e)<%P^!xlfM?NZ>PF#612X_AIaNxHC*1-$=gOX0B^L=Kbg0R!*=hAsrX7_{NWqP z_*dam;%kLWiR#1yz~O>wqaZB=-i4O$cv8`cy_N9I z8x$C9?cwEus9*L+Xib^G7t~F8lk&ov<{g+8O3jhJUw@Yi+6fvYz1uvtG~c$$_?S^yDBoe z?t(9=6Mg5AEbQTDs`#5S=0@a8jC-dZPtkcL@8UotFAq!O>+>>F!qgT55Lba{MqVIt z1Mr0%L#SV+(7j6X0KGIT5DnuSMyeoE@Da`mnYW;y#o^*#Dj+5HHyj6h2=%et^Y+ET zrCw}Nc!T&+)jx+32o}f75l!gItjKlypz}3CE}Uq#jP_{6p0e3zpV=Fl-acA#qy2$` z)@t*QQu>1vMLoj4DIEtIr7F{`w9r1e29*qHn z=0a&!)58pk%zUgWWSN+GiiS;q{^$UVv{cwZwWf1|jtppgR;9SA@(-Sq;ZU zreug+uYZ=>M`tOk9m+7_+dL4CygX>R)1H)?J<3?Zql{gvfd6P$MBll{sQw&STw$bt zt9Os0L?O165TOIq#!V&chdIQ$TxERqGeQ;pZ9Pa;HDV{v(e1P^L=P1DFp8tia2AME z=fKXDqbgnkgT?3s(Z5iQ<_q8!uIz1K=T^LFz`pg*KEWmpqiZQb$H6Ed%AvR}L#NMt z>P5;ZXg=A`{PiroCt6}IqbI<)p4ir-`zp7fO^j>Yw==+vYuD@F~MKMtHkwbvyG+{9*s`TR^*CLa5=+a7E&C=8)Bt|PvZK1Pe*VucOvCOsT2TgX-R9Ae2 zC*C4s*zpmX#m8bVY(%gf!s}sl5AGN0o?dGA^y2BsJ>Bv6fjvFtw&b49gG(2C+BtHA z_b}b;cx-Yv%Te^eURwH#jHSfUN*++`dIn-;3=V`|EXHVsVwYWtc5(>0uz??*-yXsr z=UPK}EsjY#Ll}xqP8z%Lt;s$5xZ-HWu6MiSPCd=iI2#uCU5IuhTJ`AVcB@{oTeT{3 zh*mAcMCGQa-bdA{SG~!tY9+0*$ti?wv5A_dY#s#fz%83d&vn_eZp~W_gVs(Gu$lSr z#&fmTZt3|!vkoj29c+dWC^i~?l%5{uh3m)|H0(u7Yf7Rt)NUy0KCwdu>^3ms6b;QC z*IFn0y$#tlrL_?E$iE7HmCRQDK}q*JJ5<1{`>I?|T=DE{Zl z+wUEPyMqQ;WUeQfKw5NydtNh$e)YT5hi+vPj-vx#fmi?BgnSrzt_u0_;8(Nj)IG2(C{l5bx77O_W&&>0B`tGUy*D2X15#)!(UVtc_-44f|cltiZp?En)Qcggw1C zKlBJ!pO;(WS%7GO+#K?#<-2}{MQL(NR>q3PUjU^55l>dy)3R(2gw64d!2+DJ zv$qHIw%P{u*djU{cAEUId+ZZr0VW0DN6pd)NX6;90#Mtge-2-8pxh(G=<$Y6!9y50 z!ggZ#d>U$g_YdvGNFe~b0k;3f`Ej_&NVYnz{@2flD1TggTo<9T<+J8(ZM>l^LG0x@ zZfknf?;NMTW1Rx7`zA9!q7n30^*^g{}4|*@G9cLMhD~=H32=V z)&z1$OrvU23kzosNRtrK;W(SU=r!GJR)J=h1w8rVcH(2wc2~oPW91B%+JH#NxnVE8v>$;Egl8Jv#j)~k%oD$f&m zqY!DAwl4AX{H!Exd$_nBG2kJ&K+xN;DBQ-e1!cUCURqo|HyA5TUBc=?IdkE$KYkp2 z-Xd!~!Qv0b!!r0mFxI1ULxB7<+3-}u(rU?Ou%CYL13(8#xskyXdW@ji|(D>h0WjQ3* zlJip$)6gbJMwv=BI*!K*)R-pO-4?Iv&YcqHV1vZrB|%Z~LzPZYxU)>MJlSE;G5S{Pl%M#Nkgy@X@)I;jMQk`P)WF+h3t z0C}7NnuyX3^Hdi?;~11aO8kTL1pg~rQsE{3xpG~9yhx18F#`KM&1+&XLKxiPpi}M481;Cx7!ZBuaOW7rSFMelK9c?BEwZUCA~L-YwVDoX7C-+@J+5 zSj5!qa(Sex1}o1-xusI>TwQMN;mRGSq9_Mx_8a^g@2%gCFgvPCHP;?@f6R5r@t^QB z7b&yViA;C?T(L}+LEq1A(V4aZEJH9=wc#0aPrEcV9DA`?Tul5ER7|K4j^Yg{P0Fv& zY_9w%y8KT3*t9%VF~~WrWkPt$m4kAi#yvQ?z8VdYeVQLU?OKA7A*uba$pNinu^HaQ zNZ)BhJw{CxC6g>SJw1?uAgMg5&g~2=ll-(udgpR2b&4F}Lxg|aeGZ!^Z%e|O!_PGl zv>Say&I4KF!0(5i#LNGO&I-CG8&t37*^`q)TuH#M>^=3=anhAyt1Hk)!7NypqKWz_AKX9P z0L=|Svt6*jtGs9M_?Tow0Vl8cwB&O3(q|US*a6r#Lgpnn3RJDqgS3o5^$g|Z2MaLA z!qNTvz^DZ#?kM_R`kXB{MUQGvaF+)~i)-f}^mCF8m{xU<|kLJWg^T;k%nL$xFgd zTM*n^efMv&Vf_dAwEygLf*%C63Ws>-J*HmT8v0w%G`y}(7ht=kdhEHu$VBSRVXVhx zV-e>#p~^wsgcgS=)M{S_5z3V@P6DcvKXg?kRT^=GL8tAxLkQ+7GcAY(LJ)`M+J~bU z+o~`EnBku{uoCNq<&nFxQYv5(HeklV^%d>HFm^Pw2}MyNy&^pvh2@J;4XUT!3Bfyk zC&VyhR~hU}*y=NJ1H>jI3Qi3#vs9eAvPVwp%0Lc8x`E*zkcD@&md}B#`oEyOD6Ken z)|=(QE73mS`YchuF=-A!8g>)8iwHwg@qny~79kwcYdDt4Msd4}%uqD7Ap>c!5~1B( zuozj*SIE$QP@;h2D2_L?fmpdTTSqqQ2u91i_508nUDW_@1(Q(?l0Qc>DwgLD@O%V) zFF^@V(`70Al68fKeIm%63pw7z~c2;zZHI zRAq}oO>eMWaNDr;VlG|lKLrCG#Gm=9f6)3~Dn5MI28W9lS~J!F!I^qyV_R%&!|Xc4!tm^gsl zKUcl8!O zi27z7P+x!xSC}qzCo6u#&JFdP0-|&JM@J|l(Z3%)bM>z%sXoqe>=#DP#^2Gx&sTqN z!~ft#cYl)L%Spv5ZSvz0T)n*h_w$exQT*T3p5azTfNxHfAadKjFGe0Ks1Hs+a>5?L zcnz>KioTaB%OI|`!se%3ZuO0w18V`O;seanDPPIf zaqS_d9QU+Sq_t$|y}Wdz2W+(cWigWplWjvsTUmytC99e7BO2zbRs@ETi=IrE_UP?k z+jnt^Mh+*eSK3fFL3|J#@b3ywJoTg`(DR!UKj!h38Pt#*&u|Q!Sfvpw{?vt32yfZ! z@D6!G=AS}zcO_;K$Ym;lS^Lh!v_%cDB#-tC(F8HSP!$}6eOm6HKIBpb3+40}p#lHq zvcMwDK`AD$Gr^hvSJE8bc zkzaV#Mi?Mh(_I1K*URd_z%k#MctV48YX?Yc>(uM3*;*`THiEMP@v<>!=r7_N4Qz~x z_Cnt?f8x6d|2yBd4s5RmA$Vtl1BlorQhOt=y{S`?7J7UNo$>J>!T6l0);_1lXN2xM z*jRQ!FjBX@=8Tlafbf?rUSk8clfkw=lOQhAJ7+h4h&RuyG0ZD+N};x!-{aPXtZ)H% zy9f73J<~dK#T@GaLkJG*A%boWxEz=7v_00~c0={2S$$&X92#EZ4}4`Yp`pev-R{6Dk1s}cf}_J+vz z?MBpqu?9$1EtmsUVTA>&bVry@A&Cr3%d8$n)pIQ%2l0}x$vW0=yD*GO&HObS;#0wA z*(5o+$d2M{814w%`6`f)edNH(KyIq)aw;}EV!k$2us8x^)a!HAFT$O^@x!&EpR3xg zqoUuU9zs^7Y)BHdGJtOR_Ab4bMGpNQPmoMtrA6Y=Ocsy%p2V{ymSO{K7SV#v;R=Cg zaX_U5kABe_-e?!RkPBY3B;2=7Ri*zL5^kfio&f^&qT}`XE}9j7O_rD5guL7@=o^?5 zSOkIuF5FTx?aw4^mWO$ere+Gwu5on%C?9OVI&~jR`vw_ zjy+lEx9^)Y!Z7*?>G!f{IlK54472Gs1fhuYJ717~{c8`TUl|YB2Owp@h@2_*z9BOO zr|GBZ&zv+dJ@yb08SGi{;lE(FhSXkuJk<2yMcn#d!&^S}^3$X=nHu%j;wZWr_=<3u^!K3r z^(U~1Ik3If$dcJBqUQ~Fd0QW;dm2Pxu7y70Rd<66S$AQycYD!hlC&X*KW|OaA29ds zSnN=+w%Fq@n2-??)?O7 z?%_8y9-ZOaX$@aK+-)%Y_V7`C)WbgnQbZ4bJ)SrOM5`|EtN=8FBNpQk^1xal*MISw*?KDX~AOaF7G&lW$^q8$RW z9?jzDMAeTTRp7D%r_Y^pUDIdR6J+{qyTCnt?tfCI&k2LU!ZM#`LxQbSEw^#{OkIIb z!GF?xx#piXXXMYP7;rDFT1bi|6<<|asG5;evy!cq5)mxqHy^aE?11fDu_%c}G7fgbIb=&I?~7zCRQ-7iIy>70=y7 zIfqy-zLBpGQ)^`?hoF&q*;xi^O-H_KTAVHUtVQ+lf>z0l(82I~96{U2$N_N7TxB52 zv7S-5gGIFoO4Cs3Pt*2vKA=55r#+kL#e86UfHt;geP&X7?n^ZO$l5dFp!oHg1BWJN zwzr?)%r?wPNQ_hci})!qLpFs+cS~ULLqy9*FVs_yiK-LrJyiWc9%ZT{YP`|b3l_XYn2w^!1)z`){ZtExo%Dris`l7=aTA57+3~*k)u!}!hIEPa_ZdA(4?5m& z;#bnCMSssr|26%AeJn$oogs>d*0Ie0kvzDJ(l_4)I@{y{J*YvaOJ`hKRDx)uy$1>1 zx>ZoISZYg1^@}j`yWa13iSN|!?9qcPQc@>J?QB6Q*W8VCF%|1p%$J8$d(EBQd53P( z19YY{htvgLr)3kt54Hm%A@ewF3J0qjv7Cf;0@@1biW(a+?=;a_@8hN}>^ri$s9hbJ za}}C{>d>4&vSBgbv-l#fQ&HGVP*>OQVL$9Yr$5Mobud)60m|Zn0-|B9QN1_Kd`CU| zXqq%MWDZwh-nUGug8hH$q}-H>De!`Z7aq1m`(~Az-eAFM7=tnpYj*4yT7?2I9bttS zgma2fUGELRC|s>_0y8t(v7ELWVF78T&up8Uo zPa5Gl^!c^MwKo}dqpf#8_#L{t;a1QS z16Yj{3TYTXMyK8coT?pvNKI+T#?7?23^LY!mJtQ0SoYsOJ~u^G)5{IU66}K%q}wEY z0%l`3Eu(U6FLu!~aqi-;Q-$BaU)Vym{b{Yc%wu4Rxju(Gaj!7xl*VN(1_ zd1Aj^tTu9SFJ|D#as$6sG|=J-w~U6%t&=@Nev^s=*f=KvzYb{rh32X*i+o;ijB!=1XD6!+iNsrfZ+oU7k+I~hlfhxesIQuKcaI%JO@$;ae zSmr6>#q6uYFAnV#i=`Nw{Tx8h45|n7GR+k&;8%^BFL#dBxTJ`?}wT0oJ?cXT`6-wNZxbIjkfi3gGvE7b4vpJ&i_q=14U$c z4q#U-Xh2oYc8Ikl;OAamVsgO{lMW8We{Vc+RQ!jko8iALMMuGZIsYO5-TapX{au2v zU7){~q>z}e4!=0`cap@H_;2vvobkktHPkJ@H}1NHoQ3%UgA`ERPv8I`dUB!^IS_G zK9sz;-#n`EDr{C>EbMv|<5l<{%8N_HD^*)TS_73}--X0z%$M&*-%B*d{a40oHLpkl zq+F<*kE3!_*h^Q)dK2U2RCrY5MR`Ge(tj}he$!s4_itmEup-$`^*&gU4-obwiERpMXFkcJaaI~v0@PGvS1v+x!xc9>Vd7-%bTCl1a}+$?8aTyOu=1Iz{Xwe zD@nMc21oq4*RT0cg7{>8^FJU%y}s#Azf%$N9 z=q6S-_f2xIZu(fO8{>VfZa#yri)(eGJ1nc4L{AU4xUuk^Bijq&4|DI=+eP=wtb7cp z?7G6h6*(IvC0TvUUS8Oi|3iHYrf-A>34(1-gUsfTiv~Fb8ss)l z@x@CZUyxLcs2cY5Ntl(n-9g8hd|3OvTnZPeuAOk|5wAn}I#FF;f!SMBOdKKA7qsz~ zw?f)AEAyrjo?P^6JzK`j_qjZg^7|s#n-sujcEr=Y%cTiu;q+VK_twx}=X&4CmBL)6 zzM6|?kh)C)+G9G-m=3ve3yx2HMjsw~=|gfptiIZIx;_6~hbViUB zv*%FAv598SVfeaRI3e7G6W}*FF|pd3R*Cs%P~P2%lrcyVb|_S*A`T2zVk5|-(?^p7 z5O08Nm&G4I_ksk_{iSznx+j{Nqx-|H&pJ-C>HUc8BWO@F>$4%a4ep5TBP0GpeQV7_ z33`9xVWIc+Xt?4Rd|-J@b|jH8{HM&>{NKP^ls~0+&_ms6&vVT zBux0BU5n9yb<-x1S{0Urj){azkpLA1GYU*my|ZvY1cB6XNEWtG%w=QYl|(PLXzv`H zBx!A%JZo3>hC|M$dl4u)=3D$Yb%NedGAQp~o+>)Q8AY~Eumrw=B02SkqYwCP{cx?^ z%b;GnhYeW^NM2PlMVy-Y+?#i7gZ$p%cdy`}%tCq}k1o zEB?UE5X^qQMiggeN`j=_ldM4ee`m_jal7SIDS(;FH}_x#=)jpMFdNxC3vlIR%=h*| zOAu9l@ybZJWVjrUt^Qm4sjxtDe{aj9?7Dk@@AC)Q1@5n$j+!uT+UBoaN-0b1Jrho9 z=*!^$WiD=-{EU)L{${pVyvW_z$^FVM?c=XM#$xCE+$eIrNxI z--)LDbFvU3Nrx_avj12J2+nS*OTTr>*J^tHY!Vp(#poc;jo75p+)9>EarPqU}zVRE72M5!!}O~BZgXS<5#ovQ1ft8 zdUy{brs-jz)N@#RK;tZWkg=BhF^VBqyIlLcBkU%*$15;j?|i-?;-y#iXQ@q_TDMOolpUr#mB;jh!410(KTEgVsD^6Ed0?^ z`lsi_1W)lxrD-3Cxg+dJ^XrG z*4Or!w|i{i4G!{cF(=tx^Tf;$@tP;vfH5M?HVif@42vo=xqmJ#n%j0CgiFMD!7{F z;L8pKn0f>cPjQpmU?9!))5JweD>U98M4_pl4Q_T6nynK^vc5ruw!ZMylTc`&T!{|! z@%K_>K~j+ybdgh?A`4kWz4|)6s$Tk2l2dZC@?_jBN(C4HW}guQU&b=elpofjJqDgQ z=f-fni82MM!vJ&=Je=K1=iM6x5D_LZ-^%+5&|>;JDS&rT1YAOvCsmT$Q>N$t&j>21 zJr4sQ+VhC~!1gS{leDK<$Nc_Ps`I-pZz!Q_|B=x3L!cgYi!d4ccCN1XWLMw5G827k zzVbTt;$~OnLOx9@ZIb3YCZ5ZWPX*1W2l?5|{116Y&Aa{YDWjT~bZSguMk2nU zBP7lTVAmNg#sgL{O4C~P%L4!-&JMP5&yj+iY>tK+ITTvP0a8$(6oB?`2|+n7AS^AX z2a;L(C=L#sb$f!jn?E?vk~t3I`S{Xihq?Q0*Ua7aonOP;C#pe|ADL8~Y zOa>kSK~_dbIQx{@0sM40N3yn3cI{8-)a|tB40xC*BR+NY?>O*H*fMQ0 z8PXZAT+tu69$w^Vg}9fIClv=)Ir@jX6e-|SmyXiswu9>^=ixV76V>0Az9N-DQL&W& zFMbCYaNtL@Rn-U2qoSo%TxB;iF}szS(T7xKY(D<~PMPU{bAq#*S7y#-j)N#On`#}- zww0MK8(f@yl*-Kb+t`?9arS?!%oN>}z)JJV%n8hKpu7`hX32&GR<>(-*KxfID@UQs zTz_j*WoC4eGLv$bNIk8Y^u!T9uwloUZe`{e(q+syqq8mbIz8l4X1uyc{S0@Jt+z{& zK~9mc9;Be$F`t6+lZPEaX|VA2xc)%__3KeH}U~RF?zcVk(A@|9IVfn`|_=pbmOWE64=1^8@VRi+Q^mIWU!IH=7`&6zTaKf3#lXt9kRels&+&NNllj&mf zcrc4v&rkOs7oRYK($^J^p~vFjaZV72k8vKtQ_@pb+p-greHm!L5};daevJV2snc&{lbW28UQ-Sd2*TBIr5{G^wmW3hKA*-> z^TY5*qxP1YWYo$|vq$X<$eKi%Iz$G+NWYp?<{4e4qf_SZETdk2iE{J#*|ywd|FJFa zvbTaiZUiLI;70Js8~2beTu}jhUkU3|KpY@0sgYfLH<=2p2AnNAE5Lj+38^vP?~x$< zedQq+fi8NK_WeKV-UPm;k$Wam=sGHPDWG-ekCKM2(9W!^T)5w~SoGcCB~(0{oVFw~u3kU_ zSL!CKBA=Xk?fM-Ko7r3Mr|XB9b^1|@TjS&`^TaUE{+`SJz`L)FCUy1scR%Qex_-=l zpfLRvE-*{xo_~MJX-5;Sn13f}Rb*p#8WTgUD1s&A!z@1M-!JCU=jYd%K4qjnl`Va| zTQJl7WQ%6O0!Hrh)KOXU{lLrp;5AjZ>9}Ogc)S;mXG8VE3lO=7v4TA!_aj3oaz8|W zy^Qx=9ktQ@xV~(>e^`z8;}D{K&CBCK?GOH#;5YvGUmCKv^NK$n-?$n&IZMM9<-SqTBF2dN4d1=3~I(WbAv1Fw<+S zJ{IrrBFjTN%2|1+_cY`bi=`uHsqV&7p0m6qS!xiAS!Efep^DS3G$bRw$VXo8f1XUG zevUyayK9N($%7Xo3Lq%XVL$AHwr6pHr^ zB{FsUlQ>3m>2*muE7KJ^5|^w&qDKaE+cGjQJcRCNKEyQE#a5l}_Sl96gzwZyE@cSnHwc@Ya_yzX;ayV5(w{I%mOb4}- z*bkIHzr_U~`Exy|ZA7#pf3C$PE63bN{;ZTspEDzvKEDiOa-mO6OCRs;ooV*}PP1VF z^XJN*6oRO|Pw;YkQ@NsUM{&ujoA<&Go9DjO3NJtdKFtdDXuu;cQv)8Lzgqr`!XB0( z{C+4tj$+-Nt6PGVH+P%QJde;r56baH7?>h;NY++jRHl^}oEi&7N`n{uem4zq;(<^` z^~wIbJMnWscKKlz+a`{r*k%E;!+W#XcA<kO#4r0&+P%68t9_D4kFBWcHeqii>d+iv-K&33E@0b|H_>$!0A za)M{lcE{XiB%vEw8F=5%%(0iJ=t=wi9?Y>Hdf0O8PbX+edjV%jbz|wzSx!A>0Hl+$eJZGNUqjbgGjO9Xd)s@L&;Zh z30?x$d&$BgUSoaxc=PUBE!O*=Xb#c9q6GyMwy14f~r73DA z@vtE65>@L(%2ieAFaO8Jr-VmD(EtPY<6N}f5#bhU?lxz3&XuJiRHz%~o}~bTb&GV* zQtcT(&r*edVx9R|vYw@W=*Bv8>kzAF9v@3tO8xU^{-`IZL?f^DEB~eWV;)JWXS@ou z-jh@#qVO?)Jo&W>v=}hZ`jzHiX@RzYNh+-~DdR_yiuhlVq{2HW+j&n?ciS`Dd0pkQ z&?io{NeXt+;L+=N5Q zeADOyo^M`A@sV#n=LIfFB2H4n75WMZv+f7MDgDVexl>K8G>CMcS_km5>aiavZR~g@ z&$JO_ZeMd>Y2y^7jS?&f(4_m~K+H!mPeW~af5Kk}&=s{mVa3JVwWngijK?ifzCm5#m*^gAZ)C*KYn+#j0o-<|!1{CPw!;sz9~B-#^JDGFy;_}KM)c9~r+~{Z zuxdhuODqWR@mO#jR`g->y=1Dbb`#W6QtW3Kj4E*7yr0o)X)0Y2W!0ak>8vI%oU%kS;yqkp~+>yqP;%Xaqe07kuD96FF@oq7`v=94?{1aE8Mw&ceR_+&`(5OP_xb zm!QutiA*l^xr_@;yw|ZU)-U#7d0+9BtzTT(h6W0R|19I>_NH=0-IlNrnfL9lb1SsM z{T^6{noqNWJ@KDz6cZ27U-CcfcTX`58^K?OVY6$rcU$7b{3V<{7_rM7--ZHN3|kW~ zc7$Q^iN@m?Nz?vC|LMo#k_qE>>_gpCxT`Dl1$?!fD%drjhlhXIk`}pWgZc~sMzpsZ z4-3q{H2HCmFNLz_h|l$gEnT5Sbn&&B_`~MgOuQBXSf@nTm8;gJeAH3o13X1w1^LHt z=LKQ^s=Pw{JV<93#&0}6v*)kCZ^iorhZWr~n{n(MOepj!Y8I|Pd_wm3J|D03(o52g z51@kX@x3g&qT+k=_qjDc8AuV&ZU1^6t)Bn`qV+l0=@ZVIJHEq14Jaa(Y3#+mNnjB6J%(6Am8Lng+#&V@As~4DpWvqRk>`3~=S^D_O53$R%5bZx~!}5c(rIjDDDQ3C? zno+r;ZjWkp^IrI2bJtR>@B-wA2U)=$`C)xW$`4=CU-$SX;-hvq{cbEx8@;b`FWkb4 zk8bPRv8ss%#kBu@OUfp#kM;~8aw|5WUwEe`G{rR6 ztc%dI$E-D#rrK2px#PiVe^6xbbG=w(q`Qo>x{>?q8~m2;OjiU#yJH>?i;-Al<1wwk zv>TIvmBcUBA~{(Mr~UBz(p6XJBwSz}HqV8WEI(6Mkn1O*Vk}fdx)!ri+S>fgb4=#2 zPNbd)T-BI*hs`-yh~}1O;B>eT9URPRN3-6)5WcNNNm*RdA9N|t>FQy#%ZK;Z>lQ?j zgL(A2nD)Nt@k+O<+)NvY7{QxXQ=ZZt<-+LF8m6lHkbcxXR;OCY!K|C-ex8oQ0o2 zn?SVU2F(nTVIhgy43{48(N~sxjfeFUJmcZd9U%^Lu686<#KT8ebq<>o`{a&?v^e|@ z@c^r1i^IQVp_|uf4Hvc^mso|ojzX|FyyXHd9u{y2G>!Fj3dX}w42;v53Khl~!Xh=V zhWEk`o7?AWg%@B5WM>6?1mm>^T-RJfe?9(@N-PzHvpF$Bs>7rW`?1?kA?i-put-i8 z?dw9!;}oBrolV1umwBdb4l-yLBRp11+W{1!&5h{!Ds5WG+Lz|LQvNP8s4>k#k+RyF zX3rtCw?Yi$9im0yjm(o()L<6btiQo_aM){+*LS2@HQu(8`Q=^A=*#cnQ32#is5D=y*aHHN;sC% zfJqCu)`i}=#-%|<2EGb^$GDGf(~4c*(>8|~MGo-W%RTWFH)cnpV4x_m6BDzK*ZI)X zP?z1o#>5MAak$WabmllV|7-@0t=<(}S}6S*7RR`a3+Odh@@hD1JUlBi~?xn`-lKSl2+pGw<=54N8{TWkx!+#QbM=2TOg z@JEi1~r1e*p)2c4=qU8tQ&c zK=qHA1HfXl4b>W5QCWg3d4sph$0q~s#JPDj8Abguzx9HLEa~Lwj}gl(f1DYsEYM9^0FFW{Bf?Ng&A}!r?OefKrtwOC z+uf)0c8|84cNS)s9?ttF!m1{_4vYCL-}$IHbh2>lT+S=%Z^gst9o&EM!TpyFFd|u? zbMxQr4VnL*@(~n)xM>*N`yh69{#$NYr2IR3Jbv;LpB3H^4tO2fTtTN|N^z&pcvd)l z`%~tid1RvJe5k_dr-2@w1=EJhX3hF^j=qrI`fsv_Tky`KKfD<)QnYpdGT_mVto|^e z6?p?sZ(X6M)*lY%iqVnh1HR`m8p$%?qQlLRpNm(Lf~&p3U1bi|p|L&K5u7mwq?H~6 z5S$^J1!od74zXS959L^>XA1f73iJo!+lAusY#!oN=r;(qQUt3^?#ENW5eE)uuM1$< zpqJ^!kh`xbATp2m-+@_}hh_FqUB-u2e|xN@vdeSI!il^V%Mp*XK2ciL-WB}EWNySb ztgP`!7VQu7WRcy}>Teb2kTdnxEn8XSAdxIKsR5Y}%L<*6-F51v@j-uUVX(+T0>Hb> zq6z_cz1c99H=rU{JvqJg1#g|%vp;9>{)`XapD_gSnvZU<4$>Kc%@&BmPaXD~W7&oZ6mvaPMb9WC z=-&lBMhigfPnk0$uW8O6P0iaaw`#=8f`W<&R+c1xrRQPQzU|14P2Y$U*%1rg;+U_N zTtwZ6?(`3fCSRqH>~KAYT3FG*;cUO-JJ$1a58Dbm@9@-d0-*$AXajc|o3utIk>j36 zCUIAuh*dULJm7=1j(AU5Z#+YCETujdGq|mrm=gFZ#JGEHk)P#QjS^Qk&_x3WKa8S# z=pw8cRnkOKA;-MS7OY4doFWpc$C5ubz*Pg%2(C^s_gaN0bzH$QOeEI0Gm(4<3LuUR zK~XDx;Fj3NtyXpL)oZQvA?Sk26KFt815nz!zIQM8+qZmttQjmGv6gMXWxt8|tI4i| zuR;;`mX$UTI*oPbdtLEi{yU!Q6v1@DCVl8#d_AFxPlw?iQ882)#i#Z<`$WN>ja4X~ zAy$mX-)LY}spLpjC97E}38lM-%IEPl-zxbW(&*!HY#u@LJ9>YYeexS@USzqZ3}-aQ z%Za4;(pins%|CHPe{rGtGcEwQ6HDZwp80!q3NoEBI`Rla*2J)Ll+T~EIV0&C-WB16 zFNw^i8-)yAKTwmNMc!*)ci7y)Pl5V{n1gC#KgCuLJDktqiQzzWx*&aLtyF7~HvrcG zj`Y^n6T?^!%byr_q(3M3lc6A!%=VKRTRF15t4U!;diyX(jeXX}GJFRuw~b{k+o!f> zi@xvL5XpwAy|l1FzRlcURUunvSg&(`ukv1VHBq>lXba|1w1ei-JIqclLbmYY3d7Yd zj3ZlLI`0SBdeyvLJq!(c0D>aT+Y8Czx_Y(~+rWzw2B(WM)4pJIo{h%oC@%~ka4eb9 zgf*Y-MM=VJ(*P&~S}J;5Ydn8E;}eFH^=nPfAGbz52)plAi@Yav{}~G>OG2>QV?>6U$0a=iJ_G&A)>Ha(xqG-C`3gL+1 zKEa2^@Q&WRUG5CRBXuuuVL%uJwsS0KiwVD#0N!E}a?Cq%B*85KZ~@zhq0~S!c&X^JrAuO+(+TRj(y-4Gl37 z+ELv@O<8qkw4fCid~%1B92_>fmd#9S%i2x_X=hG5XBmz8ea>71txjHfuM<3oxR1UD z?pBOjy9tb;C-xl()c9{vly`-;<^0TW#NIXq?17%_SQ$m!uHXq&s%W`Bf#FOq7UR?H8>uT%`wt)D%z)( zqNr1f#gz6DNmK3t`6>T2&oqb3!tb+8!+pcOidA_P8@OqP{K+sZo;eYb0BIzW(3rZJ zMtW=H-`-L9j3QTQvXOQfbZ)j^@?{5zO9)A0SxAb$+o} z%>M))NzaE7K7|j=2axgP^I`kUzpGKkQ!g|$f5!!6yhNEP%`25ynj9ss@F6pSpV?o7 zn%o`h)4GaOMx}`dzOL3iCWhvBs!-O%(7aWG`C(N`Wj!%_$L-@l!y}ck-3i$n-Ns^h zg_l%jxTP|(1MPN*nLXbhl2Vz+wuf%1EXO|eHsz>X&o7((GVI5aQ14znvdo=z(BzrT=`ED^ z8hGJ$ zA%0;pM9XYwgA)qRTxkm!(fXlW{^R+|XOH+#Ju#kJv_&(|`9RfwkKD2Rjq9?nyI&sJnjEznzbN5GGV1r{(S8q2SMG|B$MAkJRFlRdpP z8lb}aj8@!YV&&5C72?{_53bPbFd4I^_q#j^=5G_VK=1cmo>pcx)*ngTwoO#!twde9WP-k=Uw}@SC;knaeEMR*L&-L&d7b({h zKo~ag;=&G*Fz@%q{omg1|NLIP$>mf~_P(B=JyG~rPjGcYuAtm`ycU$%up`p_QH4j? zki+X{00 z|G;uyz;n|r{rBL4r~Zk2O?x`ZMqQ`ZQTnf-bFp6EYbfuKV3rxHg>o@wcY7k+d*@*b zCZA_LnQT#>7apt?exz=Gg(sWujnNACJCB5#zp>8Zv07kS1RT?xM1SFIYCSyy?T+kY zGITQkaa&LSR5`YuJ_NZST&$%!j@QAtNrUqNp(^5e-eFVwoV^53$s(WE2Ss7!iV_X)=Nb4(R|9&Rc-v` zGSAnhw!lsdw7diW51y4`SJdMOLH+oQC8Hsm@p#NwVE(f;XvRYz+QOP7On(|d1Pu45 z`PMQ9_;6@X1W&IFsG&p+e9l&K;Z@d?JHV*s*72OLBr`9e8Q=%xCDs(A+Dm*6aioEd zDF`4ZRI)I1=64e^*qP_uPOBDxm_U87xz`|aUeEqX|BPZcFK`P3kr)o> zjOBZn8nl7vu-0*Stpml@kZA<7>@&NTK~LCE@2fFid4>k_opb9*HzvqT@j}N$gakeq zJA~~l(TZ!H(g$NpAQBhLNhLqWN;}qn-25MU(t4p3@M6nLYS^8uIk75}FO`6dLr7DA zf`L(B2x4VC`Rb!~AspB~cD|IlcL+Tr4UQi`oWzk`p(`onS#b3CeR)qBT#sC>tm;W@ z`5NR(Sh%FSlqpJzkNai`WU6G()u#So^?O>smIJWgRSTCg4`(dGj zSij&>l6}-WQS~IP8;NM_9zVr=G(iG_=3YDbOlO!4TS8L{GH~$lD!lkt{EK4npb_Up z55#?qHW*<16z9Y(H0RZJfOhfbQ#QcB3w$9c8gDqpHpP@j=$1+w8WY&Z+t|);LP{pUi^|`B;O+ANjlnszL*UcfgLw zDW2CL*Pikl14d3FJz4VvkBJc;6B|?o{_hI@l!z!8fUgQJfdMLw!BsvXiRU8|!0n^> zgd~HKo+}`l$`BK(GkQTVg7^7Rg3Mp;&zl^o?y3LQQ%wKIbg>~)5A*?S&G+noDl`4F zDV_=a`{5GT{~KIo`g0&)dt=Rz@ z^EVc=mq{d=UzZbOsNC&|ifymP?7@YyrM6%HO3)(#q9ybaxJd{TML2{?0WLu&)alJa zmfJiR>UmCE(Jbwh7P#$bFLPqU)g$1QyR z&#L5Sd`XW0gbCk)$I*h80fJ8C+=e=_a7qL_B1T_~4QD|ng#x1pGB#YI4C)H4_k;*C z^BA&6{>*Mr@NsiX1S9*p`D8%ca{?cv1(tO5pn+t5e@J#6Jb7YZA+o!kKwQz$A?yzBTaq+K6Dso7Cv+sR<`h*&VJxS`V0G5M(M>+#~K7!d&-7QA? zUk6dV8;Tw7qmph9f;@hv5pCI+Tpm5(8{kz%iWT@&t!- zzr)pbn%NjnTh4|Qd+B2K(y<{p@UHM!yed2vZwimai^5|QaU|PIPn|&J@MBWv!ik||p3E0I?F{vIIfdgyfMq*LH$S52Jj(8jiN!w$?Lm*{jA`YyE7>PO2 z$Wcc6I#x#dI@;F>`?`iB<->!Z_=e$>{hhnbZ?SN3a%M_Xd&SB4jS|In`CB5M#hjd( z`uKXYh|P8{^tU(4doYh@%&8cz$5oCuUF`9|?S^v(H!a>i{{6kOm_uzL+xO|saAvfJ zBfUqMBYk){waNtig15JCD=S)sUZ76vo{mtHMBp8Hu7F#wG6Ms=2a9<_Gk%Gsh~; zRk9+cu2zX`5!6wBkK26aC5*RRMH>U&LQf@Su!{UCS}7IpzEUdG%Sx${HB7Tmm~FO! zx0ix9*+A13LD6w8zC0Q)jt_S@hetS^zayc&W`D#s+svYSXXbY`=x={q5lKn3FX0}E zXxNLPvSH(SUvs2)&aAtW?aYVwOTNq+l={>)e!3q`d$?74+vCp3m1n~y=w$|L>B9EX zEvP%Z_#@4BFaQat!_EK=q_;umXcKNZI2wG%hS9>mk7H@2r+-_&O~4x#H2*F%nYVVN zWM0IW;on%^0lUPLUC#eYO~UPhfRktiR#E>b9&Juhb2}CoR_%~>i!g+ zv6x8EaU#vIm&?KS7#H^EVTD|Ji#TsUPm+Qv$~^rZ0t?-hb!+Za=<8$>TJJ?2J&0)%aDw(P<_5V8LWlE;1MW?rYc|;=6W6#+ ziVom5+0#$iBs__q!zNg}OE%dH9bgk!NZ8~%x&VJkvX7t4G{fzw^aYhqL2jH2YoVQ` zjT&WWBn$>p++05F&b=g1n5^W0)P2g9(c)a#vOcT959ah5+@q506cfQx59lfKZOIchgn>MDj!C}Mev5J{Ge#KRv`}OO^5TaSe{B@x>enK z)OgF83F9g!nz2c|@ut4W8!Qo?c}$#Rh|C%<*(?o3dE>RqFpJ{L_Et7qQS4Mk$&&~6 zZ7-vn48|@PLyn}!E3xA+g^A!AJwz2JjapWYU>+J39+y5K5(f)MX=B3d zBe0wf4=BYTO&Q_lr24n-Ib*`HA~-I+Ssa=d2Wo*;h}dowV#x%NEEKV^@IJFp+k5v^ z4UDv`2&&kWMi@u11hjxfEPDi5ZsL{+P?K69x>s~hdThyj;< zIlNo6viods*sCS)U}mRuK{+GNRps-;wV=^UmBU#h)LO#6*7^t^>l=W@eB`>Xwg?yj zBKP({%WO3opRiB<3apNeb1OUOe^D>(k!Xhe=Fu4OXpDGU>X5jGO)Hb+$u#3JoK5Xa zrI#v4kl`Y^R%!pp_J|~;AiXv6A7&}8_7P_6Vz8+ZnlgGM89hoEJ<8$SW6p5Ex@lQq zr1O+MFtx+Eg@!$3EDU?_@X0{X4L73g5yLNI{3A`CWq#fT250_FkY2dq#DW&A*Y6QD zVay}8ROUbpW;1s{(nfgdc#JA@+i;e{otX&3`J-u%yLWE`*_d2239*1UQ_zNE@!YYq zl=z9JuxVSuduO+#XmNl2sq5d=h8Rft-Jed7T4`B9$|FU-Ym4Uzw#yDx^0Y@AMu`rE zN7F=yTFWZtA0T)cV&Ve4z-S_peIOO2oTd{cGJqw5@;rt7hx_?q3}{7Oa2uJxm=*?_U+s zxn=(fM8L?qfBk_@!tgMfy@bX<=>TM`C@L zD`0+i3~gwhTj=`cLMg>J1fiFhFOUXUw2bbquNMmk;Oab*UI=*yk7oq6bMB~{>DZo0 z>ex#oC*mGIt+Ar{O_uqdn*gHv!yFF0KnFc@b^=`G6J*9P>%>9iJ)L6L1ODiWMySwZzcOCM$rfMzAH zUzMSWv&${H^? z8fQuAM)_?~kL9X5Yc$XL|Hr+(!aVeE>PvsC{zXxsX1@|1{C8^lsK4a@*Nq?34L5)J z&KG}P{*rS+*{__t{VLp*_Im=S%zpND!H?k_X2UC)fDrTSYb5Bt3iJjksYp6x%` zou8tf-d~$~^6T*!HUKRF1|s62QAHR;*lW?CXyMcwc(xbA?qcaN;iN|H5X|+VJ6J6C zTJbNG?Tw@dUJ-I~m(L2v78D49mNrC0G@k60E`Xc0Wg*YLPWix=cNyfz^Uj% z!*R;`P{6A=69MogoFV{H^uv&rv`>#kMYdBYa1*#9^ zt#X$~;ZnEH-iZH>eXg6l{b3&-K&5?(UX=EE0H?w}fjDK2A8f;!6+pe2%A>tsb#HG9 zpL%`nRxL<rXMXt;EQGfXItxEJ7N5H z#Hdl$*mSF~^CvUwVj-jy>^Cz$$Y^|nZZJ(iVHkmj+fp&1z;nw^EO)I@0&7c(8jW`h ztLZEihvlibow0$u#+-Kn{At_p+l^Fgr%20EaZ8i0pG9Ejt7n@fA>Cj<^8nnhm8)kT zAWrN*ywqCY5mwq-Jxlova5Q_n7~Oq0o1QOZb6&i+0ig0Fi8Lx>?w0d}VlXhpXrsB0c}qh+0^I8{(*uX>7{DZt!d2tW9M4WRo)^a*vDM#Z>X2pp#eK=opM0Gd? zthk9=aR*uPN4gKT)`S&&oUdz^_rWcfCV$3M1`A67dw0A!+j3i%|*vC<6JSPaC^g1 z1L$L1SG%PF- z;A@tdbk*t@%%5mKFbj80y8yid&d`3w+?56h*xT6#EB1>U87o(?f7Oi}*>EKc);wK_ z!bqw~-c%#bIVQ-__%Hk9mzX!DhQp11>WH-)u39BJVI56H8a$EDG@w5Q{YfC7X+Xef zlzm<6%Smt@gWUy)r#HPOqDJ6u4ZkSE`~pin$uH(~Bfl6=ez6G@_H|t<8*(|4dG;)# zCJ^-+xVs#k0ac*eKJ!OhW&MoS9w#^&pG=A355QtSnq5YX-Hswynj9NM-MjH7`=mW! z12i93Bg^3`SsF;6ncRxzKzNt|mx^pdU=1VKrH*K9JVKFWOuWVJqKiiBkpog|yAP~) zK%@x&om^)tfR}BNWT`3V$#ohO+;ys(KcD6iQgkO zKl}q$Hj$eU6)PIfk%%KFQ~I%oQe15j@36aYT2>@3rk+QHN0CA2V+|+vM%!nu1$tNgoBE9T$B@sW>zJ6m7&&%3|uBE35kHi0X{xmn(V z?TSN{+|K^` zdzv|S>G_s(e^Sf}hkU$CG%_y?z-YI@(?zLmkKE2gQN}W3~ z7bSoZ2NGyhq>*mGg?E@=Z=mMePkrOo0t#0PD%;4#CT<~R=>8d(Rm%@q>(@$Ik1fQw zilicI{;BK@)a*ro& zo8*r2gS+S3lKXSw-h2o5GhD&_s=`mhY{E}V!A~b4gH_-n|J*@MDU`K9v`M=iVxLL_T>IoH_?vdSNXqkRw*yn2q8K-&7$*1YC*Zod z{1s^Y&G=?UQ-mq0ik`M$@gCTUdLk|ou^#h@xLsd{Quk)tHl&s5Rtw=7xpG^+QJ zdqs&IsKouCO1u3~O0TrrPo_LQ@%Fv(sKAu&!IrkSepcEx>o0lhehA(-WeEp0s<2li z)k4yCu%ue8QC%G*sfrPm0VSiRbS^os_a^w+q>)Y%PgVPbT58 z7z<^GkyPfg2|_9x8@r_k%M~n_J=sf^nML{^yvfS^>rs?hotJ5!!rLx@+O9aYU5I^3 zTa?UO<-$Q_jWwO6w5?>xHz1AQ^4+FU-Rdf-o+7G5qGGPTSfeWXyrg=MG;72)t3sO1 zrj>W(WS=l6d)Pj865NRN3lRFP1hB{Ti_>Jzj*>Fp`WQ0*%&|&-QlpyQT~ZBM2C7U+ zWz(oC$4jd2REzgPm3F(FyT6wqox(_`N9|L}l1>H`H8TzBGrIdeXOoKCW|xf)fO zI7xM$N~)hsIU)D6Cx7HtkOn)Uy2KK4x#6;eF9j)?HMXuS;a@7D9jIWi z!)0Kwk8*^;?!sWAiKgxbkZGU1iAB#0n5c@EC>G~b1-YiSgovqwPaZ# zWSQUou`KhrM)g*8N%aa*eIu!E?^g|7v7MyaLR4=_s-HEgn|Pm;u-{|LK{Z5DeWp>> zRUKgzQ8|dppmt5ysDiQGu8{Q;QB{(%Ueu^=C%t{oElgPz@ozP>PD$3{U!aVCTJiBEq|CR#k^Sd2D9HvW zPYNpU8G~H(tM4W6%XqvxdxhjZx0jp2H}3%Sbx~~>)nzbvS*)ZzE$x$kh4N{)%h)Hs z&rZTpIh?i-Qsd)3P#~;B`$|F>dMv&qbrFUTd&O`6ZLag+i0Uac7t^a`c?iEXe zW(Ck-lJb^fq(KIxzyqD-;DM$779NO^jV?Y?a9lC7@Xj-AwH&VsuIo<#8t6h6UXGs3~+gqlek3g|Lfhyi4kD_UG2-C3%+22^s zEsD=3!*BS@s`{;6yy|Q`a9dIhCj-4nRIG^)3M%hWL2u&G|412jDk+|1M3JtueafJ+ zAG{;^rjmieh%b@&5`6Me4XJG6KYc^;S0&vKUt$J6hDWo^+E;{u0r7GJm$M9f5G64G zcCnMfDQzqxW0)WYc!zf8?;T&Bk;P|xhT^-UcyG^Eefy&1wo%!A!41FuyClrM?==6-)$UibQc)mp zv{84vA?De2ckcnra<#i>)&vO_8E4{#XPt9c+T?0i(XaA5*y7AiZCfuT3R+MZIL;5 zFiNu|y~-s8T9Ot*(w>VQ0&NZB18pfdz7WS{eAez5Xd8rM1r8I(lbr%>g}MaVdUOu7 zEy6J$-^=0i7#%p@`a+;B7QfH$!O!VC9Rr^av~|F>IrvP)=Q?~=#Bl;g5qz(PqZQ6A zygew%3m|DAl)|LLn6B6*J^lCJq|eA#4_8zOmjTmJ1{>0=qs z227)7_JK&w_d{0IB~sQ5$g&X0L_b&uEt0I8z^WmVPx!%oa=zrgM%?uzBKgPG{7n%4 zp5(5Q4sL}=e(VQ#3x&*eBW{IA4)BA!%N$vDI&mvRvbrDKZ#yOTH^i+F$qQTZulI5V zj9nydg-EXUgL~IRS$4(g;1-DF0X(2(zHwgoDRv#PxzZRSnFBMt?L8=HCkiK^VIk}BMZ5-Led@<&01 zAwaG%l1#(`lYCY|WNk>w35iKMm6SYeT}1(LqlteZ$0Wyvz)AXM3nz&|f_7$kqLMj; zO6CwMnFCa^Y$+u12}tecgIXn%6x#C*@_u$Ri8o%@q)ZXnQ<~yuQX))JZPTdUe^F93 zC#tIw4P2~I6;)H~^;F^>P^INOl+rUT=gE{hO*ts}O0cDDKaKU%PO^XxW`K2$ETFkY zm8M44K}0oBQaz$k^-7SkhLN(ZK!t8~sTAz`04)LpDA~`sdt$bLC2s+Ws5J?g%pqVh2f$W>+j8M)3YyFz zXp%HsTf)-t^Nrjdq~Sl93e%W^?$_a^d)X%>bm!El{!-B0!P%f%C#m{rROt%U`kpkL z1FEzfcW5$)pvfG9CUXEyK0!JeJTB(9d&UsT5w%d?Qvp^Qm zMk}CMEm^=rcyV6#2vEVD7ZpL{H98|2uYzbicWg3;u*n?4CUbyIUVgyR^}5DNK^HuSiUAkwz6$RmvJb71}MSUel<)dt6erpc0pXDlO*; zX)#0U86&u)#agINQEV<)Uy%ibX$Ab}FR%K|44 z1`(>01uLeRA!#`PCpY5?OULc!uyi~_reoHa%fD47+!H3t8%kOolmOo(jq19>XLb|S zYDv{oqngk_%Bn(!o+hd4X;jZE2OdvUFG#8ojp|L+8IBND6QW{W=G-?*`@sr!uKOma z%1BvTG^zyUg)XAHEMdS8G^)7@f;~%AyND{1I_W5ls^){Tj?r&{YN?dfNuwH3N>VwA zY8+89$E>MQO;CtWKRh3hogife3M%P50ZpaA4J5D@NZ}UO@71)KSAG+2F_^i94p7P{ zxJCk$D>o?feRiED1}qBx{T`$qk|5(0LFGMnPy~Hwh16)ryWpKKc^&!kZZ9TzFHmjz z5I{*06H(a$D03`;5>c}Qi<%cCKzVjOuY*4$o%0GZ*-u8kCgH&k3n1kmg$_MRQdUWT zvWJr5WxPa|`V`Oa3o8$%+76W(R8+kAj@V*u%C;Is8q^?wQj67lB|f<`gIh;B&yGe? z0T=cw&%P}2$qxjnKZZQ5oTWc0u!7^0=V_2I_*dbAxTk7!?oP|L5Xx)|q0F`r%4|X? zZ*qk4QHfB7Dn-0lksu^%ggsv+o(bf$l_Wy><2v77VIh>SUy@e5N~Sm?5z2Xr+lL0! zmUq@jQ_dx?UnVie&Wb-*TUw<*by=2PluGX}xkLTn{_(uz{+PI{afGtb9mIf(Cqx6# zP86a67)D7Auo*!tEt@b(7{9$`{Dp`X9HV@9t#8B8#KFQS<4;NjTH)S7_Hsf1SxkOT zNFWov@~5QQM<$v?RLK-aBUL#*Ol&psFQ=r8fz-&&NJbRNxbU^q)k6lAJ=m0dzmtgq zi7%1(zVgXOHN+85{LOxs{Ar~7HjYu&r}4`4nEmN6W$-n8=RZz0L-4c~kjGDl379epQH@|qgS7bQ z2TO~M=8a2C3c-}e4+@y_Jgs!MByGcUNcgdjCF%M}z?8GczZ7WOjU%vMpsl4iCgC#^ z$6Xvvk^*g`ab)0lYe1mwul|9yy7+twpP%6vg7YEx95@nqCC(cq^K<%6NAV$nwo5o7 zaXgIQp2O$&g9B}2@wo)Y4jg~ryY*~>e|Y898>qeO2)vKsm04JcYqE85-tfv3Sc8HU zlow{W;g$8j$lrH|E5IycIGNf9UU~lW{AG=F$tZmsvMjuEjUTMvPM55uQ{adx5^)^n z2X}3Syu}cAJ<0uyAKb~4W!b63t?+ z|5VUfiBxbayt0WO+&Ky~Yf9V-ue|$N{`G$JRjK(9;ud&irMvLcUw#2U`Kd3wvesla zK?-wO{>qZYR8_1;lF^gJ;|c>yqJkA(8S58+^h;9lw~1fjmBswx@7q`MZzFz%S8iV| z&E`XYE73OXEoEFK849mV%Top=%jh1G_sJ1de~DMd3SOcbs1U7WqEdL}&(xkRhi(J~g4yg*SJhnpBL&Nhbj|G*&E5FvLj;Iw@rKq+A!7E?Y zI5rjG%u!Ykj`3YZxt3wV(V5P0QZm(Y0A_Y21=7+%>}6aQ3*6hE2TN8y#B z8r2bnj`SV}Duq}6wOrX^o&usWs6q;_+^JCo2g?%YQi;Ct%6WoIT1>;kx{=E%ymEk6 zz`qa30zRh#1YYU72#Y1`6BhFuul!&vOUF%QI)*P`|DR7(waXWkJQZ!s$un&hF3PysJ>TFbQ)19 zyz*g zYE=8LORBFYf=c0)&j~8&JYBJYqv)x{iB#Z~t;TK+cdzq^8z2Bq)EvG=L z!Yh9kRNiw3CCnG!k{X3g2Cu>^-^-V`>@`_#6RJ%?@yhzDgnUOjjnzt{@JT33;gwgG za!dFF*0s7IHGYLOR(Rz~CB@6wkSulcqU8OaoI&B0Llkem^_cgEl(K^~@QqhKBBV;^ z2~!E`1erkLm6ty9-vm#emI|yR1q5E%_$plR`(45X?-#G^rxfvGMSZMtUL~IWGd3{os}6hqCIqRHuo9g;y@#Db;_A!iB;sKNb?mL>m<3 zMtizyc;y6Djt>)C1JWn=$dbMx849m#;!_5d{rv&SSC^Vc;gv;w@=*=R!H9pRfW~ke z`vCC^ymBgySB`EMCca<1a^hm&X14sZ*SE3)FT4Q-6kZwQ2ltTgCHGgtnF6o;v=zrI*V6@oSKc|{j#u_Nso|B04>6SSW-ozP()wM(D;tm&*D@?E zHkz@}LZG8Hd1;Hx##9%7oyOO_^wk?)S!)=>D;Iod;Xmwl#?*!R z`%jhv%!2xmseRy;js1|deUyySH6hEwD{X$TmQ=`FU$AO;<>m$XS7Mw(-sTav!Ye2H z!JVlVtZgN3g;%!rgZngcuNWfUAZ~?M2KmALw*ud)C4yVwmAmHWU+;P^$g+D7x56uD z_`z)`(9A{L3a@PM2lp!pvh0n-E%3_W+3?dRHw!=Yg;%~lgiVlkNPmR{n|bJcS!ExI ziju`pg@LW5f)!r*j$iz9)MGAx62HPLyZOccd7P|xnZDpxcxBmq`K?6jQY+P3kPL-a z9(XS=8&Lh{w3g+MAYO%6z9V>v>Klbfu;pmU-`wm+(1;xz^c*|Jzj!%g;&ndsP;cCsZvP^ zg;yqNRE-)*s$Z$93a^aPsFtd^c6TZspVf6khp>MpZ&V5{pSUfmhZf-QM|*S;RiYFTAp& zCiN|~=H>kXkgD*?8XA>`=cV)qmBK3nG^%O}>FQ1OC()+Bun9yk7!iAa%738iOM%#`TIO>25B)35Br2%PT`dqf|Md(+&{8_LPRC-$`glS zvE>_t#r(!AFZE~X_<~Hw46ih_@&^4S%PURBQF!GO8r9nht{F&F3a|Wku4?UYyKL>P zM5XY`Uo@&)3i7S^3aAubxkjUUMsKtW>GG`=JjX|JNc;z0AD*Uvh3V0P%3a|WF zP)X-m_K>XT^CVEf!UGh}*&S6-jND^G!;_;-?O2$@K&uiP)Fyaxuokw>hPGD=WM3a^~u zQwEh?YNO;!BNHjSvWrhXsv(t4{3iu8hJaX!bQgH#p(8MH^)H2q?-#H9(V4%8tolS& z;ESP9K;f11{NUdBspKw7+zPMk>Ie7Zt0niJRC$G0mi2>s-b%?GMop&h$|KYBulGNn zN$y+Ja00J9xetclxs?A#cx8oc3a{)qOW~D2G?RE`_5TRG@@6E*D<7Z>07F4Zy$wlw zX8(%Y#x-UJ+LCZA6~}3OhR+JL^~SLP$59+%vjc7a%)v9=IOgG)h3|HJ?xO?eyB7!A z8qW>1z5gCRr|)#U@@}B5J+95hX9_;o;`1>a$8i+K_Xr# z0bd`Zuio&=*LyL%GH$IKUU_I*{vPnq02x^m+E9c0z$=}8$SSK=u8oB(3$Kj#gSDqx zwDvhzHN5gcKe+eyl9l+KxD{S`aBBW02vG~xLfe8{;gxUu!Tq$t?P7^r;gtz~aJN(& zQ@uvq3a@mdAe z#46#ZzVON)o@W!JQPN)-URhNYo5xsSlfu9PsbGayo}D5qod^GKjiloBh+pBApZLXJ zsDb29B7TKe_Rp6e2``Zn-U+o*Z7#`Bcx9zLWf1Rg>fyF+tp0L+<=M%+{zO&cDXC>h zJCvaC%1wd_!+~5QCYh84URgz9|rj2^^^a zcx7R&lFum!Xk`b8S9s;|G-Zl#_3Y$UQbOUCYc;CrYN^>%M5XY`*&5Z~3I_U=O3VkZ z?5eT8_poe{neD-<@XDt&s^My!okMCUyz&8!s@@XC|>Vb`0qW~=~s<>!;Q zsq!Bl)>q&_d8)j?D~%l}HI0{=FJ2iVN+TaFrl$Vo;~`Jsl@&CqjtWM2gGyC+<&BA| zk$b4sahJ)u0aD`#y*<5mAeG+x2*%46e|E%vEL z&niQzrcOs4TB98Asuj z!!)Wt6o+y3)S) zHCbY%=Rl?K%C9skLwVurM5XY`nHtrk3sTl0qEdL}0FA2rK}l7o8>kds*+QdA+Apcb z5S79!%WG80KS-*s37}GV<@K?=j?#JlxhqLmkU)V~{<#Tm@!LnjE&ReO=L^vkrx#^N zseklLu0sk{2A#SQ}9V9 z8Cl_#a|$5kjKYeFlN5zlwpCKRjF-q#?`@H_?M<~+c%@zO<~w4m`;C+`fHd%pSFRuJ z;XE1tO4irAgH_>`GX<$XhWtr6OE*$L;FZT{kkI=>;ez*zR|Y6WyjYRoBx{82REZ~< zd{*I=n_lzn6&7Ck>KbW^(_{*TSEea$9~w|wYWqD+BCl6?WsKs_)s|N26~BP&(Dx*FJu=9M%-72S-%TgTLSh_hSlq zt4rJpudM6`ccNOb){nRqUis&+{3|_4;dbv3x56uz`@#KYGg(#INwm8_BZTd6eI=lH^}Y{0gsJmoLAS zXlsQ_8K+5x!Yha8DT9)29ZcNC44_N{s=vf5>kD3@>hY+gN+c?USC&>KH%Z6JPuSAPE;oaDo|g_9Hvuk0iWrb>RSAfVfgAYS2>H8rZ_ z2c#)N8-hyVm4O=7QMJ@;JgKVi%2R`RRjI_5w`9V+NhRikS1!|7v+qgPlca{iE5~b8 zS!$eZ5S79!yK7Vn17wxHAY}z!S)1~nq9@X$pv1P8Cvk<$8_k&R$vKBr4H2UYRDiq{TEmES6kO;gtzm z0T*`50zRYy1YY_2XRw$-i{7X!`i)o4Y{t@YoJ_}~(1}g+WmWBxYRS*%q?N)eH)~Y& zvZPie$b<^7T%b{9s#S&kh)Us=BQ&b_l>=`iDuq|ZYg7kSXLuwUR0^-Gu2HQ%DfJpo zR0^*ws!_eGyzmF2Qh4Rb0m>3T9g?!Dwg8pFD>F2zK^rC2M50o7k{B@DDcX9tKb%OW(l|O3$HxiUsd_9kEGORVj)%G zm0Jas_uN4VvvW6@se)RASK*cE`SKR~T9#XrDqc{$vZ^W}-;qv@Pi0vlEm4-jD}PJk zmhcCxdv>*y@;qs*@XGm0ikGn^St|Q8$-A1`PT`e(6mP!uNc&hy$si4U+Ji&u74ig>Z2K2|xV5>F=iox&?i zD;c@0X(5K+DO}{~R^V26<$;%^DST)^ZK>_|^b_$bymFr6_gVUoh0=sAsUZ|z+0_s3 z((g&`KZ#r5m7`an0ctr#1KbZ@dH6+H^<1jc#KFQVXFH_=Qz%?0yz*@!flRbwo}{u< z11Y>RS(W3%#MXec%uFd`CCN~DWlf(lsO;4Wu&YGPqwvbVUyyb5Q8w|96VMpeS7s5v zz$-`6cx6|*F!BB3l|z*Zxy)?&XS;E-;++gApzzANesK4hAi0-P11Y@npT4sCKFi)T zS#rNYMpt;{IzPDUPLkXi#I5kk*Zkmq>kY~MJ{ex%mD_08^YR$}8{w7TEl_ynm3|7Z zd^J?!mAfVhyz;$b9IyP8E(pBx;v#pvvfW}0uZ;hhp^VuT1ztG;QH}7*DAMBh(Uuk) z&HB(nJP%%;m$t~PL8V#9XCRlf$dXhKlJ?AQz7EfE}wWsh|18CrUoZs5a&*?iIyEfsua$LKN&x80ZgJT@d zo8a>W9Mfl_U@B%Nq4#2+dfH{DkEiTjt(m+Zts87HP z>ZAJL-A4Pi#fBF$BTg|p7aISh4R3-CGhA_%!_8}GO)PF5^cWeRE)+&c+r!^aPWnX} z&Rd4_h&kp(YV}NGN@hwc!`V5~aJ7wybH;?l;nnit2L41CjXQ>#{zZO76Tr1Snt<8=-M9T4=MwPSqxqDt`~SbQJk?*~ zjh)-Sst^0S`+t#K#;16q{2%=zPyhG&yHES?&Q<@R-YVe1FYP}g7yHxR*nQi7el7uh zA1Q$Sd*)()!W%oc|2sk6{omdGNIxFVuiGECcNN`1@ka$8{yUF9K7RMGpYs2eGd&&X zN?1Pi*ZqG`F7_|HvHQ0Fm|OyWE1OUGy8k!H#lFNFJGXyXWq+UcIF?IbzWV6)Sdfd| zyFPmPZuu~Gd;D0Y0QSh;9&^31b9>zI!yW^3RVZJ5bbHjy#qM1npY~{+OTebk0@&kU zm#2GA^2RRg5$L^tHk|o;1N<+=#|L@!&z~qZ=FvZW|Bm5kkQg7*3nJ@g8tH|MbR;#5 z(=Z;4s~o{!v2d*m&4BPf3O_}KByEohD+EGh%!g>-duJzj(>~MHhw`MI32?@MGBzmA zSRprE*yGa~MR2V}b!= z?uv7kj&p8nS7Wo|8!LW0oLO~Gh2*YG&1b)@6vn>2KD z6uC{6e$1o36SL??tIB^`wT+~@yH`1$s*JgbqsDG8gGE;Ba#pR~d9zm-RP|k=>ND^F z6tB8FnUz$%RXxA*A_#8clcXJSjdu=@YwIfNFwzHAj(50fZZ;a9PpMAr z9&Wf^53*MT%7-vP-o1~!dpoAevGDFJ@@^tZAB;l53&)P=-6Ly6|2SuBa%}2cH%!b2 zRLEr&EsZ8dJ96^uIqhw>xEecCYGF2eVjaT0E4WNXgw0+t%9fNQ<6C+WBfTwV%2{C! zyp|~SFC)D-zOnMi-~U(DzfXbczX`2M^{;~Zx8n65M<1we()O5;5S$f}_0IOFH`Sf~ zF@LB06K*(Pli_VU3vX8XqxRRrTVZ#1ZwD9HNiNWUyTD&5RYh#;6_hmFExH-p+qaA8 zX0^ZS>V2|CAVs+cHxC~O6+U2vu0Gi}F=Q#{S5D`L*DaTT3e~)*V+;eWb zY~K_Ul$KK{wE~)yrK{PvG`wWm-9o9w#ijV5*-_WG7D@@;fVlv={yy_c2aHXA5CaOitAZFocZ$#-hnDEt^fX0gv6g(et0HH->S^Y49I+WQ@y zU)jq;{|a3H-edF7e-884eA@dhrvD{;i1se4m!GfxKflTNS1bNQ|IzBN^r!aSueUG0 zN9x~sdjl^#U6k6*4NOFfde+~;+HdukJnA1kA^-N9!u4;j^e?OHpKtwJasE<@|IkXW z_4m-fm%;SE`&u6Q&l#7${;6}B{cA%F(SF_Z^7GaISRJC-R{!>S)jyhb&bVD(TmNO8zrErwtMjY+d+5KgHPiot zk$JS=P(SqFI*aK)7|kHs@10KzqW=`mUt95a)A@bsf1(xBzjj{w_hrE)Z~Le6@=K}m z4=pc<{?Bs$y=Vrj{yM);{VQ<&$ED_B|I(xL?>}8#%>I{V%ks%`^p`3rU;y?6> zR)3%R_iD-PUn(#C3$f0TxBUZn`7>4d-SqPF)qm>@R{!>jzpT#hQ~!lAO#j})^RRy% zKlJ}+I`@CLfz|#WYxc`m|F1cJZN=YB=U4h06QhF?Fd(x+7Ja8lwERx->*b%=yxL3p z@ytI9Td?}C9+pS_e`B31@Am7*_1`;F)qhz*>R*NP&s6-~bbeKTkN9;Wn(2QxIWPU0 zbLOpo*J-T%R>KWN`yEOY0^??pGX{9otS>d*0|I1UnG;C~Y{l6|8{L!gkD z>+PcZ+Rnp-gW@iJdMxH80K(SOgu?u*IckexZX}-;Y>&eBls4P;sFG~pkN3(C;x$cA z02h!o;&uh}Wzvg@X-ET_H>f$Gz`NY_spzLZee%)g>_Bh&e9rol4}FAxCqDEuIvsyrao+bAn8j`7xttd=9|8phx{Nia0}n`D~GzvXY>!|qG$FL zc!CF>-NkCgh-P^=quEC@TSevvddF7I%Yyz3Y8 zUoLMzKIQG`{oifBod1u#H-V0#TK<3&lSn`?6BY@IGC-6lsKK}dqd1cU=z$3Y0f~Yb zMKLaDl<)*Z0RzG~j^d6x`t*T2u7E3HOHh=6J_T14eNMmy#03z{_p7SgJ-0iP%z*KK z&i9>C<%oGMc%*k{I>Xj&5H4g>#$k-<)QyZ&HlHf`a=K9KF)MqqveY;L>x_=4HT;H4+ z^({HKdG(hOqrUQHu5V#Z)AGz}=K6AD)VH~$dF5GiQq%pL*Ua^m#Hg=$f9umXC3zC@ zyAkMZ1g^o1&YDDQ>5Wd}RD9#p!IT897ssg2!!)pfcC)a-vYO7!1V&D@P&J$wRpYTuCKOuJgp5X_m@3{JZe9Zo5jra%a zpAftLT3i3!&1-LV_KMm6N&jU16Jpoz{wM3-*)wMUYli9iZ)W*Vh+TjAKUx3I<6`zd z>+FBB|FP?zXRANEnel&Y%>H}+$@(Y6u0K3fmw$8jKPzVcbBFwc^-qXh|K`E}VEsFL z#O(i^f3p4wvFp#a)!)qV=FVec_J3p1KPdkRvFo3Hp!LUy_jVnPt~Va%x0%OsZ{~Qf zk}7RF-ZO0aZszfx6ubUh|39ej%FLMkFSqI26TiKWq3=|xx(R)|x!(QIcZ~Yxb#J=9 zjV$Npt1l}?eRG?+z9rq7?w`@j^%*hhOK9f$Hg;{ge@h0@IB7opmBpy9e1GeUYyRU# zC!4lMS%z*8_G3K8Q~!k6_0J!u*I(Rh_Fz|+ruAFQ^){b==ftQlwVCV7h*94%U-RO3 z;ZaS?bN>F;7Y}}NsM4nKyRksW&wj*DG3@)2Bb)B;93D5#haV$GePzvD-^R{O_s`wT z^_9h_Z{vXG#p|vkn(p7+X0C5ejQWgbt}i1-eF@E6-@?P2mgkcG&8xrM81}6!LmP9xbO2{8^dxrTYafZJG;o|vFJTbq&Xy##;qse_gQfF z4W6gt#p1fpul~zA%PRSCepP$!Z}5C5%HL3NxDmwrGGh(AWKrcZlHOI9#U&c`w(213 z^!-U5IUg&h?pO-FXnfkFU}{UwpTTpO?@#f|kNkR>hY?d0+yO!Oa8o+n{!>?Rsu9Ab z1YSepSF7=&^&#{+TV<6y{AkVI`kBkpW=_UgMtW%uTTU%JbFOpMb;l(|zEH87-ssKC zp6CuwR4H+(Il|i0st52X$khW}33YqG3Xf3FUu57NWdv6`1MjZ`~Lc&^pt-OZwZlagQjkJCnw{^2X$xRPh`i{ zP44hqRYYe>5**{=W*kRdAS!LvXI%8^xp))J$SZJ7>>-V=;&fZLWk9n0qI(*@-M$G> zqefTkklYVb?$9ujY4{kaX;y$s9G{T$JKlcA@I4=D9i8d+8pEJ-Epeq7KXBuS3P&$(Of*!X&FKOa2{=AyBO5CB9fIF;^xH?||nvXY9wH%!4 zQ}o{##DAimi%>?YFIdX}8$`n@y9l_1Y;%iXdtq}uMsOE>cpw<|0k(Om1lSrHQ2yW= zKg?HfJ?j|+@{l01Nd_Le{Q&r_BK#UIMuv&sDth6RI2AjKf`>|f@!1fx)qo0ycJi)9 z!)I=&$jDja3moJ{zv)GHts_O;ORwst{v_?@UXTKAUvN?V6+O*+7}93pvR?3)(fhIQ z8hQDQU%J7eiW4$^<)Q|`FW!1K@r#1eX5pH^1b^N@ciK(3(hw~zpmzuZ$(gt=A~o0O zG%-7ZS8%CM697_=i=GomHv*)r6kJ<@^c9u}!J_ldh#TPgneWV@{K1l#L zn;p@0nkzZe3kXn}v~--=jy!_?7`OC@<+i4xL(UpVh~#EV7-$0v^gRh>0Q;`*F0=_u7-VnYU1;KH_7X{eiiTL-+sYErNc4ttM|l? zU;Rni%{?2z?}yy+1IF*&$X>|!y@dU!Bc#H27LC97MOjH}3fV?eG6@fB)ZLe~sWu?>TIL zOMFY^`oyPk!fAM>+aKIRm*C{BPn&%o+y=aAs;}pvIE0g71j@oWKN^AZ%|>9-Mt`8R z*7s)Q>YSChTf`R}?4rcMPmQWSagW>zxng9aFGx>qcQe-dZ~+ON=K4CLXO)px`>!@e z_3C9b^$HE{vF$9pXP@rNtDcbJ3s!Gy>C3B1o1H|h37zaQs{WT^%=&#I?s43=?M!3F zUkP}p=GtQ^pON=L+RdNA)`f391hM`s#NpNW%Lq;CVN`yPW)Il44KtPx!sF>NB9Kt) zQ9j%yN|!?R{Ln~R7k&lFi-PAMHaNqfg>rXC8qE<0AK!6a_BCJpn69ivpKzEDCw>d-CR@z_~R=Azvvx)Ld`CI|pIJ zLSN9B4{J5g7bshZpZWL!?Valj`0#ruJzIoy%aCpfo-M-<{a%DLNbke%p-WI+4a!@F z-)r%EB{h83^$?|>;wD{3NBQ}_7F-8W;S1u@mb@=2I*WbA{1^8d3`)(};8hnG<$W=6 zYfQgSg_q2 z=pXh4ho$;xc3!ZnC~!q;QJ^P&?eYZ%f<_Tt3WT zeSvc_e4$}kgw62pzoDIS+f`BMHR?lA=t260k(4%T5-%KK{uogjAsH4Gl4Ph;A2Il* zs*YB4v*LUE_)`~ZVF-Tjry;nS)a~oZL(r*R^DW_~24RsJgvYh&h%tw8MV6tMhGQuW z#ktgjKwsZwE4eR8)pYTWFO+;1HNS+K?*WGfVwra|#^IwKX&lz&&^X*On8zW%zlb3B zQ<}WZ+K@K$Q7-e!OpiY_6riUNJ#_pz<7q{5Dyj~h(hW4t0eC0(Cc zi(kIbK!`ra7r4B(C~)n@qQI2RzQC02_<`b1$FEfUKuJ?FF#X^G8TLUrK2te&a!)F^ zB~E;mZ65U+6Cut2!mmsbnN!|0^jjFuTa z(~R}IF*~LBuh>|>)#$mLI_EYp*_chUL3pTEM&54|;GKS>akV{d_FKeG`h8+@&S%m5 z)gyQu{ybR?Aqu3ixCDQ-1^%i)`K!0+F|Ar+sR;``xDBx9@^IPZ^lEP!Ez{)~!I7{B z>y7n$jHC^gLG}l|Y>){$AtGUrdyzHnN+ULue1&0KS9m(>&6^R;F@kEe} znlfk{I^bfWh)r81jt4w-t!hJq_AT3;1`)&iVEYj<@osbM#z)RPGmDIgP+2VyiY4eBfiK&xZ$P(O#g&Za(Kd1;6ZQ@ooK5%fB@u}LQsX_VwWD9Q5{C|Jb|EG}Yf%e7!6CeOMK!cor zGMvA%Iqdv%X}AK1Y;z3n1+Y0i+Yt~ao=8BvdSC>IDg;ozKNr3qvTJkvWm)iH%i#CN zf}-_(_V1AYP~ESSN<{wp+BOxb@SSS~$E`Gc({c*M#q6_3!-kTpBv54O!Pd&C(8e-L z1llSp2Cq?Q-y0p;(}e8-yjQ_uBrv#h>Z5^sIDva=f&#ZED!9+5#{}-=QHY7F5p?4g zsp2y7w`~IWW%OK8aioq%4vHXwkT1ii4AXsl3?uKpsx@IPsVf!Q)Cc6@XHi@`$$k1r;chngnHE z1Ab z+#Ww(E+)MA|2jXn!)- z_qyCwd>icSFFX(5kTzTPk}wZnYF*{n^H7>U!)+oCDJ2pkD4Xn1mIPD5J-(`XtlF#MwXVnfzv}BGgdA|C zUr;o&nv-y|k^G37}^TzjWF2@;vBJ{T6&sL-ozD<+k zPrkf0dH_n>Fi`@~6~cZMzc8p94MZQptUon-{COg5&fkeYpGhSI{+3Ay{P`^W-~Lb8hrY@_T!NTM?8Aeg z*giN611&dY!y~d9R22GY#3Xn|VEIU`(7Lhr?GOH91TRZ13T`%fhW$Oa8&&&~t;uSd z8JmXFX7*FY!l++mVAe?!Uu@>UsX1-pECyV7R= zNkhNt`(y*FKWfq{>poay9Rf3tb)Su7D|-B{5W6yptymXMrN_aIUfO5$RsL@~Oeaay2Fa{c1=vdOmP8xv(wg z@FchLo9#{7mRy?R_T7!z1GuWZbr*`{%4ij(>O0Idw$a1`F+0|pu*QQG05`2JVqpW* z-BkyZmeabEmRt7Kv`m7`keNR1aE*j=Mkw`QZ*Vi5HC7A!!QQm*n>OoVk_Xbc4LU`D zKN6N2_+R+!bD;>r-*}x0L!@ zX7<->VZV4t@!L~Jr_J1sWF z^6|rH9KQD3VF?WK%>a2AKbR7xoM|<0nAN=1w(d_uHqw@}`{8a$B<)7~zvWGq@8_$n z{xcP&|BX~2ifpv}v5UF}SR{1A2QvR3&D}U#+T>hJ@ zO!;hJs-b-T+8JE|w)UIn<LtUhR7Tm7 za0d61E;J7nERj(L(0OF2g4eEOG$V_{HD_{7&)Cs|f& z`!>?r%aPw46soms6T)q*hAKOx+S`2k`FY3R)z5QMg07!aSD5(!am0AGTGkP+J3Ab;okEkqelz8d)rjtO1@I}W7Tt019nAb&` z{cS$|rcoXC@wdzzf3Lpx;yX z+2seJC2>JmLQ3hx6kW@I?mUs#bS19>F4QJ3>we7@%cx0|e-l%jf3xJzRr!;e$d7nH z<-b3YzgF_I?}ols{6w9KUVnj=|J+Fau;kBH^;b5`@4&ZwgR~NnD`#A|+)lmT125^X`vP#?Mfzd6zO}fxrrN?m{-xtm&an_|!j5{d51t%Y-H` z!6p%c*^F-!5`JGn1ErJ&w=O)83!+ddSgl7(mVGeC3r&RFa(uRsLiZi`OvZNF7CGT9 z+WiZzivF35D_U3XvwbE5(!cg?lK#P<<}lSi)hj;6LyZaz-WY!62Xrsgf1`r8_4N$Q zO0X2f$8Obmb=ZgQCn`!$cr{@80ely=AYlOcz)E--&v5`JsjVc5p)Z+g|J z-8P%+v}aNE!)>Kj_Y6iFjL9A53;62RTw%7RZ<}C3%S?R81V_y`Ql4YAJho4tMC;@u zZ<0<2FF_|?X0rb>BY-ndmTtvA4PF@DxRrHlx~4`u>F~!||4e-d{PtTPJKtb^z=@=! zqNz{>_WyK!lmLd%$FlJ8Xe#uvtSJ~;`e1umYy?w={nazU$XQ8KR-+KxRCIg=vl)NL zpV?14@8qjrv*dl`_WrTCYHL#3Ys;5yJ}A`Mb$ zgI=VgeJji~Kftb7U;=>+Hzavoxx9Wj=8pYE`HLiIkYT=+1Uw!Mh{cJ=zrKlq$H&++G9FJClBCjciG{~+7c;5j@m$8R z9gjyUo{mRf19Wwag04IZU7?iwj&S1fVdmKJxK#1>1CJM-8xI~8p1deO2A(b#51A@> zN|3)ua<9H-;prp^6LmcO0pOW<>e&DtyHT$b9Y>nzK-rTIcj9RpIL;goDqj3}N{t^+ z&u@-_r=f7oeBpX1Wh*-{wr|z1T6nr!NF7ftc{tkf^ge?T2lqAmwi`V&Z1%01Id*hx zQ#=}hi#s`Uyu}=Qj;|GOKk(FcIMMOG;*oUj&v52=6dY%c6^a)>p1Q}6r!il~z*8cNg6-1-;u%RQ z*S&1vsZdBAPfHntc0Apncsib*LeK1Yx{f(^bUdhdB(bkLI&*x-9D9zIRu1I=WBbeH z!}kME0n`}-Pw$FbQ+O(szesW&Ub66Xr(jOU(@3yPJOxpU9Z%}$llx8X6Pc{*3YHTEGPcf2+pN@*ixG03gYlL+!D!D1l|V{FQH_H%w$G2TflRsrKKMqFWf z36id5rQ$%0dJ8?2@{OoD9l^TA`$_Rg951yeca0{L$I?uOsp@H-Q~GmXHMEd0PQV1E#=(kE}PM`Ri-05cy`Ffcii z59EWOIy~lw3Y~HN{C`K{`d@{%;`)nsMB@6~Cn9luuO}t0H)D9Tx2|1Ge7+`bQrWw5 z`HPfu^mB|)3g90%Q5*D{3b_<4LLe!mAwGvjLEHHz+K{6w+GV$pJ-~4yxw1#7RAAJNpl#&S+$c!Z}01{^#JZ}15CME+2{oSGoYzBW}dO4CN zH$dg#QBZk|h00LMBX0N#Ti1Nb&{ z(1VGgO-u!P5Ya$y&R@@15W)Orp)JhM{V{_1ix);PpZjzK^APFe^q6=*6iH~gUgjUu z*?oCQiKjfxcqc8tB%`1N^I21I*MUX&B*hJafbHnL5F96Z$15H|^hK95$6|1tIX+Z8 z9q(NV3Ga(^yq^qK(|8BwJ^0Z-h6|(M#D6K{|04_kfNSIUM<<4(c~B`~-^Z>#p8$W% zQw(?m;skydM2J)}=|7prLt#2eIF+@aBl#%i*pYmk;*kh{N~7BK9KSNh zp2Nj$EKJw2|9QR*`@iAOX2X84;0#80ARoV@fZN3O-1!k~w|~sSFR#-iZ;fDkQsi0P z+Q%cLo>uSitx$2Dw2{kMW2nqMZA{B0Q3Eu0Snze9r*K ziPn(fk#dHjQhSb(;5c(kP&^&qXL$+V%XEAX2dim(%b6>+KZNgB)8cx#XuXN#odmv6 zN`izGgxCAomvNx+um3Pev%xJ8G8cHA$_e}~*ej$Gk<4Ta7p4=mOIWHp`mSP*9eq<2 zk3{l(8z)|0VU9h=M#aQr`~CwH zWg&(ayx%0O=1#&vvq^6J5U%o2wK9}$2?t0H`~Jr>SD1cx8Nml|w;CqTDIy%ajZ_?F`+M zg9#WCQ+aX_QH&k=7_}}v_udHRz7^WST;{hC%w^nX*}}TdL7TCwvUfAk*BJQwpcM(o z^yiD%8}Xv_C66-%Ng>||FtY$bQ^pIxBFK=8uSXGf>vab>PCz}ZcqHSc4RX8_CC3&s zhfiOh-fUZ+jvOB~_tWt5O0@lvtJV_mn%Eyn=dSa5&(rLPdHrzqVq zKVRB1CVoB@w`k6PgK zfaA<@1X@o#%Y-$(zhSdiwD?O7M0{iKcVmF(BX)%hp7BDG2nIfCfv2O8I(Tknz}dl5 ztaui9aH1OTZ_w8Nk#E4Ag;K6UNA19?w~}`hJPWk8M5XIyV7jZi$RGz~p$b(+9SVoeOZJi-2*@p7h+B*McVw(#=( zLrm&;8O>wMju*G$MZwFDOBgS&9qh!*o6ND}WwYY#Ctd=`76UJ@v#&P&OR@Y#olW5$ zva7j?hl~v`1Hdxz@1%VeZ-miDmX zS*7WC!9=CFZV>DV`S{8@SKV0}J=UV#bv-mXl0LgG&EjX*04cvDn;Cxd&tspI&=Im~NC>BV;zn{|ZTv`bNlNl+WG}tna~srdndB z+~OS~nraD62`|68uq9hZli>^D0nY=nR*=4m>)!c`H}?^rS#j9tjrRS1)OH7IYjix& zd3#*-hh%pq(U?RPp_F&(*=mxkPflPi$vPkjNY*Dn14v7r`>BBad}hrl-9^;jS($8S==m1 z_B-}R14=+fq73x#+{(gMSRo;g%Dg8P&xPl`QH22?9`V7aNu{nB;dd^6Jmb989^9}%E(P`_L&slaeUmXa{!L&Grz3N*NT0JNEjnxsZTS z>Rp0YL{SiCT{YnWOx9vGXX3$XS&$oN+j*3$(9zGye>J6FydQ^^Aii9K-ls%7;O4uv zH}SpAo_^Ty9F0QC#i7&a?kXf{|F5~Meez-N2?@+w*4x8cDeP2=RVLG-Co3NLFpoN@ zIrn}l1qX!-OzV9Na|$~_brx?cS6kSLRQIoa&Ky&jW6v>P@h~o=lt4wNK?sK#jox)^)}Uo^r}+*TZEA7H{&OapY8kgK2{eh;Vmfv?}A)ki=U0M-pAAH@cHkV z2m4i{ZSA$&$Eu}q+Q&ln>1-c=6HiB2*>D@_jN_e0h1Bh1d(pTp-q|P`j~4Ir+lS@G zP|E-Qq%w8;_ycq7_R+PMQtfxV!)I~#ULRTW^h}McYo0tULhk}?>Ku)lfhNRZPmf~J zaJ;=voFqwUW{BE~9URPmWSr^tbTtA+%bq6wSzoXG<(GSOdm6@HPJ7xKjUrwwdkT9+ zT8`l_i#h&X919QV#PB~@>tr|T#48#gSKrFqT#$DO=|P-psMsx)!(kkD)Oc$dQ-yts z8^*pq@s-!2*LEy;m}AGnRKc#lD@_L}Fha-=UP2D6&y~EC2L6YgMgJ zZ5E$Ng19Hh4?G~-N+b+Zf_aq$v7Z1UP+B6{*DHV#`+9aFIP_FMZ@mgKCLS5dO}m{r z7J%c-u|@GL|Aw4BzzYqnZQ$cn{mQ+mMt-`hVWEdP3*}`8DNtJ+hX5n~kTG@st7PrO zA4c(pHZMr=1f5cf!wZ_DljGU-XmF$YqW3CNhlv;5gm|J5e_Kv)_OGHwh^X@&Op*?F z2bd%pVJ8B!=>&re3f&2IWscpYeaF>`6Wq;1OV3fw z9D9x=^cE6@+f+^vJ+ga2f1o8U3B$drKFqvrUNEmGFU#vM&_(wTth>ivj>8@l?xg0h zZ`gD@lO)2|<}gVjtQ1nW2fIWNHhb`<;zh9seXuHmf=*&#=)NIW#AAE?W3=M!r#)cb zP=0O1H#{LUt;5viRz!TmTF?>nG5*%T7&MAMu@^`ELh>-zCl|511fsC-I-4Jmz4%5D zsN0JLV43zJ5Am4YUaW__oumIA#Up$1)Njrl*MZ~A@v`FS_M#fRxb4MDQ40OoS*Xok z@YEdkjc{u&7;f!r~R$uf{{3rXvXf55*v*B9$q>XG%u9)o$d=YkYa z7OgM-2umaDi|vHzMyYNgvq2s&B;nvZA&bprLa=&(1-;qU7so0d^hUEGBRT%{MF)O& zqiv1iH?p3X|Fd8i?YVjzlNlht6_RAzM-q^1zl8ABdSXZ6l5CfVb0pc0pUDZzL2i}N zPzD=ot|z_#mcE{N-9VP-GT0iCXNQMD%6j4oVUj#+g(P`?AtcGO6}pF9x;#I@Q>Q%J zAsO*3c{W^6WK8B+_;l5ssL{hL+FjRCqg8rS=7`7WMo4o#JzHB(x7OdywDddTPbZ$%3&;SnuK-O2~+0_v_mSOG))k zW)-HBhz@0~=*MV2XXV%r-ehnpIe6nol24s^W*U=(tVu$;F|c0b1b$Z*Dlj{?R5g=2b_#bx zZ)Q@Ij-91=F61B|X78AnIrffCRJ=&X5GQ~aIm)Kjd3BT$o^h67Wi>@*9dDyO7_{tM zWXgq9 z#3OMP!Y$czv<1hRqrc)|Y{_CFa!vs+G;}*prtBqnqLeVzSpr8wlAC5u>{Cv&{DrHo zr$!I4Xm?#ZjaKPt{9-&GX^v--reWq)!r$7bwL#xhC%Bp^(J z!@WY1>Q@M<`;)m~L6bIrvR3g9z@J=$tc~JVi;vJZ!Z7=jboqlu{T{ee1?YCdC8_Nd zE=lb%AxUcIT+eCCKz=CWK=&u}z(T*opWw9%(${E-ZE26S4@mJR7YLIib)}Fbsr!Z0 z{mD46s6^eLJg#_+`xC}&Bz||*Ma~nrwDSjU?L2{7J5PWw%^i6B^Q4K_mjOF;YArml z4X^isVa7i~5?=2Yk|ckVkR;1?Y2VUeIYj?r6j@K}NZQ*t7(Tvxbm@laK=R%Nz*V)1(N!=|ZNvcXn9j~{6 z<;3f|iq|AwT_*m3-2=c91=_dIpaDe%RmkmlIEMUk-$0Myq#egnQtz}K_BEw5P{Kr^9#fxGT%%R zCdt+%B+2$jAw3|E6S7zfDNh8;Ddu5{XNmcM=bLqCTO9b@u$i%yiYC^7&LqjU;tM88 zwreB-$@VHp95$9@yFj=kTjK`il5F=)WRgbu6hX2+-#iN}eZJY^43_627&e8~5JOm`u5dz%FoL~n}^hASS_fvF|tZ}HDJcc2Av;JKUlcCoiR z;BEj|lG>+2lGJtzNmBb-KgMSOh7aZ|>~E82s^2yI`u4^xec$^ ziFYT-mkLRepDZLv{vshs@-2iU$$xu|h1VB_B)o2g|8wH?7sjx{>!!yTucxwT8L#b_ zr1+qZFi8vjg(NLZ5K_mh2P`LErz+k7;I%8V#(~#s#kUJyz48Z1?KmMxY6U`))Ora? zQdWrzBBQfCQOo4XCX;aJ|T6y9tM^Z zuV*Ws-Ox58Ufq8KuV+4B;<KhEDDMmjkcWV5oR@k&q<$HA0f)UlNieKT=4N{K;2a zcuf?N@OnBDIPsc~iV0mD&mQ|I<8=%~k4jxw&&y+y@Oq&zNefpANm_VNNFA?bU^(&n ztl}L2UVX?K2VR$pix<4!A%75FrwB<>yGuxt+EgJ)YF&jSseL@&!s{>rw2s#duq?dZ zbvWbo*R+RueWWn z@OlN4gx5QSNm_VBNYcW4Lh5*(2bL4BA1U4e;B_*x#(~$i;>!iEUti0>BdNVBBuQ{lIt+UYi ztB@pHpCll3{siHx`Bx9&l5A_>c)*<*+{I{I`;FK>Hmc!*{>0jWdD+o2FQ^@ zl9W%rl(UtBOcav+KN2|YX+8to^#AwC{EB5L^DADqAbZ+Um?Zhbge1v#7gD#USztNs z>2Sq^xc7U0g%-qt*X827mH(GNGSI*&LXy<(5|X4gRY;OrS0PDiA78>SEdx1BLRa0M zW`Jec)4SU8nExCr4+^78L8|$cFiBEB2uYIKEu?Nw{{qVi%;V5q;@N@OAYN@}Varw5 zLZc)5)9$*TKQOWDuIp~?A7s~kV)3)<4iP@>CD1La9%&%R(e@p+Nr zHHlAG-7vve1WyKl7A^`!HktY8`<39vbLbDY81`4ad#Ih?eDkpe=Qn$!fsN{;U(RQE zJ&yLD2cgS1!OuetsUWWql5s4g2i#Q`astvwK5&e*+1QHq&;k)yEx;o2ke1$KY$s}7 z{C)e#?ui(ek?y(G81_a*orXuZM#){%a9*6%c$8Tfvc=bHMNg z@=0zR+0o>a++HnZF2U+1A#*Xj-#`KkZxF3t;+B&IOwMB?XaH|58aggdaT~1Do}_$h6Sn-{kbSXzKXSGZ6jI%Mp|tHh%96g+X3d931DWjfw%_S8*VYx*-+ z-2{z}?4P^qMp=A!9hN}VS;FkP0*jwr*COKcB6#QXRnN^a{oOE#2VJ-l5rK(!1TLYJ z)4)*im|Ms!aQg^J`s^ko>8@HlTRF%l&gX2UAg>XU{N2+?;PiJdiLPWl=Kc`-yTPm# z_IEv*B!4$ln54fkLeg*x3aR_M60jg_+j{riiU(ouZ#>oqSsTTFWIy~Q^o_;awBi8T7mJ^?kD_-OHl*nHG9~qx_N;g#h!Mf^`FsWo_|c?@%cG2tNz~)Qu_abFsc8ULQ?+|h1C1sA1r78 zTPa@S{bzr#&(|a8Rrce&`JFe>(5pcxl#70$ee|shxCZnl6@QI-n>$7ltQC?Zcr?-= z0ZH)PcbFszCJDC$94sX7|04m0pl$u>c7Rb|FIg;meH&$2i`JiB z1u5%Kp9zy>8y1pe`)G6j1BqN?B<^x`TszT{;jL!|r7+WOU z`Zt***;c&8B*}J-Bp}&d1&L!wl57_Umt;1h* zyh1leh4)P}525}W!vM8E!5)(%bDxmZykofg`PAs0!$}hPS+MTCIDy}V&@(?<1!gBx zF$kVXsxGGW1EK!`80l%MbuJe7-7207IZj2V?1xa#V2(XUiQ-v@P|YKxxU3fM^5(nn zyDfgVjnsk;S;xKU{yOV^l&N<`?x`!!i@c|kd4{~FgGQ~#!f&H^lX(3qct46&kh-0a zB(<7h%q6V#<4$_rnEaWNY6TXQnn;rRABS`aS};5n9D1q;%^t-gNwwzHXgx<;aGW_# zP&|M{!fXzS!+iEs-bt6Y(jyig{h76);!4!;65P1zQ>Bm@;9e;t^=X!n)c&i4r18^E z$a0W1XLAWAsg=t{D9RNlM~JkScx@CQ0f_AxTn` zg@mMJ-U8N*U_ny0`OV{s2T4h~X!9GFxqktF^jBQp3o9r0G-h(FS4infCHxR>I=xB~ z;8#g+6OzPP$*yZa8OYMXoS+2c@j^mccp?M)ao`fZsSg~x#T%!1<>p)F$hzl!N~ga^ zTEiUsd*weU9w3=A|9h?%?rMO!pfa9Wg?;d1ip9G_@kkB-Rh3{5m#G1i*&OlVDE0kn z)u+;_OE%rM3o8oT+JzP4fBuv1v>1ZhZMADJ3Uak1138IRGg<&I%Gbl{_ghGOY~4M^ z>tS~%Mb^V=gtmO{t~n8(JNm?k&)rNk?p>{GV*H4|J>g}NsQEtZeEEyCeUG?Y()K_< zry*oi%ZMp~_cgVBD_CSTX%uCxr7@A9+0@_Plc&1(Jshbh2Wj+!?_Pv+5(fgQ#mip)>mc##bU2|4>ECdoq0LK-zcISyI?Nfv6XaA}|= zBL)C>63DLyGD*65UPzjsd_R=rW}lz@j2Kgor#s^1733<0R>XFt91l|FC&PqEA}$p& z8{~K)Js=+tve-0FU|kB9(~SLF@hmfT!1I$nC@Bv6f6^<0VYKIhMNE=xKN6B;d#ohL z1^EGl54@9XTL_nAyAX~NT$1hiJ|+pxpPEA;@;>aNVCnL_RQ7ff-Zkaf;fpn-yf36U73Wm|>j>W8d!B_uI`O=~Bp72bCYV3P3uwvdGPKj3+sc(3O%5IK+E!zFl!QcS$FerV%nm@r8{r9v{^ zg(Uq<5mMLBG_aid`M2U(`Z;jCqog?So-Y_qMH8=nj?qf8{Z>elZ68TMvi%amS9tFz zT$1gQBIZs4Ile!Wg!ip73iSE-3t;JZzpgdQGoi+mXNNDUExZepV&yr^&cz^Gf2;Se(XdUkhEWRD@w_AKW-mkOxP2jz4xrz5B6g47_1gs-? z|LhqS4(X)$Stdy*PYU!&Cj+4=h4)I~l1?)H%q5*9_G6Op{y`y=g!dLm;KX|x8ldav zv^IiwD8xc0!Owv!Okc@XBNk0z=sq5!bu$=n&x8hm)IdHtAq&VKJ95n zE6Mg(AxXAANkFpw3Bp%+?;%{0ZOuUDl5B4%V3P2@M@E5;_jkb3@A9G1ZiTO-2{=G~x{*j;o{?Pzk zU#GQV{Cl7zh5sX2UxfbxVUoUzg(Q8QFC^*fav^nnT@98~Uk@strLP0V|FI}39{dZY z8UG6yy(HUTg=G9o0+Q`d5Wb0j;gW1?1~8XodxM8b#=ndT8~(x4;InPmJUK?D4w0lL0U!-hHv$hGv9 z(t-6w_|J>z%Mgr@n%UXX)#J@!u6C#e;vrG~@pXMlZ?sS0Ney zk{}n{pCEh_|H38N))X?AWP8JzOfvpuRM_wjmM+iPI4p`x;VRYwoz-3iQt-b`m~K4Z zB_zo+MRt@(o^6HH<=GJ|r#$l%&ywf=8U7DGK>S~7;UADhM_&ZYHT*x$!Xh2f{r^BZ z;~!~E{6ljl{)J0A$}C_m=_v6GCK>;EOfvqFpaK5T09{|F$?eTqmcCL_SYL$yo)LZJ zM)cKBNYdA}LhAZD3oNI;u2(!uUk8l;bd(ei{sq&F|Hl};B->wwWc*8lTyTGa@J;*+ zmt)wBjSc1`@%t zpLMwJGDebph3R<3qwWMiV^PYD^`b1brg@HftnY8!lFtoKq;8J`?cCo`kM;eHX^KbU z`3y=y7OVQ0s7y6&){(BFZt zr#*gAjwT+VOT1<1KO@(i9~9@-apYjk!Y}VUot&bRlWX{Z|su zn49t_Con+1EL<9M!{NDsI~sE>Ph+wi7JVf!!aGQ1A%uS^S&H%4MEC@i1&huW?=;0L zMV1L~iokGggDD6ilyaMp)Yk`v%m%qoNNU@Eg`|p1gg?$KyPQ8(JQA*?3tIP2;T-e; zYi-R{cZEf}wfpGYb&>UmZ0$a}Y;*mMuu1>0pObW8{`jT~On;n3lEixykLvz-(1UD- z3BSvPB>Z+j8s(2)e~3xK@6Jbdhjo|o`@&B@Fy1KC$d^2gU9fzuyPgI;w1u|W39 zYTw`j=se7GAZ5MzLt&DNHVa8A`cX(y(H5C0;ds5`xv1Wy&K$on$DX4rBu4ea zNXXV=?C6LLnM=}YEhJ&HR7qcqR$jznsP-EDD|oo)?2f z_$$NXVHh=bJa+}hiOznCM_TCfnlr~);5c)PRXjVMt?!@cc+Li<`THk!Ja^LZ96683 z?@x>$X`V-HN8Q8wW!!fJG4M}0)ZzSckoWdtk|Z)#$TGP0hd6=XRgS0!uAYx;J;CTM zOed%1!B8}8G3uervByp)DISUB5o~1Jb3DNudyX2#12C<(#$gxHX zo0B$2u=%Xe7B*X77O}Opk!N+ozuw39lA|S?UWtj%d&T{eR=P(bfsMye2fc*85dz>+ zfYa2(;b0M%NE5F$fZEI`P+Mq14LRDQQFb^V4vrI?eHG6FCvx6YMXwdf**7|~0oHwB zfy@AzxtvMTfLF+D%myQXMSOdhj@L%x1-|nB`QfqbFX|b3H;IXD@Bi36;X@bD|FO)? z1vytp53G?n0ZBQTp4vZwv4-KUeF6hn&u1v=mb9mU({{=I5XB=|pA)`$8LMi zS3E#G5-R|ft~ofF6dGdxa!!H%<(wAp?U!Bc{8I$GbA@KxS+PB0M^kqQR>?u42efY= z!=8S5Cw0<{56aoM@o9>qv-p7r#XK%R&IM#msb2~fL97^$lK?F{0M|n%P5}O|4fn5e!cinlU^* z9KrC+I?LXkyC^1p``${zF!8&HT^`%nOOECT?+xDOm>jyDv~j^Cz_snHSSjL7%U;=(h}#|96H2hV7GC`fW)EZ@|V zNdoW%nM{(o?Ik39sWta{j6rXok6og8`h09RdTd8#HFNC9+@^RW$#-~9U$?QVm}AfJ zwc^>a92x>F>ys^4WU^%}dFE;UcbxIZR-Zr=lB=vkL=?an7VGa|z#mA$5FL@j$TSdzRwq`0j)r+wuMVv&6BZ^$<=)s|TT! zA^cp&_lPJtCM#b2_zu6jTx@d_AYQ;p;<3$agP(=nRqy}QWp8DCRy`9FpM7VO08D&l zvrA-re%FN`5I!%G=vT*Q53o#pu0SnzwA}%Y6K$_59!Yig)6N|A;5c)1H*@%c+GfW7 z;Im`=`24^ZCqCQUOmboSdyqs8gwL;zVlLtHSs`_NcI9Dj$LDtpZmctT~21v@?m zFvpJ1D-@3;IlDoQP?Q`mS~;{B7Z$W}`x`!PSxkJk;3RS5^VUxy_;hV#eC~cKCO#jT z$uLyw1#{WAF+Tep$qxvh%LTPMK4*hv;gref?{c znd89lS&i2hv6*YVz-R1mp5vv}V1P5_hcP`9jGUFQ zewo}>>0wlE*=z&~c5OSv2(Al{r^om{Pv9scFa`~8 z-NgtD1_0@MtikbkMWHV~44al-n3+xO<^LgWt;qBkdHX7gjLPZ~f9U80m}Y(g6#Nyj2rda|42Y ze8x0qZTQuG)UJmz7gDP$R~CCO@Q(4G?;U-?nDbYJvqs{hq2X(9+g-mleB}iEU;D@U ziMGDZ*ZJJY#qJ{Mdbne@@7)4pUD^M$9eG_mng`tb4re=(4f0|kF>4!O-Uzda;a}Lt zqwyYAJVUc1U12%xcI4+MR-qlI52Kh7L)F~@FsHYr~Ge$E-kC2MiqD16y;E_#wG zF+F}qdj-c@`*~!uHj#A!2YtY>v$(5A{D(nPes(fKs%Q*D*( z4t{D>R=L8%H}9o5FR_zICzR5WsR60KuSl$D^Li;^2H5U5fG|X;4OY`viZ3w7uS=EJ z$q4Q?W_^}6^KQxkR3qgzsYc$H6-PBOp1+*9%^z%`i7*I@jn|X1eLZW8Kk5(`YvMFQ z?J-QhNiodt?D~SnE~9dJ4}Z@pU&sS;SC{L$V^e`XlzTS@W6m;y2zfG0D5>?i()4i7 zaQ;%R>_1GAFhJQ~m;6OYUDc6f!skcxC6q;4P~+chfAbr+zgM0c)&AamVFvw|$o97tWxs3>*VVZB-HLvN+jy1vt)*TzFuy-} z{)YJlirM^ry@1W{K~UAW==S%MFXU^|n5%yhZgnb6)Rd^$3eTwKt|&wNmdz0N;ubby zh#wtFhPZAH8R9MD*$_8vfB!m*`rCy4eXKL#m+kNALK3Pwc3>{q-*4M9soURk8UA+r zd!*v&_V+P9>7~yau4azin%<>&g!l!IQDu6L=a^&9v0m{oT*YcOv9DPaOfTx`GM2Pi zk=>g9^Zl{am$U&k1C>})>5@21usKie{C33tmcL`!Shm0Oiz4>7{W9xW-6YWFpg=Eo z%-=8jTN0k1kFpS_hTr>?4e_LQA|{+CVahbbj4Bx7H)#+!4Y6tf;iZ8+zTat&yGFOi z=6L^dVwg>`DOJN^l9SfkC2U-_f!h|3QLe`TXw)b_GT8C?a&`XhQ+7z^{H5Il4b8ytwUis@*5vS zu|sFj>7@@=*ugloo0G!zWK9nC|rjqiDfLR}}i@`F- zYXQcUJ)TNeBTb*3o??zZ6j=43Ge@l$bR{t6S}HkOQ#e<>V9b)_<75}VvFr=I4qDc;~$(I&Ec3Army<3W@* z^Bd}4gGlNLdK`5kn`NKKV){x!HU8(Jkl&z*>}80g+?c_Vy);6n#q2{ehlF zU_xqez;?d#V-PGtAAevnK3P5)hxG>RGJ+j_Jzahb(ZKVxKvTJbXUZNF3xhXcGtF;b zqd9`xjID}kl3RN!wfUjUCDfzJm8G^xZh=9uRcIOw=Ghm^V200ZI=*^@OKc*(@+t=n z_g|_V4^n!?8J9$yW zuFV6j#aEN(HDTXapFAJMTM=kbdX+~f?I zo=KDLqfv!IQs28u-)U6-)Iy0N5;BeD;ak|rgB3?}r1nreJ!E5ygXTl?5 zfKCXREZ)P4M{?`-A5og6i+`7QLx6}v&J7flI>0C%m)CKadV3T8NR^O zmcItQd%bx3W^XXv8))CsSGg?12>I|c^ao$whKZY~&jv+lqce-i(3fyfwjz8(K80k} zlgWx#jlut|cxEZbV?So2{c*%&ufl5WS3EX+VZ?4_(MLbEJLt;JjM%NUk!N+;Pa_@P z6UTX>M%Uw1`*F`v3Q$5&rkBRV{pl@X7< z(g3FHRZ?8`sy&+AsJ(jGquHxH>?KWmHCO(kG21Vh1wr;|xrB}w^42tGHdv;;YIl#* z`g{$!JFQO&QW1~F<%~O>Ic9_7%<;0~#ci)}&nXn8+bhJ$2vyV~=_YkPo#EQ|1X5}f z@x|AzsQvPDj@^m}OV$kWMX(nwuf@H7-itoCr(%t4p?Tl3J=w<0d}0iz6XTJekN32%p_rGpXbAdjQ$Q=Y$4m^F~42B_`TX;DvLY_`DPxCq9FU z7dJk6>Tk!V2~FBu0eTa}mOj=q1~>~@4h+sO*r9Up`+5S&frH=KLh9h$%P6*kbD84l z;4EwawYE{9cB%z6yk~Md)vLpK5p(R|T&Z{#II9c$;O$-VkeCP4BHYvX5Mgw{!Su?W zhr-wV`y*I;LTD?NZJ!(Q3G*V)>RLY#!5(1{dhUuQ#lYXE2Q#+R{zSR_Mff|q9=BA%QZ>G2F|@bgX|Vo*vA7iN@Pkvz}#+eKo6A@kl7ohMYNGVvaq> z2Z{%j#ajQW`tu;(GYgVf%r&sHcn$0}hGpl6@e4s)w6(B_;k`XDNbxn33!K5)d*QF~ zDDJheiV)Vqs4bz^k49Y#OX@?BS5Y}dUIRv0^Jho=HJ+LiNBottzw2R{^kFKAx$3g! zMd*h>o3>nyr#`pF98b5f*EH?9TmB+g{r696Je@70Odn4j!7|6wzfp^QJY55hb9CIJ zcm$nmg3cV*f#b|^m*T}ep0MuY7*DCu?fLqnW7zYGg9zJf&)Wz|BH6l!M8fubv5>kw z@5MvXZqK)K(1yeA+Gc$Px@EV{`OL9f=W&Wh;(F;8XO1PzvFG?m@i5XP*l1wS^V{uf zWCPx5&pm=M-g_^M;EnfwzU>{c=i$h+I)6j_9g8N#u;;BLY*6-mKD$X?A04sV!rul# zrH;S*z%udI9ktl;wuN+{?7b-4UJa&{Cpj;V$aW?N3w96Zfx%5h=tSSuM7XwHLm%2fo*vRN?kQo4Jc|ml??J`Ef)c!D9V{3f7%-ZS6!Ds@ zWs~W^(~!^XA9s^@IT3|fDAH4V<-Gd>Y6K6X_ncoub9%h^){+Sl3^v7NtA@Qt5NU~Q;vp*Dwd-GEb@LZ*yV>|zFrUBN-^14erjyj=c+KRC{L9vY^3xU%!>1{nHSqkcC6YwdpUc#rJ1+fwhjGRFb6GmXeeOF<{oTZr zrN0Tsv;L|NIw&ErvG{Lk7U^@-5jK71V8pgaONYt=1KiN)HxP%6(roT4!FhP0I&&6i1N_{e*B$6L+aI{$b_|tqY18`M=MQ0UQL zds*;C$e)=VF3BVS;&4ULiL_07Y$y8jq0DUBv7WJ#q)$7wbmRj1qJkXyGUqe9moCJ^ za7)g=k;4YvJ`bHG_W6#R2+(Bozh?@d2#th+0&I>#^I)Gx!affw3A^xD+Tz*sQRuip zCH=x*kIP^5OKm`8lRe>uAHpa0pRD%q`Pq_i`&S8-SUNg{iIgQj5;(~3eZZ9S{MKF` zkopKfx#aI2l`#-OFWZ+y^um%z#NP!2)M7F*1B~EZi-?ZlCH&+irlE2g+}vOMB9Y=3 z=O>{Icts7dzD%TS`@tMyiQE};h=qU2A_HWT$I@jeEPPo<(r-jR#3cXuVx{P3@(fcy z>zLB?b0g}E=%-x%3eHCX4tvB(ivT@*;cb7CDrx5*s-$1hlxNeQ+8?&;(=yJqETUDJo&|4mEhqm1xnhfx8%sGm#tBqsO&Ch317_nP2w0aIH1aO2B*{7}w+ z*&`#pJ~_W#62AK-g})#ZDY@HB{0(Nx#Gf=|U3e-FAial8;_nW!wyj;<6xWjr|Ff04S8GG(g?xVcPOfSYj)0Ot>W?hA~<9^wRS zsLc3*VH-?2_;_WyXUZE6JnQrYhSlWMlkrBW&(=|?^xg&TB?OJH%}giTjTaYuf$NoV zF3c>pTW?=z(A;p!t(NsJ%tUjiW|lkcw?DHq{AG~5VxTWsMEtm3mxY-R!oJpIXJ5%A z+ibJ7Gc)HBEAXcEdmjJ&N+xLvM>Gp51KZzANH%PL-^}DhY=a9kCy^2U%wdFQF0za; zw}FlDhwOG?gl`oQ!4S`HhuLE2p-d8@FF4BW3r@)L1-F={j?Ivcw@pj8BV{;%Y&yP) zN%&qrP4NBVjb=dcGgBJAA3@77zK4`JhI2uQHkR+Xg#;NIR*r<_;T6ENGl7A(dzjyTZd8mE+(s{xUP>(_? ztnPrC%oJWG45b`A4XQwBtS-ywfNc-ai;UoV;m-E1iEn#Z`i4e5RjJ7v zAL9n=uVR9XH`R}m47fi7j)v|bDUJ-vrD8~Rt>U>rpUR@rbDRMVm8a)06c0;cQc7qj-S5yc*_*c5P=?TK#KSM#bMHs^Z6EXAYF`fhNpKnwxLnPZgV+1LLX-e*B~0JxlA zpIhrZk8yq)P~OyjfR_V4bxQV822d^bGbSD^@H2Q(!;@@OF2jpc%Y~^8e?9&PO|B&y zur53aR!?jIMWV#Hg@&=+r)%doXxGIo6LPxadf?OCYryQ$dPZsJs8Q-LoYr<@a6^5C z_}fFDlOK(oIqYtM5qy`IeHWwlsV%J2Y;gZ2q`t1XjiW02y5HGdE&K!?2$DZR2#e+eBr^TQ`k2>Mw_JeTlsHH#P!<@l~$$Y*( z0o*y0EOf+pnZm>G|A)0}fsdj{`kNOlN|;3n1VmXeLNq?2Q3wWg7qT)dyBZZFcZx<) z4iz;*7NUqGYy#OEN8^JNPw&JxdV1oWLQug3FbUuZ=$*iMp226wh{hKL1^4^^yJvPc z4+X#Pq7PqEJzw*w@Y!MQP`Af@erD9265D%f^g-vd+oXJWPK|1m`H>GK^65iz zsk-$f3~-y3;yPFdf7*lI-BwyrqI?jnCDAYOMX7Xj=Jt@4M)@#iZddtmu1x7%VxpCn zARpkDsI3|Ya~Qn;O*(HU1<)w`C?^tQM{Ta?CMV+h8i-HP^q4;E3^0(jjiQTv>YF(P zlhdVK3Ch9kQx zzQ+5+1}S4C-)FxOmoY%ri{-z-|H@zNt#PV%m3~(*2QC@UA@rW?;38D>jZ*c%*Rc*> zg(T`@C3u|^>Z+~nE9b!pw zt&oqH2dP`|4aK{pBr#ziRR#GkPEV5G*Q82*zXGULY^jS{{z7P zv9$$T0^o};f_Y-{MB<11pJ_W`tga>DPU45+Lav9g(2nGWYpK@1q5`E*`2YzIrQh}P zE@3i#Y%-UZ%nM8M_H>RgRgy57*5@e(EbpA9JR!^RGK+0y0s~^7P0ZjK?{77~e(CZ3 z)>z7BaV$NBEZKQ1r7bhTorX3F7cW`l1PpcW})k($Lg@2Z@HL9Vzc@GZ}$m!zTCY+Awsw6ckU#Cj}@y zCb4~S`cnE&GU_;}{xbz%#4aa#cE{mW`0fC#YA$2zE^E`ef+b;!<2wn2(up4Bc%+mP z3-dov^TWBSvxrVQoPQ$kydZmy>t2^JZa~BfVsFUoLR_83_qOsMVcD7uKAsIeo{&!s zIki0sS!2Loh*~=nBMgW-+k+ou9U@{TWI`e~TQHH#3vCm0B*%al3C8h3eIb|h(kH1C zy(F*_8d4}5!cM(S-c3N0c&PlrS16A`V`{ss*2?j{KPrmjlksLsFu^2XUEN?RX#4ekVylmIpw$dK^D)V@+kU<8q8T9C9X$k|$v*ggy&J6kdcAJ}J(y>D zaOr8kp0;X2dtB-JnH_uE=MarO?bv&%`;NV1B-B5%WA7dp=R@yJ;C$#`Ct35M*2^|^ znvlo&P0I7#KLHJ9`ctL0Jl`Piew{o=k$8W{^f|H)Xf^GR17kg$>o?jZn}Xb4eVfvx zP#T*TTld-G{Zkx{s`|40*nazfi7d*dTX_!Og@&#cnBqq>lBf+;r)>1+tkVk`W{n8stea@|Jxt7+h6$n)(H+BRJ zoTKwK6bD%QFj=3Jm5oitelvA2EPe&e+Cr|p`6D-EPBc$)!Zhzjv*7!BMa(x=?GJx} zTwrYtKOVCXZVlHK(SRgc_XAZBGM9FrtG~rpMu*)0{V&S+`B$US=73>((iMOW*74`E zDo}?XlX>GcX|eZ5E(I8ux`2iv?-f^ItMk5e(4}s?)p#E8F?PPhN5)X%<2;FvT+tgH z3Vc+&s_>C324({v!sR0=A9kWe%2I`h_g}y`3|$ytY-nR=u%H=R-zCDfqSyRb*`s+T zWt;4^b+fX9hqSm}+w?M0)~pk;KPw5wV>EMIl2=>Vw+{`=xJm8*3cL^;+6$Ye z%XrrMdQh9U(E|h>r9S@MkmG?>k3}$_O5vArW$feMkFW?vTa^^!Jt9c*w}+&o8`!r$ zIACnU-gIX$XFW)!f1sdVTeub-riXuUhA#1&et?Hvaz?{=ZRLQ$dK8vdJT`ooPasqD zhL&8!*2HV;jh&huKuNp_A~(|xM@~1M+Yon55C51t>qNV1)SG&^%-ztE*`p3BxZdV#2KZbL7@T#Qa>8jPNjjI@SrGc!i5 zwtMMKIPprtvHryI6Tpy;@M*?HpoDkuomBQ%K*0fHJwALMdJM1^0fOz*V$kmZ-Xh}gC4N6 zu`nwej1T*Mdh>-@$bAV!3}hj^4!DTG)@uEe#Q?6pnrSB&Aq%Y;Tp-C!*zhL#h59v= zn%lF$vuHG2O!r9wm>QG>qBpeW`Wrsa_nYIa&zM26kL8A|`k6Mx7t?3J3w&)Ou z4XxQEXO&*l7n|LzWOt`zcI;27vrb_VOwhd)W@3qzg?|Du#LB>;koeL-%s93r z1{Rsu>8TkD*w8pKLZW=Q2=h3IPqM-fft>!ql;&W;wpl|#jhT{P0XG&4ZT4^7h8eJ= ztfl2K%DQooOkytF;qxMlFlTU7O?+sFl<-`DPfG@0+S7=5x%Sn!zcRCBn+uFFA9)}JQ4lu5!Eovu3(RFYUs;6{TzK+_$e=-@--GGb^JqKc_zJsAiw8c+j0BK#x zx8`KAn)r-n^hZP3jKAQi$7XE(F5ZlfVFt0Ak!d$$SgaX?6PhswJJ8V#G@*B=CftI^ zmLN~nggK{m1Ao@w9zp*G;E8>EGaRSax4wq^@cb{5e*yPLB>;VD0?^ZbXW{;O+$h{% zgF74dRZ;^a(BDi?#QSS~5`jLsJJ1sfEhiYLyY0KuxYnQ;OdOaV|X z<~}H=bW(tL#6`c80_5`-mBjOi3b;hX1cPmbrK`|*k=gv=Ml|58K+4yF$ZfER-{uPBd|!5o-*}gtT0))k(a-5L zGb~7TbF*&zOLR;b?0`0N3}tr-EFDmcSv@T>_*P+LEi2{_?7b4}L}=jy*Qyp~i$8Tp zDL&9@Q?_^x4zh`DqCOXv4RDn8Mu&wr=&WJBRfAhxrfT@-3VR&5zEcgc@y88e7Pt4E zZQJ|8AGZIZXY!R$1jXS}ek9ub4yVyDUoKi5#A)pqRd4#k3JHwHFX#x7TTuKKml)P6djPtfvDsV43}V1kP6Wa-v#g!_ zpwI)6xtX4txo%uBpv?tY&IQzEb`(j_vzZpWCUL%K^l823vy50D#PH{VT)xt2$z`l` zK%JG7AK(-M5-JELLS8iW?oTPC;HV@?D+Lpo&>0*u(#Zl%(A#kR2D0~~X(Ms%pJJr% z!d+yd6TETrTK19hXR;>uIyfEvik7WMoL4K5gc$-(!3#b;Z0 zh^ydeUj((r5|lm%Kmorvw<&{?*56c*kuVBiVq+Ts1)SJV;*Zvks~GEWg!XVC2Mq6> z0xpcJb*TTkqjKW)$MEI$!dhzl8%yh!60jLl*K-`#>PG7Ev@O1Z*)njQ+H9mIk4bxVM~-7bUle`?Hx_%QKZSeo zOh<+zeD)u48x4IRsR5rt*JtEkJhS2 zb(0+B(&r#SbE)F%wEk(A;u(tgBh!aC#06hxU>GygPe+>ANHK4wox=AN6`X%neo-L- zPFt3SR254Z(n*o8c;O=wPP1OOX54L`{OkVL-(}2J1PFux&P8w%=)QJv5=rio&c&xM z55f?D9Ip&O)zJGwS1E~BEdKttL8K`ic9P-*in3^o9DovZj;rF;kw9PQmts=bt*{kY zq+LqVUi}3itlUt6+{(TReF^q?xk#HBF1i%Kp#w4mpD*uYud%-{@`MT{Wh4c#*yT4a z?}N3D_wG2%U$A3Nnm=bp8)g#!2^c@II(YsB`oOliv8=alBt?sywYt#{i%Y5D+jCux zveeV-+fLMt!rUTSCXUey8p|+MYZm{wiLk~qYWLT-C9g=T0sq4^)X%$?wBj{>YCVlJ zW>jYcax*J;)#E9=&r>$DmbQ`Uy3vcvahS>#o(2>IPSdfdjb7Zn@H)%AA_ zi8h0c48KP=`m1S3QejQ9*Qjsn1BkuG)@V^?xFZ@mGWO9zI4#!U`+z*UxowH{6|4Rv zj9-4^U(q7nU(l$EgnkQualkY6{}Z0FG=6+}cuOk$BngdGc_4DlY1wT@v#TVMbVIpK z!feA_0ZgE>ZHQCeIvk!L;ahcwPxF0Oc=%p#_|rj!7zqlGyJbLVg6O?g3Xnd22$LJo zBei}6BnCpyHv(f4`qYI!ZM4;#e0WQGpytGajIH!la`iA_}u9@6cv2_T2?*sh<{Ec;bEWG zMrbcUl^TZJ0prfBI=siI$hyH&CF1MRgCKWrM?hv1rm*lGZfy>j;Zi5q_OZ(p+vbX8 z{~Ac;yZRp4L*#u#d6y~^2qG`smQ;2;{|pNMm_!_QOx& zE>56~0q%%@${e4NGKU>R=N?!M*YA^^8K2*oX`VI8&k_5Xa3@_UC+d2{s3i^~#tvRg z!%0IOd@KVn*5K#HFB?Au(YqucKM!;RH5DIUgvS#6pq^e*ieGska$f~1!KDV5rt!rp zV|b}bqymk1E7V1DP2|3M_0+5`TXAWUTLrA5Eh@cTT{_f-wm($lR2P@JWa82k7RbS( zcatW_mZ{4Mb*WRAdUa`5m#yluLtR?bMW{Voq)m{rGGITR1jB3!dCg zYK|-27=|#n<{Ue5e*JqwKdF^O9c;Es?l_c^MJzc4B{_%#S~fvKIx!QC0unt08br(6 zuCQP2C+rh*CE%0!@M{6zhHAw_)%O&6s z^WoP5p2^RDh?&E$2K>M1X|Wt7y8>>IO94CV6bg39jeP0~{^t`2zTpH6vIYOU9Pw<0S6dY0-!FFlsZ5?^8_A_vv!P2o%sj|&6XWiE`a35JA4-`OJ}){`cC zCqt_)){T3L0dL-J-KZ?VO~7c?v82_|!8wyw^%Rn@Q^cjO=G+AT7GTc^{ITc3FMFB@ zMrOAJBlC7(L{I&^vOE)35sy}NGTU#Im;3VeNobZ!3c5J% zF}70|d0{lkfYKxx&C2%5L`3aC6 zIX4jb9mbQnuC_C%ubryre5+Uf#JTUROx+j{anJ~Humh{Oxczb1+#9&E3=0O7YY!?& zK&i1r0vCM)V6qeJ9w-pn!bf3YrX>UGN!MURwbs+9r&RzNPT|VgR_Li4ioH`|E^0r4 z>tlcX27N6)?x$ACC@SihYd_Qf`BjIi1BmkS!kQavQQ1;_j{88D8JjT!Z4j9?z2wzZ zb6%3Xan_ud{3`SUl$u&oa{=ZMYgeE#LF2D=xcCbWXjS*(CSbzSU}g+`nX*59_e&$l z-g#(=Zv}q50ybZ}9tp0{Ba`dA#(6tnp@r27yG5G`z}BF7fe4!CwOBD+&0w=QYYGfv z7Jx0t*pBxd^i$4p1*tv-Tf`t{p=wox#}#7i#pJ9G-EajAk6cVX4GYG8vu~zuE|Lhz zX~Z(Jws1W=#O#|VPV~W=#f4|AN2csxBdLmE-m|eRkCuoM5^G$c>e)#8ENT<~1jm3u z6Nj!tD7p`*6%R^gOB}imq2%i`G8inW;=+Xb zrnq;q>;x8@2M=Svu>ok1iscvYQ;IyCC7G>q1KA)p1L0Xdmwz=7;WsYj-$q|8Tzgo@ z1BjFfVyOW=%{;)hH>$>0e=JRh?>!6-k_orK4>zIE)$u~3V}(vug`SEP8p}fB(=ToL zOn&X;7Gpk_RSM|~maQd)7-_%#-eTG68sHl%jzKKQ0~sZjJ3tWyd1P{Pz*s`{Qtsd@ z_MN`blJ@~6?djHVv^ESC9#(m)6yKr4p~a9wLv3v--WQWV=3cFTFD&Kzu_F&Z7hGg1 ztsK58OigHd4;q^aX)>M+r2j);pEL%&9f5-OvTOaAlY?N#VxH4UxKdG~fK7;tt}R{( z1((7#3j!qJbGnh@XQX_1TSO2A3~>^0h3z51j2SHDSI*FlB^3bYP#EKUd`rCgfgJ29 z1Mq9d&w*bqejfb5xM}7jOr0VS5r~_qZbiV%czOkQuupDBP}U9db}D4sd?%%a3wj!^ zK{pa|n|xAd$8A1-9{eyZnP1F&=p}4!xSfY-nM7tx?l;6n-m~R;$p@qak6t(Cu8;EZ zzu)=B85@H}HANkYN>PW{^74EiSS4&5QJ`Sc>?z}nK#Hrf6*)a+Bg3tI$_9s9lgj#q z_a%i2{N@rWzimhQ&B-Ng>3F1))0T?IOuva;cqyAjVAK96nz-u)wARe{8!wPRdgUEz zn6F-ont_Ij0Ay2>uU3xza;Wz~c*}LK1ti&YtMK(cUfsa&60z;h%KFHv^y+Q^POlm;!$t z_)6L)=tc;_`fI)`_-RfyoRdTl8O}Ecj6yNI`UxdjY_uviOcrxtFU=Ud5XUk#f_xb1 zJ&iuN9mwyt1Dy7#%MK7Q8HSWC;!H$(@f(`on39P-1jtE$mIgoFJFdZ48N?~T+Dczh zP3mE-3$gYTFg^aArCN`A0T$N`-vTx!^Ek` zG|?OY-=V1<;N8N`U{#dZ@w5$KFS5$FF5f-X8;-O+~KAH{#5anFOTB@XYvmckA zA(>so)X$Mjj!iPYtzAi`fNiiyruAV|(wS;Em*sO(H?^W z7N9{0ld`}MZwc3hgm#DGn)PLhN5IZl+?qV&P?+)nz9CNeH%4SgM@y|j7vgLT@FD%R zz($n&xX$P#_X7X`ACmeI#{YxsL-+AZ8+Iyv=vNOKm$CFBl>P+{{QLHw<-o^);y4HP zmoyq<-(s@w92Ax^)*o%45{@k#>oH`2mU|o~6ulQT&(46lYG$~erJz3gG+bIY@1s@% zJ@iN%t0g`1OxeS*seS!VrTWky1ABfgE{Up-w{e0Sf@6z#2GJ?~^4Rczwyf6Bij@%PPG`Rn54&xw^kLzRC%R(`xJzxxxG{|tXELoFMP z{+JORKCy>;@RdcJ+V);(dY@31QaegTRE)D8QmJDnq#%pIbMoqz_{d zV>UL>28=hfRqv1=+RtmiBg$aM!iPeF30paf`J$lAN=a^+lt=~{8|c)5BYhZ^DgQqy0J*j zOXK><-!Q!^#5xah71dr~jNPS#+cL4N@<7yExj<=?X|0!X8VH?n2B3#%TqH*s<1Slu ziD@=HC@~+-9_}}>`#a@de)H~n6c=?36r8dSf65!|gBd|{ZZTxf3Miaf)kDan8}sV| z#*HidIR~JB`Vmau8nH(JLiSh_6dOM*;T*63MG3Zcv=qM3aL;qL1%k$OXCP-6-uVmm zb41!8{)7w|kxud(b3jr1<%sl_SgeYTmc=k$pCQNVTafCH%mJBPL-Zl&egOUlMRY~e zG59unYZh~u@m4IrAX9xhkZa3k3ObC>g;^dhTw$3Dv?Qf2?#d;-6~aPlG-1E|1D3pY z3Me1ZTJK6MLV+Ocn%Yql#Q7o$aozj_g*a!Ake*yph)Hrte@JpCl(BYl`~*Klf53pZ zlQF+NkOQ5>2QmarLF>i<-()*6Skuu3a5uss zm-VoJ(A_9m!m&k+g9xg{2=1ix9)r@Eha$W;kpOz5Xj?BV(V?~e=mri=CI0XmI*ky( zaZkib#0Lsmw1rb-^uq~Yl?j=8LGRFHNXTX4*i+FN+Db4yrV)^j+qNkAxRt0DaX zWF*5)6LaBcQSNju?#CE;k!0&<;I@Jjj(n%@#$@khIwQZaI=TR>2RRMXBa4=!J}FBI zAqo?1Kb+~7i0$u#^t4rLnN5;c0EAk?Ih~x3o8#c^3{UiLVS-mHr66OFNP}>CYf@b- zQLcP8N!~09mrbXlQ>nz|z!Q@bdvhF|a8Xf9VnvN`gzBM+##HD3B6&tv$khj*O#C1h zAYg}5pewN8?J7av3_n)12Q8@Si);6nXqEl4Tcc}+I{ij!7S*X-*-_batv6RvPSOsA zdGraCS~sqt=+pd>emF-EbKwh6=>$0!mX^o`utY9^5TZ?D9J1n!fV|xdBs9rZ$TUOMqw4m}{Jjl@qMoUz& zqp&6fDG?I*3TuXRCxK0_Cw;jBSkm#smEORJpR)<_9=4i>*@s)@37%+ zTdR6p&NpY0)2UYEZ1S5v#btj%1M#4kX@PoTu9O<}fQm}Q7MhhgW!G5DGSXCyHRN&vu`XPgdV87bG$R`-eiNm+V zf6oLCQ}(tUjbnhzGO>|HzSfORAaxkFfBIJcOCaT&AkN3!r@)3kO)&BN;?(WddQO>pPX!eg zx2%AlRL>syEWb^UV@p4@aWHF*ZYcQBq<(tAAh;`p*ATS7;a zNYTptPkkK)xQSO2%e?=bFS&_g*-PM)~69uwRYl5nB zI%)TiL`FL8iMH#l-U$CugOaQzpx0a2O zqwq}<&c69Uqd`=k1es&_nlWdpmnHR-4*3aLKehgHC?XE31mS(Xw1qQh(_|`y0SZzV zz<}z3kz8!E>mCX1IuNImc^USLA_4@q&p+`1QmkjhH_*v;IG@VTv=B z$+2G^Bu@L0W#G|PUF;G!ok(oo#k|~$3>Q*y?g`|>UrpB^Vfrk>`1JJ1+9FgJSxc`H zJt7h8sgdZ7tff*KV{9oHq^u~3XT=!2%;G4_KM%ojb2&Op9EK0qqNrd|F9;UXi)}i6 zrw_Ieb{vauhMz4)$k?cen(A2-4OJNK4sJer9}N)IsKpvr(U0>nI8qlr>g{Os^m^1- z#5shyo}Gi^$=Tw{4QzPg90IGU6a;SA-KeOGx3ZDVysH%V?3>3&{;&Eb2&NLB!HG9u z%wIw7ZA-z2K>Qu}Jgk;^cyBQpA-+nUlFhN$ysMTCyBr|`K_$!$Pex1|nF?>lps|4) zqTUkQGtl9GX6KS2&Nvi?c#_<&7$OMBVx32n_t1Ggx`kaYj$orAH+JhdP93{+T#q$m zi>+_OI}J5ioi=@IG`b?G^*rcf;`((E0x^2)VJRFx0+(5)~HgWVx``Mqg?`oYZ6M`6Dze?m2$*N{h@QI#R;V@ ziH|+4Cx4HXdPbER9xGMHQsU}ufKyy9|6a=t+5JZX*qkTcA!Rl+odjUTrkW66lmmV0jSS6F9k^9>RSPlHR4tefzs72&OAFs< z4EIWUzj_1;R;;}U5Md~pjZ46Ik|q4%{du#->*k+W2oIXBO_2Afu?0za_<8I27mQ@) zfswEb7#u#>(KtR2mI4V;>lmoZP~!D%t^PH1GQ+(A105v*XqQsTe=8p^kDA59-AHqx;V?*RE^JHfPyeGPkK8*Ih|F*`vS*KCyUYwjR)Zj( z;+DM~QCSRbVzN}Qwo9P^%&xFISKzZQ@wWpVfVU2vz-pdQ(6~g7tR+`-aaJ}1b}02( zd=h-YZjr9#XGqubL&NPvd_pv@0o(O|nVq5aU(>>RXv(3Ry0!Dvb-in(X}un$V#1>O za`jXsMMw1od@>f1JjuUzLm(CG(5goBLuUHWz98tu@XN6Yx?a2(MMSDNL0`Nd1bwZQ z0|afZKqrbjRi>e^a;4`o$M}RCwajt7%&{8cf>eLasib;Sz9}z>5q^nH_@x%%m)L|~ zYExj0@CT82%#37N6BX+6?+#A*5?V$3rVbQ{zyBb~AMDJ^cAX-@l5b9kRkzIIqZM6X z03X$(u4QP*4A%8KRTnVIy6#bR$v5wRYl8-kCMO3=x^k5{xd`=;F~lPU+)?A3;SYCc zb6^qRn_!Vx`aM7m7}XW{mV9+2SdrD+-=B*NF&-MLnZ#zR<`=C2CIg889e0qZFJ` zLNH~2mwtnG;9&*ZI!!&mzWE#6wK9!z75=co0XHF%A*E)iIPn0>aKDMh_3-~vXSZNlTry)Dw>Ezn?F-UL@4P+lF1yt$Y04{!N^}r zaq%`Tl2#9-*5FYOOSuQlXd1rc4Uf&jc)}F|Xn{nvzrdQY`y=w^e=BbvW;=@Oq~g>< zw06@l^#8q9mQFveA6LoBso5p!jsH8XjK0L;8Pxdyrj>m-fOl zA0&H34HkCf(m?vD>b5z8=n~2yZ--@;7j($$;I=%u7=Ze6G4KT2Z7Yb>iVvo3{*ky} zuu@`*^|fO{jUgkrgSBvJL>!7OWfE%{gIZ3nU!7b*>K$_zn;SX}tl5tCi5ZA5&8?(Q zI+0A@4tLOavk*o@<*Y~}+mru|MzJ1YWieh>(}0&*+@JGZ6#`W==o^rbw-FPS8L}Re zVo5HrqsnY9AiE2VEtsIN6qeSdNd_=5w~cym_H=eibotE(>Qw=c*p5Jr|IdQxNPsG~knJMR zx1f)E5=2WVM2PR>fz@o>(=)xHBUOZ7`-wBvpO-P?ARiqp+{u2}qZ#Tl;Rh7IBww_u ztv|~7tfy;@+QJw4rh5>Vx&2!oz#H*wJ?&TD{Rd;4_%rTlx486pj#4DC*IuTO$T$<0 zV3n{L?sm*_UzVNaL6zl*SeE5hmiFW9EOS(ruWqz!sYVtKrMUoClp`zx$Qa{Ny|@N0 zHqaI7@dd90LXEa3(;*+~*HnI$S=ESq$8L_ud?u{z!%>f!5s7_enEDE;O-HquqJ~X%H^|}Rv*i=Onmo6A|%rlB+;36 zdza94P@MZZQ9VZf&69smmVZaezsJhIN6Eh#{0qLOWDq-?pb~S*R*;~0j)UX&wRHEZ z=Q`nk9>zhATVX8WTZzFztmy z^?VO3r7a$b%x(9g1=;XFD;DD(0@RRPt-J9ZzgfEsm)2eKzNol$hq@_+9i4Jd3_$LR z1vgY`RrFZmF+B!k)bI`g&qcLdqyjo! zh1L+}ALV#~eeN8WA*Q+f(np2oEb>G$L3aPnW0)0r%96905h!P^v-BQ-H2?$f$F zCqDLaI(ysXZN)!?_4T-Q;AL80W$c)pHaSnz7MGAf%=CqKC~|g&B{{b*w8&XE!Yh!& z@VHLKg*z$)cT@=OsOU%v0qMqa;J@uiY`n#e3OrJuXyXwenYwwOq>LYyl8)rPZWyeN z%W>i(CSxs5Mv%Gq8BjRr8ZkChmWo?111YUTWp>eULy34nmXUR6E4`OtgguNSthV?; zl~FQoxS?DuO04|*<#y$H_4ZWPO`%x{_7T zd;2p*@Hw)s)ykPMK*ZOpK{Kg9^HuoWTj_NC8^7(i=g*PGe@SU+$?_)gPfFs0eV=OI z9QrkdL_+^Nx!>wigsqB2YT5I8j95zjMym`P2v>)%;ePm97A3W>Dhj^_V|4|(60sJH z)#dEdYPeiY<&A;J6^I#uWqH`(1K5hIBOt5vXwQL2eS^-rv>zf1Wn=Mk;6~$yOiQc8 zE-Sh+%qY}W6=t0k&|au#WyQ?-K5|eAt0SK5ZqGSQbJq4+CU%oWK}m@{5?M zPjoV7ZNWd(N4Z$uT@ zdiavC(YRPmF2iOP?shx`H_$)x3jna-S!xd;iDF79NlI9^Ph5uWQH?r5B%>h9Nq@~_ zpW?&AS;X(SS{9*>E5d!4HH5N@&WfdVMV4UyrSMG~K$JD~_5QOk;D$>Rg-e?1) za<&80KyEoMVmE;b*5$pOw=tTr@T4JB1!-N)wOP@#+Kn2-%}=65WJ(4KoHarkQ_#(@ zIfss>AsUeaZ^sS%QyM)39HM0<>83g18#rHWD5KS(3K=Lx1Tn7wrs+;j)1V!ZBR9dO z*CVQr77vh7jXPyqxw8HDC-7Xkfyh`dMy<55#0BG+-x2)YJ(E?m;#@>g(T&gjn99k2 z!?4tay@lH1Vlnw>kqkSl0Es{5k!kvz4*U563Ni+vnU94KL8e zyNG0S>|uJrf!S%gaiFaaNLX8}#@fCI@D?1nQCj=Ywypgq#jO2mtVJv}wu4jYJ7smn zaIgEQ1=P{e<`iE&&NlDRjenhQ_WjWhiVmOS2=xz`snRbi?`?6iYp|p3D9#rK+UE=Q zk`dtjPCfj2Qm7r9fkAQzjDqH@6Ib++K62PNfG9O|Bm?(lb2u&GZY4LweJ)}mPi%b=N}*4!>}YB2H0AE4$kxnk5^1LYFep+?#n zcZwBh=azw1q@Bxo0}Ux{B5xRJ=PcZGj%=9>B69?d%x&vypb@1BqM)TY@0ilCRaufz8*RgYorn@jB@re9fLBU%$5u&y^d> ziF*}k=Qn>#=x|AYG8CX4zfd~Ffm1K>kludjRP{NewF~(@`>c}4JU}?nMT%t&?t|5E z25U%HHGlzP=au{c(T{W)la6taB>5&#?9vzG4Y2qpfpu2vWVTc`8bS63$K3itmCGrlgTRhym%Yh+@XS)p=gb65)fy}O%0M+oq+|K8Qi07Pk&ch(8#w z&+gB1_6C-*WsIYQ4(T}%Mm3PfPATVCBlF7j$g34d!li~6W1<|=*|~B=|0VJ`oAu7mK?&n>>2EKvmwV{nS^y%l{@kg56Arn+`7pWo zdGIU3uLQqRt$&4Vg_(9gIazl2CV9sWhh*jH)W-rU2rwMJ+NJvw4`0p9P~BfzGociD zfuGatu$egYHu2b)F9#e#_jl|6v9bPVGpS5{DJl6E`hQo(&-FhdA#tuE?i<5-hzyto zaSU?sgB%3wk8^m>=dOlf|Qg=RRr8!om15~B5eB{+; z7LB|rYcS-L%dWKUP%3>FnF#6Yk4Q+DtJ+qmi>$#+JNFh6T)38rX4*ySX(^wKiKYD7 zxxh;WpW}Gxag?3OFHM$Tnpc|0CclP1MzRu@sw9y=61bps=ji=WvHZEXywg@SgzNW* zJNnH%8Dq>}Z{8c#ml}62yuFsQ*-g=1bzH||K`=NuPs5Q@}K$5Li%+4 zX7=!&?`)xE`9tZE8E*PgBhcO?xsOxrXbKv;f<}khwuyy(^fOTVQWht~ezWgs*1k;{ z4`mPDK`=7}g|=$5$ild--Vn}$Guk%Ib%VbNe+Q8_^cyf z4yONSyUdG0N|tAriF_+>b3AW8(^oLB1(jPYJd9kF5so$Pq7AT8#^d)H>tJ*_@a1vr zWyn}4x!7BQgJy7u!G%}^1p^j+bsX5yI>f*V0Oz?xx!Q5Mj$rLU14GR|zj2*2@4cXr z>(BYhYm}lYY@zn%?7FiR*FU zsDdFG&aaz!n=Qjn&xFEmG-EGtq0#6KZ`dzfrLu+onP4*PO`f&^j8=5N#b|5EXl+NX zC8xFZUF+c`ZLJ#@_HSeus8o+!2~e+ei7j`tqcKIoUPKwudc=WDuD@)YI?3c()b5?LFk- zJEebEreUCC9~C8RA41q<0H*1Y3jzLxV8ge|U^GB;uwPxIB(?=JrXQ0fC+2bJ_DJ7% zLo?nL1ImerGH!EbvvTb{)2yVkH|5N%uQ3U4mxxQ7`d4eJ;lpAPLWIMP0cpbiF5;hj zI814)Hi`FmmmI>E=_@lkO_iIkX(FpB@2C4WJ8twjuFH^Xdxdm&PAJDsb zs^5y_b)w(AV5Gm`Ep5>sxt{yZ63`^)jf?OUFiS@I!ymVBBM^?Ur3Csr-Uqlv^V%)g zBXtHG#6LiQ1#a_sQ|wIw4kGinb63f=TL?gZ-)FjUhbw3tz;{2R#~W&buIT#;&wIJI zc2?qnJ(%VmMQcL0z-fmQw0s-1BeAp^zyZ7d@Mi!`9k9Da43>}~M$r7vg60{BT~>x5 zX_3%gYZuZMQ4H{q@D+mi1jgLtnu9><*xF#l4ef>VO}K4S!;vp~!3C~aALi{TG`<{z zRatG(>o6~9!#s}o{vp-4N6^3*@Ozz`(C)?t`$yE?w!7}PkT{L4NjM4^*tt7kuA+w? zAbG^z+eT6TibF#8K%?&kAThKGUtq1Td$Ds2NXzEF7(@x{jn(T0;i{RCByXHG6OvV2 z+eql?nhR4n_XdUoFnXN?Q5mG&s}x~a8@YQ6)~$tzqz{NLMACNg^ggg3%E9+Nkh52h zHgdNrx0x@T3v&bM~L^?^uKF+6sCYX9*WP zXahOSJP77d+jwB3D29cwPO;n~1Wh=+2s6jYT9H_gSrRj3;2umN#ap8N8PK{uLLRdSp3kx90XZOzA z(|RHHg|nsk-pYCh6bv{=VCS)1WZEn)# zn4?n$ChjH?FFXdtPwZQZVOM;+lYe*f9-M*=2V|#p2lqq~Y_p zA~jGHi`DSlgR8w&<}dLw6|pjNRGF_Xw98a?Dl<1;CJ-w#PL+8zR^}p>5kEc(m}6f% zJ6`gLSV^ZUSs5!isMFW_#LN8m1-n)M{DW*&FjnRxxb@Zw6JM(pi}_9U&x6y{7z&Zb z{#r7#k=AFqHKtT$l_DizJeSpiEB53f@CeVAgVtIjP3t>3#*|F=hC6zx$k6nZKv?Y> zWbz|c6!wgTTnRJ2)+5+)k>|3SkwG`U3?LwQ1#Sbz9zCa{?5ZvzUUhR+x+$LkSp+xb zE!rYFC5Xv)TY|F2S*Lo{OM;FfuspxzgP_(Fveb5%)6yLr} zyXo#%ExV~bA5rHINZY*J1F@5_u(3Lm9{!lhCG-KQcV6OzyoAFHj@Uv|-Bdz1{T1Mt zX`5v}O9@RpNlSf!`ij%CkKKy#yjdD_cEV?J*e#Vc1vRh=_;=*Q;Mj8@581iH!h<#^Q0{`0L z5$Fb>Y0Xt~5i@z|BUr?|bK#x1$Z6kdjJFPO9|xTwRNoFPgR+89UKk*LKcEfu4) ztpO-_Hce5ATh!kxWx|+=ic;KS3w-iOOi#zM{7GdQ7|Ze;vxrOo1gfi@@@J>xC}8kv z{5X9~{y+TtKNZGzlak`}mMMMW5|%3`JZ?!a29DuzZV*&hl9QnyvBo470eQ#{doN#b zVpl6Um5ymfJCz=2<}CEt|C zEF2;xtU3`dGI=?|a7fU7)Y!M;*Fx2E1yt#JrO>X4pedXcFxq05U=1taMnhSS7=8>w zrGhnl@jX?`sdcELxv*ybR$O=B6RfsH$7sUvh;a8rf6T9ATqOe$60w;ITde~H>t-Kz zzKOH#BJ=C4SPk`ZqfEUWt6_!M1q87uV>Lj)4DGGVA#?au<41m&H3lN*1Q62`KbM}f zPphf~!n%w_!`Pl~(+v%&Vq=Zf=C4q!`&jfWUUMvpj0zwa5;Wp-5Ca(P;itLf7a_aW zbHX(4%S;5dOU=Vu%xwV_;!y;#5v>r}gg<91bwaKYS|((vF$E0|RIYkk<(ey372|FQ|cHjt;S)qvpkYd^oF~Xz8-BJoZ5< z6r<$dime=SZhJX#$RT}ojo<2_YFYV3JyDADZy&J;t$GFOhessBE*ECakO#sbrlx`5 ztqc_d26pR)+7O5LrMh8K6W~jxlS!rU#sMC_{3jWou!`w|@FMiB8~m}<(;`HjhLMVJ&T&$NMA@D>6`+7#eioejSp z!w2mKa|KM{(E%JX`yTt=5qAfE+M2h$2*jPR~Ekl$M){hWd%~j4OLbr_9N^GQN-DaTSS1bIfD)rA>1WI%T%-m zS}#Y3+IA^hi{X1^go+T?lqAQPxwt?aGRr?&GaYiq7tGm!(25FrllkBgEG3E|5XyyX1U&2Th} z-?k(<+##%4#npr_x{v_idH*wVK!G~vLtcfj0@xj#?`iqz2F@o)6{QK_{F~XjfpdWZryk%mTi|Ss zgVX+*1gDwnbD@M$719%G24*+VFrj=7U8#sgk`sW&WT0!lb}@nZ@SYO{ z<^@lzp`;7sbh6RGu%s={0nm1wkdxpB5Az`=aJ1Zs`zzz9c6DnTO$M`=BjN+!`CJ&e ziE2b(0IHz`G>ZYMZ7zf+0W_Spm_9devgJ`~fJ~-w(2%@(h7%xC1Tz^SnV>f#20blJ zZfUTy&;Qbm^Fh^z=_>b?`p4+mgosAf%Id%MuA5t(?O7S~t~T0#e0aE6@f~)49yk zjd}0pYstL%7W3*c=6&Z2*?Atu2y;sg&d-C57uGQx%3QFc?6iO(WW4et1BeVub~gK- zBMy9mQh3(kSBD5R;q_?3`yr?pRKTQ%v1oo|XSj>=uF& zp_nelvDb*fRBtOF(mA<{0-`NucoIMQX9js0I;)5D4^ol3ua4tGr+oQC^p#8`dg~x4 zfRrHY5mHe__+!&ogdHJE6bDbO;3##}XLOS>f>Qa$)C!wA4?*{S52J_p7~H|4Mb@lr za>=0-O2}(4#G2XV}1&9}2K(1a?0-1?`k72}|cSL|&zhIYPNZKO$BWZg0^=0@P zOk@E_0X#i{r}0|#Ie5}mEq)A7&n$o&gI0YKQs8da(3S#@p|#pabESss13Z1vbzp?l zOP@yUjF}^_(cbp}Hrg-6ZH@22M&BPX`B==s5TX!}(uQGTS%nf0M(qdUu~MVrsZS(R zO@1M9gY*LjwHt2+MTol=WRRir>M^3hT7Jec)NCFAoKGV_8%DVJX)e&pc*Mzl2|#?rY~6tP>^2F+Dhr4v0KpYdaIM)Qfp}dBGj47p((!!@>Co!` z$-!(10l(QukZPzt590pWEK64@Y2-3w==vw%Ar%m zXcXg$f)N}En{2K{0*7@E)D!b=YJ z{{~8+&z_=`+9mJb!~L70n#IKe`S(`&cQ*b)VzkZ!;u0iCC;JF&j=GW7T5HJ+jBfCO zmq+A`2}Izq8^NiN#`RDvhUmsW^qkGVFraExJBaE!HQ+uACtmmhOYEDe7lW(bz*|O_ z3Z;3CXxrKL_;W&R5q2ZqiwnwuCF&QPG<8;}X;L_quc=UDUVsRww&?-ZX*W2S7N~5_ zqU4`k8qsiS!TV+BP$9DQp@fjC0du0#8KH4tyx1bfeueo@xG7W3#Gq@SbO>|AJAeUc zh4Qc`e?M3Cq#Ti8x@0#>pY)^%$BT*e><{0Q_{)C@{t$ggK-a-@&MD@wdB))h_%xJz z@7~XGCM=Az_IV$+o?=sZW=}r9M^Qm(0#D~baYk@`s7v(m4R3%?g}9-n(+Hv$Y$}^g zB9QyRpkdOoZ~Oq2+So}v5h{S04=`an`epx5M9qf(r<5hI^329pXXC3x+XtaloKvCZ z%h3k_1U9-47ZVV8HKTs5`eO_ba3{y}MZhl3gr*IJwssjCKIT>w{-Pvc?D86|tD)~= zuGaxGipcG|FA76aUs(C8+eg4AiD#VCrB!)A>sZl4&( zXU3uD#HtXCPEqTT^MWe1^8sEeNXkboa%Er9Hz;1*f)cV$V~03e)!L6S4brn&??j{+ zacDjUG!lp6o5NxNj3oAkGvoTUzI6yu0~eOMDY)>wxe}OIVLiFQljz8?8ar(4 zxvWePjn-kFh*(P0{&QL&Q69L{k|@<%5ljOUsu_5X4FUn<`6Ap&IIy?7M5ZDd{_Qk> zttrJL?_s7w(1$|Wi-ixs=GmRSjP06@lsYGtUxjf)Z$|5UmFehOp&n@e!d3r}F44oyQ9WAk%^%x4wD)xf8Y#;l*kzzYoTUo(gL-YIXMBmG zGnf)B8>&zHKsU{1v{jm3w~MA7u!5xg2={)1=lYK7yM?*($PD}5O* z_!K@$Y>V$7MPJspz74(TY+$oOt6Gd(R(cAq+A78kf**Y$4o)H^V47PVG~V#k+@4m! zx%&*s8N4f%48f(!V&3IKL%EYT*>canSc2LZ{bFor2r?JR26-c6vx3!#Ry+vsdu!%9 zyko{@X;n|N8<8FG_l~vaLAIwa+EaJ*Xl%zEj`wwi6?V^m7wh?F;zgcfk)3!(&tvDH zR`ovWlsAUD!LGuNB!yalq*d3#Grd8Tlg7vBnbS#^uRp}_K8gP_^CjN=4lkp0aayXgh9K39O1)x~f`%yg>EYQ=W z2zJiW1B1{NAe6u1$=K3VU56_%GhOpH8@@ZIhZ|heBc|k@Xk*)?iZvYn<{I1UlBxC= zZmn3u4Hs93Qngn;*SvKV_yY8nTA`hs>9Fa7b>j$as~%}f)(V>2G(cSfpT z!!w!hv&R)>K0?Utu56uzgArt#&&HQ4LPrR9FWGl<(c1Jcu$kk!vjI3?^j0sfz>7)X zwYDPheVWV~FecX^aRC`{I5M>rC?vkCUUOub)`oYz@UHGze7$X$%J6bLLo)mP6Ff`7 zsUr{=WgQfR>u!b|tlU7E7+3Kwo4Ouj9rn-^V}zUGDvanb(Rwly20AweI_#)YLOK}# z&JhH1KAyd6DR8{hgW_-Z^X-**<``0g_Z)KJ@?T#Di}sya>?HU(Mz=z>JQe`c0ujLi zt$pSSwJC6*JlRuQtM?KA*(i6vgJuA}T|C70hzk@aFJU&>cj>_o+!pT*iJt_NVh zp8x^U3qyVx7DzHS$gge|XDHaq`gp_VCWTV)0jX5NdHGFo21==JoufWN`g(|8cnZ&! zL()tLGbl=uV(3ULb)y))=#f&WrR8q#rEnB*LreD?!Wu@u5$<@c?}PqD5o=XLNyXS~ zM`*9tI0xp-UZtW5ONaX8Af4*;L|^V^v2CBYxC7XbF2aE^jO(G6P;0k4FVny&g+r=ziA5fyc)0yxJUkMx?LoW>SOr2HN!uR#7|td~>z zG#*IFd$%|jvpiI)v+>ryx@^1^qpbSE8?sw}iv;^E_3Jt}a}2O^+&Tljzcb{_t0#C+ zfIshr>Y=FKi-<9Bj>v<9>-ZV+ogQs@Q)+1KTEj)|I#TRKiV{I5_xq={GSQ)^#aNHtxu?A50d51b}PT9l_Mtd>v&NS%dfZ1MOu*~1Vu5~8wFpC zFKW96NyU!PR66`b#uv9u!gGlu6jaY8ZH0KA;RqolG2hR?VZPycrH;_a>bbNn3(w^a zF4pmVInJI7zsgTKLWjwuFdtwxcZF~305rspH@rV7G$ec=Ig|khDEbp)3i*~8br?H- zecLU><7y7*0|Zr|w3AbZI9{RS1b8V4_hKf}Uui%>+h}hc1p_)#q$mO@`UKtf9;gHb zzeCz9g{ojP?nNF8I+FUL%j>i~%FNoh%{BFc=K7J;Cf5MMsY4g*DGMn}}U90L#G6>%aKl3VeSWuE4E=QMEeG3r1 zb>|RJkS~mWb1Alpt~(2W$ZtTS4aFP+!%i45k;VzER>=Q?(OP z0+o6=pKcoOL~U5VMmV2Xr{_q3HjB#$P+Tei|I3)SP}PO+(AfvN4}MbHE#Z^Yg{2x? zj!n50D4^q7V_oH-kLRVy4bebPphC$Qf+t`! z|3-6p+&~Ss0&sQB@RZYa<5*&f!(ov(x)sm;sdUH+D>p2|#~9iI*eojLmI3Vcz|<=G zHZZya&9HMM$UaGLQK48?A-dC>o)*-eE8h5!Qt-TIOTHlCKlC&u77*1Cc zD?8X*%~AN5(fWa8F!dHO44%#sOzwjQY^(*ShA|?93czKJsPL8H{DPVON8F2lARPo5 zC!(R?NuB}TTN23>kGJl4nLXnMWGA;jvgq_L?g-i*s%G1q8A(HCG@D;aCgR9&D|D5@-MqT7SO_RN!^vtNH8S#MdK95qPUd zye|AOPT-Bv5c{V3-lA^bgZzkpk6+15l_`hvO}lNps`^KCtG{<*{lB6;s=jw`?uwtZ z|5JU7y4BYS-?IIb35SOB9@^in{_gnwztrD&Q&)U+hyVZ5f783w4<#*5AHTZ)2CDkV zRhdCB$&vo>#;7)|5YxzL!}yA^PDcnn12N)Pp#OT}M@QJ>;}bV33}M$cWZlUe2C^|e zCWnRxjAY}YOe%@ugQ*lA^*AOcl45f>R8sIzOyDd2zSOFX`Yk7U@gBGM-+E79B8%Q$Y5|oM^tl1LQVV3(F?WBh3+D%w!{}g^1r!?Qz zFVr`Z90yb)F?+qj&%l|gH;A9F*>K`V;Kstwgc$rM*!UrPNc;?e-P3B0s@-b0Oq-@q zq4$UjSy$*Kt8k(hMf2R7P$Uj4vshS-SCta-D_o4@Ya162{Qz9#5*N4Pj<}dJ{2Lv} zzzPShCn{uUP}zIH2JGpe#*w7P;h@Iep`m06j9uPLf23p$<{^)uTrWJ?PT?goYhyo4c6?U3);{OWlM6h*(F#dr?& zeni6iAE0h`ecvnLeNX)K>2+~>*+fDhy)@uP(n~To23!0z%BGhXKQXE{JB*wpIf}7s zs!_IkhbN|xP2G02p=Vfw;jG?RenIC~qB<&9jatO-${u_+t=h0t@=} zMnjw`lFLksEn)~!_}Vig-rnPF`9Twp)!sONcju4a0)cjWQ3A@Ck_)N@omhr#^dnt~ zqT{5fc-bmT6xTeX%6DcAeH!qf)tFu1QCiGX$S7kaiO84+WE@?xS0ZEQoXL2~I3G`W z8^JJ}wCsjigTB!&Ux$Zvv(pm}88DiOHY}^xL;gv;-J1H1R=i#cn4jgT7&37~`bT`A zjb#Ht*uAhD$f5)bGu`M}F15)uE#=g&wB6~yQ>@0-H$Q{?d_x}%RQ(%PJqcB(hAu$U z8F~IUnPubk@L7(~aBtm(ph8TsM(^RC+lfiyt#|PZ4j-;Zdg6&0>;|`V7xjdj7CbqV`TSGvY&EBiWfwuO3QX#`{YZWMzp#GCC8H)Nx12s$Yo&Mg&`HKzk} z?r2#rNoKJxt6o$~pQ;yHu2oz?51E}P7)l5CV3Lq;HI=RgtU&d5%* z!+gYN0AW&l(5J0qq5mQ6OyH|3uE(Dh0wlh$NpK@VR5aE`f|?kYci~0ugBOURfGer- zhfp^Pc>)Cj_=qK59%Ad()?Z6owYFOK+7P!a0)emuZ~-^Kbz)p_DFheZ|9fWceR%=x z&wl=XB=6q2GiT16IdkUBnKNf(wq*wD8u(UicGruj7(;5d%{}^%I>PrQ=1C0`NzUM) zCvR|g&WHzMb=}w`iUJFjggPLfppZCxvA4w=yr)tVMXZw2=97##Ol`v=8oBFm@ z4Ue}OVxwo#X8lRG`HpnA&7s7ZS!-Jsp}dK^nc5KKVv=7y4>3GS>IMdCQ#7VRhYR7g zxuHWF`WTo%?61>Ub4R|;2>&Wnn-m>&K$kMW%Ssv-UF$&&B$8U>Xjw>%mTpI&A^VnI z211527|0I<`;{X@l8&a5nn z)zR^6PC^&E`ofVeJmK%L^kY|-yZrw%Q=feQK7HZUgzw$;g)Vk^(#<2plW=j}#z#u{ zvO{=RV#&DUV}!>mT8GfQ@;*ivO-e}rBZfzE7~^^O;kVlZAO6!4%p54;qYoKVsbPF- zyT*%**@sP!4|bYlG8JvobT2(?&`Ic7PhQ5y%M%q|r}>s*?>v+M(+=fXjvSzN%Ay2O zedu6$j|HVBfX5|ny? z`ps~`l}5d-k|Zj_OX#u4e>=y zNU)F5U+$i#-*et5eX z@0&5%YtvHQLDgj=GyQMI&ofu)+F|)Jf>}GS%Y-n9VVV<^>DHQ+!Fb5Y~8NQl(Bvl(= zQAI_QEs`OP7uOqAqD7`_jjUNcKSD$>*mtw zK@L07)z0TAlmTBXZ}GkzrAMu|OJ1KnAe7&XXX{owwN>RmCnt!SJ5H2|o9(~XtNL*g z;p{+BW^$MdoEq$s=2>3=;Ov++qH%7nKEAP8UE(3-wn1DEjlL{x5)|Vp3C!>DM#S=%jF=hv%q$ft1+d z@G#wO-10Z8N1pbkPebfDS{m`g5j~8a4_~I~IT{jVaDKzZa%sc7eo|O>U>8hi+YR^4 zoRkpUPr>^m<+JV^ws0UJh||Etf|pdpP2)|3%0-z#i{4 zEc5PFgK>lToWSp@v{f3eH$3LZX!f()@uE(rZeZrNtg=Rmbe&a6b4ux zF^cqoj8^q$Jcc!g{- zUe6{YoGpF|vh}a&?KWfO6isTDvg#6<-kmLYCLRsgAKV>r%WMAEmZ-^Q_v-==l9eII zA*NWLHH1g1=dsqXZ*wN-)$gYL?Ay%xaBz|u2z_Y2Y$U!8Rn-6Rj<4B2B}?(#>Aspf zN!{nqOsTp&xTI67OBZoC-iltB8Y>q`#HnO9j>HMRHCB$AKQ2RjO|2sN#thvWYjcmK zx2j9=?b91!l^0TKT&|ja3~nzrRjK0)diQ`*eaxV@{R7aunRL*re-bS8-sBn*+6QXv z>h2{me1>|5ZF8D-xs+9=>^)NUY`5%lUfEg_XxmQSWkaulU$F^L&TQz-c-9ki=pWviK8W#U;5tIuP8*ePqeLdH? zJEKtY7Ar82g*YF~=G*xs3RKUYDO~c&xh4G5)%Do!#$XuKSX4sK~{+kC|b(?e-3>@&jkTvTre$?Xwq~nE6Wca`) zSZ;8sNvSv0~e#lF@Rqt)L$I$8h1ElUD2NC{T|{sh21P-@NgjM)VqfR8K~& zuv?sECXpb*L0XH9PNan=nB3pQ@!W8+OIjV7_9C{}7&2PO5IB#?*V|5Q|ByRG-SS3X zyw#M%@kg?YX84ku#a;iI?|{=E|9WWo3(R*kO^ijtTD?%;&DxWNFfJ|F`DH{qy`$FN zNN2&E>>$L05c~`J{?arnd&z;tyj5io(23;m&xsIIkW^J^lEc2BL%42J`BwSl>lD1QGe0 zf{%)NpLgh?dCk>>MzLpnJ^GyDRkQ={$CQdw z+2>QF3A1H#LeQ|^=!sj_C@UYLj7Xo9m@9f}XEW4W)gx!R;s=hbw2NmJRUI7{O-Tki z&Q2oJ5NJhq@$B3x9Nb1{6weG)7aBJ`pu7qc@E9szkTtPgq8*IOwN{@X)rwSmsey;u z*|{WVtCOlUrpyoH{LZI#$ppXOch?%Cx%L*k)75_3_G9~0x0uFII)^URjN&W)MRwS1 zuZdgUOwxrSzNO!Y&og1HVk@;*3VvpcL=KyXN7gM(y1$R66Y9@29dZ`!P_L8Tt-nuh z)*UiK`jbl_1m*M8H8cqdoS{k#n3pM9Uv9wceH$>palxFJlwm}|J0#GrLp7K&8T4)O z=!`J-_Um#bgdbGRJ|j7)BbB&e^71A5poz!AKZ@Vg3nMk5b2X8Q=j2M9PWrOa4uJG= z5a2(bjC}bC){0QIq*;Xi|TJp--FSnoYWpSzOq($ZR5^ zYyF5`2`2IRNy`ioOhWwv*T1S@yep4(Dj6biWpyU-H9Z9pN?x8|U~uh!Wx6D$3fVEJ zDzF@E_O3cJtjw`#;rgnh2tFn1%no2nuHNnpfqM>`pqA;ZZR_;PrOJnrAxpgBc5D@s zD=m?iX4jr^tEmq?{t8sHwl@cJ)+ARlv@dwEyTJAQ2`)Az%tnN7shop0tRP->YEofx zk{p9^CBcUmOGnNBv65iEmIQwuK_OuTBMIgvN`ifS19~?}FyE5|a}y=OMw8Q%1pj{H zFi9X<2gv1WNpS2;sTA=p!Ox)apyGMihf4U>=+pH!G$fOse&p5)HLx$Q;(lk=SY4fJ z`t!ulf6<@nhx-#d)#3*Cv$$jF9;Ls%-ef;o5L3^L)AixK{B1hS(aoP(+%U8kvFFd+ ztA{itfNR}Nct_Ifb^<>N5l%LZ_?ZFveUsjU=%+{?;0fCcyt7?+S0})eZ{H73u-APQ z?&-9NAN9)5=`?v&j5x78T)v_ymFB zxS5gmWMVlYbI;ehxqC{2j_HZf3s%);zzSLRN?4c((doL{l&BxC3c573GTbf1hN|nd zUu;#5o@CV@etOuripj$WVFQ0GUIsC~AJY5KPpyGQd%3ko^yE~lqB{f5)ItQd=U z;G*q;gLYCc&&&@HQVriJce2nYe0usdK1o)0aarNHjL!5Hjirm#{vDPHf@pIrL50beF=5PC^k+NOR>_5_GKT!<>3rBhAPS&S(} zBU;MbDz2?%SngdwxvJtO89ChAQq$mU@%>Svh{1r1=CEWHx}2+DPJ}Oxs~zpHotRM! znX1wv<1$m6MxOJkGI`GE=;1VWr0A301#_ zj99}Y%q%!ns3Yaj~lyO5+um)Kb7hRf1mvRK(ubH z5BxB_t~SLvV2?LLCq}M-^Eo8Cyq8C!@Cdb;H4=^dt2FX)S$7cE^ko_;wn`cq_nW_& z_x21j5E7^s>p^-AP%H`HvPJ!FuUPqrJccqBDdBMRy`q&ln*+78%hf-a9MRpTKzq?G zT8U@PA&?hzjtj7}jIJnNh?jr1Bt$O}nN*UsKQ^t)Kf^r_lIi=^H2B?|2U+^>_<0a> zp2Aln2M#$?5nE^1Mi$ds?XVjZdUhGl9IZGd;j<*^qmX=FX+HN!_$*27GUxL7Ui0~5 zd2@kFQu`a`^D2G-zDeHXh(|;c+GSlwSs6@xd|ck#vXa!U&z?n|m2^JeVLnq<654N( z*T}O_n>F5C15{o*t|zrYr(SJR<)wqeTKZa(q%a%$ftNNJ!q;JO- zkIrTS)W?`c>y@>h0MBFnpk~1KbnK|@Fqs^4hRKfG29q_CE+c6VRcehr`x(XuZbZ!< zkyh~~Df}y$U%vMb84Boxp8zDCUuWx3%8hw-$PpL~&#l=)>wQa=C2@^1$JZsp$t{A=Rh4*q@0 zzqGG1l8)kE0spk{cJ&$NSGjM>I|X0orw!^imX-z_$dW7DFjAq~=yAQXl<S?V z49wF7=A#DYCtHBIlJxppNf6OAcCp&cJ0SI40NpGUq1sAdB8nnXS`KG$XBftznUIMD zYCFc8_xkI655WmeQgKh;(mx1Kz~niqsZxSaSF)_w7w*j&kXcvDHpt#kab>ozW{3!^ znti^SBYEJMmais@hy9~nTaBD-7ARvPi?UNX#rL~H zkmfx>y0i=%mqW5jHqBcq7`f}J-jTW4DTrE{p>4!!)4x$|im!DyARNxdRrOT&`dIf9 z3O2nbVCj&D7^4!lj#C%~L=^jUvrhfk zCQ#0SR5b4&Jgah=lE^=+cn9UpP6PBy3v6;x19q&aVI1eGPECpKp*?=)uuS%L(J2hPRLAc160m0_m)^BncYW12WG z1EF5Rm;i01Kr5uQ%YC{(WkQm|&sK=EYd@eVJUg2!NMuYD&(Em3*|6YP`o?8^`a2^$ zmCg&`XzGl~Mc*C?Y74Dg>ZZ!@jSf7ub#T&ZMM?EKZV;}HIzl~?D3N4Pc>aH=FV;dkEQuvP# zOOy4&xOv@ZOdV3P*}S_GhPU3XGW8L@CR)Bnt>q9Ux>(f-z^%%a)%(-OaZh|7$d*m? z*UWXP2qN6`#FkZ?nh4Ofe|XT+9~pKEQV+iXGGU9_?XFM#(vl>TiveRt&%J!7WLzI4 z{6BLzTFFz1HbS`!0##W zKl<#)!uKb_|8mFwjsIixi@NPc!{1$;fPeFkfInH_pYk8!bN|HTx|KrxTMTr<;Vdh4 z*W63<7V|~Z>)5AWBN1;dHn&+F=h81b)K8hxU^H>7`KfHv%Lf)d>Q|)87Ah~T>X$#m zTvh=b{aJNrJ1rfxJa4fivI147(k?Dq;B_i@EO@Gm{x$sbL6L5`sy;_JwnccS{Ym7R zYp-!vr41$*w_~HysEbTq+&A=E%riZ-f27NKm3aKV)RdKQO@np8HgMOB+`bx#UoFaQ_u~cCX@Fte150Pc@=p0e07#?vEWmy3wGhNbM9gItTnmSRSEdq zvfxmBR+(HbeMbBMKCkO?hvIWh7d{8hmPU8sbKr1%&UEqFth1W_dS}I<_+)p(=g%hZ zVe~os_Jrof&$GRJW}H4V4#DSAU6I=W!#@w2-0Hjpe7?B*P<$4fTrPe3{Qy2czvuh# z33TDJv$#8betS4RN4oetsBQkldaH?;Jw z^30q$muRckOzHFc3N`u4h{#g8L&sWeS5uBcT;q&VK?dZxZy5^(w1}tOXgr%lNvYFG z&zUp&HT&$!PAIcz8*_p$uvgtoC@6{U935D|B1AYZF^)IzViWuBUj6H0!7tK?I}Ttawd zb78~bX^H&4YJ_gPUhnQy{d#EsGR}WZ&PE5!R!{7biC#hpPDVo;m!nph1niJR<-x;B z-EI;%vDDM{PRMFD6AojV0mz&0p$AFf?dBmvZIFj`C}LXo>dI~yO!#-YyI+{(;kOf; zYPPz=1GUTpwa7ehFhYYd*-3gn`Ro44Hu+`je)T-c#|$Qlsp!+EoumGnBO5!tD1;{2Z6PUm!LFy@B#*&><0?&uXvbk z^e}7I53L^Rcd~8=^eLKXfAwRS`$*n&pjoa7 zgiv*#@=BIc=Y93ez~rQJMW6HCejZRnricqeN%KM$+T(G`XRqotwOCWjxAbT}NwS{$ zUr~Q^lheH9F8V&oMvd5p+o_6f%)1CV#pjha<~3W!;L%ejbiYayD@VV`BW(FMT%!(g+jd&zQ!w(1WlN7~kji4s zwxOWLC&$I-LrrFpgj-Zce~n8{A}&1*ufpP!kPYLB539SZ)K~iNQew6rUoS1xU7^1H zJQj0bm*+{9>LXGtE+yvjHDMrG2nc)1LSR>}=Jc7odU3_LR+iPpw)iMD`q8VhVj$8L zgE1k%h>1?pJ_GCz$^W36-|3~UqdkS|VIsTHz87)Q?Q}=idb`T2f&F5HTDX_m_BO&+ z$Eg+baXelZF`06b!bhm5%;y{tp6`-K2!~$k4<=DE<4ohb%axyT?7HepGxb?@GX9a> zr=nCu?E>}f{|bpjB!`Vk*UZvcwmMfQ;c=y|#G6vJFhepQNzEtmH9GDXbqPtl(re># z;PVUgD}MI!?YH*`$Uf?4BwBT^nEIYWsSq*0;P>(o_@Eq@_44jYUgj&`(l_Wwcg_ms zo1PH4-%A}Km`ELGNFCIzPSuq$F>c34Sj)Z*<{_6xj-gVk?tL&&X}Vr4G0}mi>(mb< z_0!)8Hsd5r)6qKhLrL9XQt{Fqn66WSn53Fas-M))(3q?`5fbVVlWLQ?Q>T6;sdtlV z)qTt(>5ZgI)0aqA-R6Y;G5j{|6x~WrRe9lTLX}P84eD&=kE}*Tct|llABk<)7~Q3- z2!dDV7tYT$P)a2lUZ?gFZ&&w;g~m*|W$OHYLnH2%8130Md&w^8W?Y!2s@eBxJ6i~3 z>-E-EG%JH=)k-?LmK81kpXk^Z)iLl32EmTgY-f|2DiRbnI371x2QLG$*CKJWiPm{l ztg|x97ef+bH^D45MO5Yr;Q;X@@E;m3Pq#1IJ(*K}vZe~A(P^l}%q7wC_f^Rrfuysr{p&n(Z8wo82J|9YyDPdv^+1YBau!vZ*pM^-mm^KOUyLN=unG#@#TMk*p zuqsBw@R91a?NZ@pl_DFFwWBjsaH}Lt%pklgp+q>jA>B-dJ?T0F601{)!ggtkx&hXq zsμ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

    O>sdQ@F^@HIQ90nv>n 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

  1. aARqhq)=a9k1_^V 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
    3$)(^$( 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

    &rVY=vS_YwgDd^&B3xxI0SziW)qSMD9I6 z4&CN^6zf;JQb-&nCFFU$-&lJnIQSvp?aScn@h-BIy%9^UA)m4?ic&IKrla+iXGzz^ z9w2ink|?EI?ru>fLK<%-#XXQ5Wfi|wr*_4tAoU1{!m<-}Y8xS;y@YRN#hF1DyX)$Z zZ-XQgeLo()2u+?_5`{bnis3T15IsT**oDIK_>ejuFoY%uKH@fBAy&p;z}xS7^=Yz)xf>{bu~45|0R~NxvN=QlI>+*` z*ZA^O^h_;jZ!yEc% zTd)aMsFFYZ&YDpiCG@5-*k+G8 z*jl2~W7IRk9!1zyvBFZjV6PU+3o#jX$|c}_q>R%V-eW=LV8;cim*$lQy{Bs?8fax< z*Ogi4a{H!Jp1BpA)B{=MDKz=0W~Ny2I8nn*dYwcCGDXOd@whY4^q`< zGVa1zL)HCYSn@G9WsYkt=irvpw@8PU<1QlgvbtoEZQ7)QBI%IeYcRb`o>UFAp@?S6 zv}Xi*uj|`5?cueWuQKi7*_y~g4iV$qhkB5s3QL(?=C zjUnnUA)!{=DsVTlk}4NxCYoxFlJ9`2*jLk;v#~uGMXG;cfpqd$bgZJIuD%DWkF}}~ zMU0PQ^-rM|!q1%rzu6A%0vB?d87av_XmrtHbCeXL6lV|DxebgL;25ncW! zEHOn~iFxQRjzw+(%e;rVjQOu))rr(0qFE$A&%~kDcDk5M z#cYNgIhPM$#|-mV|2GiA6@c;#9GdUDOa{71j?;iiFW~qsD4K2vl*U#_DS)u&P2jiA5f&y&iV3Zn*~=?ZW>~LCd~#Q0W9# z+6fN>_>hE$u6$^Nho4a^M$3(N%>C+4vzbu!3k*e40h#G-IdPlNjC(Hn zCWIxCL!`yXi+;6KYh|nqHDWcORLv3nKz65k?Rie2HEP#BkwHfZKa8l2jsru8+;-LQ z7v0GOs*Q3V0rR^G8Sq9T%-cb%l>+#__bg-qKE+JMXls%m76MfBJ)Nuf}9 z1kg-+8pp!}{ne|95xJT5FbbTGwXq|Rh~VgDIcYf_bH5Sj`tJu4Kn+A#{DA)Y+Q4{i zPc|ss={v;}IBz9#QAYqjFh^8AtSsP;rQJ55|L?(KA5!yOj2_hP!su}{pM{z4uWW(HR5?D@23NCq!_z8+bYI7(c|D9-8)!_Ajq1ZGB}pNVKk zD_#elP%~>OMlBSsV;piQcPA3jd~KIg;4=7CU2A23gzVx=vs|yE+K7dz)M3!ygQ%ak zt3g(w{~*t0{_HZp%gGwxC}BjaqgxL6xop|8Wk-LE{-El3w7ITIb&K9HW3wasn6F!D zaB=6bR!vl>e)zMn!VHXuaTwwS&L|~CMcNF$*T&qrmu<=PRuh8$hILiCXb=oEl(yy zsMDpnB?%xMxS5v@sBTU(GQSr)*8GG<$wb@_;3%OGy5Az{_z#@e4*e8*x?yJ? z{lcjFHrfCkjqDG7J?UD=cc_9k19~p4SI7)8Co0v1#!aH-WBGo`duR1{dO|u3LRc z+KXr~3ISGu{@?2Yb98|v@&kTxW7$f9V(ba~qDrG_wBX1Bh1%SWe06_2PAS{enfDXT zJqNmcJWdL&ra9;4Fp><);xz#AnvTDnpqb!gjJ z?K;k72wVWr*)*;o+}NAmu3od!cTksuRBuv?Am2cp+nnRWQr0kH!8G zDt5C~?B`>;TOFi61R%1$?W#0XaI95umsLAMSN7(WaL9HRWH;oaBf)B=?mZj~j0|SiIF=8FTC*6k*irHr#zEqP z$X}Po>3A(3mAB%x7U7YRmz*)U*xkNR;d%07=_&Q_?NX5( zFw-;LeJIV^9=2+uapdy<0<*B|C~1o;?d5!OV@~dP(phtE;Em1#<2_?Zh!RemjSQe`)CPk--h% zNizTqtMnAmyc;UTB~wP35l=gVgR95ud>cBpS8T{gZago#4!%V>FN$A%Sac^2iwkhJ=jxc^%gy_@&EE@OZ;EthUi|7 zo<;x1!Jp0Wx8a{`1%4*s9}R==2B*hK;HR|$pF#LZVepTi96qfT_ygPk?HmUG*2&?& ztZ$|Ngx_1(*#FO3!fXC}N<)Knr-E;b04E}U@AM|IgJc-z__4Cb>B6Cgo747`r$bk& z8|=noZ;7&oKNq2BZxlm(ax=fA`3%GAAT6YHm)XE~NbiR^Wv(PFHhox&x#G>DF8nDi z>Vg}}p90cYJ@f%06&q0rWakU)H>zKe-b7#JfjU?ezD><*V(-+GCI>9ACVN>9SE$z| z=GalP0C>90BWmHA!|+0EjP%ZDtTxKQ?liDc_n7%vJl%8wL%y)4#sM$PQkk1@n5lkP z$4Hh-^ODC1bG_VBU$ zjg_=fhgTmC)=gC3@h4WD_n4lg(1%Ulp_)KWgFc6@uwPxl9aJZ&Kmj`%!{USa6J<>6 zQdk_jRivjgpT*-Ei{lp7qdnN=`u3kYqjWy?1S{3gI71^iO-*GTViye5O z-3TQ@*0f)NgSHsK`CH>Ra z5a*@qDP7ijc9K4UW9zFUhg!;eCHF<^Kv7%YjfOL_nZDwTiSr_1=L=Ff4u7+&!>$7Y zQr+;}T- z$0XvL9fofZzP)DnYW);vL&vuNwR6k+6n=MpeCjJu3r38dAGzX-Kp?c^!OAAHWcURN zUK@f+FYKR9fA7JT^mk&{QO&@3+VsD-Wq)k=eyzYq5T5*C!~gT-@J9}`Y`+q_gsSek zM)>V5;Wa(iYG}7vmCKF9&G0omFpfJ0l`cg8)7p!{widf><69DH52xHz{a|io0MZIF zA8`1nwWF--zoKRR(N{I8|H=5K^`|wde^s;k>yI|Azy3$*eK`Jy3!BuR)2#mW8iKoN zwdWD}k?{!9fNfr-qRbsGm>WyyrSKkg$I5j%+3P|_GD7{g;StP^{ts%_|Nae4``;43 z2Oj6$&LR3fiA}|D`ldChe^s;kcaLsbfBg?F`ag9})BZQBf4zo4|MdZt_YhkHX}+M@ z0Trt5%$-Y%QuHa6bvSL|r=d!EW$yIPOTl54P+~a#)9m_%KD)D<(&vg_4qEiF>Dez- zzR_Ne!0w~!SqOrZmFedvf@fTY)bo{BvRO|7;1b`FoBH z9lP+@|3x32{yDI3u8&H7OCNo?&w?P)!~WUy_>vZM&wWkSA1}h(Q+p>j(ql-={@CzO zwgNws@Q;SUPdPdKv{v9V2tO$de#yz<(^`Q)fK4XVISl^slf!?>H9_t-xmxeo`2G@Z|7mt-v3^wwLN02H%Z4GOev2zy8+hee8Gj z{}+C|^HYnvWc_8$k9YkRKaR5@!g!I7Hb0HCF$$aSQ`w)9S2vDFEAnN-cWecIANN)h z!r-@`oSyI1w&aI3gx@l$vHc%U4!^P$_yWS4VepQVjmH%>bnMmm5{1$H{-@uySL#1* zWjsoMYdqH55GNUr^{OR3R=_+^uU*whkKd55l2+jJ3BMo={x{?+rxo}l!e@uU|Au_U zv;w~aY;uz zeF6j)RuE^u8t4t~07yEZ@(so^g^ox0?W-|l40OSKB%2XNNYlAERb2^ZG6Uw;C=i^l)=>Iq$u zP0b^Ct-B?co1Jf=Hdp-y1f~4P?k$Y~%d#Sxf)CZI6_+0$<53 zlm%h%AGCzm`uH*pZRul$c10ie8Ph@^Q*-jZ8688ZmGTblDT=gFh;8$|t&|~Dr7OrJ zjA?3{huAgqvDJ8oQudgCTf-cVhPpnL>LwUEi>tMYqoj@!4Xs8oZYM%s@;-q?ii^M@ z^uA&mq8#U8YaEq9qsZM)`Fxqk{|fk@<{8!Ham^z1x5~NTDeO_3 z0XkKGZU_d)3cF;eFYm$@*bcL1>3%d=>}^v{VXlj-QfD~URzl~-IVuiztBYIuc`&#n z!r#!=*U^8h5SsYd^}crM;u1JO+e(X^RJ9LM^b35nVftm8i@GdAJv5eDgeoMXQH5l2 zg0fV|J$r4JuWR><$jMnW(6Ht5=O)Ow7e;Ym#>>+=+q9j=n zP1-~M%xfWk*8awLO5XEn@h1?D*noqsszlcSi|FoJOZZCn!CeIT%SV1DE}!}vKc<3U zHEu+hFW}k$^d)x%1sbZ9kVqx>Y`{e5DCrFgh}#V_Y4l9a5o#G^D;GXyv{C>Iv~7ES{(^@F93}L`Qz;ao9KI)CjDne)JUp*KK`oMds*FHj zA97v6_u%ipM70CKu{ZMt#wsv&3e1Ox@ua39m3GL;EPX%K%N!PSTjpMMQ$ln^EyK^a z6BNKq0yIE|>x+@i9ie>HaQ-n&?hdu4JM}~!N<7F0Ic*fN)3Ui>P|1MxVYCq{i?5I^ z&Q3YpRf^1muNsf3>dFf-UjWrp(E#@rCc4az)tBv}BkKCP%5O!*py5{oIHPV?FN`Fb ziv$c><*@00dud&(N>DHLC7r=o03{ zMxM`Ii{xjm9Ib*{QxxR@$(u?Q8}|dlCvhUiHaS{R7;4i^P;sDZApjoSO~t26ch60= zv`|J!y*O3fjZ{>2eNcqhbLo&bF;t>Z{hcMu@heaY*kNlXcc!i

    @f@BDG)GVXvDz*1>-}`-7Z65(F6{?dt9m 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

    9Equ`Hj5+y;Yx96X0iIq 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

    5Uw8FnyiXPCq3G8tCd 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⪼C^tx>>4Qu}v^o}Si^o5endz#jirloqs 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 z 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 HHY$$-DwK^ZK98@&8}U@c)tgK4&wpvdz5yw`Tce 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 ZozHfAH9=cHa#s02>U@?h+TDvF{tsgsXioqD literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/chiflibrary/ilorest_chif.so b/venv/lib/python3.10/site-packages/ilorest/chiflibrary/ilorest_chif.so new file mode 100644 index 0000000000000000000000000000000000000000..562f0f6dd98ea6d7d66ceced1401330c96b7dc03 GIT binary patch literal 9918784 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%0DT!VO^CV^xk$t050vt;xXNQE146Vf0ZZozG! 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%0DRVCz21kAK(>^(`iNymU&F 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Šqt&)#!w>iu7WBF&o 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%0DO*PUR=_M%r5-8ttKxSd?;K?FwWy(K4J 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

  2. IZLX&i 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

    @DRH&&-{>SCNnL3JTD0~pNMSL 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νHt@!g+;Gn@%Dp<7-%h|#vObeg5k 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 z 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%0ASJy$%%oM`#fE74J7$2Z^$)e~XL>+o zB(+gCz}>^-6}2S){o(?oj{G==$p+cf>a8>;cx!DmTRX zYweMuSQk>tGRw{>*hSrYHyTd->P(xU=Q#D;+LxT}0%E=qS+cEF9uD45bQCARRDR%c zt6>ZI+Vs0pzjJ$?{DQ9D%M&_X=>TTXyalcXx;V)lO8buLrPogq4U zoiQ~h#v+1%XL?SIMUrci%^BS5Xh@tfi!auQ(5UcYjmV6OF4l<1cv^+R*~hTX)N+|N zm;J;m5gU^ai&POt_4EH*J3ATetdYAY$||#sJu){*&JJeQZu`v3jBjKn`K{z`?X$P; zrm0@*Mgml0rvFp3E#Q;jxkB(<4FXGVc2b%Fs`uAHfVKS$MDPJ_z+;AB9NmDjz-qI8 z&TQlkwBCsWip>EYbI}mB9ZKw!p9)~B>z_h()9 zx5Mli+^>h6!hMIi`jfv2=dI=n_A9p;9r=*r6TB5Y&Mb$07Wq?{nb{1b72mVBYE9yl zLr+FJev?#@!~x?seI{_{dTc{tqVM=kwr1seT-AplSh-z3;GlIF)X$gyak2b|Bz~v- zbJhEGEkD?oZ|zb(m~q@T3_8^|>9}p0&fu+Q^wzT}##@i*tw+-!-pZo4vZjN1>mI#z zZ`zx;ZqZw}rk!{zjowO|x;Jlw>q8OV1KW~w8-aK?E~o<0^sugxut!kaVzx;9X}hAbot$IFg&@@dxRDR{ zluaSAqomk9Wmrf*%>t{nw^o8LW`^T96^gE)th)xO*ZC^OaSmSiTHg-XMo4odv2dl& zH_{E}zrOO=eb25ucGB6ECvuCL)SUJq-aslzOJP*9b0pPq#&jT&C|!DU)2C*w zb!S!C7U7|8uY3E_e7uHJ4{t_syOML3h!TU;&(xb-*&RYY!sJQgMB2jzC95Eh*R_#J zx5fpj+saIJfez542hr~PBwUCWmsv3RtY9Nt4&1<<9 z2Vl#_2h~?{jmYs7H*hs=E1}wZ(dK&5%XiAMPwpU2pZu2XvxVjKKHE^9tr^cn&f1AP z4-<+Mz0`$zkVgDNM#zvxws1|fJyPE?i98+#-GhnmFatDmC3g|+N|0@P+fDgnJi42& zGcL0IDaJ*XwZKK*0WsWOcfduwEML?GiT}u99#ddgRYz@MC}Miko%$;CKU~c6>er(A zB|JosJ^<$9Dt&{upG->{4)XAswCWzc-Bz5f%-$n)dWg2H(Jl?53Y-W$7E`0J?T@<{ zr`}#r-Hq_if{w?>SD08bAFEr>H5V+&)m^YbQMa$Gte~nj0(LZ8R!x|@vxlZ4m{MQ) zvmpbeeH@37sC`u}YM6FdJKpLzuW%kGiz&ABoW5cI6(&0kDR0`hu6;tMAU#Ae+Cdh@ko7*Hsq?Um;Fno2kV;k%j ztR*K0GuYmpUs^XQ-h*M}M3uI3B=f8u*g!0$>1E~JKg>R5-!m@-Gy3VGze#tg;xO~P zg^2F|?+`kF-}4e8CTk+wyX~r;W~Wr%qhAZ5KFZ{WE~p~3Pyd|Gh1v0KWLsYg!KWuO z1LHUQ>$R`oIex)=jW`mi2X%H2aIF90F!yW^b>YO^i2blha}5{hpsSje=(pz8cyQcj zvF?N(;#Dyv&PR5Qp@b@1Lur)Wf1Ugkl@#yp2gn{_#-5sb)!}p~MkjQLCBN++O!yC~ zMR>u2#sb(60?>t<;e*M)Mp5v$!w0ETq-DK2!R9c2l9BIDoIG!BVk+Iaw;K8GN5y$f zw&L}Hvwn{qIjW*#VEZwKg+fT~cLWpHMwoaXory5(gda3)`EG1CtxiNwVh;6R&QOG>EYPp8=T&?HFl8&3~Kr1;cAg zn)dLed+Ua@IcAN+2ib7{tmYNzqA zMIXcLBw>J-Rr|3HnuTp=JUzW#3k%dhf7_8eG;MSAaD&a!MOo&kpIGcOH`^S^+?JoJ zX{Ub=^%f(;r2{RV_syrtI3HZED?ea8Bua<8hBx+;{IV9UJ;ci2g<*73=r%%+nJH`f zVBhp-*U|Jep~q3a>9m^OOHC)|*fw~OUdEei_Qlr6t;e%f>;V-k_r*r2*oRDom%}%f zGT6&li+*5S$D(-%0V=pj+`Ay;>EtHG{Gz6aT~EOtYJ8SD99DrbdGD6jbG}@sZj;{<-Tx5sK>m^~F>P%=Gf3@43gIZ4c479hhNZuPZTh^QdbWBJ zi5L1r7S`X`)8-KrEM^>wDZouk8oa(a!3I8`qt>lwYpMbazgz3{Yu(bnC5A3(oM3H|NOMzQ| zt##-^-=Tr(P=`8n^-YF5W;i-KYX0LVd~=J{Mi&;cSw;?;ug}aeTV`sn0*Pf!ra=Og zNzwLSdh9iAel5u_iW@dD`w>09(hl&&G(5I^AcEe-L@*f1&@;twmsdkHG* zNA+k-zhwZi3l=t_#IS~SGNVpL<$gKdCaFDUSabbE2AI?&y?$eaH9rD9%|x}<-TaEj znb|;;?I5>{FPrsc8&$Ta%HE~2OP`VVX#NUe!hf2rk>B`?2Por%%9!vOjg(JT#sxlO zjnDY)1Tsz(@t)u_-l!V;lTo0@<*D=oz+_Ml()*L#o-SZVem7N@@YQ`B+Tb2jb*HJ_ zuThSTBu-&)(KW1V-3$Z`0q;!!9?dIgC%fJd4o+41y8i6z8m_vAP?vh*9;Lpz+$}QS zVbt4!Z$mO0J<#wFJy-QM$e{O>H|WigL619L_bc?)-SMnCl>ZGaD<_X<@aUer#^83K zZ*y&$HV;$(k5vDcK4W&s-937^Y8G%2aF5Ty+&_sEUgAst=Qtbv6Dqx(#O80YA4KAD z{>}diYFbJV4b2k#HYw82h$bgDjlz{hvQdK1t^F6Scm_k+oA-X%iMh%j+3k}QG+9Q!h&rmsm3K3EOll)@ zIDA=bkWWt>Bz858#0HLHC}*sckgxjfPY_(6ls|#h0KK*N2~kH`^%v%bl!k+BD8aP~ zFUYtYR6kSAEua+_A)wq!Q==bo2jDc zYP8?-g2s|P1(oklZG4m>oVX7+D8cRBGU93NTNtVQ&(KHg{V-kbF`9TXO_`M6X*alR7SK0R}e);nZ{crd9q zb;(4LkclGI0>5K*eVAt1Hk-vyJcl@rZcZ3e0;cBvuw87!TXo3~wuxt^32)seL{wBe z+tEiwK_*Nb=kM^CQ{oq@2a$D{kdwUx`NhfF&Gw3L>e@Dvv$ex?Y3GRyn4CjN0n1aB z`h<@QFDL;mN`zwcYj$N^UxL*BG>JLoNJW);w6d9Rh0YctQL61)((xa|Tj3Q|HHkNQ zwGP$GRK3vHG7v!Tk4GQDkLYF%^(6XuPxO&1czn$ES&gI|1QdP9pi!!6wPlt|;BXj) z@t?vCYLkO+t=e0drGM%&L&_i##WJmO zZ!eOIa4!X?kQ~pwC(L>scW}hAeTXoPkJGZSM~N_@;2n$^&->#t;RDbF@nvH!SP74bSzHRJ3sF9Bc z`qaxwH6^LjEQj#Ux>p2oIWG~2b^l8N#0iPFN3zYojPC~G^kNlb?hv<6jyzYJVnv0R zF+Lo@;G(GUHBsY{4=Ze&!T4?$Je<9Y@Ry~BJ#dQQ5ss|YVgF^?_wWE?YXi$iSmTjBm@t}_@F;&)%DDKLz^lK( zWhB@IwbCfN04p_`tMy+go~aV_A^;ouzQK?zwuH?I2h_|5C-EG|jyT zD1SZ)h5ZZNTAdi!W}(TXX5$SdPTPfRd;ZtSs-Via`iX%S(obDQA53089}} z7XM0{3P2=paSs;!efSvCLaoK6PWPcEHHM+2CbumrrU3NT*WvpJ%&kg?9mDu7cz+a@Bt{Vu*U~fD}ZZL2dhIhF)4hwUfWDrwb zsdW;qCdt+0$wk$!nXm}4nl~@)u!S%G1S@9?PC+SK7J!Dr`U{mY)v5CZNVQuIG1+`O zIU;*+=RE&cqQ2(YWPZ)_yOzQ{zpjU9p40lAZ|5JatJ&;5NQyFC-=#@`IuFJBmU9dR z-lHp+)8nIWyYg*tsqn7AnI@0qldqany?n{cuM38}T$gz{ALk356dr02*oW+wT`CdB zLAM#jq-T)}__%|b4A}P$2H3YyPkyq-SoB91QqH2hF*%hVG}IGUAC{C@a!5I6TvoYP zmvB!Mrog()yoQ>2!2}=VEZMjh9T0h*4!el!!n1lEl`!A4>`*>}n5+iGx`^D<^+oyH z=v+hpc_QALCGiYl-;Z4~kln85AkQd=$S3YfUA1wBx7y*&TxZPVjoB3}MtrbyvfSFI^jh@LzJ#?uMSN&^j@|poh z$-~;S=r-6abvN__Il2)3pJ>$(B4ZCAM6*4B5SQwqK={As#SLP~k=Ss`@1oNwSJNd< zrzE!LWD54FbUnGWcEc=6@<;I!?TeWJ5s4G=0?I>SYuzjyKp{y^us`WZ9j6tMAMAdu z`|2PYd3rv2r2ENOoBRg`G5LoH<#U5aTn44hNJc_yS6XwU+Y2sNmjLPlxr*in~WB%Jm+I(UB1z-tSZUkxDP#9>>SO(j#|} zy0WFCK1Bb)Vl2l!sU3f^VTNVMSJ$Bvhnx@#(@TQ%8Vv`O+h@M{Tm3=bGE3n2`P;>B zXE!rvve4~nl`z>7FpM$guCH7HgRHZ)sLn)w6Bj^Ktpoa|zc5o)>2|o^sA=*e0HnY# zFu9!;Oi<)R_pdPqkouo98Z8@Utg!iW)BUIZ`t*f9?P^u{)yE4ewoRl(hO-)RJoKZ* z@kuYS(HnpEN8&c@`X!8=ItCO>zCelD@%vn~sAeCq@&%NE&$EjVIkOgG zMMk0)MKoGiJ0jABgl&X=M=2VeEmLyTw10E z&BwAB0j9qWb4NFZ2O-{tHS2L}H-XVld(w5#_w(ePBSIgci13uq;5 z(LrbW`u1Zmm-hK!*5>daFZURPZ9b5WO8mL2T(91RNhlErityiB9!&M3;x3$S7ha9i zDcwYz?)Ctu+tfwGNgqyX-jNdaC+z6jfy-Uu0PAu1nHEhETp2b+_G zVPfmkc(gFY^ckN~Nu7A+r9S_fpORmuvwS@xjAz;?vf6+N==b;G71_T zBgC8u>*xL3>b>D5Tv(USu6jC{CS)PwRv zsL8$I^E4_?n>sgGB^UbCpDXnVr5>P?;3}ws8b$lXl_ztPG<$s`IVsBwIanrdk}V>P z!r^9;vdnNmqoa<6=|e0<+HXkTYcw{+FJYPJWZV)NoR0Awc=`xBFhX5_NM^Kyed_&6 z)uqw-7E&W!(%pkYu4%GE$6bhAG_*9hVeY5Q!9V!NeSV>V;(V2SR|AqUR$#pD3J=Cn zs{aL_>lo$QPxTK_>P(+{uu?Bp>h7c>u#roDL8=Uj z713Qr{1)M>?nREVH3{P>;U*>Cuv#NqzRpua&4)qi2h^(qQ|H=QkIW+X_7ghGbaMsL zE56vtO%>{9Z7@+Xfn?lTD%zdmhH{LlB(pNJh9HgdatedgKxGr-uhK)!Tfwz^>jBo? zSIfY|lwkX~vYCRP2Uo|rDzE>4M+O&i`wQ{~MwWRaTL^vQm%PLt1DDH5Y;(9F!Qs?g zZE3s)M2!bW^RGmS)v*oh>=2Ai}FYpC&>)u>z~2<(Yp#QHCcl`bxvcUOn+33KC02QKyfszJ8=7CCcWm^qxS z-FXamUQ<4Q8LZRr%A4>@6SL~t)6y99r~VC#<;pm+-pvH${QICOsPX`^{pO~iE}OoS zsRRU*--G$tzJVtEFC+Zno|8=T2~w}}QR#Dy;DYpG-XnzLl=3Y9wa#xaWabCgUrj4P z`X17g&uz{thC@-ljb-OVb|7D^TS;64$(R4WJ-_*{B_+)uYAXd1dQo1R+ZY8q&zOk* zL1O*^{xP7(vN@rDJi;0ectGy194w|uCnkRe9>&>b7N`xe(+5ym!&rjJ8}!YU-6bF? ziuScSg$pf=k`NoDzlBfo<`=8bMvHhPFB+NYGx2(-cyi)15|J)79CRU+dhLA?0tiEbbb>d12!m_;>k%&m ziI7wIDo6;_qou}-YVBvQY$Qjo&QECH!8mUlmn1>^ak|E;|G%#ZPzUP770? znLjC2d7ZLmq3C&=$`P?LygpN*v<&r9+=U++gPOcvGdR4hVNhDyc`)%qz0;eATmeEH{6r%J9SG=9YRbfo868V~y~5+8_zESdR{h$O@8?cI9vU)FiQ{92(V8L`Vjavht2{WYt&`qe7zE57$s}fOT}2yz zkk(Cp>f|ciSPT8jKSp9^e#f5+)g=0DNe1Oj^0aZ&tPJZ`q>&HEkA_9L5x=$N_>F^Y z$-JA>*sbDH?mtboWClFjl1UXTnGZe9z7?$F2o>$`i{9;vj!@B&%!7Nv7nKUwvA}ir zxi0g$exY2_>Rq-=uDjUX8iW!(aJh-ML`+kUUq>&|df1NWmOmjH`uq370weArq#qW~ z9O_xHQp^L zvI1OA;mrJK=IkCkb?Z0uAb%Bo(#vVQh-NyWx;x#_mqC1qXkg&d%p0vteu?X;$Q8qv z!Q$THRV?n}AF^lDy~yEvcriVFE5ps70Z91TP3uUOAFg$t&hB`Gsw!C@@)? zP+r>i-+a@*dw03e=2FwhJm&h>c}a306lELYldxno?v4Qr4&IRlUr0N%)iQrAQyjL#O@6zS(iM>`jwsFFfd`7X8$`5=_jI z6ZM-{HUBQy5UcqZ0pXQc&GJ}qEb=>N7Txbh04wOKuU}`ASM)aS)VE!bgDK1H5Co_= zA$K@8MP1RG-8SkaAll(StMC7=%bsF{Oen$NdY!MsDNAbGgj}EfPs;uHCzv}ky}0c9RPOdZ<~ptUvo$+Wg^G1h zp6ykcKaU~>d!4m^fh9E4CyV$<6f@#PcHuPGOEfPNA0uCWXK1){zT8>o86$Y9zcGSa zeg~aOQ>~jrw$1LXF~$xQ+^LHMed|+s4(Ay2ir|#Et_!|+*R&?eHX4ycFdR&7g5o_oqQ3`=-ArW#CdmD}f&+?!w<|?Md9&JX=12B|%2Vne3D5`$gho zd`;vIqQCqoYL5IEZHMkf5@X4)%Yq4ucp{DjGo-0${spI`Vrf+}2>`*`e%;4rLrZWpiQms4JmwWjDD|eg9=`2Gu`K$kErMuen zD1Ez1Po?bweCm=fFu8)!+>M$nU|_H?s068t$cit3;FKQ=d)tbidADy1Uf+BC+`{qP z1d)x8>mqQLH<6GVMICao9Eex>9Jwm*me{qU(%_lB`D6mL9MS#?>~ zYjvFg6~)Avn2h6KymdX+TXxm;1_TU2h2XU!9*d$2fLO8LIHDE+4bPJ%LH#z*`%u-U{=kwaw=j&=4 zUmIDY6M;f&JltnhIQGT5aO0ejRqBtAxe&out1sUF+@>IPJk!N)f?!^_0X1U7sP`I# zFJjN)UR@ii`EvRZfM=$%M*`1kcit@^9nQQ1IwxVCFhv?GYqax0S9~U)Q#)L>r*W3k zsiY043fzr26PtO71@L7$87&?4w7K>CF*Ch#_>%odZQ@tyXTH~1zRy@H1PP78LoaeDR~#wiXo z?(;uwI!;2^{ZDC}I-k#tkLcNTe3Q8XB)X+sGod4CV;7rv>-v|PJb$~~t2RsDkhbE| z*zF|N^Q_=Bo?t6k4%oF%75)-Gq4WW`)2;o=wH-y# zzwj?Af(AZUCuYx1cd1(2UYvLxdlejEP|FFO9mOOTMY@eq0vse+{RuDx6zXQ1#65YA@0{rZuk`SES}6O$Lu| zt}5p69_uJh>yAxJ|Be5c;u#(t28kL5$RKr-yfa% zaaA1+=D1_u=Ju>jwX7kvj-c?#B4v?WpL|B^U46nEdnewgO*AM|ZL+~;FV+pDNZMrS z?8&1{!`*QY*v|iN?clpa-f^v`B;F4893{!)57V=Oi0WhJ(Q&_aZU4J2Vu3 z8;~+zLh)I=1$3KCh5;wFeJK%@Q^O7qSNwZ?Bz4FjBh|$7`lcpvxDE2hW(`C~RuuVT zvbma%wDYoi;8dgCUb{iG*Q@WT;oWdecl~rU`il;lr$0h+pS5B*vE|cab4R*Q{y`aP zCVrLb=6*F_$-BE!iK2COzGUO#fv&K|LPyz8=M8rL?ejlKe%iYmm+m&3^v{oBz5GqQ ztBW^ouChS!V+lY0-6^=@LPzjtBmY1vG@KDAUISTJ$%I$92U~+Vp(dKKypQ znXh$b3DDV944Rw^;lA>`Sfjv(EGBk=E4Qm7^>LZYTcP-1ZS9&Xw*b!MR7G$Mr=FIU zEb$6E$Jo*$1gq`IjCg=eRHU3Jg&W*#@j;+I{SFbCPOM5oEl&eB!4gWtciHC28-8&+ zxQ<@!)Q(*oIkykCaenoat%{DLr8}0Zk%j#$;(=vMR3Dl$vP%m`Cxj*}YN;+iAz34U zP7F=0={kmoQzeFvlwRrq5RICwxW(I)CA*k{>>s2`L*Vsef7f7G`jdK^y|RSn(3?HM zTePP?(Zjf7y*{R1uqvnbSx)FSZrql#Joi$sAny&IGfnR40(Nf0xl)$&MW(%&n^eKUVXAL~E z+NT6Qo;BE#D3%H}2Y#M4gf}SjDTUtGvxd#9?$Kygq0g)UcXT9Na1C*DLlzjgGZmPyTVqu5k$k&xRmiCx!lgZ`srzu zlHtN=U-UFYPh<5|si#ZbM+ZoPwURU~tspOyjF&e6pI#^&*dFpi`HW4YRpAX0-N6#d zQW4QbhdVV;&kWFB%=iNYtOfCH_Q%z%)JcE$uY#n`r;)nk|KlCNt-+*8J-tq>H#v1Q zb4Qb=7`I4Zw@H(pi$W^EYwrHYxqimP|6(#!hkNDE#;fDH{;59kgQ>vqUrXL~O z%3GAl6-@lUQPwo6!dDkPwTviq)h~FA46{jio1GJD003x(>)73Y+)W=-gWahj;cxWi zso={Ne3{PBf-qg(>~0UzS1AcDp+*A*?Fx5A@KKaxCZT3Jx5AAM(x;K0;~pzqI7okh zbd4i+b}L+$Cyg8?=|sTy%{4qPFehFuV}n+bv+!?e6-+!2*e}Y#{&ksUug_-p6@ToL z4;72LOSSmqTc1#S6L(YFQ!mNx|Fl(@)*3`#=q`at!20CH@F`XK=nZO;Br{qQsx@HsiLdLq04C9aeOGTN$~ufd zOs~VHIQ+~OS4PB@k1&$F>1vyZl^mg@lRUQO;_(Ik9F1SPV$D6397Ws1>H>DC^BIjV z5rmjmo=>ruqf}-d)&;59<7x3d%GTN$8Uwd7VUtUj4EuzSlmHXGj7Sf#o0e^n7-35q z6}EAbA^L^l@3RL&uy$wNuVD(fGbh;nXn&n*&l=jVw6~e%Ex^XdMb@-`b!{krb)}|R z1=@y#sw616Vym~q)m_JyFSeo3TZs=Gw~J+WU)<-Z<5MgJS>PL}xKZ$>l9FO{ls*uh zLCk0k5vWquP)n$nff&LMpmQh(7aAs`_XdFkl17J9tT|vebbGw~adL4WVZUITyrXP! z(znO>w#RMugY;cw(E{Mq_#@8ri44VLYvpaknDJ?+x^`>eUl4gxNllzitGQ5(t%SLg zqxkOth0me*A%-Tu7EC#&OUsQOuqh`NA-XgIqaYfY99fjuhDa&|X6A@;Ori?kl-bYgm40`q)JAayR^5KTdKYSneO&1;E$?qCgz))Oxt^l#=u*wsR{;-YH=>wzOFD z0du>M9ZS2O$3W|;9b((s?qI@5b_eg!33vM$n^UD8Pxuukrd-dm@_Y~g{SkRYqh8T0 zvWV!nDuG!vAn9k(!zODd{oy^cS1VwAk`R`7$MurlF*A#D>o+1JlIf$ib_X-22j}x9 zm)(?~dg?gN`_>ie5M|Oh`(R?%rDfrvm-Zt*pXenqr~W+DA)j~dExn#bufAeM==!5A zd-PHed4+~ETroG)B>x6vars=zsC%XE_It<{jBDq*kHUtt-_n7!?$OBM<1B6} zUzO$O-dE-Fex~3^PAGFbBY`2Jlo7j$MD3AQkN?M{a4yj4dM( z!T+UiQ$}_TQV_vs`jjn#6h!cU_>|%x1rhu%pVB2rK?J|vrxXP#NY4tYNX>;o3L^Nq zq%;&1X6|*?jcJu)a5!HZd(gnatQx@Spaqf#iGCYvN2;y+0KSGsqvEG1;~}2O+}=ZT zJMq3d1$)`VY%S8*7a%uHQUD6C7bkKq3K7cBp?o{#*X7D%Zr-*hRk$4}k2KK7Dy~a> ztqjbC*a!MCdU?c;b}Hg6!|kPOS^#2Rimb?W1|%rlP8aA z3lu$N(1HffCXI)Uj_jxygVuL=GW#=PH+)lwIBl@B?JFq8c_?;rzw=PMw>8bDXuk8n zYMNX#h&PoBKdjF zZ}?80fW&ZF8Ipxo4EK9^7V86sU8fNEK(oDmyz#kGm|K`Uvsdj_8DGWGIOizx6B}ls zY_^u%%2u*V;u1lh&QUJ*oxQR}L zhSb5FB~r-3ql~yas9R4KfT(8(QDYz%M7FF;!SQut;z?x$X((kmA@tIO64Y|4uCzY! zBTETYZ(r^%L8#LNp2~?i>xR}3blI<>uDb|!c>VWgJn)0tXNY>pH0-JUOl(9MV%Ug& z{BvPRN%|Pla`3xjtBo#a_h5kK0iV{vz8maQpHOP0ANKq40Cz8+EKzn7ClfawyDa$n z1e$m2M_7HAQ4(7DlibGtt6(OZBSC(ma#tVkG1jCq=fy2i2GYZ9reh%;P8>;G zkr^^UKy()AI(KM*z8`t>^c$-Z4y%O2VBA9SW-AlyrC~YGSZ*&wva`5dp4>RESC){@ z(<^S|N}*<^u~e_vOnmk2quMd_+70sO%Va>#`(izkfTf-sX-*xXrc#=9w;yR(?%o~z z%;szQOh!%o%1!WJzTS#2C+W*E%+97&m7&|_q@Ur@o#8XgCj$dC4+rbEOH}{T6LX9x zjM+yP9Ul$0`4TxiGgm_KwY0V|UxNS2J;<;slno3Q5_-Il(dd6nY1#t*Xt2VuN+Ghc zUrG8ovcsRXUpAFnSohBns@?XB#~5dGmyf-nHE66Ka}AA>wjJ zcQg4K7FS{F1~Owx`oq`q!)V%DNr`tnBUy|lj0M}+M<`whKMp64g}yI0`hJV*#AXI+ zk9k|2r}O0+1n68JvG7AmfVw+)F%cpCI-gBXQI~vNqLf)Hl+fm&*V8@tVZD@ZEb@kA zji<-bejsc3@`+4&`hk!wVA(4SK`cF5&w>WQA~~U7xXXl+`UFl%))RVH+kd|9Yyntv zbL!`g#6D3*Y&3-=!;~CYS2&`i3PYvpmg-XK0&mvy^q1CXoK6`2LQMnJR_d(sN~YNX zIF#2VenkIJ)o~O((zq;kUo2;SP>hiE{K=j0N4%1LxUf7r9v}2?7qP?fP z4jq`U0wJaZDrB9u>Jg=U$jlO4^Z+>kYKghr-mYnmZWi&iFE zZbS-6)|&d%QBdgD*|mmsMo1xT7*ppyEFB&fk2ur=_+(cD@R4c&d_(}Y9hVQ__Uba+ z>k4#I0C+JaTTkNVE2_ja`8eR5C4<&*a$Fe^UJJxzUY?|j7zedCEw}=eHd5?)FkmPS zVb%!jH|J$ONFMd+5HvZC)9JO5q0E9ZE=RkR%BL4pY8H$rakpTB$TiiK+UZJzH)0^a zWm5V3nsxk93CkP&!3fSAcA`78Dr*4gh6sZpvlT8U8Zj{Xuu24{CDrPm>GO07po2P& z28<=4q0eJhjbGj+RIoW7$uAvl*1?jT()3!FeA%_%OA zAoFsPfpZn-Z(L(txYqUlqi8*HhFd+<===}GMn=Co5;EG8{jeJkvobpGL*Lsx87+2$ zFtC7(76WEZJ{h!XlTI}aVDh`$uQtw9G6)@NT9A(nw21;f17c}Ydlj)ko7$<-9lQf2 z;0)c_v3d%O_S$?HP*&Yhgb6r9vgt_Z<s_{wDQNN4jHWjc}=~5w6gB)j+O{q)J2(V?h|vimr@q zU2Iqy7Z#ZALnLKRU7Bv^1yzxjFh;mpZ-Ex-BqV8wB{ELKSC`@-IXAZKe;V4!YlG+q zaHJ+y$VPFsI}O_)igwYFR1kE!aZZ6|LxmfUTiM#^KAT4!!`EiaTC`=P9Gjt8S`gVA zH3Suenzv)fJ&m~~tN@Z`FVzeP@+WV#xuRXEh$A%Rma$N3>X;1;KN1wNt0gVqb$S7- z;d@KN6|aQ2M-F_)DvZ{CEVOa>`Uu7$s&VMfRjSCHw*UkY5v9w~ILtwv4zSw*tkU#jxSO!=+_C0Uz7SL4fn zE1quav3qrh!C&Fa4^sItDu1lXzdrp&T2Bv!^aHvxzL)+b+dku=sAl@p(7=B5C+j(S zyCn)}zkZj|pl|Oa-`?v5hOgO&)7}MYZxOei*6R)peQ1f3z`Bb@P7m+x1{Vp^uxQdN7LKX-{AVie%7C}93_IPbc! zhmqo9J>#5rjYX4!GKpAd0E6Zpq3h-Cl!-?lb3Gx^%MV0xTxA_LJ8P&qaFsg_S12l- zG?7Zf?3v22Bhe$$M`2$WA`|w(QyJBG8tjdKH%NtMCv(vU7F>f*U z(;x^WFx}#tHM95hgifHPhqO;wRJ8RB#tS&F)-@5W5{yn+8i%d;tTXOO2 zrC6ON+A*MVq7<;j6(}_YRiUZX<+=r>rr7dz=iiIUdsHWrC0KuWJOERHYMO%r0FSPO zT|W>#BXgh038AU45A7a3Bi#6l*4FVS&?C=B+9P{~rnDFjsoF5C%lIAfq?jh&K`hJn zmTXa}fg&VMSwK?hmu!Mm7K}N#`U^TKE>z7Kui3hoSptX4`Eziw zW`n05Y>nU58;cA1n6|Zt_p)w`H?VGpSlFaS(7?~^9=v$uOlXl zRsGdhaPe1@NoP4OJMOf=I#))!*~4QgpCiLrj{U*UhR7iI=eT5$4)@3NgHsnm7862= zd8(C~+s1FbOV6>NibKuISoUhM>cK^3OTlYW9F92LLb(Mfiu~D@ckC|I8|v(W7>g_z zYJOY(UC6-fwE{6AoQX!yW-Ao`SOu~|;aj|!STP(jz-(C^mkap7P;;#j2L6?jcwyn6 zO3>>EJxKC}b%{-9U4d~`Gp<%M-avF`}Q-jk9n`Er3p zfu1w6zT)Rl^9s_AO%+cu{wrg^aO#CF8b_hAzW)kIEEeRhF8P!ON9;0Ba*5vHQiF_w zy8L7mv|bL<10hGZ1E-$9l`!9F3Ia6b=0_l7{f2+qhRIl{wpFE7M2l$y?=V!^%W3u& zO*b~meN?s><(MZS7Xs!PYPrv5%DTdF1T@7OWJ*Oib%NqNIoxuMWXAS z_;vPj!f?(_tR2IYXwg*{o}cL)NMSjzpU$d}dr%ijUmzbLk{%~1H04NK1x_rgg6&fI zs)QM!*L0gxop?$^lx5~NS3rVR5Rq|N{(>QtRVTjMXt_wn#MdE@{(iQ!wv$Q0-EdT7 z_6OlVBHfc+s_{u{8o-pOn!O6mz%LvT93rB$NoK`7mx-R9ENT2vu|_5y&;5%}G#V38J)x#cpiQIeq}I_4 zZ;Pe32;&cZeYsSfr3c#hUH`*g1#OL5NK(VE#3kF^b%c%ITq@2JIZupbqJy;9QsKuh z+$GjZ{S8C#(C7)n4^0Ud>qc1}CE3zRaF^I@8hs;l-6|TbPkfcW3=LrByvV3C=fMAs zC}r$aTX1eFAb)!2U|q^GJnrZzoU#qH9 z*JV24FCEPVxTs+bGY0QNiw0|2K~;k^UpjqiT)yF2G1ZLaW=E6A2zsRAVBv@vs$;H5 zhiJ_=V*m+>mV~Z9TThz~dinuWy4<$~pQDa~bcpVtAJNe@TcHSphwyQk33Ujh_-X_d!)Q#Kf=JTaj_Y7_bT`9nf{kQ+1(m9SvH}iWGW3-*ftw7q z8!s)QH6j4Esds_A9;{ylk%Ma+XIfloza8?Y?$u8jZ_DF=?p1aOk{YgO`-HxO)wQvm zZnCPN(CY=YB@2CYok?k0@tBYQN8QYB2j}xv#Sw&&|4)RUpG86@(ltonqDqJy{}But zctAxRj;&XbvvYQi=vH7;~z}qIat_(?5uc2neJkSYkZH!nd6{|wcJ(&%$8JgnVL-GI6LHwx3 zijmD!$J0Oaua_%r`D5H;GrOou#Dm_(bng-)a*VO5hF)Z2$qeBo81VhoyV#6MkX{hk znx}bs3N^h&^o&f^;Z!l~WSY9fRJ7QR$yP0=4Tte=X5h(N)sK9uYDJh-cm?|qYK}pL zxzM>toa&6aVgs3;0?ZjXnJGkiLHZHx6@%Uysc zGQ!>rYD*`xc%cb_WHmix;<4wKnek1hvwSVH@a&eMGtrl=)f;b9+-MKMhhG~6|2hx| zw3~E}13@6rdYewt6O*rDc1!-pq!^AvC5HU~uwz=?&c2eHsl?oX)6bFa_aV$91$<$H zCtS;?Pb~8%AI7jr0bj+8vmhmR&2Bfe|-R1wkC^vf=@J* z-i~&(p6QUmZp=EdpN+@7HHM9L3behU@%WhiE!Z%RXck*BCcNNo!vMv@o<4#eFxY-P zBmr{HDSAtxW)SRN(x(j`C50EFlwZYiHW0t6iP@(yd zA?*0+ytzAlT|IqWTd1yx268uFmq;ml`^94S5!&%-!g@MH7?lh^4%B4(A&MI-909Dx zycMKIk}l@yl6{3x6M!Z4mJQ;j-%q$iINUhb^kEz@_w(bWLdUX#x{VDMe#Hn$waNdH#;vzRU$pqE-LexzY>}-3_)PUi<+T+r7&DqCq*RBF zUgOzJN2yqisW8UJQOIS70gc9WI_iY*b{}jjNK-SJq zh;hp~@np>N)v=8E16Oe#ps)n0?Q&D<60dum;U^&RATs)5w>|1kttfq!-G`U`Z(HUJ z>+rnL{bLlZDE6Og-^*Y;6c_>T0KjXzQo|bd&~@iI-ARmQ%};l$&)m&tE>z|Rm3e2M z+4hbTbK_l|d{`o}S;{}4sT0UUso~!b*t_7RVvST{?zfMH;^%wpEK{<$NRV9blNW4~ ze5g;Jy-6jq%%TrZZ=AcSOb~ulZrwb7m38xIvb6n9>A&Zkl|i_NHlbdPi}1cPN`Fti zClKDc)!pMuZ$s&}g}#+ys&ISy(zj4Lqvd1>KfNM5ZCgw}BFwLYmn+O~{BZ>SLSow;d4z=t_R2!(9lCZZ@$_P0L}t{bWfUg zOZT*HkMgBQs`U42;{so9UyZIp6uOsu#shuEeU$M$;it-HG%{EOpLMN1V^=a-puF@N zQmY5KF@Gnx%>M8Uop2UJ_vA??Wd+ebnI$n;Z4rs&He8(;;HrIH(>tlFjx+}EDO|+e zTL*)Ic7{dGwjD(+8kFl%uKPim2@W%|l8^oW(;n8(OR0%U#!^Y!lj`Snswr6K9@ZKD zyFTO5KI0L}c)I#|y3cqoZKb6kc9VU^U46!0%GgUa4)htjqF7FkVqUmwea7!sTGOlW zj&A!-HEx;dM6o(?V9<%#GI}HE`;Q7KRqcyT_eGymQ3;vuEkf)9^#cOt&x&icv(I=l z8QZoYN4hIy>9+8x6MXT@ReXesr+jf6Gljo#pX_efInif4Mi~!RU(WX#~tvaZt;K-JEv8p7Yx@#dRg-U76q!f`-q?GG2 zDP2hEqLf%BrI?grrNlESTadDaQkqCXxm(i}zl_j`gQ~lBRqFLY>Xu5`QYp=ulxo6i z)x_ItT57hGcYSX~5@dzjz%WbE95T-wY;G}i>a?`Ldk4$GMfP6keRq&^-?aCx{+;|1 z5<*h~KO$@xpWq$Xe1WPKO5E*JY6>!~AXhh$hNa}$S^9!L#ATq522UTdpH44=)V)0H zI(IdK|NRQ+cpv%&Pw2NdjOFqJ1ICgcZout-xj!Gg*Q^F)*VaxM8Me%`-;BG>3*`&# zeP;O*eo33PwisZ+f%h4 zr`lhJ3uyhf$Vn2h2d%A1e8%j{k-qC~_d( z`n{UA`PttlyA0bOP!5hxE8&0=1#)dL-6XVKa*qjZeZuEOi-QB`)vltzAJCW@<;%X- zfpfnwmV7`t4C^6ka*_QvH~a@&#w4ZQwP-0gp8O6>2lC(`_NiHrt2M22z_>dN3>`ml z+h%r}+_XTe>4hGE&pro(V`$kAU-o=py0DPm9;^oRI@ITXR{2Nh+p!w%Y<{=1|9-Q+ zU!v~=Hu?@Gybq7MaUh`*0?eXzr;WPAhg^PEqJ1C8TYf#4MEu(OOoDojS7b1 z8f{tJ-9>(Ei2rF-tai=23d4C_jVr1QikV>y*OTQ>k~?x>HM9$XFiuz|ipDp=CcQ_$@EjZaXj&DK!-Th)jHrAvL8hF^<-8hrfj zEM6xbR)>|o--XX1x0|q&5!}~H8K2Y1?`5h#_|!#8HPJY#yvO_0IZBmc2$>J^X>CV!}+PNi>35rl4m0CkP*$uWT z(_6(`c&}VLw>WxY;}P&7R~3xF8%qT}PtV3!EiaVeAxTu6VvYguO3+zou_E zUQ2v{g<^CMZ{h(X#_U2{GYr`-Dlg+KuV1Dg?s>o8`yjTgEOHP=&R6cQdxuM^8hXRqvnIX3}&))b=U?|ejX7}TA2wP>eILyl+1`)(6eVYSf~qWys+;PYy>{ zC;ukeV`CH@>JIgdKDpQ$y;HvOTd)AQHfB2VzcqR(?fFKp2pY|fOJ4g#Vli}r1oW%O zdZ+@z=q8!Uk;{#Gqq}*k2RS>0lXu#&^=#MepzB(gAd?HDJ##3j284Th89ufFv^M## zB2WCVi}rtcpp6x1{e+KCFW3Yh?o40)-TzSj1IhQkV?+jj1e z;|~pJ;&b;9e~qtEq(>g!THTBttbc=mkFNElYi;`grW>($4)yn`f7-^lU;ea7|4tIY z(gA2Tx*dR>6JRexPsv$!ufT@L3XZ0it&Ocj*IgX_*j4*xr+*4sZUFJL{Xk#s{|K&} z8SxWEW`@@5GtIV!e`r?xo?`wNz0Li)y#XIlEeb-~IqkphKd>Lni!U&ls@aq1P_%`AU__ZhIb4LCU23GeE*N|M~m=cG5-la`%l zc##9ew5WbpxOTRciG>nU8w7sx-tsH>6}%SblJr)4XI-~nno+*S*VNk}UXfRlbL-5( zr0E_Hb>{G$=}i1!z|rw0Y{T0{H?`MeJyaTsm+>XNJ^!GOz3^U89{4u@4UnaD#RQ|n z9fWZKU7d6TiP|ZZsR82hVxEm154M?Z{-2d&;zc_98C8GY2a+9@kh@A$%|a`qVvje; zTBUV~?JZVane>}fMh@Z$xs}6Ji^K_bCbA2!+Zdl~(-K=U^ye0BYb0{QBBSqNJ3-&N zR!>L|n$MJXBlq;Qmv^PdpmrN2w*}g`^r@1LynJ1qyh}2()H+R5NFLN)h1jGdoH5(e zkCGI~cW3(c-~HIypV^1@-xO^LHbtZ|=irDg7Q2UIwW8#C#;599EEnesn9a z*O0ij6+>e97j-;0D2JCxj{-^dUWemAp7fq!saY$@EA*DR%a-{8I~t(8FmdU^tCKgDiyg=iZ8V0< zbsS`k<=qOi`j|f{%%d7>2h@X1YeX1dBXXYYq%pa6e`1do7_Rd=XsykzS43DH#pNKp zz}?xH2l8<1E#0Y0i2B@4t9&>23ety2RPe*k>+bJEN)78=k3^6Z_K7JWXiH_+gIz z4K~ZJWu-v^KzWHow zx|@%khoVoAH(!~A%)VBYuZN8w9x+^}qk8^IR#_ogTv$$1hUn&pVl^)Qw%8qco~B~t z6ILKZg{M_vzs{$!_3pm;dLu_k+ZW%Tj>tjJ8dyS0n`z*)bFG1e$q_>kRvz;WAlx^Q zouzOSv(6x0hf@6%r)57oXmV!}hKb%Zy+xUDa>iXH{4{nfqXmW!nc}L_KBO1Jt3ohMP&K<^} zv}6y}tpBpRwQ#O)p0# z6W(LiEtCA+%l4V>Ri9p=^pCWPrH1c@SG_wHHzeC{WT(D}a|=WJP*=Y zi1a>Ym*%cHTX1YrRlfZx`=7yOyNzbOSszZ$D$(er4*>(1RPwApqZdWdYtUP;U&O1^ z_KVSTFczixDEqUU4q@NOGR^+%j&6p;9v;XaN&zw=CberGkZEf3n}mf}BWhEax6jD# zFRPQymAk0g_Q>|hS=s?|Lc5ihO1nk+w06W4hmGm937pC21q~;-|4Alwpaxj)BQ&&7 zm$*(TMgXmP_S_~i&DSF?NmASI`E?I=vzZvg3CzrI#t$_sentWPF0u29yv;)FOXQ}b z(Jh#E!;~BQW;V0C4>#S$PL0bs6JqDpw1C}EWGG}lG^pROZKeiNPLxSG0kge`Gia^c zb*$W#kV7sWAAPCg{OlPJgVdq(6>n5p5{lnUQZg168el*%-l~&!br)B9W2i@8J2;rg zLtba|nAYrGcj8*p927>P(&4)AzBKOMbe5RL)Gcjz_n*&Pcm&~;xv(96^A_*zw{zjg zGi@&Hqq)$U5i*;$q+7Ss#iRvza3}dTUVq2v{DrL{p}i#sFWNDfZ-1be?e8_; zZuf1x3e)s_p=m)?==KgQ7OmUQ`!iK+j_Bf0cqcQ@;gcBuo~}gAKqhJuq__Pel&(J>AJ{B^3CiE)%fGDhiU#B2zP!?d@{|9!@-391{cBWScc8jz$|sKi?c5zkN4@Pt57ItG*{w*;4xr|#6!;LV?W-AYt#zfV}!{(rXY1=3b6(LTW#gntSjo-t+5F*7cbGpCJGVF4pXP57$$DBiyYFmfV9}(tL z`lHt)xS%xqsnQ-jBG_n)x#LmNFqS4$BR4es)Mb1xl(Os&%&X+RCETRNHzYxq!vRNjR@ce1KHmLwZa%X9h43Mua^tQQ~AI7GD70#FV{7 zBP*BpSM2>d8Et`tP`rq>03Ef=?ZwvQCq_Gl(#^Teoo{dN&h+Kq?O=KNr`k*npGqZeS!i=|_I;E`&Q=W` zA1sY`F}=-xN|FABmX>K;5Aj-MD1H_R)t=xxV#=mJQ(qn#WF7t^qwhB%7lEH42EgD$ z0bu&)>cuZjeD7#dy8d{q%sjFS?q~`JZyik|v+0Z7K7G9K^ojHcSN&=TS~HgpDt26Y zC#c7r?^8ck>Q_qjvJg6=Ncp-dZHvz;Uufo0um@upPJ-u}dboik&Q#yoc#gp`@U<^R zTE_kb_>vR0m#imyjo7b!I!0*LVh$}m>@lfgX{-urXD{z+x;DZ&)b^jtso{@}XLBL# z+^XcbV)xXcf?NvN-jV8Ll(Q^N-IyCdkB(@^4;&&vmmHUR~ zNpdxzb;FV|tyvbaX~t|W&nN1z*G!&-tqgwcJ<7w$?)8b!6wBb}mx*paE4MxZNbj^l zjt28j@dV$gI+Y+K3eo<754WG-UK&O7PBv@*U5(PC2S-~=Kn4+`b_yr(l0Rb5qRyVO zbI@hW6@AOc9e~=fKCuo_F0s-_l$`yHa1s4f+p$fy*p;Rg>7hmGxVqHf1Ft_Dy4~fO zhO-MyRD|!LZ0J{4@onTl8bAR@@B^^7vgyL&$QM<~Q&6F>7nR;4@?elN`l0blHD)-= z+tTOn-=yCOE(^3s^kc)xzp0aT$-_~(_Gnz%z!*!-Gel~hO7*=ioQf@^?{&#BCE*TH zgshu-ORriQYWfi3lMh8{!K_ji1{n+Y)3sSLh2@+#Kv`;7gYx&|teMO52Je7({q!36 ztgE{=m_Wtl{`NA9(ju{si%)P}`jV<@(UJUG6`Hae{~awmcGBM`o!39hEA_N4wXrXY zXMa)B?SsTBVoZmwo5I)7ltnD$;&-!`5wCeIccd0~dljLZPHF>49}bcBWz=2`qj{?? z@2hJNrFX6scE6}k{9H=}gm#$Ij@L3UI|leQSAm^E@#koRNMb{V?i5{_Jh8ZmhB#|h zpXU8!GxqRTjivQ3f~AdC`pE9a(rmY_(=IF~P|0s~JQT`yPHdk{Nng0o7yc6W@wSsx zc)Ps92W1PteH`dZ4l4(zv&lOBF=cH*U2XcNv3W$0UH3Fp{_;jPhrMkrXxb3niXl9t zu+Q4qa_(fS)3hXC;$scxD1+Qx6L!P?+-^bSX_v^KsRtAuJ_D@~@wBYTx-g+zc zQ=jq208w9dU-9_2B-u(g@ zH0{cBcE6#ftLqY1l+`6J#XhQom|SHYm68++5~F%^5nLEHuS~mPKoYxV2X3O8RI9J4Q-0;fASkl9oPW+L4`{U?-*`W{ya>m;NIA|M ztK>Uf)$PL?%#JF)4_()l91trci(auov3{L!Hk|DI@*bU~8TzW|j0`cJ6`N2} z5LuJFytu0AyNDxzo(zOixJZIrZno4_X&X)|(aJMa&{lLt@nAmp~>CQoJjZ)vBvgyG0JSQs1~tV_~S*H(Nw?o5;p{W@O` z=%r0P zx7v`y>QyAUTZ{@;`H%%r-0fWU-yLGT9i?y_{fD{^B{z97U{s~i!vVsEbawCy& zY$BGqO|p9S%1D;uJmZayX1lV1+I&KMy(q5CleX(Ug6m4 zVjO(83Qaji?#D;sihLw|<&|PQ%EO6X;l#v}=soBxC8Wc8K7zS$+h=dw<9M4N?zYg* z$Y4U@Zu7zfakySb%h_&L(_|M9;FUA2pSP?Bz=!}$a-tcijMHbp{Y_n+8*v1ui6!_` zuOCO;?XICI+`4fEY_J_KRf6&oN=n|K5}1!Fi4Fjq%FvV!&gi<$8(s_q(UFV~&v}?V|m*Qm3uX> zTtww;ysin#W!H;rf1)^a(I1rS2ml?K$YfnpN8+VVB%4R5A~dDBj_p}!%Djqqqo)S8 zKP}fuIS`;0e)_~W){osiJckLM)l33+a2`A+A=tpLI%*U8aTogXpG~J=5$ZJdJKy7Q z?!GO`;X%ui@6S`eDL=rMe^BMu((oqsLI{Ou_7$8<;~2WWFO$P}JTztOe;LS7(^~8O zD-7l;Enahy%_Bhs-rm=rMR`Rz(oO=KB5xCn_TgSlx>%fYGJkK1+UFS}SClj&Mwnf6 ztK_qK#CYjA{Or-e*K)%`Ox7^rMACke$Dn=p<&GnkVNK28&LXD7CfRh0U>vX1iSUh)!wW{`}EU`iHMree9m&F7ZTJLAvX~qzU7D@VtH1lZ$$I}R0AYQ5Zr`_en2 zUfYtn9?zepfZBqo=@hnOPLZic3Q?*^|2Ajz)RYh<_=p*DFjlAPji{6nBk zspr2_@E`xGNUPf$i3PP4ABL`*q;E}T+7p{oL`;&}jv7PSF{zUWqp2kjcl-kKG+aT< zgC^m_EkcVxOSPB>#{W%%#aiodC-*WH(WKWbNoH-5X^-2=jvyx;2vlb2Y^Lvuq314t z(+Zf45YFqOqPelB_}7a`>CX_cHSfEBX{c^|0eqG))xhWN--6Fue-7|@5o2u3M77pe z8a{Q8y2mHseToXafk)Ly115er$mVJ@1+~y}K3)I#92=NpLSkQXfLu}en8XvJ8&_UW zw>j=2Nq>IsXls($XC!B7v8ZU)z=YzuQkGN4|7;D@6SC%J^x4ML+}!_>g`<~-68}_@ z^nsL6e|PS*{@(mN{q0YG(=*hU?EG}=SK9Z>^nIyF@1BjnFY@0{(DzP#f0K%H<%w06 zIpf0*!A9aG&icJY0UI?kr^jdua;vYW8})$lJ@Be;8zfG*^LjA+`gG~I^Yow}9Ig(n zcE9*dOu1?}!Pn6797Xq3PpYWg4fUzdl1jaA$jyBx)%)sCRo12wm)MPezckj$E(5x>ukWy_wsqssKFhGdx*8ODmB+I;*ZS|1NT$TAAr{p0g1_0 zn`|@>Wlh=hfyzR|CbzEFdz=zrc$-?{5Y<+EGk$PAnu3AHq^{nku&)1yojYXdg=9QW zuHLaQ-2X#)%pVt;LhO~VVDukezSN~w7@E3x;QI>rC5U@&2LZp4sfw`i&QPVYc9mxB zO{CEy?B(+MWMT=uAeXeH(JLh0fG1Y>j<5DAnBGGe8GT6_t;^NqPYr%nsXdi?j2z%> z1y=#TzDao#3MUUCfNF>9cBP8pt=JKhF9wL9nOIq76f)olBUCqIx%Ft!(>5H(&`evg zni=r}&1i?m{=FN}1de6Fx+5Jq0M^67MTd?h#n znf}~BU)5v2s#&Y3s#Ks%TN_lhkx9~Dd{w&XJ1_p6$#Xh?To=eIYosZ!PX0}y&N0g} z?VF-r`Pt8*F5A9K*ahMT zXgJ{_MkF=(aU~oq0N}5~rcbRR zl^&cyWj;pkN$5|1J6=7l8)n5?YvjezNQZlzb+NWTt<)CoS5E9kJ8DZj(JB;U+NTwkLMTgM0d}9w>c`f zXoym6SHKi9oK+C7G5zghk=r{HP?vzxpIflZ&=FR>hf;6nW0?Y}9ZsTwmqr>+zjEmp zbwC*R-3Z)CGiUzn+-_Bk;Y6!C=9m3m^dQ{Ppag4atZ(T*PtcOwuG5OU9*jHuYz^1Y zU7qNb1 zGJRq)X?Uo3H`F}S7pqNiHBf5C5W|ZVvmA+mb&0t_$y>perCP? z{Xgigf(@q4hAJm7z3IPK>H7jTlNx@C_ERT)lf&x?!mH_9dLHWW%3>6!HL#cT#c zuDw9a2|~DukLXk{?}$ZIh__64bNyMr#QJ*~?b4MS9L--T{u`6FG@pNqJ-Ok7H|b9h zzHSnWWaPY{cIh*dMHcOAVjOK}A&lipNVxN3^g~JCUZHPqC$)Et+S_i^_DnzYHnx`= z>lbx@`JFejLV0~Y@j*Gv3{*PFW*3}p5UgE#W{vK9cd1HAF}t_x=ZWrCn%b3^2I!^P0~wfn7Il9=c}1Ih6d< zcNfgZmkZ|2nNCEG-x&Ac*EjspW7h9)zM%cys-qK==8fpm`u*rZo8oOxU;b{&x9v&6 z^pQ{?^w-^|H!6KQrSGfs?0nGr&nanOj~r;@O%(Xv46h^q#SYoqUGFF&Vp(0@E-H&2 z*^(6^oM#eV8VF=CtBE3X$h^erAFYTwj4+4z9fPk3`GPf&T*Y&~*s`a*Re!(TRr zA6a*-q$A$}G4|IZy95U0x}_Wa2$C_@)Ybc@Oe`9^CKF%7^>Ov{*vx#_$HGDgV#-?iIi}j;amc`+GPa ze#GFMxePd$2+kM3%u!7iRQG32>;CWf?z0ixo8WsB{-bRK27cN`!1QF-mECv{?apsJ zLQU6_?hze1*b~f)ZPtM*chMq4^wNi|1MB7Kev>-zUFYUH@XrG`B75dr9=?B1ojE#r zR1++BU$;#+K}k}+{lv!Ok-YOs$R}?&@GQaUcT>{IwA(gF9Txq+Y+QC5^E*(&?f_IT9;a@8b2=pEzz+0IghQ7_Mme4*ZZ{K{g1p8d!ZxN zkM3(Mt^1J{pCATqbIkBHXstD*;!Q$l}o-zj(J#dUHtoY(GEP z`ACxn7hP_oybOZv$N6ZMqDELFk$a>iTJfkFG z1hJ-K`NVzw@w_`nZW-{61@8NQ8>AOL0HpJPG<^cNksPDqVRmSAaJxJlZecY>d%2mu z;6W-lUj=&ygR~uma>2j-(`tsM8hFLmL%b#HX&CkW7Tr@6-uAgoY9hAk!;3q6$ z_t2E*RbzIne`gt^CuI4%>+S(={F@Q-U*%SR9JRVzS8R^K)DPI~1oU_r$d)hH#Yb(0 zwRt9bViC3YRU)C@VuHS--&f5PrABuo#$z~{Kh(AkwfcVU7xeS~m(;E31@4p&ZG7Im z-=O|n{^}o652NiqUJi)A@$kHDU%HdboOnD>f$5)UzSjMY^v#}mq%UBEa`d(A?}pJP zHf#c&vt}K5yd>Z?0-t+l7`x4z_o^2P-R^8K0XC67&W1Wp&VquC)`!@v5@DgES;_?c zh2mH9Z+3~$@rUWAqGLTCh`L~{-7(F8$xX2ugD!f48}@-A=DGU}F>ihXVjhJ`+-qNK zZi-FpZ^M~c398jLBCk3XoR`tvQr}&Hn(glQCDL_ASgwf|#Qu-xIBb`0h$M~gbWZm3 z1$}A8e%th>S$(OT+J=u;*-%{Pp~+*1$xeG;9s_e*F_%kZRu@R|SK5X)^2g9rTnGn$ zwTMC7n%n{+-d#M&3{NvwxPf`9Vx8@+TtPhvqL5x%;tn1og7CL2BqqyBmD8^%mjPv4 z>+ZMDaaqF*TIB~|PoAac++nKq8Ff!k!%9O9pTfy!Wc}*i!;~gF8KQ&T!|&O^^tqQ2 zDHAxU;rr78H{kQl4a^t&*uZ30)=kyDS@|@FsZhKUI;)MnY{s{t_-kkpsv55;(D6ek zE~on1i%9%flcPJKZ1kyvjvp(yy@ zB?8Ih_*K(mmaseIW;_4X^V;d#k&g0T-&N!mJqCIGOb_3?e>DPM`4M3D zWl-F*rJLhd_wBtg9*wDF_;>?buIvy+9!-y+r{Y)hMWQTuc0RdK#JeOopG4WOo3w)a zvXbV%(P3x*fKbplM7WL&GfYS-8Y_YNQjOge|MxqRJb%E?!_(q|sAj*N(?|Xpc!lZA zF|3yKP?>qqMw1afm%;MUFDypxt0Y35{;-`HX2Jn+>?t|WN+vCY89Y%kYVy)b_Zc*2 zx<5|dzJLXUE2;?&+w_JiVhqkz;Dx(nqBX?Nh5mfdYTNAv8@nBB@lnFGN0h(~%Vcm* z%r|=4{cant!xl1Lr@|)O!T3=JY&!4Qb`?89)Niw(R!CC(C;(GTVhue6&;VpN$is`j z2e!8cYg~bJ0$hcf`Wr&lrq}w)JbrUu8Em(;2QGe>0e9cO0q$40S$ZN3Ws&gw!-jIbYeX>R(K@CY-jccC*-RF^#xx)xtBZc9VRgO;gC{2EAjLfBa7C zT)W)luU6+?TAamvx)JESJjjvdS~m$rEUGo>Uk5bmJRy2CEUmiBvm+twL95)^rJ{iV zf~r}x0%<@{8A5}&hLEQ7@lexWIXFze%RicL9Fw4^tY{2VQRuoq&}{Xe);eC$>)t#4 zz4~)YiDUl5(%CD!a&Fu-f>NDLD(5czm-XVaJFFK!eLye1rkMNoKe=A$2s6A( zvp)YD%Ku08`qjMr$-MmCef~zD|F6n_r1IbD^BW1AN&aB0Gb5FmrvbPB0_zt>0(<=2 zpnd&}p9WjfS@+1>){UKfGY6}gv(?Ogd0>6Vsb-dbE`QJux$f36`cY_>EdA`}166SN zQyH9luXckb`4U|yA?kRLEtF_UF**4^`;9g}T zrc-BG&o}*SbnXgoS& z0iTUc)4EgOrHFj4tIJCBxbBSIZIuYcZDSK$cSoewC3#cU&1yQhBfbTpEj8v9l3x-@4c%IW=6-m@Y~DBhps z^y&PQmDfyO5k0eM|K3Cu6J8WHGA}&WSP&kYWzOspYq%Gpw+5R(J(uP^%T`2xq4>5u zaS;9hlf7PY`7Mx3ICZ1tR>&XKP?w6As{|9hYQwt%{4EI%-2Z5)61`>K(|CjzLZ7B$ zx9<*V?!TO8)X@EA8=CU@49z-9x?MhE5MG}yuA3(n{F_rr4b8pfl5G{ROSGmyU19ru zvRvzvuAdxbzccNWkU(8yd3`kl4k&kTf9mlo%c4wrn}Bo6PV`@1=8J_{S>YPC(`sld zwu@}9=b*QCKq@X68O3)k;A}_E!4rS_0jg@>?g1VQ@pjRmz;;FC>2KihnR7KxI)!Ug_fk=?K(tVrIwj23 zr5-7lA_z;QG7|CdcuB9di6xLDAwRwiKQVX9f-x@@a2U6E!>uZb(xjG<732yvOWwj} zi>o7OZ*IK2jCQu;cXxh~Kb9tuP+uudHE#Iz*I$2lclUXFHSiZnCuYx1m;Sw>fhwwJ zhf~KCg+tZv7PNzc(2M%F{xz%fGGFHn zs{J zp?u0;U$H!N-GR#M`>i7N6_1Xl*(f)OFRdeXUmU|&c7W}Esod9^N8Wv0NR0Tchxq02 zyF6Ac_WMBJmB()M{Qph5at&BJ2WxSY-(jyWG zMH7raH~&>b)lt6KIVyILijB%EcBmDrEN~C|%zb?3gOvFwWgg%&ub{$oHvw~%&$uRO zPI;q%E-2{F&!yxBGoA0><|zL^IKUH}EI^Ihxv9{?-8 zf$3vJYw8l;RI{48 zNKG~Prb_Wx2~0EP9d;P&d6-(s0WHqvUz6up5$h>AJ+6|=kJeD6FU`T{ZuO0Hqmj1L z$zukp+%H5hm_U+S?4GvmY;Z$&u=B$7cd;Ayol(ReUA?d6)fU6bCmmF#3vt~C^RpC@ z2kK4Rl+XmQ4#-Mhgr)eeNrQd=X3M;oF=Q7{Z;!BwhT}}PdwO-XF47-G> zG0JdV>7U>_fZZHpyrZ7?;5jF{HASe`-9O7PyFK8xNq|frMyfoD^7IQi`%;tVP&xU- zXMETL%IvGqY3tqY7AD^Nb2UPcio0y`!L>Vy=+RDCSfuk67U?3kXEDMe1^V;>8YMb; z+(Uvl6raR_qG`ZwrvIj`+xy^UT(fG{|5sEsYgsU>E(b!K|`&K5zL25JLqUz?AJnv%Hf1`^|>vN_Vga_U}yq zdkXU&M8EtRh@SDbFtzFS5N`yVpjrHFdvVzdAyO#pA78&7|&alxR6$ha@u1Nm_nrL-z`s6Al z%Vyh52i=Q4b%0XM0$EPS0=S0(EDo{S74V!#V|G{0)xO|2F$!L#>f~tc#`x4vl=^3- z9zbe9x0~4?GxdoWL^x(2!G5joT=elSntOnd;lKO}tG-F`&xUKg$E$-!v6qry&M$W7 z_e^i_q}Eg4604EJ-EQ|Aesaf7|C*!(&g14xH{=WjKnU&RSAg>{YIgN+ZjRcv3@Np< zH}kx4mLMvEb%k!a3hK*FiBe4o@3s?YUm5@;H^?Vh(-F?&02^0zG*05Wb>|8qww=@^ z9N)Xpzn>Aj-^hCo=eA4gY|Z1p7B3>PmQbLX;20JfBNOibZ6PDGrn=+*BDUW_NJbZF zRy$RRj?kppCf{xAG4U;n_( z$9e2-tcZ&d@GpJ`7SrJD-i9n;zte zb+4b@H!w*7h1CiklY|gZ!QHpWkT4Wx-13}z3@HP$oMP)6En%l@!Y@fBcsoEFKi4_c zDEs#fM%h>4G2f;GL3jB)X!tj7XZ!as%HA5}#>o{d$YSwBM9-Bv3kqvF9w`}gl;RbR z2E}7v&E$6ze0yJCYwc~N_Fh$cU93IA3UszgpO#&m7d>YXTa02Kmn0L$IZLOZ_+!-Y zo8*9Zmv?T>Jj}?irQ@y>0Qy=^+_Y^6wQJN&BXnDPxDYB1$52LQ?7vn!$4-Y4 zKikMYdVm`{#fIQN6AdLl;6mQ^l~A%~E>k1bvs)Wd**l3!L~1D8k4UeCeOv$+1V60%Qnc-OWk%J*u*u4)Q4sQ>~jM49u5Ek zG*Lq!V!2af8ADT9KU$No-g&_=Q{(G6TXj65I!>dGP2{WW47;brQ^W)@WIBfEgEdd~ zr1xIuKc5xw>rWPJ#IF@FHeJF$+5Y}F{qP#!<3K-rtj9u+01KzyX%u#%>*;$CyV|gD zFHY)he^d`{M?3RdDe3qUrEW$=oRi)8O3H?eoyjC=sjy+5)deBy~* zT#m;G9!Ya9AL-UVXJdNV1jEP;a+^O0Y174CHM+P2>_8MUvK4_1-}1j;Br`tIe^z^Q zVlkME8?ro*@ps2X#im(w7N!@GKOl8YleoqOv9vmUIIW^>$%Jim4^?Qk4_=4k`Sio} zjowd61FUIdRWfoSp2y0M6QW_T!_~74`l&n$%xGV+v+v){S6To5L2YeA)W3&cvHpd` zM|QTn4fJs%2$no+s5#Xa{j-Wzspwc0{f$VyM^~k$m%u{u^CE|*{#ALEC07LxO=+Va$Y0mqw=&(gaz7XE>sG6kxoSm&Dvq~cIO6wVzLh65 zsHPu`Ylw>6RCxJWL$|*NG(v!$5uh_Yx_0qYuP|k0h3Idgldgr+9FS^DUrDW`9|cEX6SOs)}@|NES404*J2{QHIa|ExgL)IR)WlTTXZ)eWSZu zMEdk?YHZ6q2}kSuWBAG|8?dn|RGuttRW{)3NbfS@HE@j``)tL4@27mIC#xu5Xypkl zHQ=pDTU9aiVxIx;R&CWDm$-KW=s^bmuy0RUUHiVHcsnoWHG;UMC-;puoe=p-<2mJmXj9*+u8muQafvqVKe=bLsW7rJ+H^qVwZ8R1yV0hjBSa|5 zoA_mPTS>I3)s#;gpHcm2(|(g4(;eRV(Wcf_8*3Zy_2W9dNv`3M+ow0lhpOtu#%iCQ zJ^xGmIXM0^y?dQ`DtX%j<_5;MEU}|3@#e6^>y^o8)!k6M4}TR@Y#@vsyH>N65JCJt z%UezV2cv{}bztHdQ3=F(8S! z2hu@q5*gCL^j92BJoPPNVv9fi9;)*ae?6+ z>~uEIJYB?>B7GUnmp(SsDVf=8b@?~mz_-+Uk^%7FR;xhxzzzt))fI_X5^pEI4b%W8 zw1D)HlT3jdP7Rm|x8>}7$c;@1BP!7Ek>cND`+iAetbanq#scw$_`Gt!m_h`mzbBdh*g^@Yxh+uQ-#Qq$d5$?3dx>%|+xMLhg#8q`Oh1lgR7f{aPt8 zti&@&tU#JKK9c1jrd*b}i1%f@Nt65?Cj}7oN$MflgefNEopm zFqUjkcP_$$RiEl+Yf4Nt;MQBAXO|6JUtit}($(qkqMWfeo^?Oo%vxg@CvSzsT^?4s z-YTcFjfzBRk^5V^NI79aDxy=1l-!4VM0Bl_b<%9kf&8!pkDR%ZD}HAaAuY{BaUL>p z`qtS%W=?AnS2)KW&7)b;#Gl04tgZ9;NPLZ$`|_B)BiTEDR82CwK$w%rkmbeWsSVQS z6;BYqVs9=lzC{q349t?00w&k83oiuIQ0!yshLaUnrp za#qHpl)m)xVTuitSs& z66=N~-VD@E8{Wu%eYfjTr_#_p>oYnhrViKb5x<&G#bY}mcQSEe4|g(mAki5iY>&vL zJJ#hP<|F%UFY7?)Y~A~%u~Jf6MJqaBH7@I+0X`|59MQ)@)^Z^Ez1LDbm%{I-23&e~ zaW&P$iO$7|FLXt8THlOxgRjkKGgd~MYl}zAd^29=n+b^Esao{Bd~hotGkW#C-U$8h z(~#{EfV#mi7@<$i=#)|?cYklg^I(>q?q*;Ao9nFp6{@e(8P}5fnYtN$^iKxB2c|Rq zBrCE5NzP6KQ)aW#7>_D|_-_sDF#gOvRy+tduaY3sgMCF6iPs4a?0#lf=lX40#3CWd zu}TswoLJ)yQHE6Zb(-}>Rl|U_T%{hRlzO$ZC!59Q!8saw*R;030PLvw0?_6;wuwl*mO)PT)q*=7Fu}-a)|kddZFi?3DCTg zV%lOAh7(*Ufny5XU$@JM7>b+Kp{Cz{LQP`}y5twRAs*##pCVl=fl%&C8i0#ZXXMC# zyS<{+?0O&8g0F)PHFS%nbu{}P&3`K&SOHX}B3q@Du1Ez4;UAbk`C#IU@W$8f& zg-#*T`i8I#l}0lKA&7F{LS%P^gqr3gktIAlVPh2>)4r031gnr z_i(TFe-!RxnUMvJpJwG*v-?haykpTWc*Nkg(_MVN5n$JN&?#hT^VUX8ryiQW@J2%%p`jp*6#ce4Y&szY5D-(FJf^`gDTIcfeLb3%ss z`uOVa2-JCXxxBKfaYnj)v-z-n))O>M(5K9V_&?v@OWzM)KSPLeKm68*j1J%Z(zv_& zanS1udagCT|PRlMB7m84!&Dd+fZz}edU^Jjx!$H~VkXZBP!) z!LWg(42D%_xhW4C6}}v2RJiF6P@$cu(Dcl{xMBIXqJp*o?9UsbLSO&(H9^PKp6`=$ zf<#1DDWFtdBrp;0&v#Mn1Vgjx=kAMnhRkS>%$MAFuWOWDXW~AQ>1D_StjWB{*n=0C zIV`f+69ZaWD{oXAG498|U07Hqt=kQ?C6?#Ch;y8a?+=p4Fa?F^ij_IU3&mt&O5MUA z&j)*qZ_+~xil?Sqd(&MqS7(Rgj|&Efy}dLJB~mf!U&a(a&Z{<%>k zcYPu{3RGoRZvy%z!I8Z7ag! z)VdGvxBiUq@c+sE_qyjb)MIkso5}Qe5OYWD3Ew^7>v!_?A5{Its(xJH{vjWd z+<4Mi{Ei8NaTtD8?Qp%!grqo-#QxJYzLh$0m6&2M4?vicJ#&KkmX2&8N0(^lnm4wJiOP+p|9`9J)<5+n$Wd5ULdWx`*3N=qv?b z>RQRH+8lkM|N2(NKdvt?&UgH2k;k8wMf_>ihd-^m@u!WxwJqRJK^y+G)1Uo*%AfXe z{&Z-`pN=i~v%mg?+VQ7QH9D!r0V;f;{&ZH2E~;^mY8UG?XXgZOi(Y8<8-hpX@r z`qND{j#P~z)i_Fpf1*D}W0A0RGW23;*JypUl=%I<&; zJNb)Tnek^g<#$H&FE2Nm-}De9Izu{c)8qSG{~EcBmuyyU50meTigPrAv(`cE=){?lJsLZ{5(IecaeebaaQ&Pn-AHgv zvsISgI~uP0XutWzUlHXeDQogUax7+7%~Bu5YnvVvr!KiH zw9iGwiQxU=2&Z378c18X%C@S2hB$+g;f`K2YS5RIqSp5`G>OdlWU&*pxw{6sW;%b zBQCM9HXv0R?x}+qY^!~&$e;_Xw`7E7iKASf!*o`#Hr?sqtv_D1ys>Uo8)HckT0tCEY4o7irDOdDYEsKi`w;Us#trswewP*!~9FBVE?HZO$=sFTD@Go3n)V_mMS+$ z^L_HUuEeAB(8b_!7$a1b$PzvWC~KIrSLvTc+bu$_>IjqGwg43 zcUELsXmofWhXj!W-HKZ4eIGSfO!dY)HIAj?u<=#6X(E4~wQ7IW_y4eq%F65b0>C%E zl%wzNYrm$boSFR^eKhWgP7+Y|Yp3}37hhz(7<4aaysHhy%k$}OGwTqO!`lP5?Z^84Usos8)MXWHJ9 zqwjQ0nqAIY=QQ*Jaf`Z_{GH9}-`ZQQyLH%zcE{X&F{sO60Fl1|Ciu`s?Hsg&n||xp_u8ZdQM{wJ|6*|_(KWN^!2mN+C9ctrqH|z@IwD|MLTUY8KydVf? z03oGY#KHbH=sc^kSjkXCP?uyyY0Y7ecHXgsjXnF*QLCz=d2EUuNSR6lZUsE!*Sq^a9 z?EZi(|F|>un@pV*x2nzqT*_qyPar7F4#0A33P+(u9*`%hRt!l6JB^bLk>@7==$97x z7V9vQqic@f6l6o4C=9M5eC~XF!-)0ZN;Yij!EXfM)1>ua)OpqeHB9nbzr?yFW#mXknLQp-CccW=8Uw?9H!3L>+|y;2s)Eb2EM*P-}HBtJ#ANQ?&FFuohLY%hGeLYo$W$I>B3a zKaKgt+^^A{eZku)Sa%gAQk|)e{Lhic1>PYq6nh`qC1)vQu4c@u#zQ)#$=ZkxNZW|o znSY4lJo<@?WVF@kQ**EJA$v0`O6{e7tfjZ^X?5zJhS<$powzV!-M=;=e&}1z@pnbq z4z`S~R!06;{mk`G7!jTsLEjdDLF2$IzZtYp>@t%KtPknkY5IL0w`;alzCo4mp|a#( zt>hn`+ze*(71Ry-2c=m&o5}a=`APD3_Xf6;#J|~i{v`XVtZ#Ska~apOr-%~ytEb=5 z0sS7k#!_<)ZNDKY+w14t=^pWA!)@q?fU^%I{OY{{S2yFy7>Af}^G(p9*?G47D|VD! z(CmG?anV)U@8ne-nx}LTRgou$RNk1lrPtz5s*jMV7 zu91+fyCPjP>kmFGIN}m~Bs6n_3Q4Q$Fx z;g&aA+VkG2J#y~2vH{Nsf3Tsqp011vcs03UwvFe_8h!^0W|Q0b3jy#xo|(jtgG9w} z;6)e%BM9vS2u}*zH1gIr61d)figB7XR`{49cCf0o;(KQFLUHZuT=h(2z3pc+bk~S) z55(ShjZfU7#37y^ubu-xe#d=Xdb&S7TE;d)LhuIE&><1SAqw!r#np2|@49{pm}F&W@%y2;%N6M72kOhLL| zqis?n$7g2!{TCY*2=AiECsfU-kn@)-r|LY-Yd0xw#7GS@cAi`Vp2vfy+jY;r=Hc@n zSiiG+R+>|#38v*l?SdSdN9Hx+I|_$_#`*6}`yUPWg9<5^Zd z;L}?VRotT;?jSB#=v|a57ra+eme@*Tkt*GEX`!a79&~p_ZG_uaGPF+Jt{HSE*X-RP zciUQ}%Y==^?iyce%UQ+;*HfVG@8r1e=4MLe_~SqQp6R0uKo0+B=$jWABYR4cx0;Yu zVVq;mfN=>#?DF+M1wRJ7JjJ}K3KXL#|7{!G{go5>x!W?s@V(Gu^2zOB(w6nvUF|U$ z4OXcenC)(vFW8%cb@`M?{e)E8Po%EoTQhkp{)0%(<1sPw{_FjOQ6Bi)XBs^&6BeH_ zeD34l1Y$m8jMjXd_pZ?+xmRG(w7y^UjCpwJ;WPinVemRy(Jr+8mNa}I7N zymAW@Ll3FBP&+uQrpt>Yz+lSOznn`8xi6)CG%}bhRuF$be^5zQ*lS)=-vb-Qx89s;n6+e;%&se&*i)yE*g3z810lt>AF7-{0n6 z&VAFTXvLy4`1pT}#nfO}u&v@bjI8d#OQ?E|_j7k=0H~Yr$!rS>?N_T}f+dc5$3nx% z=WLD6EoC@r;4$f-gzPNL8L~t1HkM{rl)1s|%G;WhA7=|V^{VcuOkRfs9fF|IBY?pJ zFZ!LGslFNtscr*oY9p&-u#a=2eCFHAl<#gzzJpp(-@&)R4f455 z$%VkBvnVu$LT=riCN0D}ImWEp{%llkrN#H?*Q|fYD-kRdd(DW8_K{kr>`$f{PQOsI zSE|`lmHMVnEmx`nJ*AEfkQpLm7W>>|l{-PX1>}a}hcl?0Xz?5zlg>W}cXkc_U5Tq` zb`skQ#?f)o*lSw5b?G<{X2Rk}#P6qg9pFM+S zlWO)Zr5^25?;{n;96OWD^T>2h%`wW@^^7gxC+U=9f6AOU>V8riy&}QLg*h&_GdVq) zbwNR51F!l_8G^%kxaL#@DlS+9{R1Y6)2gmdzgjYYpbhKwRLOl%cCQCV((=gNe5(=q zn<0Mw$HCK1CR>6h63z6T;UMl)|Ma#-kOR+5{eiyz66)9W*BI6e8UPTtrY2k8-XrND zR=aht`nzti_HR)A(Y zYH2X-8}iNM^N$;aKRXC}(Ta7ns!q2{(!$vLW!AJ}_tQqsET1DVd$e)sD1|p{gYJSKmUR z7Z~X;@dl`&-1J9POh}|rYUmV9y{Go{9%SB*zJbq=>3skkDA~s zqTqcdIO=F*2CMEJ!tTC&NL@2`qopsk?1rd5^bdir4EqXabnI*@b(t%^$;R#e)2*xB z0ao`L0b6wYzF1=1o9b$+5S9q&>K91k(>>&askO|9{{_7ty3vs60ut#M(DSAN<%LX9WkrJ4KgByWps}>a;+0`hD>-E4HY(o=+XyzG9z? ziZ|NlbH(r5=S#(#`Q#W^P}kJzW@lycw2J6|*!(;TZd}JbnE!|7R}hW94A>f))rlYO zKTVD^Gxh-fpfGc0R&m*XKQrr(@yt{oEEftIYB2#1<4YP!O_y%0@xcMs4uzClNb^O| zX&;AKr+hA3?6d*lnpp90Ax!&h#n z%5zm&$3+j(Wahr}FkiW&6a}xZzgA_9m#O|*>Id(43CYoH)nz#i3&{n(+#!?$zdvwg zzV1UU96ddfrhi-jTdHFBpkj!MGMpBjRdZtZ6{4rRWxiRm<3AVqp^Jtb&N7@gDeA?DA*(cSp-dxD6Texzh#4!tlDO8dFaJ=%7> ztko|V3)|XyR|8Tq2%0Hg(eS+`3`Q9V=eq3d{6hFHLKYQ`LF!I!hf$kwXB#!5W*^Ca+y<^>@rxy@aVvdi9ag1$e}hAq{lHyCOEJiwT7 z^o>yMEDF0%r)NZ6s*p>g?nGbkNnh|}6&$33FXa^c9Q0j#UvN4F>rT)BY-a$x2~&Y} z)N&6)D-@e7#!dFSFMfHR2_xm*Vh6{;1%c$;(I~4Z=B0d?SyM$eJgQEFVkcX5xd+`{ ze6NPndkAr^ll2hN(-eWPv#LIW%|uoI!*tD1>Ed#q_&JFl(VhXhZnNS+G&I%kZAGj4 z>idC zi*MYYJ8yF>_H2B~V3qZaf7*)1=l|LoKgc(}UOkXP?nR`#%j+SCGn>797 z5lQW>LNgceBlH4qYlqoioe|vAVt=(dG{esIYA$FIE?JHG6iy5)$ew>;DPVQJ75RUe zEeAXEBjpI_$rzf?)h4e+8EbA?yLX2qwpR}LdSZ{tlCQZC->Q-YU@9okHZS}ln6)BI zAYsa7fj%TuLEpkkt__k$ zvwXBFW|bMr7uek+k(AA}Rr zMgFS&vcYn*&xMLAV%%_Y`cA8rd0J)W%K$U4Gh`V$4gjSXAOW?h(Bms(Rf1q8uQM^2 zN9e$=Qy)zwJTL@Osvb4qm)_Fcl2I`i1uK&THqm=VYq+Z(PM*(ZVhE*w$e(-!ltb1| z+|6h35;aDCUe}1K2kyXYC|}bhaRU6H7x#jFE^M*iB-rBan@u2QOc}O)b7!woBOVoZ z#f!!x3s^6*=gXPg!Q|#nnCy$qIg=m>2bam-!$Sz6*ulX}2*pmKkDz^CaVysMNO9}1 z3Q94Ix;B|f5t*f>NT=g<>_Y{tm_-82X%t{8B8YUV}g{-{u z5Q=rCV?<6Nm^WW|u-XHE2REi@BkcnIX&~bEx<76YX{HmmCGQfOB$p3o!iM6Hf_`Fs z$-DND%KK!5?vQD-{Oa|N{AGGXrEJG$J)!b#C_Y7fg@Qvhr^?Hw*Q*S1G0=N9D*X(; zqxabNA$(__S+cWyKz(S|AZoTQ?9NtHzmDfumf2H90()dBtQ#{yl;wW-J7n+Yx@F^y zwR-o3wMIdMR4p1wn(i2W!zJ&c+F{MF;?)P4!V<&sB0u$V#+X*-RRX~rOazb$u0E6x z*gd5?*42vqS166E)P=r*H~P@P6KX)anLtk6i=q}8;ZF2Lo>Y-%Rpe+xT!OPG6p!-5 zmLrI0s*DEkE>2j~iP%-jmCi|SY8WC==cMTww}sRA%93xqH%d4;ya3ibQAhcVdLE(; zZ80qid4*&UyF2khd_6qKbk|*o^2AEradk&Mr^%EqY;TCzN|hQR9U$;W!&$nPI?VeE z4QDxbvm?AnQ%mwn|J=zR`2&%`Bv^!hX{=#&P(|ol(_8`3+_Z$6e#dg1pHTlR3L%XP zbLpil9rXWQ7<~wV=i^&}oSw}lQQxHtDTNUC=0jYt$Uq-PfGwYyMOubsy+=v@7-n7t)2M)9{ z>7j$W_{?`D(iydWmlux@#pJT#*0T$@BtLqQX{sD%tww~iD!IvjG%e^?N*lRL>*TtvmXp43R)D{w_V^|v0}(E@jXz%9%Hw?YMXjJ0;J^96snmV)h7 z@V1a zY5FAC4$Tk_os0Q{l0d+^7FpvM=MIB?>&tu5>=MQZt||is_ZlZrd+RsxW#SHV7@dZwP3`0wZ^z%WKJt0E>-gj>Gyd1hYN}I=7LoDkOCXW!UE)fkV$)9zlRJI|CSfL?>m*F} zGT*(%EdgDV`5%v}{d!>CZrsR^m?x`w7NEOx2zv;ubP)ezuWHUsr?`J#VK`j_PIbd1 zLu&?ocQxE}>%@RM&8&ha8%`-bu~)UWBD%gs+Au4xup$_#H*!ViAt)+6T;dsEC+);S zG6iP`JF*BwOkpUd2cE}8SDMdRq#Yi_{>cy)nGWiMji03+NrTptL6L6`SCOiY!}32%9YN2mpSclcH?KAMxyk#(Ete&7h5iKfA8s^3nr`tY zk3nXM?dW2#4aI(9Ezi{oOpwH<)CD`-ZzxYZSpXEG1-jjAhR^`!$R;OpQ^j9Qbe~*q z4DpK|#-yMB61rU?CcPGqY!feUQ?%|n{xH<;SeAAcp9@$F-IKm%k+1o*YHAU7KU2*O zE3TzVj@5E2OC~iBSIr5&=4ail%}J^`PBnM_I#aW8tvl0~s`sUasnkrBdMBsUgRa<@ zy5E=Tu2PSx)FNN%XY|y^``LAwb@T>ba5uN!>+Vy*s4sYm3SP%Do|bFO|IPcjPZ!-v zIH>D6g6wVn4)}we&o+4ory9euhZ?JiH=6YA<OX!A%kDLUWWb1w zt(g8}6ODvsJ+3k4MJ^&3abK`|pk^x7-EparyM-{)mX7YNDgRD!Il$I-GR4>mRdu_^s{-y>zJ(xQ}y@7`Hg=| z%SX5C5iUl2RuXV@dL2@W7c8-5Wa_HFRzb_ms z=jf_-y!?0DC3KLNKDxSpP|<_YafrR4$)s&dk%g+#!P;sEkS;yXD6rh=lQ5_ z=}Ygbtu$tjxV6C3GH5TlyGcj1k)J1T>yM=Fs<)<+gD;7?-eT&DYt1#JoOV{mXstul zw&=}3O2JHarEpYg*ZCGF5W4z0Q{D*f8g6o%$@2ADR=vp0AOLWmE6@8K7`#?h?=;S9 zrq5;Q7m(?a&eX`ck6)g=Jgj~7$y`kqS8yLW(vutPi|zY{$dTpAq5XAq-7R_HCD9)` zLs_nB-2JjPs`MFpLl*jD!`s2=-mHB&ldPKBibf-z1&X1S1xFS7?4^I#Cp{aYKeULn zOPGjNw@yX(R z$Zh{J@dxP6Saqk3*d$WIaAi11-dpHr(c5mxj}!(WBU6j|YB);s((zo+H{XySSBZ=x z6W=A?C7flP?@XT7a?c_DpROm!T@$nVTYRlVrzlk*uQ0)3OK$omR5Ec(sN`2~hf1zo z9V+?7l2FOH4~I(5yem|4`gED$zE*W2$|kmOycB}@%rt>J2UW)`=Azk^ohT4O%2qi?PPSSHm81v zMQGs?=o=k;EeD62T*pr&qC)Yf*VEx{Yl>c@j&F03)j;siOdU~sU_}soxVUX9hCLa?`788^JKo|9b%9`Wq_>jrOuJ(nZjUpeH=nhNXjDV{R#h#=MKU(=kWHDM?B-M}= zP%Cm_D7u^i$w^~n!hB2%sJ!;-1!QerX$B(`118I6zU+G=$(Sm!{$4RjAqu#rzNg_%Lfl zbRcYDXwC;@+eqCf>ir*pO%Sk=22417b)m0hvhq}V=g@KDuSnd?s2UgD z|2WS^Z_D9~Uae?bGic@|jNW%+vr}leZ9X+qSL{dUi~CoJ#~wp|wlFJ4}BiZcNhrh~``Nk~pF7m#N|WC{K<;zJD0m zFM2a-K@3KdpNWKw+}&_t#hroxN-=z2)MOj zupE1XM`CU;v@PzyCil=1-haE6lw5iSj!+Bxke>RvS*pvi)5ZEjHjc;{s-R zsiQ#C^s=+YqBR7g{<_SQFORTM?|&$xev(H0Zc=LlNfpTJzotf51Etxy^4bO9^cGOZ zSv#7w@h|xaC}W`~Cm9Q^oT86@y&`_T6r`4cNiO|3 z(9eBl>Q2~IEKw?!_=^3C2KOm*l<<7zSx;^2CcQo=F?*}V3CEN9O2GEM&^}FghD}&t zmy6y@qW)o`r?^B#f9l4iNR=l?G7sNLkH{%pP3OWWOiSCwl#IEn)-w2Kf{PqO;!Bsd}cdk#*}$9P{!3_G3xtH z9m|hV@U(hQ!4Wiy9;d~Uz740i=v(^}zgiuk+$?wSjRgHup_Rv5q4;dlTsPn7-3QU= zVp?V0n7sR>G{BaOAQXY zY+pJ?TU^21Z+w*kU*(UgvXLrj-NPNAs_)e0b2wqzKdW2lSa{%X1jNmbR|dao$uEh` zuBlZP{}%sOf&-)!blx57+xmSM8kwtpUjqAZb-Gf|w^+MIX1(m}6|^y2kWbH4 z1@J^`W3q6x?>3?>X!6EpiPoHhUF0LSNMui(OdV5hTAogws7-WuDRm(f)VO@NQbSwS zp**>AJ_~GLM%^<-V1JoK#1ea!a>RPkRuYTwBpXU0$i^+2DQ{81(Wv^)m64 zI+eOLvwXLwo?CyGHF_$I){T(tzko^Qm-oia!QI)hydozOSJD7A*SK0_kRhtXk=*?pZeC;)lusVO5hxpuqfck~nDO73?pZcIu zhs}^2Q3nypgq0y{areVvm zH}G&DcpHC2&N4HU-{&t=G<)m`%P5{(-s7KDGR{dBPX9rUaMOkm4ggro_Tx%pqp3%N}h-=<=8I=s?v0(?23C2aA3FA@w^p z9`kS759|{o2@(Uwm?NS)+g72+=@m(q1PQq75Zzfkxy)@18>A~eq$dRFCa`gl97tPf-b3mg zK+2I%HT}LEaSZBI7Op;#DVGABDEskk9bs zq_gO$qvEgDTP7$UnekupOGYXmjqAVUPrpR@q5qaI{>^Ut?fo?xJr%tgG{H;kB;-83 z$a?#7!5jSF;I+PDtn&TdDBaK8{%kNhbp0>&8{iJaUB1i&&D(8vfuWQdPfivd_IS6C z`?Rxc6-)fPBJmf3*%bTsS#owMt-99Fu?&r?4s$d2N#^J9aLZay+x zvW~DF?p{21S?Vg?Lqn_&U3?!d(b`m?K6IxKHYc0ezPH?`KIo*A^>>fAP?-mI#p(-O z+?FG*jd+cJCf?A##=l2e%8V~6PmVr3;TAqs)y=Bx8+tiiNm|^_aB|r)c*XU5SeQp( z16ITW&L(W#e~~`(G*mdwn)wvp7Zy}q&JknT_O)dZo?ga-&LqqLL5zlK%itj^%pr0e89cJqB-R zFK+V7{dutUpu*R$RsC;Nf0VEP1QoeDnH$fPDJ0pFU0XV)756)5s#EbKc;UooGG)Cp6k?lsZzz;wmyz_X4fG|Sx^SeD>~ zv-s)9!Sr?+OrytmY@V0Cdy)sbXg{Dm2ej06RPgK0zUBwUUR#C3$!8TesWSQacs`P) zhc7Iu8Yff6jlr}h#)pl^_PHiENAh@1-!Ji^yo;bS%ZJdAT?5$Wj$I2i8lnQGe|!}{ z{nLcrOJcGwbRVBA{3Cz#GdXh}$CQe?UzQnh|IyB9R7_)aT}7j9us&R^yF)n^%qQ+a zeUmSO--qtgUpmJ>WBOKYfjKpq?RQ;F@=)vuCDm|q0fy{bzq|;{%e-fqd{e*RB`qBc zz@DvG6j~LpZ;QY%54Lg3xucq3$yhv}s!ekRl#n+Zh34@)H0xCUa`C$&u{9K{=6hMP zGjTT7wyK%Yw0rmN9q$~q@tA7ZX@8Calb{9a;qFNXFlB1`?Kt}w-d9?`;&YP4CV!7R!hUSG zYy86jU~)_kV}+9|Cs?QZt)cq+gN|omO=hVNY@NHfrfo? z_v1Md1e?-l2g9k&?E26>4?~Iy>iLG-`JULu&JnC$(vO-hUk}5!Zm~(0H>qdw)t3B$ zC37RCX?Y$~+g(p`;(fWu_pzS+p4XK%A0934Z=Z{bOYQTyVi^GBDnFc0j)KHOYfP@L zJk22Y1%FVVN&|H%wKzC~d4^pL^IgB8Jea2xa~64Uv#kuy{i$6a{`gCFB$X3a8_n_HY!Irne@6Mfp@kgVyQaYxmu z>G$wiOogxDm{mn|%C*%+I=QzKOXp^WK@;uI#Dj#_=g8a;v;rYiTrx7*-<^xvq5>1e zrdO>CAgl*3Ad~}P#0=6gsOwb^a-!HA_eH5rEv`zU}B6eA(xf=H|T{ zP5vDUzT24IT>aTenT_=F3bE z$~@-F6s5}qi?C*{yZYCLN&H8ea;FZ2Xf<8_*wUuQ_Z6^Zw+^JQ- z_Xi^h6ODz0hzzy5ZzI85$qB$k_W4rrXg(1lVq%0yHSmakb&55UYGEDeBmCN`BfHMb zbR>(PdwvdU-epJ-H_+Ex;_K}UQ}1i_YmKjG_iT^0#nHFZ-j|>5%fF)XAFBLZmDk+W zYl>+J!2K`NKaP~F@_OKF0}RhHUw^jhf2{f=)AcjrPWnqnUw;$A$KB;?w)Hj7R?Yp@ z!$Ul#c2WIC6&&vi{xjc5af}Kctb$)x7%8lvy)DV;EP7Rgu)xAUdaa`fYMN4!x*A~S zswL6!bw%PoKJ+RY(PlP1{Sg?N_!WtN*O`pS#7=hIAC@Rvr+p!Zyh#nub6P-TE?X11 z)|8?KchpVd@M)J;)I4V+YBN)vzGy!&=(KWWh!rv!Kld3uwQuUcBvj#DcN-KUer$3_ zUZi%nxg9^GcQ^+qxgbd1OtRk~p}<|cmor#K-`i*+lg(QoGVSqYf+J<_i$%9i4TPt* zM`b(Kz51kihn_ONs_%N6t7|Sk{k=g$6&bNTVW`^MBjF-HT@>83&|uGh2jTr zWW~M*WokU%yjnMz^GuA5Yz7x__A8wbwZq1$rpvH1m{8wqT-|bLn_TLZi$E*s(wppk ztCY)sRHdb=#AC$3)IYwezW#X;qXmVHC(9OIu*?3b)vK^<{XmT|is zX-gMa@`Adk&2n>YxrMJPHG`5W zJ&G&K!9tTGpSvWe+fGLF#3tctD7xc0&xqGs2tFMF1(8YGo$aY#W^OC}`T=#tuVHbo zYdmmGz)uWml}dPCp~)h8ZNuN+Z4Vp}{^SeD=Qo#;U(eR7OfELf=e%0LW;7q&EJX9! zgh#UJHE1Qg zlF*!$6w+;R<3-;OLcyb#eB?&OJT+FU{WLH35G!@ssvP;D;#HnjJ*f7PAQ$^;cgpw2 zbw9zzYTho!Y5`a`cTgS#InsznEXL)~YV1`0{5}Rhx)yZpibD z=KvjhzxFdLPzG$k&Zb=5$*_YPxi8qRBVgg0D<}p_EgwnAIujHBdQR=}e)k#xZ?;pm zYRH9}km2tvTepRO1GcWL17M(fZiI(&*?K}J&(`;9%~?fLsbZa72kU~ZHuE?t(?q+T z7E>4T$L;EC7~b#$v>Ho??c!L@{^LWRKZ1Pvd#^&u$fMAWIelMze+1%y37sl1jiX#c zxU#Frn4SX&)<|#n855yq!v4{Ef-v9~Z(B!(I8^cV>fJ5FW462Vzcnt1&!da(B9FqG z--F^Rp;&E)wMH*D&}S}D=6A{*qch{o{>iQ&Xf_{>^~MOtJlbJmhIn{*&s2{2dRWO< zp;&*D=7_yuA8Sv^z4?ttqXU`l?LJ1Sp=xO+B=B_Q<-(uCTIZGRiyZs2`%c{t+b{?* z4KFl=d4-SOLj<2t{7H4O%ENBlX;l6h5bK^3m47TXu(<)M*_FKrv!@OpZawNQ89J2(9O`#edzN?DF0W=-;be{ zyzGzAKuzwc4Yy__;x#>vZv7Z>qKVcZqIw`;F9JXJ$_rk=7Tp!7IjOU}i-z#I#<#a+ zhf$)3`t!Ib@!ijj61mzXoq0M+XB474O<&j3*MHd8cY~<^Q`KLZt)Du}DtP|c)!X;q zmtUsxr>cC^m!HCz<;e9xYOklUUof5le~SX{_>&mZjQ!+VV69jy=1(q@n&LJhMDSK^FTmZ0GiZMN8AXruEsRqO%hf_(kK!Ke*f<@?XZtB)H_{0G+**VxOjze4b9 ztbIn?{ne+Q<)QvYP;bzfUFxAV=Ssh#8~{ifO#MMn@A389`}*gqep2<1$YPVaS_QB5 z1wZmD$4CBV(?sFFnVX{_81}{*6k{ z_oZz=wN(x*+j?5xukr;Kso+c%oZ<`GUUH2JuJ;8`^#!9Uc&`ecodfZH6`bb_9!SBu zd6Y=qK&sa3f0>f?)IRrZgIJ{87+>>)?~D*dYNA|R)QEdRz@(`t6f^TtcKmfYz`Zvz z9c?2rBDzvhTAL!r;-6u5p5%Fxdg>ZUCzL zahkSpx$!G+_VvH{*816B_2;U7%bfasRe!kZ|7p+q+4DvM4VqD(@ZCj`cJ5=-HK(1U zZk#;M6oY%}ajqBonrAJ2yEpoF>xt1)w@~dSPs!q)JzpFWv|H<5E3y8T`FgWe?-|t_ znN#oT489%r#CMg-p9`>JoHumTnB{t|j&1m^%lXqC9(T&E(bV!*$u z{(yuZ3$zuwFC;8Eh9Bssa6TArC(8!M}bI;71Ak?*v}9 zpIkZSM%*IerRt<-WaKM`lLB|}2l(Rb#8*R4A?(-~-P{tU^6OzX@_AwOwjLM*7SM2d zIZJHfoTOg*&R?gPVl_wa1w?P|QLv0fFOR#iPhXx{K?#+RTxNxrT?Eav_g?GfvHlwQ z)^XrUpF2WMW-{>)x|31U<;iVExo`T>wHve*c!^^s>)JLNNH64WGJ!zhizs1ObtM}6 zV8hTJppuswVTx<1>1iDPZgcI2gOOC`82SDr^7eX4ZZG2`a{u&6Wa!S6+dc>DCcU_I3;6=({{xyukPm5KQ}c@8IPb$eqE-(Ol6c<@yjE}>-Z zaeK)m{OYy#9(SyfVZm2MhA&Qp3|EQ_&zoklQVqEqAE8WQQ(}GJ4SnlZ%mkhrhbc?Y zgDc|D!yl}M;-^B7RIw4Inv&VTr8+SU4o}DOHC&V2jL{e)^?W{7lu}d^@XM3Zk~kC} zBv7-#(#}ny#~7yHe`%PO3e##~+8#{dM8$#5xhA^qM&m^VF?1Ea<|<#ajcQI-&A0nm z%^ft|xHip?cAoG**~6x9olT|67$3^NmB1+gkmcZJuXHhkReQwM=6=c*IiR=blI}i=+ff^dePr8eN@;ZKup9Y+z6H$IFWw(tnPB>qoRiIIs8&z(&s)hZl9g<fXwuQv?^Gk2LTiQ-<*nz>P;7UdVEvv& z!L(SX-_IjIQW9@&ps%+?^|s4O#m)7;)LY~0!Q;XEpU2Pr=U%!2Eg0Y)c6ixYHNYXJ-=+Ze2H32YyP%sY2hAb1v=7~%X(cLPd8 z@%Qbw+|VX@Dvgnq4ciTrM)ni)!ZHvh2H;#xj zD~_}I$!=Tp@%ta*hol*_;0a%?i&cZq#3S9T$(@822&Q9b=KE~hjPs(7G3(2c+akRB zGq~>C&`vJwh$+_UEUrknreml(E^2lufSMU-muhb*(lGkNQf7`bt-* z(gCW}OO-aP=qMA^PiewWIFXab*1)I>OpjBaf{Rd zGSh_qu{VS+Q5)kQ2ij+Bsa!W-?{4ZbFFvG1U6D%sp^sq^g2p+MO7TWh&uA-_UGK}z z>-*06rc}>3JK$CfDBG!MJHQn!^YZC~Syhih*JI@3hiK%G{da|=Nn&#5-s}%T(|}6^#0V>%cj64N@wl6QDQ{w1z z4ztGQoZE`uW0vY*$Kp~-PyDXQ@?sVzI_Icfc|-k)b*u?ETo*kx;52THR@ThF2y{ZR zMKm^jpst*TVk`NJwZgnORsEu`J!qZMam*1pC>zq?%j>O=v8TyW(Ru8`Bt7Tp_a1!= z9x+_HOxP!X%fw}c|3NrS>5?($bU@wJB))@Ow~79uRG1<~4AlhzNkXIr@5^H>8psXy{Z`f-0hR$;p3$E`BCaJYstUQQB^U??UmE>nsS z>&MG2UW9zriy@*z^iZSi_a7OKrNVKQaBL5bY5T@^R<;^i_{YjL!e@Qunc+GOAE@8_ zZ{Q?0;qz6VT%emJu3gHPm<}6R=<;`f+qa&Von&n9PYeOAsa*w?O&kR4B@Lx0d`La= zB-~mYfh%h-)HvxJLF#`q$nJ1zmUvVlW- zI8G5@y8Il19&WPg$9n{B7-3LUz~ zAXXJlU#YHnb>Kh>xDKBRs2&lV(~{qGp|N8bJT_#&r=dCDfNTI6zCxW8aF+-(PGkCH zJY_G&Z2}|S23L5n4dBd8*7r9Q@g=1Jyq5?y=_yx@`V)X8$p*~3Z_Q-~N|*0Ei#h4m zA7qeD^^l^1^t2$IodfA4DN?oW0bjI}FM5%RULk@X?TfAwz1vgNP4orbKMlL%Rq%bm z`~gE=8oQ4;u?xaQYZz`r-NgD~2ki^kA4+hq0iZk9!}>k2>b?O;Y6*Pl3VrHKrOpP2 z)B{TWp^Nopf^YZ5V%q(u+MSWp?yqRq#>)EzdwHtl4ZU3O!)2h~rR4u$4R#ej&Qz19GN$g_jpV=@|jWU&&`Fbx>4}5kX z4dUZO*$w#br3tnqun=eLSHXRsaDzRm4){EO^=HZ%EOZUsf}1-th&oc(^bvA;4x`x`4 z=O0e>vt~8PdrXhWBiU>00RZgJHWjO8`3p_>vr#|svetNArwYaGO>PsYIlILRkPw;O zVg)|}wemDc4v?69oREk-66+;j}Nj#r{`EFlcvTdEmT=Jar;iw&yuAG0`&h-OyQD}?Gm@^ zA%mb@FlZWHC<)X$gP1_=fmlo-)At}^D0Z;;)%y-3bduv=lK7mc^i@=HPdXZ$cwZd3rLh!m`=L-~;2 z6iCrc?lt_4G>?}u2~y_s((Hbb?62GrJbuba{$}99!*P?!+zjMC40kRXhL#JhX4krI zAwlg}UuCup;wky-b&U0A+^>slF+C9VnF6UTN7{b9+5ND{s^srB!dqO+c)nriR5fD| z8y5xrHvnGr3dTHO7+u|@#aT<>6!DAx*!xo#VjLmZ(2RP3B}+#~Hy1=MR@A1+1Knkv zOg8=H14KiUCP>YogNQNXK0AsjE&-8ynCRwTC1uf{&m_;{-ei|EjXE7}XF7M%bS}+H z8*Hb|3$Bjb12y}EW&_nU=1lcu@YQ>Wx~XfMX)Rs9RHB8cGcHbRD%Ox+;)_x{9-XXgQK~8<5;f`y0#r>^)d!3A9OF z%)E`RdK8}VawQbIh7{tf^#mhPz(+hI>cwOcbm%30vOT1~$7g?8f3xpVF->ykNL9b& ze$&5~rZlbR^zU_3H*z$r+&whY?{Cx7X|-#~p`|uw)qv)(g^6`8+;vZVtUgjOeYb8+ zL@sv!>S+D=)w{NsE@9r(%^}C#f+M!gw0}{#jt#FZQYT$$+cHiJ((%^(eEY?r8kgMp zCXt*Is$g&r5YBT4U6pF83mLFAvJbtmi`Egz+FrOrYO}y=qq{qVVlRS8ba%&4>`nW! ze<(iCGow~hWBinsIq{?KP$=Hh7ZAd}fG*Q%9ol`6hnG34Ief>S!a;J`{fe?uM>(14$CJ{IR7~^E+?)N3V#OF@*%839 zb{=@ZUx|`YfM`~D*)PRTfgGWI2ags}`KW8ZC zsX!lq*P1O^N{o*Dc^B3m89looTr-^KL3mY!7rGQ6|AK<5A#QX#lS%KsZ8GTyg|%rd z)1f;=hUHBrmL38dGhw?&E~PX&ht4pw`ZsStaki6c86J?D_zVYdyxhG?%5k_Pg;LNX zoS<#mO~^Iag&qJzGHUsWh3csQ+HA6C#mgoA{#*Q43{rdcSsOFo{*w9je(-Jk>7(Hi*;O(s{5XCL($Iurqxh=z$*?9O zoH~(QwG*+xVax{vUs=%)X_c`6xq)}8&nxZbYfZmp6hL09xc>1~LP7sl^rxEZsM0+B zERn@OI~8n*sS5!!Ug@e|rf1I}qO6u%gZ%yoL3oA#1F$$DH#HFlC!U*=WNywaf5Cbx5& zsV2wBrqtComcC37@??{1Xz)6BLSQ&e?Fx#|5G7_srTTmb=wRL)YU{Cj9CWj4q^oNK zIcmC`_?B_#%?d1Yv8tSLux&xboH^bod82G$!h2xOWP_NKb_^WW1D=i-eRqpkn?ORXP)m) zI?lb{+Io5Ro7T&FI%}h?UXDH})5}yB6Q`v>TCMjkwCvZk;yrr2Vf^vuXEMqUVc^(t zz4yM+JJui+&=(&c>VF%a{#wl4L$WHQR!uv748@N#b{<^NU|KRi=t6d1YtJPvgDQEc z-%>~GFr!nDhcCCH69osW74Oj-5EMSf}SJBFt&( z^fg_woz@;MSdZOOU%tebpP=#+RDPf@Kb}T%?ArgnNUV_hIPJ+6 z7k3rd=;)MD_v9`60C1-Z?g9^2ESkEA z;z2*4*ZaGRo6+l#chmIJbPUDxYBX+3k^!j*>wxjCTiVj-RpQ&3pmr{^{`+>cQM0S9 z?si`=&leo3f`e7?0AEmNlBov3rYGVtlvr_&O4M?SD0Z0&Z)ktyK-&%U;Fi2*blcep za3fTB4f|~9X5ffIo9Q3&8+QbIFP{5R+%L6DQudw}_oVESR6542_oqX8F4ls<<;Hs< zmi|>Hd+Qz3^5lfW-Keo3g`}d0{tZj)D4YJd={)iG`CYbseK_(f78ThzwwD%_hhkTQ zp0RTMd5BqkT_e<%&Ytb!Q`ZQW*(c9-*(c9-+2>2e8~F^v(ymF@r@bN+Ac$DD zW4*t_wE@&f<__0|B-@F=wQ!8fZ($=ggj?m1{(Cdi5kN5~HEPq+EXTdg*Sz%&fb=ZQ&R@8LnaABAU{?M#%QSj^x z^9ssUX1u4*{ZDb;ijP59*7zQZ@7uK^xokdEtkk)Li_Qjn4s&|wl_CUom!qh#{4=Yt zzB2Kao46TQD+&|>ydqJpnxVLMqpl#|IzDZKb$nfjjxPZTSIhm0J!}ee`^@um<5d#= z0K@C#B1#gVBZsf#9TAHCh<>71sUQ!cXCjM(_hpRkR*&gRRRMks6yhaH&dI*ut%CZN zxH#g^P(caFM?7U>GZ_bWMV_Jg-YbS?H=%i{(o=~2U;+YrSC$7OVMW>9q80fUCHMqFkP#%)}{ z<(1P$1UJMDexGlh+no;L`#%3a&qMm&bI)3*PF0;cRdt>bm$zFKY(j0uYhmWS{kduX z<=n|qn`#XUgATsj<$nf%p3p<9!t#6#5<`XO%Txano}7@+RfLivtoA@Mhye9d-EX-4 z^La|h!@X8~Mp(Z;WU)$ki$J=TLPtOrvZc}Y%>|VgK6M`-`P#Y zwmubL(|9vPr;!z>f6+dRf}7rhNg)~q4H65zCB>~Rd_*RMrLR?@P57mvSZU;{)XHEM zckFR-YJ35L@TDb)*{89DzSJx(aWCv*9h|bCb@1sYtX6OTkh#s8b|)aUh}tgan|t-A z)e?A)TVgo*ryk(s>%z&?IBRF=^bt-Dr$4mI(g{w1%dN41oH_dB(!PdbYG__8FcF-M zYTORKhP*uQYk2i!uv(!~bLDeTsizVB!wM}N@_)7T!SP^Lw_w&a!tm}(xF?9a!EVy+ zGZEb(-RH~NOqbuZ<2PtJ>92guuZs}BtGegcMx4*TxHcqr|Ki$^EwZP31RDpfZGo^l z`Y#W0TeOLl;$FNnq*R8;S{0RGvwM={cBGZ~ge8>6**o-!L)r*{CNg1=I6!oVgi4Te zxA1v5&jHWwEwrV!4p?q6qJp1_z?m7aZKMySTitajKfh-}e%+cMY<@>CviW^vYvxzD z?&^AMi8TItINjhZd8Ew*4+H&_Xx*%Fdq1uIb9a|J9vR3kmXqVTuyKJLwU`vbXn;JT<<4QN6xOdui`#m#s8F0#lKa>6TS*vNs~R@)>I`cCZ;PYiSO{Z zh-_>dFKFBSe{SV>HrCU8Mfa$p_f^p!d_^WZdYu&hRX%SYpZ9X*U81~$d|r(^du}_w zba9{myZJWGO68xS`P|0mzg2MR%^yz(77qhX_3|hg>dVddl>shw}z z#+UuV|dFXddxfnzvO&fASSg5|sW)MV_C!rze6PVkVfs zy)H(Ek*r8F7$ZwEmS+-iqkcGqw>CX6_A4)?tbwR|AtbdRl6l4?$YCjN)B6sXN4S81 z8nD0j0_~K~Xp{Pk3NshmP8`>>5vmKnQG*n3AUCJ<=E+QaUhGon5)$RNVi(-qY5h61 zd|Z_HgYYMt*q1gkiFDRJW(K^`RX5=+YAVuLkDh>!66|Ek6cK)~;9fSaCYENeB9bQh zvC3f9`e2qUHSAV&pxFJ3>R|R4B51k^?W{`$Qbe$_AaMfSAdNiw>TWqIgqR7(K8p{a z&7L2(1?zf@igleVdIIc(gPX<(1Xycw!GkK{+E|n`(h)%B(GdV$ci}7fCZ`NBhGoKa zy0UBrdXX!r0BhVC=-EV_!v&pcC?RL|FPix7-x^j=m}i)`WGf~fYs?~dOER+ovpW&^QgR*8U z^mOt1XpA{x(C3r| zju4+}MuuyT3Qs$1f2O)ot525IZ+w`~IxtAwY0Fg{XX6QWh&#ouIHPx%zmu$$ zRSzVaCJUUO-fj&~>60%NnM7?l0~VjPpsh#VYi}!t#-r7ZyxQDjg2XD-_vfz-q@^zy zNYCgDNcR&+_rc~2f>g6N^AyAOKws{DUv4#;w&u}l?W84X%JzWlxo3R21AVzGRBk7gJIa@{S#B4M*AJoGf8a{)24C*WCTp)k<+fM3 zF1}ph`8Mq}tK2=5gDEBGg#gt-pE0ID_BUdQ1Wg90Kx63>6rxKHT2=I*%?5ogwPHCY`m0X{K#MYv&)D|Jh9xC;K z-D)Jhsrc%1gIPxgvyS!K4pZ>n(Zc8Xt4q?SjOxBY&Lg;7bc*98f{R6v6d$NgZ&&4y zG=nMP1H5>hw)7U-g8Uj9p3}D-_k~T=bI(D)%&#*u_=ip9(q1gZ?u-Sp*-j!3j}?b| zSu!irKMJbx5(S#7IP7u*#(}0SiVjL-oJY&+>8dm@4fgw}F?wOOh_1Y2?&lZHi=Z0X zQ55$56Ube@?{ACt#o6FblAR48Jw?DhLBPGJGjJEYM|RPsOhNxPgga=Ycyi-xSfXk9 zHd67X)TougOkeBM>_L~gf-FmANAsQIscaq>;7I;u8H$MC>hqB z8)KL#L3&vCSJhVb3=_pFB??3o*g_0CrGYaeheLduv0Y9qoIk-hKY!n9{yZS$I^zLLuT$DtJw@|(_LE>)u4JaB= zIjlc^cySEBT$!^z(L(zAAv(H=Fr>U5cMvb39=9Klc_0GN_NG2LQm`b+kJ#Far0j?; zdodks-+y@F?XbMu8qV+JSCIF!2QVs3;NtJIZh)M32>eP(k8tnWJ zdPTdxi0h+fd06)i!@94lP1OrN9%${V{p4K0mj~KEc?p5`AdjXL2#+y>NxFyWXGa+= zk%}e3O=I;bIf}n_PSILZLTPAd3`rod;#%P%30 zPBev1TBfa95|K>fNG+|_b*pW$o(oosrhPjUS?knt0!>@l*7_&NrGI#nYU%zAm~Vg| zd0;N(B?M+OkK)j8U_yx`!)C{wd9X3-2H8Z^j$W0UPu5@rABiqVppneBSASnlFhE%i zcxz4ALND?I<(A>nucPOvR!D6$8w&mC#_r@LfH}6f{D4E6d<0cBRZvxJYE+547yp;M zY1|VW#Cg+(5!%z6UVyk^p6GN~FY7U`EnF&EI(BB==(cGy^q=^&q5q5Df&MFn{?mTQ zqkndjZI0_10Q!YbE&s_r|8(WwSsY`u&%c?7zQ-{z=-UxZ-Gjc|E|hDQ*?jg)Qgf@y zeRCKB$EC`5z0dc>Q`Vn>s=v4D@9gWhbCW-|_vaV+JqxEpd^a7h=l3naB>6o>(mU0r zPsC|+Yj{s_ZRXfcwW+S~hwiUVJf;ii70pC(6g;scc3mX?-Cn`ubvFL2A3yzTPDrzq z89a?xFmCks2CvPy>>fvpPTN(89hQZ_SN6(&M5HcNuDb##I|;?*0@=jk}H_BABnY@>-LGpv-?yT z4%Mb2=(Gp6{SNx(I{R^5`y}J~Bjd^{NTTT5DY&zyD*>1JbZ#Hz%KJ#_55rFIEGXOoq!kaV_~6Qu$WT12&j-=?k7Xxi4m!a1 zq4zasMC0F~m_M7<8O@xAQnoajvwav|Qg^Kz;|%QoeS+@Yt?ngQD(d%8|6#s9r1haA z{dax+_XqgSR5^mMG~Yrt_w)vvuY(v^ff#=&d-Uv3tJ=$x^x`M(tnJJg=#|v@jD9#w z>p^;I7jIo8Ok#nT0%d#XWe?Csc6QvIQb0dNvQjIn8*puPS1t2P{(X@c)?+_^&ie{s zE|M**Rq_Oh`FzZ+>*Gq$tP+sbcmP6U{6l&n-Br3ICnO%jTTVulUA8V{UQeU76%WeY zB1oPn;^$p)hE;rwQ!C1oul^n+j|c~o=t`+DvevI!y#zGaIyhIB+8Sn=M(57|D|pQi z%W^~H$S-Hho#PfN0PXzKzm4vjwLw`2#t>%s?LQ0>$wk6i)(UkFs3b5sSmy$A~CzLDD>xZQmDTPWXrhww#4 zKkf2@P3a;KK$nV%pXAxXDZCh4sA|^1jr|D{@{_Z3bxom$+jna}uRCb6k#xL~kfB7u z$$YYBVb$GoRby8~PG)E%$0lyL>5_tkPU79@|FLnu{g{orOaWv*(zx5cv2o9$T+SSk zjnUsK7&$$!U>CsfBapc~$srlCAKcqZKO_WgtO@;d` z9X2KIrZdAT?w2SLB<|n^tLSCqwmUj!@=h1SEyDY1u5(q&a3Ng098R%xKPF!ux!&Z( zkV`Ekmg-aIL7ZUqrntM{BLngKGi~bkBhpNBwU)-ZuWaga!s0=IlkO!v{EoNSE}4_mD}*4wRaiinkQ(9^ddEc6aC9>V4mCxpDF4q zZ&c;is`4{^<(r+A@2JYZlD6?~Uv7I}Zlub+p>q5Ba+hf^?P`_xj-cFJ%IV;zpTGFs z$6?;Z57-U8!>_kH$W+kBiwvFTNIdL7=}sZN-ENQ35cF{!*d86!Fpj)+yF@cj)bqd^ z+#vc?u@w54_@hSr!3PGGGaj*NxNjXj-&50YA+h<`D3o>t=f3KBF`WWqhNTQwY;Mcj zJ7%F8H@b(fl8oRtFJ0BpIN#9c4_iY6)X=tSsK__8nGU3B01Zt?=aPzl%wkKKGh9f+ zPn_>*__chF&lQS-uzwTeykuN4Lp~cpLZ=I^*f)EPZ?>7pG0kJtZ0ZXe-^h;RJ5J5+ zO}%tod%H-wX@*USnA;JDYEs13O1QZ7rbcVgzH{82vUhi^41uH^cOzf+Q@8>}PB?|x z7oo~r)V-$eLSv4`H&B9UU*!3VSFF3;AMj=G)RD$!p7aILX#PUyb8^_npTk=o(a28v z0|GQP7G*D2ak}!}QmZccF9BrTN}KSpGi)9nqgeArDmHGN0YqAu0#rSev+ZoDb;I+p z8`REX6<9r%8II4b1WfHbG)T_VD~>=+0dpV=eK+1W`PDzH$s^U|tEyou-{c$QDQI%u zVKliE9Mci1;#umDrNp^yr4$Hv5w+zdS-IXZwLrW z*U<2lYWQYs1wn3E#TPU@L=BgtdAE7tQf!;Y;e-8L=s1by8Z^B0H0g-wS|oir8mALZS&jTce{anPqx1gn#ubE?eBeG<^7iS_jjJ+ zePa9jZrcFr%Os2YbKgOnJQUcqxE~t$eq#Igmv`g)(fRjCdPs@5qZdlk+j(<{C4kUW z0^v3FY0B6)0Kec z&gs;R3yXH}tV4x*d#Z(J3%wWI+(sioLK=`(f4RJ0W0y=b$c=<<)QfV(PGqI2rf(~E zFGf(T+cRhRD5_GIG5tW>q&z+mqqiDI~)S2t#nU(rEjUl zFdXI~zs&(X*1^Yl8BJ{+r$m2QWL>RgbxN2RPg=jFQd)*w0ACHSB& zDDx4w`poBQ)FI?JGSgcJ=y7>5O>7RMac@}Zgt#yG+w!w^17hdlcC>c_D(Xl?`K?JU;hISSpAMLE6r0?|I=COU*3EXmE@xJJV71V zTKZfN?DX-~8{+ z%zla=b$kEFd}em?Y)x1_T`3A?Z_0Ezrq4PIIPD#e*SevR^kgAGFni8+VAa@oy?%l|Nl8Is#NHb0l8IEk#Fm2l8QZH;*|r7ni?49M;F3pk{2Ct2`ZDBc z?qrRHeMCt!n=!-Rzcl9Xx2_wQinCXvu&dW+rhdF#>$}uKN*0XIcRe>x!R$u$eM!B# zj6SMfebzr7)#30_oz}mxsYZ2^9}UWk4&0xc47mzhE10iH>U-{MGC?EttzFY}T`?AK z4P7~7;o*29M14>i>HcCc>m`@$v7ArQU6`O}=W;`*(2b`idhpWx` zYdgC)M_QxYl1^5)i*I%6y#~$RYV{Pg`oRAPZiVf-`yR7ayQsDiFm;DRj*>{l^B?&sV>cY|Y20`eRjn$M9gsP<{4U3Kif3=eO%*kG_F9>4h#L z^+W2L8>4QFul2w8Sf{U2t$Ttu9B+R5G4*!zd}bH?P;Zv1v#Ifu1Y;3Cx{K)s-1Z|a z+O*^T0Itn{KygYr_re(S8oOjwf6m-fo zSZv0}puLJO8i@BPBAYvcxW#_|)+#d{=8`VuK1E3Sp~Y>EZ(pdnA7|*iFV(L z%_CB1S)}t27RXq7^9{knt~@<5ah`7Mtp(%f=uad#&aUv~<24lkM`R%qZ<--M$HvuG z{B=4{*6-L!?zH8GWH0|2JdmMlTdy2H9pt|}sV@rz@XX+v575sq{Lrv_X_J7S+se4{ zoS#Y)zk9jhV5=DWY(td<`2@dtf~f8*>ETwsYwIX>B<>!|m{4@WWH162%zBAqJ9ROY z)?7CrWi7&*E3_EZ0|XZk6q zraxP@Z%7rIHxLfY_3Uc2v)>#_BINv^Ck=V}k#qN3S)0DUpE}mWDU&Ab+4xU85!n!P zzmly4mw00dKN7(b&|=PM$JzU)*k11VeeAf*9fQ30a8Xei8;Vhu$CqK%)QQaUyX~*o zs*YY&Pp;jCNnhU!IeBR_k`nQ7 z5TP=|w+&}HGI}|YBm^4#Hg;A>#hZ4{6+yUe7VmZEQv}dVS=e56SST`x{soi9K=pK6 zdRcAyL3NNNUX9dUv8*;Yc9k2uFMH$`pdL(K!AH6sB=-la=z_4(Tm7d#uswf72Qr^9jwOxuSE zyWjyOv@GUb7^046zvjj3>20~D8x{` z8V72oGba`|V0~rsW`tWR8&2oOqTE|a0|8(CTf@nC8Z^r6og&>EPVa*BCpm7(kgi1y zr*B0R@2*RZEiPJeY$ql*SDxCsx4-$?OiFC1>ZJWNXia>!!_96lu_szG^P0@=!!VFl zvQLr1+1fV2q)t4AC@V{vuMv<(sw;l1;oJtZ8f-}EQ*t=euyrKeAgL60o#M#+Y-z&@ zjK`kl~vFzL`OZic#xB!y${3Zq=1b#K_}lZ=T2tiVashBL@(~~3 zn@Ox28A*>T8Me#ETvE0TSFjSM?!!pu(@NYfXG4=aV~*45d;}2#b&y^N1HO-9rUwRX@|jKWfu+Wo#SFt{aXOHLmGl zd+k;X$O}EnTkEx4{V;0!F*Cl38Ww|RDe0O@9#s{#FA*MP1mWg!`fh_wt=wgO{F6@c zB|Y8DZGcT0g_V@k)e5M$x;AB8;Ts%`FXV{4@02FrUAKhJ^#Pe^Z&Qt|4)FcZr}fk&~*slgBbhX9&Qs8 zsDJ&}wB0kdu^^s&IO!mS_NNToPyU~m(SV?iUCE7mdx0gY@XS5h0?zYOtK9`*>S2*| zC9^!PG<|t*cNK?4U_dY%gk0(BeiZ+j@EV;iH4!3=*$M|BK@(vK)R)|(Ene*0^fkSc z>+33k5T-)|mJ|P_=?`RcZJ4E!IEus-%w&|C20>U?LyU;olhe61{3cMW36r__^h{^nJarlD*hEDO(`Z_S+>Ei zPMzO7(pu9?4UbKoR@zWQ`ynEE3X!TQBgL>e1!9LnRSLvTdu&dD*r6&v1!AXd4F$6+ zJB>}%4A1E$gW2Ot({;VwqP6*Oo2f5M(S1K`fl?12CR{VNYT}QkszG^t zyA2@|`MN6pW9P_pVx@`X@H5hWk~UMV$@{5O|7>)z15khZD(G%yaN81h0j5O=3>HeS zt;EYGTSg-AeR`z5LT)Eg6K#)m+`ldhNxF^K({hGdV2?D>?(1bU#N-cwyhC?SCwB9K zYxXGE6g7pLqC2%qLNL7gRBVZLMcQwrB9~b2<(YfR2WqtcpRZXJq$TKlT(`{}gd@Aw zxDp1LC>J{DUod+}X>I0td&gEJwV)wUegNOZlNxR--`|?eF`iz$xs7dxUYMa{IZF+- zX)&GSN}?4toOmBaE7AD)QAN7K9v_y>ZDti0O%EFx={%H!0_@^fiD@_QL|Hlbt=%;I z0$e$^kEEZmthE*FivNd?CZEX^)pQQ*>lJmrG?KZ;vPnNn1K}OvRdd8Sh6O_wMN+#H z3%N>$-Y}-`teJcxkJk2m$V%5OG`%!LtHgHsZq6E`6n2Z`_2T*I&e4>XG6Rz@PI^RX zl-12|FMfORiCrQi0;B#N>GLLb(kas4vVd4w=*!kcFMDDhZfu_Kw`o1*FQ5a(^HmX{aBS9MeQVAk$CAGteb zBMWnoeg_2Mgt3;}hKF8iQye6&AT759jfxls97UJ`iRZ}~e9jKzPfp%nMkD`ujYdAC zkqvaRW>he%=k_JQ?YLgiVkU=c-mA+usRt-MkUcjLrDnnS{cXPxP1lTyroLX%r4-p@ zG#BJ7C=PQg*RlyKRUe+X*UXT^dUH6X{#k+A9Pgn(RGG5Ha+E8LjaE-7G zqv=Gs$fZ;gNb03jFjgMx3$2m=MpE1yiBjxe(bTeGsjq8OYqbBxMPd|NXZgcRUZUmW zN?4{%;tD^0`)nv9MrvqWp5Q1+$;>gIX6m znxNtX6*4gKEIl79bX2^Zu|ypRl7Ho?{&|}K-frWK7;rlV$v^Q_<+l(REq0Gqyc$eC z0Dz^hA1I&69r&D6M+M2Pd@TQC$0lHnf1A$_Z(S+QH>sg`+kh^BHvyctPkDp6 zwva^(nLANz&%#Eg0J{Cb-Ja#9$O{#C#_`%WF%~gJe4qxHD&BL zL_%AXt>x0ktaW=K*-N_X_8JmC@8|BE$CIQklK=ylc&0zQ9f)r0t_mmWvv#a|Hj?rv z0+OL1l>c@qx!oSV29Gi3WvQ>4COKAf;_t78nPi;dvMI`tu(K3 za0iSpQnx*_luhWM(=j|7&-ZXRkO4J6414VKWo7PDbR{wgXIvB7WbUHY2{%exQ4q2W zqs<`s2cQjVshrydRkbKt@iOzsD+Oq~gpH1EtyhzvN~@hQX^L2|kRxwrRQQaSjHhAtTGUZem!r`W2F~Jl&>ba;pXyB z_z5W#LW67j$Z!ni$qiM5{K_5{)O?o5jN8K1YmgsXvEb^xiRoXrdocUOVD|F({H-fq znh>yr>qfJ7L@j&P{gxA%*sxlp#8I`Ghsxg~v1(qCHH&A-#GmvyEVZFF7_zuFRbIgH zzsON5FIF5C>HDaau3O?IprN@A)*TU&&SiXW5L|9pf8$Hg0>%6RE#BN=euHvNfXpSb>e`L^U#+s$4f; zZan3hM^eD-OWYSt*5yAa^#b4JAC}VPYkh5IY1?k8cbID1(YkE=s3=Qfq%;f!n&=Vj zjLC&-sr3skd!?zSrZs3#o}(c6<>m&9^O6%XwMX{Q(qk*%lL@r>vZWMEk;1Na&_l*c z2&$s~AMbnm!cFwFS^f7X`$qia%z{ZLnpW4c7i7>_2w_fk7ztj|0<`Q+w_ZaMzoXL} zhLAa1jLjoB>ic+`wI&-Y2IMvjRnf5fo=vyL+Yfk9rAd@Xnc{~ZofMcrgFeAVY!s!F zExqiIXqRN8u-2XO5e+6=I2jBQ`wBqGHP1;7M(GJ!ef784(I&cOZZnjPGLDhnA0`AG z{5Q2S1XVEQ1DSlW+_X4?F9#JM1R6w0dF^gnFp*kYo&R_pFjj(!kw8fl0Tb2`oa<*Dz(Me`J;1p$RE$rhZ34ns8LSOrm5Jyllmv+xKoQGl;{X#3t;F?Vutqbns}fqe-OI5_+adBp6Hb zF!>$+2)0u&Jm0Ib+)X_xmp)9wL6`EXP0M{1%gIUn==AY0q8|X{03WKozJ<)N;!4g5 z@K8!egpD$<>&-NSoiFn4x4ved(XkMFmf-{2mKN9-#5WyE{M4OV%Zutt+DgYZR(v1Z zn$eV`OA$N1OjmYU*b!fn>tmN>CKa(tF{{9Kq$;?hW#YykHxgO(Ae0IlbuC43-+XxR z0TX#7YVRQvfd#)cHmt8gerS1tV(cZI#J9v&``mTQ_40b#?m2x$E5iwax=`{270*r` zYE{|$h)8<&iyYBNdqm$xp$`&PxSqQfSS7}~3l{aN$+bOeRPekTMFmkRLb&%_3>Ca; z3G0Xj*TIO;9gOwAEM3_2Bvcz&z|l^;!cg4XdbZ~wr3rSsGubttyA_0#6T?>x_W z553|7>|mG2vaU*cNIz#3h@FS4mtRS(?sOu6GUY99uy5_@@x}q_7SZSkX+jq--coNT zbSE`ESM9r}|HE@@-1`qaM-Je^7J}Y&w)?aF>rls2`Don&=`Yk9P=AX}gIil8KLE;-Z=H zY>(Il=_D5KU`5-)Gl^gJm6g~QPODU|R1H$8c`-#Z?6gzE%Iur~4<&w4Kt;%X3anr_ zp|ZYrI}ec%bSXVpCsiVOE3Eqas@+Z{=r-@IIwR^gkI+U%2`w@OuT+{cwG?lo56e634X$1T$9}bsqW(b?})tiYCCCcW9oeg_IJoB!|OJ$7I$fNx81H<<^&=zFjA^qk6SCf}48tQ|RgicFtP{VkO%Fn;puoO9+*~&t$t)OG zKBU%FW8CB?4OTy0%UG6`7_6FF@ZEpMZM(ow=PyjTc{L%TgF3BS(NKCo!;*7YN8E=c z6IixCrN7n!+-y3+d5dOFQaC&GW|7ng#{s4P0;TNhk_0o?acG1AX7)p#aDC_tnm{R$SQMp}ze5Yizu6mA42r zE9TjF;~g<4qw?}9%#AmaJ|dDnCj0EX)g*!6T0g6_ew>lyG3D#bf{qZN4MG8-&o@#5 zKxtnYmRii=ldR0x)jzGzAmQD^G_!RFc+u?wExOA^I>$+^Q?E=D7pbcJK3A%JsMqkO zF8Y{Sxr8b=a#%6Kt-?bD?*6P02~sEr2lt9kdw{*Jfirej?(#S6mHoG5UeKCmqIZgw zANn3lu^e99$({wmG(sI20{{o)>oANHrLE#aBm>EpQF}>KrSBIVaEAaU3CBB-BfG20 z8$C#^m+}vYoQ9qsaT5XR+{hW6!C8@vhgE!b^{>Yc8Fcu? zb?chC;`BZDk&h5aS`b^CO-85m6tVs;XS9Mr4tlOaJB3OzpPdb$K~X z{kh$r?er$h54XHguRS%QR+fW;jUzwDl_m89(J;ynGZOku&LMKHW=YlvYAjOVcxia* zHw$K4^sXj1CzyL*6%Iw&u0iFXRx5M&(MP)WSn~ldVV3Ie*7Qg2`1uMb2!4i~%!~h<1Lm`OgIlLla2MIH+-;*~x z2k~8wf4^Ta`H{lGR+fZ8s_RL$rCS-o?HTAx2>GlJ6Yj5FA+E(>9r{jj}JbS6D`%TLRI1LlRk?mDoJWX5%sPu|sJ z$&TQU5V#$G�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

    -C&4M>!s1EAzs`qD!u?FbJxszaOv3d{!j(+I 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

    29&xl6Vx%g;sg#=e`l48Hd? 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

    |oz89)Psy`(8SCML*M4K@~E)OlDq)hpR}F#8W?` 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%0AgPc2~>w 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%0Ak0}RqtW_;Sbc3*H0}?DMLrJ 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°|Q%SA2S^;cr17o#SFYI>*sRXMTTFCXPA_ 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

    e}Wf|CH9le%!q~ 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

    ~`U}H1qbG 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 z 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 S(dAn|VEq#y9J*4YTWP%4c8k8wcWp5mJ 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�KvKh}@lVzTdRw9ZEC<~5`LmwCSY2zm+)n_A(|ghkP25p-TET6W_^LHj0KnF6I@ah ze5Qw+1q3bu3a&yIexJU;C2ql!9^UWalC?0;-{Ml->_L)yOYoe?Z}A|Byv3z>Cr;ngylc}X zo>daQ3H#@pqpj9EKk|_i-fot+ecFysc7FQXP~RT6{d4fA{n<4S=7Kl#!2|IjUDt%! zzB2v8bJ)g~S*Oy2=O@M2{4t*N;LEX=HRt2&M}Squ*Zi#z)|`y5d7L;yTy*)D0J4K` z#o|M{h$?WBm9%$Mk#!%}+Xnq$@t=1kh}?B@nfQf18Xd)mA>c>bdJ(2dSj6(9O-T;bPU zqHq6@M1O@uUkTz@43UH}xrTL949H=(52Fz5J)aIn=t0iZWPIZPV(-lZsrtIcaiTI` zNg;}msfbF3BC~5IQKrnI43&#QnXYur3Kb1RDM@pRl37X-Nm7xa&dpRRMEI?J&Q*Qh z=Xu`u``7QU#~Hp$2&%?O;hZ>#x-CM6n+P6))fw;VNLf zeIpu%qNu=P7dS}77hZ$fct9Y%0AY;gWlVSs=Wkj$Ct__z5Q(Xr2f$!?3mE+MfT9F{ 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	%wpzxBLHFdgeW@lLPFl{n%2L_aqon7j-x
    zIGghJuJ3bGxcnPHZ^@{ftX9t?9vONG@vYawjf%fSUjvwg40Rs4aSHTl#Kv6=dw<2j
    z8N6?t=b%Zry^f@bSPyHTPJEz*&_7)i-Y2UO0fWQLjo>r>DM=2abGtw!t)=wJmk&w5
    z!iL@$&Y@?<36Cg^M?@HgxJx!bu??i+rRWA9j>xVjM^pE)4vq
    zU#dN#ZsCPU5J{3VVA#yp0@UpVF)~Va3FK5!emxeqsEgEQ2Iv2$ntd++Rc
    z)7lu?cUGD0hsUZ*7B>Wo>H$bzdH!=CtuXX+>*bD36=bmve2);=?1TuI22x*^z-|uN
    zxc5Z_cv>=Fa8o
    zuJULQ>EvVXGFix@Pa`Hx#E?vjK8Tj~P>P{A=ea50AOt@uE5^U6A3kl6eJawUxCQzvV
    zmo%3aaJf*T%#w!@__gcMxPG`c>1m;RV@h+YlC79;(A
    zLJhr|gN@{2$vew(v3f{TuL2KWI%@1C++myg)>N8>x)M(i*27R|J
    z0JB)Un{hr^oy0vo-REdnUOE9lSAvZjJf1v97cn8LwwZjVqOc6|i1@;@qexuyBo~>H
    zK9R?U*2_7ZdD>nc{M2K|m9^be?N6)=xMOP;wO@W|{Ge`R$??#-2zPU(EU6J+bSRd3
    zmWG;GdGld%P-dzuoAa9QB-8JtFEV&By(hzzGZj6s+9@${^3{R$CxG-q3@*nP=Qf4B
    z%|NOToi;6cWm@#+bbso^zdNw)jdKkc#HdCoSKi>TTN-b57O0E4Faq(^Gb<4c^Tsk_
    z`~TRT5?OTxzge_L8z^daXFK{jy}@@nmnnFFvk3a%>ULxIj_wrYO*!7h_zVkjao($Z}0_%>($Mw&&th02})4Zl$AA$o^WSb__b
    zdQ%Ul6a+A$rl}!7x*R_MJd}3sPJ&Qfx;*&o{M(?w^R$ylfm8X{P4Y-$L3Cl=3H#(t
    z)*@5$C6hgbb3|8!%W?D2^1i9XHXf#n7}9rg-vY+hr`Ed*ykU<5sXDr$w$N_vg^=`^
    zf^M$XCB};#!0DnL3oC=s&hYU^#5bcW-IA1(#|(h_j-b9B6_ZOIbPC@1^9+I$eGeSm
    zf*JqH=G}x~8ItegZuv!W+1DD!px!CIjhr!?xq^FfIO@|Rwhl*4Es}L+)Rj9_>}HQf
    zr65KRlT0$yC#?G!O&=|+?(Lh(=!QVJnrE9EA>9nb{*Z8e7I0Z(
    z{PFt9@*p&{i;OZlGi_l?{_$5#Hf4P}$K_Rb=tGl?=Wyw37nN5hHdA1~&TOL_{LKk~
    zbA0?J!~V1WDw?y3KqO+J8~?Xn{Cp&mZiUQ~#EZe_0`UPS$B`g(s}n{mzaYe%=q0Mc
    zelw7EF{J>h6s*vW
    zH+kk6J!4!IBK#P1R7l4>+ZwH##3W>SmTzRqLBeO~--!50i}oawOD*9b-*KhbVr!bq
    zgOnF-vb2HX`Vo~fmTzVsr8?E*vw_kUy*+}PgIp$zUlIMLT0p`Nj#xL;%Wbf%R
    zT{|iWC{Ij^>uAR=(^`hMaQhP*GXkt9n^~2?M0*1)2)$s$4~7~6&49^8SK^{RCZHXt
    zhcoWh^AIhS`x}!oO7fv_a%fwIOG(OI=0Nd!tnspu-%U>^?hkgms-F4fD8fmK0Q6V8
    z6ZafINR@B~og`;n~n8lG0d!Z_HasvQpt(#O`o0=pZ*ItHqEid9)6q&NvL+BJk}
    z#zRxw5JUqQd-j$D2vLM2yWbW+RH25F)mvLasUMO&&^@zm%gmh~^+UMX-GPOk
    zJlBECUz1d;mtG2a=?87AYdX&gv&T&l?h6<5v3eBb-mjlMj;{)pi;7dr+q3#{IPq??
    z^j$znT8#+H>Gbg(KeJ}jB+Z+^MdVx{xR*O&|C72&Ws>3+=C4i8LBrYew(k~hr!f0G
    zm0MuSxFp}7`~SlJD%FdY3!UNjU#z>${F+6F8^A+SCPTMFQPgXW*R@qJMRSCGx>Ob0
    zj|hQvlO`T4rJ$`4?8Pm_H}LrpyuXwO24=u74aCX2Fs8sB!(^*|dHh~PaZq%t9ozp5
    zd8QnPLK61B@tfv>onYz7PtpLDg^Al2v>)X&19hCtjdM
    z4s)7j4XeQ+;-Dn+NQY#TV>@J#Vmxi3+JYHLRlJM$sQ_IY0
    zP(`whXseNC-3x8Cwi+`j61QY7^KJ?+HGKXK6(|tXIeX4fL*OTZ3gyT
    zG$8vaH=l4JmU1mgMayEpkn)WtLoWO?pZNkZ@ZDZ*2QWLeFJ%nR_#wM{&ynq(v`;Zm
    z2XHT?>=U4MMJjP4Jf17C`!KIpRW;>t=XZP-HQE|*Rug-&?Dj=2ApCsa8C~d~zR_66
    zP#X_K>q4ME~^%Z0Vo8h{f7^9N}gc+MxWe~
    ze`dNvp+qV+G}yG2i#@zpDZR(gOCF$*JVio&<6&?=EXa~kcO
    zWu*bH5UE0|jMjVL#zHvA3fFcx`d2IKs#83u2WN^H+q7j6#ld37ozSxT!QzcO(rYFX
    z?cc+;eX`Y?1AUU(LoyKY@UkzNbH0FkpjG&&C!ZhACzI{>-kWmAnZ2Nh4J9aE5@##d
    z&Txk4CQEp<(;LGd!Rn?FzY2z|IxDIGa71>i{R)K{
    zo&QF`)Uy4h*1a|9oLqjelqKkHG_N32o;MFlt!2F9F^ga(NPH#|YYcJmOqFr@X30?%
    zq6!U@$Ih{+BfW-+Srs3KE=BpA`7f@b>I^hImEG7glP)fGQZ*)R@P>u?<tZdAB9!tmIjs{sG_i8_(N}j$$Soi5)#jrO126TVi*!U
    zIElBKTOkPvd^k4+vmP;E=RWYxFN4Jy>i05Ok2Nq+HPw+cJRRVG>PXr_?xh^Tq)*R|
    z9_KX2;qiJUy(%%K^iv`0&9CE{ULye4gj}6(gG`L{(+C6QEi;J(Yo@^OX61>Q(+y!Y
    z7Oc@=r0)3Nz@i}gv&)3VNJ{63w68!=u_n`)fpaN=K-Z>!bQdZVVxmc9@oc^)E*kV#8pQ
    z6Vyrtmm>6%i#wq3p4m(G^hCiIa~x1bNk$m636K@O#>I3@Szc{mHX1S!a9AxO(3m)}
    zgyGQyeriloN1$6}3sprc9{NY6slZ6^+8LBKG9-LcDK=(^DzRL#L3PydX?c4Z|qeUKq(0YGba9I$xO&#r*#<}JyN!_E>i?ePz?vhKl
    z3(RMoV6wV`?r?62{=|Rdx8@UW#q#gUZ_+fLl^B~vYn_N@s~06t-S55Nv}f@FgDF6FZImm>p8y6QyUr!jtelU82gVQfVg_1tKPqp+w-l`gzhx2RyJ
    zFID5-46SpnEkpwlVzSOh=l?hPu6uasMKzc)-lK*!g^Y{aM$P)m+abogZzfskLga!R
    zN1Zb_Oi`njt<7R_w-GwIdJ;MLWp_AC1PWOnb-vqG}L^uBQb2iXBX{TC|@1!$I40F0#~HOCwu~
    zl@;>rJtf+p-%g-zVBlvF8+Gq+@Vl$dZSeMW@lx}&_Bm*;w#46#gjt!W`Q1~nAQi%S
    z!%5n<(be1VPlk~9$4Or!T?H@LvX-Z6P9Ehz!<}4zreVV%#;3eDJk?szR>v}kWgXfR
    zezuDd*WnM{wGQ#l?lTYbRP&{fX#vn-~W#IErewp>~PxwsTtE)
    zvmuBnwL;$RR_=0!LT)3Hm9twwac}(=GZ@kLfsVaf+xq!p*#cS&UL9~G6JQ&^P44{;
    zV%IeXbkV*N0F3m*!s7&*L{&7Wo#LLvHmH&G-Yiy^5O7CdDrk?w(1`!oC2?WhhPziJ
    z+K-fma-S%VyNWcuOWB#V>JaN-(S$~hq8rs3^vEzA<>0GIPbCvYi&$o*m(cnFzkU>5
    zfevA)K8Q(H-VutrU`^z0dU}Fx-f*cI{1;v%6yz&cKp_EF#xvMIay~XYfprs`E~Vy(
    zyC7(4)pgi#X@7pd_WMz+si4*pJP4zZhq_c`>*s1cvaaiTkeazVTxh5Z^lJi8Md$IJ
    z%>u|LpmTdQM(n5}=~eE{3_6*pngS|BK%
    zQi*seXC5VZj_DeNQE+lHtQ;qOQyBR55cIcxTcOC4BldxBHFU&lF+##x+}o1%uk_oj
    zVBo99j+&7EIE-$T%NAkf6y-ztgx3c+`gkB$v$gbqs9_O3>a7!b&Vy15k!sB5!&V2E
    zmZz!#{=8tZ9XVDhJEsJoMVlB$t&QE;xYbC|4XnSyE|xz!(sKAUmJ`xkANq;sWCveI)3r_l^IX=k#^#o{y}pJu-X3kBy!klr4)Na_1o
    zCT5pW08^mFBmwd5)XP}N25jBrMke0CIIWBbfiE-Siq>n8ej7)lCyouWKde>_OKTI`
    zU`Dm%js2z(9y${5nRlb=|Jy`-!D`NTxj;qltYELGb5TixDjYdYD7&8M2!j=4NZq{3
    z?eT-`7H-iF+aCuv8<7Ni
    z4{wbY`AGKnd<*8Utif$**r|k23Wg=bin`|sZ~RuC(nw*@Ta1EVu2tM#Lu;%NbP>R8
    z^(Un)G$j3A1l5!ce70~k3QR1T9me{&$b15d{>I~C;3a(n^}pr61&HAHGWKt59w!r}
    zb}u8qrrcE~^d4|6!&ixTQ3|2Ui*oLBQ7pC*1g2gqiMY^CmQMV1y8)AfcA=gohQ$1?
    z#bsgwkv_XF_zdPTRo~Q?_pMjr@9vGESz9BqZZJPs&#hoBNeMkuCtMJg`QEilk&r;=
    z(LE!BoVFZxUOk)B!Rf&gV9)&RI5QupcvCM8UFoqQ%>XaQ!t|_=;$Q1PLYQu@h=3%G
    z18mmMa83D2CQX2TzZ7%t0=T^b?K4B-O|_5NHC8C#VFYx8lU_E+vJ*j4_TE2(EOzR_
    zR=GzmZtPB^4`OA$6xgFsyx6oWM%9{dR~e}m3mh0|DnWQ0{?zM?^xwd|K?AO4=mT)i
    zMZC5fq$G;!Z5r{yBuvm66$eykdt2Il(#c}>@63obLY6LR?FWlb#gv5&4Nb^A=Xe!p
    zC{zDc5Kenqne4UIz(}K1nkW=iolC!W*ZWweRiT?5NrW1x*KQa92~1%yE1A?w!T`M?
    z(U{tyzr=pXO;dloG~73I_FqcZp?)2>mceKU(x!luD9<=CL3CaOCd5ps$R`UO$QseG`N+5~KPN
    z1hnhVe1C60!8xJ})32x*SB5gqZGws@gL#JF`>4c`=mg)>YW3?IZfm>nA0I~%TWJdL
    zx)r{OGi=vB#FoC5+l~QPL3xn$s=o3kY6rufuq_o`R2Jlpkb+(=Z*4Vl62zk6bp0_x
    zmYm!b_M1_SxXxxyC!z&*&7R_*FJ8aIa|AkPPAFt?wr*?PR)@GUdAaCeK7R31hEDCI
    z#Nj@f6y3rOjDJ}d?yA7^iWY3S?Zg#z=$f;?$75wSw5=d-+xo4*Dg>Iz=vA%tp>4O=
    z9$J@_%ZjCDq~8#N0tT$(_t%Xc1u9o+<`ZZExePTPuFSL|c*{^$)>F2JJFDLiM@T}@
    z4`-V<<$lffi#t*-u}}&d43Upp>j{8}brwp3uQm0(Dk}S&UxN=~>-;J)DVy~_IGq+M
    z-0(4yLJOq~M7ORKNJn+4QIGI&;RTt9;aHZ6@XW;C@kgiX_tcsPTa
    zLD{Vjvvb+#{Nt~g5X!v9stE`cgBJ)94-Zrt^0xuVBbAUDlEP&{$DyN-WG|*#<;h@A
    zjai6#G*1p26zRN(x%oAOefgTUbp$eE+7JS4N0E^tZU;Oxc>F}!+aPtl8>_+oENf~w
    z31!^AWs2{_dtHD)RfTf>{Sob!lQ`OT2xfFPz168T|6R0HeAW?^+V!MJ(f4XG>$|`|
    zOpUuLv7zA6>!*ibsS9_F_)Z?n=_=e@G&76?gvZKZO7(IK00Fu|rRrwL(gUKios*d0
    z-mCHgY+ybtY<=TH_8(Go6_WC!{NmTdvw`-{H07GWa5ITLiI9jZovr6NQ7&DT&
    z%W_cUS8(Uwc%HRF!0^0M-j^Ndk^D?b%HTe1qG3k72Zj5=q##x-gr5Ye)I>`w=s*?K
    z#jDO%@x~SX5N9xQ9ou6ov#`B
    z<$NmzCL*}uy>fJ!&eZ1G^wJ5wZsAidE4foH^bZ)up)@Q4%$vo+Ml3@4)&n@As1#gJ
    z_pcZzi=YsIzphn3Sv7H3eFVLF=NBSQyPT;g@Zl>FRvW
    zM}*yQYb?}r0>!vWyWLqHPV+q962=3d#kK?$%DIH24H|ghyu90Zs?jG+2-as8J~brR#b}u$sR+b`dgQ!AFFBjade9mP6(rOT%_fZ-Sqw{>
    z7V(n(-9jyrBfm_nv94pUqLBu7=;c0b%(6R6X76`|c8=x+i5V}3dxAKf*P-Fgjw8;NsUQHY3AmTbp8#m{8s{}+8i%QhYw;NDQ0U)(h!c8Ufp_EX6xU9kJSM{U
    z1~Az+%gV}3X>;JK7~wj!rS~s35{J$4Q_eh6ZK}eZqgL^4*O;+!^2MAvJvf1HTVcFw
    z?mph=I7OwA4Uwxjb;nq}c+yzBz2z~ktYf*~O5Qx276Mb!ABeGw?TM+N52lRnpqBqw
    zl$oJDC~T|)9~8mU{`zf=KzDYC6=pe87N9erZ*mLl6`VZUR-0^-{R|293dEzXOHbqR
    zDG}1!>S;9Sd>|f5XHm@g9y`b+J1HKt3v3<}Jr@@>ZFi8BMgSQi`Q~jj4w&a6n%(rv
    zR5gcDit)=Q#ufvCz%no!Ws^-!gGM=VCx0M-zs)eT*9a_OD&K~*PkIxgwD;@>ob93i
    zLeP8SVC1sw^LDBtyy?)|8gUE8p|`5D@cYF5$NO*7VW3bm;p1@a4jm}?;vOBGV#5?
    zainHqi5lj;2v~xJI&FCZ>DE8DJls*y8Df!&c06P(ad6k*x5Ie-K5WSL;o4D$&DPA16W`#loe0XmMZ5dwB)MP#?>%PSe)e4(%!H
    z!h=RfTmI!nd_aUgL+Iu={+#Yh6}FZz>EIrcH~3X^BaqRJG(mv^UPeyk_%
    zfNoOkin3TH=H}t>{>ihjcwu9{kY8=!Qg^SLbz~ufOLmOFp^nJ*q_JiZI1<)fK>MW_mFPmzNqN&WOlZNn8!)!9nqJ
    zV~}CxeLJ<4m6_|_x{ZZ4T%M(}N4tzd==9vP7z1W{OS%%x92UJQD9HG$+L`kW6SD3)
    zV}})e-8kABF=eEichh9Z?sZ>r!DOv=1YJBRM3E|S13`x={Nj+2sFr}j>$4-BuF})i
    z&w!=d*1eEyAF##qx7$+Oq5|R6-j3$*ZR?qLTX+|Fw}x|3%)=&*q!(m}*YljZR{
    zDdl(*{g@3msX}-Sv6f$!zm(<$&8PDs$D!J*OP4hr4#SIPf(exI*%)c1dT=
    zko~ZJ-YZX%@cpMQ7yND?FCvngwgxzGuJ>%pStMHS7gDI4_K9b#h1}y_D^Sp
    zJ`QFv>z6S{PD>Ia%KWMm%b*ZXA`^n7JJx$oe+ntg*ZQwvw1xtnoIq=@2c-X>fU8(@
    zz>3E0E)v6jP4Z4qp1&6nSSmi0my%rpE|3Ce$eU47sK`0mrMq?>m6Y0?X8GwD)VOAi
    z^=eC`Ce#;n5Hk8FVBVdnW{$^Xxl>Amz!n8CBVhkHon`!&$i-M(UbPC}#fyWonNXNG
    z!Y{@Ao*f21+QDilCo6FX{)3W9fo1#mqN=!*tW-%)=dypKt-yt_CYiX7sf+GguhAoY
    z)A{6H0h_w{+sqVrasGQ7NOZPnSU_d2>m5#ghK$4^C>sXqFgsB-Tfu3F5QjEq7D_w+
    zu^ns$2
    z821l)LvX!xhfYjt+6%goD6?N~(u?uZ>)RY6)u{vVCY3LQ*2I!gFwQ{D?-F(;*940o
    zuAFZ++T6Kpg;?+;P23Iuc|wK1=JI6f-wE8666if_@|!n@L>ttpHSuk2EVfW*{w>F}
    zigQbK&J`UbE0G
    za%7Q6pt4uU9(IUZW;{MJIH*0B6Wwb&{@QaM8jC!vd@)q!td~TyaTij#3Shpt=-;rO
    zKrXZoF+w@lXKFYo%rQibjZ`Hh#a);}@z19+zQmKE^j~8KXiFvjfS)OVzmAIY0=NGrr?~{nY7dRKP}|(9Nbm1;lsvkp8EuJq-k#*
    zmgYx$vqb&j)78#H@Ssy&SQ_X}z4C}}T2Y|e%wvz7$St*sDM9KHeh
    z`n5~vXHLL{nOxy`_PRVrLdsA@A<>MgFx}^Rq#C*;?vLg1-GMLYu*vQ=DMbU8>N+HW
    zJKT%q(8Cq487Z1!gOm{LK&GD0%nNQ?ZOB?c^lZZz*^>C2aXHC1=+mxbiy^?$2z#*I
    zkeAN7%NuWwn~`Ac)`Uvy`N4{j2awqB+SLuJK}q<7^tm^r4Fz2;*LfpX>sLLO>0bMy>$U01I2GZdjAQ|Hc{29)cDpjSOF#d(6pu44
    znyc4pB27|Q>H2*Q2>_hJ*inZ$^`#3fCb&A?y!?tg1fA(ACplL-l)SDxCQED5?IqimH;Y;-6})&q}{)6iyu
    z7yeOzEQ37TG@H@1lDsPOlR1c?~NE9d6VMJI{+R6BCtX@U03KJ!{T)4j@3Suif6$y&~G-at$%`+TM1L
    z=)y~UfbU7A)om1!5~yqGS&e;q2c)4%vn_zQBB!GmX<~>Z!9#_ll|FvVO=`Za7IrZw08Mwnrjmh5r
    z$PAt$H@F|#Ha6rwnDv3LrUt;oEcf#GWaG@RJ>1l({6gtVr#S0zTkA-!PUYD`p1
    zRCD>ljF9_tIFc)2b+Q$LH7mXHwjl%&)_U%o#~b&A2VFYA&j(KE}`l>~GXE
    zsQ($olFOkVV>;w`(T!)bh{rw6;ad9y-gj=0`?P46yKV6Bypnkxz!$_5YHo=EzE-&`
    zGnS3HqB=o3$uE$l$e8>U*`%2_5nomZl)_Sh^5h{8X>vevVE+Qo2j({1jM<8*EPbR2
    zX7%+R9Y?>Qtz_~eX863eT%M|j1`M}s96%THB!S5_6sFW)V~K&Lj@hZNxR28KQNlnf
    ze5Sd+MB1WwQDPeJEtxX9N{FxU0>(-eKWBnuGB|m!799AT4FW(~Y~9
    zefjD4XFhw$YRj>Y*QHuT4IRpkKB51WzojePm6A4I@UJ=e(TmpdgV!ech7GU5uR8p*
    zSvpjFseOCWfzLli?p@MWppeNd&YV%Wb!R?f*b}ZF_nQ1%V8KUkN=kR=1=24?Lb^sx
    zQvK7U?r)&Ntl@1zMsglPD^4@<7C7}J056h`k>yD(GRI}MFqK35v%#|g%o5Lq_HqG+
    z0Sm_+IanJa?iINt+ZUrd@co*^|F{=f#@>fe(9`65Sw?^70A&E}!J&W-1HX8dDv*Ro
    z0aj3&oL>7TBsOD`3a)KH4CATv?5^Bv42@B{huFZKTbRpI5g3_)!+YnEIkcA*`i4!T}fOaMnx6czrrb0duQZO%HZH@sc`-@|qMCCS}$D#JYs?qx4Q
    z$a%KwzZ^xCGFovdnr`=Kmx$R%(u%Tw&LHf0O^E=+Mv>{KK3<=EeMNCG00TH;CVL5}
    zf}hXkYJb~0M~_3f?42>gRyZhzvpS|5Hfpdh7vmFb09t+A_*p4Zr~7rrC%i45EW(Gf
    zdLqHHXrgg-ANB^~oOc9qxoaC8%dH9$IH;`EvZ}7U;Cd+&pZi`I
    zSvMCfmg_l>sL6)Zq3a%AYysbT!?p@Z2a2NGN1>u+kx}l}AZ#QR2Z7VE(P&V)V1aau
    z0q3z||A6!QvGoHUEX(uVv48K{r;+@qIkoCxwfXZ004G4$zqj3kr1yRP5#mtAKyN<=
    z@(0bQoQHNPH8$R`+Cf+4g+KVUJ*?RCUec*f0-u3mZwBITWTo`Z!nv|a<1PAMmR%Jd
    z04=A(o1w4{8^aTYTV^*vH%7(;zqYb3ImXQhZcW2Qme(Kf58?4vxMw#00fGBXz|bL(
    zQ=;wQtHuV3|LK%^f~cCi*|0k;5d8)0<>VmhPNp0hU+aGDy?ippJhY}SArYxM&*OKs
    zn+G&H>eXwEz%SrnIlAT7_!|_E!_sZ>m>Up)*>-ZZW)Cm8{euX0^Y6n;b>7#BK&!%C
    zLk6}3tnORj-&1bQ%_TFuV(9Vm!vjxuA$bqo8_ZHgA#%!>a-Y#0{%Q?c>-&T8+!YC;
    zJU}diKug-6LR3P&-HvlI8qe&t_8po=@Zq~CLjPJzll%==f1NckD252|HR6k*snZUy
    zx(~CZzWB{^bQ8ujmuJPRMqgYk;)*J`J^Ach@cU?~LB2hGJ%3ypgGD{k$Ek@v4bN}udD?Q6=hy*rd_l6Xb(;Wb6p2CU-u>ZpW^U)`A`(`=LAS5D9l
    zemw;eon0{Gb^zT=qVQ)QxhJJG>PGCG@JgEJ$D4~~p+{4(buX_qZ+X&dHN;Uska?A?
    zU1d7MqupsHqe@YTE<8|OLETd~Hxr@Xcu#c;b4CR}y(M8ucUBm`YyfpP$RhyznRo*_
    zF9#3$SL#X*>$W07TGD2Cc3$2+Z>l#)_yp^=xXtk_8d()nJZMfWK~MW_Iv?&xq&|{<
    z)vuxj_t^xNNJ;8IGfEx4FTG5(^zlVoes#=Bc7v~9_m9?NxSG$WOF$0aX)o4_->gElh1@l%4_B0V2$RF6<^*b89&wd&d<3@4RZ>l5d*Q^iVE&d
    z(LASbopDK0NQYGY@IDf#7Gu^)I8^!Pv@OGPRCt~Z3DPbu2L+#A--+;lc}R0OJpt%HW*Re`$oxWI>0N&TXLaT1W_Slf
    z7~A~$&Vl#Ibm0=4+8q-(Ds=;jqe|E%;tUK;37+6ZrMte8ivVO5$AogIF|FwLs=Mcx
    zY_!C;?DVXcv!^0HK(?q}0K_H)g_4#|rj;^Ya8{(IS-h$uyh2%DOmQi>?Se7-y=Y;Y
    zx>7+9Wu_J)Xk(JL1C5YI`%w~FblCN&$0aAns7H5}p6LHE4bPO%)QK(xvsesLgzTF!4XR;NCUzz&t%tmi0;6xp)dq`PtI~t~MyyW$
    zqJ^iid3SGwycLtV1*M+v7T7V*h1}N_YW|TUGiw2~1S=CS$Fv+6<9}2sp;ZB8rr2iN
    zZ)w4;;n!ws&~nWRljZA}HFO)yP(|`(?4`N1lM^G(`F#f4)FMhF0Gt2Hm7v|2!N~w&
    zpmn?(mG+#I$f;lzUy|UNK5YQcS~ntNmP*$xy7g+cYDA00@wB<%gC;3ZqyOp}v`oX|
    z!H1QbKOh&23^mc}2a;871eSmM6{2PxztB`?}`D!GSTGwHQLdwAk6}}w`g^B$maI|d6!jn@Y1XgPr2wg
    zb>sa5uk)e){2hpO*r5?#@ABfoF0iJv#ij+uyDL2zEeo16?*3mgMu-faB&W6~%4fsz
    z91jKLeY_9Jn_9@5G7zERqQrBfsgnb(w=zPuDXo1LuzpwdvWmBq0rLbFi!>?duav3_
    zLPKRi-Prqgn&V`-r4F^)ZpYKmJf6bTWEs&`eCFDKFUQu>khvt
    zEap+6w@ssOfityir~{OuT;MrTF3qQuv{CkNY%`e#(f@H)YKfYc%+gkdZ9Ax7DeH7-^pwbOU#OB_qCm;_o;I2jN2W(t?oBRzIK52!~+_;c1_7
    zvH63+WP_f}uOVtSl{z5o9~6rQZC&hY=>$)iiuWzwZc%Yna7`V_=&TkMA0Uv8t+lH=XjC?Q%?Px}-To&gBIqcK4i$!p;hPj);
    z#y&1h?F0j^Mo9C;BA1_Rpp|x!3LL9U7ju7Xi!N=Q4wRK*mwca8!MGUHg*b7S1TsY;
    z{y?OtOM{I@Zh5-DvgIGx7V&Xy+hijZQ*O4kS$vGUlA%E+8^#g~{ipE!0!Z;O9bgxh)NkvOr)aVW_|&>**~_@{H}=j$j0w@5gLd}+G}sO
    zmm_SnOEG^K87S>tX7x+}G);Cm1Xt>*2}cNc7gD6V9ujd8aYaW4akk0lv3`542Xzl~
    zK)lb|(R;1O#@LJ(IC7@40pSb3@)Vq}XVX?Sbs%P?F?dT53g+2)yIIOuJEv)-l2gP>
    z$@Z95=u&!7RoAVqr9EVYgd12Y)eP+#auctBg#Wa;A6>ff6ERFAF^&24zN}p;D!g?=
    z=p!>M-LaHaN~@z6etERc`-_sH8ES~+Me;i6N~g7QM%8(VXX*JFye9XcPQUx;QZdlk
    zKz(qx9rf1F;O6#Y*@Q4-uYP7#+?>trZ`DLDEBUu`6f2fawmB~Qzx;9bZjV5HyNOB`
    z+)ZQ51-TNQde3vf%Pl;bY_$QsFp8QJ0hTMZJ|s~
    zC92aXpMgjIiqGHpbuj9lC75QFs_=xO*gt)SP@?>^9%-E>Uwd^R-le#cAV9+MrftCM
    zSu^?5Gn{j>J}Gz+<%ZV0aOb1aG!>N1^hs~04jjkhYd|**9taou^}xswEBmk~
    zM+Id->cavdr@zCB-(*EumaUyoGawL{6N=ICKV*q%@LK%Wk-hFU*stpPY6*=8nBMc=
    zL6fMrI;ZmNjcy<+lo?fymt$%MqEn5ziU?{tsw5FDe8%StJQ138amLO_`e$!X({r=q
    zdvZ4YdDK-@fek#N?kJ??D`qCnt@!nlikO?VI+hNFh5Zvp{RxAC|

    )j$k6;-6ov#WIS0fdx_#Y7s1(RomftS*x&8BAL+(%i11vFCJo)sr=NaIg}#J2dc=KM?=ky z!f(WOgrAg8_wl|GP#EHyf| zAJ;mWqEuDltN{`}<90zP?RMDe&TJ}m00TzNT7IhaT{e0gDNw?s_HRsW*nsVl zKc7!60PVzC6|xEKMc@8RDb0Eny^}mW{?WLC`I@+lraI3eo2EWy5CM6odZ~tR-?N5; zYOG)ygsC#S7}8sXL-Z6i*OK}u}v4gf;o$JS;aHr(W2Oz zpz$e6H*7sFX#5sY7hBmBH2#T{)aQKp`6m`Lro$1{Sj{tE!)M%pHr}$Q=-zby9;Hc{ zuc+JUpvh9pIY=O4KB}Bvtg2$%uzcY3I~6N~?Eo<~xKSuvaunnIU@=Bww-pyc1K^pi??J%bX(5?KF zY2eXX+iw-|YAkZa9d@t{!0$e>0k{jjs`+h|e(0y+tk2Hi2XrM5s`vJVP$aJ^6D7eELWDSHR4GD zmo4y|Yge_Cj}3J!Nq(`0Z}?f27(Jm{u0aP=vl@=#UW(EBaeARu|5KO50hw7jtAXO; z|DT}v4(SAA2eCt`l(8x(?{w5Vro3j>tfy7p1G^>!_JOM~V3Uti;rkyJ;OJ3=mL6;R zL)+n=Uz0swcuteB|1s}qTfENRQ_+&Em)03^xD$(-S!u`PQOz${RF^!&qS$L=+&Cf zKo9OXfh!fbQ_|qF;~X(?cGS!Mo&zrCiee&WdGoYb)Amj%ubVcQxJ*RK{ zP(-RD&_9XpwSB2-*=x!->yUFb*{LLb&9SG7pPc49>xY4Y9gdX2uhMbIOX>75hk?69vWoFLJ z&hMT0Iei{Ltfk!Z0QlKQLEr`gMAY`dltK_x}VY#3ET6RBdKU^;3HoWfV=+`6A_E-QUdf6Xr`d z#%J(Gml@Z6 z5m&8j726I<@2gK|I$y!=ew`cpzR84WrG?z){y#?k%7M$L4nnop+?jhal1#l=6kVYJ zYE0|nD~h;0P7=b=O=?hm?Fow1ip^)r*9}rYg2^Of!uT9B+E_Jq)$dif?u7LDsl@sZ zz1vKA_ND!=e&0)@1vn2Nw^s9}qMsMYo)ViG>s((<2K3$@C2D)j-CSZL+4X%J$)cwi z$*-j!?%Vr&0%&h+RjdrxB5&L|zS`>bR_!%x#?9MR?E^wk7z1?4FACMybvPVQZK#Q< z^m>xkFXc5M%@TpIp5qn9AEB`W^%AEUi1Ksy#Xg4LMZTd4YUq3o>$~n6HPumNiPBUU z`=9X|!x=Wp0VicVtRuo9B*ON2nzH-jsbN9F48|uy)N!RaZ?_t+$ulN(9sOJ=OWzCnr)?nso&W%&IbY%x z#Lv4IiFg*pviwT-S4$qQ)w*iRw&USx2_sfoyh?OghRV{N#nhZl>Oy&67>H9v0$SA& zRx|zz6G~cjC{dU_jEKE9xj?f;Mg_U3BTj5^J#uaKb6}0-oj~ z5$i7Rg@(c1kG@w80#uYa7;xsD3Dg7L`c5XgxYL97z(O3Pp0 zJUlB{XZlk543(ZvY1fb`8VO?ZAy?4>VNq1*{zs_j^(s0lQK=rDEc_at1uJm8F`@YZ{wH_m? zFMrG(A?aIv$!N7y1x^;ZTB6&wtnurONwt2VwWh%M(wB+*9#FE*dwh$UGOw7#3Seds^Ue3vX`&6Z1b zlT}KGm;KN?PtPf{@6N+dseCibGW@WS=a0_glAZL4+f^1fJuWQusnzS` zV|3Kb6E+eK6)ZrJv>ec^+330qHT4lCIXX$-Z@pxT{Q`^pVR`{5%aqPwiK5tmjZkjw%-%cPS)GHLf z#9l|`)Qz|$w)LIynTS?}$kGnNRvG!6RmkWWQIx0=dIWVYW%OTlCPPXs0K}t;zo5DLwxV742z77kJ)H_CG}#cPiuC+XyACMns5(lVJ$N8)WLo zh6%FTtslFw!AU*mR#>UNC&68>Cv0ts*}Yb{U=!e=+E)G$ZzhdT6-hQiFlU8U5atBO zOlnV~V!S${ilkDtF6F@{8d*i|!df8~j!=Aw@r#1;Qm7c@HAW@;RTM?$s#zYH%CZrb zuLR!`Fwyaz4%6EOTpok#)M}A?9w#&n?N`Vk;WAl-xZQ%FW;o)22SbifmA-BThlZL( zeT^sHRYhHbUYhPHJoM=U)c6Ag)*{u{-EK89u8vx|LGG;5|6*4m1a`V*)H{vN{TLsCjf2GhZ9!d8X%JGo> zd0DyP&g`yYJy*VA;(ZmRn@<+VcX?G2KEH|)O0Riqu>+|2xugO4UO~P`WluA(5>+>Y zy6HRan_Ug=6&~)Df_u8kHh8#`a^Thj*PcGCB7cdmH_+ERPWAo+x!ozg-i(}j5!ofe zcex}V*IsD7y8s-T+!PPzi`T7RU;YI+m#F;$4<}=#V=>MH4pfOyFRRbv&%W@|y!wOO z(LXY29No>k@imyQJpCUsaQz_S?^kDU&huPx#^20uhgj#*iypfGf4RWh*?5!mjp&c- z2j$h(aqrN3RF`VKDbZ5X!5Ugmm$gifL;lh1>HNVM!R8Y)#8&s@$I#ifJXMRb+BYfY=%TFlH- z6lty2Z*=_+qeV5LlC1a=ElQQ`CcNg!CY1k_vsyotGsk{Le3S#J&Or7@FWw*+dtS~6 zvc56HUR}|d`$dP-E5veJgyom}ursO%TKedU%vgqzyS7%$z@_xewn$7QZ1$wgQ znX7GfHY3O^!mayNi58Svf$RCVnqBgmEk5xOdc!;&g-t}-+5Wn!mFz!L;_py(^wn8p za7fL68m#?mc=$Tme?lhzQSx&J5cBg?sMi0aOo3SjAUmoD>g_^G9G)q0se$nOq3lri z$qY5uu_X?Lj>19@5kLmJMc>)M2D9S<`%1c~>uF$(0kGI*809B|E1se7AJc^e_ak$- z^-M$s4>{bT=BzZF|G_b(!MsjfYH4tN2k&x?Olwv0P+Eqc)pl1><_Qln01q6o(hWY@x5)O(C_q0 z@yNfhv2N>Z<$vwVzat6!kjl^S<$sk^ej4Rdhjfs?@KmqbI9&9E_Adp(Qc2AxP)%r# za1S0whUYK%kcq%_!e5ymX$FsIXA7@RXg-Wu1}&;e&}KwfQ`w{R&scx)IuaSED>pPS zmi-VGosrs^YQCr(%!iRzrvQDTnxQ=l>6Oh^6GGO)8CoSZ;b^)*%#R%=)M2nSVeHxH zev0FUbeo@s>7^WjNEYuCrtf3v(!^+s9Z$R4;Z1(A9qg=x{#fNq&_?awVa~t9oDs@l zr{QIeTN-A|6gT2`r9dpoo7g}-G?*WCe>1jizQnj`aSxhE(HD{ZpEXTNeB*;+NP1Ozw9ciX>L!spR`C@r#?5 zlXXlcOHAR$Y9zC0P?BM={?sL2?|9@?qy9ugJs`;)QE{MYz&+ZB-^0zjk!xwCp?z2J=qJKd$qu_I;{gCHqgK-uyRJ zX&IH^T3&)0@?A++^8EV{^KpHJMU$ON?x6+LCS)fI{s33U7Ku|by!3&j^*k;4`v~Nr z0(m7M(~CS-Je9E3W0y>c5mq9-dSuog#{}>oerg500)dPdy$Cg#Asyji(nTfX^C_Ll z%c>A_RV#@3`zz^z>EDoBv-L(_Q$-`bCdZ9KB)_pG%0FSqt#30Ls2E}<_QMKgcqCtW zsi{a`%}Z_hKe7BlUf=q^8c6;6LVGW(J@-xfO3i~SR@glF=UnE&OMrC^GQDu3(|jFY z-aDp#tsm(MhVn@Y&VN}2x8D$sKdJX9^%bRlNNO1EzMgN%eBw)SvA8ncMdJBTV;QPk zqAKzpbmh!t6Ueyt?@KTJv?(*iQruIak{_z%jR5z#UC7NUkI<#^?D7_=kHpum97%+E zPQ1Pj{R?_EY{x0Aw(NlDuWaW$?J`b^+V=4Dh+bWtoR(iTaQn1lPfYeZF5ZJ_v##X?Zfj6$`YH~Ajwx>;Ud{pe9H`J!d{R3c zAmv(YvnZ=Vrzl~#Hb>8|im%_YmX_2=W%5KkJ=Jh+k~<%5dxdhVwg8orN41ZxjK5Wx z{5kd})JVI*w+@`atFZ;NqHDj8HzGiCpd(UEx@fboF0a0;`%)?$z4+e#Y17(r9a_xQN@Gi4J?G^bIs`YroH^d_aRH{dn)v*jc?!*Mx)MQf_Vjl z(U*T?602u5SVkZ$O4b2`kE`3QZG1QmgO7`jjNrabapETshNDMW>(C;w&1)UnU4IBo zMQq#B`j-eOdPyNGct?Vy=>Z-CA6eC&obX_3FudHPx$y)fn3BIU4d9CIV#7-dX!P8? z`fnhCJg3;sw;cu($JAKf9;$t*plfS)Tvs(7c*0gz-VqLQlMl$y;;CvMtNNHXrHwET!9bY-!&> zBGfd~1hrm#M3nbcE>abqPbBv$6MwYJJE}P)swpAVDdmGK(D4AZ*ZuQhEgX}hBSnJB zc}11a6s7cXa++S^6z(GpMt==U%5nS1vasmyS=+6M(W`P{F-Ti}>UypEQqpsB)J94X zxU%zG>-{F3H_Gp#m-esU#J`?=MZ^mWc4$4-~QH*S|d14r|DdjQiS6cu%#%bLZcC`IcEDIy46zJKz`R z9S2a~z42 zV|Q<8=?acjLCyNgMc)<-ANQe~^Ucck8V>9b$htHgiLYvSziWiZhKt@ODoNpLX*flZ z*PVGiR`RZe8;ZZCf67BHCs6&de2(O~G*9P0#;tg#5&NFGDV$%7-+J@s^Y7zk%vZ*1 z9PdkkoP4zSt;`Q4-aPnD3LGY^H0NdL;Ra!6gu1WW{>T4jZ@{)k-Evcj;Xv-w`d!Zc zklzpbK`yjG-ssxivHG{_X%6BEpfhI%c?SF)U(GxyX>3`}7JYdY_eJ=plm02lW6^+s z#01vcxu+iPu z!$#vpKN?bZSs$E=;;N?PHfra zzS+fE#8%3CUH&&w14fp0XM;&vW&0c8^FsY~K)iM@9NVM=sO*y{m*m{1-~V6_#_v0P zUs&d?#Ld3M4Bwag{D#?_Yf_g=M)>}~U2$3yEAdaym*}$FhiuO_w*T_{k~!qmn*oh$ z;%4dXE?>Ai-!xQ=Z*qOJ!ZD}^AB+^AxYC~sO^*JPJ)fo-y+tj_CO%`(a$M$8w`)x> z{C=PW$3n1lYR_+1hWo>v`Ps7tuN>#l|G(korW9rA|7-sn?efFu-kzA4_KcWS|FB|D ziQE&2!a_eD@Fmg%a;TN4yTy~cAGbL&tW%$r$2IZSBJd!P5gE5R zvITjuqH<(p(bf~riY(f`+nKs8-Fxx#gK7QZ#r2PT$Cjht(HFm2yn9~WiOKFoiIWP0 zN0%fEI~8=*C%1d1pH4`!S&CN0eb#*L_tcY+IKTJ>Vt4$wDsg^~s^qx*hPK_}YqxBO zuU)kD;McatU+=x-#N?d)kK7NX=;Ad`GY6`ZmlWU}UL8c!S99w`_QAd++T-lMD855{%@WJ)ge5y?y?{jcup<{7)Bc z@7#NPvd0<8p#><6k=5lbfUE4iX85=@HThpo#xlJ}bsS0VRbTm^a&awg?+p;ZqH@L} zbtBaeehlS==3km0{R8I+Fr18D(mwtGadEMZu(=xW4`Rg4vNf}AKQGZr#c3QtjK|K^ zU=G<8=nu#+)h&_7h`96|s}p_6_9R%7N@OW2?!)7|*9PeO)4J)F*NnwNtZ~isgJoDK zV0}UnwG}9OTYRs!o3rwk=P>@M+jcWPRgJdQJNXZUd#z%jz+`&g>39$33P8DGsl_a= zXHd}_i9Wq>!v$McEa)$dD&X%{~tGZwv#BWP{1FsZ_|@s=7`DYAui z^&gQ%?Llqt*2u-Jj~~~G{*LGZIt7s+vKV&jMEI84WM%&Fi(BRfITe|gZ$%b;w?}R7 z<&le*i#4cNpxvhG&A)GY;ppYAk|IFZvbHu^n}0C7ukEKL3*$A5))yw9`q@7}(+qEc zwNFlV?_}uAzb|preD^0pyf50eYb|kOVE!${KwTlekG!@Wj!!QgSn#_qjL)1olNd8w-l>dl;;n)FO87W(@yglU507)le*Q(CxEC78ZS?s{J7st;m+Ojd({pdy8I#=~xRQas( z;w!dnjIW@9{8eJ&#mvv((bxEYMeo(UUx^PZw9$?q<3}ko-i+s0?jkv=NmoHmVwG89 zmu|A_?`rQjN7M%NT<=#GiJKzg%%}xNW0J+E>(#nmo^yMNb9ujd{C|r{1pBq4gCvLi zl|aNAyYwlv#WwlsFJ`br`K^t2XM1SCcqNiNxd2D_+pMZR1q+1vPAKFnC^_SX425we=V<9(~N(Op?*R?2%| zG4up$s0KMhLmZ?YDL~;HE&}7z=`I-Z zVraD4jz~!BZ*Iy4vp;?DwAr6}&?A3Oqu@Kb6TZgAOxC$l-g0g7up_&@ft7k3FvwRt zE1wZzl4R)VjNks)R<^gSq}b>+8wRZ2diBYSh(F_pyWj)gC2R{^EhdH2CKLfKooq62 zg**6@S2J*FaKk&$)UEl<5RG_5C(Z`Z2^4VW>{!*l&@lA3pFs5NWg()eGtzVg&$`hX zgTzr-tdnE&Q`Z6%dvF@T#0Y=~gmm{2VmI92&XQb>!GD zbAxd2U1!jqNR=r){%Vuk-`9%W10Hm@hMCbG*|M(Tlc09sC%ozNtqqZaY7)xp!lunw zw7B}sgE{z+)b>tA25!5ut!Ci21b7F)@c0Kcy|)jKudZ3-3KeO8(ffs({xvnp|Ht0D zKu1|5jo%p(AW?9lfJQ|P8Wj{ZQQ{^mNXATHMuVWB;2jo3U0p$$2#7*(g7WMzikE$N zb=_Tc-Cb|H>WZu&8#9m#pkM^NAR-qxv1p(RrNEI3E<-U{=fHs&UenoIb@#a z>F(<4>gww1>gwwI`VeVjOvkRnv*gqYgVD+}zGZkt<=}pjm|Rc7ODsEBylwo3a?ir@ z9*YMQ=&syfy2J$if!=?tP;#$Hz}`leM38=ZUh z;@L0*A#ovHf(C3~(A+s0GwJRU^L-z0Kw+8oiF1?ydw(ys;g`Xo0!9fW*vDAczD_F#l z^@$}+Jk|X|5BAMX)105v|5)bCuvf^6(^W$zamh%LQQ-Hmfp8VdVO>V_f#&`D_wQcT zt?~3q{)LP)Kej3R#mY*Au77?YdR3c%*S{$Z{bO}{d5Kov)T1UyDHls?S}hVfU{`+H_1AMVOb)E{8pF*RvYiit&5?;IA^Winra+2$MA znH9|OSO^7vKYZ4T7u@%l&aq8xku7Nqei$g)am^ ziA-V>c;P;+u2Mp_WECyhs%1~uTejXzyiw89+tvSyb3k(9(|Af~;U?x7 zpPmTe5{qWjG)oVKc%yRfGY3QD+e10BD|l;W5)bqQ?7f0PG$8fLt|}<6q5k+Bv@KZb z>pm6ey|ddso7+G{Rv)h#mHMf<$K z=Oj$Wu$A`MeD7~#MeYqB-ZG|op;mVMLMgyruY{Mc1&C0lgvF$(zKEcZd@z4xB?`K# zUWh-2Y&$K+5|1`ebtUfuBKM=tFl8;_MOwc44NZLb-}(-lL%E={#i?uRWbqct`HR2t zKKwX2TyhONj#_Z>eujG;)bi0_rm;DWl>b01MA@>DX2KE~MEahKlX5&JL`BLNGd3c& zl&|AEv<+WLvzG!PXd93@^bN>o1rERcKe~DMDaSCW@(xd)BGK~FyoNz2u+^$bC=}Y zg)r@0d8S3V=FBYAiBotTJ<~LOsiJ$t-|_F(_-5vM?V5sR8beAtCo(D7Inzca z$k^{VaVmh;U18C8LCMrIoFK$I@;t#J@bybd$wKO`J_|fdnjj!7*FwJ^<|_TBQ%oBq zWSS$Ld4{xPAiAY8Mj1M~Y>lb|ddpW!oZHDr#OE1*Mv+7UE?n{clY*IcjCZO!I$BEQ^pgYk9nu5<0ane&Zo(T zlQDg*|4w!3ln z_Tswn(;VY{HRfsX74J~7HLjB{dgTc$qwf-4)()Y<#%D5PLVGE#KLDHnL4tdTnX?TaS+W(+#`VIUf)Uz{jqP z$5}`lzK!d{!1Z$!7^u0 zaQ7}cr`PU}2#)Q2=mDxOzlei4-tc%HJ&;r8ZVdBGiilUbG1wypBjot8O<_yQcz{L9 zgBh1bJG;ght_o&pYJ5lv5jENT?}b#(@w1zi>2uO7f$k}Y`nRC5hU?DIu8OT~v-=yW z$QM?U3P1KoJ7;PK#@_}Jx?Kggc8cFQBQBPs58`pTx3q>vKNB?Stjvy&3L8 zThxZ=*zY+BA`KHg*t}0bP}t>Rakq&)q2DEz;C&Ks=Qo^ z)>q|q69_i!okMVyrsEluReWN7T%+xoA1Gct4kN&)vd3Lsynft9XFf^Z*-vy95Yw+p z!$VG6wfOFpxQ4M}${?n`U^ae+O9StNBE^W%=Q+M+cVl?%xzn)~P$n+N@zoj`aEh2c zrT^G1Pmu+IK625~_zSQ(h1d24-%|x&cGKF07glNv;qdxXXpJ-@ytsxdJOrt@-2YBd zG>P&3DN4E1q@0?JDBK~u-Wy)L*3E5UyD-D+`vOjC2`{cBg8+`N6Ep#ropw)_FTA8V zK1kpzT#dY7`69OInDF}c;lo*`(fSUWeG`MMEj_neYz4YrNjG_Orr|GECwL5C}c zIS#BxlBRB6DC8EsQbs%{zOjpZOO2Jh$v@#(Z`JEOskFuiqg#@H2-O_hoPo@}Dll?& zr0VHP$sg(bS$L0k%6iehN3NFLmKmDB4)^Z@kzVrwA6gy^f4MD~RqMl~gcYjTOyOu3 z*Trx2HGkAJI{}}T2y!XRV&@b1Dj54R1LzI5PBMXKug~IlwUQs);j#uj-J9S24+ z!Dv=hB}LFAN3H_jPx%x&+ZVY3j|xxm%KLK}%Vcb*(p+Q|BGh8spDw4qNQpeHDHN>@ zf9IY2w{YCkw087NSw%O87{mRuck2E=@sBEwkma()n?v^5X`!uw;_;bx$0O~9)-)co zd?5(nZ}MScpRs20Y0(bTY{fgt5?Id8;>z$keAPSSy1%SqHRJe2!TP!ISA5Laq4xv& zuBLwJ+7Eq0IP0wk&bT0yfr*LMr#b||crsLh`bt~1%{RLZpR7)`Jn<==PaQN@P2y7q zpTuR|Mrjdnv)l5ivwnIik*gh_U>|Zll=#HHxarEL5Ski=GI`CF*W2_pi`P7Py_R9) zBhYDV6X-1qU8b)`@(OCpLd3TvwS$Z`c|Av8JMs!j%ZOSdsYme&I?HhA7bLL#l^y>r zE1>L1I&lP?x+$kO1rz%)k-<3s-_QPD;b)W3 z=(qA{uZ2OxGs~<`so~z%HFUN$aNlO=_X=amJk=9?;V->-H(naeSj*9ZFy4YFTHSTd zOpFPlVDUK~2;ZLVX<8o$m-4eJIev)1FEz=Qz&pA8iNACmMxmrVh-020v*lj0$T8Y@ zS8N9eq?Yt(VWT9Dmc(XO?jo&H(uK>uFQ~byV2e!6HRO_z&8=id@4Tinlk<&8nQ6Zz zn>KR7ZK*<|w+fBbVk!`!!4**{LZf$s46Nn8NJgHO7G1!*FoCxj1!_%iGCwo(j$Dl! zYpPV}{n^CdB1i-~CQQK?0Bxn$r7J49`e~^|YCFa{e zIH1Yw#G!f6?5@~*3AHc@kuq)7gdu^E3nEWcRce9Wwc&lj};zPj?scl7~NLye#dQOUOwHJ zO-Y~UYaf{;#qY#@v5lDpF@Lvp1u>3neChKnrQ|Wb*wQYP_GK;Nt&=ZnC1pEH*{nr` zD)1M?{oS_nx6HG|vydFe#uj$e?CbeD==n z*WEVp1a0CM5CE!t?-Q~J$xbB8(q(^rO(|Y=4$Scj(tsaC^U1yQER)v@~i3ujkrE$>Vwc zEPvh#DOw=Z$+vA=;fr>-xQvj^1@&d!zVgM^X7YshasegIPc~6{>VmSYJyNhx5njk* zZH2T7R||YS{RPI~Z5w~18F2XJy=W_gfMWeFjID(k8hHAdFH0Iw99s)BG?a=jbeZ!_ zS-}SXX?Nr;gs)_Q-Y8WR@v$FQD^Td?+V-{CS#UtVi~L!8CH-PRWW`uAHu|C&45Lwb z3(E?2m37<9-+oa!3)Qc;&;b;nNxweQs@TSCzimL@Bl*l?ql9lcd@GCgKFZHh2N+*N z1OEj)_K)`ZnI9v~LLq_AgNHWHWzNR3f~{rUcJtSt&WHZdS5A6z;se+E*|R3~o3gA8 zzS#R6%ews_Uuxw`w+;R*9{We1@1Qvu^0oeSvik`gLz(Z(vUW)mL0-O4=KHd4yZl)^ z_GjbYmf^*pPIft&O&PG3nbHq%g$777626WVvKwoh6m2m|U47yvxym1XVspB91~-M;T1 zop+vQBa!c4`O_u4^oKUhf8>39j=pk^%_F3O7V~UFcb8>t)ShZ-no9<06TL&TKzM_G zR20ji&vz9_(kIClNb3*kp0enyi(Bga3Efi`o#&MT|Dk*68bzG$Y3Y_kXM8C=0n44< zQmgQtc9>?TJ=z#yFN?o)17w5Vqw+pW6m?ll%9gcsSE7%U{H;1_MY5w5RI;~H`iQ0} z=V{0PNFTX?h5vTJ#BC$i49BGUUEzNtqLqAmqV4u&~>-Q{=z1xK>3@=IW6|8htmU$Ky?8PPQO#K2_KVY5to+SmJUJ`x! zYz467BqZu*1)Dq{JDY&!FPPsyT9q$J1^Yb9oqa$p*mOzsl|K3jZ=X;7(OE|-Ku=?2 z2*Q~9732B7XjPgd_&py+=N+d{Y-cVxso>L8@MQOVFS_+6ex!1&Tj zGs>LPd^q)#rH{+>rBCV*2;+f{{gpRoQU~v}a|q*`(4BlYrJTRkO@{bKc$~QFQ)gfG z^{9N`&d;d02qmQ^7Ecdf9pHIeY92BH0M7Gv{=+eoM0x+aYY@`KGh8$tPB=@>uNsSLreG@N@6%(oXVlQKYo9 z{PyP8&D4iX$I7>h$#k4N^fha?FKTWm9Y$@kE~qZy*W7+AwWYHr6zdgh&*@iTxWm1FBDuWA!1&Cm?2h$REtdj z15V&65WGs$=~o>kJ?84=a|Jm(11(j|U)b+eg2<*OyAWMyiIT0LIbMftDM@efH*8ct zExA?{If9E8anM-Bq?|w0AfsID@Qt@>E7e4XX8WAaFNtRC;3)e;M~Ja;XlFvcVt?T3 z%0MiBl2exLS?pZJS{s{@M0O5@zw28by+3C>huAYNV&&b}`=F14J|!x9tHB=o>CV38 z&W`dPI|oKb6{eX-S%|uAVB3GcxnkR*X5Y6Bo`y2FN1Cs#!{V2bm{|YRm*ogJ&p-R>CFL^}es~kdj~d#w{GS3^2aW$@{y#DP**-`e|5veF{r|b~KQ!3} z9siHAk^Fys{DZ^)_V}N}w(kEc zwwm^O(#BgQJKW_ORKPly^xb01bmKc!nZ9RAb7X%Ke}fKuY-ug$`}9DP_u*ZT_O0vr zH%HD8F%9l~IR#yFor~WRvdzsV2h*^?E_J_4kgZhQZvWWgAb!qsJ8OPiT(+9Q?)PbY zSLZ1-IP;GV#M`o&cAIB;(Xp-0rtUl#=}(mK6#F$^8v8wLnnnF-%})Q`nx70wdnWxW zEEc*R8*i?;9B&&!KIeX?_T=#ry5X1W*Fbr0$_Q^T)kp4A)w;0fN8Pi68MviZoCvx8kv;KeXCU zNYz($yslNH6)BOTuTI^(2dYtxPvVHbkH7l>XDN3CLQB~weTziltbnUjHT1`{%d7O@ zjC*Ylnvol9&zZBXkobbcDYBiF=-Nb&daE84uyST#IuE$I5!R3gHtq+E`~hD8vvL)X z@Tp|GzVJLQ1HofJToc4mh(4Ha_7+N&_)XX^(ZXd{h$G=%m73x+NgACiFYAy@nVLpaJ#THH#8uCBZ3_4r}4M8&7@tsO=hBtOS^lkPLwpK!Hkrf zGh9|VS|gXp*ZUul(Oq#D!NPN)rF_~n!R?_K4remb=ZNDOW6V?z6lbWWcJ4TdJe{{t zaeGBWGKt9kgm)3yYxQ@Qdke}udn?M+TH%`HxSEuEX|%kLI3S7l*;nQl>H>)~ln6V< zxOuj{VvI9p=o(trW;okI%2puRr_1vXxOyF8th*6H zMgOMZ@wQay$|vP^pPb7syz?e;x^7v%5zm{In+}7yvcR#YaP&U(=66c;15P;{CF7zn zGi0aRM++pvX-?=AIXN@HSxclCF6!{h0bgP|Hkfjpzi9~k@`;|&kttA*m=%dzVu^+m zZn->M&My>xbfa|!mn~mnZg08-^`<7V9#MqdB_`un*PHeZclWT6gxn5qo)GEZn~f%r zrT5Rqp~gtX41hcG2FU_!nAAR8YQI%#ABzx~pz@KuKRIfKS0K__gk!w{m@x9TbrA;BalTXtA#iyvB^%R*rH6Q!R7*7?ERdn>m;uQxKRpc zZRc#}F(poMvtYl@4P-5LV$N=7o3j+01jPF}VB|JHkxGbCg&uHn}YD9L-Tbol1GdR-}~JzC5Je_=4X4S4VT==so`rDHShF}Db42W z2f}l-&pV~P93;UZ$5mZ+2l3%>GV+3v{>XYz zq5}g3L~0NVkfPXxkEWp51c3N3SOHmsWPmw58SKWU^Ep)?Ily&;q0&7dRm89g3OmGe zV~bsOSTDV&)XZvBb{N`$=N6P& zRi^2mhn07`4k7PQR+j$v+_baQ4U^A%0DzXoje4<<7^N$n4 zoNh#oG@D)(_~mRHu;`kPxJaG3xKDtY>tj&}g>i8MNmm0+}P+gqJ@*rhDLd)NrR@up1`5(*Y{YZIt!PByS zYq2+QCe8WA;mWweE}S|g%>LpLZLyth&OtV?0DX=V1U5d4>r%PKyvnRk=l`jO+rF&r z0j-1sh-#a#_77Z3m=vQOCj$$&FdXkhbvtR;5otEs`*Pxi33NZu0rjw)YY9dw@ROc% zO8NsZ$r{r`Z}ap%{3uCfo^SE4yt8Hf$*GJ?E?xSI9=_<9BN#^uhj18`gLHtlsBgSY zfKMJAj7Y5RHD)(=3-ew|)@k2!$be6y(8>9fA4H{syVsaEKGZU&hyx9En8&AZz^CrM zN34icGUDVm)4r<1o32OWlQ;yEvObpeB-Je7{AocAE9K=v;ErR5gC`4Mn892MaxPtS z=4R-?5W9tW>=QlZY>5jK*n8YWf85q$AJU*C>=K2}3yi!9W%*(jrPd<;ZqSC3U2UYh}Ws?{=7ekDvVpTU{;mjW;c5^)6K#(O*G=EfTR)fzeu8(w+4t z9+h}ja;t9S6xmF;Lv*GYXdg`O$=&(Tuh{~KHJ|1HUW>ZC5kYs@<=?_pYvxzf^(R{SsUjSvlbCF5D( zdU-Kz|B!fmp&O}agj5tQ>;dKlH5@ZX{Fn=<4u-^Y^#XbQ@^#^c3K@%$Ll_&Sc$<5; zix1Tr$XiYA`C7b@>sB+#nK+AS-$g7fzECKr$3wBy6*zpS1`|v=?5*e2*pdZI6TPBK&v{>O)so;-O@K%n* zyON=W|CD|~LP!wwI@bxVAMLpH?{eybHgs7kktLJJ3j&~S+hFm3l4w6J{&x}> zGlBmx7XP;wDgG5(ek%TF{S^F9Pr?61_8D97mx1ll;BZx+YhmRfscvVH3*WAmOtUYFN?lwMT{C`zsr{!hZ&$5ye0H?isP z@Om8<-Y=8=`F#BF@V?}j^^f-FLG-$F_JQ=urw&W6rxK73q}RMe`__&>JU&AbP=1tN zi{~cbE&K`aG7bxGQ(Xey-k(6PSz`G9kNp4Af&{z^%;DQR>ag&xos)p~$~}jN*ZHvU zj!42A{uAKUipl#>?G^c#l;80eRDQp^AXNk&D8HXPszv@ikRtyiphu+7+qE<^T3FFS zv%|@6iPvyA`TY%h4hi}FA_B8T{<-q|Ji%P$_ff5oKZN{VDVAJ2|NLWW3;tKC9Paa- zbbGY$&5g-EIt>12{S^EQQ}B-?+FI~W%8&KQ@pVfmS@)01qgidB+M)V032#S|KTi4y z@J1aL-s0r=dh)Bo5r^$$MD&oq+PA z^62MDdd=BzczC@I3-6_5e}4JJ;o*Im_8_!V?<#L?($^cdzV9M4$ihSj( z;KZ>pmVCoxZ;&#DX9d`0lAsIbu^uAV#T6i0*jc{5CtvTAuXv*oqD1#oTSI&pc??7@ zTu<01&5_ShNwmwO~$=;}5)R?k97XAJc zQRmm{7VIcl9J4SXPN?;sKwJi${luI#kIBv|me;f9@GBdA3qn`2wL%@g1iYl=zbx&w zP788bfmwqWBZL5BGmB`Lw5j#tPd0%FS}WudRu%iZx#(GK&+E5od%o*Odp;KQx0u-L z+M@O;EvlZ#-qZ^W!9&`Eq`$l4VEVh~lxnP0@De;$=2E&a5h*ue*J6oRiCKlEp7ds> z87u;t-j;Kdp?Ad^z=fI@nazTpepUz)Cr!Xv^x5xAs@&JTRKkm^Z9lX&GcE49YH>6E zgsw^+emNz*_H)wL4M|PEj^#zNe19n)Yn2{;D<%CoDgSJ%^pUTmq+k9k(x%XsQ2$R_Q0Ewy*kj(qET!8IRj!JYtth^6#-fjekq- zlzcA#J}v_GVE%nY^xXfzzlW+n=cm>$`xc4%JN-!gfBf&)|H&VJV*AXo ze~VuEMet36k+Uo(GKW8pP!TwJg^GzFVMfmZd9gN~gFQ?{>*=5Kf#`YIgw9&DsF`is z-vy(7cCPxQVRH38BmqX)lO#;*DBMA$O|4QzwY0@7hC{`y z`bu62uW~DQ5x?U75zyaP@&@Veth{0RJ1=iIznmWxnl3QkJq4QFe=<_%j}uFoKXwA% zgkRR#<1U`v`4HcR$>Ufy3CZI3W3`j{hp2Hm`o;VrOp78<wtwr1G-rN?N4 z9F4{DW+r~7hVDmB0z|>8_yw)(f97_J&$?eIK9NhnN8D-5&X*LQDd6MYrC7-$^PkQC zy3K!`tWW@Q;fP(w(IHDxcgkmZlEIUAX!O=KUII7w6~pl_v{0%5M2oJ+l1 zZ*D<_sy6?|(1#P+7Tg?-qrwWu`0VUCT1i(vu(PU>)mpEX&da?{5iyvtZOWJI~ zBZdFWuiZ?FV6^Zy$@G?+=^1|IpSf8wQ7XZm@%MCFvqVf0lRmO;X?L;nqbOA<-Ldq0 zr}bgylIw#Btq|>V!YI`BV}a&&j|9Dius8x1Ngb|-Cw;SRF8%Q57u|j+&GuF)K8c2e zYjT8tZ#6U7;R^3LV#>+VMrCm9A|o^L2mOtVZKyL%?l!eYBrfKug%;y-%>2LWk^*|V z<0hqf><$;n_vwPI%Ubwg#(xhGbNqjSS+vU|Hxl3MFJz!;y)Guc*|UFDiIS@E{}GKK zs2VxKuHaFW<*u&W5U1hYL>(|^Hvo+prW2{sXSa`JpYW3@YXTSD!G`p-byR@gUP}WP z^`U-T zy+x?3KG6yl3FI? zl|vm0+401MHbwu?y(adFxti5pM`zx=1Ki+(0nCyreHO6R<)nSf;%@LCARIJhLRo{8 zA+CmcBi%mp=?PMFjV$us|C&73)z7Z5WJ?rpLyZj{lGxycJ!GvEXz{N%mp!f>61z@2 z`u2a=quazYr+e{^-E=92rB)I5z4J_KcQil^`ws zG1itI7gF}|6{Wg8II8mf#}#y z-q|Ic^8A=PBWd%(ytZ`we= zC23_^u~HJG7*RE^5y;{%a^ zXU5rb@oOlzk8(}*+CSzx`~3sH1L{#gRX3AtzIfJ!7fQlgi)TR+-f6bnleXM7QZAc` z+Ps`7C!t;}9xtSn6MY^RD*E&uVr%4=RPJvV>crpnp_^srQhZYsFJGiUZZVBAoB0|f zqFY+!1W%jLQ1kLk+kRW`x+3a*hg5SxqTY&Rz4=;i0;uITU$~fafD&&Wu;f&*6))0F z!b5}Ts7!y>NAgI7koAN`(B~t0CLF>?&iQ2QD5)JhG<=(lV*A!6gOebWe=BXPVck`Uwsh~l2uLe*r1og1vy)(OkD09 z7oUufo9T-j&5(TE_$`Wahk~LQ!kUh={bJ6x3C~Kx%OrsN^*;mmH~!?}KAw-Z-(SP! zfEb(-I+Mbd{z`_>HRj8Ql?2xc7>R2e-$O3;x6QjY!6ylCSoq&x2>ihb_!E-w2U+;_ z2=gR-U%1EnHJdV7TB4BUQ#}~OHuLRnWD;Yi^n$p;jC3% zUv6C8#BA?<04?UNRF-zroPl8c-EJ4aaCzL|1+MiFKx?jJN~!7vc5EPaD8c( zkBFdo{^^sBoL+i_-`T^l^Xa7>c<{xx<`6iIl%uAXb__&Ii7>wa51WiUb4rCYoVZ~P zW(e+A)FF*|ai6fF=;oNASp~_p!Om8w(bfDB6BF_CSYo26t232ZCAoPW=4U70`P{tA zySCvu+Q9b?5^(DVm^nDIHt1;=ztZxxR6tl|CAR6WU~!H%eJ~(L2g!YB+>;X9L)f(1 z`-iCAbwNb1>QX#JxpwabFxnH4%XYshdm46IRy`R?Dzl++T`~$qJB@ELcc_q@eBD%0FdW+YrUke5JI!sX0X0t3^!+mQR=1knYwaMlWbo2rEd1pva zRY@)~lMj{bbCXNVO@~T8)lDAsb|%=Hi!@Jrr!ltgl-=Lae(wy4NU9_@C)-4r?EKUW zYiLw_hK#G3jHA`(5&HtQAyJtf(4g+Ib|USI5o4Ac2sOOg_GKl?m5a!bI|WR~u+%)p`yr?k)I z)7$Q+?k%5Qa6jd?eEN<13AYd_Xr{UE@L;dA;Vcv4L;UX`Z00)32>DkkBWx>x5&Xgk z;rE)&#ZM_4q$=JQ{Q@>vjmmE2b&CB^cUpf4L^&o!d~c{C^iMOtB=58uXTij-Z$o!A z^@uG#X-0S9SXFZ?=d0$hH!R(g3GGLKj#D@HmqPk0vRSD#Rm^Fcm!c1Nd|HiK%POKxj*h#Q_NqT)qQOY;6n%f{<`*(hXZLwHlB4#AD^@STa=UAoYH0ddK=+D)g!kh)(={0aQhC`w{UBrFw@*+-}GR5zw zKg52ZmN=R4eJb>+c+%Q!h70zt6ozWv$PgOU?AErqrM;4iv6aYFZ_e2zF(WPHnARjALMxRiNr&wO#8ziUCsbPan40x=jp2&NRK9q5Q^`Uc~#q1~sEaj(3d6vdH zpkN)J^O*_z?0SAuIcyn5N%vNXu}vrPr}HK#EM{9YQC$U6c_o zLaa)IkbZ^J&%sC#pc->8!#ysin6*B0_B0ho&kj&=G=gl^XOb<^TJy5nTB>iQZHbxb z1qp*FH+E?KEriRZo;4%erkMto^U9d@p(0@&Z`HZl=hBN%KL@86?N>-iuR?E^6Hj?X zSL@UML}g0r_#;}2(xtGjr=1t}%d%wF+ex_rJ#2aJw73`(uBp-%y za%+X?4%GuAXK8jfHQjcf$$Q&ok)w?94%%_L6E3_Nu4x-+xTGyaNgLfzf|Rc>IU-Fp zfzdNHK&|Y<3TL1Y2>T)+awN0rNEb03ICZ+@Ajt4J!uSw;4R-ZdJ1bCSgZ#F$k^2kg zipAeta|CjKwPPxdWR1d+A6>Vb^srKO;$=$JV)9pCFS#R+yNdEX)Mypu=@Jx%b~HCt z&jdBPdr{)Fo_X3M!$l7OR9YMp{?8)i@z#|BdI0(dpR+5}ExbSERemt*`zce&zWAlS z@b~So&9ayt=pMYx3`9~ckZiGk=ze*F`3Bpi2+}_&S+<(C?-Eny9r#xvZE4Zx&4~|a zJ0HDN+j+%Vv{P1~=Fg8E#5vDg3s2lfJAo74j{qIUv-xzY0vKcgWD9^R1;8&X0KE>w zHLBet04}0XOZ{{W2Dl5qKwB6>!puX@_tuR&IpvSv=}!5_>!?Yc8>I{BK;(p)mSnzP z#JRb|e1BJumic}}rq1{C2*Z$ykFH_#2r3Jj#C>({&YNA*Os9FA#K{&xS{^yiWcE$; zl(*_j8LUIo+z;IPcDCp`-q~f`B0ZZE38-Y=*%j$TEzD|^FKsZVuujiv%&Iq)vuvmB zL3l`%vg}~EE<*$dYFtBm)&=Q)&JP`du~LOiE$0{kE_+C9`0WXLSQs!S1l3&5Mwf{o zzX4FBvk4;e&$4ihmtf9LJ^8Xt?0FYU$}|50N^**Ijhv7#+l3gA{k11rGUs}$X3G>r zC^}U*6+<(wB}2Zq>fdA#(dT9eM$0=QVmYtqBW=TRd1=5pc zlVy%>DZ}X3m=by&hh!~S25H=!*=8e_J|z+K|6Bo!Htb3Q^Ws7)dTQM&0VX;%CP#AQ zn@^vVWI-yI4D2nq(#2c#xE2s<5)-vVh@CqVqa}NGdSYsg`O{x)2cG9j|6H_pcf1Z4 zg>;x`ZX8h7H7^&Dlw;Se6rfXUg{PEnlf>Ymh>uD(o>c`(VkMU$BoH&hChG`X+E0h@ z!)Gu8CA5KA`*3my7t~l$wfbr(LwA0&L}v4iW(&W<8#(3+_bJz`bf5Cg`|eYbsdJyY zo40uqhIm81=-_>^p26Ei#X^aa%Xa2}#6O9A{9-M5h;ovpb)#DfWr+;2`UAOI*LQHa zxZKZ|n8yyvFKn5pD*jqxUX)L*;gV19p8v6WQ{hPIT-$jq{Y3dI0Ivr36njeIer}Do z#yKJxzcMSJI-o=@k(C@P6>cjII`JT)j)33?mCNH;0tfgrZYR3 z(d>4}QuF~arurjCa?5P!DwBVo^2uNQ$|s}q;FI%(Pu`m0PHA_N+w#eq_|_C~NS`rz zJ@co?gqBqYGPVd_tt7YB%T=Xvp@6SgM_t8xO}}Z8r{?WRT4{l;bo*&kdZtubny7SA zveFW*v}uOg55l(GUW_J~=;lbdQ>EOIiE{TQ%Vlc0_!V~kP?3#Qil7KBOBN2&>dMAi zr`XnJDu=$ZSjq7@AIo|L2~ee*^X3IH4a*u$?*m0P-iA1BTg3uzm7}t9MqVT3 z%cHYgcZ3;v3l+y%iW8A8S!tu;%fNR!AXic9%}v{_y8bUPVpPL{=CeXOuve6%M7C+D zlRhX6N%b?So^fkNqL^?)qWD9IvM&A+R#|`ERn}ioWnFg*1u;aGE*RKu7~TODQD+9IA5}WQaI{dq1?WH!;}oDG@^(6K{0V z5i<1zh~}6j-V7x=1qY&okCX*bzIXQEBXl0-flZj4tVY-HESGKtoTn8d9S<||YTPQZ z!_3p~GA&<#DlRCnZ8fZy?Snz87horpeY`}^#z%_`NRIz9?(<52MWK{C_LmE*s4+bd zw(OYc3pcm-KJ+-n%$*Z-Fn!6gmO=4+E`wr}u+z8GRnp67Pb^w?4no(GyVqQKg%}Y& zb-7gMLsbdPQ%ni)YJ8yNooSA=RZOLd>T85oqJ4T(k9piyk!q@$Nfj>J-AsHFZd<$Y zVk-Tst<>^|d3(H~Twqb&ehMfL5tK_UyjxRHE&*QCKa68bH1`DqKUw1vncdwHxEm^P zH%{AvnmI>O60Xvzm%FcbzNBm0t>&rOw)>mt5Ydf#CiqFX$Ym5Wt%K#Fdg--8a?u;h zEtuyehiEdEjS#OT-r0J&YQA!iclL2E-yEI7HdTutf{SxCk7m|AN`|v&6cpWbGGw@4 z$k3Y;ZOD$BQ^-&}5F(yKwIT;o?J+6wjo4;w5pG!7U!c595+y-rchLE0uB?a3ow@4V{?m{V1kH= zN`W0=jjz9m4gIwqAtEN8;a%4F{4Bt}>1W%Vfj3;ju-qy*-T`pI4>2j?GT*$wKA%1D z8+r=t?m(dq(&*U)ayg*UZwz1%OF?P5n4P0tdXaz5o8;#N zyyhHS>e7*h?CpG}e9E3GW^hl>?p1Blz zm{!#ETk~*8@yoFI)piBHmju6K6Zj>EpXmgCZ1t!#NnO9NG?w)zbnYq?&p{LE%J^yK zH%ESxD^of850+i4+kq~(M;uj>|1BoHxw2pC^>YZl!3<=6(FIkCyn;-N;uqE=4 zHieiY!P)qil&89!P5?u6r!2R%&)R#yX9L>G0)7is9$HITzjo6a#V0TTv zqM6+)p#h_#^0Gm=mmrJ`GRyIE3Gc}cU2PWKt)1BSB4x7X6X?Xtz{Fe;cA2b2;+cxs&+P2fAZDNTv6>PTY0BUL5-Ir?HxIE=}#_?Ekp}q*bOtX>A0U0)# zaSzl}J>Cy1_9}x7FE);?qq$h?c!$!}ax=F%I#EZ9ntGJh(ezYH|J!C0qiLgg{ajT+ zVC2xtRMyLKQ;lWxJ)XBLqi-{}eT@l9j1Q`J9%*ZzYHRmN?Lsi~IJDIkwhY0ULHQIv zo}w_bJKw!KRw?AO=9gJiW1`yX%Gh?o>WtWQarp+##il8!5rykd!$i2DdodkvIDo$@YPy0dL z6U}H&B?Ms|$!iwc7>h@G0%q9!&`{+76b6Vm}lY;hna^vFW*5A$BW0W2R zMcSKfbD+mO&?d8w%`v5@dRm+&ZMisbVEI<|ASSOdptRFmxD%klo%LK8$HcJ7%o@iR zbao~w6iDJc5QRXfMkJ0_@f!*1ml^-rUER#UI*5u7p}SX1Q5m^u%_GSXG6gA6@=a~O)U)bNYHICJZ{;%uWQro2^m zQv#RvT%n5GY@RcZs ztouy%{qWJU>IuBQBg2JF^NwW#Sxl&JFr`XetIntY9!vHgWIJ9WhCtwga>>h-Y<5d2 zhPN1=z0>}U>XIZOQOF$w`OHXJGdgwg8dYrYFTY*!x~-Su)kp9e0S;!;eTtMyMHi_F zeiT@l$yqO%w{5usTdu8?6U(_NJ-A$nl#^SRrCivS+k1i5x1$ebcFQb;3y9>zCC-ypEJ>P$)Q#9OX*m`j)2Z_|dYD^R+;c{B|>5nzmf?Gq28=+{1)_E(kH7ua$yQm#5zYLE7r zKw-+wIk?6-kkNVV?L~IWossePZxjY6q9^%(9Mx(;6n^>ByMt#1p3>-myTU zE49{tiFn1AojHETM!KRV`>mj~t)65YA!0c#eaOYi}9d)u~d2WC;Km-VWS28u0sLhe( z`4Vr{y+YkOk@}*0HJG`N@~CpiTXmG01}9|t=8*~4h~`kHxp$%XfY(ZRH6|YX0EP!5 zgEAuwC%nH9??cQUxi~&z!|XC$4JmWhiL@`V?Zj9mh-T}YC54y~pUB$-d|AWsj+O-^ zbLvrcK0bk}Wh}IL97nN&8bZrOpU8WL?2~Vo&rOfDt}K!2)<^@m35?s`s1!rC{9(>a zsZ?=kUGocYx~zz~>Ux0F=&kw$7;wIp6^m_=`71kR{>TiC)2oL{#P&lIhlwxE*Jk5z zjGrZxV#T5P>tB-z9Ek2x>0>jCFDwd*#Qyn~z{jvrBPB3wEY#mbl;Bxzl;C-JYx$00 zLpn3b4`$UU+8^z5#W{9f?1()285zt-eD#>DZ|9lK7nvE&a5QHTi_F#NgH2T`mws={ zA8pJ3&>g&lX8ukW;D zmD?=%yVJXJ-be@$;(!aVr*{$w!TS>|rlhX>NSBM;y2r&MAOAwqCTLpdw}FvM7z5pP z3~=Ktn>K4qPZ!QQa0J2b@jJD~G?V@d?^f1MRr#i|MvPyF z3MLg4f9Rco3v61C53A+;9Mw>>?C9p0e-q#sG#xpRVxAeHRUAtdI$D{MkEI@|;&fYu zIu8ghqw1b2RqSD{tn@G=ZQ+$Y6u-~2z^^|UO%rQ7=#+|_VPh&TR#=&zqlNz@FPie) za<@6x;9h4sTX4U&;2sfhx}1C3f@_yX*aH`lCk5OX1y>^Qe&NC!BGq>gU=72yVSOyH zO9a@}k~k1xfoR(wE+#lcw97hv*ifn#JA}dxc>RrfO{%$2s^~x!<~|E*M|W-J?o2@a z+{N2tQB!|)7q$IGlv{!6*!XR^xstAac69x9V-ax_-Ru zXEm6JtOprbMY2p=8_M0k6y-oWGqL>$>LFLn3?bu97V`KS;@4B3zU7cZ4Ts> zL9mEC?7f9L%A8Qda5QxPl$8tZv+9zDvfr^Cjbi4Xg^r*>R2hSBI%g5?C5#+iTt|V;o9D_15t^Vju0=4 z5dU8l{Q2m;*!M~UBgHHLRNVAJm@_#Q29@9qv+ci-VH{ektLPyyPRL|^`8?8+r>MmI zLo^!%aJV+$`e_A5N=RJEXx6;|k?UQ#Z%S{_ewuT-QmwizRFjLx%)6-csk0=KWg&Z} zx@7j#jziL?-5Ck`xbvqvt>kFKp#VxO+7pzp&7#?6l$`btOW4ko)q%iI>Wen~r5#S{ zYm4P4p)XE=%l)#|!Y_yFh>Ph5e7V?B0za#F0dGcCX zF2i7$&JEaNz-QMy;f&6N@MF>XvDt8zTw=iirCth%qZR-#H&qMG#6%b^Y>>qf;YP&! z0P?b|n{RGfPC7lO?nJVo{rF`B1|9h>1~@rv=-xwt-AYdj>rS{Z1SRNZVI!W<{+Q;> z3YlP2LH)j4TfE?rDx6C2%SMw7Z+7G>A+5aR%8RHD@&dS)`zU~DPrRBb2LK(CR}PX* zFUtJ`Ew@xC*cVd4zLpBsYJ-YsRbCA#<}LKKR9w-Hh1N(?0lUyGtY9167sd7y_eHT? z>%J(qh8HuUHCRAxbMq*uJ?@KwO4ELJ8!j?X@KI3N(s6&)ajzZ2=^068oU+}!J2;Yn z5LJ0OZV3gP>%J)9?(U1?nD4$Q;38hkl7EW6wHt2w%>px=^Jq<(h(h?dV3o+tSMmmF zk*D(l{EF^8On+a=8?L{z@@~~%w#oTLcb>pcYkRCZx(Memj&ff9}ZSYHB5|IRj&vH8c)X$$t#gj!`TL8mg!_CBH0lx60H*_ zwP(nSd7)hRyF{jvnS8L(=O~w(n1!VF)-#PDH6el2SV8JTv7{r4Tv*XAqdnqaI;Rwf zru!<<_c<{1ry4}UFp0yI6bjPp5;BP(6@`R58{=}LNMgNdCJmD@*=2jK$}ulst1l*- zN!P=HshW=7C&9Yn_XpSmiUi%CPT#ZA{zvp3jCzLD`Cp=M#W@Giw_Tdj_jDn}!j=CA z^gVH?()ZC*l)kSvXIb-*`7_()x}HjElI9sW@Bf^>FNwV{T2K0-1eRg}SOPrN+7E z*b8S_b%v}0j>R}8``n4m6IoSZdb@)`AafXcvm1$fW%UJu1MB_^{wNz0iW0N>+@|?f zE)Xk3wonL=AlozB=N?D)>#BS4H}0XtOq@iVL_~`EicihcS1I|AIa$d+UC1v=sL30h zO8##0sT*TVwowkUzigBCi)j+^_Kj-0VlP{N4UnN{m(+&Q9I@q;U`yG;eu_A6uF>rx zZTno=3bz2r7axRMzqJG(E3T)+Nn1Ko=5I@HaW6}8*Mr>O3%M`5SF2Sk=lg&QM2gID zzt`Q2#y{(+Lu{Rsdzj#x?dK!u+jwSg2tR@8M>VqUZ#Vh$3@eLU(QVy@^ZE!t|nX9*x2unXUt zR6-rV0V(?LV69_>t>fb#sG~^g7_M+y79vt33lF4bOIwga^v$I@Q~EUMUc|+;*bU zcFp&+TXwF@q>%^FcEZ_~mMl^jLTteS(PcbodFDG6X_eXLITX=Dj`yqr#(M}14>jIf zW{&^-l$bvPP?kH}oc>UbE#dI~w9rlE(JnWGdU^CD*}E@~bPTt>gh{h)b_P8Y?bySM z(&?SMu4}pXl1Bco49MXIuQ((H=Ez@tI;~ycw95r3gKl7MxpPdpbFIDXL`<&mESA~!+(G1*)d%(b{}uhb02 z7X~`rNZ;R+9XNVPaQ9b1Csyu!5_Fd7Gy8%(HwJcp5%log1dm?EbHHf|dg_BmHwL}0 zt`2%umOBfA;bk=H)uwXKyMcxpTF@LkdQ*9~#&T|ii^=u38`8@?jg$(6m(xifvOZoL zY<}N6Z4z0_ou369uyn@Y9^X4p_9W<4v7w5blukxj;2x|%bW~oxT8NYFFUQF=GLYOu zF}T(QIoeY0EDDA{NK=HUIp{5`;s2sQdYeF}OR1w>z`303{M`2cUu?0|S&}BwHKqRs zh^+Y{fRA)^%2;SZJRz=Y1DxIM#qMaXe`meP)zm%M;zzOcf6+K*Ty}mdDsZowc4^TTh;?$52U5FpKTs{`mvR<#z`58W`>1 z@Q$iD&@b(aVEs_owrN_v|9je4f4BM0(9eKtfo>Ml0a$~vqU-ek9+-k){|=g85YsYU zlVy6!>NSZ(Z;M3#a;f;3Lsh)6rQ%PLK+HiE?@3gg*}CGKWSQ=*DlT#>W*swSW^0B$ zp#S}m{+$C;_f;~0$7RWplB%;9Jc01~ZQiN}kREk=#_QK7cn<8IFD61FeKAWNFx+(% zFv=4HpQEzDscXqyiH{?70eloaRzPb7xGx1wILYZnjI>w z+k0mX{}RO@OLLs;RLdUfxm9))-I98WRDWvYoR7x>;Qz=F7rBEu~La8N?#^zRIj z(#*qJ%f7=jT2{UyX`4+@b<=S>!zf$*l1K(yc5 zfcKJZb@z@LPw6RRndsJL!oT~*+?mUtd-Cfhj+t0e7aO;_UEQ2K;#W)SKDguS zTA%NZn%Y>wxDUG5EgJXX3AM2+R&A|~`NlP7)W(9VcGt#=$2FeJhgHqBzT#C4bp=hq zTS*W+arcg^HahD|C zr1>n^aWx8dkR)zWu$s?;y}ePv4wuB8+6))ZwF+^pdTY2DE)4CSxS%db0r#X8A8vV`v+)~zGG+lo&~8mT{ZG&QC)o8C+%u|6sYw{_3Os1gxz+P=Z&S%*L8b;wT_0< zG~dKA5oMGfD?Y5-dq=D;e#ff1mE%5ZTep2&BaAo^Zi|mw4jixQvtGWScIjnfw zs*gcw6(}@~5Spz>C&vmU+={_`7_s8Id>Xl8q>PGORI3slAu>8%-(~o}9mGEbXX%wO zlPdYLiT^uk;szT1bzQ-(_k>8d&s01$b8Od+y4bEJNfx|IpMgT(@MSyy_fYUFOM;1G zE_wVCo; z6)hdcb9Q|PnE6tb4rwXW2+(ExUuB23Fv07)zO+O9NxJ9J6`z5?u90i`9MeJXtoX9- z#T7NJ2LH;oI`}P%A0Pqh3RYzuQVP^PI&L}LL{A8{H`KkD=(XBdw-t+dT|w$Kt2Wj> zJMIIX=tTN%#d7Jf`L(eg<94*s$GRuSEhE|X>Wa@&!Q2Iy)|Gf4dWne*LXG_vZGV1l zMd!NMihXq-FfJCsvc)SF)D^6t_hhumUs%JAsfkmBDRjWdAe3RbckIx{Y#p2_gYh=H zNyg9Ku{W*FW;nc07chdx-m*>J>U9{%0D;gneb-7I1AE6Fmkn>fPs#24)>DRYI`*b) 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�BqV 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

    W!XC|=H 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 z zDwmelR|FSVEKjGKAze0S%Jh<8`J!NLX#Wm(6fS8H(Gh%T?mQSa8>u*;?+7$z|_#((Gu@R6NDHIi7sh zvpJ>Wvd1bz^^&Pcj%X!y-cwF#kGAeEsqRZE7M7MRZ;)Y5gFa@rpwqg^*@<4`NO5Sr zdg!=4xtTRJxpG!RG}T^=zN#Y)rSpCD66b(Q0==_$p}#y4o52L8cM6nrJJfOUE+xyxhJ5m z$i`c8UO7J^9g4Z#lyVa7u?9Yn8+F>^4cx{^skT4S+0eo@Yqc7>L z+k_64qCvu|+aD?>B#vH@5TUgi9i3K7lQgE??Q-%Pq{=z*DJlc;DbnrWO0=&|w00zE z?zJdE&PdcN)@dkRb+VMMu7EvGUc9448bbbl`R^y|?}cOG)jvO3KlZOr)+ha+uI~$X z!6m*=*Z+apBMRMSI`yMIUEc-wLjS@~*MB?m)AggUTm4Ql-PyHnD*dCfkSbR0y>eaf z_2OiAms8%IY?VPacTd}+ZHeHX<5Jr?i|D;Wp&iD>#-*Hbt*vnM`%4p+(VX$ar32SN*F!5zJ+t5lL59iDECIr&s*po~;| zsj8R^L_#fbr#2k+EH;oI4oTlXo9m3PtX^8mNG&Kz>CRz7fg^njBhMuM>np&A5 z&`W)eiNR@WYAn_wSb&98Z z^tiLf9r8}@lP6l^%9|DEbTkBalHDt)5A=WB&T8+P>zMV$xlXO}kULy+gX71=Wl@o1 zsM5=ibE#Kq-$6Pcg0@7l@@Pwx%ysxGx{4B!wIYpmBpMrAVl65y6=YmItsr)fhB#}I ziS}@KNw6+l8kAGPh|D7jNg*4tIkVjO-04$~tw?`7Je=Bm~dKQCFy>lUpenn;GYF`a1DS@m3} zS^8~BvOtDHjohj3=q&cwOFZ^z9{Y5UeTK(A(_^3IvCsC{=XmVJMap4ou}<2$bmG>f zleaFN0qfFPur8em>(beq(?9(yDG}b?ODY-QYmR>?L{oZi!sG=d1nVtu9P89Ry9bP=2)8MWHcV9CuyL` zN;n;fXws1sowakOsUm4ercw=ZLA55@xdPY9No-(zKy7ZIF{9r|yJ-a};0%d0XIe*^ z;fA)j@|8GE92*k%P_%iF^dyHiE@ju1Kl>=v(32c7DM`?9(>iq~=wlMAwTnwj|7C?s zMLT57${r||HA|*zi>wSQi7fqE%T(7J=~NcxvI|;@?U_z&VTkPPtGnX zYM3!|MMJDP5tAm}{B2NAx8_;ia?zx(wp3?wDwu&+aS>I?=v$xFjWQRs!Y(?UsVVtI z*fMV%OD?)sO3_p&@Zr})*2oo`=%fQ{XZqFJ5@iCQs=3phN-zM7wXu~?{V_O6wd|b; za${v&d~(neE-l}ih0miO`fU9V@Sukmv404?XV#y2q`3AIoJgWwPR zBqNL`RQ`jl9Z|;7tT%Vly#^O>vxg&Yk4HP>849W3x{mH(J0sFyv@6)kLQq$bfl#oc zG06NhXvT2nu2F(fhaR7&f>FCiYYLmG;wl!_!JD|}-_@ZKm+);ns(Vii9>=9v&j^M& z>x|;ZQ(DqYOqd+3)nk8#x+0z6ObSiu?QC==nph`FbaKK{Dvo*M+_8lBtTDJ{$ca{4 zblr+Xa1C3=b~VITOw~rZnsm2J?QSvEfcc5sX=4wY zx~1lcn6_SXxGuX%|nmuy` z&eV8f_0+Deb+$nD5y`RWPA$>d+1?@5pFi8d*%MCv?j#!|%Lpcs8AEqhi}Zl;H%3zKnk0zPT*$}d_F?Ged2KE6Ggjx_AS2VkI?G$V(-6d4hpsa3iL$b4@jSHuh zs=)C_gYMSB?6^dS$W&0VOFlcu0Tm-#Rn-lv>q#bDUsG2RjMP;!gPfSE@1*3p0wSE> zxdjMB$d%-kPbm;#U1BfQ$@Ngp@X)%Y(q2%_r%YsBkFX56x#gp;g`$#WB68P8Gv-y2 zgS5|5S=^oL1kIn_=_sq(K^d|Wp{dBKth*Y-;E>BGRI~kdZh;CeYt>lC%}!BMFjoe}qK{#GJ9R2uhNcialJsGu60MCP zwcZm?3){*4I+{bK_bnM>HpQ@`)g#VINhWoklNVeqSGg>LkTpj(uqUJJHC5rYtip`E zg3a6|mSvLhsR_Y(EJ0g&qKzgY$oP}yF@=vTG`pUawOKw3bo(Kq8En z3q<8kU8KrG_a~-~$+1{pdbHW&v2EA1{>+}Xa=T$9->sWXvFy}ndE_;LB zekQGo5mlZ26T(Ji4l&c4ad*Z(g@p|df@;=kpp&)54s+=;#3xL?7X z0}Cs-k5#&)p_&!_u;X<(+%RJ~pnkb{IW_gHi76YidTt@N%KeuVtAT0-P#oAh8)LIe zN{l039X7VL(~F8qb;Uu+ZIX>|BHqHLnJ#_DC_bgTy@g8CR+mVrMFV?(o8BNkrKL6< zjqS}7aqhgelYS{(W)oR+Sd}xeNk7=Y;+3~;<8;Y7E2oRothzi|$gioZtY5B{Fd9nB z$|}NPM;i@1N>NreiN?4JUuq;f6>+4D@tLxKeBpjJvUsq9)4nrf<)tTTF*s!jEjXr9rj0vDJ zo$*I}zP=fTANl$EhQmK!pETy3m>1&C%5gH*LVhQ!3OU!AEM@D~*||=0V(nZh~>4IvdG0}@SJnz!ZXeCN_N@Gb$lbNoBQtDvUZC!9lw7sdDEeZHaAEh7v2-Ztf zs+)6a>uQ!QZ;*RR`g~L@W0gKE<*$8eYnD`&Eq9VJNmVDBPLp+_j|!Eh-1JSNR~lr>mlv5}ZKT67%RWn<7e%{ZNI zcf{e>a;vQ&5-wd>(NN1Bg&L}HN0;u!#HM?*DNx3eP94n| zO{8iZ+d5XW%p>>s)J3@c|6}h>z-zj`zwv!@Z-$$BkXe$OIg#;Z9%Q@;A_ziJ)rcg> zHzP@qs-nKCs;a80s;H`}DypigimIxrs;a80DypU$Qbkpjyq~qtId{s9NPqA1{QuAM z{!X&)K6~%A)}Gg1d!Ict)i&q~M&~}XroNs8V;ZT6diccyA0jr!&V&2+Gj{5iQ-JUH z)ir|qP{?aeXc%C=o}f-M^y11v8q4cfoJNVjn~;Juh(#5k^}BuNTFE50$MOCM;IG5yTG^3vtto(BfO^1NfNucPzJm#P@#wkM z?#IrxRulYiuJu*GuK-)vfBGK%HT-p1VVq06z>TX?RVB@ZqbX}Obi=|TvHLK_=a9G1 zJ1|}u4`F1?WKwMf4T1H!X!ZP|;jDOQzx+YMFY0S$d7EypvATg&B1x|ibR&j#g(WG{ zcPt}o$%HsIs84Z8k9=YMj8T-D8b|XF_T|yR;(u_hakPbR$-zU>D-C7cD{Hxeix~;} zR)j%nCO$DVRj??0G@4W!6=gt8BOdxTib(4R%$>{lRD4WR!}u6l)KeXUu0JUOU-0+` zA=bu&>$s+!qp`MtB%{#5d-W0BYdmY zCls*s@yaWB-s&TT(xjKT%Ty%L@s;o~V(AEvw%LkNsOR7DR2Uuz3`w7aLN93Xm=@4W z8@OsaUCbNcn;}R##1{sX5_%haA-2_+1``%rNsNv83V6CjSrQ%}3R0#Rm4ji_X;P;W zyIS@0m&$?HP$?_)lB$o#hl9<0c5Za#c+40X;I%DDRe4=SLv3gyCJV5cx>RMD!+b0$ zG%^)wNrL*Pf?|p(LFl>EZB;h%x}p~jmKg$X`2GK)mRY@00uYjVC^oqGYNKo1nl~uc&w0SxUkBK%W6TwLMBr76(dAesFk~Vu85#e&D)017YU^g5$ztp zA!IMs0ttA?Z9#dgtE<;_3zCGOI>fsYCViC9i95s35!wvU`w*dZL%O-4Db@*IlxnZCjb)w zwSdupM*$B3`T=?XG66||Xg~V>gz;l4708aoW0BQlF0gnP60`vp)0AvD^0MURDfG@xeU=OeW+$%=-fUAIWfS&>1 z1HJ})4%h+s0I(9!X8vG8ys1&Qu%JZhOknm0)B~mgJ^|2T!nVBXYru@peU^~$YlA`6 zz&JRp45zQ{e6m2hBHfU(1hb|R3JF<`ix**CC$|mE=i8_lg5^uibt7D++XsXX#5i(? zefj74)*-jfw~~1a<}H{{|0UST?Y;nf9-wyWU)X3;qP622iuj$?C=p`fIW_;5f{!Tl z-AYUkcfy+gfd%;3r9&c@VQe6#FOArtcSEB`wul{je?GHNSkX-169oqS2j|k38KEDf zg>ptLgeey>{{{#&*c2mVD?Ei&|LpCU3$14XWCq1vX#GiiCwoWm2=EnZ08E4WB7Mf^ zp=+>3f%hgth+Gh3%q?oegE5UK3Nw1;PiE4E)>A1LTFIOQh)ovW$=(sX2D&c*V}UDh zYyTJ1;U*ty3;K_c4EivXGk7Sf97$gEYEe0wd@=_1>&YG}$idd@a-8{9MQeeu${9mt zteV862nGs9&+BMkD*<$mB;6t(~wW zM6BS7#FR`^8TH>8^hq>IoaQSN^TR|qh^s`83CsTx{iy1?QSGK%m!6KJX)2vM`i`S{ ze|lXsP2uU~M@@r-+CjcekZRoh@eC85FP-$)Uzl8$WDVuu{rMPXz`y5X7#|bS=u|v9 zPj48$Nx}Os>TM_a=<1bWbncg}rt(F{=fR8T{(KDMV=8;^Pj48H&eI!)Z!%j=)YJCz z;X+Mi(ru)^F_diC%P6WlSrA^&nrIGadMyZk%GH|9U7ll(ivH{@RdA>Wz!cZ_ey zpP%&dFWTdS)3psR{$GaoV04Dz@lDVFBD@EuYZG3QbO29h$_?RlL|0jh-H;iE!98gE zr}}P+zBBFD6ul{Rq`mrTik_NV=kPI+-cG)n;!n-N6h7pcDRh(B*$H}+*=dTtz49RO zc7J@G`f`7~dae4>0iLvbp@VP@>s`D3Xy~8|t$hHG0IC6x1D*wtyFR=M`#XS-0bc=r z0_gio@0a2J4FjyJrc#~SuB{N_%5|251C-TqDRhW(lm@HtxIHz_z>Xb6TDu0z z_WJZG$T1+&IqFer9relSyypD8{P?JRO>UZGVa0tDxPv-6E?S+K6s?X`rzS_MVJ1YY zxi9tyrxq*G;1L_0nhaj?(by+d(7#tsaWB?Cw=l0q94AUih>cdO z;}a875n5t2_E6E5HFX>i*wECZc$jHJQxnJ@g|&(}_W{m=l`n7=Ev#^0ZX(eTe_oS$dRK91$*8FGl%a^OD3EQYyj?s2O&cy+LmGG^3he|hc3e{U zBEC8`&NP0UKEBY}h(8)$JNRNhO#CSyih8t{4?<5b#iL!kI6XXs-!7i0I7s1Y+6_0s zAphIN!{#!2c>E~c?egPj+Wa3ns931NYToFR)TwC5cond8{Mx}2OH)^mdTRQn;ViP! ziU!I}vYD<`(!rKee(LB@wC&Ty8PFk}dUT@AWOx#pHr*P7c#_Q|T>_4v=Z_Rm9UaB9 zUAi~}Iw}usc)Sm2FFc7%8_yvFbNcILDD7er+e;MpG9Bwgp&lTHdh`@wiJsour;iiq z5pR8ZShe($m&x!Gb@hShqx$FM8KnV-9+vB;gQJ+_m4HhE@JRV@#7|0-#7|0B`~2ec z_=$;TQhD8)x#FonAN8wV3XChp+ z)Za=UPReU+)%@zR6}o##(8SIifHjDuTA0!3Y!iOb=@SM zP~)_Cyp2I=lN_Xa7oQr(+d1@zBx>mNheDFjcw48sBsoa+&lDXpSwfRWKRP#}FU!5F>AR)b}9ZKmEaC4(53xxMk^h!0k zEgg7B`b*!uM4{r-i&4vti%!H=G#t;67o|>$O%q;qZ)pSj=8=uUh$jJnSTQjk!W5Iq zu!R^4c*X7GiTR-`D4@2V+maf>I6f~p;J2IGaoYNToxM0+l}0-aeA$Fyj;Rwj9YMui_>5hi?2qdPKto8y-0Ia zBAs!tEMG%;S5c;26{8Cmu}|c6f|4xp5vSGK@R9tnE>Dfa_ z;t~_nc)Cxu(n=K5czT~e4d?dTeADTW-tZG`=jp`-8K%S0rKf{v>b`S`p8}E&AJhTaP;z1{6=FsJ$iWJH<}Ld3=`h&x0eq27-qn~=VKV3HXqG88IR7>8-{QC zqZbHjML?==Z;ri zAIS6od;%bRdZ?bz<4Hea{?M!B?uGYh0Av2%aQnoBJ3ockL_YffcbbR~L(AV6@23F9 z@u9d-J}9JkwhE67?$b=To3-OEZ^vB$_fJgl!T0efej+y}{Gu?=BFTw{7{mFWhM3ZZ z<{IIay#{{OLPc#EHWxh@enU+h-TVRkvc?AC1aQQKp7!abumrOND?Lg;9F6_Jouxyt zoeXDGSqWVrTGBAKl!!YWPd$2d$=HeDfg^ZnCooQ55H?NXfP=$0j6 z9NvHvm2rQ@XxxX$FTL~6P{s1V@$(;}r*rwH7az!1Aw~k{&haUu{d@fB6y2DANyl^U zUxYVyB2|~#N~yAdMW^ChS4KAoc0QdAl@tCI-9&!oT<61^g!X`VqG@*`ed8;sPCs~l z0KcS6TY#OT(-nN@=yV1Dz;tEUI$DhrhxLU-XYxg&7YnfS;R zbS2mZ-%K;GA_HD~{{QoXHMdMt90%aTzz45ywNNcPQ$HJO5-0~AINuw~sUxYYsj1@^ zCUlODz9S>F-X~sF{7$Wt19A32=Tt@lJINF6D8ya;!pVKr__2x z4@5^9t)uBU9pfu8H&!lDbc~NUX;b|m`2_rUiTeZL*XW_&ryQVn;C!_b9LEL&N5YG? z@p0JiOf^S%+E0&3`ilCh$~b_QK_}^jVV+(TI!TYBh{KQ#!RNQL=`yc4$KVD;ZXcYB z^Jn=riQKBY3lXc-4K7iHRp*IsXa>IAu46@8oB7!$8r@kZ{8mfK+0LeGLX}>obe_I} z%7tb(=mohWeg4x=oYqa31X|IqkHYP`3>Zr5?6Fy1$~?iYcdeqhZeJgT4`2;7MFkf+9XF~P*XC3|aJ|vvQ$xy-R1&&t!*EI}m7bo1HkS?DjIkt6+KbghMmoEe zkG>OUqjRW77`SDvX%vq2#9`a9xMcta{;Hd3lfQKJ0B&8tr3-XB1fA`zy~54#rnB}h zO5=ym_cFS$j)I}%_{Hnz4DX%`E*Cs;Mi|a;(YtdlcoKO~6Gz$NGkH{h-APEaLq=7E zBNqA<6c18q1`m8FpY|G zC#HOC2~I1bTVX58%Ev~P)d_d33B&mN#9N{#Dv87W(y7CrB%uqd5GbM#5Dro-(c$ou zfjJtSeSsTD^N04Qty7W{zXn)vE8*`v8}7p&Y#U<6;ujf!TUw&3`ENr7o!CWJRzDDZ z)hK~MN8wbBAC)L#J`mq};v1)}jrYqZAU5E(Sh~ShFNF57%O=!E3Fn80RO6PMvS$5YJEo)gw|_&&%TCPD`{f7tYX@f(7R`6+8gBdX<8)<2 zK{ygc2l!(;iO**rMgBss5mj49*HMUfBuC*4^oFr@jmGOf4eYcqw1aq6>BUQ?qD6>e z(RM&5O+H9@P!=_w&Je|=D$>h?@oA{6$9aTfB{q-{7^v}X8B?Vtqj4K6zb=91M(F@k zx(d3cvKDj6jp#9(NwSfbz7@VW`?IV<@-wjD289O6gKj6IcO0-w_YsR4iDadl6etPp z=L6kB+z?Yfe$*IDInhYW@R6Cx73LO}R!VCdTRVFPM<-{OF0O9w9-dy_U44B09*8ex zjmY@H@KKr%h|km9FrLsGk*iV`3KpJcLUK9^mlKcY7er%hJt2m21sx54Z_>Anod_(! zy+L$`W+t4ojWaFjSmRMmbfTkpp#LdV!y^>$O%5zfxRAVBclOBcbUg zJ*g7+t20S85qD~4c>4v>KNWKLlAk^S%!9i=Qsg!08~lv^SZn zs_F7U!-_@eBK~dh`u6OhHh~O$6Fx%Y)YebpO6O3kf*)&&RG|~1Hi{C`UY`kf#&}wc zDu?c5ab7k0=4s-jfu@RQBi&LKNe8_OWduo2mq78$%Y;xFNq_F9SAN1_?sQkA&|LVv zot0ydIYRBB1=XbBBR3Hu3~}WHm{m;RX@6=PvC4Kp5zs&Y8y39(mr1_P29LwPFJQN z3q%>Ke^;xn2!WtW4^M(#ilip4O$rMOz1-TR+vQd=6)PIi0RPL3*RQtfsQ9A5r!gqGi(9@zpGieoLT?kWL(UwZ^b>#`c_=KtZ&6F z%lcMas;qCdpwAoHC)UeC+3l%bPu;SU$*lCz5F$P8`XdVW^+%lU>yJp@*B`OIuRoGu zVI#&|=_t3*UScgX*S&h`UZXfWz48>xLn~Cm60<(0yq#=4-sZ!W3NzUm8Fv zofLfAbr~k$9cNvHi_+diGp??LnBB37F|T!R)PoJ$>pNdda;oub|Dvt`%g175Ta z2)(e@<=&~eZKFKc}ufG`L-?S)5Zolt>q9c6cfXd3s z*yE2s&L&Qr$RMY}4^~xG#p>$n*q%Lm7)}acGAyncGiD5nh=^eK?%iWYj~-=f z*REv~CQM*oe)%PP^2sOJzJ2@Hlqpl#-+%wjh7B9WdiLzee*gVOj{We%4@`{>c&@IlOrcP)y?ghvz`#JZd-rbU;o-qv zdg&!*j{5$}E3Yt1OH1bL?98T3o5p_m*Mk)WnoZC7Us028)c0 zWL{og%-h?W)z;RshaY~Jz4qE`Y~a9wEImD)egFOUY}2MqEId4%ojG%c#l*z0|Ni&C zxY?J9g|~si~=~ckkY;Pahmr zJai~Kc<>cojZ4!Mx$YU`}Sq=@$qct%$Yd4JfGdZeVdt?nX#!; zr?US2`?K!dyR+rXm$SFtdW#JhFo3OGxsqjPXR~?p=CK!Ec!4clx|F4)q_CSeZ?ca+ z{+NC6!3XTeAAe;2{{GC-(UD=r6uW-?I{Wt9Z`pwZ2bis`Epu^kVV5soW+f#hY|)}c zEH5vQxx2fw&p!K%tzNyFJ@Ld7EF&X>m6w;Z5hF%0Pft(W_}9QjjvUFRPoK_;ii+4z zKmEi40s>gKZr#}P&p*$ee)?(Fqel;R_3Bmj;fEixE?v5?pMU^kw6rv4ZH+573ksNpg#`-=3Sy5u@(BC%(@)vq!-v^B@4UlCjT*(~&!5j0 zE?mfd{qN2Y{-xyZ0pvo?5U@oV!L+jVm>}TY}vA9?DXl=?61H6 zVlTh^GIMfrVwIJZ?AWnm?78QjV=un=B3rU#3G?;!WwU0@Vizx7WM6;%H5)v5FbfL{ zV<%6ZWY0ePEL*W+1)Dv4HnX#{V>@^5WarMEW4XDxZ0y*vEGH+2End8sMd2zm2L}iC z?z``@L4yXdZQHgnH#ax53HA%Jsvn#Nq1yg~AYVk5e~N0_8_n-4WcettwL>-j4~nt} zs$O?g&%Q|h98~*5D9T6C6t@MUnFFy?g`^FJ*!Ue$UW}}$M3Malk?|^;wFio9J;YTRl6?}z zejZ8KMhy?uumM>=8qMbpn*K{@UVYGXW}=GxifWaHCay#?%10A>8(H9h>Ub5+z!9S0 z60#)<&1x#D#|<>?a8$E*&@2x^Y^_68n~&-=7u91Ds@NB(b_>xIZ=>nQpcuYJ(>Z`D zWQFSV7^?cyXmTm2vX4NV%s><9h9U}s80?8^ejL^RLx`!p5OWJ4{@#E{a)#(AMpJA> z(au6uv4==gL;NM7nfgOK3`JGy1<@-*Rd^27I~i555ltlyBKJ#Fg^Lg|8zDZoKoqY< z6Sjp|K8oi08LIn3DE?fC(-4S1OH{3w(M(68S{;KZ_yE;#E2^3kL`F86{AGwN6{^v* zsMgyd@?L`|-v`n5Ux-!(nqvV(Yam4LH8k-eh@bvw27VA1E@(KHXuBooc)0-9Pd#MBEA>1QFrUD3QwpbNMQapR6A zy9QNwC%TO9AiiIL*m(lo&>o1+RCGaO(EZ#)w=)4EZYe~i2BK*-n$T&8(QhE`ZlcPM zMHlu5#JD%Qjs!H%dUOTm5Rog8rH18GY4sW69zKd??dvuRk=&~P&xT`^za|L3x3&iLtbd#$fqB9_Z1JG4% zf>`+rVqrE!?$78p$Dw=kLKnONBJU%JtIZJG(-F)-G!G@3_kWNzN01${sDepgwF=ca z1x2wF)g&9)w-QCX3?$PLt?Q_2N73BwAR3RO$j_j7QjslBB3Vn&JYrC-TT!iNp$HOC zeV;>7X^`wZRL{>4ou5&CFG5`Ghu9f}sxld3=S5WQIAr~s5I>)y$^{}R8EC3k(VY9B z=`BPy*`QkILfrg~Dz+P9s~?)56+}xkvS{T9U7uMh`AQH{+ZMm|K* zZh|<=huE}0wf_cHE)vz&7foy)M8lV;9$64`4rq2}5V5;ZFYAl1_>! zh>{|$LXSg=B`Is9Jd#pI$|@-_q%4yHO9K*8z({c-rI?gBQb=hqk&T{+KSA$9 zgBViuNHM1Y1u2B2sFLzc3OXs*q!5#mManKIgQQrI!cIyxDXlb^p#cghd!&q#f=Ws{ z4SYzEC8d-G7^KXRqD6xuQUXZfOJQ77e<1{XA_A*GNMI2ypv0ECn;8o-bu zPRbl9qoib#GD?FG8my24PD(KivPco70ShU|G{_;Pj|L1h@FGQ#6l)rEk@8K0A{xBW zfP@BKq@X$~Y;{GUASIm!a5P|}ffx-gXplq$N*e6Y z0D}f+G>|04ng+nq;DH8RG?=0R5)FiCU`>NP8W__cjTCko)R9t718y2D(nAVA4PrUbbkL@jbN|Jlc!jdJ#|JBbgE($($u-h?Fl9o^iRY z5D_GQ$uy4NS4RA#h#K>Q(#anw9_^WzMLa2fv|p1R$u7}dF~T!$e-hqRBRtv{N{=zW zT!r8+qBF^q_(-Ov9Xw-xc_N;`75f>*hp7Y?iQk7JoMD) z3<- z=hI+RMTF1h#=RqY>=Jx=g)@CVuN{-YG-FH0X9QyXE{FaeI%Vfqik^0b?#PS6g3HUv2FUcq3MTE^${|`{AAZ zBp`o!|4GkH@{`=jPx2>onh5Rrk4V4Tnvr_7^=Uvn-faQDq+M|#J8_)egu zyu$4g0t#^Bgf}c?rR8Zh2RO1&bFq&$y#zk1a9&XLj=(ZE!mY8E9el?a3j=>Ut?0qVMUakwWxwb5(bbQ%Z+Am*=HKKJ5mGr$> zjMAvex|mU;`3ePEi2)B!xR z0|=$0`;}z6WJ*59cFEn?G{%$clBt)TI(+)&k;O2pPA{poF{5hn0UO&sj2+ABYH8tY zFfN6u##$kIV%2f+35iL`DXBTRn!J46_9=|7MsY4!62x;tz@=YF|By@rbVz{;-mG-^ zrrxBq5D$qbndEN34;w|eu0fvSV+M`NoLMp(X2+bE3;JIl^uxg{oJFu0mWX~4-3sf; z3Rn>)0mroIBYrwukLyhuKMXhMi>> zSqrVcAL9dD$h|b=fW1U76C%#>~eo&@9R<-YnHD z-7Lqf&}@L&5VK)sC1w?7m1b3D6V0ZZ%`lr~HrH%{*+R1wW~c`62mH`APX%`8D}X`5pOPxurs>a8P(EycNNUP(_p?OQBKZ zD+&}viouEziZVr|Vya@gVvb^gVyR-KVvS;>V!L9OVz1(W;-KP);9eae#rcY`Em2}=GV>dm|I%dSvXm^TliT7T0~gHSY%k_SoE|gu;^=1Y%$nkxJ89U zv&B@485T1wmRhW^SZT4&VyneAi#-+xEDl>7vp8vS&El5D9gDjbN=p|@Kg&?dWXpWZ zLdzn{0hWU;hggt-JHe1fIoNKw%a=GPZ%WamsE%#X-usmpa*z&mLY0FENS1fN? znp-(oxmx*K1zLq#gG_&YMj*!t0h*;tyWpBv)XR8(`vWX zeyihFC#+6eU9@Vkx@mRW%3Nuw^ic*XgOw4=7-gbTqbyMNRTe1+D~BmdlvT=c%8AOE z%Gt_!$|cH`$~DS$%Du{C$}`GK$`<8Kn7{T)>EygThFwfW4*w7k@aHh<<@Jg*IIA3-fq3i`k?hO>$BG9t*=;Lv%YREw{fy@ zwehwIvh~lwF2hmR*tEV7p4YX1nQjGwo*C&9R$n zx6*E{-4?s;c6;si*&VPuYA1>qgX2cW zZH~Jf_c@+-yyke_@vft}lZ}(BQ>asvQ>s(GQ%|R1P9;udPL)n|PSc%cIL&oh;%ukKIwed+0w<%#nUC!CCVk)MdOn1Qs7eLGQ?$s z%NUnRml~JJF4J9Rxy*5y@3O#UsmpSg4KCYUcDo#LIp%WG<&w)4m+LOKU0PkdyZCpB z=@Q>1y-R+VzFmfOsp?YKWn7o0E_1sq?y|hgiY^EhHH+i#o(V2u6tY$ zxE^)A{jVk<5uU^W-aW^CgnOC$MEA+=bKMuZ zFL7V)zRG=*`&Rdz?)%*LyB~2s?S9eyy8BJ{R(DGe7Y`qgM2}>TbPtV3fk$7D!5(8g z#(7NinBptob)*BamnMR$6XIsPj64P zXS`>=XMyJc&*7fUp3^-ScrNl>?77l&jptg=jh>r5_j(@mJnnhL^RB1d%iPP!%iYW0 zE6^*-E5<9)E6b~|*8s0duPU#}UQ@hgdCm4(;I-Oot=BrQjb2;5_IVxjI^uQI>x|cR zuRC6?Ugq9`-of56-fHh;?{x1R@1EX8-h;h|c~^K>c{g}Z^`7B9-+QU|YVV!id%O>M zAN4-w-Qs=ATiMm6t7q5Ht`S|My2f|S=$hZPuxnA*!Cf1=PVYLW>)fu3yRPiIs_W*i zTe|M+db;cNuD81?eY}1AeFA+FeNuh0d~$pWeTscX_>}on`i%2w@|o;2#b=h!Y@dZb zi+z^+tnyjyv&mI5 zz?Q)4fwu$AgKUD_gFJ)6gEE40f;2&WgGz$N1XTq!2Tci@8Z{3$_e)3HA&Q4ORzd1Z#o|gNra!njSnictP-@;HAOK zgVzRc4Bj4mAoyVLvEb9ew}Nj6n}^thIE1){gocENB!;AiWQ7!l6o(88sR*eIsSBAL zGCgEQ$h?pxAilSBK47KaWFEeWj(tqE-i zoftYbbYbX{(50cPLpOwO3f&sID|Aojq0lp-Eur!-%P_kzmoV=zzcBwWby!ANR#-vU zfUx0VBf?6<#)LJ6O%GcXwmfWG*!HkpVMoG_g&hw&8FnS?R+v28JlrYVKRhrzE4*j; zi13Q=%J91Irtlfzv%=?vF9}}}zB+tu_|EX%;YY%chMx()7=9)Edbq5cOE;fx!QEoI z6?Gfjt)yE;x2kS6-5R>h=r+6CoNkM{E$z0o+qQ0dx*h0tqT88nm%3f+cBh+5L}-LM zB0eG`A}gXWq9|f;L}f%xL|w$>h`AAqA{Ixij93-1CSrTUfr#@Fmm;o5+>W>#p^S8h zbdL;-jEPK)OpVNm91=M!vNCdF8}* zw2bnJ@{3B3(nJ+R^^Gcxs)!mFH9Kl))QYGzQJbPRN9~E)8+AD9WRxsg9&H(I7wsAC z7abfOg>&?iaid07^pNP`(RI zb3W!u%*~kFF|t^@*udEE*yPys*uk;GVu#0$i5(Z)96Kd;X6*dfg|RDR*Tim(-5I+# zc7N=l*rTy0W6#F6#NLU$8!J~U)t+j9b*LJ*#Hcmue08CEgt}BcMqQ(BP)}9QS1(pC zSFcfTRPR>rRUc6wS6@-zQn#v=ajtRhaXxY3afxxm;zq=k#Z|@C#WlrEjGG)cH*Rs< z^0?J;>*6-WZHe0#w?FP++@ZLOaaZE5$K8&zj1P{Fh>wX+jL(Vh89zL}Bz{bMReVEy zbNtl!8SyLPSH`c4-x|Lwet-Po_)GEE;_t@G5*!j-5)bP}p)Qr@e)V`_1 zQ>#*&Q>UcPNS%{9KXqa1lGGKct5Y|mZc5#jx-<1a>WS2|sh3h)Qtzb7(_GSA)BMsx z(<0K;X@zM6(uSv%rHx6eNo!7C@9^r!Prgp1vx5b^5yWE$Lg+cc<@9Ka_qn{dD@7^qc9e z>9X#2-JQC-clYZa-aWCqrh8HM;_kz{S9GuHKCb)B?z6iu>b|=B=I%SY@9lo5`-$!+ zyI<>mtGhhIF2gg!JHs!-KO-t5J|j6JD?^h}m(h^Xl+m0qIb&wV{ES5zOEcDHY{=N0 zu`Od)#=eY$8P_w+GnJVRnNFELnSq(%nK7C1nK_w5GRrb6GACwE&zzOHB6Dlz_RO7` zyEFG>?#n!yc|7xU=K0K)%+^esEW51atn{pmtemW2StVH&S!1%Av!-Ot$(oC$cVPUCO$abvMg9+dn%vJ0e@1ot3T0&d(l^U79^6yC!>9_WbOX*=w>lW^c*f zo_##~WcH=(TiLg>l{q#!PC2eQ{yFhEi8<*xSvkXUDsrlFCgx1eS&*|fXG_lZoSixQ zbI#|q^$t}(uoI53Las`FVwT1M-UVhUHb{)#c5|o0qpDZ&lvf zymfio^LFO#%R8EPJnweiojmh=r+kHUu$dsCzo7}IW%!o|KAsVx?uS6DzoaoTfhIZ_ku6h54t{J;-$}Kew;Kme%0~k z_C7i_%=_UV@&e+jei;95^lxbqk2*W8+P3qlAp2^sD@mb4Y%h;ggqCci34c7JYQtzB z7C_v9COCI6pF$fjjVEQWcwcXdRG4?6%_pNP>l@T5NhJveGcaz8<7do#$Nfs5x6)^S zG_uZT`HtRAn`TcL_TTcKZ^vI(Y&MubX&5)2re*b?GZvRViShY-`EbpI8TV2K+!Z@nqxo6DopV?W2BunN9cBrdg%q zM_$-7?{DkB;$QuK?xuBHtv6iVc02LVy)zRI_6>ZcV1a{&>-EobgPwi;{Ikn?&VRJk z&+Oso@Xa4yjCp42hdb7s=^gU;jP+Z-y4AZO_t$5qR!`AHPpo+Avn@dxM`DhLzLb!< zPzxjR4 z<;R~fJNeUvfLFE+{$QHsuWw#Ue}1TI_+uk~EnM^YfS>n=)($QyD(U-`XJP4@t2?Ik zd1vtrpH;`VO@71usczRcJ{Fp~bwl@-r46mUm-#uZcKGAD@BbNpreaCcppt<#fj=ky z`q=Ux!l@q;_ZFaDLde%zD0zj^EW%MW$?!D{#9u8OZ-4KMy$-q3H>hI5adRXiU$ zvUJj>n48D%M9TlZ{B2X{W2+yXa^&5h&4KxYdQJT6>2q;QhkNyKpJloA+iTOyt2K|Q zwoh=Ib|*0H{Y77EdEr{;z#|ze#!PHF zwP5;{#jm};KfGaO|B;(BUVK6QkLA@_o)sUA-w-o&w#%bGkG{6#mELhV$E)6v=Ka3> zHf@dS(36GFIo>_>&+y|K_1d$IuND1b^-GUqAARz)a$@y}(#M9lpWbGxn(Xco;Wx1S zKVM`vm`(Vh-0GQQ7JtWFtGfEFSID<#zFt}y-22pv&-xyXR~~_xN>DpS}Ie!_SR(bu|C`Wsi_= zUC;h!;ct%@EKK!qAG+|*{SiO!8`!7r_Yr$G&wJhS^6N7~m&l*8_lTUh>`eOCNzpwX zeLn7Se~&M%svEB)ojnAKWbku~+Gk?whbU;l_;_0H~E+v1|SVzQqYtjyE@?6+*LXq%X zvsLc_0ZUxc-`rti*7((!XRP{}g&*qr)3iCGKL0G?)3N@q|LCw!%6G|JthPwlmw2P^ zyieYI{--UiPwhG}Z|=*#y}w}1!|xsmop13?*IxDh6Ha)4xZ&t8U)P71`dv9ce85vH z(gR=L{rqc1FTJ;T#3xn#dJcO$?9DHC_;vZ`x#-)^{j50t>9*q+`h3^z%ZoFDf3$J^ zAYtr_UfqAW@gI-S-HStpf3)54m2poWJvVE$bNBIHGAsZ8E&u-y%Reals~X?iFP{6p zvC(FD)K2HCBYS0yo|mZ@tLR>P^upAXxR?HjzP#_DA0Ij5vU1~Bo|k^#>Gw>=+x>4& z_;JscIY(Algq>OP$5q!wt4}3QbNKerue$tjy4TJpYUX|Q_Mn`I_bk6F-1G3z)-Cxy z4m+OyD(Q*G)&yR^uy@DQedmWQ>uU47I{U57PujlRBc}e*BY)m&to{1vlQ-l(;}5z1 z7Wez*7YaX@eK}*;&TpShmfiTUE_cJxhyeps@rA)(o$J|U>T&OF-+ld2_1Ae3HUk9fO*q?&=>xpTAQ4pLf^GVsm0rj-RzJUbfES#n!*JCx4VN!MADO&pkp$ zzW392yF%(8|MvaAcPG8@U$g(M|NjrmzmtcrynJHXzLDcaM-!Xq4G6ET47hMvvzc$G(2hcX!qG zzZ?3Ve`34ik&P>!xH7`C*V@}YGkaL=>3Y3<*NEWP7GGGDpY)%#ji>C@C!_w#%lgZu zTg{u3Uf*=HdxS;WiQ!k|@nf4W%=+Z@sfA1bJ~4Af%u`?NFRY6Ft-Ac5hJ?Mp2YS6V z)CtGbuX-J9Oks+ zf7}26_J9A+=|3*wV8&cDrS)&RaSuO*rK!FIN4y)2ee}mc5B{G0;HdwL`LEZs{cqL@ zIbcwaAHzA0^(B*NF_h>|=by#U&%dqOT0Zq)Q(w~5SV^rUAM4zDvYbBo0|zn9KrC?U zS2QS}g*DYy)z(d{#d$qA8aAA1`u4|)CY)!2RZaA+jZ|Ij=oqXm8C_CZPlx~J_j{pc>1ndTE z0lW)%1Mo87SwO$VEv-EOsenj;AHW@84Y>PqOY84|C4lNzTUs9h^a11nx&smbk$|tj zCw^f|tH;uoRx7|?aQhu_0dNZN17Iw`RGkg|qNO$9tCrRzKo%ej5CiZAJh{K6^}R1! zTCc)91NZ@O0Ps2BBfxsVz5|Hsw=J!{fKY%Vz#Sk5Jbb97b=)^Ct>3}?9PlCFZNTe* z7XeQJuwTf~JUT!2eBpdo&611%oH<$mM_8vK$w zfV&ee+(drFV;Z>&ZXzzw#rP177>3|RxIB(LTtXxo0Oz4g505M1A`YAv#{m}T97+Bv zm<)TS@FJ5j1^$5ulU`(a=MLnifFI$&BwTuj8w>$O$AjZ=w#0{U@B=zv(mN+1GQmxv zBNqyi^A^M7VZ)i@a5j4J)5eG5!U-sD{FR5NAAcdPV!Xw0d3XvdF?)Co5{sF#(F)mX z#fu8>JZoV`=F&T-;YG=Dc(G9C^O^>JM9YhU+yL}Qyx>E8i3j13JLfCBlW#VKMq%RN zegX&LC4|XofX71t66YnwiTDcf;OUayD}*P+i{e83 zh4|1rJ@C`U4LtE64HRc>nuvzuksolGRW@VOvbigHsDyWTWUJUT!iEV@O@kl91C#K% z-!!iJXK5*dMjWaO=o|(|v6}d1$z;Xe?BU6wc;be0h z@{{p*xRD>;8PO0eCn0>w{9NuXgFB~z8{rVH4B^ou_z_T@i0??2Ie$!gGpTI zm)xFIkqv-%qT}&{3(;^l_z?|{3*IRliiZ$yau7w73MSlTu*={ogI%Vg7RUvP6;r{4 z9sU5Au**~`hBd(em~;si>@wJ8u*+bVsZ^kk1;A9ngdP3>n6S%0hCY}Af!KfvyApOK z>`K^`2oL_$zgxi{z^vd8fC;-2;aMR(Fa|A5*p;v=VOPQqf6&GPU?M#DgEkfb6L#AhSxg)?CWR3vXRj|Vy{s3o$?Fev2*p2|$L8pLw z5X>Op!5`p^upI%ggAV=(8+PE~kz001T>26oT`U^>Bcf;;S>SAZTs zMT-=n*eFMt%$X7bfJuphojJnY5vCJNC%D6I1-ljOR9gCm4R9 za|E6fOefGeg3b}96HKRAfgHb%2;UJI26h0L2p@L%r~tr|!9@7517IS2*m=-&mVqM* z#1R>aR{%_8FzoOL9m01+_>Kr4b^uI-4?7}H4T(r>16&u+0G2 z+e0nL4E}rw1Ao{Ru)_pcBWyE(HNrOoSR-sRfHlH41Hj)5{$}tugFo;=2Y^59FcCIS z08hQ3V&RAuo+SLD2E&^d4N~t2f7oTP!ySI`M|FS;fQ7*XFco|OEDUBC@R02?0Q?={ z4?E}p@Q0nUM-(tfy&OQ~lK_37+04Dgut^z&)Cj5aP06PFC{9y-o{>boa3dqxxJGs$=V@UXe zBQN-aqb&SzOou&=5t%Kn=DH5h&{>}99$cTILpG-Q7F{O;M~ z4+ejc`QguAW-l7DQ}<5YyM{j)`~{s1`cz9xD=QltJ3D)OM@JVIS64STPfsteu3i27 zRI0$h;NXyu@bGTkA|qpB)atmngoNbel$7-JjEv08>}-uDKfgzhf`Zi9f`0x=U9(}a5bkwNw@-bt^j;*Sysj024uWx8*YML;ix%sij9)Eo5)M?XZ z%$Pazsi$Voe&(5HpPe^v{`?nSc=5$Wi(Y)(BM)27XvKfoDiAAR)k$2)iK+V$zDpMAD>?-yU}-+$o1*I$40&EdmGj(q?9v132} z_|s1(Po6q;=FHi%=gwWc_}g!nFSoQ@yY|N)H*Vaz_19l_?%ch5@18jMRX&#Prx13_ z;)U*5seui<7O^7=hnm+ixQ-uPmZ(-I&?`rfX3hlS`kIPHI>lb{C2{~Ae2lGh`mPO4 zqYU_JL*uvUa7-L!RXw^4;p5caQO!8ke0*4Vnsx%PyrC`zP{MH#BDhiKltwC-bcP~_+p*)>cFEv#9zGo(yPuDh0fc`c8!RKsOs?f>c(jKsCReU zc7MBzyx*Dc<$Wjmo3H+4fZd$6pWEA8^iw{`eo%Oa``h`p47PE;(qiM0zt8;Sw;8tQ zzWdP3X|lC_+V~%=Ms8jvJHCFC!@#xPcDDO2$<(Xs&0MDLkZpB-T&~!=+3JAX4)fDb zzh(E%^waWhKF_js_l_p1$;@{JZOYZ6|Gd%l?%WtIW49jI-H% zvQXA^yTW?omm15DT2gJI?vApWv!+URblg?5=~k|+x6^O-**I-2@UH@kOTT|?FaPaj z`?$lSWq%%d#G(A;QgiQ~$K=js6BRLkW|}`@QEr{#I!)2%*GbA3uT_}6_TFap@Jn$H zTZ8_i_`R>(a#G7On*-0s+xPv{#%$Z-^)@5@%~+4-ixyAUp0l2_Et2ghoU8aQrJsEA znh48>FUTFfcw)VM*OXyyyY>)$x08|r#pK)jC*^b`MFP@SEfYSTgJP;#%yK3*e%Na#jNy| z2HVGdy2#6&$6Gr+{((hN-qQ|$gk84SxaGf!v9E5hnEBx@<@Xo;lnY1SaQGtb8MdRb z!2HVBPg>kPV<+qPtj`7WES zi$WF3^g(v7Dqog=5WY+9aq?mN&%10ioBWJSVPDqIM)ltkG(TTbC*# z9I+MV$KMnzW10CAZw$5GFzH9DS@T02E`8B#UUL4b`SYK;S^GQ@X}$jA@02G!*EuXX znr;`Fut1i-+Rl9AEALs%JHFPU<<>og^}QhLJ5$VMKgK3oSZ#dH)_J#;^^T@ub}D_S z&5ewH)_;AGZGG$baEG@(`&;gDG}7{i>3Med)*rVmnDvvQY2R6MyT-3={qN?O-PpB} zSspm8@cwy%^(dRetp9}9EFF|nZQM`4$zIuh)pEV_EZbXkC3d^Mzr&n%)+)v?S}nI9 z`ML6?E2CwX=j>DVh|m*?SZbzRC<0%8G<+MJftK zic(Z|N+P6$6xo%K&<-I*LPl0pvXZ9NA|pc5uSam-58(WDUe|eD=e*ZVbTY08d0=yf zBjHT!M}!ptO1aXpsY+nr`bnnr-Y2Z~s2ve*d4j?>IDpPMN?5wtX-s(id_L0g9dYma zBkWwgCa2c+5Dd2KgDW{JJ|~7nxBs}wjy0@6Bo{0IH{g%qjs9-*gNM#&mf$?Lzh4zv zJJ<;~jXl7w3>eTOFCHVZj{1z>^V1P{N zZBl!yEfx{+6j(_0KtK37UVBp$_V_Oj%zB=r#{`_+$)x z@IW9r{yc!VEOi;M!3W^=E;d-@yR%f{odh!P%?rdnvJEPAt3>GH3+NxQ5RN{!mB|x$ zPPs^JBlXLFBX{onq{IYPqd|?6=)SZH&U&yIZmVrX*(`#;S)0P&PhHLJqb>u8y)j<7 zREytVy_b?(_X{~Ay9kac|G}z`!%rTccc7$K^mE#>ZzXhv&J*fQ#hLDTuL$F`}J`M`HQO)6n zV5f!OKb@)|NgQ7WomLm58it3Eo1c@xrLIc!&lVM+AoUF4D%67?9SlIv$D#DxdLE8F z9>VNjL{na&Y3$P;8cBLFgu^vQ*iJ_SOjEXkPVuqlcbV!#FXZ!>Bf%x~YLEFu#ZVD) ztBJt9wsnD<&13l3;VD46!x0g+f5!%Wup=vp}YgS#V z1v4%RL0q>ynh;YDwcoNu#*YT!;%Qpcm56!xV~-O4Nw+$gA}0)na%RN(yKPLeR2f6^}y07RD_@3j^m@3 zXP}YtJ|MJA2UGeb&D#r|=C7cY*s|ynwnlqDCEWLvl2e_ad^K+3((gt9Ygd2beug{* zx=4^0*Si1`JPPXE^+&Fzj3AHAE>eO4g_yyZJ#xA;3%pLOq#vmsMJ0PeY3TJ6$Ukx+ zzZ|#*ZqCc0+&-3(6W0+wR%I4-cBw`uL=@29<^_mj>=7dTaxtF!I|QyAa;CGBPJjjK zr-&=cA3^-~AQHOvIO1e|p1*%7l=4`a#|F)=rOEyd==*0=+~isW@%b*xYQFuzej9#9 z9dz3Y1S}~dE2>8EX+#U^45d+JWj%xsHbmxb8G#Prx0zh??I>9GooZCPM^rB-K=Ru= zXu;uJs66`_Y4#!+^DHq04=h2Mdskbj=m*B&icN8_o7XVi<#-bxsCQ;h8HF$fk4J&x z#r;T^lqq$r+=Z{CRxopc0T{5o4!(WtC0-kShdHDd1v>0=!|7G}p#QWhnSIBN?z0!g zilgQMO9sP1>G^}aW^xWmn2_0o6^2)_Z%6-KcdE=ryZ`Zw@_x~jgp0C9C zGF1)gMfnHj;HVOG2FU?Oqwmri-l%Zg2m?tijpEdSd{XS~OFVRPiZ?jFj2leur!?!c zu|n@qY+jxqZt-Ftw_#ut(^*Jz){Z0{qb){%f3yv++>EiGpK0)ij4z zJ+Dgh2|I%6ZHXnk(hYN@^2=XVkt`(-ts$V>g$pPPaSmT0E)P8PoCNM%{>p`Jy@Ldu z$^^CZ9pI$~|Ir0wYl!U%e*EZ*`)IVFELNeV3(!m$;VX0&r1}%-*Z>1UeLs(V`qqJU zOjtA5T2lG#x>s3?16OcBp6AXUz6KZFR{(9JX8_U7&jDYh<7q1O$iIiPC`@RTCiwQ19$$s7h!MI#Miz|Vy91UraKmUfIgP}IDIP~ zcZ?rJef9=o2Nyo&Y*M7C*eU^9Zls#lE1Ba{>H*x8uH`0ArV^f6mc*Xm2ACA9r}Wxo z5RH~*IJU!^RxH^HrzQ<@jrF30NXkb3%iktSAVZzJcDxBH9?V5g&u&5uj-;?XrjIBK zRXH@hqLV1RI1K&t^hN@#zT&HOJSofka>{9*0{g_S2urBjM}0B+#P@l+)BL-ma6(fx zX(8GN$4fT?T{=U&;58jw8*u>TKc(`4e{KRNOO!a>5BK3;8_#2HzIo`yTN%iX|9Ivj z`iidhs%KLcHi2hH;+Zu=^TC$TWL!}IBf^FTAxKSq_ zd7##^qi|QtM)3V+5X||w8q9hbM(NLgNM9Grqn?z_0ozZ=5J~cfsg4ad@GT8`;F2Y_ z?BHA{*xw!pUi-I~oN1!*Hz{Ro(yMHIHtz)TNQJ@mbbn#a2VQfs<0nBUw^_WUGY!tv z-HRGdy0CdK?D#s(5AayoC+v#9IyT^X2Y+g`o{+S@7#Q5*_bNsE~QK$Nd$cHYAd7rF$+5xvj<*kmP!oU zbOCY93FNrLcj8a;UiOz&1$g|XFqPN5fE}FI%sa(YLyvzXz@EnP)LV(`SYp?GU`4C| z*F2_+MT(?iNv`#n(jiA^{cHy6RXm1HC%15cR|N^{fEF%&oie$%+6&spzk|e%3*qlQ zy1@B8+j0I;DBgcU0ZdM8rA|IO%lLd-O1?~84vsi>16PG+0F`D_>fYP+u-sr5cvqkn zI;XN9lW;Zzf%;vaCoy!iCy&wUjX1vWHfC_3!q%cRwk&u9A-Y zRmJ55PJ+u{^Z~_03w7?+c1*2bo66EU#vb%LOa1T&C&ap6LHgO92rsu3!jx}t%#L3` zfkP(7I39!a7hJ-OT zU;-_{OSfq-)qVGw5IZAkN923Lr!R{UrgQlENIx*9{|YK<`3h_Pu1J4bwG(b_2YKVh z0lIInfNh@D;QenqLG8|WsMJ4`SketifbzKxS?X5u57>7k{qrz!ujd^jz4#zK-MAUZ zKVX9Fz1EAi$rv+Je-7i0(TC8lU<8z$J4aKm|B}Kvve`% zxW2O|_##W1pOBYgO*YkHbz8T=n+5a%!C(dW%wAvkc0oD#+uNHx7?nVo)W_o2WXB*2 z^C;}yn-WO0>oJiR?k3>A)%bfCLJo0 z&?mdk?L;0pR`UG$!OqqUu!-R=6!rPw&5c%~-sJZLE;LH#8z}rL3 z(43VQ+0tQxb#%ypdY>Oap_dJCFZB!X9xxH@mtKlwofZLXX9rPOWf9jh7RmYdj-i6L zL%1Qff<1K+r5`%n;zK`N1_GiE<9SDS653*Wz~St}(8=PXELSGSZo;Ifof=a}f3h4b z7URr@+H&Z<&Mu<$XaN%5>_=VElZ3o?zXean=RiBuqId(VcJ%xXo(fAC#!mh=pp6<= z;#Q6_+@))kXkg(E%EVoe`@64%e92AG^S%}^8a?{7cVPiv`gtQOeB6!wn})HEC53QD z4OP}@$7l8@WQA!cA17`#yeIx!{f_DX@t#lb5aHrBCV|^u+(i0^H`84nS^TfPH%Pz8 zLFlWq8>rILhYcL@h0hv}l5zrz8D9A~H)-NdKmC>qHvkj#p-?fL*>aG0y{rIf3t*W& z=|;Tw&-uU>-7@U+$>roghbllfrywhQw*${oY5=c|sX*nxGu$Hd4C?rJIiR-a0o1bV z2$mJLf`jX1(ThWG376x3aMHFHh}W$Ej!y*f3a2`-j@nHfjurx)mv13~@qI|hkQpkb ze*?a6-vmplv=G93{F#DF7Mxm4AFfq5PTS2EfT6z=NRjC*EVAkyzu=e`^oIDs^eEcn zqi?=*4NZD%NJT$3qJI`S7)1gyeS6p&wv}W<^md@fbcXtxI0^|K`OMqJ_7Vl=yP(|u zdiL?aVU#?Y2^?5e3dh&!vAu`y0?LEeVan5pcqj{iR{F(=aqTP4aGXK}XH^Id4^wiV zNixF|_RNOm`|*q=4V0PrA2K@Lg#Gn)7>ph>VZ4khVSI@mrR`G*E&e%zCSZ1C*Hex( z$lZsB3f9q$ZgyBzvoLaD$$8rPy%sA5g~ICdZLqY5BScQ^Zf1k!5+pIzf-uhL1i0E> zO4ZehCT(g^vqQf@dvzmfr}A?4WgrfnsxD+a6D5he=QE&NM{z>tzb81dP!Vg{*iTl2 zjbM#a83NPxRDi8DQW!Brzy0mP+>$s1z63GEHO-4YEL%ki?TX;K11zBYYKVU|CycF8 z%EL0o86fi7O{%igltHetfP!8Dm9KgPJd#xixc?UCGDK6*jz3@d=AdQB!mnkVP{uPP zyXYFW-P4Hg8c{;#pLPQ$4pedP^$r8VC$zZEq#9tIvpV%N+#B?jp2V|$1u-jkl#v3S z{@}77>5RHn5?PMF2j4rCf;)0xFeR~?`|aM%Z#`*;4GV2zMde3O$Gxx7)U@SjwQ~_z zTDOs<6*l4P-zV`_-^9Si{w`RKzK(u7v7TL;u@~EPDGxCEHiMlyyB+a9k`0SoN<$>p zHnB2F*8%y3ATp(?`LAacG|xovjScsa7k7_QzApl?9X@ry#?D!4Ri+T2p1hvQ-N6zM z793_`j1NM4UksARg`McnCk_E@sT0>$wFD0w&4y=O4&om(o?uPxQv$N!q|3~JBD67{qrVz^U?Z1+W>unsF?sihV7@s1rTJ?}NC z7PJWd+VU03eF1_8iZzL~w@smy6B5KLVQV(mV;s#24n~zfIf8dP&3GZJd31L0VKz9; zjqG{ zenW!EgY<}n9##^+gtmC)jkT;aU?xAcuvxjSk&bL^p9&1Lx~>z=5NNV#~ld0tr7*C*3hNIKYU{iuwA&TnVc;x1}7)#`gvIvC?+lCc%_m7CuYu72QcM3{&Dp+auwGT$1Svkc31gHnMlz48aYi`q=BP zMT`wI#NCw(hr{Q3ai_B#texW-;W{uR)Qi5@vnYJI*%O2&|PpLR83LKyo6+{@Eu= z%}xstfetE6O0)nwyYoFQtfvf5xU_-6fBqvz5}RRCzXkf({hIS0_Jr-c4nzN`4{`$$ zR+Q(OF6gth2X{SjB_vog&VEVTi2RgQqx&l~D5-Bz*txCE+?rLwJU=-|Gz5uox1Wtb z*lT%EKfMYp^tp>H&0PVuH148?LVZaa2SdbE%^mEV2&KpJ(H`;dNU*s0^3)Dp*!Y_>tgN~t(8|L_9>;Dh}>2bhRKMx$weL%VW zwIU2_EYS$z({y2ZIupA;nr{4ON@&ol&E2XMWCjnNB!?QFk~jQKFt@P_fJyW^(lgQl z%z1MQs);`Wiw6u6^um+0@qaCxHR%do^^hmCRA2KK)PB(0RmF(FdBVtFejR$DT#Cgf z`41@6(hh_h-bYPYMJ8|PNyuCbZSy71%Bjr?fNxBCpFcJLQlbsfQ^ zuul-_Fptv0;`rt{>Lrk~JAC~RCi-xY-M2koY(Kj5M!H`Bt%4gCZL27KN zgf+S3#eF8!gL&CV!GH}cdQAqf^VPza)-{s|J4m%9I-qF&ULNmgg7*3BC)Y(w!rq5Y z6X>n0oa)+PVteaSzGqn%s#R-Fr;b_zd3t+r@OBH{`RXcl#{UtsV&zptea4<$GA2)I zj+p`NUv3~P`^(rb=F-Fzl!_8A&q4XV9c=r{ZTJSKpWLasJ-D~EB$s<)25mB)Wh*pm zDen$L__1gSa?GNFJhxd38aK8jBOy+J8l+V2jXzgwHnm)?gRaPUT+*Ph{f z?TQ$sE?44<;xnc|`y#E#gUKxIa7vH!@%MI+pq42G={`@-bTuGPP(6WQPUuVuGW>=EN zcLVXl_B`aog&=y`eH}3&=Zo4s8$pEZgy>44J#g#gXT;X-4A|lFBG_ksF#JQ%j#{!O z63T5)fIbRs2J}kJnWvj#@E;m$fk5jg)T@JOFy`}s*A7Yp^TKa}3A^v%g4eqNWvY!5 z86|-l`S;lOXl3r_7Z_C%Q6z${Tj36}`*F>vr9gjr1r@vaH(!3~1Lm!M5_sKno%oVn z#$J3Ejn7{G#C@^eMebi?&LxNDk|N%Y$bW1qopqy?|Ja3tYXU|o$r*F5DZYYT)f z;WPG&U$Cd2d9wQ*<#W#x8(MJ{@hH^C*0v`9!_8%paX|&%ymtr@4ohd|$C$G@pBEvU zJpz!3264#p;09*#49@8po#8TT%c%R3c4%n6A9GVLf>`HROg)(^L~FSRtiN?Ia`5;Y z>}m29U^{pSeCA?6&q)sQCx6{U%F>LH68{ra#`a6dUs-#yj9Eh1iC@Nke$xfxL2D%I z@xRo#FXGS(`v`FQbrZjfK1M&7d_?MtreX&oBVhrFDZnE~jx;@|0qdL>;L=(?5*u6I zqcXuOxWt(a$k(thWaak9U{rx7`K{ZR=VH!NJx8L!yQgHp@bzyvt)yqz8rctw_r@k* z|KDW(oQ^9$9ax7ewg8;p}o%YV{{arlME^*Nt9-t-g^-JQ%(NyQ=|6w{;J0m*@a49{K}n$JnC$2Z&Vi zFads+i$V==3VCM(H}va~OGx>bY~=6JXd*X!0Mk)I;88%QA*S-=Iv{D}1ayAH$d2DDs3)eg zu+z93C%t(QYg!Qqm+rEHjMqS%`tD5Tyr~41)DVHoOW1;EkA+inqz)ASejc^;UN2;O z^8($fw*iTu)sULnU_jvn#`TVtu-7LyaO%qh`KbIP_PbsdvwC?vlz2~@&kce=c?rXGJvjY4=1{)#5nM{q8+^Rdn>>lH27ycA zoLNmTkRVf!s5zKp385PJx7%mvHG`MvXn#pSWLXrx;fpfd{a+EY#afEUU8q4G4)}zc zJBIT)do_tqG5?{09{-__e&rKe-wA_P{%QjeU4caFpH8G&(SfX|*P{P*Z6Jm=Zy_62 z*b==~tH^t|S5ph_`5_}R>0q$Y8g|)+67J67HH2y5TkNUJeNu8d4!-rP0)A9@5||zC z!T9DO4xCHGLr!d_8xG&1-ubz}SMBAH?QSBZN8<&q@lFbUDsu|hb@m+KIadIQZ<1iK zE9>a@CtYEAjm?0--X}zA%Qhgia~C9kyc`F0wlI+dRzr(%?7T=*=()e2y~!tPkvErLq1ETDTNU@XDH54B!h3@*IA8rz+wk1V=v z2EW)MLP_nY;B3Y0@u4ku$Z}sjs>(YK5`H(!X-q68=av`(*Z=6^v+F~NNP%EuiZ z#evE@NYLta8tb~Ujgd7{;NMzV!8w~cIscmbB%;`hcRf#K-&C}cPqnrqE5EG5F8I3P zd3}HIS2=n7DXRlWs)jZgvN#p*kT2m!?;a*v8~?+^KdHgzqIL02;5s03Pcm@plr0`q zVr7DV2BT0>d_*U>uJi)e8ZM+Yri&nl^%XLbMaFD##gpyf$-fv;UL zfJw49X`#9ZDH1(~N*gTUTDxSB@#%9YBKV7A3ocP7%VQIpqVeO<5ZL zSTu{?vZ;XyKJ*EG?YkTL<+YTxdmak~kRH6CwO@JNroz!BEwa^T-y6*^p`SCB&*VqSP{c;qV^YI{CXU--DD}3@!gj2 z6tW=I3j4?%!Rr~;L6-ZQJB+(+%)x@*@IdoRasK65N2Y(7Ad#`i96H${1s*xu#CLx= z$eR2b0`S+Tuo&Y`tl_sP8a(!dT_F+)ZyPmWa~))W0|A+!*YinQG;9G|RC5=iZoUG# z%?Ws;GEd+7?1B8b?@AfIvPPudwSgm>E!cqHEx_#SVzzmAHdcS?3DIq6iD}j^Pu0pfKp;yq!#Ons3SsV5`_SjGOtZGR;L?fHHD+Y_;9olPN@6Hv{Fetre`JJmt@ z_MXrprB7UESU#%zdVsb4V9gkc-2}c4&f*Uy!@>KLyGbjZP(atV6xyb+1nRK8!0Css zMVuZ=5Z{;D6MrYxqw}v#qnO2GW@Cy3lk$Bp>$Ra64Jq>{Lf%R+;-@kQ_h+wxyVH4K zNMHjR+;$jo*4c^AUnxYC-un)+Z9Z)M=pe6pL7K8lnSo20IE zZ?_Z0#A5Cly%$i51%T>*oP+pR!EDG?OOiT#ge=|P#O1H~3_mr0g1-Db#a6veg8Y0k z_$GP~h><$Mm=@pytfUL8TuQ+J&*5@ZUb^eq+=A@`|}!cw@m`+z9C0<{y53Y z`2Pl~Cv$)|>+8tU>CK2}f)+$A$)r?5T;V3I6-cqJB6%ofmaTM&=9361Ai0qH+bl~z-^fw{E~Nx8)y*377VIiLnl~LCrCwPaf`hFO zGe15>(3@|+MJHGpc9DBOWvA*4Ste+J9*LE-mFY$HKOZ-w!uc>ZL#V(-TbGgGku<_b zB!km6>Y+A&SjD5qO@WXMJAe;9g)55`yLH^|K)Ol$~N;u_27m|wt zaZ>UvveRh|-zt+%oG4JGQZ{@;cLr}}CBh(h<3S;!k zp$s70z>m9h`JY#Rm?1r?I!oTUx1Bnx-hsG&_>XYYM8O_270`+NNy(}-q4vLTBU`KG zu&L{86C2eQ9BvNNd&KDrgVOgCF0|J?5-k8Fh8F;Y7ot=rR3nZn;Euj z!VbD4=R?|iGvu=)GRR^)6M5tH8oco_ov>^(L@y{A1IjKKtaa!i6tRUMjVqO)3dL2> z!#$JyUFj+)plKIr93O-QrRWf^r3QfC`aOHL%-BhpD=u<)uQL;<{8!=7lP;S^YKe z*SeH>v$dT#e|ZL8A+VLU>wQT)-Q2)d#XY9>f3HN|kN&__lzzkaawlO$hgouA2Lwc2 z7ALyX-I3Ydv5ZfX6TK~`6n3*;0i{egGZ`uoy!3$<@IKi{`XA3j@|NF2KdCLIWcOwh zY_Vqi#UbIBGWgyfLGV6r7eEGWgQLp-0J~16BRfu9 z0q-3B#>=MkK!tq@M4Q(+MrqSS_R`kXbp6}2q+%;d_iA=yO@$lT=V}8?^8sr75krm{bu6|jM?0%oyI2WfiL zM)h`rSo!)n{O9ddB4uw7{-56gplMeTN2II;*UPq`a(fPe`f{g;pmRqkMcWEINNXdW zIsOD&{bdd}wt)Dx3qbyG-XNaVHH^>??!uQk#UTByM%?5-S(bN*1lhxCbBo1v$X4HP z;CDBgx?;jI8mg60?dP@7q1{{1#Jq)cqNfP9AmbAzie04C{B5yeZ3k!}N&u(ce!vq- zv%%2&F`)i|3LG2^VGWsbWcNrfW)h}>N|yfSR~w2F&#N-{jSi!<=9vC;>b*se)1|4hzgcv@ILn)i3C#%v{tQ< zXfpT&|0vc*ymu_7sDe%Cd+G=j{`Ujj;S&W%>88LFPeLiLt9Ky5``0LmJOUh$4PXy{ zy2TQLzHE#7D%7a$5in;X!zM|#Ld%`);Bj|B(cU&d+vpiDJuR-1}OoqmNaa*kscK#J5YC5#Izt76P5UvXlEs*E>_0)?7w zm|a=|IFM06Y)|)Q(}!DWb%#i5v)FB-@_rk;+V(!s{_Q{V>6<&qWX3OM)t)eR^)U?d z>-`V@{Xz+oAFM|nCO_kQ5A4JRH%-FGh#2dUdK?YZnFj_6A7C}_^Mp!lE34omjNg_2 zi`*G=M$|SW5Jtdxe7TteW`T|Jtv{~QJXDRiA1?+x`hJq83QAy|o;R7GDh}^kDae(L ztpCR;6~PSV1@q5_T?s3`0R`h0vbS*ow7d2-P?b}~zb^*yvGx-FVc1ueN8Unz4Nt-N z8e#sSO(gbsRSGLUfC33IEax450j9Gj*q(t|c0y!7@Y_y@tQ)mpUA7pJE^9Agp3V6v zmlMV19r}XH9LS&-^&w#NP#e~|As#-Ecmes<)!$@3G(aI8KEzu**0{+v1p|J1%m z`GwzMuZ)xdCY!x^m-@}DVf{CD{(wGnYsX`9-Mr0&7xbN>&|3WEwR4QoYghiMUnmZB ze`I%=q@YJuYSI&x+GyVBNlxFb2dvy9fmnDkwCLC4q@vvuWKG93J~HtFTCcR9yIXXU zi!Ur=Zrpp#t>!Od4Y>S29h@`q`&JuY_xLv{z0QX2h?^kZoyp`3&Wx~MZyREIU7h6L zqid+gK4(dEL<$&;QiN)HKk`{iEs-(n9dzeeKd$=n6dd{fCRbN%3%>V`0?lryQB|h) z40%hHOX_{h=&Kmg-~428-K(enOpR)=U#Ygmpz-F8pMnR z7NSAHJW~3f2v~2q5i8!81?9R%P-CVjx#{3~&;U8jC!D$pXD*>mELWr+7my1=CwE3n4pd|Wu!p2!*sasx3##_#}p|Mi5ygU zy9c2>(@h>d?M5qKOF{$+IL7aN03Ejd0a15W4-(vogC%D#qDRV{snlB zN^mi@eC!SPM=%LAn5uwJFdd*E^qjAAP6GWO|MNO+)aAJNM$+MC43?y^g!lgam|S+{ z01-Fg#;jf`PCfgWi?(EHl4mYGpuEzP$gSKZ`tkb|w)jH;^ZDs=R-$ep*|q04bJ_X< zyYJ{Io>bmXKj~Iv{>)FOjEsMRF=8b+-(?5%?OjQ=O|}ybyTXwA*fZ3oiq9+42!C}2%kRo3Wfa)$ZJ;vxP6h)Sn#G^o*PwSV~i!hn%O7J z4?78d>&N3@oU0&O-F2FIaK9h=eOUtAyKa*F#ViCY2KR%>ljgj=BtVXDIf}pea|d&q zHx4wM8fD{fRoH#CCVkRw2kui`$7?;)!<$=IF}1O(bY&SwIKI-Lr5&`9?gl}8v|-=B z9j1{reRTl3c5*&2cz}4-9T&RCj5~f_4Z9NKz$|+zg-;hLBmG-h=J`2s+-L6)lA2Y8Z_@UoU2EN0 zz3JC{biW|jJA=cb)d`G$&KcCSP=mKMS;DewC86$Haftfg(>Sd1m#vnRptqPT0Qy#z zaHWE_WLwToJPf@6*t#M#w4fR9&E3ZK`B~zrlWURcwbN*RVKTJv{UJhd>mH&=!ko!y z*M^MS9qCB(R(^})U-CLOi_4vBfDKlGKta$OXe{m{=F{<#HZUZ~g8Da@;!HOzQ(=J& zs7!!uTHDZq6FR`#tCMv4$r=zl7KT>eT17W~Vu7Q6K4jX}A5f|P8Rl$!I{#z(9bsZ2 z$gG={fxbS)#=A9%ix$6?) z(;#M(T*un)GNQ*S5XL94i+UdMfW63`#&7)m7aJed&FlEpPzO)f6Kj{%BU3&_jH}5?qG#1Z$sKP~DBbKSJa85uE^pZe zm>Vci6FNN7anhP(-@37$3(iw%Eq4)Ox(yf4{y{sf)ZwbuIN@(hG-ztod%9Xt1={%M z8+UfL53w!qLsGl%A)|UL;YHsLVw_$BY#+Z5%@JDLr-bG?LN5Y|bL4%~^p=oMlt_zKeR%0$zn*i~uQB;ImDK}Ph26Fx*iZ&VH zSfw_JBn$2aJme<5*2x5Eq)WYbHeoeShVQo5mLkAHlQr4fkCs~RSJ%_p9F(}%r0 zb%-;Jas^UkvXRm@6L`;qN=~XXoy-U{V^$XUu%d;vpx^ypfR_6zObhu- zj=Zb`r5z-IL)0gDQo#ch{jJBIY;gikY|21hwir>1U+-sz_O~+q=v(zTS6nM<((?6X1Wib6^QWElev=f&&Gsk4$Ag&cP!8gZN zfd}9JBrLY}L5Gfu@ih(%2L9R)JjZ*fXy><(bVfMJ(%-R~4gpB1I1h5^<0&|bqWZcd zk^Ene$vuBVsTfC^Trivpo<3GZTBIA{YsqCW;GIYf3R^=}$)0%Ju0Bj9dk2hH@!xF0+N$t)2tjC^zIAW*f1R1AWjj&2XZ2Rvc}F zMQC^17PhT!40fqoiB$Fk!h&KgtiqF%P^SY6&Y7n2X7}&Gx4j4PUXw9Eb2-G%U-AHV zKUzZzJ!CQUnjy}iU&)d?=AvWVZ@b$bCy4>X4)!{c&T(J~hxwoy*`$6dSCPZFH8I1~PU>^p7*OIAOVnKG z1%7Ph;l*wj`P3dMpm*aS>oxfe&;D{6-a2p>k>5~`Vc~wqxlt43z|L%Tk>+z` za9$RgcEcD~TX&xCW5&Rxo&)qdPd`pq$eq8pEDqRUTtFW0bmr$Balx7|E&x<>hWTsF zFxfS} zrV9UGJtp*j*AwSN4@1j8O>xm2O&Q$d=(B}7RNB!=P!C_t#{6x?#$7YX;>Yu_qNrpB z8}~t{lq?9ZU>p9;X+>J=PabqXQkkvizcRZ;GB71)DMI@20K7(F1MU%F50oZlqS?bC zX#e|Wpue^Z4RA*Y(T^QSMzTKIZgdaxn3iWh`?Znay=vf;bP}SsMU*`$e?;C9otf<+~7;8O) zR-+&JopVi;{WTTDh_50GulvEtjz+|*e;PhpyJ6DKYzXy@GeruXe&P!PKZD4z3eK{p z1-Rpl0GqS_LPDaFgzNMd$ak)Wkjy*|HraOI&$hMWQDZ@bZ`d(dRKyroGBX5Uo_mf7 zOH`3#1ukIT$saK5Xbsq3N(8Jb8!?d!#(b;XC`aD$=e{JzGX)>C@u6O6a&pfT@auo7 zq>$-SY&CrmDhT+^Y#q4Cs4M_z?Mu(-ul=2nnd=H>!3kwFK4cv-U2_S)?B_^}zWz%~ z4hXT!rk$arqc`!u)gpLJ*q>$eRI2P-U`+KjJXT8ElrO4q2Jwf&MjI=kx@ecsY(y8!Vvu?PXEe z{SmlwRV20EUX@z$RfkHyqz4;+zCtZtX3RbG;plc@DcVfG0~@+6%iX*AYK3T6~5G+7nAZbRkIj<7bJ1 z)TiL=*I(S%-$!v9Ek|Oam_du$>!I%%0(BS{w5V<` znX+6Md{hvDR1NuYXeJyDSbGwBe0l+X zSHKPT z-GJRJ9fnJEL9kLysvY%Hlok z5wrn_@w*85H&jFGPrqd^Qd#`B5PRkkWI+p=b#bSWU+fuMQTS26CDt{@<4MDs*tg&; z)am0nw8}seHjTXiHs!c;&ZbwP*SA|h{W$=AY)8Vi0$=!LtE$1)XjeY!s0dp3csVw! z;YMW6TTi)LRsX|cUl0;?w&X6EJ^bv^9i(&>N*(-L$6K3s5^JO1GM-C5v%|`~ZJ+ zaDgp1iW4$N1n479gUo8f6k_^=C%;MiIFJ{mgxohZBIX{L5}B*dQBNhVVz0*}kR@gH zl&bt8{Q9RhY{lAV$o|wUGIoPLb(PvdtP7W-!1;1?pu8-SoGZ?_wI0W*?)}8qli!Jq z{7U-f^3OyFT;i8bf?JI|#R(-VP{uH~}j_1-@`S1O^Ws2UGK8=u`UtW{0sYkVvJ{Kkp4Q?&xc3 z=ixbA zeYw+tcHm<1r|@%0RpRFCE3!s6oM{q!$t((KCH2oA1|bE4*ndQdt=CeZtpu*{Ppwkf zD=Dok6=nh`HXLEq&buQ)W$LKbp?tFJHAh&>IU@ddTKN6X#?W2uH;G!YmAulRI~ie_ zf-B2x;muYLQgsRo@uRpMNh3H^$Y=q#?ij!YnfqAFI0N)-`2nn1 zP>8Wi6am3>LEsTh5KWKFF+&wINRn7X!?NAzSo&@zB$Wl#zEga2moFkOO`}B;ZBYCf zcU~g!AoP3(4yqvwVW~&ObU^oR=x$shw?RvZUAO56nKrTy_m;m%fb$R1$wu42A9D?u z>(n?U5+?`Lz@|`;wJ59-_?EnRsEbIvGYD$CPIIOfIsCwieDvIJPb@cAfqZpuD}K;x z8GdKCAt0CUNv%JgibLR5`0xP%*lhKFUelqP_~R4)w(H zofz-T+d*8SkDb)R+iz4yKM^}62I`w|8SMhRczO>04 z_lqYB&wmkU8eeBCd^soBzV#3DLa8S&{H8oi_;6h~Y3Uspcga!0Z&Ku$*zc2Y;xDnr z%e-b?K>;U1F+$ukq6;nuXD}xgwldVimxx0n-36vzK9cKNd$|b)j|IXFZJfP7uJNuI z9N{*cG9cP9T+#fC`dmHvXok%)1L*b&;0N4&#$D+(A11oYXCHR_2p_EScu%`R8QHZX zg4Am{Y*o)bUR;nm(cbz?sA036EbfE=#ILc==5*+vN@aLew0g$5b`$TgxWW-k&09u5BTamg`75FO0jHR zJ0Wzw8aeGPBdH$QCTbekP3kh-MENIMn@AicRf_L# zGm`n1a#f^w$W>UX#UVfXBlzAMB+S7>d$^h9T5x5<0?xntqgZ1524<6eADOARSopQ$ z6Om7!AzXCHf#sE##n=!R3_Gh%a+c(KarM^D=lAMQAuI9=n28UqSmL4s!s_Hdj2Y28 z#AgPlvrZ-66`VP#!?e7%0-R#JMXHZY1Yu*GBs-|A%(#jJ!c6Uz+}(Ey`S;(wg#Ess zxuG9w1o`@_q#D zfJe?{Viw~Q6VvQAA%Pgymgnvo%m;v`}1bc83FL3!Y zVX|HTd(XnJ4EAVkN$(m1Uh28mtZAktLXY-QJcgBobJFGw(_rlhzW=L2maJzLAF>+x z$;-BIpz{Jh_eKs0)m7)MZkIBfZ*BblF6`zE?>6S>N^FH2Tr0Sh(Gn>OAHyqK=gPdZ zFkaG9^@4Xs=eMM%t(C#QJyT}og5x62{0@F__fLk~6MaUL)=hHjk~_28ewIXDiOD>D zFPWI~TG?5Ty+mua{Nec6{}8ko>98GEt8nDkJz!eSoX=AC<`R{4)!^ya4svMqlafOWJ-x@w()%VHU;cZ({4ocv&Iv;(WNr{=>M3({>pTS~dy~XZ zotosJB?m|wK;s*$N zvw>e=&0*i*OqPU{{S%)x;Rwe1Rk7r6_mcE;Pnls`s)VB7UW|2pml#X7ZsNADVsYEY zXv-YhDq(%Pbx-75Fpp_IQI4afvYd1jbxHO*%JO%IJtXThezPlX{bBa@))JjZ9qg^2 z*21Ixnqr;BAHg_oj`(E`TNL*%SR^PN;m8zZiP!kP7plZNLxK&mLM;O!I8jE%d4(&} zvfYcZY{mdFz3Txo*QDj{8%M++R&r-|zt+r7I`)bEWA15@_Na6&)vaVpVl2cuceEvm z`;s^tp4-VV_dSvU`82^>9T(oMZgrl&q=@H`{8Rinct|*7Ux3)R_cQCNMup6TG?7fm z#)HC-x$UB?F-Afir*T}5Kn2O+=tR-K3-cJK`eS&R${)!RLqoBLaTw^b}_8*W~{QLm1$F_;LnS^sP4L*q4UoU2a9&{G3$UP@~ zvSWcvSWpvd^v-HYv&LId;LPpZrJC0S^>3p^-C=6ngO_^w{;TzwyXWsb_#A&l641X>S|9L@J=M^Yz0k&( z=W07nGRt!^B-~Ty^_{AQ%X^;5)YM<+pC8jC9J;uWp|^1^@3(IQ$3~D25`m5I&U;PP zs)EVL%W!quY0_h&pTENcXgTz*j^0l$|H1CNLi5XsGT(Ro z5q6gq^CMr0BscENV+ZAFNxUCKaKDSp^{V`m$X?L(p5(TUc)l82XAA7<3Bt@YLr zRY?e2@F#|Q!)yu5Yv~2n?ctBC7&jH>e?N=)ie3{0j+=t`q7Wg-AK%3H`mVul_)x_- zkpG-Pj9hp*kIEU#Oj+WNpX=b^+5wiKmOVivx!+Yj{zeE-Ce!$G_cKFI3l)kfZ9h#N>(^6qj#c=C3wonfXWYR7?-c z1WdM<%p5a@mjW*QweJW=)8rx?s7_$B4W1B#SM$MT&U)_jjsqf#jrD?_cs-$mO%QQV z{U{02vL%n}?3i!AMXoUoa*4H+hze0~wFil_XxiXGDuUbAjQLeTS{!NL?_$>bMze=p&C2dzLRaTq|EBM~5@sD1Z$hnc&Q@DT6p(W4DdA zXYG)&RE?Sot1Py%J+wD7lwPPZ*)YVv6FY zT+m8?mlE@frzHCt=?dB)Lh1G1KgfHv=l+Br{CeymzlPK=p&0X-&OxP`W#tX>{U~JWu@bQQS z_gCd}QYD)s8ULb~_o8_fckGcflFM4BSdMPd;)}G5b>6Lr&79l8TA5qMdd-f4O`qAK zifJ|_BAdVFvmCQ9dI$vUOi|499JYL)CC8#~h}n5oAhH`Z#4m`Q z&ud%yNIa(NyNty7GQaxxEMfnD8Qdh&nKP_`5lo)mLBbG4v%sS8=OSX;1tR{{5jeU40S*CxUX?qXD`UXU^1 zjpJAAPY{n&-YnQXzLx#wivfR?^h~$wTR;D1R|4l|ZI7tIYB5K@JQ|M8)#S*mEn#Hq zIB+X^T*!8HV`0QRJ;7p4S!kdCm~XhYi|M=k2>(u9uXvyCNwGZhlFaHu=AzWrIB|H& zRI=y6EKz}{H}6CJf8vUA9&^#MgWQ>N)-vZ_MF?k{OcwrVDiZS@{Ghzvm9fp*li!dO zFM0i;My5hg2b@Do`CblP>=)~sr2E`uqF-glZmy3eH&LCLS{K0RE}lt}zs_fD`g=fZ zxN;Bc?ZyGYb#ozOde~Bl#o=rGEwl7EFEtKJ(&kH;rK69)*TDo%>55GLl7qSMGIJ+i z+53i!flVmORXd4gw?>xvx66b3VazHX+ioRS^`XB=c2qWV(!deE-hvRp+t5oq){+~n zM`mWiy@&PT*XTrxoE48+ykv65?1(|GAY3Cz+Zb{vm`I*j3E)uQaq zIGHUkGFV+Dfr7dPgm>WeEy3d>-dtnXUY;*=vDj8=ge_lpKzMNpWt+DiWCiK2VRE%gw&zMcN|U`MEliNx<2ooVda~W?lSvv0+*o??rr> zaB9jG?u(FzEV(~I!A0Zc4Bz}`WXbAhG7Hmxh>Q}Ig z*hDQsA7e3G_o_oq#4HHt`hon2GoYvZ6z>19gy1vN$fF-}=zr@Fx&)hoU+pyQ4XX`ZXJHrwZe6;O0hb8 z1eLV6VL|O(I@)eG*j6PHwwDXAvW#f@Tz71^HyY&&Z$b2>9dtuo7VbZkKt9d51wp(4 zQrFiD+3Y6Jab1WUlS*W`x}#069MMqQc`AfIC*MOLP6Fv?y^y`oD0_0g7`9ZUAF+HkhovN`5a;19fA4 zYS#A{W`_MFN&d|+!CfBp6mG!7I&=7R+X=o67?An)5mJrUT0DMr8*Do5OLql4f_piO zaAev#h&!r9oc{iT*x1E%AaoH-n0E#L#Q&ILMhON^$TW3c6+A)0W% z5;KkktiQCE&b?_5ZhB2rbXx(R&2Ytm^X8a*DiE(^5|}fs8=@9Xgou5P6G_-@~%3fL=FT^};Clrg6;Yi6aH7hoRkSR7a(A5a)2GdA#hY7q(S_M<| zVqvS5GW1`n#o8xTWcjSMAa6X47`$B#FONmjTl*9-XQD1m*La1iejk9U=6DD_l1moM zP=c3J4M~yQU(o4%N4yKX;ohD51ok(9_U3c&bJ{!z6uqWDG7rLx<_UCduRIK2EhBx0 zd-2SoW(c;g!?`Ef)Kva4ieKjv^^yjdJ?Aaakk$&kRpHRY4U?fkFB${=>v5gYcuW^@ zq4B33{i|*SbL*~R==OQgIzf(}Tha^4QP;_SpFkM;I|AD`Kf|)fb~;BZ55k2q)Ggy3 zmi9d*UyUz<_NCbvzjQ7(-k3yJ+`R*hCg#NM&{n9q*Myt2x^Vz5!cVJw+-!4;$kzS` z>5k^0w|NL;W3SQDDih55A)(i`^Fe3fAkA|uf#)AN)o|yRs_r|cmVf7cBy4VW! z*Hn~Lag1fFlR07jJx&iI*1-hUa5YSp`GWPdXpvHnT-Q8Bb^ zc|<)Wx? zxrqGSB@11@)KDSD4BYMXX!|{TteovY_g}Ndi3f(@PTU4GJDWr7`jv6P1W!V&%)ro3 z599i6L627q-BUl|^GOlVVwwpX=YON`-v!|l?k^gvUH~P1H(;ORTd4URN-l<0VL~?_ zmaNi%L&MvMnw&E(+Bi&xLam^5aVkB)Ujz61JZa6Vr?_z2Upkpxjt4i!WAN&6uybcR z{ZhXV|I;^vfk6d$dcGMo+FGCo?^2&Np*X)Phn(yQg~Z#l=u_#Ow)@>lRChjx=9X-F z{__lo{isA6ckhJL>)yfn;73?%yqS83wc?sGZ@Aq29+I|ChSL30U{^*8732ZfSQMgj z;V3lY@ZtHnDCEg_5#zdSY{;wv>!1|)-N~Xi^8?U9^)<~l97MsiA+lF<4xY^^p%+FD zL&Qd7;%n4`KZ^%oTwM_!VJLz1#p_`8eh=w=vjPoLcH#jG8Thz)Hmbc)LiIX(TzLBw z+O{X*%A*-@L}N5;IT45T0awUsM}U|$mubn-Kd4!5iGL2a!sV@tXa%sP=HwS6RA<^y#4 zPa>O+Dx;OuN4VsqDjK$~g5#rq!(P7$uzI8jojU$fjjxMfQC1)(>~lnZ*IVLTs)?X8 zpBj&dK=#iCeDC%S*;y%cMsN{)RzHVRen+B3Bnx-$LHO;!0{t0Uz)%|mmf>QsTQwOx zZ{CGR=Ee9tF&P)|GQeu05R4ZyA>L{tX3!nvV>1gks8JF;H#E_EA8%e)GE z)V*PmlOfs&%}DsbBYgi?7LwjCz!N75(RPO$IB_hYx8)r^$a+JJ5^GWPwGJ|ZPl4mE zZ}8;OADHf~25mNp5Y*EM?W(WflS(XlPiNyd@obzZ&w&$vW>A&!KQX^9kZSs!hlkR8 z*z-ET%ns>Dt6|~k3O4r3*_!Hhuk|Jv0-S7cw7hC{xJRQ17 zd={@*RzuyKHQ?s`k?#EP3RnJ>kc;N;Q9&S$=zfo?7GFhwWjAmn6Am-#Dd|&&S^t?jwn|}^ExEDcx>^WjV+F(tXHnlan zj8PV8Flpxilzo~F2jp0I-&F?lgKc5*?JhEDrv)@gb<97t5@Eu5CwgPXStuW{p!FBn zpk*?dgw$ul`mFV+TzUz0dcx_>yfyIe$ZZmzdkB6?^+$b*xp2ZY1T@D@16{Q^4A`v! zU5{77nd!G+#xZ%EAyU9Em_V+$Z9|WHin#0jUYJ{b47LhuF)lU=``K5(Ie`Zg_u5FC zCGCVoZj*2%;Vw)tFF}oEQRK>&pJ3Lxog7ykgw?G|u*%&Jhf)Ke;K*-aocl~y3qoMo z0wKA_OTyJBLUGD10Y-jbhqt@y@%4pd9H^g)vo>6!yd*o!nA8I%Gj^bg!8F>pbpuZG zPa}H!r-OHxCM1L@LwChSsve>t9p6AYxg!*Pn4UOJ6aaBfD~Mh6TfF)BJ-se#hk4r+ zV7#{;*vxVzLIzi=bAL&yer14AJCd|k+rfeMD{#o=C>ZzklD2jktZ4Tq_H~Bf5pG8u ze!M~*fd&cQ`w;9sBxL)n*BJDACS8rqIA^&m25D`_uVc#LY6ll~>-NEFy;9s&UPM&*xDOZlbrZ7}lktJ}1Kig? z2B+#O;nw;j+)$&2$>-R3griROesIU9mbtKE`(5}xTN|>JrsJB-f5c$_6V#l$5$gBe zM!`HTw0^RLDwlHlO(_s&6g$#ayc`I>Ee9UvwfNTXHeoGQ2Jx9%sx`L~jh6aC@t7po zn(PI9c^|k`(?YLu8*u+mOX6+l54WGLr?ryXuIuDD(=hIU9h^o+AspZJ%S(vo7!)N``jY2t`$|F!^^2MfDrND*R4@ z?wG@rFBG>u90c}!bGp-FIsTBfp`GtSu%B}m1)W*g(fovr)=`C|`e#(ehlO(n&A~I+ z4J`+|p)e;10?lU-I)_@h+fFQ91XV5pWyur3tZlI1gtnC_|SMM?D|y!g%cvMQSlor zjj*9#g8fjwLh2L#d=zq|p4wM@*l=&u8GNrH0fi;!=yGKdZ1^~zybd@5)1`TrrmfFm z>`Hl*Q#lNm7uAFNxGuPJ6N$m!N6`E_kKRc%Mw`n_c-nXcZhZh~6-+>lQWr=~o&pMX zT$23I9h@eILGQOt81a*XZ`1>svo{l&0S?-P#nZZfskk(t6@G460jg>ai;O6WFB*xhXN2#=tl(%QlJ+}_; z9=i@_BHM_laTV^5pGaJGy@u@l-sI-nl~Df7mMmDZ6e4EtBhP*x!4s{mG|{61E^b2- zHf0Z#9a)V*RSB3xA5bIlcNpK~LB};1!wb;?>TmQ6TMh5iZ}!i?f7D8Pe$-nqquQkV zzz3|lYD`{OyTFvE_i4=HNpNz|7#q%p;5?0)^ttal*qf7rS6f){{_sJ1W6xDw^L~hY z%{~riBNZ?$Vl7-fu?pLLtWi%T1Q$D<#JG{EP?#Wro;eq&rlbc4J7w@hwhFFX?o1kM z1Q5=?F6BP8z!=_xn%|Z|(+ed~x-61*m$t@d!wMKBe;#x#qG7XT3{m`J4C9|D!2Oz+ z=>O?D`JHJ2*EclL!%|(!6@ieZ>>dZpRX!3=-+VMlaw9co1bC%8mEaKvm@i&H?e+Nh zkC#Ls>K*cf*O6KGRAA@vtMqVT6;4v$2lY*gSR<&T+u1(QQyPjNZo1(Y>-D(o+zb2!TQWrSR_!&M+82Ra95>*jBU>O)@)lAqT!9WrBEC)Z zMXksquszq8Tyi@Gjp7;fcj{ZL@lXYi(I3%a)D%+MvKMHDEy_52$L~KfK-ta<-yApu zkGqQD?lu8wnBs&NS6zb7z2ot1ZZ4jG@(1!p!r|B0-4IahhKzUTF>UlM04I0!mf;ay ze@!ed+6t38u7bApGFm;S4`v?vNoQp7AalwmOf*i1LuU2pV9mf|u1>ULe>l9+IY@6W zT7qlljK;6>-|?u3M~^go$LlJDI{18rUuC~=?kFF8apf{3jV5qvj~}eN=7Sn=9xl!9 z2bq)aI`%6Ul5i*>(jinWs_Qe;))D`k4RZAxWQ*g^w+p$?scDpp>CY8)QDg ztHY+4zeyW{ZsrqX9SWls2N62vmh@Z~M8|3`MwL}ZsbaWhiuC!FB_@{=u zG&Shvk9P2O)Df(idk8;_?S&7eLGbV1JrcFU2m0bCV@-nv%4;anh((Ja?i35U-fu-R zrUqkPcEb;U84Bs|V9tUmNKlMF@}nqxOM$T~Lcs68X|SbaKMhrk#Y^qo_?vBozhb;- z+a?=qvHnGG`P<`)=aDc@o`(^~m!adzP0)N!hw2?}ht2>6m?d)$-Yn50$EYgACf2~Q zC9B}AQaV7_NqGFvo$ma76P9Rd60I9w(QxHQ8t}acpKZ#;qo>wmr2RZ{u8fVZh7#%7 z>yaSHXosU(W02fDgJ&mCMs2%fntJO!xR}?$#>&-j#quRd(W*l;1mqkE#7E>5MB6rE zeZK`c6r>MD2X5e6o(a}5E3wu+6iQNOki>2?xW42C-MC;E>@0Q8=`&3%klE=czQlt9>%K6VSwK!csNoqmRl$dc zlW_uP0D|^!B~5w^-0GA<7d<+Rds|Y;%JwYiYJUz!-i`QoNS@RczJ~En!>GU66HLpT zOy|06gb!Lf=n1j|E;}f}z@a7hm-7j@2J*P(Ko*2gF+j<~KXr(}oSeiN?P3X%Ll@XYqW20>~zZz|Xb!sc+dXJlyC6^Spae zG_H=C&gSFIiy<^lqYO-P?eWE|bQEp1#dih&@YYN%5>XWZb<(*h?79RyCVNokxuu|2 z?~k9-4bbJpBKX}n6}ubz;P>MoD2ZMRH*Rl2xth&5dPN7=X~vVXa|GWm{YeLzjkqwf z7M=55p`_yy}B4pTc(o#{%wMs-EZ*x%M#FP6QJgGFOcEdz>UTxxH}f; zxahwaUC~DFhC9LdBoC>NT@!{1i|O=Lx?t?-M+_S{=)PHzcx3DYuEYr@uk#1<3uCZy zc_BOz+$6O>CxJ}YCb)ijD%LxwfQz#|Y+hXr4wnaE%lpG*$L)5Qtkz1^#|J@oj~7{I zdlcR+|B18D>_=1MQZTewg!!SF)X~oe4RdU;*DMp?9La(AKjwh)4=I;wvBD&t6TNW0 z8WQO%Vi0r^uC*Eh%WW*SXwAgR=pER1x&Ux&=5^x?KaF&X)z54HSlWYTk2h#mif zX0&cV@fQXBw@w*@rXIkIUEAP~cp27IM&Q5d5xA{$107R*p%M}3JMeP%{^d{l;Y)`lp{Jp&fw+R5{VVd%MLPR>7i2@Tm>sOPz* z7;)ygG)5sXF3*;{?MlFhuZ@5oxDI=qlo0KIV=c`lJ;gSlI{gwAn(^SAqLitX=|Gr~ zI{5sOMIAdzKaP2bdBz^3X)M99hxM>XUk5#u&VWYHTx{Q-L@PrV;t8`X^2jF&ja-_r zLG%+xj`LwHZHJfR1Igf=KREu_QDj8uVtsuM`5^4azvt&+z(!NFIDCs9#BFdiya&ar zb7ACIDMXZ2O82yr^q}ly99Mh@MoH&T?cit9^(YO?)IU;p={c&d`76$g35O@%t7xQS z1)ecJ4`XCqaLbGz#PzY2v__pr>)dbS@=Q5;_1Sa$;&2vb_LkJrVnk*V)68&QA8BRgP=p&XtU%Jq<=pNU(|oW zp)43Gt6=KPOsaUg0k_C-u)~%EE`~?xBDIOY^QtD-osS^* zz5+d|MeCvFDr$Q<`Hz}FE@Ou zmk6N+x54)BMQUHvjJKBmg&3(;d$Q>qs%4ggsg~cHz22l(t^|Xics@G_R zf*R}&=|F?7%@~^b8aL%%M!U0r>5hpGaK)Jk_Zky$aQ{JYt<%RFkGx3S#x}Hboq?4L zrRza203NGcLU)5cB34VmsX-N_^SLS%ek`QhE`Nq!jrnBH*kXKpbqiPyoP&yM-Y_SH zfqLG2x_n*-#uc|g$mZj?{c#mc*wcw+)9;dP?|fkY(s)#`Q%3uXo5*|LQ+RfN1^)FK z!AWl|AR;sfdAR{(!%An6bZ(-9OOHwSvkn^Vy9=Xgkpvek!={4DI^+6hi;mVv^{ePA_v{LpV*o-lP!d*8p zAjO%!3q1|s!6f|5j8}1gYhr*ajvTaHzay^P6 zxbPCLbq&VQwsH{n?L$rZ?U0e7L+2Q*z&{V}qhmrV-W_fwUDDXwV!i>*U34D~zOjG@ z1OITLq!FGiork>>(#fo*k5IX{7v&fC;0^ufB=jR2_1^4(75%61!lfoUkdcdjiayW@ zr>n715<$K`vj)}4E_7_~b6EK0J^q?M1x}AXjh7cG!}R_wlqua`Yn2Ac)c09<@r^c> z6FtEnlMLvoQ3)`3k4+PbjUeTS)YdU-9$px10^d1NuqIxMoa&2)J)4F|5uXW*kAH*e zsfr+1evM?RJj8cW?mDgNI_A+Um~lW4N_Mu;H)e)X{x?n97w;)pzxxL73M-)C+BN#0 zG=4eW<_RPB7sCfN7iyJy9SrreLGC3VPqsdVbHx|2rbtN1i!9U)^(33`I6!7zIBd@G zgz5J6c>J#``iI$4_D>UBqcfGfXS9NIa1K}*+QY(e3FKA!d)&0@Bt%WThiQtDWbTDK zaMH*c8>c!;Io%#K8nS@QuGxfRn}?%zU#BN(Z1C>=Ffz3z8Jl~O?hf5jz z_#9|H`4pHf^>ECz8*F^QVa;yAK-k zUFlLqE71H|g)M&ZaAUq2*ajNGGL1E)lT!$8Ethew&tiNN`w%)No=1B77wO39fJv@N z^!D`C;JRfMdGPfRJ`gX2$)p@ax!3WxluKTdYD$dB1FX@#K_a7ge zrRE#pRbnoQ-83EI_OWp)a{wD~1aB`k#}z-V$ViqfPSWYXU$g$;MRjcwczGeZPF{u1 zeerO-z!yEk(owFqf&RC-3jeYf!e(YUFqQLh$>Zs$rZ5JABdu_UFPA*EJOzc>dN|r9 z271=dC2iUn5T>Pt{kpRuO_qZEIq5m1WB|>6D?oqe5zNu?fK-=1=x06z-+58=S4TWH zrRC5+CvTuI=>aBdrepjS75d$6Bep1d5ZStJ*mL55U(^jjI)E}`DXNLs}>s8FU5l;kvRFT zAFY_p!>o57q|DP4aZMx{Iq?ac*N2i()@BfL>$XRH5stYVx8sAGyLqwB?l%PIP}x|G0X?$2J!6 zUBJcW;vZnXluwgjQ|S)+@8cU}8onf2F0-I%iaMs1Xu#%xVsdHv2iRf}N`2ox zhC`(Tm{YJC=`4m+bN2|=2Ft-K&lDUUUqme~mt&>*a;#9a0RAXh^3KK*?JA$(;qQB} zKhhVU`}N`pp&?Fw?~gHejOd_n9GHMJnXIOPUc?cdc6MWFq9J*bJP76G^HDKN8|5Tr*tj!wa$1CAsh#0N6z6Tk5FeS0PL^24wW+;%NI*kUhx|*4{XXt?j+YwMapKFO<%! zUogToCk^i(K#jU3Y6NCOk@Gv)-#-JV6{gXd4=;kvrm+xmwHW*=T~K5*17BTQ1Lg~) zG0XnPR9E91T>P&Dwkyek(MUah3i*sXvrm&z;!O}a-ktV;or&=c1H?IXHV&^FMO3pF z;e2WUE!~G9Wu`ZkEpoz-mb&ob$7U#t^ChN}%ur~2m2Q`FfSaYhXln2Pr!^LWXR0>X z?Jgq9YbM|W$7J$x@C%yc=|g(yCfpq|_=yq#2IJLv`u|NQe-v2_s zi!bQece!|YelVFnBF63eRLSi1Uvc5G3#h-GjcUq?P^G*cBEGDE?o+(XG~v(O+~xCI(SUk9Gg|@>8{<5IKFQ@4Towx6XZ^6mUqIZr8j8_sl<@c z(i}sBgS794E`E4-2JYw|C7)c&pds@;dUPsc_C-f({^}QMn}j0sco!-(d(zMQYT=ge z7W$`|0W*&#(%qXI@SEOUT5CEJcWJ1?k3>tj_QFY;hY(@G(ipg9Fa!s$=c28=0JOB8 zkmxH(nBTJxtUAY_x&9eYv77|Ij?c!Xsd>1m^(B!zEk?7vubAZX6J*?6$*p_8anI`e*6uk8Q#GVA$T1hdLR#zg#wvlH4jlvL`!Z;|mLcAOdNT3ISLppKBKKGGz+G)Q z{)#MuTNRCD#YHoW_@#ph6ShI%3hCIdTZrnNIk+gW7~|I$lI6ZNQ04!NhF57|?1C9& zlUW^#g?9KiJ_Y|(c%acLTkHsMhr3RHQQvzaO@6-yrx6v@NKV1zt!Z@O*=6`7MHcpq zm_VtqE|5F2h`R_*k5@vRujXTp_BwQEOv9nLRZvddfulDaPP-W6;;6B(%+(QkBK8pXI}5QoxRHFT z+63wj4J7Z3D<0S`%{`4YW9DlP7+pw$q=!_6B`QF?F_ zEFbtqy*C^Ix#}p)ne`VsH~u1KM}A|ul>y-iWH8<-1sduyG3*J0Km|Zi)*f;yY@3v? zeVx)p4E(_Qw0@Z?z;0 zXlN!oM*f4ctd(^BTv_N~_ep!|Wx`9hMxyg+0MzCt5~W;MNZ40MHXl9(_2c`A)!-AY0%f3tJO7uYp`6n{;_^Z2w|9qVzzKGiOMg7UA|s;^v`b?U2_u``G?@|ZAFmqAr8)zPJ{%*8F;~QkOVO| z;1=@=a#MN^DvUdTd<6wKQQ}ApT%2JLQZc452*UQng5|$-a0qz<(PIsu)x>~yJ?zA( zdCwr`&rvi!wwE3uS0PR3CVft0@DJx06wqK?w`LLKDl9-6!iMD9sSx%znoiNT!Gy3i z@aASeZk~A;Lo}}e-RD6JRyM$$u4eLi^J7%_u1(6LUg1<9E%c832NYUh`X5~|Nb4om zrj-!$>N}0%h69HJ{CyAvF1%pWP`AM9$?u7#vOT0ODW%Mo0c6N^Z)WuBvO^*wqnuN>vv@=&Ly4OS$*g6vN*pzJXRii>4X5m-v=X)+0%)06yf{%jrdPb4C-l1sg9Z* z-cgy1H%{flf}&Wk8xOED%>+!gKS#y?o)f=k%2IasiVn8h;AT}m+7=Ju>*8a$S+X7) zH7~=Q;wpe|Ik4lwZ%A}I02<-aJV^F=cyB^*y-^P+IZeT~L)S@tK`JI*o(1#LuS3t^ zc5-N}49t-kgZfJS*r3)!1Jhza)UyL(WTwCk=ScGL*feO7d`Buf8aPH@h^v&R8io|X zCJ!lps;mX=wRf<*HK$~l zE%hQ3M*g8od+*~k*=vx^al)$^dQ|atK9&`)BLRLVFjjXzzL&-y6$5Mn8hdbV|7N-@ zZZp)rw<5ly&2U}vBYf3s0~$J0r00wPII&8HrvBE3Ey;gjcUn07`xpjGQdWY^a(S$H z$A@0m3%Gfb1JWz=>HE;FaPr(;s;KY)rp;HwB4>yaV9;Qp; zHo`cU1Ze-GkG<7wJo~BzlW#XucDEwjIrK&v$A)3xvRLZ;@vl@Xr9ibEs_;VV8nQM_ z4Zc2`1v@=^an^P}su?hX;WNKcnc-ACwf7jFNlFLZ%;#v=avEQ3Nrcl+l91~i4*LSe zN;$nTHPtZ2jw}j4ermv=ZY5q@JOV~l18_)P4#X3?DC3GJxXK6N$2U%J;$0TKTXPoe zT`rPIb|>NHbq`|fUJ75Qq=Cu2W5|DLOGEz^V2;O3`s@$DvyoWr@2SHJRc}Cb&WZQyY==R(Q*SrqHdYvwEs`Cl96#qe+;}X1c z{yHj59f#a4E9qmK7Wiu8fO~Xa;*aXf&~oZL8aK_OMZX*{*YGmYZqfsnN%f#Qx&X7& z6k*fqYuNYVDLHqh7dqRxq%>6wpXcb4f4*5z%1Om??{r8S^A`56b3n;7K0cM(3dVE) zqt~MkfbQEGToOGF6BCb-Z8wf$hC(m~>Py#qu`E&65#YV7mn8h97`MrthbEWRptbc3 zbpmZH9k!*r&acML?#JnxBQwx=+GJ{1&4&WN0&od?4(Ww==sQ6_n)n~3dc6xl+f#vZ z*8AeY+@G)^_$7Rctb+3W>mX+AHP~6A4N5xc7_syy~HxkdO##cQ1sT zr!tsgzn&P_7QnEkH@Y$FQ9pVHSv>m=JpGSJ#cPkl@f;Cae1C}EqXV&eK{YzA{s0bk zKk;PMK3vu^8~DFgV_8EkbhHV`s>641(e%TxGe#YPc{k|K!5COL=QP+J4>Y^O!v!!c4(k*;*!06u>%k}n2Qjvrlt$DaMd<4ZhAY|nfc zZ1j?9hgEP%@N)7uO$9YW_{8C5G5+-%BoE(CgXv|?5Vb8IUjJuJGcFjzaOX3+%YQjq z?Q)_=@A6=m|9p5~-ibSgt6{yk2lG}{!9ZIwxQZsA@AA) z!Dhp$I5=(x@;6S)!A|WZb_cV) z-$=(z?(?5-4#8eYlwW+LO8uiOSolg`(uthT7CXt}cDg%1&}L62)%NhyHiv0wH~X~r zGDa2$u`=y;YW`}8DLNAbbD_!927CUH{P7xbBP+!Pp&7-sw4 z%*9nQv?5^u!>_B4@Xs^W3Xw4T>#eSl5$16t>;jwwp7*@&oB*qq?YM~pJ2 zsPYpm_N^`wHVt8wx9u_diXR-;H`4p1o-C$!AS_S5$JF0?DE*SlW7oyf@)_T7e6cQx z8vn$t{F~&hHjWn8KOjGcMNIAUSxA2Q#NU5jgAud+SlGcU^heNRJ_+5| z4#D}PJZ1TJ@X%pXk)E7FWiPhT@3B+a)`*2P-Ebj!mp(@arBHg;L@M^Iql0c|5IR4P zY400}vx^q8`D(?K^=blk9nZk!T~FYW{E#-U=s?+?&FJMP`L$=(Shrb?2Jg_rSPuSt zi42TCI%E3ZRrG7W8nwqAr4PS$P*kivRVVxM4&jbrtKwfi>()5B?bC$X$*CysYhWR| zhhe-#j9bs$O_Ime_(Mq3?@^E0vIR~g@xlgkh5I855*D*1rbZ~ySkBv*`IFq|kMt?T z3KKs+gV_5cR6MPXIfiW{ZKZWWUQ~`+6^8Ja9j7TRWiid0^BEpj+?S_r7jvbeH!e`1F$4I4}*Fu=&ts7t~&NDGCg0wXVhLw@QlI{4Hpa- zehaSaGbr(02t-8=K`mnJLbe*PBxv&YwQV)-YOno6*lWwVg*-~-Z#XeB8a$j(^$b@t?Xhh3DMl zcZGfa)!M5VH~1k%RXbsepxc}H=`rakcZdyk;1kQlsqyO|(wJCD$A`S<%NJzOiZ2_P zcVPkXhuc`z-)vYX-QrdQoN?7^HC8$p!)Qq$@0qid9DW7xo>)iB)+py%j$bMMN*XqG zOeVK!jF4A|Jy%EaOzlA0_x%@bS-qHajrL;Sf3D;+@H&0$sH8(v=J13WGbtm|ovEg} z!S`w#t$sNIB4dl$%(iOUpisk9EnQF|JCR@f_8&z|-_O4N7fo9fZe!VoOTtVp#}Dt< zNBdcM%zv6jkEFezI`Rd{exAS%><%ZdF?sa-To`={UPD)#uA;E&WRSxV8>ZB>koeH& za41*|pNDGH^$ERytH%ZoqGSIz^_aBYx;W#MW;?WQZNtX`Kn{SqtEt z_Ko87If;h~^UF?S-kB6a%dYG3YktKTDcpU3ylEDqZLT4XiV@9s~ ziFC~(j>b3Hlb!hiD&8D{4C7t&cg=Y=p|uGyV>WW_p${omQGw^jbfTeZJ&(4=vnthhmO-z8viYa_lvkOk{8pHkNj^L_<7Gj<*qO#1V zRPI|xGqOh@M#mbO3lk8g9RX$MX#9vci;4}C_=91Uy`>0pOB;W_nZTx(BY`G%;r%t%c=HrKi}hg0}+en@^{x{kpOKLAJswq zLFS~fs*&dY_Ysq>s3Dcz;Nb;7`uwtA7ywSQ^6N^9i~w1~xdYoL(F* zX67|d=unLfeTe=@GSjm7W7ld@+7rrOU-Kqgbv@>l^qod5$-|t*!W>{zh%Ya$L21xQ zWII%$>uwZHn0E#Zp0a%6wwEN;6N8}ULF6A)$JQ*hr*DU*V34aW88{0w*KTQw7`>hs zB{$>nO>L^JxQ52lRb1roZSuNymyI7W30ECWNX;x3{*#10N#apR<(^=lTjXe}*Ck~9 z%fiaAG9K6~Pb-YSvGBgI?! zz{ouf%Pa<9OvDs8)(CTd({`TPbAhaWd-9CWe^n{58lv^5v$9d9+2MkPVA^Og8Ot7}~a+Hb(j&JE(@V4?m*hFM%}a z&|Yp+GLLpNS7MRaX((O%fc@W3Qt>M_KBs#-rTsCZIKy(>@VZ8Z#`)A~G?}6kUee=7 z$*fzWokm*q@Do2(@o19*Ql|OQ!IDIlvwAx&XHMmBSQb3yNz$=~B65w<OCvs*KlAK!(# zC;#yul1)@wo5nK}KhWDbDeTG1R5jjaY=&~DqrXRNzS%L{dIcT=LEfymHzuQd8{ z@e|@bJdqmL!DJ_2B7ghc{G!xql1zNh&#Dh1DYs-S-|`QaU4N2zu`l}ZQ`o60=|jr4ve}rcH>_e{oJc{13la{MBLHvw2t{IM{bn_RqK2W^&-IT5BE?owt-7*+KlDni@CI9 zG&+4bc0F@|SlI~nUgZq!3YpIARErQj?=io#Xef3mwXhP=5x9ADDgV%r1wY+pR{u2@ zQ}0#ruDgG!aJUIOw3*STqnAnSV=?psj40!c70zBPW_l4s`i^s0_Lg{hb8r>T&zMI^ zlH=I^pQ`lj*;T~ue}HKZ3&|!=hf<@2T6_9DjGrONU)!#wjS+A8B!y?#C^m@PW|rW) zvmGteolRc1M>6GKo)pL4BT=~B+&l6x)1K{*rSJQ&O6@jjY&nQ#lOh}o3}9nM-G%ZZ z;q#7~N;!Xra`~_c)UJOGdt4XMkHTxry!!$QRevLL{cT(xF&&Ywo#^DJy%b$?7F91J zn8Z!tUe{!EK>jBAd`e~|pR8dhdIt}dZGc*49EHpIL9;WLkJdj%(?bh*fB7Jk>kp5nI^ z`MzIC*}0kYhG^o*v4fQTS&v^yETE=Ob-d%90o@+q!%R~&$-{3nrEK2-)piG-5d50l zkin-vs-f^{#_aD!e>!WI02%dnh>;Gb+0p5k5patht!agKU?naEH=)L-m|B0zQ@{FP zcsb6+n9_LU9=isa0U|8=&}RITJjV>R~hGw1?T$j&B@u)yV3pvM6W8!dJ zIuE@GFX)?cIgC$tux*AFw0&(3Z41vv+_CTMe$g@7ZQ{@328Pku7!5q~?51{)m0ZeH z68rtXVut#CnpK&Evq#eD`k+~CiRBC^Y*>Tq4c-)@XUq503Av@820Yfygfeozq275H z3ObhJ);iF_vYSwudQ-^%C9&nJY$#!dEF3G>QPz_N#7~_`^;cHWnD+nZc%uzl{Xmtx z1RiJomqX;QyBGtCvxqAU=Mi_x=rp<@PZwxn%sXb;P(_x-+FbW&37*c>BL5#QxRLrp zxVtI%W73=OI8o>#TQ3y4?0ICCyn(Jq?xzbE24hV5CrZfcptHXDv_2t+#|!;}JL_B6 zr$xS)AhU_&{R41mP&7{)b_i!5O`v4kV>DQP0!vZsBat~BpxOdjm{Z5fS_ja=yT`cS zJuy7>3cwwOQfeOihD_G(AgQ20oPMrPVe9<)pY#&cga=dXf(w||W`1>Nwb z6+$n5$&fOZbMzDC>mEhTPqsC?^%(V)pJF#ZR2POc;0 zyE+iL@QW|Il#K~*u0!VOKk9ewq!RyyU)0BG~Z4<)to{_g4eW4$iiNl*uXMI$veUlqT<1&8zP8#_-2MBvLUI!CKEKW9wQ{`LvqywFQsnf*(6FEEzgE zO7x#WI0dNOXH#ddrG;PBg;4Jd^jHfWwuXbGz4kN6wi0Kqe4}$?R?>|Z4+K&%Fq%Oh)b{j?74wlT_G1eo}Wa9nQUrH3?_ovoVb>l}DodXgp4z zU4)dqE&N~gS^7167Fnwurrb;J6uLeZ3w+F2sC+xlC@*8*u1u%-vD=X}YbhSJ2lI^@ z&nenYg};%PgrSHb+pe$$GvqGQ?YYA#^<6F2i86e+ z8E;+yuckzdwLL}E5rfF!*IpLgX#8Y^{O=#gU_%^X&Weba`rUhxQe z>3^Dfx;|p&~2VkAp7-m0xAWD}jvsG>(^i`{wCeO7&=_C&};gPTh z|H|N2E+@$;T$$R2-GsV(8m;EfkTW8MblRezv?QOm`qxtDrVMVRI)oBR^=N;MA5Ht< z%_7~uk%#>?irxH#%pbc`esnU;woRu$xua3=?hT)zJDfUChEZdE8M2?r!|Uo7n7U45 zv${uM^m<_r%Mzy!pS?7;MTe?>Mq%I{O+-kx^JkKM_&cf_4qokadtfelzR!bVdk8ML zU%yqv+k&e9xPva!zO6`spODoknGIdR%^^eKJHOJJ^#tgukKl?G+(K>Xu0vYmPdQAZWodxt_| z8D2ui5ml-5`Zz>(W9!_P|11Y(#l2**y0XyZpSbO^uu1@G9F~|HWX`P+^m8R9cb~$ElMArz0eTv zqzj=j-vb=Fg_Kx+Glct3m!6F|sr2pm(X!_$lv=Pad22gC`=iQ&ARAlf7ZL*@1mt zv>n@?MDdT>4)k@b7E=!%M~)&E{NkH7YHT@1PJ&J~=i(2Vet#LQN)@zbJ9}upxyUZI z{)4=mG%U@ONUp@3S@g%zGfhJ}Ib;o)h+kpx==HgZJ{ zZAjh77dgy^vTOmDdohxv8Y}r9AsHL7Ip_2FYzf?t~!zacysnm?F@1c_VTia_i@28glo)br%G1JFJ6|Xuuf&Bpyq;+9Yv@=w+~mZ zJmZE7SI~@4npB>$2)FF5Xr$XPnmA-Njs)~TxnnyS+#Ctr1~{-ZH-@n}jaq zGgfd&@Lji+3(rSoTK!O#*~tAuddgi=@Cc=6dV`>-8AWkJg}(HL7W4*Jv3wyHyyg8W z82pJOH8(Y~ls2I*g*`lVt0~4l6lDQA3e>-BB47IL5|Slf^Tk&}X+gk1GInnzm-92| z)cV0#DkpfdnW0!~eGe2>h^Xav_|7!}XiaQo!RFslKKvUy>!N@gTi?=+)KOIED#j!i z`w6q>4W#?|A-rH6U;fh>W8H_M{_Q+usC|Wpu`?z~?ZK^|4peV`3M*>=z%kQ?1x82H zkE6p_eW^T^?~!AUL%x#xrc*5Z?+E&tl+Cxg`%qEX89qaEy`W#tp;;QMk#s+vEQCDK z<>3-+(26>g@@O)-{gSqd?c?6tvheRY@$)a|lje%QOjFQ{#Fy;i7TeVE<>nuD0!OGR zLXuiFh5N+p7pgO3h5nWp&mVaom$$pHoZ)@AzG*NYr=<_^DFg7wPK)FwMzX6>;$-9d zk`-){rF?77_bhlyvTBC3S3{Ie>P1pR-CsC8_{c8nzoV4f3OMB$f<$2t^;fp1HmfgO z)BQXQJv-T%zY7pJU6TDW=^}H3G0eJQCD!UKMNxgT;HQ}5vcL{-_k73SOdE>BcaD;^ zaFcPXiUkRz6nq@@nqSs;Mty@ZrhTZU)cP1csc;mX&mGFdw^-wS&L&EI)rcp@)aj7T z2ZRl&RgZU2{u}=97`>ZQTHMRc2zAOA5 zuI}WAt&YP*R{__31#j%1A-(^jNTr*$vxCA;_^p00+o@U%ZOvWe;PHdrms+!xcNuMt zpGs?M(}leAUx+pJ<3(^c$^9D)vlru7&;WN*Oqxv17T&3_yH`bg zg;g3JPuUJ7;T?MTOEz`w7*G28Uxc3Ia2#4VgP&NVNoFw`G~XtX!iQhuHhYBbrHnVa zF8spKJHd2)=X2NzT|lLNWlD=1NGH78$(G6TwllAAQQ%dnwO=KVnJx6NS3~$Ry76QC zX2Q;S8NH5^L1;x4&AOLL&t|D%=gxa5)UQSBA}?xu-^m_}3?#+9^ZCGpASmc$@$_R` zQPnbnw&aM@o8qMyCbEP)ckjWU?L(;9e-zG-e@qi^%d<}_|H5zd93HHxh|9wpnNRXm zbnC377yj-P;uJ)+JrnW$f zO7{EfA2byHO%Zs7jV;vKq!ci@0@A|eG|O^R=v(EqTZ|9A;EjY%ONr3hY{y%rZfpCc!! z@8~{IjykPs@~VAIaVx&l`$;l<#Fl0hR4rlJ+j_7;b|bNCE<*QtGFz4RfP8*^ru^^Y zaC@66Yg1f<{vau8>DfoxJ9Fv3p~J{UuZ{Wd)*_u5X>`TuCk;@!3$By4rVYb7iDE+w?)d(ECF28GRtB4a_@32Fk&?$YjW)|x;HpJpC6SiYp59u6R#C}** z(+DklWSFfX$s=?4!YhxFuX~$TFL_DXSIYSnBSkts?iD}nUqs@Y*U`o2+n`ik!P>g# z(?t0?h#fGbI)7`P;58Zx|G2ZJxl52{d4YYdX@bJuQ?y`+lCU#&vz_+oWVCB1*BCe- zTdv12k-dKC8nl^t^y+}0F=cB;O47m~TbRwKCi1f1LENqHoZCi^ea-}?XE*_0M<4TxrKSn*y zS81xGHl&O^gueY+B({%6^vsL2$ag#$=LVtKHyAk;_UPPKNLd$NP?hIgn&7O5l#h9A zgwGhNp8gm7Qv+_L7t_(gxwOCB1wL0cK&---&CL?}s>_4ev3K*3XA#C#&#fSN?{2u? zsfSj`Bnp|GN*>#_`H<=uN)g|UBBvGf{;(&m8(Y%z-fC|3@E#6fDz7St71&p!F?yTu zeJi^_jXzc*)<^^w&0o{mf}^+)xRQPvAI0@o>+pOrX`NrRF$ zA#i09tT#te)BH#pqI{W*g}ryro!?}(e*{mQeiobxc|4u$x!?e}7(yz$tA^ zUC#u4IcG62SCPJ^S#hf?{ZwpVj?X*iki&#Z(k<}7?5{&8^U80?xP+iFZ#q3lx8~j3 zYU%zaTY6;efSo^va*YE5pN4J2oTvfxbpL*Y4SP$&F9!}%Dsxwv!M6R(uMkmA%7o>n;v z`ZBi2s~LiBuMp_{r$(!Wt>-2}zFjO`fi<|+(=W*_Y^-_}iGCV}6P*ibnBXV&+`5nI z`vzzld6L+Fk8nIo1xpt1WD=P*c$uTgHmy90yrZFXZNyka-PVA3eKPjG>B7o2t(5rV z1k+mDN``%J*v#8!F!{MVMMm|L`8F3eTj0%g2|A*6Tnn_UgpNeid%;5-&L*q;!+9wW zSnZk)Z;4kd-=_lg?*jOy9p8}RDg%WJuCVy_0eW9O$xW(@i?_H#hRlKY$-6Ut+-lb$TCI&P_@M??@(`zn$TXfM;p+T=4J)BoQgv7T|%Z5xEQ` za?23s7H@;`T<RaXx> zDdNR;uQ^Fl36Ghj%0JR*k!JHpwb2~;d-zrrNCRxkdC89_&=P$6NTp^fs#S-`r(tw_ z{&l{g?IpFmoJy+dYPhg_GsKnOK=<-^a!c!bcXr@gW;m^r@cqd6uY+%=RM5uRZyS{%Iu5(Ae zVBk{nuem|DY@Zq3G2D97n{)Rja`7;=fDwg>9!V$Zhve=~jrzq+%#6HQp z6lC}W(IPSMTD+Z>I{Be$z7!J;+eGVwI&n;6J7tc$LDy7e$!&gyz@~nUNz9pP&oZQZ zkrWg~3p!cAG+yX44LUwUm~HYq%zFNTUF%3gx1eWuJ|Y@q^@1M^$R+>pJ%~=Jg}LHr z9{S?}iHSWFnp$-ABTkIv%owPcsyyGoBwQ*~pI`3YidZEo2%;{rqg3a z{d3--ef1PlJw1vyDH_nSAZdQ`tTjzae8sD0O~k;4-~8Xz;R5er693f&fmd~kaVQ;mwpu>aK zvYUG~;AOKI-@Wqb{()l%_i3eD3+_hHIg56~EUQ63RvgT3Us9>{cMFzhNnv}JD$KT9LEpEFnSLHlGmVw-w=4s%)yMD$ zlZAQGO`EnEO@p+B8J{qIIEtHJ^RD<3A?x*>UL6@hHcQGNsrwtPhkcoq%o=)8s?OKl zJ4QF&9cQOTSyQP}C@;A3j@;}|A$D;JUa2kTQjr=Isl1+FH~j&Lqh_cp7QTyiqp{ap z9v*7VNNG&KE4g9hF?|ops)Fco?Rj_xTJtBb-(l6KzpUT$CR$!Qq2W*u^1U_+?BXHR zK0$|lH$Mvh$Piw7@sprCbyNHfX?kCkj9mt@2zh%Gzs!npXx}S@4LO6t|7RsOUnfY+ z<@;=Rz-xXBrXJXV(q$K@Mg2HlMGd2|^9R%Hk+1o@Z^~4tAINq_eWCGI%KTf{NJ#1= z)B8OS=v#y=ce|KLpBF7gKw1HreqF^rCk0W3zALM}P)mkiF0i`~PeEevCWyZXC9ekw zOj2_ijoa_cvR*HMO@9@g4Zet;>t}epz7e(P*zz4mv}np|A@6$i5X79u@>Ru-Xl3r? zEbQ|hO@<%%7K`u^dYX&3R69%D z=8gGgtLeq;$y;{pP2{yl^cigs=R4ioOZ&aNV)L zp}a&B$z7r}b)hEP@oYUEj4CJ5?cy*xz7%#QTTzoU1!_S?aE(30-ORGd?8z$rN6Q^U z-dty5w`}OgxFP(~i}&VYMZ`SeH8lp-ao?`b%@(`)>}M zHoLO^dr1hdNy2#{r=)Sql8q@TLgbX)tb&2sb}Au5y@e7R1y5$;SnB;Sjx7~>+Qxp5 zXz8O*SUp>kZTO{6&u;z2(yA(mO^IjAwM^(rkru)PUhUTNUDQ;rNm^r9ag(AV8YNP~ z&!5{vM^61_ZdMDi==)F>^f4IwQk|KfQlY>xDB~u1D^T9^nMrDkQS!@a6y{<9o?2( zK}Ro&bLrp&%pAKNbDu2|ZpW@eK~Ouj-Mq(ZPZYptuBpHiZ=`$ueWcbn46nlOvx8k@ zk=eYDZ&bO5Be!Ircs&O5Li(v>?Ie=kp+<+aiH@XNaGB=2^uV~C5*^dTApWHW3b zpI5U3r{CMLC-w@IP%(^)SE*C2;I~y>YQdY)f*#%*EO3AWI1}>U(F%ra{-dWb_axqy z6+`1vztXed8&qyX+%Lh3Zt1R~khVN3{Q}gSsKkIhLoi{O8>uHS>L1ew#q>#h*r8Xn zbCd?38dL_A`}Enn~p)!)eSHTU<$aM8C@qknZg+J|JryZP=4U^OqbM65FMmPx zDpBlhvmW(V2z}p?mmxaRn@hx$BVSq#8{J=G)$Z49aikIkev#t!GP(j;u7)cQc>(js zvAojsHM;-&#=$>^^yRlXZP{x`)!mjf{AeAi+#JL#Q+Ggg;!)mmT?b9kvKXbBL=9VY zxMyb{)~vE*>)u6Sbt>m!)jiar7{~2qZ>6V-YOJbjA?0MnK8cM9yX^%$|(&L=i0f#zxCw8%2B@*;-OC$M;ZlZ+AR^0#B zD}l$9i1hd|xcylgy|QuGy=D^q&Jy^w*Gi!t5`m&T5BmHyn#A3Bq^nq%JxG zuGQ&W`(;1rzBV9RJA$h6GurDbjkXhWS+Vj|-10tpfurg#Fq^@H;T4w zYeL`zAJSJC%35wMAQ{*qdFDebKJk%8=5`Xcj)bX3Foi6PW)43uLAt4dtKKk$j;Rv4 zcGuDqe;u0BuTEi)-_fgc4{3q#4t{HNAZ7Yo!t?7V5IiFf*~6b<>GjhB^GAvHX#_B% ztsG*;dzW5_KRg|->1ok!|?r_AFLl+b5AY;%UnC|YiEf|?jvYS^dI_DFG41^F0|@_ z5gWFp4#_+9S-D4m;Jbnw$r<5yZVdMg)ut#zArmnp8Oa4gR$*x{I`;e{U6p5aLqK~R zTJW9HCGS8yvxpL0-oic94^9U^@oOiY;j8!#2iJ^(o3jkFc(96cx}`Djo37xmo?-Qu zIep)EgavHAgOjEQ`9HH9+LC*Xb=H_;yLJl74~@XkLno*#@Expc6Vcw(1kXL^c-k%- zn)h}9d*fe>&}RqvP#b+L5VPVrXGBq&ZA%8{U8#DSDj#Q3P2T<u)1eA2>plQM2jE*KzE$%1t_Jk;LZjxPk#|Be-L{4IO+L zz}5GE!y&Wf^r7<=#a((yA9p^XTV~eWvP2Wd^Y*Zlwvlx7SOeLOilGI4dKBt7ke+Ri zrHN91Fi-G!o)vGV1&_b*Oq;*ZTdI$OuL2k1(^lr*-bLXuMYL#o9(B!@YSSI_r8y8j5_^-&9WDt0R^gDM`xW)?J zr#ymWTrUcqfH7PRZFr7FIHr`@AY|rXNZmcd<>3yoh0@){3N5nMb54 zt3x;KA5vdbBkb?V3eTl7d^PQ%Tid5G7u`}4|M^+y?|R{6{9ZDs68tg;Z{`aTtPm|C zFUiO7A1Ooe#%HL;TF^ijL_wFY%*|)dKGnpkSKEMW{d$(%S6gzE`Asyap_yyQ ze!^}|Z#Mb}LssQC()^W#JA0%sq%nu)&L-yJaRH($>+oW87lqWXVt+1clF{BC?jtf3 z>-HAo*gkti{`$aNiq_)OFGE&Sk_o#)6{u{_frI4=?%jF=59M3AT;pVX{8udOa?9~V zn7M--3(4(=9dDY^MD;J0@RDI)=)%~KwA)}FPMwpbjN3*u;j<@CDsQESo(BY`@li-G z3T34V^UyL;iP{WrVu@xX&m1M}erz~O)UHCkx|?6Du%r9S7tmCJHQW-uh~*pIqdO;~ z`4WQwBtMVB)!6%Vtob=l%?qLA1AV-8vL5Nb)T4>x70JrOmT}A9n4M)n&wPfWz*~)B z{V^;zl_SIY0W`VIm))EhPs@WEg*1)=&5RpF@rzetYTkbG{SX7W(rPv{TbPLwBjIvr zG%ep%f=yIC0 zDzKBZho|c>*zQ?F7WFOoBM|H@8%6o1V&NUPDv){wuQ#mAj~zF7Pm^Os+2IUneAgFx z|My}jHS0L$6^IIK_Yi)%E|+fZDo4;HQ^amlM&PqA^m#=T%@x>&|1Bxw-`^(DPT}wR z@3mt4NJ$jgfvziO^5QRNY5H6*1n=BKcGGTBjLK51Kh(&3rUjB^dpx&r2%u!QDfm&_ zfy4R#2^w<}X2!gwBbkS3v)MnEWq1&&f1Y!ub_4r`JIsATZqz}q9r54u@ZrEwZdB@k zrBOa`(9D3bkoWRD+ko#%Be+4xP)PUwVix;O;luDFL!BCnKf+;SE0s@-LyEO zkSPwDPA+|N6cY87QhXy2?pcP%E%~@r7>bp{I8Kc2z@;tiu+zJX?wi5C6p>QvB7~Zw9l!5U+Q>H9i_o|Hog^0MFZ$u_;T7BYC~&d zhEv}zZnA8eX4!tPaI$XS23JJkZd0wXY}-5IM@{!nT|J4w2U)28TEc-_`c8Rul7 z66=gz6$RAV?7+thI!})Lak$FrV}QX;+U00Uj^789rNVc7NLkMoJQGFm*I>x@ex#+= z7kT%eN@O@cjSuU^bnGaPYb??A{$mV2D(#S*>|TaFgfCe zlQ}EMtnmilksC@&{)|NHaS7^P=EvXqR$;NtTULEE1gG*$F?ak>>hcI<6<1ax@n#I} zG>RZC(Tz3VJ3&6r3h{R566m)r=C*R#xT`Xhy&ffWxXm^Tcc%`L^=@G=2`q=*$n{)o zd;ztKrIGdvL3d8I$L&!3>=KuUmhr|Xd!#GClnh~jZsDlOk>7ik_ui5xoiW< z`M!Z1Y-W;(rUXqtFYGTn-|~EYGg#cw;mb~iVR+XCICvD(6W3Hc6gZ9h+k2R+zBCPJ zo5QNKchQbnJJ^V(I2t_YFoikAqgq6i4mYGAck6i8?6(1BBR;Wy+a{V87tQQLg!kMF z!PAb*h3L@`N-_w=?v!}k=*-5rdwXzd&U;h`eZheV22`LF!a5AaXiF*3d?|`#G^Mzv zeHlu7Fnk{?TG9eE*=JYSRWMB&4QO&UQ5TV<; zP4wldx!~ES;AY2rx_tKotJA#%%>%W}Yj{0!XA62l*ja>sSWj&gztqv7?oSg|zoge0z5GgA z6D@eTgSp)8M)K_UZ05Fu$dIrmtD0T#UP0VM=PP`#2t1F>KC+u0#d{yAB0blYe=@ua z>688}UbwU7eRUQS&pAU0mX36Bcrs2&Os3w)H}E`lHZz~BK*?uD!|&fn8e4B7aGp+* zr1Vo3|6+}B8%u?T>cqB7<@+Q?>XZNDx@sC2R^!-9(}pP z{lbJB1si6f&g~XeH^&Nhk_O|)@zbOiH3gG;!cY#fYjtB&1l^JY0L(R1UTakD6S`Z&xt;k2`258J-qPVl+xF{xRUu0PnzN7g>a z{v=~^kN8cNy>nUW&4*A_ImyHCrDIOyPZC{qkY*;9aC6^kV!OZ5Amv^PA7)CEgg(%h zb{}L6zK6RFN8l=Ch^=RrvJ~~lw6@?EUpP99x*}Cr+17dFzw0y~_um?d>)*l#p9;r3 z#Yr?(@FfR7_NFrhuPAo3C+}XWjvM{1OyybyB|At843%f(pZkyb%|C#Mh4*Q}9bXdf zJWel!JfMHVFMc{9AN5iN*gtbJCQU8lk_*>Usk94!#IC5=dw1-ks946rxzFCGB%ts6-rxQ5|8SW(W}n^5TF+X0?Q$}gGplU2 zv2~U@GB^61m&nrkvZYSj*v>wkaZdRH`)|+l?DRFSn5736vKz~i%MzXJnQ7sV+2K=s z*y_HQnAKNLvY(2sO6~^bvz-_1Ds#tr+ps?;Gkx=ZVg6|A%{-aXjp-cUrEElEeXJ$D zlng!inO(C-FRAp|m+h^RNv___WroXFNV2=@82PX{%!1#*ssR?vbT3`v1j5QGFA5YG9y0rkQn>m?!)&d%6d3Dv#IT$mU-R2h<#R7 z$}EPqWp;MoS(YDhf}J#VE%RdcBW6?kU&^9<`>+d6T1a{vX~tA)vYT1Ac@dM<#xl4PUD$%O;z~ji<ChmTcF0*O*+##!Qz7GG_Di zo=lbV%a{YP-erqFhccIAU$Cxs?lG_C&S2NJY0pNiN@w;mF6`(n$!zfb0DLQLfTZ{O z%FG(qhZ2VtA*`2$4Ljvf9cIR^CuKK+y_lDsmPsy8Xv6$6t6f>%-!80YkLGN*S?^gT z_G>>~HJn+H(o&MO=LVBC31jfb73}>kgW1%c zzU&)!Cy7`3OXlX59%ZG2wlU2Mud)XMz1X^w#xW@eoY_5{3z_EKpRl(+sTsQ`TbUVA zgC!GwQnE8!SxDH=TbW8VUY1Rfx-mujTb8{y_^^Ks4=eji9n97VelMwedMmS5zLxR- zq-C7d3t2y`4>JS0mkpddll?2`p5#rd_Dt*3|FE;h6tcJ5d}Hg&=QFZzcO|_Ho^0h! zp=_7UrBxlCiohw^iaF{LH>`=Dg`8uYLGw!0yoWxEqd?;yp#h1CfZ#4VV ztt)%b*rsg$)|#w$_kYTY@NKTbr(K!#&3>>_J+8({ncua3yc4To^_U>^<$*jC3%-8faWwRc&dkd3-kiz!SUD;bM>Ox%2qN-nHx!49w-#CDoLjlt1gwoSwd zrYs~xQaXAyQxx=zWYpCVCMn=VSq+~@O!}=EWv4&=%ye?x$nKrLlJ$OCEXjX_wdcn5 zB|!&!{Ljx0@5~&?PSjsy4rpq#)oq6{tqUZ~f~Q&R{;v7#!r^CGX4iwV?bSlTus{CW zoNr%t@nkN$wB8J6tg1beV0VC7b@dCr2bf(pOnIMe^3{r&ZMX5qiT_{t{$G8+`2XrV z!v9y_^Zmd2uCBX$b=len3)!S?*O&*>MzSLV7MAUNpUXUaR9|wX^9%OchED8`Cl{EE z?BCdN@p-Ifj5qc}p|<8Dr^dX2@?AOwxu# z=Go)~$ym?ROr^zhnYwdr*o!0Wm}a>R*qcRpOs;in_Fhcevbg#mnY6J?*_u2L=2gZ` z_Q{6J%vr~>GV8rn*fBO$B-%EijMnF6SwfF#%$&c*mYsf=gXXy+AvdAxUoNlxG?HA)62A9r?ZRi&Sbp*Ud4ueUCa(O+OZ4r zZ?H>VIkVfIpJR_Q+t@`br!n`Bq%gM4>zAFs^p=%s~bRXt|etE+6~X--W0tM+W`9mVXEDZeq>PTywPJ;Rv; z57x881Fo>Ay1TMTe%5TnMu)PA=|SwkH(SeW|Hl2-x7(C8sdb5o&bDMc&c9tuRaTC!3TFHhHxP?n1p zuS-)JQ_P~pD>WpIA|*amkrbb%;M{U;l1y&Y>f_V2it-s`#wW_;sY;EaLiw5Tsmd%f zKaCtI;}uHs&crBsGTqm}CPTAfmF%#tdUNh*!XsM2Z-(hQX` zMarj?I^$@(kWQK=(dn$iUHDQ|N`o)* zYt7{sp%vnwL{g9l$y!^G&6a#a#&k&+H+CZPpF zMjB;?G&rJXSVXYYkOBr#NWnIGnLdkjyLmdTRIb$+Rho3AR5?Pak*boUBS39n9w}`H z#EWi zm3oa#jVfa3T|ByJwCy~*Who8qyt;{8N;%C`ZiXpmO8QB9ZJM-IP*`-le^5{>sY0b! z66hga^ItObS17<&V(cs_%_bv7B~Rh&XpqX$M35s_bJ}|h6Hd4-T}OLb=w*H=6w<^j zsg}0dpfsXmlMPH@SX5|mbPN*|)-yOJHijW|PXCDyj2;*j8_Bu-Vp-?5Gc~T_M>P^0cO0`A~pUe4X=(XrMtsYQI{rTiT32C|}Rin+&P;Y`sq>D+J z;5<3$W>XR7p_JnPL(m8>vrzPdAZ*Oj3%SdTM!hOA-Dr}aBXsVGDlL(@=!T%+m;t~v zLnd)~6PGt}xdsOXy9Nga5D!gk0m zVDQ_4db#>|FaaSYe@ra>$5oz)k%lOv4w=$GlKKb7cy{(;$Q$?L z)xHBG)2n1OFgnbidXsk&j9(Hi2ZpHCT%17vKEdJPTs+YqaRoPtZ!oC6UDFipIR~%~ zUqDdll+Z!+X$sE{9?W3qAV4$FQad7xjY_z1V}n6v(r^-0Mnid@;ql-5Axn-Z462bz zCPkTPP|Ed6Bj-{o=&wvo--*CN1eGR9OMZ!nqsSr9J4R3r3B%RE5N`xa7}Tg5p?&iA z!#Yci`Yb|vKusd_WzvAKo)K|kCPn->|8xxxERYEQIW4K+kJIZQ zQ%Hws($f+lWKh!oh)2W|1<`_{ckI2>@7T?FW}JG5^FQy{V*CPOC?4V-i{Dh<-5$S36dJGKQL;bYzfbz`vP#I5<2aH$FPe2%+Ajg<;tsao2#o0JF!ZIX*>MC)?Y zB#$TXjCAH%(W#k0Ip60eH)gtaS401TN{^gfpd+{Dv!_82{_zB4xd|vM{M{>I**C(A z>Gz(=$+B;8QIf>M(yCJBD%Lg#z_J2sTh*?beRYQ#jx}r5u2Z*O{RRyiHEz;W>eQ?` zm$HR(%T_L}+q7-x>gMj@>E-RyzC*`OoqfA>?Pi`c%l_~3yR&cE9_5mg@=X=0SQ9RP zQ++Ddgoc}{Upg z3RFMQPpp`Mq0xnzEYv1$@Sw~Q7paj(nvy1ylWdrBzL>*Q^pq-6zW4e*nntRWXI6|z zJS+N11<~_efB_vWGjOHBc&F5xCMaak^s)?+L>Ool=6lJQcpE5nm=B&xBa_Q9mr}vr zL<>=AU?QUfL~Uy_HLy;>s5H}t+~j0d4}Vz$FPBa@-i2v{r)DdoDyl#DVXF~IUf!kJg48QOHULaK#z zDG5^#Mr1Yg2JDwISTczpNrh<&iKdq6bYvJ3(+SHO7+oT)%U(Pm>&$E%oPqcU0i5Ai z2uM!^nvljzNe#iK3|dTiITOZL9#-Kc_OobFCSimyNKFA$SyEV+U@9;$=^9}?m7I$w z9kT$A?KBFo2aGrz6`GQf_|yWY%ru%MBDEmXIbtR!rBDL|PYvQLX$b)^(L<}F93n*5 z5i6=-dV-M{MOHq6nTC&6AUY=_I(KCtn*=LHyJV-K!@Sancl1piZAu?wxWp zmxT_xjeyw1EJ39Q9X4U!%GqmR=m&hk9)VuuE1C&8MyH?YAVDek(L`P}C|w6CK<)}c z3H*Wpl_3=f*i4!*G(SQ#X)w*JAZCcQzFeuC22l<*G2$|n#vD|c@g4j%rDX1%| zL_2_2NGQ*N3uujrx+ybgJf%Fg$kckJOhITd8HO*&GzEH7AV)%VX|haJT6!8HKn%hZ zMu&{%Y(5HPFk$o}7DKAg3gAH^n#VI|I1^QwtF%yNklBy*V+|<=iY&2&_wgSP4-05~ zI1HFD$m8#O{Z|8FVHQ2CpAfr3fuQjUiZyD%TNtrdt)!Iw^tu$^q$p)O;i-q`6Arjv z!&87KA5S)(0eCv$sfXti(iG!ajVBLJ3LdjUb?xKjdL1#zMg{Z^3Ncx1VbkHm=oEo8 z>j&*ZH-JvfCJXQ=H(Suf6C+^xHtFJlhN>jewK1Xou3la~+%L>u+#g@Rq$IgJ9>J_6 z$bTeDhMSL+Vl?X9$v^ROwF>BuP>yrDIgd|C;XVe$cTvG zz*tyOV3?JL#>Pgud%Ag4vt>B+lxD~P`+#gh(1d9iqbd!YhD>N?B!SeFhb=>M;QsY= zgTkkvW+wi(9Vl03&}xX~i7Zl}vc$jclRHahq3W-D3D%Dzp5~3a& zON9hLd@N?_yOH*z4esvF2J#<6mf141x-l@OX<>*XO(3f%@HJ}XS~bFzO1%`C6(p_! zb@Kh_{OG>2WQJ2A&4jfGWZk{}Faot}&F&zoS zj3TvjMHnd;T2*-^m57W#GO*>wLWoc13N!$n zMAv|v-P*ta{~zOv1H|Ra)zd#6x{qEpk^+jaG(cv6*ri?54%$5kDVL=~CkH|k zbi!&4w}eIfKy9(%G2k6Q9pM#D)xwIbEEACpI^s#_f%Ju_vT@ovQS`~!328BV=Jj|X z1nCGJ@qJz)FkP?aeIVbJsu9SFe}|exOpOAW6W}G~P!d;RDz7mR2u8jY@)tBZs+V!X zP*g!t8iWICC`2M2229A(l#F>>&2&wEO`0~3>NccK!s3BYG!-C%C!_*h3d2MOLXS*8 zxu$_Bx%rUz$_Z3LrosXsqH>9eTp-eq({W%~=ZOiUiB(A|U$J;%@+O@vNN-rkp)?a1 zARxf8A5oQ31h^>M@2^t7)T+DcWShJI2Lue!0(Wj z+p>Vhit|}wTQ`uk0iqNVQX*}DMvYZnVNyl{q2H_E1Enbmi%kTsIo-yflgSCfnfasB zWl%B6+Jrz*8cgntfC$cjZ}O&7EPZl1nJkOGTCAjS$_l4cYO!EzQr~Drpn~(e5uibG z$_ExX3|Kr7{rP#aKwOyA6TO#1E#4Dv(51o7Sb>m>3~bg7YC=rnm?mannUcO5ND_WF zz>HMtF>BxqWISUrM=r_3Sc3CLn4r(A-SPt0iHNDm|_gwTEghHC{8Yu5-+13 zHVo*{d~a zf!L%%g1$hd$G~ACPvWM@k}=3U=MoRHNSc93H7bs+JH$uOL4-&utuzBWc0halbey-2 z2sRgvOwmP1NL4tq?&Y;cDzvd>fXqfPe@is;HjDgSkjZjTArWuu;}WEx;-ED$@D#$z zDF$31wA3t;g_MtLE-8f|lOzy$NTE!Xsz!jEiD?2(vaC#Ac%2@ENZtTRa&DXn-5X&_ z;kq9FusNj}h}D+s7QUw$-H239oS2FvUZyuP6qI+UWa29gDiZ}OUo&&M<10l}4RdeO z<1q6=35C$9UfJ!awxq=WO36 zAeQkTra*;>KkVWlO{gXiQ0bU#zzRf|kVs-uSui3ek{Q0;Ji3Y^n8;cktsjiGbf*)f z6lXN0jRjL+ZpNn~on(3=RySE9wa^hKKb<4W7^QS5iE@ZmvLs;k&S?|Geq{3GabI8? zzB(NDa26CUt^ifMJTT4j%?FZCP0jf<8L0!ME0G*|q9Ud#vkvd*u1oD0Pqwp=el;x) znA?+ut|f~BRB#I>N@}6uYRT75XpM>9xLpvUKUp0h+iVEWL(5g^i2B5ouQFE+aYU%` zx#BQUfxuUX4jI^suP6A9gKLT_oGq481t%>CA41STiG`fPCQlBhd0%SL1YvZfTYYY`Y% zup`kF6+~ABGNFAU_=y&-a?H<Y*@2oyl$a$a1csRyqW@%fSYIC_&; zcd$zq8yTUOKw;sG9m2fDRG_(`jVqPrh)hHZ;RY1rRZaqP1&ghtY;VdILrcwfLLJHA zkZ~d4V2bs9;R1K?JD1&I;KzPzvM2`@A&IfbBs0iWDk?akN1|=KH)aQrHgXkoVt$su z2bgsO?}L5bUm?qjDq?iSvL!d~5DZID!J!idaw~}FUo5GkC`O@AB#VCBB*PpbXaH%L z;EBz{7;huGFsot(1aIDk#TCT?fS8(cE(+s;!Bp1@0c0MlQWBE@#4at3Phl1SYYS#& zTwg(oO0hkRsLI4T&4loFRZ0`)OO?SCr-))h@}`Y1H?N}&#;|ZJ2N8rQK&;8>STW&Z zbDd$<#TYVFkrqp`B;mr$oevVSqoO`TDNALdq9c0Jm4mSF?0x%{KvJfm~8B#;^HtPEfh zxF6FRY<%Ow%_yWIv+#HZ{Gr*3bU{ru5Ugs<xQ}3B|2|q|s6LkRObm%sE5_eF85A4|{AJ|8DUg5cn=Qf_> zcpBhwZTx{&}+izwB>>sH*gD^|tZi{c{5?Kh-$?Vdm@Z zPbwe2?0zDt$yMv8&+lYMzxtT7R=>V|pJ8o&ZE#`upxR-^-oFC@R!*eE8T7FkgVQ&@*?y2-2J7i z+sW%ldJK3lc}=xWJ`LA-vzzyY+QskLa>niGyPG}#{$ojo?Vr+=vayFYh?*2RRzl}@ z-0X-q%#g`Wk}4CN!cPl`QYviMz%EB@DF=+uv0=DXCqjQ@ZHw@>hv$zxy%?%LB~u6@ zt4k0i(AlW*l!l1x%0(1kDfbdZl$w&tN2OuZs*#Re6LgO!7?s*(D!f+6g;R~nPjLma z11ULC#jP0#dnXiWI#1d-r~}FRbOL9Eo#`zniT6`1qq6&GWB`0B#&a^o~=rAEux`>GB8d1|w zfS8?DrqmIf!hD@>s}bV!`&`9%!oF9kf{T$btNl@0c$0NiVlx+_@-QpD3(`RJpkf{< zASB4_?CnXE41hO2hn=RQBZEMo5;fNkC(~NKL71#d`E=Bm8j;8lb5x?H$DPUz2<7O9m%ZMZ!~v_Bajsg9dYVvb7ZnhaIyc}o+=J$%j#6mr4n z0?7jfMkgK4&`|&bYU#v*6J0`&(-SdNei2XxVPvS#1LcGoQC2w%2vrs67A2i&5NOT0 zu0TCu#N#SiUK=7@AgY=ilZ#p;W47-FY8Xx$3H31#fHq5ZP>36SVA~zxjWu{~M*$9= z88M}WIN;2oCU~N9P4G^W8DJmahF$OzdV-HARtp*ig)Ab1z6+yVBQ3ndVBgB)XMHIIqV^9KnQ+37~m#LggvrkeDDIxmGEf);Uc|Bx^kh7e|N$ zmV+0F)b9yM50fuUuUNyP^vLfo;1nlpnE^A>ULe*4&US6C>oH`_kuL6hH>DB4o*OW6 zCIOV;=MbP7cRcY>n8afQg7{@tFPq#tXWYa}mo6NuQ+)Ao&Df}*T8(N{YrH;xYP%Lr zm7It4?bFyVFwnA|gLS<|j`mHW`uf-ST2j>YMByph1bJX{7pb*NkYA9MRLV$~%$nBt z-n|0py$6NOP86K5u2r*2-IdEGI!~Q2qdH@0X_;y0-DUT-DP0_DTGlMSQ0Vyb!C5z* z&d+0N_EfvB-qm}o&d+o4@Url_b^c7_(znMt7%Y_ZEMS_Rbyj%)*TWR z-e^Ef?}q!gOzXx-B$5_Vs}_wM>>B9|f!+&d=GAj>U>u4HitI|>7J6Mff3ki%sa?BA z50AIf=>xp7Crq$hFlS1`;`4`UG_TTX^X6=iya`jP+F97!uU;{wZT|A{&D4nzZZqdh zs2T3xr&@|Eto0~ecvowQjg7U1t?mA8GkUyyc+S1#-C^$|hmKatnJ}qJEeESwU*DeX zu1E-KaqGg_CheNpyM+e!u3FF0wtQ?iX&C zJ#L)j>HU+fbFy=+=FXW^*T=I``xA#xS1l?$Yv0wwuB&dizo$bDNsS|ik5|bXH`&HG zJh=U*cc;5tyKt((r;-z$=FZHiHK1=;{p|7MEshi%vHJS%T#r!yFq=-EHk}pno~;TB z3Yen9=c-@2c)afJ&3T>dEUQ(2nOh)%&FH?}AoKNLkpwg~7DI9btR93eQiFU_ zz=i`r`UNO50Y!PBY1>h>3!0k`2)Kt~UkOMlMwidTkUD_$tiY;`(3Sf^CO#m^P>}9R zG$Ri~q6Yh~24vL2upU9PYJqf0F(d^boglEvJwVhYzyukdt{Bp(VD|-p9~TToIN+ib z!_*aUvl89+32bZ!^1OwixQ6a_0jVoM%9&uX7GSk@81fQ8f(~Tihidtq_hJWtOn`$0LF>|P1b<2mmuq>fXg8u(Yb)j zdLY+NfUH=s#d<)2HQ4hApw9tAR|NRU!LaWJ`F;gli~?yDV5mL7iltz~JPc6^NMbXf zsu<8J1vy^=t1@6KDImlOBEV3K0r3Oha0elVs9G3uMW&);4z^5DIq51Vqh+xcdsx*9ef44d|3YTulW_)dM>Y0ec%EGGoE2n;|wE zL1eao*a#B4uDvQf_QlfSRDl@y9Uv70?_{z(CGp3HWzT90Q_}@=-Cby ze*`hP8!$f#V!#gKDGKn`3DDaD;?V=pnFBG90+BEiukHYp!5X9OB6(d zHAF!UMBp{RZa73=HpK8$z-$p9s}tZU6rycAx?&l+U>sQM0$BATni7R()BySCqbW`x z=f3EsK#;Qoy1)^n)EC`R0yZcF8OXtYQb2+qNK{Hl5M6%{tp5OHQ2{R*C@` zMgewWFuYqZtP(U^3P^DP+Zq4|_;8bh1IVfXb z<1qw>0Bs5A-YCKn7@miK4GD%|D@b}ahA|Lbv<>7N4e~1l$?5=+%Ryp}fW;Lc#q(e{ z86fa5NOChE#2>>P4R#(5_8AA3X8;*B!IrZKJ%CJWfOQ!RPYht?9U$#KNZ<`fSPw{| z&;;_^4A_}~VYdK_t^ms|2OA|~sONy){4wk@kcAGUFToI7fJL_fLLY*y-T__?VaO+d zoE^XpZ^1eVfbt7q$7X=qK(MzXAlO3UBy|FO%K?drfD{Wr&Kt1iY{1TVurCAX-v%<( z10IS2nR-A2J_|H=HrV1mNU#~8FdLA#4DfmpaIg#{>;W?L2Fxu7tb2i_YgjasHiKyK z0ECx746Fcz`-2Sq05{_RllMWw*|u~)A;{kYkTx8mq6S3GVX)*lK*Dgq z!#l9d1;A+upmio-tuI({Jj6r+;PV~e#2@V83D}kc!V4h64g)SPLVRrov{^z_j0emI z0J54x6wQLDNdRPC1iRz|!aX1g-hkcxAZiMUXoGn1ggA5pocIAsw?eFVL1b+PL>~g| zF9)=3g~$njNbCz%@&>FH1CA2_T?WA5Oo*IfuvY*eCK~WyfH=$t4BQ7C1VBV?fjDXo zc9#K~-U4nPLJSb7-vX$d19*yt_<95QegH_>3X$LmsCxhilmTvH01fv5WhD?Hhafhy zAtoIGyIz2pD2TCQh~h+uU?+$LONeA|i1vGcs+xd83E*rv#K265mP9~dGl+uO7$R## zIf3R@18L`?>&}5>&VmFcp!@Pb<}(P3psB$alH*|YAaqeA$cM0DZ;<|B6d8b`EYY-y zDB1?i%?1P%V%R4EQVyfb$6-h%Aic_9RXcR$RFFw!kYsO=?m09g4?_|T_Rj-kRKc(w zL9;4@bdF$13PC!-V3k9FsAGVM>STB@q|?Ffd4L~l3`GRs;uulX05=oSeJ8=j)j*!- zFcc@y-Bm&AAt2>mkp5M`YSl61hX4tLECSGNN5H!NAe{ohNFd0lC*W@?*l-Hi^f*X; z8c04HtXv(icM6bVN5}xAV+9y11T<9zl$`}xp9Ea?0g2`SF0DbXCjePJ!4}g21=e8C zqkuk34BZ*PPcDXiGRXHF;Gz#m>kx)o0#-ZNOn5N=NQ-|3{ZLoknN9Q&jy(mVaR_0)J*`i zOaXfrfE~wyMXH0vdjcM8L5_z3xkZ4lX@Hg)VEbIac5lFLIG|`e*nJ#eKM<^B2{`Hl zm_GrioDQ;|3No|>eAoeQ?7`y#U9BfSB=ssl#B`FhFT2V7drUQ3>pQ z8e+f?tR4&&iUcH70*o^d8J2*sAdr5a%9wyb90UP!j{<6Qz!Ikbfi{575WuPp;O;Eg z)eq2Y0TEOH@h}Y}UkNOB3SvS6mMI`gFW4&rB5yKSGX!ES5Tb7);L-|EGZ~^`3g9;z zFn1Ji5DIn)14K=NxGRF_vj^mi2XsmxuBL*es)8LO!QMR~GK0XX;~_SyL1b2f*oXw& zGhp`+u>BdZW+=o$0L05_z-k1b>=Z=LNkIP@Kqu}7o;4A05DfUUgXqZxiyt8qWx#wm z#DG1-lON#C2GCm>;?V-onFBEp29YoUuv-P1ofZ4Nvtg3*gUJz}Qa<_eCGj@Dr)p%rh`r+w~#}7|?JiHCTkmlu%2OHdB ze8vi7OdqfKK)O&*R+E`P&rCd7g2h3I4ci}C(C4m}5(`&^Zr>*E2S*UfpK==g<2?9H7)yuU>F&?b_8AHEIOMhKJXT zU$CI%L1*XCv<3}wme#9Rxk*ye;%|EW(w8%qS zXU~3~T~y@F_U#*I)vjIDR@JHnMDE)4YG98ZMenw5-PmaIWcl+sbDkK_p4~E5r)#AC z^UrnFTD3a$j}()V6)RqZ_UkwQkcGwg?6G5St%#2P^~j4C|2kg2Y+Tm8`?PIezxFu1 zXwk~eem7uzdMi>t)MSCpK&tcD!=s2@_A9+C1{;QQeMNvy`Q&sn@r< zxlLa6@Zpzwn>Ib|*|lqRZ&%k|$%hUN-#l<&fBO+5et&l9Qv3UvnN5;r&TO&0Qz!cl zSy}Ndr%g+IEt3uG)U)S>dB6OU-)8Py=Ph}8&DOqoGkWUFmtC$}fv0kEoc_3fKWjmg zCKDIO#9YlGLs`Fm&!Ip4)UWE8F~2>Gj4b|r$&yz4!op%2czX63b?sV*SJt4%-+zDf z^Z4=0r8R3Fztp_>>8B${E_u9e-LrtQvIBu_+T<+usCno$I8(Z5yH+O~egb5E5_U>I@Cp~>g>)Esa z^wDS*ek?Bbd6bgUKpz(uE7`eoQ~ijDS$9vI@cLW;!Fl!S2PZGD>HCiz+m=3K#yzdk z*jRP*=6km(Q|=Gjz1!_qTifhk7A{OKYuonZgK^_z_be?B7pz>_dfL>f%{Oh_xTcDa zPqof{`b0PF+&OZ@fdiV0{rg`Tr`2BDb?a8g7qx2#_5Jzh+kbxiSZ3qvJ9X#&{qA$@ zfUPY1)pE_6)WVY|4SRR&P+#A&CGA#P+MtfX!BMq4beOS6t!|ic@Zg4;y?V{O@#@u{ z{uvo}*1UatF#OxMF%yDg9m#D z%%A^w_=O8Q6@`UcbuC*?+3?37DQAWbop-u*>)weTn1l=(H23W7+auQf`|sG?dGi!+ z9zWjq)A8eP+qY<8<65`wvGaTOXshRj2nk~a}D=%CU5LG(s^@5S!u~h^AIk!IX(Y8iw zPFg>mmwk8c=kysp{_I(0)z^21x_c)K>{|cv#K_etspGZ|SKOHL=|%P4x_-a4Z_>hk zsC>Zr<<8AUb&=r0(MwE7|KBgRiVp8!@g)DqiKWl~`sIS(@lHEde0+QMUs>&C_cs2t zaJl;>;^04uT2X5n&P9+qyZoaNsOoaCG&5pr$zD;+xWQXa~)Pws@Yq)9l zzT5l9*0?^zzp2BZYqp0x^Zq#V^8r_5vE%N)w{M=Tn%~Rr*NidBJ#TD|YL4a9D;fRL z_f{Wi)~opLS5J2it!-b0@odw)QJ;_=om7c~V<(Qu&@EduXX=5Sn^s@HaQevmS5NNM zu(kZ^+OlcAuz)T;%Ax(E#*H+nfBSVt-kz=NR$e}Pyx`6AhqtO#W{NN}Ze3b@2D~Zue8a$j~f(szR2A1-5i8 z-AixUyT&h1bGyUHY6V%l@btoF5V^SY!=Fdsml|aZy#|Y%R3&@))L5sYJ|r;~o%Lj` znl9m#+dRYj;BW=!qWh9Lr}^3r?;~yoq_M>n00UXt;Y!Cjb#j;x3or(QE=5mn$rH{> z@>>n)O=#jpa)}15n%tk1t}z{z6AoIKFAs=IF6CDnlrlZG6mW|gdX-ehoo>P1Q)X#- zIfva+$x1yMh4o6h@FlJF0L!@NjFt1 zlvq1TK`r>5TJ%~h>}#M~-3TF&eN+56kcxj7gv+nERW)Jx6uTa1kBMvJ+@_BTucT(! zNs+F{oq&WENM#7oVU5O!E#Df3+a@LyhYFIdh5|uw9fVX^JH(PO*;6X4o8c_IN}gp} zna6$zdQ^(^gSfYnTw@O|f{lnc-eOwDHNA6-qZnX}1Gxy3JN?a&-OV5;LSP*A@WG}m%sjX} z3|WR2fC#jOPeMEt@G0jpT&2z6!-YjoLfKd=1%=aVDbTmvvYXMEMfT00d{mF`PfqR4 zZ12(8T_?{HH}CQ4u;@?5&ZH%a-dF`Bt98zq&ITN^bN2AcWCoM#$;eLqs1ZK=ZwK-l z$5+BXBuwg@&PZM2G&sj>Ft&!X4>^`Byzu_+5AKzeV@j>k@wxG-)7|(= zGU;x7Or?R(3EQ~@zbHMfip?~=b6Kb1Y)Sb)(_JoZzA}1`j6c0+hA|5uDXj1~;K6W# z!9lD1QAlGJcZNa=G^Cpkv>Gua47Uf71X6+t=1F2P=lTyp;sK5Cv-8DiO_CY;HyC7$ z8z4Otg6DsZ&Lw~i0&GW)lXI7C;P3}-Rud{Am4*@6B)O97Z~1~q8m>qwE}qmT5hew* zM}`HJi^3hWCAT^H2lWYyi3y90h>sZ<5$iv|NSSnvChN+?#8B|IiQMRYguaV5CKsgxl=K zOo}svDGfqIXM-!ggkaQav}r^gjLE{8r!*-y&ITqLJ7o#N260yxgo!(<4UB&b6CD(W zpYoojH=grI1c7D!V|ZRQU{?^MSEvZ58Nw9ioJfwXx#=l~S7==#2G)S)1t817c$^xK ziH-ITi@^P<6(i#MMry8z36}=aGwlp+B9z9^quxv;cNi`PVgOCUr`?AUiNM5ZAfyyD zVxT{{JQDxLxc3R`6D);GiK`okPx-_o1nKc_5IL8L4MQYXy1k!?0L@1$b?FLha|ZoG zL(!PO_QnROU=6o#ogTXkBD?3x`H(37*sn+LFk%ADE*K@HFoDr%5^)HLq>;GKkqIIv z8^}FN^bNxw7!`vv=Qy@a=pv2?;s`B-gOcOdNPV(QBOcA>Pj|O5a0Eb(c{46#zm#|- zfj~iWs2OB1kY{ivxsL)Tw>f|ki{j-|Uu>kJyYM;Kh@$EV+@ym7$u4JTN+g>ItyGK( zR8Yy<<1%Z8(`HOm#Sm43YXCW`MGK}p1a%ON5(qaUGBzwQI663liHix2=H8g7$ndbh zfqmor!zq?-q*C#Z4GkAR03rINN# z2cd7g!$=N&jAo2{sh0t{Vk;?jA>+=2=x`iF$1y@uHA0sBp+Z|IO2|sV5K0cj{169d zu|JM%12lUh%`k-p`kTG@V<#4_ex>`E1F>N>8F|S}eu7s_I@u3RZ(qXxGr<`M!NVnu zOp->5*F_Pfk$OianLN$xYjf;D?)jz=0jfbh93rnq%6}2Y_$LaENaPBRx zO6f>4l>~Hfw^@Tzq}(BCS_mc};#pP_k>P#Go^B$h0ZmHWJOOFL1>j_~nHRmOj!c6w zk>$NLE|Gbw zm|jJ8htg3Ol8cu;=@mdd!M9uqbZ;>?6BNVCw}@+?DLF?@7;@}s=MJk03HjT*gjc@T zeh?A3nu+b!oY?~8L})>*o-j`rvN6b#RAL}c2&Q*BBn*e<+^%JTaOpG!G{!ZKey#%Y zS=1fq#9wHec+Ui}yOEvdm>z?4iE)98zZK6oZyVphUe21vZ`TTVR9?SeQ| z$7yv!D$#T&g-k|6VBdi3px5x55jCGNwGQ%o_RF7$5j%pb%MSy=qeN%rwH;g&&J(9p zIN2tKiRAaa4`nq1wxaP*yt~ch#hDz521kt?y+Pt2Lvs3;VWW{W9lCsHCIeJ%8- z8Ui()URB6<55sFNxO|Tf5f0o59r%5Ri7+Nap*7;;;iC+=?~E2KW=RekK$D;cHMwYv z4AT~qxsBMSh?YqYv+*WOvugx+9EFVu+pp<%cm6I-+BBiUKt6iyB{hjbwva0%fs(i# z4JR3K4Hfa>?A+q%GY&F^Gx0E);kykQg2ePZUOKfjL2jrtNu-k*l>(R035RzC<|5LX z-py~~Z^3|TI@W<3qc{;DvK_rUgChYUCu;kn2PQ}tm`WlNfwCa|A`N$Rh?sN<{L>yl zd7=p(V?w?i113`9D>PElXhIkCjnIS{=kbtU!IK!4kw`qfOiMuPscD)XyWo3~=2k8y zDT_ls6Q`C(6f=Ju79e-}Z~_E(3lPgQIVDHTn4GDNhcO}=1urrf)UZj;K)eraswc-Qt;okOr~wLtJ2@0dY75O>L#Ff*(3qv@q)r|luAM#nr9sgFJ(|La7n~=NW^wX#CAx;c1Xl_NW^wXgmze23b|NW3b|nS7+;2! zrB!8{gxpYx($dP(#^kg$IjfqSc9kvLDmCOEE%`@B{uy4`non<0*#`Ze`>`6fMqo$#Sab$6Yi~ArIUP#96J;EG(vpk=%CATZ-Y|ZPQONST_(BdBnqEMlP>F;@39EB7ewz%#_Z!-sMM#%mT#Iu~aGJN03`0q{ zas>f*Tr(Bl-Xjb{h}Yzc6;6{k8AnciqNXO{l_-NIJ%C$CrGr7#65-ku?s&bhJ;5wM zymtc3_gyNwR*z2@k?$Ir@`6S{I@o-&AW(z3A4b<)^C{molzT|8a^uaNDHRUdGK>j^ zq)Ea(6{M!Li%>S^s`P%1iia1;yo6pK!Rr&|=z%l0lAv zh|q_vNtjkbKPVTE%x_>K6)Qt}h5MtoOmLNhvO;u1l5dI(%8HE843d!b8&VtIoI?#a z2odk8q#odP65ZsPp2;hz1m*duJAXu+;y#QH(!do9DVxn6uFB7<}*Y(?EVL0Bw+AQ48j4V);Ra5 z9aBzhg|3Ov2Das1?K>fPvmL%H;ucu3((v>@A|!BM9yv zeK~^5!k{En2z9|sWKulfwyp4u=dVIbHzsxBZFKbZDl#u63<8kgr3Wmk=A21mRb*E| z#wfKWL5G{nE_JItYgf0)<7=dA=k(7nu>@8VgSh=Y0;G&4u}B| z*+lgu#zJyyFEIcz+|7aHqF`c$2MX~7M(-#iH^d-#6$2l;pkd_?yf$s=42nGY5i-cFczbJ_bex~_6H&}u{YR~I|<`)+5b_kFRM?At> z0L_x~s+b`}7AJ*)2=sPET26)5b8@Xb%+M?3pydK#1-Zk^KcQDelIF>r=W#TjCw1Px zBHajWEUy(3g_HY4E?*4t5yywX85n^YT8Zh5HW>HPR{YEnVIgw1-Z+eH?h!Mlj6DNAVEZMY)qhkRB$|5*^Q40?i&{z5h$)a z(b%}0p93pIkD=dP#rJ^mtwL-kfYui!D3;t^Ix%FnLGTM7$ibIxsIkZt1xC4WPP$i^ zb79?zG4sm6hbus*bP3s9of3wNUKmAHGu%r;zo_Y=GwSh4FPA$1vdRYkvOnXQh)0db zh-WCCef9rkuh#pQZ3}l(JT>vy;jzT?31R=>5yngS%^TLE#YO8C6WxBPUo*&{vuxJM zW@WMG@2wYncC((Wj(GXl$t5_WW^t!;NwEjjcF%lvwO(IvJ8IO)9hY-@)V1lk&93h^A#fB1^B0V~IJn^QW&IIr4(ozwLL&P*Bps#optjaSD0ykp>?!p@gH zmefpm+ot*E^G8c2Cb-ng@;~*u)6LzRZ)HulujiXE#eS)}`!7v4AIhkGwN-D=12^0^ zWhM+sh-qcR`x16p&Gil>C%9dV@`|I&pybO*d>?bU0in|zwfXV_tpEE^%&)Vce>Q%QODf#d7vzM8uIcWv&I9+<^Y>ORu-X~9=FpLZ-~9@g4jC$M zF|7V3?U$4tG3xFwwsx+meHq=QY2UAD?dEwb4hkMuWOHEXCadCy2fy|5zEj1edeXMu zZuR@GK3!1Vcp|uSeANp#zg*mNpdc&G)+?dGF=pA7EPXq_GUwlui&ixK^6A+h(?2!y zx_P%wde_>ivTrAvM7ghvuC(Fvj&5EFlbU}E{n;~S{9UH|zWzg&=1aXIFdyxtHOIdyZZ!KxDjPVM_?1$#fgM#=64-99_)p5XLNz2j@I!57cF zW<82oqzwMFbAQ3!qv?fc$iPOtQ@`6cn`u}5cboRYqlglBXpTRNtAd($^< z``oxWZ^5jY8;4Kd@I3$WoYdm;(~IvpAK&CYxa;&?bJM4PdGKL|qOIdw$K82(jY_J` z%pbZTveDrgDYM?3JHO%3>TUI!xw~i7wLe(qn*MxQQ;R9pi}L?|YSiwy@@{>-g%2j5 zy%)K9`>uO6zm4m1WYqQ58!jX*kFQfHV_tSGL(!a!S`D0((hZMuKkvwR9}s)|T>Ia? z*ljxVB7buCpD#A_zY;d4$wpUuXJ+WO;nICfO0!M(cK2W0LD8bg9-ETJv*dAW|GYbJ za^RuNu`z?LFCRQwdUVg<79%WMPFQnpUSdl96E*yM86r-(_T1KMO|74!nZ6Bcw~krV zqkr`)kB%+gKVoG!!~d_D_BJ>)YDbtF>`b%6IPkch3{INr4(e&VHnlk}Af&vbg=ZvVW?vVGZJp4+og@c!g^0yq-C`L?O#^5A7(o4 zZkIJ`ehdBPtbUs&Z`$89W6>Q4>p9mQH%{5+*5ll*rh3P?7Q<8B9^Y;dHR(*w@AY~P z7+Lp*wQ>KV-}g@)-TRsE%aJc}(&=VWppE>(Va1W2^%}jlzFym_W0%0&b@mpv2<)@W zvF{OO8w+M`)a^&UHJ5(6J3KDJ)8R_S`f-cv*NA`9uf0|3@fBCQ)T`0e=8qNw|9L#) z?dLCV=C}K6?@~?I+D&x94|BI@pFOu7YM;BUP4_{Ko;1z)T)A7so?FV+)f+!qcx7_; zZ08e6(U~X1-G*&*ShCl?_OZ<859Y>n{rX3#t8J525g*@nYumU(^_HFMCu9}Yw_epe zdZ%N}kD9U#FOr%bem*aF|HBC?k0n;S;IZje8i`Yu#CUdVg-wt5xk16V?q`w?vckZtJEdQxvC44%FYHYMvjpZ;;Y!P>SES z?QObVezw%}<8G&d`c-2WFU*ghG-lz)d8F%Z1BQ%+nHDox0pwv*JrqR?oWID_Qinb z>@gqNKQ3j4uA^REuhr|Phr1L{YyIR9aIa=}>COkQf}gKjyP|fa`et$D>CXYB0mpaj z8}_ zGwsdG_$xQNG*b`kcxP0C@zv>7ZzuX`yfV(_WLNofY1F6sao1iyZ9o6IZ0#!5n!?I< zN58JK8g%Pa)oizsK}&Odf)7_pzWnXv(kAv7ZyIi%$%}Kyx)Go37nuA|>2u`hwNBlK zFa6}wP0FUddE(T)cCT)mXSDtO;p2}RCfrOJ)a}_vzj1RLwG98@(^@t6qqMgF$4eF? z+)_*Tr!dPe4R2w6X;`V$d)K91ftzGZl-q~SO+tcO%r{0l)$+@m@>k=p^ZIO>wd2=| zw@Y=w?)gbCZT9~)asC0z;$U)Zl#n?L_`_UzGUOzF^3o~>tEJpJ@d=ibU{NbP;u58Js^3ax!;UbD1gk9yQR z6nZPS`tesM|E*HJsg?iAte$>#HF-b1=o{~KzF_g?8He`2RkW|+@00nnbHb7~2`ip{ zy4z4KZ(6wB(SE7deT(yvNtpqZK9Zi=Jp#gvEXi9X+Ylx8Dvonb!TCzr3fdk#$?RPNVhh z`0Z0^!Y#+upKiZc7Jk3s!fL6Sn+|b5AM4mIIjzejWh<+v#kY=EYyD;g%M{J7-g!sW zf2ym#{Qh&&lF>KMRy{W>f5p(+*Yn(K?rX7OaNobO=KlQRN|zDa+&Xv68d#%f{)3j; zuAXkCt2P9rbZI;6SW$SoW1}~2nH>Whhdt>#d)MQA%PL37zx1x>klNt$Kc{M3JK)^y z-pG6Q*TJ&Gj}-m0_y3k#@Ui66&zT8* z5-bx!CVV@;xoM{lRvUveioSNZ>YW-eVfeZxC6oNKH^&cUx*qJGpV4CD(*p|wLgHj@ z1OA#(Iv`^Cx7%+!y*8E>9+*7o@V`kh#_8Km#Jx@5zUTVa5LwF?BXjOHo|0uhEa$M17u6dDW2}7Wu7;A6IKN_0uB%+#VT~!xIkgsJvR{GO}*Tz1;T&YX>ASiKB0M zTwVIOhWvS_=5ucs#`x4JEbRB{^u9Yg_s?85`s<4kjR&5!c~nW8CmGedo2|Zci&3*j z#p@sD?)j~ce*54<4ZiMPdNDID_MaVpe6_wfs@t_A)i?AR`Z}t~r^m7_*K18&-nC|5 z^^@b5wMQcE_dEMnn+_dM9J}q~wdktjc=_zM^75ObcmjYq)%@PjUFoeVtoJh3sAPwB@|@Ru6|B zEV=x7*`mI#!yZh1EpPTJchT;`$ps(WS_H1OZ1Ts-;(RPDcKTp6s` z`|t9WF86(XSLM!I)B9Os-0O?4-H+e+82wSDwdyg@_H#zpx=IFQ26`2 zLBrR#zW4Z#`uD!A-`sQY=Q;mOJ96=9QU5M3t&=W)a&fDfHA@no8JCd$PmukuAEyqz z`0!F%rP_PbO7om$%PbF+C@R%n`r`2N{xiG2Y|v_cn<~C*7N_-S_})q0DKzND&|gT_T!og2kVW?TWn3c{mpfvD#@ve zjcv%HZMO@873c1#2W&hcZFKwN!NGph1~eQixlpw4;r7%q! zPy6{5J=h*GEaZYu&ZgQD7pu+p8~ZMpxBd6sl|%D2XUBKxp&h?Y+P-(=29i&$^sTle z)Rx`qG3QC!EZ=}5aa_;!rr^~`7 z&1|sfK;)&-_knEv%WsziUvJf} z+5ErSeEok|yA!Y+y7+(m({`6cAqh!RDN;!Yp%RKzv`W%)w`tYBX-86o5RxP$p-7UX zO+u6kNh*~}qL74`|9kGG;`x5B>-Ya%KhHJKt9xednKNh3IkVhzKGQLI=g=WR>B$MF ztdG3=`5`Iy=@xo=$+PtQiI%*@xdJ>QJ4PSUs?I+ z%rni0Yg^{2q|}Ok*||@{n}2$&%DD{^I}7jEEBltlomteZpm^fcI`^?1Gd{No8a3#? zJ5=8wUKL>T)IDV76Z>pY5uO?Hzwg%^j5;CtYrypD>~FJul`kw`r9z$At9J< z(|S+(&OpuGMLbRucOp{A_28<TU%TGp0+g~H0|&#UB>Ko$offydR&tFrIhis?C=vI_PE7|U&uy!96M6K zsWI*hdiqiwyQtqy?D4a>8}nfi8&9h9ri6zR^|A=oOWmkjfB5~1zz-eNTfs&>!8dvg zZa=!=_h{*f(0J5!5qW=!1wy5fMfkca|l57fVnNyW{C8##2M= zzNOTSI7jLy0YuiPZWm(t|89aC-jP7v*kQbZj`0Hw?pWb5JKW7>KNd&bvZdmeGvc|U zHi&i^x>dgUR0erDY6WdHKW+PMGB>xM^o zT&$@Ftk`pU+95NjtfR*H; z89%B}zrQelYoqKx>VpMZp&FSA(txKQ!2@oE>`7^QyKp?-9uZua6Q1L}8By!eQ< zP}Y+U)ME(Lt!{*I_p!w!V7&(@Y6Lm4D(W5AgDj7+u!(I z8EbOFf*GS2UEi7gkx(GfXNh|KH0wuyszU>2lc1h49R59t@L*>(V`&66f$_@Y;m0eO zFJohjqwYhyd*UYw{7S~`L_BD=_@KygKz?N@K~CGm1}ooC9N}S1GQVC0@IcNK${t zWu^1*Ox2ugb@y)Gy%Qa;&eiI3tU9qJ#n!FHx^(gk`_7UBWSyk@a!1)M)uBZd0kg?g zgYAB`>ZPkq_9!+_OAC&kf43&}Ma#ppQ?*@G_PXA(RunXne5+hI*IC3UW7z={$!d+- z)C%?2_KHiRE-I26iKd#{^D|c^9Ir1vzW$b$@8*k3`fv8;%ja!*w&~@^zVGfc1IL(G zI|fB4eCvrfD$0^vwB%8LvY%f?z$({Ub*Tmdr;5L*OGc~ey9vC!*PiB?x>a9shOWs} z!=(F0Z92FAIIYc!xtyE*#%$7qHTQShZaX44;dzXq=@IUwJ6e{k=(sUpGwM%{ z>a{&Ja}U*+WLT}<_i~(%g{DmMjUx}Ec8bowLAVItY4uVoC`<`hVqi*h758nOUYI}jedv9nu4SD)ExRwjzJI;H`*Ol-z>cKQ6f20`fkMydI$B2(;GaP8dFk9|1Ckf+Q0 z?6y9rSAYE~z;Ap{UANXcZ)LIUF?Sm zr%f!$YTJ(jRo88U->w7REjejt(!1e^1@jpRAcA5~Qiq_t2aWJox6G zUARSpki^Wb7svL7RJA#UtzNY>u*&*Rpv3)82}#k$n`lFx0lgQmEb^S8_te(>dH!PV zre3A86A8Qm+jqTg6#d%!;%t!O%@m%+U0V{eCVv|9ihRF^&}!VGmC$>mGBW?ylhT%O zjfQ90bH^+%{(SsLP*unI*W)xfw)S?mYmjH9X@g;J!-UFa27Wp<eoS*G+NgO}T_yT2PP5Vo=1U_5Tt1jlV#O6@DWs%%#j zskA=b8&Y34Yo3Eexb;llP@C^dqm;xKFE{)+N_w*F#iF$Z)8})ACkuSzn3EG2 zbt0g-EhYA=OMZeMWcWqo5 zO^ol2qi~*g|^aN6C?DZ62syq=B%py^Oj%s>G@M{=WH&y z@cgdP@%A^yFYePl>_2QA8|BB5o_qF^%JUi{2 z@w&!_d)sVoc1$;MOmKb_xxB`0{%ek^p8V?C3l=NFa>rcsyQX_CXW@&ApruFWwOVo; zj^A$W{xO`sx>Le`l4Z^*ThS)TvtrTDWE^gHUDOE+YPcmSJ>S@JNsZ@bv7RNLmA(T^3IZohw6E?`K08arjpthPn6MmcJ7wrAuz zH9iH;pW(J=Gq=Il-S*<;94cRr%BLzB@LgOmN$`l(l&BwGTM}i?YFW^GF8Nh#zOayd zqA>+wxnJc6yK{xj;!ApEV6DCCvE57OlFI|<=)N*4VL_G`rH7t%w08(SkO<4|d$N3E z)Rc{bpBA)B@r8WQc`Sc*`HrY)|L+F}thRmfGWj0(+Tx93@dA;vtKA2bjCy|F`1vw) za%I5oUbCjn&n$l{zMlG2`C#CW9ZG{M`#7JUTyR40r)Ejkhqj9}ode|pvm5ecl_J6_ zzBV=P%-&vGF+GOQ>V8pS*TZwx8^5I&{KR$c355vB9FO}E`}AJb7pREs?+_7J3V6SK z&V_C=t32>w*uj(~dm6KAFN)kcQhMft z+oX#t%L~dimu#9=AnVxs!j5b6WxpNsH+-D4NTg2nLREhMAb#7rh{L=D(d{GF zgx_76b$R^ky#=cDpV>G2Zlqcs)Lbh%6zI&we|KM&{=W04>6RL6&drYGvbeo`+e*)) zFINXwyM~B2H`98{TwIo(x7z7Zc+ZQ+cW>n9p4n^EOM2tZZ2KvFZ$aUPUzjnJNqUq;;8HW^w0MCe`>#L0CwVu>YINn=Vu*!1cry+9I@9A43 zKHfJzte$E*ku!3d9vRw_-?=to^LSy?1NXjrEsPF76WgUXbm9EXh=;dk6s6Nk&X_LH zALFon)!i?}2)#EHcWY*Gjq`z1?}Ap}Tak5QL;35Q9Yt}rCr*bOi&Y#y>o%Wbz3lqv z`#arBD<_q#&ilNY*F|mLn8@vKJ_;Iig(`-G7QMU|YQV{T@|Ssa&AN*UQ#XmMyytN( zY*MM2f>Pr4veIBr&KyDhh~7}aE5DD$UY#qyP3PqM19{O61}Xh>qT)?6#dUJr112|a zjySdJZtt!wo)_xX)30!^`L>43d)rT*(v@A)d=BZCIGG&Qc;7o);WO8zFXQG|<+l5B zdfWX@xV}5!@Z;CM5x(JmoNOd1bMh;NjP&R7z4tWj=PW39=YPr>o~)oW(nYzr>xJey1l~UwYFyoRvPD$o{V4XYq31Bn+W%RQ73P@?)R&YF5is*H)eHw(earv zucz}BhNK*s{7CgSsg`wou&883&-H0>o5rise+5-KM$Zv^70#hEv5tJVZO3598{yVe zUq`OA+Xs(sJN%Pey5arRrTJrP$+YE1zW! za`m?s?;3x3Cg04fqI-l~`F;=WlO=ylsNCRm)ndo&jgOip-j7`+|7U)6%`vmy!G_IM z?G9TfAC1*suOpD2d%Gawpv4;J+I>qBtd?DRNc0$P-l?UtVK2XWf!9kh2bJJ~ke!^1 zjX&s%F{^jhzf&iq`mG@>$3cb3Dm$amQ`D;sY;y(<)|YQg_w zg;t+nxvQI%&N3q_?czD6Gh*J)Q=O6%BUSiTLa^c3HR-4|j_;O7p4hc!oRz^5MOm90 zDv=TsX1q#?bDg(9d>)-JS4xWRDA*ih#x?zUZ~phBkD3}2EEc5QU#T3qcx`Vp$Nhz8 z#SClTM=n|PNrL;v>8AI&Gkb#yFD9mX)w~YUUvCEIe(IYvLUv)f*ofU zZ671?`9r|!(>%YkZyl%G&ZK{BUN0`SJyclsNnWbHIeW5HEqJiPY#xx39QxsdDSKZug#sL+*#qC`zt9vuo|4r3YN^ zo!2j0J%Kaw=;{x8v#RqVB{&5{b61HU85Hd>6Omo%rY++U^KyT2yPtP(3+<*f|NO6< z`^N-?-|23jy?mmq>XjxZkw@N>ZKm&SzNIcU>qqjm^Fd35iHaC;ZZ7o+V`|#B+mYf8_Y*`~Ctifbnhl~$OD zh1)q#wHCJYdA!?=vxv9Q&se#nr+?MH`48`Hm0sRceQR3SEveBs z0P}YyA9Qzck|C=%=lC8}JRkOBT-y`xJs-FmK5`dcn$p}aDt|iE`&Q2PxtAq2mi7ia zk5Mp6)tIs&cml&mLDziE1i#F67OuKdbfFMDW!9(&(iej}-4`KUq+iLzDHdZ%sQlQTg32 z_uP=*X2g5(>Jsvb)P2Dd{r58_96uT~gQ)3z7ctSj{;5x+XH?SjH$tBIbPKv(*JFZZ)#5|@`N;t zc}Tzhw8?UMhm_%fOWV*6?n)7^m9w<=RBvg#HB%0uB7VQ93|JbWG4N#Gk&UIMxe+zZ zdIECq0-X(StNoD>-yLGSFfpsIXOia)vbOmC?o~A*z5Lt)4?}KyyU91(k3TgbVBrNa zbVuGdv)UP2r{8FWiY%D&^Ybsh$_d{(iRnBwM83IKz2vRAkHc+Mmq`s|2L3K|3hhko zcp~wjPefa%EUfrjrMk#&Rqgbw$&W?%caTjPx*Yu4+cU0D<)`-hd*ZY-w zK^0fh^77&zIlcMs>}`pnXPi6-GRt;;^E)zk36H>+MY~No z3#}y|rf9whOP$nQv-PHT(TQ1(J@01Kb*cR_yz%i$#lz5a+3*ubR}epDTAZj={WF%- z6X@oZqGjtVX81bY*5^6;Am008dKP)sxVI!V>D`?9xfg6TcXZ4o?3(Sz+#g?H{HEEM z)+Be*OZl3_MT&0zwx@w57lzHu4`2YWb}P4c)vJvuZ;Jyck}9R zaOij^PYapp&^z&(ekvb%Wj+BPU*hdM^ zj7s()seGL6` z(Y5CxP6LYXb@Z1cEA3d6EAO>CY`6O0Asx=EeZCvJmh+ty)0CwpXlv!^x_Jr7jVUhQ z{&0VP(w<%J*7}p;Cip45oj3i4XHI;^l$Yn#@~4aJ5{kc)lsa$iwVEyMXSS@VT{EfS z%d5Rc<*)UAw10KicAe5aDR|6-^D}HCytZrgN19AIzN7p}G-siQXVsG%Uu(9x1y~)C zI3IRu&FfaHLXHI`mn;^X|L{dqPttR;g_!(w&w;OG%``oA=~%^=ddk0VIjA3)G@Hl2 z;GBiq3&F-n$-_QVoHzQrWq&Z+tv^OC zj@;|N4h{%+;^>+(+NHp-P#~HFAziE(tE)J@-%B6o=!tq$Hd#eLE`s zQIXSE|ofyKw3OhaR3t1)NpeQZ73 zeA=`x^7fvOws{wFr!6hCY*PMy@T+R}zJ1m@pBLU;GPS6ooc1lm(x&}HH{Ut6w%K}> zFCPautUjwf^_cLv=NlgWSwBViti5PT_x#sUDel_oW7b4A=hebJf>kxVkG^|Kq*sSb)%cxtf#*m=n{(Hb+Cp!&^YfQzYlZ5n*WGL= z9iQ)daq3dOSD*6FWL3S^F%)pn<49Uzp>g{zeTVIM`6sV-iSv@!}IJD&+=7tw@%x4O;>hy#NiCXLX{);W-VLZwqdmhZE5#Ox6-cOS5M*x zuewTxol8?M9g`H&%$uHYq0%yV>xCOLBo$MfP8!98JG#qVf4VHH$k2H4zCSS?_oNGA zY;x`?NLFdPXG-rqa_N%Y>$`@XzuY_he>=RlU36(|@jR6S@28*b8s{CRGqj7Z;>5l7 zxD<{FXMF-{LyKh08}v`i?ArH4_UOkm3xD5J@y~Nz!@WImkF@0Sin51=CdKnJ;%xNq zTYfVw8q@A?uFTLN#De`qjugx;m*1Z>f2hM*r)L!guD|A#M&dGNT zZ{5#agCBFZ%wF_;@m{xIx+r>+!ZfL1j4IBBgR!b>-ZO*#J&h$ z3E9H$moA-lP`>B0b!#2*+wg{2Th?QKNx?|r>j!7@Re9D1`gW4O@)t#ryci6rZ1^wCR@PR+p3* z#fX(pc$IpScY24*>}{-5U&#APadn7BiKT#x?3n07^@qO=C|%;?`5JQcF8S-0`+NJ6 z#LRa0q8_j8xj9w^4T&m8Ctf}KYw^ns^DqCD7W^>uHEs5xW34L$LZx-CX&)&dgcq-O z5APzr2&=AE|8cIwC@{%X-=pA1r$)oFTJw^qlzt-~;2=?PxN$8+Hyqh^R3?;KjRMYeH+LRx#_`1ABr}FhL zM;C8s;@x|FpkRB-`*4jX0<#R>-uVt#W@UgHfpRcRGslj z?a->Ei-!yCkMs3k`IKK(xM$+j$KAO^iIq(IT|1w^nNsvijoK0RS8kN{C-dsQS zi1Pv2j^aWI3EM|@Gy*ty@FMIy+FA0{|yw~6>{tRHxj)mKNmEPE^`Td;0PzVy0zH9Ibd&wLU1Gv7jh_wy1hn-iV6BK0+z z(G!pHyA_>(>yYd{X&T><=l7-0vezsz`(f5RwaVmsX`xcSTancCS-f)5C2K+#SU#L^ z|3Ja}wFRoeKRe3Tn|0-{EzrBN-{9cd?W^Vdmy1e$K9fHqqF->}nya3CH~ny%$o}<4 zhfDQO5g%hOT=sW=c=F_}^E5ZN-PbSSNrvb>k%jNM`No?Rel}jd_+96=FK2J;zSHzw zjq8u~LK|-pSzRtQZvoc^m-`t3SKhX(aaQzgGXFZ5cqUCoL~dUFr#3~^87FV+3;3HV z-wAqEzVgxqKR1j0c8?z@ZLZs|{%qc@l|@$makSh0MoZ4^s!;0ZoOH25Io9=dVQ1Zk z`KR|6(tZU5@EJ;W`c?VtPmAlFU{(>?;_mMpcVUXHdCGT-p9_hGZCUpYd=V7Re?+J6-48m5Y^PQlTeGFaEJI^)3H|m3)bXAS0cn@%>#mkRL9c}y)- zACnR#xJ>F!)skm9eF1tozdt5(Z#z4AtmA@l+U8An_G^ATZNH$a=RxPugR7=bZT1|u zFwAF@CU3&eC%Y_cT?;SMXQ^lK*Kyo<^sJNf>I_rE)QAOvJ#W${Zd;h~yKA-kl)AOQ zc1p%iRINLi@brq)x;&fut;dY3zeYG5|7EW?Hg9sux~((ZTYl^2l^rN?^XxJm@(-kI zZQFC=$n*VHT;nBN2DUdYJx7e)_T`%GRpl4^Lj+=lJai0d?{GIK%FXQ;NIcZ-pjK|#m$v`>uR3N2@%^m>qA;=&1W^$z?`X~zWSO=t#&W!Y?^Yq zW6_5>K?Bzw=6%aw{KTPbOt#Rz;-Gso-VRQCLgOp<*lD!Ta=y7vQys0koGxEpRB&Tl z^$L}P2R$^WKlc-~(U-YblP8sYt9UY9`utkGcP|I6!k4T(|KzCu`N>JUqmQrY*#01> zR3M-C_2qNEH1SiCp+O2!3tpa)mh$W`9LyWq9{HuX-}Pwrw_`(n{J(W4{mEM4YS7v} z@sz&wm&sq;y=JG%mgSrY(5aRlob*6tZ@6_?qFZ41klV9hm%WRHc{Pka3x8@VoOA8H ziALJ`loJ)-)jINf4!d$Vy!j9zGP(JaW_pfQ{%@b4_|Jk|Z4${P^-{|nmcGqfb)nZt zY46VERbO&7>B?s+(N#NEl(*g5U&to@M zNyyfvJxx=37VzuC9+k!?wF?cG@AkVn)VsugFYSKEjj(t9d5(G^H!AL@CWnm+{%~+< zg8tk|+fEwa&UN>7Br3b znzVqvRX^lVLcXG!LBvFN`udvLK1YxFwHypA{xNIT*1%(Vd!KDwCL`A@uqppcaDVtm z+X+|fwgh#%c@onOE2&TLb8R53-w3SdT08SfR`XUXdg;gH^o|dbF*Th}Qx`w8pE7uJ;96xnOre2Rr z{K>A?tzV{MPl>Uflbij{@HQ68*kKp3%isQ5xu zs2@gvDIYgRk4`+J!3d^=j-_~PgBdT0F~Xh-k--Y0!-&z&niCNTT)mj_1V-j&#`-~T z^S>7|+%J&s&X~gNiajcwcs7c9!!Yyd5UNWq!d)ObC!;f=j|cVWho7}4BgoF^iGJ4T z8j0sum_5ev*ov(W6^0ajQ>jOEm>~k$6WI|4scpi8PKboc=)})>5Q+K*HJ-|*|8exr ze@8PPk@{y|^!j)GcSel+&oVuno&Kj3uy@oyOJ$D!PYOK$vsh10*2<|~#f(gF#$#a! z^nq^kjBQ1xumjGsx|}I>{a<#$sAgIxLWFMWDLmFgPplO&R*o{o=yuK6L3nWlYtJ)sW27!pWr@l#X5JEvN5atS8(T2a z3Q& zhVfy}i0pGh)-b<2Ts){J*O;+@@T4X}*RkTFjw*f3C&k#siJG4gUzK_UjtbyCQneT} z4woj@9%RNz8982zn$CPj$iFi%SBJQYROkXE7~x9T6^fA+%)yeG3`ejSd9jUOIbSkFLa1=rbW_cd9Cd^7bW{GH_R1_HmmKZ$^Z4}Ba_4prl z5i4?tHT6&?)rp@9_`zBnGrl;U$z+5%V$C=lvxHG$*|WMb-%^5J;n-QMuVb8xlMR7J zoRKNRflno{S6GKOR;Y)Os>hm{nJfR9k1D2&8b|FuR4>L;l$1p0p6SWgZ$AUuhMMdUf9%rj6fV|AQ{g1>j4-3q zH!~%yLj|knKeJG?y62vrteYs0u^XEULxE$KhxetS3lEj~dRg zzh)e%VAQ;$wu+jIiZJEp?n!6-J@POr^^vtDkQx8b!wv@tDmBdfVNXV=w2?rP!zp0R zgh)!%NfDz}XMT-J&FHepIEIYgOT#6LYK2f`sGx<6(ltDRx#j;EJyJ6Mp4|>l=epo& zch+J?p1x)z15pOh$}s~3up44Vn>^g)V4E3%zgTe?MmGo}o6Bmp{X7wGfVrVQZj2Aq zk&B9O#i$dbV_s4t@o#jvAS#9&BP-BsIk6(CGZ%*WSQT_Q7yiv2R=f9~`Tp5_#`3UF znej{it`fto7?y>MXB27nsphD7v8)Ybu8`ffG71K>Zcr&kl$B|iZ}e_pZ!@a|Q0pH)60+Andj5aX`q#Xp=NsO=jPlFa#erx?sU8MY$SGDn zFh*gHe@9XEe7F$dokCvQ5VjKmH28_F)Q4@uuLD5x?GYu^&3-!;j7PNuM>!{6qh-u(0b|37@6N-Ku{7u&B+gi#m4*bsGs@o&^7{den; zWaiqLa*mq$|6t3Ra}$IF^V=Ni{})@&&HOGS70h;l9oLxdH4=T1RSv0ME$nb{2qw#j z(#1Zhvvt9H$ygmCBy4c`Lv{6GPsHH^XChR)KRk*ViG>yBZX^yNE{@UgF+;tuDi@AJ z%!N}+Wpt-tR1S>Bm3eqE z?6#j36p`wuLa=*ONHF@2Fy5)e=%hh)K^dOLI)!7NLZkh{r5zP=D}a#?cGOz~hkIs> zEQiq_hT0P9(2f?`$ zz9Gz0c3V$ZT=XhOheACzDhlMn|^JVSAZ+JSb3rY z5e_4NABUJ-uNWbgM=per4QR4aJa7bcaYy(qz>Hi(ePZlh)?{>p`+Edq4Z|bZd!BBG zAWAsJq%P9`Gm%OYHIh2Su@~!wm($q$;I)l*jO$w5VsZ5#sF9;*U?*|pY>}FSQRzp| zMlE~PsQ_a!jQx%ZPkmu@Zc?41s632o2A}sqNHp_4U8$Q6)_mTXdl@~<|R8a2-Dcb zb9gq^eJ#d&$EYL)x|JTMS7SYxaEsG%XZGVs=j`%)?MHs{|NMjJhu*2a8nPLBfY=ti| zRAMN`kdNUihExp4FfjV1+S`ttJThPZ!U|4`wv71(n32m3TgKZ6*hO~-T2B`r^kMyL z?9RW&GH=NZmwe`|tdS!f@cuKJ)z6TzU=InZz%#q%v1Vk9!D~KnprQKzu~M*e)Qs#j z4xbnQ{qBKLqj9D;Jo89{$sWbJ$%pFAy6-XSK+D_==HZm_rT}*TNM^&#x(PRuo7CkW z>ynR|aU-d~nKZ&r;xNNJhKxFLGO}P~8EC&ozo(OZqYmc}!}mR?a|+y%LqA0-S~XtZ zggb*&*g~pVram&dgi?8r4w=|=_A6_cb28tK!kh(nO}(h&IZp3c_XDv7>?Kew{O||% zbao_NG`?8(-^VAa(Bhx1i=DL_-dMnHyV=OpNmrM*4^6_i_8*QpoD*`qxcnR^VThE9%CAtvl`k;Es_u zPFVh)jq$pH;ddyru4g3dZ0U{!BVzc-ZPZcIyl~m#L>;B@HccwjI5v>k2iKPQ-URA> z7>t*FP;Y5sUm@cpiy2CmQ4IgRt;gISxcz~X4g6d(QZtw#a7XGc)!+4>UCnq`gR+P7 zaQVjTt67)jPRfW*Y5PA*T`!t*tc{> zCgC7#jnI$Ojb7Z`bQ;-Uc1uB>V6Yd?2#U@AK!s=>{Y4k_2gmJf`V($5|#0 zRp?!gPU5J4IDKQUjWvPsMr!K9B!D$53N5u<>>_4pd@mP#qF(-ngE}k506T6r_W8&- zW@fXmCx#0Jdj#{vA?#1=nTKx_pbfKg8NPSVsC~oR;6=4p|8s?;PODHcM&2JyH4t=G zZ9^l?K22e5+vxgkgZl)C2f@mF=1)_sV7=_^8`b3EM=2l1l?p3+sCJKfLoH#88?ID- z+4sDPUbAvDV1kozs3{9z^RMisA_L{wwIT zHf!hWq3B^_HxfUV6@`}Za#ZTA-&Al7+&ja&RKmroj5#8G*ndULCpe~aEjP30Bp&G! zgm7jd>5ad+rx%f`2RVtuFz+2FAt6>o3J-A-S7E$77oj$zi0m`rB5YvPJ}x2|4#FIm z5W__TiWiac`?-i}7#qulhaHMYfjBN=G3-y|B9tVG$o3Olgzu~(Qay=_D1iykQ?iH@ zJIzJJzyz2AbCU7B*+r!G87?9f%BFG=O|T3`NfnWz=eP(J=_1kv?vN`Y`O>(E#JNZx z)SXvEnw`h`<%`JR3tR->{35ai>OzBySTD?jW(r7eIv0@-!=RXA5m^n@p;`tPaRBCA z<{}EAZYCE&S1KYiVHT9X!bOzBJSepQ>A%WFEQ4my046|t=yDC|QZ6F9VD!QwGChln zxB$7cxrlWtm>;fMjP=5w(Cj+CzXbUNE1>EPF5(j`fLy9YBt3_V(1+1Cxd=Ph0?$IB zTU^8~m{RYjykDaLCeeUN`O@~@1G*bMVvB9yw% zMRdb>sHTPGLT?yfj{ObQr|}T|P{@;qn6?J_2-PXQcnEta=EFlAfR(Ts2K(|5o7ZAL z`tuO}umUE-_COw@45|n55JKyaZ_om^@8%(*po%z+$b{9f4{Fb(5hB`{4x?b01dS+w zU67_zL>kSa5st73o`mv}G=hIU_760Hva@MKE=+*j8<0Ox4LVBE2ya*i)1aC(jp%}D zP+k|?BSRz1pbLzG^{@=}=-B_6tmhq9!PR%aNbZ5k|m%mLuxD6ffhn`3+6V%P{RpxSEW z15AS@P(Tamg5J<*E6M{5gxYIpL_Vy5?NDhg^3?+Q3bmlrIvU{uqu>G94zr-HHjQY6 zneY!3(4i3$+fd)3E-Zj!5@+wrdlOSPQ+O z3#^2Psqvd>L=Mb?O;F8{Mu^*>JVSNZ1MQ)j5siq2vG6)V0+<8C}fHD0s6y}umv_k)$PbQ6NrL1X0Ds+L@VF7G{+%{;Bpb?zrgmMGTU_W$(YPQ(_FahSmcGwD4 z=rm&d4z#y$8LWm@P|Ob73+XTk=D-R#1nZ%eJ?blrg@dpWN;xBc9Z=t3Fbsz6Fcqpe z;`=ZPexk<1KTzHY>vutZKxNnntzg~`)JI4-WBINcxup0J5{~(kTcceQQ#}8N* zg7O5#LXmD51y_2YyhA#a3PXDj)x&ATBiIK;cH(mc$`P!D!B9RD+X1zAqyE8kDCUXr zdru*aqu^mEbs6~$qv3TZpNaO! z8{f}Dy9RZ$QGa0Ab>x>1+Jzff4-A9czDQ>d>K|0SiTr?#w@@FT*liji;D>sVkNpf| zVIEAsgYpNZ3h;e@EDfFjT9={)A~T2?{(xK0#h2nEN>LIjxhvPqNfe}!*1M7o%P%I4F--&Vu<6#;c zfFe9!m8f-7xA4jSz}L z`_PZ$Bb54v^`1t%IhU7cf?D%<3G-y+vjQ&>2CLyQsH(_IWI{rTmnesIkpB#}djT&Y z1qY!GG*IRxvS137O`*;cc!`zJU?DGI1XWac35Byr2h@gj&<2Vv!g^pdtbu({I2G$% zjQL>-41--T2P!S$CAwe~6g!9g2mPU{Dlc&XCc+}v1^LpDA4_=&3z!G9pxQECg7ZA; z3lxP`%dtHd(9S|B$ft&MLl3BT5$*17PQnJN)^HL|nV9b-Cov@($ANlIqWmV(3%|qm z22P^y4z{<2lSnQ?d1>P$bnm17{K9qFBjg{!Mf5*Kdn=9WmMZKoRW72hmRc_tF|7{i z)5Q6BJ=&MGTtw0vjC?>7oc9;UgKNgcMkltHNiaK!;v-&U{TElc`@}rp4-oZ)44Hc6~ z@H(x8?1Qo6N=PkdPC{6?ge<^ytOBfu>tP@CfC5-=8uZ3;mQ5}phhVu#32BAz)j@yQ z3hUvDDJ5hN)PjTyC$Rwv!%a{YnnE=g11;bo=mF2bD0l}ZLT=F#G7Cz;N+<(c;C9## zT_K+Uzgwz=?1Fl8upG>{OcvV@mE@3aC^)x-OozW=9W0-R{DX~<&x4cr z0wo}ydKv@_CwP6yx1gl{&?1InX5Nw7*JCPnJ1qYxi6i_H3b)hh{ zf@07cn!;%43X`B8%!0dM8H|DTFdp{6W03IVB+fx$cnQkFYfuf|ga+^xbcDZQ7`&*6 z{RTHFVfoN(0rneohwX4b9D*02uov!~KzaBPYQbO70?t)Ny5SZW3!`Bgya4lH8LWh@ zumuteQ63--@_8d4pctG8m7plpg5uB&NZKS71$nF4zr-&$`af+KsjE8{Q_UXK`5k-?Fc|V zL3wx?YQq6Yhk@E9IDbPqgO#uzw!<+x$Om`?iUo2KC)VS8aF%Wf84tDfFh9Jw3H3Gz z+hvU9!6XZ$3r223`G!VTD9^!YC!iR7XM^p6)9IKW&bGtyV5U9xJA4W2;qx6R@4Gk& zTW9P~nBaot!d6%fW!$m65KiKTC-MdM!2~$g7t>)D?17v7kguW0Uw@Pn=oo<9xM;` z>_s_-a{I9Ta2ITZyI~)Uh1?O?9w-V`V^B}vV`u<1<52(LH<$#u4j_Gy4^}`C*a8ng zB9fCh358(_l!amkQ9fY?jE3Lh@qL(m2;YO|hmjvqsK-Z;5Af$vq!S7pL%zc`$=H4z z=l`5RdSG)3>JgMn!~TH>VLjY+9{B~GFQ8oQ!G61lb{$5iqrHIXum~2xM%WLBp!6l| zx4o$6Pz{Db1DFNO(Zrdkysmret9{tcKO_1#E{6a1b^@fqf_^ zPy(*ZM!O8PpcT}H-cT3DLb2Ur^#&8mYH&IUE5cG#cF1`n8Fa?Ui z9H4TC`9-2clxC6St za2O3+VJ0*yMtOjoC1^(vaS|F(73x6)7z2Z0AIyS$rARlFge@={_QND7bQs4`CZ6U)$!L0Omu!(bQ8gAzwLiC(Az=iJBlpcRaQu`m%9!YtSTE2-(_NC!-W z0tq-SK0x|mJk*7cpg*jGvG6BMgWeU$Ke+56>g!Q_AF9C?NQW|yFh6vGIj|kJLz~B# z{}?9`0aaijG=L(NIBr2bm;_^B1=Oj9yD3pAH{DG-3401fhcEJ^}9`1lW z&;t^Q$X_T6)1ey7fd;S(hQYN}C|A%QcEJoNdII?mwc)gC97g*LDy%JL1GI!5&;>@py)Xr)!wUEa_CeYgSPt}nNzfN&!9iFLa&3Umrc!95!jDqbj5$5ri zk`=HEwnOo;rQ{%73kA|q51=gUfd+7;Kq=`De@-kVi=c=w(gQoDVEQGjZ)z!-1Wl%6 zIj}^mlvK^Yew|TDT0uSWQZf@N%*1r~1u9)eyDEY0fSE7_cEC#516!cVEUX9GNMd=J zDCdw4EoYaK@vs^eKyhiL`wG?%WuZS*hXixww?Df2p#>~~QP5Jgl&psQ%TW$TfSp(Yv)1X8y%8e%GhZfKRro(7h50l_0m!GSnDJgUt--oI&3>v|7 z=mD!?EF6UCP-Q*J6-?QH@8u(3b&>zD0fs@Vjo7d7H>`*9`pAzvsQ(72C(wBl@(W(w zjQlJ>c{jv($Zd@M3-h4BUDQV?4=0)+Jx~RDKr0vz55PQ_1?yld9E8HASZ*Q8C)9$m z&;@3|1So8V^utQXcMs=1TQDC?u|WR80_#$;3(mDcx{FW`p&B%V2G9o5;ZEoe!(c4b zvPC*zCKM>fdgxd#%(KIKVGGQH{`Oct6mr0RFF`&-GpO!}?Sh(4$TvubJ@6#tF2(X) zN=aQ92_6E1zH}&{(gjZ>Jai37Qqx4n~3rb)lMK?kCFc; zF&&yEqdkN@a1ib~gK}Pp^`1q#;G^@X2eAJt^7#qUeGTOs_CXi8It%p+#@#@E!)+JNst(?+DL8tv2vd=K`1#dbr*@7T|9 z9f|cn<0Kq-%Sbb5&R<5Rz*K=UvJWWn>);hD0qVaSzHv zj)`TYKO8GkMpnX=a0pJAQbwxRq25CeXdqrj7QwTy58BNtBbA=x_ztzU;_GBOcr$&``x@QrL4Df<%b*TOQ=3O-$e^+OBQGE%4>?Kf0~ z*O!-((XbpAKqIv>QsNc%BUFQ}&;U+bQAUPAS(pS>VHV7RLogo-HK4tPQZR8P@(&(f zRYoSjOpP*9^fk)QYUCSiSyM*l!NPTABwr)i2_0-F+_M48htV(##=|n04C`S&?1wc_ z=ndLAC=bcgSoH|Rzrbi>_>g%JJd5MBemcc7zJl;LOFsmFb5jJYUl!cpw?#OdkgNP zKs9I$U7$YM;xmywxp0M^4UlQL4Q74^^*`vWdB z!*bv!*aCyMARpUs+=2#>-yHb{6<{n(hIvqYE6Q6twgVC!xNi+*@mUJ0L1}6_#>+qh ze4ay1$7fkc$7dy|hR>?dAD@@OSf~b5pgPQfTCf6Y!$znJ`=9~jeuwsk`i$jRP@g-o zT~HJ{LV4&$ea3vg&;av=Ksww*O~?3Hn1auTVGc}$6)+h#!ZfIk`7)tDKIgz#SOASM zz8pHjN*E05VLWVuX|NCWz&}tO=~1#kd4#&qgGwKaf;BJ^Ho;8z0T#i2SO>>$!*)VZ z$lZnZ7m7l8C=bn`It+$Jkk1n7f)imd6o>I}9!!HOFb}STmCzV=K^r&(ouSZsoDV`N zm;zN{8PtUa+tH3dbLb82VKnrDNiY~@!9B1Ho`x+j1NOrkkgps02*qF*RDuFls3$NH zn!!})0k%ltZWlWuXyNgDubic0)QGfc}un z2KyHZz!WF~bKrbf4VS@oxEc;ZT`16ldI=?95>$b*wrGE#GPHmzp$FUmqo5H?gqAQ9 z`oIbp0UP0d*as6J_eYd}I`RjK+F^On+aAk>hH3 zZAMe_dB(5HImjEhmnWI=C!ArM^ZYdzd5f302fW~==HVk5{NDX!KVQn2AK^HUFyl67 zIr=jD% zaG0A+dFAWfW4_?+`tdRbe{!GayeFQ2nK*dzUB>-cUf$z;IK&1Yz=Is&GB4&D$5`=+ z+~%{m!~N|0i~nDMd-zt4@|{fiUhd}ycz}ys;HTN-7rDwcZgB7A<~u8%_qj)WF!%A1 zoaPhQ;65JYrCjE@g?r8hceuvgf3;5z^LI>nmiu|*_lt+;ae)uvGB4&DpT<+1ib%a+Wu~!uN{1xWa@RdOhcjqCh1+r0SW?(hHkxx*n|`blx~CtT%u zOXB2<82-cmPGHLZYn&UCPm6<3y3W1t-l*q|+|Rf106)xwY;u{qzwA8xeu2xsAx>U) z#P^$Dyj~ptbWYFV@5mpEAFJmTJjo@V<~8iOk>4M{kYDE@FF579&I|ur{QM3JUh)&~ zmcRTTKM&41r{`8%`g53Ld@lF%vi~PPJm+WT56Dvk?{{E7&vFm<{=z)G>X+^rk8e8%roZxzc$9tTp40QWU+c&Cv~`$skyF3* zbB&k&&U`mHr)NJ$`68ywxu0*~0UqK4?|R1m`PSbX&%gfBcdGZCo;P>g7tZ`iKkoe5 zyXKAlA|Cc~hv%{HrhflBBff&;yx^?$xXwks`LFW84$ty2f3yFa$uDDmkz@Qi_wki~ z7bpMBf}i?7?}GRLhjBNzepf%9$7x>9CjZ8g=l2}xZt>IX+hv`9I?^5E@f#iKE^+*v zBi#-!XLt+0zdkt9&A5*ukW0m8#v5gGiA@NBi(79 z&v{ah==Xl9_coCm)jlbu5f~|Kv^clXOr zBpwdk%{lX?cR$kI83u#r^jyz=Uiy0T@ET6>e|eDk8;*3_yo_gg z*EibtJ$x6q$t|8`Fza1kbWYFRImX9un$KW^lRU`hbD0G<_}Vwi%RSHO`7frt;w|Fl zm0aQ?4|AED{0!S%W?(kKY`_2u?=lk48_7v_TqxXx0eOI_I_myAH@rn=11D|!Jarbl2KV;v05)bl@ zhvbc|5BvFhf8!T@?|2y(c$}-e{G;Mv`{RC|#D0D83He~kS;kAgTYTO%_Wv(_&T@p; zaDt=Pde?j{mw7eUdEsZ=uLsD_XXT4CoaS|$=hLtA&UnW!nD>G1AxC)0H@qvxN9Bpp zG3PbxJ#dhh9G7?AY{UKLo4La)x%)xx{deSn)0_6m8@S5gyXNEN?0K+$+|BcEaDO;JHGdQLOu1*e=NN15|Q zEI7wyeu5=Sp5jm0;cwadujlmi|F?YeVvcc&`*{WDcpVpcifcUgC*t7w>~N5~MvZ60 zeH`HoQx=@!3LD(yA^wCdPXCX%xXiQM*b>jbozrv6pBl$Ua*nTOlaoL5PWW7&?mp7Fopm03H|IF?SND@KH#p2KzKFe#k_V3P72L~z zXT~3Jo?Bexui4_?xXE+>CLeqNca1qW4)XNhy&qn)a-QLIe4&CTzH{}KA9PKXhF2T|6X}o(%9%l*dj-nT#69eaZBIj8w;9^(GpN4phw-{EMtZ?F8`>1cP7<-pPIK|bv6 zN4wi~J$s+%y)feBp!GP<88%t)GhE^hOFrfv^20^;Kgl^Xg` zdmruYd9rijK7NAJeENO#=O#BeJap9GYh+#SPTen#@P79d7e`qzdB9PB{!E^@>nYwD zW9AP$+RfM;KH6=u^ugje0!;f~CSw6x!yi@s+ zN4pD*#>BZY$GQc3tlQ+!Q^moAB}4TU2ifL? z`VOZUJk@^Hhuq7E88gmmZ*ryX&($lvs|oem6BbO_tG(bMwz zt_kD!$uBd`v%y8Sxxx6E#$%H4F@-#E{Jl#1lWP^h& zIKn3Pvc-%gXIOEbZ7#CI7K6#7-F1dM#fWFvbATmdcDRq>^W8@#+-94j&(hA6!KLD5 z!Uj_wWQ!$Bo@Dd_d1Zq=&lV>`HaW-^M_6$$JIvVFFOQ5~C|@i&Fe$DViIXj63|?$s zb(yQ|Odah8&k@f{^k>GHImg)GJ{Fv2lMS|bkR_K{agA+O>~NdGOT9~m?0c^G7%}EB z6OJ?GWL^I<`Kar8vaaW8=InW%^%=6_Aln>ahkF@J+b2WLFycI8E;3<@IoH|XDYkfq zZ3dZfukel;bBgWUKI-x-?c@3K#94NVmGcGV^lMSx2 z;0BxAVv8M??0vboxSMSbvBQMHd+m=Qrxp;xa$?>;Q%{~8D8$Y#Dx2p zbD9k{Snwd5TxN@FELpMQHrw1`_&#~~ckwV{#tAk#&sO34!;(F@aaUM}(Fd%84m<37mHb?3eP$eH$#GVkWScoVoMZ4I_m&}77_nr` zlT3J;DSKXRUWUv$$TmkA9P;ytA@{S%Lu_${B}-O3$>780WyGEt>oH`?LFOD`!M!Y* zvCSC@)TP33H$p+gjc$VQOy_44~bDB-gGg}e|OP*qf!5hT+ zDff*TQ|8xLj|G=l@i5!mWN@wZ7_sM#;$p}KM_6(%D`pIqtzXxF#{H?wpLKs2v1iu$ z+|7(bEI7f6Qw&zb!caFPM*Q&alII248fKn6Sm1>nzz}hrMqx@0aY4Img)M6g#WVm%*3qk0F;B z@o-)L72_J}ImCqfSg=vof7Lr+#EL0<-m0A;gTwA6LmptlC8j*gHhbSD4(?|3HSsa# zJ~p|;77w${?YjNzzFT!W$|PP0d^QOII16G7A&}4*B`Uqd(3ye^J2jkORh6Mu6@D!+|86j zEKWFAws@E&H`!sE@rL{MUhN!b`W@|T@GPrM@A-1;f7d-`&Vy`lnFZHa-C(`sr{c!=?jeb<Qb zfcYu+kxkAr_-}ct>)B!TKkoep)NjcP!~f^~GGWg_dEh8ZrmVQ1=}+bLgU0>L_ka<1 zn6d9l;}|h$d$$ZZ&XhSb&avYD57{>lF!;HAviS>fvf?^hzcfGNZSx-z&#&a4(Qo97 z>F?y{!^Zz!nK{>3{Xssiat?oV9*q9tJI&@<`B>D>MMi)1{bIqxAJzYF_Ikc&K>B3{(oY_Uky1gHFuJ=CHJ#AkFd+N9uvbfK&?ifo> ze#E$;W8DRI?q?qBCh@WE6m#}lzxe>=+6Nu$PMAM_@UiZ+`Ag0-eaNxy65DLE!?SE8 z$GXKQ?B|inj2V7XULJGIpHDIV3CFr;>hhD1b(1CMa>=poLFP|A*4-p&FXs2FylO%TxN$G%%5%?ThBPwO|LPY``P9kgMG)kO(ravaf=P^u*K+F z{W;FYGtJ9#()!Eld4TD2jIYZ~KCS(^;%D$Y`)0!UGsbh8WnKQPaW8OwEMM$=R*Yvq zJB%4miJK|+vwF#~?i%x#AM5V^obqeUSNjJ0Wbh{C>*TQ^epXzzUhD13Y|c5y&x_|B z$GR08+-CDK>$R-&PWxfTgN*03GkKTxFX;E~W8FpO?>W|8|Dtskj&%pWr2YNMUpD@O z^70kueU*Ld7k)%O^vgdgKl%k%J8yP4xoZ87IX7la@v*}}^Rz#1eI}o$Lxec|Nb6O_oer=Km(YAa86O78l#c_4}4_TwwHV`C#L_@>80>azEJm;j!+> z5%d1o`(gW(b&jh4iFv>3UTiscrawE@J%`<&n`4ZAD{qWBQ`d8m9k$r~o$n%BJj3jad2Sr^}SPMwwW^fhxf>w3v95-pzHh1kXww{VUxRe zS%*U`nK0{F?@lr2EE_Bs{L^~(Fhg!KVw+9wx`lZ-z>+cZ8?ATuvB7B;Y%n}$y}Qha zYm8Yj=NUE_oM#>muwu+GSnuv-#Eda#n6qGmODuSp6;HCw)9kS4md4$9y}O$Uhgfog z6{pzdETePRyN4Kag*i9a;1)~nuwq}Iag3PVWW77ioRe(v081_~=(T@_Tw}^p%y@=5 zgIgKL0hWweag55$F#Q4_h-Gm7z*yIdboM(qi z3@&iLneZf2o@T|cUz{9dbQ|+A<^*%*Y;cZczx%?9>+Iat{bO)D_wTmWfIqFY?`B zhii=Q>D@5l88*1c%u z#*|yE*n6SKLP@1Xcc#lwWdOgYXD^Sb@tp9JW4OU!an=MAq77t^#nX~8q#xZ2cAy!NnPPzw-n6t@4Y;lG0bG$buJk63} zY&-`UKG!^qIKhlLbIvh+o_XqemP|79)b;H77xQqCZH_Q|zV91z&alOTC6}07YJW`G zX2o3(FrEX9USJ-^+{>I(Y;cw(53%A3!~O0TBW^L{4s-TB(E8lNlA{b>=o}exnkna* zagj|PW{aEb@HB%L+3&FUxtl46Sa6(8PO{Ad>~Nv3f3cqvY;l9xl?m*F`gk;+29rncIx&8@8_U)4za}vmYiaG zx$grrw(9!#xnHcf!@RKm2hGc2b~wr4{nlrGh5gspNUoCIUxWV9K#xrE!ht1DXc9^ng8qX#d7=GM%M%<{|*{R#vdzJQ2$U7q@ zEI7p`XPJD`_ns+BhD*jXV(&++&tY~r&g@h2&YW{~`5NojWp1#|4m<2!)PAk?nKNN$ zS>73Z+Rq0z*ub!ze&*a$mye61E_0d_A~#E`_2YaCY#VQsooDNI4tz#CVCG(U45W^ht` z4B0z&=O|OQ8T{Bgezft7YEOxS5gQDC;#})`ZrA>gevi@4 zVWwO1$BYYg{r{6U#@u3u{f{-zPn{n#PB7;bOCDs!<+}Z6-bdZe(~R1FzKxrYLo9wS zUu<%k(J$?*Zs#gXwpsBk({1rS&b%CE#f)vvu*3Pf{a3~_=SJPmvvoUnJzo63c5ci# z&YY7hInRoVb^HGsU$=9M!D-{4Aa5LCll$1>G~?g+J}}`5OP*rIGt7SL`?lA79AWl5 zzrLu;Jix{od1Jw~y8idR&viZfo@oDn5HB-MGWnx?*Y#Xx*m16mxWf*|o+R!+iIXJ@ zR$OBIXZL{#x7lR)Wc%SDgTHuJ47r~f3+7y6dRAWQdUhE9)w!nTW5V!n-Vq}fEV#xd ztGfN~zMD_c&aigJ|K4KEjLHAG4@|kr>>tjNId@%Rp056EF=NzoeRqK|n@qS``%l+* zJ50HDsW`aJihVB-$BnM<4m0H>3(m3PO5J|W_1%+oJA3wP=O8Q2vBN`*gX_B`Q=Vj# zJueg=LzWz5aO3N{dzte&By}rA_h+8b!`y%}~#EJ=nn_SESPeM z1vgpoEW_UGy8|yaFJmSgW5H=wJjn2-^2C(eY;pIL`kRTH5i`b|Vaj=CTx65$Z1EI3 z3|=DMn_u7UXT&{BILeGE8{E%|3ygPN@Ap;PH@EA0?y$|iml}Tyd0>mv49}BC<~+#; zPqWQ|m+5~?>#)f=27Tsd#xpD#O`GRd*LTMmagqh+*yJI`=R0R6JXzOs*UOdvSv+iV zhCz6JcbOTtSlrtAzd}1lSX^+u-^Z-|HqM(lx0v+n_wVw`5hl0QuP*aoUA~=uEV(O} z7Y;DEz4K(uX=XfFdk5$JO7nA!<(;nYwpsCPU4K{i=2h~=CAL{HiQL~;i-|1nY>=IrzDAXfJi7n6T+|Jde9HXfk;fO#Hh-z+)HY}h+v@F019 zy>=$dIK>9%SaF4ImhA8(;|I&j8^p;$cDR?}LyTw4Ii_r~rL7jv%|ei{?#}Z zT&&x<&Nfdm8ugyvY(4H_$&?lMv&{nxE;f!KPcdQe7UQ^wO&(&&6;>?S;Yo%M_kJ0( zry*{J%sI${BW!UmD`pH6-y>#h)$KgRl4lq^!aelwW~Llv!Tk&#I`e zGH1m(Mq}n@%ys5G!v=%5>&HE8bCl7et;3iH>UK7nJjQpLP42K{-<)~NUzW8DuX z%$aeHIS;YLk`+&~&C?9ViMrct%Vab3bz~u;MB^+^E~1!%2B$%z_0E*Y(fw{b0^r?=vrB z#?STLVUrDp&-2}?%WN~q^e^m#F&i9X$!WIPsOz6^99ygyUFuyhW%PdiInM9}-T^Zn zVuLGevShH|{jb{@UZI_XY;uIf3yo*RL+o&c>5H5@bDn0wo)4Js#q!JsGnSlZn~Qb( zl=ET4b+&kh6@!E3eTnhRIm&`5gO|!PGcMQltQfw`x*t^LEGsUt&BKhQ<&_zCU1?v8 z+2%e*FPBedT&~+$)$QD2@(S^MNImy4_;>qZ$VE1|$u@fq>7TnFY;lq$bEdC!ub6R_ z6}Q>uPTl@0>wH){N7?2yJ8abTua-CFTxT@nJ+S29RpNS$?>j?gOgYbzhgos6Zhx(D zjJWF~^2QNX%-H4(qu1FVW44&{6dOFl4hI&kdq6&!F=NgdcDPixzux*x*k*&fJ}NH8 ztT@K-4fe~34aPjk^o_=`VtBQFv*Km^Cf^4ZTxIfR`DBBAA2UCP8N9_gFyS0qTxEw_ zj2nKP(KHW-8NStbp)T_v+gxY#Hv4AA{*Sv49A*4=ao1%o*5x^QuFLHCg!SLyJ}~7Z zTU=m=t9AWl;%33VPueGk8NO40=3J=jxyE>29CbbWm+X^c4BsX1Ou5K{>+J9><99o+ zPstDWGI@{p!h$Qz7vzI&_FZG1_u3x|?q|gX=9i0u(fh=~jQ!WzFGm>^^1*}$+29&W zZZmqn{>#R3luhnun+uGtkQY|mX7~Z|d|EslW^hn{HaUL>|NiF(y(?xs%#sz8D}Dd& z=->N1WFEFTc_-~xd2fss#W%o@I;T7PcQCK^bCFroca7!8{d)5*=KrMmm@SF-uKHi& zJHh-~_c79MSss~u#&?j7&-z~7P5p{^*!Y}#exY&Kxz{W{FK-OK;Cpg+@qN)bG5nHv z2mO1CtM|s;@of=N%jC%J&h^_4={NV2H=%hsg;)HyCXAd3ay{ZY`Hs z{-?O^XWnl+Z${s7Zugg0PBPha&)8;fY`*WRXMBTtcG&+f#(&TKVXJaZ%)c)${+;je zq`a{8U-J7v^Zm&F82?y&!{RyR9k9toCjaf;v;2uXKghoR$Ngrq^bi5pAr8*9rxc+t;Yjw+~~OfeyaYQ@9r>T_*n6rd)$8yHI5Y< zH#y$jGp@eZJWOtS+<(_pf3xG=@yDsZ`SEU((XQkE`=oKqncd>J|Nf}V-A~Z}JoSuj zsh&ZfIQGipt&VpOvEb>teE#w7$P<-0&+wnE#}-GPWS;PNcb)OAkNfX?=4Xr91;@KV zs?3zxZNycVxx+@k`lnd;w(8mBF8@Awbi3pJ`@$M3% zyB+uUeOQl^OfEd$U14zdd$E=gYv+NgU{kUj&~Q>x#)QJEc1IF_xElnbCL0$ zT}4DN0HN%68^c%S3lQ%u=mFeLBK(Vq>b_jNBA+)sX@09lOxtA?wET(;5>v}HM^=vVHxpG*A=lX8HVf{s$-Z}pE0-_E9B0Bwb~wl2mGZ=pD~w-de@u9q>8tJUGI4N_`HcOs z!Hn^1?2ic-+2J~a*V-Rj4BqKn*w6fR-ZvXe86WT+V!{QMTxG=#wqEa?>w5Oi8~+CH ziVY?V-zYDP*kFq*ELpNM>zv*to;TSCi#Lm(O=e8qV*gCJ!Vb3?G~|&X``&F{js@9-|)V}8bLT;@Kr;4G_m+9%uGVEQiij2U+===W~t#wN#^ zFL)j5GM;BX8eA6Wy0Re_2VczOj%rE9X7eh z@`KKk70=Z5SGo`Hvu}>D^HpUH?hz zu;LEeOV;^-`8meoQ`TXV1sm5|r>^G~t7YpPG>&^%e%d;$IK%ui)?tGsqt9B0G5bE~ zJXWm3l>6BDocGRx%XR(d<)0aYE6v|>PgrrB`4{bn4W453CH+2Re)hBCDBDaKt-2p| zI~z=RkR{hxv0|IsOusD7L)K@+oWpE<#dn1TbB14aZy2$~Cb!sPhv{MG|6%iRh&dC6 zUvr*}ILqYg^2L-TGoEDd4e$CY{TVXiU|nAGJ+I50V$50Q|KZ-V!A&;5W!y)^!$CHV zI42gIVf(0jv%@te>*8k0-bM3YZ{LhL&fvIv&yWjjbB!HVEKfLxkIEY;hmc z|McFNak2K>;$+S?lkbT4YW+CFjPuNSh7ATE6F>Xe-Z?TxGE7JQ%XW76+Qf ze^>t4;Vgq2+;b*8%#@pK@GP_M+2<$p=blgMSLwfG-tWunr_^(r(GT4pHcmS4Yt;Y9 zy3GFDde>TK%emJ6)cslE&%6t!ZS!8oUs#9jUn+mzzJDbTE$jV8ewhB=ug|{ZJpSP4 z)~fxo`m%NY=$yV{Uw?AHzG~cG%){`n=Kq@Ue{+6cH~#O||E6&}`hUwj|8T!c^*txL z3k+^_!oOd~8=vSdvO4!fcj|ic-1J2E)_ZBC*IXgVX@;vST zDUMs7=q@wsJJAilZJk@4=pJBj{)ukMCgblIA6kdm1?JmS-!G2unukqRTxE3I6WuLl z9KJz6rfhLPOCDfxJLBqht}?y7am*Nh&pf+NbQ_F$kR7fwxP$l^a&M*I9Zz(Z*yc%g zc$&e0{e54*JD=ztV#N)%xy9yPPIUWzATH)?-_>|_c>0INM<=>HCyi(LU)JFuV~#N4 zUZ%``ByP?y=R8XuX2s3Ad^hv`SeYTi3(dobdzo|hDRJHXM0b`g?)h(V4aze+9Q}#@ z7s(rAX8$9Ods>GnHyQ4+&X#@*8FP`@y-sw4|7RVx*u3|NZvRiM!;-;}Jp4@m`^p1z z4z-QDzkIL}+uzT{&$BEaVEtc+Z`iu59&A6qR6pW87(dMV+s2LB537sK!ys`Vex>~p z;%4^96W!?7?!%+xjnSjc&(>qi|G)M#Zhkf%C(hH>WB42S;2@*N%O7KAOgO_P7g=$g z=@ZObmpS-bdy`jusPvfGI-jFZpDJZAH?-^dF#80|9vCQ+Glt# zx4MacSM7v9-+YsvaNmjUG?QnZ=&mv4;Q2T4=V0WA1!tH|p6ITy?pz#^7c0!;lMg`Q`3KUFJy^uW)X+kq-{A%I%A7?q~K&-xEf!axd8A z*}D8{@%1Zng6Yf&f6mu^4#l2+0y(~DxtRbJwxyo|R zJ!8e*JBafg-Zf(;wU;>uCTuX}L6%%&#ftH~^SGma44HC}ZSG}bjO``&gxRO`XUWryu95${>CX|inK8Lm z{@7%T!LoC{(0)0==+ok7%!6!jt#1E}d6_Z2yZROHiUpfYKj-Hyo17f9ug{B%5tmqT ztFCXkU-yt74zbM%7GH3${rxdb&engA3=5WAV#UL3bCVsm8GO;ZWXN6X{yrKGFlNkz zV@z53eaad4Dd+4|et$K~ANqaaJjo_cv&Ej1exEa^^{=>H|2}8#u)~J>;7jtvkbR%^ z`@b16=Cb;P!^$bwlrvV$Ij+9JNfz8z-{cNk%+;5iW5vGf?VpE~JB*ZrRrf_XA3!DJPXPo>tD8D>vA)VtvjjHyJ9ocu2YApmN0(rER!%shoU-S*^*OJcGgNMHQMurta+59P7Dtpzt}9pEtK8-(yCw zi1UmYe9rG%XFpRes?XSB&OPcI9A&|E^-ZSAEuK;?d4?7Dt8eoFI}A=(|Eu1Ca>#z= zh)v~~dz2H7GUclJj2q0Es&8;V3vQ`zvcnb+s4uy|ioMrapS#&%Q+;sQybL*{K4QX{ z8|o8oG3A8%j8n|nQQu(ihV?nCzR7|u?p9xNh!vOAw|STyChCK)d5_8=CzK<$m19mR zCp@d1a#lHG!JNB3FaI21!6o%g9%hTN`jTU;xT(I)Hapy>KKQ!#$&hE&N8I(F&YunS z2@f*mfclIvb1tiIaE%4W)Hk`0EmrDFZnNUF`ZgQva7TUc4ezpLeI8UFahWkA^$CZW za!q~4apjzqa)Xn~1-F%(%#~Z*Q7$>BT(R%l)@Q^HhZ(Gyk0B=+F=xyMQQnugxKLc$h)yT`**u5!dyPId6QzMW#HZK4VKc=NaV&*Odzf zo7QJPTRf${YE&5 zi@R>HKKsm5ahz>VvcsIgx_8Hr1NuiyzGQt)Fk!4d<&<*9G3A`g^3&iN3s!7$n=S6E z*XOKp6$`dGt-e#Y>la+F%#aO6Jjl2%>z8oJxRi(M_3QR}eeTk)!2uSG+2j~oT&~yW zX1zY!_4-_^*XQi_t$$ox4B2MHvy55Q>(}LaeePPdKDX=jdEhtJ=K>2h*<^3%e}{9Y zUY|?mtJwEF=g$H2bQm)@;r!KyOzQPHQLoP_COpiPo6I<@f6g)E8{Ef&o3nZ*YYLmyK(3jV+ey zOOAZc`rOMlGj=$`;6HuG^$S_m>vOwapQqI)oYybqA~Uv_bDa(P!$v&?ck1=o_hsud zR9`YXX?@PH&3SgX$l%+)+xmr!jEgwTm?P>Fj#k!Z%8VP#xy1(e*6VZJxF#p-^_kV{ zb5*~JgZ26xsn_S;dj0Q+t6raZy*}sa^*LX!&;7=yJiv?#%-Ljvi}m_ERIksKdVRL) z^?6F3DxP7RfpH!7GuZUKWyp2?BbN30JjsNo)TcbHobiluUbp*s+NkSUu*dvOhHP<= zC4=w#{?+YYv3}jo4*S&y-_=h!lesZV%@DLd*j249tb_Wr>AXTNg6-O5ewQEqWa zxn#nMqw3pC+2Mrx;CtRVL+)1}@c?7as!v!j<%0T*P3Bxu-{4^uTvgxX23y=zU$V`L zTk6~Fu*0+JgUWa9ht_BBVe4}@V-BcK*!+(DbCnr4m~)E_c33dhzsVuvTTEDTOnt=( z;zcQ~aSeBbvyz4nvSa8+#k}WH)yI!+n!)@1F?y}=`*LzO9L;oN3zSz(| z_sJ0>Ic6*;JRqk$C}*6LbI!{JkH{r+Ry^){&4LY2x!&@O-0`g3b4d<9=6RJvuF4S` zIc6&-+>ldl%Ncj%oV#+tv5)JYd){gP8Ok*yx#5)D@_^iNM(#N$2OFL*Iph&JVkXDT z<%B2Xl&9p3i*nAha=~+Q$z{1>E!S-1h8N|Q8*;}@x#x}?eBARTha7vC{uz8i{|x1X zd*zfo5~&RG_malK?JS3Js^hg@&CAh$ftj+yH{D>?XtbIp)zjJU;^C)7*W%PGe{ z>HKk$ITw`|oR&)_taz9;&kgmqbu;A&Te~x`x z{|s4kiVZ8}EobD8huHIi>%pg;2RY;kMqFgfb4<9VUdmd|xFzSjC>Pvh$!n|_d`AE5 z)oZv{Zn>Ww$KUPzaaImKV_g{XC?hT~=A?QFPs=GQW}J3C=LNao8cS}mVxqieFE>0a zw;bQnKPTC9n!%R(40%kwh==8vC*@?gE~i6g#*#VDvly~^C0FE%>#T=z*Bf?n%j@ho z@mc+IAA`@jPrZ<_9PuDyt`GflUQT(O84Kp@lovcBmt11S>#o;al^eEfxy_Ed>^bos z`~NxT_H*XXh!OX>9`k^lFqTu!$r%sIIgiK%bCx{Cif37KUcH9Pa?6GtkGtM;Lk>Rg z95dwD=k?E!F$?t)PRS`}nDNZeKM%SBL(2Q4Tuimm#k) zVyir6(3wB?GUc}G8TZRMXIU_1$)l{et6t3ox#4NH-1A<~KP$QC1qNTR?yiSilOt|1 z<^k6e_HxScFPJ|knRA*2=hQ2i$Q2K><`LH$9+O+1WXF;{&olU<{Tuq{iX3sBF;5Ns zvy)Svl`~$Kb549w|6F#xCiu~%Pl9qs(&6G`sY45*l}JN@*pG5Gv>n3Kaa~P3uZh$^v^SL!6lYlWyO{?tD%2x z%Pn`=@xstQ_w4BZYtAb}9$>^d##|fv=Mgz&&Wu|_|2!oZ?B$YY<%-L!IsShAvyoeF zu;UJUj(tu4U$-yng$(70({juyIpGXb9%9CfITQ5?o{&o(mMbpGHP5kO&6dZMcf2U~ z++^?#=ZPVMuj`*DhyJ-&PPm^bXPGf&&T{CVN9B?Wta#q_ny2N46D53(Fouj0I1^EjI!yWX;pJDy?BB?jMeZW;2pdJ$VW z<~9=+L;u{BGw%7O{u#000hT;7^v^lD<`Fi`+42-SE~(e^tQ>sXd1c6k5jPlfRlS5e za>}u9>7OBUw#o}m$t7o4@epffY`Cpn%M)_PMfN<$pm#nQa#y{G7v-3nOn8kc_gwVx zkHNR~&%G?TpCu#Z6=&s|DH|ST%LR5kpkB|@a_}AJlOZoK;u>Slsh4m|PT4c#c&~p> zvfvT*N>0la6V^P;hR4`4SFhtqxo64XyUrs+o>CrhMUJ`7gdJ0!Ri5#>oO9wk`sY5D zTvlE&mTMkl!^ZWN^K!@I>{&4Qp8ZxH@{AmDi7{81uw}}fp?_}6Id@rb&v*6Du@CB> zkzDft8_u!i5q1pK>zT{Jb@OJ(vy3>UJm#{Tuwlv#W}H!;b4M;X_C5VGWW_1gJfvR3 z8Mz%YJ7(+$l?UH?Mj{<)Vm&kg-^zua<` z9aHu^%HRjuS1;s(9Pu<`R!n$NdCCiN#x>^LV!=)2C40Hz`1keCNj98j%WLX&Oyr)2 z8T`=sWXRw{&L2<8F-s;q&y*|7xL3WL>vF-4CHK2t@w!}dR&F@)1N}3VJMNQv#te3? zgXU8BW^L~b@dYVa?0@^ zn?EO+b7IZfu8q#fA(t3&l`&f;L%Dh>x8;nx%(>)x z!97;7WW7S<=^U$t;2hCi0$_3XmR?N9G=HD^$l=71MU9WhJ zHCHG6drF>F-g2288}{5_a8vCtq{SYK7&7J*6V5Q@A!f{&^8^bnvgA2dtXcCS8*Z}Y zHFgXhr+@BcFmBuoIm?JCV;*I~1*SaBj1_ZUV8Jz(++xL^HOC*Xe@?RHG&?5jd6>b? zydN0yBqNrLd7cSZm~x#NJLbI3f)hWhf9_+&m^BZw;XGR&XUBp)&oH>TbHtFVjMy^f zHWThL<(`B3XT+QbSa6OdkFa9Sny1+CEL$$KW5b>s3~pin8FK9B^v{qnrJ8_<8-a zmJ9BcOJ0;K?w4zB$_;1bme=HtsoXR0bHm`4&Y2u?uN-kfj=5h>cv?<5D`%|aoT*&! zf?V>bTyagVxga;(l3SjZJN9zV)z|9(R?g`!=$Dg>In9&_GahEaV=Q@+HA^-;&yFkX zxz6y`&M6~aXTpg&?Q$P;#w>V{73W#=I9nF%c!t3q=aeB=8M9@=ZD!nM&ON_qoQzoU z02|J+WyG_Lxy+OeGj6cp4oi;xl5sL*!zp&0Vb4PhZ|i(9;t3{PWXf~Q zS+n3pR@`LGYit?(vUa(b!R?#}hMZ;0lnIYA;{tP@X32^bFR@GkbB5wA1h z#II|Y`5W5t>cFS6w(J6>b( zllK2Nw8y5!IG#e)Dc$htp zF}R!kXULKf&oki)Q?4^-$AZ^ca^lI_=RVeq+3+A+&a>lj_AD6ul>KMOB}QCj!j>7g zS#Xyn_sr{u5gQ(0$2kUfxBm>8GvX;GJj;yBEZDH*1}pBc;n-8O$B;o}{~2kSQY`Wy}R8Jk699GhSfMH5S}r z$(|L*pJqQe$%fNxnXuzw_B_Vmp7x(1OGZ4;m@7=U&Ws&%UT49HBl_h&R*c#3AY0C} z<8k&Z7~ISLGvX3st}%Yu8Jt{+CMcz`wM*zgED=InWj!Ib@H$Yn-sm~ewB zcbIYP8Ro^11*ceYh7}L7X2ymm*m98_&#`CC;NJG1Ig^|Fdw`s0dLQFs!$rpTwV$lG zHMGO)jP@JHGmVSWtT@MxN15EuIsjW#3}$R&HZVkOrc|1JIVsN8Z=?s!4&IV}ed*Nz-Akt43jF%QcL zCx`xdOwPDpdCrq^!D;0sOSxjIyykhiVLi;BD{{yAPwMv(_JbkEZs7MJxvo5B>w3y< zW=w{Em(5Oj!2_H6;T&roVZ%xFT3#Re;n=o*W;{m>ImL)GjCqI&Gp0Pjj1%AYcR>e# zTYo(DCG+E1R$OMohAlVPafdzo+xfloM>@~$54mI>F;|%|^Zl2UvGRjlrSWb6AY z6%Q(}Iek-qKa>eO9%Ijq8~Q!fpRt}pKfL&D^W!EH?z^eqKjrbE9~R7ch6R^ca+MWZ z*4$>pUAElwJLboTJr6K^lykV>I&n^}SUtqwGo7^`a?JdJ{@&`K+;Ha}{vPV1t*4xF z^Pc{GEYHdvqXYiV>SL_0oU_ng%SH|!YyY&DaYHV-b${!?9XU#jBl7oIId;rExL*z* zXaD7dbNa71CAUl;?cdjYe@?w2 z^Wzx7^=zLymqyzmvwx9l7SQVZ3w3|GUP^ed<>X<(3;iVZ6U+ z{Bp)g>)&uj?wQ}scz?QT0FZV2m^Y;|vkW215AHh>ymt!uQUo|MVJa0V7)4WgR zoM*M)aa#_L*jMMfU~pXjykNhhr<<3Ya?yEcI3xF5vA@|foKv}EU_F9o+IKnT%-!|R z({jf`E;8ppu36c?=vm$qa>~Z@(6Ezx*80ny?fm_L_E}rM;5VH!Ip(bOu6RIh8M!|> z>N%2g9&lbd9+$)4GVfu(xG2}0ANv1o>msKNjjv%N_uSN9_B);vxg5NU{*PH_IpGn{ zQ^&o}@%;R*b2!}3Sne4NB*< z!}W}3S@Zm@z0d#9{whzn$MuqP?08Ule8N1G=REjbPRyojIE4qGN1^Kmg7vhs?-=e5gga&*!; zc7Mu==UF$N_x=f9?0qRG+^>GgL~fX?-}8tZ{i)|4w(hH$8(;W0&h-y`KE~5Sea5awf9rl0Oq6$ARvw<#j`kBa za=~%!H{2S^|4x6}&snqOwLANJM1OC;|Ij(%@$ah7g5f_H_Z@HI@3fnj@`_8^?>Hq# zrE~BF>%c^A7&xcJKiX%x<;9yB?>~7?^{!nzx%i+CtOp%U?(>mQ$P3*zCbxI=)dQroSif8;qyz* z$l-sQ_wacI56jVi8P~4%ctQ?dZoP-kyI9I`r9J)SJTKQ=)L+kLD1U|Zw7xkvhH~x< z&nqu0(UR+bten+7tPdkOe2sCNZ^{F5$zAnZ zrbGE_t&{c(9+w+VYd?6M{ge}4bUq878_Jms<;(VSDCc?Y6G>87nz# z?CY-mU?W$Y@Vun&vtDw^CGVr;{nl%^p9|V+xaURM|A6s$J`(Pi3vOADo(JXRqH`!m zAG9w+ITy7be#rYwPFZQMWGS~?&|dgq&-GBwbSP&tl=I9`zNQ~JW;x#F46xR29vc-cOC-=&)Ma67>Atkpz@NZ<(9{t_i)|1$O#MO zIalSHk@fAlIh23I{(a5;+#T-cb z%EQ)kD<>?K=UkL)=E{4Xm!toq@{}ub$z|hfxgiH1bzOPP9XaRPa2`4Sr=Cl$D-S`_!%1a)Q8+OWj&dKqH_m%#09+fLzSKe|#4nJ<(?oW9}&bY*!t1Q^EBfJTT-%M%-k~YfKotRR7$|jQg2$mIYImJj#j-ta+LZE4IAAj%)0>#bDF>o*~Eo zO#hr@%xNY}nDQ_)9%IgvELgJSc~)Fu&2={H*z!6%PW-w4xsSo8yf+#0AS2E*=5Z!0 znDPuWE-~jS3$`q|&5FCMx#yJr8L{O7cAR6+BMd%m{~7WWBc5f zkf#{&EMqP+VZ)Rg%(%mxV}GN6hAcV7iZiTvhz&EgJi+ku#_RL^jN7dLfA;;<&bd&Y za?9sGEzir*7p$AluPZik$20DWzi1s;F#oRa3v**=|4Y`-$Cs2la>)Z<)IZ1nR{6Gd z8_GE;mrRFp9*~1C+ZW|A=j5EHzhIm^D#u@OE`DfUJj&#&#`_(A_mt<9Cp+@@wZ{$R z>DRQQyyb@S^y}972j;=+%)a6Le9zZY+;dvK=A66U^APiITG#9T?kNu{kH2LtH@`~s6ANA(x{+g5D_x09y^rO7yIpd1It3RK|G+b7me9v>CJmnTM_RKl{ zclzTbOHQ+5!kUNK@EBX3WXF;{&oj7goD8|nh#g~IXTpiU*FX0$W6YcfS#X{WPcZnt z_L*>bDCgQx&h4T62i_b1pq%?yaE1*JGx(u%GnDi6P|l^HoEL}kUE>?d=^u&u_u}Ty zh6fn@$hl#{<3l+YhwDGq4l^G9gzF>MS&m&At+KnpCBK(%-Z#25n);;q2A4)-K3}W3 zkKv6kjdq9g$-P_dW6YL^7~bTP-)mORQ$sncp`5Ej`Asj4HivRvAIceiRyn5`j$azh zG38N~EQWHP8_I8XX|ytwb7LrHKa_LN=ak?4lHYT*FI-~FHO9A4{$=y!e)f#NqTa-% zQMO~=+;+~=TV5I+R^D)v$*nGpCY0AKJSWku>3YpQU)AoOOMbsjW;&eX+gutgE3bG# z`_XMLjZP~sx#l?vZgEyKXvuGM7HrsX>TA|vul4nLbH_xE?{sOjQAoO__{0Ir@x_`dx!6T-tCg# zr!#*Z@crwaXXNy!jDrnNc)w6$CU{hTx2{DIa-Zn(F%-#_g+{ibuoSgtuG2M;oTrab5S5+!TjC+wKG z9>>n-x1ArZC~r9F`^4dcjbmt!3#_@R-JZwq>V5nW`{sJdCHHrnbAR+u?f5=%&RTiH zeagcF!}DVtJnQ?w6?c^PEWhQvKg@b5FF5c1mgBBR55F{;WzJA}&A|5`gGbmm*Hdn@ z;;Qj=L-w4+Gum;z;2K+AAJ*xSp3~v`cRb;G&1D8ZV_%dfT=yK742F3zXZ$GVLwU|q z+HW{B%xl*Bf*Fq*U&USX>v_%f;L+L{`sH4q4@8{sbJ3WGTrW5_e4qF+&e_mDYtKda zSnnzIa~>If&X=fnUFI5FPBD3$b@g$w;vu26E3ca(K}CFy}GnD*QR? ztGwns8y;uJMFu~AX>?HgIjt(Tl~e)##tA?*yAbDopn3C`n?x#sh#;8&clA#;6LhhM!kx;SJ`3_t%$J&!}? zzTy5~vra#jx#hVHe%*UUF1h#Nz7O?8`!9!wo%0*`z7H4Vp4&I{zWNROEZ1ztjQ>fL z3$FRTXwObgo=oKhr$+8)V7|?~=Sq&A;`tor_f-2QXWZjGl{`&+$GI$~esoacx6 zJ>CAxDNp&nQO9*TeunnFCmQa^;WMq5Tyfkude-)%$n3w|F=6s7?{!uz7(Cnjm~qVf zdmi-tsO~qdliVD&Kg@s2`C;_i#>axC_35}ge1G_Nyl4EJpk%GQ=ZRtcjyX@tEAF|A z=k#}tUwOtzdBb_-;qSRVd>@}X%3CfgkAGi1ap~5f;e|RZt6U6O%9%CKb7YU*s)fgJm0w;?&A`p zKXg7>G50)_C!8boDjsIdlWe#!ZeDEsJBf}Ha{2=8+)O>ja`;EqUCx=x4JYN`kM$#G z%%Nc%+1>= z|4aAD1!soqTy;JCE9-D`KUd>n*LyD9UcE)zw!AAgTFPd3G2lf z7N@(+DE}wt^;XLN*>l6-jB~_>ODz7y zc^S%IW<77M{9ipcY`DPUtnSJGh^{{U}%tuwf0NBl(WOn8M)zl%N<6qGauy{x7=TG zOzt?%c-g)&XFBfh=`)mr*IREU+-1R|${SX4{08grVEr&2#`i|g%e3*-)=MsUcCT~8 zQ*!nu@2fi*H&^BA&E_-Idy8{^K1m|0P{D-$z(~F1|_m z{~Etsw)Xvk_IOT?K5Cub=I6QGl|9^=Wl}BGRPWQDeSboX5G>(>` z&)1@D?GNSbR*mP&#-p8#Q_91yXkU5wRp(;3&Z$RfXUB6ttS2)$_`2ux1N!GVIsAt6 zWIic3a(bi7qiO%IRl}*r8vl(i zkB%v?c|z`Pa(UFhMSnNFJgSGx3&t0YyI-!E8DGaJQGT<_qcg*L-TdrQp4=;~) ztw(nI%cE;@aEHsIHRDS-`FQ=`@$#t9Ub^?P-@CNlce*@E{r_CaoiF=+OXYXDJenKI zCyh%E?|ONZxIg7_^QgGj`RqCVv)&6oad~vqd^#4xJb%*t&O^aj<2JizGQmq$4ZR_xd^xsUaHvile_xUc6!753a=`T*S4ygo(rrVZX66AVI0gj@pSXy z45Jz2V8OHOxW?p>`e()c&rt7Y^v{}$%pP@lw91axn9p7w9Ww6Z(U(Uj*>IWZV=j-j zm_OFMGUG_pW5tt9A7>uSAMboH`C0q(EaTxk8x{->ng%=W({&|1awQqVxJ1^?8x$FBuOTPQ6yUzid2gc$(26^Jm3= z$WKu3bu#A}{EBsA!PO!Es(Q>AEo+A<^VIoc%ZBlD~)( zF)z-seunWgf2Mh|$h;3OnD4WkZ`NF3_H5^j>2I3XTg{gV)1%%iL*^3m-!gyp4BsaI zw)YQ%-_Z^`t_~hE{y^X?nCA_+dtLMd))UD{jlL8!@_)7vuE&9=li|x<2-vV zGXFE<9x`{C{JHrz+F{1zl;?HGY=`_8-c#?BnK1lI&oxUf4f(H}2WAZ4uYV>C7S&_H zCAQpT`q%1xz_^&OXU^nre4Jp(mK}qO*7t9{hgdLU%aYM)^I*=N4Wkbl&)->J)?8%p z_tu3ecUW=qL;B?$lYelYSaOLSHyM}a{bBubhAodV`bX=-oNEmK$vD@{pD}A@4F1_T znX+Na-65Y*?~-vaW6zSwzo^HOJv&C1jpJqJ!-54{){Oqux-(~ZMLV2hepbC9bA{!< zX^$PFb>sYZ=Ybu|A^(SYu;wmO#ah4vgG7d?Qo9qe_2NsTw=>j zMlZLH|7%>FVZ&n#E9=ONYwQ@b@+;J1&0~yT>0Gd2%a+0a8Q-haW5r|ad6vm}?Xl!8 z!&h7HkGh{3dzP&J+s7BC|DztmCGUrisrMT1R|c=uFB@(!ex2uY!}ylHhuCw0#p}JV zhwE?fo?-q*?R?z4YyGi#llL04w^&Dp7xcI3I`@A@{kK}L&#M16^ZC5_ag)W{?X&vv ziuL}K_2IEC^LmGQe$G7K>AbLK+L_P0+^2rJs+~_8|GV|ank(+h-eWx44c}}1)Nckq zq5sBshW_8@91Z=m9{PX3`KcFwz&fzwe)Y?Xo>${ZKB%7ddzRX-K4gEilYZDaGp=CG zxYVy%m~VDT`|5|6T{rKB3&Z@cXjl8ux~zW7Nc+V{j92~ms{YmM*t7g!`>CI#bzS|Q z$3Ch5|1%DzA2nYFA9L>XTeBVd-*7I}4?pg?QQk0iJ^zGr&ghf&fi2Gt{cq||{rFSP z_ptulG@kO)&b|32pK+gY^vun-+H!s9|Filr&fs(US6*{YdG>kx$gs07*0*7ze*Ojf zsQu`R_QQQG6YUpYGEThp5OJML%8eP7hi z*Nm6p*L^%6GB2{`b*9&h_e;jbLtk((+UGihZ+lL@rXBA2y7BR( z@AIU+{U~pY%j|ph{aZ3;zb#+4kJ{-tqn-5o*6qvM<2mC= zexRQ5)ZAk9L+uUY;y&XEc76OF#>K|ZRXQHhPWB_8&*;DBj{fo=tKZ8U`;I))9(%^$ zmB+4(D)!vaPJV+c{++dP@`Q1uH@q^sp#PTF^`G46%IJV~sJX!?xH8JjyJXGa##cr= zH`WeMYNzLZ^UrT`Wpt3iO|Og+<0`mp9fI*Iqiq&EZJfc)uK0U~GRJP>_cCsN#qa;Q zpL>m?<6+~-ZgFLF#{65JGLB^8%4kaeH5VD(^2+GqFfL96+PRhfv{Ue$^$BlnUdB`M zqJG0YS4QXcTk@Fo2yb)6-yf7&Fud)R(LU{zT+>c)JL9uH1uwGa_%N=}Jcn`d$S|(k zt2c~`Cx&s|!TkN+Wyvk=gm=8+?|(XfoUks@UiGX;#RJ9@-Ra6`(|9Vb7)Nwx>v>(~ z;owPPuZ*s- zVXmEI|CQ0ac4}tUC%T{WK8%Yi!?^CR+;|G^4&&n4VO$Te|HjjDY-nfNxztX>73-5c zPRPB@5#SAF5sB zD44TnGmPtiefzO?2DOtu%)VQnmZfo|55F=>ty9ZG`pq6;Kdn#44Q4aWr}gPrYbSf8 z`Dmx*viDE&GsZcLi~Ef$ew6lDu{6GL_R1(8){E`1UYs4;dGwXhx^_CwS)c4NvT=3H ztw;V?>uX#+SB)!AjNf>A?lGSHar)6t&mHY#k2l`oeaJ=QNq*LIFpP@}!?+H54u^4Z zav0aod2U&7%g^U}j=4YodFyFBJEp|`-aT=huV9x{o8eY-g>cP&+;kO zW2paB^B%5q;>WH(&3PMH=OfmiJ(tugpKcu5OP=95{*mjPSHF7Z@O+tn<{YTkb5XtO zS@wzPvz;sTgWpuHe$8F=(xaXm<-u=xUi4oxW%k?Vqh9zs#_O$1@`U|WFMfgd$gqAa)hqwVdTBrTW97s8aYwy!!Mf-td7*u9 zf6qzds{Ta#OkZSP)}!Z~`>K=HPyO`8_D}ubPxZr^D?|O4c&=C%)`#IsjqAqd!Ja** zZ{m6UGw*M3<6xytNsJm=%a!zCZrlfU)ea(~TZx3FKQ?T>L(++!T! z-+7-88U3+`<&#l|&|3AFHZ>t?n`@06oIpbu_bMBA-)46be z$y|TIe>u{Wy?L6qepkbgc(}>n4dy+JhsWIC zaj*N+H|ody85B2QVQBvGJGATmnwk5< zcN)iVzPV!@Jp=t^@3OyaIj-Mi)p=*lN%u$Z_8hyvprX(uQR%8{jF2Uz3vbH*K_6moGZig&t2n4Tc1bizu}nv;{Wp; zv*J01AJvb~+Y62l>%(N&_m8>H{5u{t?{vd>+46vSCm(mdSo4DW<4<_sxWDAM{)10C zFU&b%937X2@oc((7!OYk>+`AMTrZ`#THvkAZ%2UY9Fg7|Mh7QOK10lsBA~gB!1pPMBB0Il1G; zQ12$Lv*AJYlbf!OwubvSJFLU_`e>XvBQ~5LuHS6k-=8->t`FrmU-$nqnI9+qP`z6i z*W1*a(C(0V?1cKaTpyidaI5uE%aUs^F#lVxkFq~9K5jF+jrI9s<7C6+w#L1nJ_|O? zUuYe9MviW0+;YlVE_iAv=eit+>!V${;*Q*MP7ZEwe;D&TGfuML5muaL%Z9-ntizue z*B#eKGbfE}uX(ZIIYxKV9}6CSv3!^HQSuVw;0dOa`eDfp#&@+|g?;8M!=G3m9Un3) zCO>JN*l_iw%J(@Jf95)uUuNAo^0pLtH(Xd#yMr5 zhs;g6xVPuzzukWy_1|QEyfEbZs^|WMt=zMIqjB%I-v6VW``Mq`{r5KxIedVA-k_W- zayD&$UvE4QwC+pRnK^?8X`elJhwHI@eU0l6@!T?hsC{E~!1JU3_F>j%nAgLtGc#_p zc!YEL0sA)N9K6o;M`~a0c|;B#rT&Mt!_#s*>zsX1y+@nZQ2v;8KhKsqZ5_hLTEAgE zm>GAP7zcYUvU!~OGkd&qZl3AS(s~33trPYx-6k8yHNj-Ozj)}!T~3)b~l z)<^qUaF!M4*>H`~uiAh27d-V=^GTgUhP=Rd$lfCZ1oNzThVjOWSrhxPpWsATyR^I`r}_1~#IF0^#%**=~O>%b)@ziHp! zYh0Wk_Uov9V#!VRJZznl-?G1~+3PR*ZR>N9zq9WDFL6H)4*8gNF3UVB$G_|OQC{=3 zT>qYSoZI;K&3`CAu07+eIj-IK4~%zck0;jk&+`nP<2qCBFyq)q_+0D5Fn9k|_pu** zp7+H6^7+=|qsIRN_p#-Hj~VBJbHMn8_IJZN^9bXU_J`Svo!gJ=pUaF2{e40^FZCRM zQafB@_2>3^(|xDxBip}ljy~o7ztlg=Md$0&?*D5aM?b^A@gChWkH23Z?ftC%V#fX- z?f2*G%RiYnqciG#-n!5~e)IQQoF6tXa}IaR_pI?VFUS|ED>!Y++@8!nJj?3RsUU{E=S7ycR6~_HNnHjTJYH!F~ye_{=zwCJO z`|^3~`2(3JnY~*1keU8a{%;>&*m2*k{6EIaj@^)#yjOlCbD7y|JP$vXd7Rm6o#P>M zdL+Njxnjp_Ltb|Ne7@arh1u(k$LIeYb7pVwJ{vOQ;p>_=+CO&O8FKCY;_J1JOU&Nn zIT$i$d>xy;*?JFO4|8|OZ_%Hx?>nwAyWl;pRne*Trc)A|fQ2jlXP-(`J<-_zo8W~S*&Gz7Bub)zR3! zd>(%E>S$uh*AxGAb+mJD*Ex0{?fvuBQO)4Y)lqO?_5S7R=&bUXnd=Fc<&-DnjE$Ug zMlQG^mpmj_3|VuL4X4=h96N64CwQ50FlM-4`!}h+@Jq`b#$81f4H9&4?Vy*&RrcHXTpLh&#>U?kpJ`QXz#Sl z{j504mPZ-{u*a9nHlu&oY0Fei^*>>L`A&`7K*#Hm|=r8h?oKzQH`%zfr#|YwPw< z<9XB7(Lwe+%kaY0Q9t-r^$)1WWd?6o|6%%hhx5Q>_3CJy!F#Wc(uZrGOYGP(dY^ec zLjNCdUIs53Kg$nZ9qpTu*RGCo``+>tJDz3FWd@g=FNWN(e+hS(b9~r0PO{|@>ziM` zI;yl=@B(|b%&(~bNbRiKHx@k1;3LMxjAz;NBFn2+N4u;(rvA?u7Z0-fxbwl}lj<|& zGBY;Jxxs=vEIIZl_c3J6DK?y8%R}s#vF8Z}o1PbjJjaMNV_sy!O{ToYjKQq_xt9g^ zv*au*rmT6C4Hww*G&@%8d4a*Fu8!6ia*Gjr#vFgN{yE8%)6AGK=V2B+#*!ylv1HBj zY`DUX>+IPv`1IA$b;g`{jCQz>>1Uj0W;{4t=R7+eXU~H1mi7976y0&07vY>Z@Gw{| zECwNjL0E)Azq{^kk3mjH7{rB~L0E+0Izkx4Ef?kpAq+wYgAl?Xgicd!wbfz}7GV&U z`Mu|__v?9{d7kI3A+L;o z<($lZEsu$KF1sfd+%ozbb;^=^S@9tA->Nfqz5ST{-u(L;|Fe5#{uj@&Wy_wI7%r(Z zHeC4t^Mez^dWP3MF>GUgy%YX_y1Y%E7!Ho(JkFjSlk1-tf(P1%D_P&*g#Ul;xf`As zX2y1SV%W>%M&>hR!;Et*xX6;r)?0@mTdrns;}gR=#!Q)Uh8=f~<2Ml>qnn)=jxpyY z#w$+@lMk{#WA@z0_!j0f=dN*_6{}mG7?v2^*7^U{K9P0Vux4?)6aJ2keQ$qah#qYI zYWZP!N9SVCmf6$^e_zHpV-{RLw(oMn-;=T5niKwhjCHs$_TT-)F!67myO-xj?|s7G zhtYo@=VLW}VmQo>b8PM>P6mlQJw%(+%A6KyD6q|oNG34yHi@}54 z4zxQ*$*IWJr8VaEgPd4$13is$=4ysJt;?7j znKEO}?JPOViu+izX2YXwInR!l*)w>QI9?`hhMZ!|X(mjWaw`k&WX+Nt_p|3=1~2y> zGi1kzR~U2oqpinPOc}G}dRE-bn%mg0V9z}aUg4e@^9WP6%z23wm)LM}lX;976eotY zjJbgcw=iYSjJsHJFFPJ&&xXM()hk0TGUBqwSdSqSu4c-0%(#&`GZx&=hO=zBj~(lA z{8iRx$wgLN_E_t`+WJhmnioVes$b<_cz< zV$Nw6Oj&X(EAC*;-E3H~d!c<0|HiS#Ui|Zf47E>{zhp9tQudz8LZdBeslri3yjOa`N%c z!-zT8vfu`m+`@`EYwlvhy=-}q9UJzXV=(Lf8FJYZ?9Y%1S2N=}7Tm~+8EbB5!&$c6 z$Bs379%b-4_s@`*88g`8JY2z?Q!F{nhADe)9mikq{#kH0OIECSh&7L~;R0Ls>^Sj6 z>u@E5|8f5enK0!hR-9qYooraL<9_x$%wV_sXTnP?xa>bX&lPMr#g5bLxrxCWtj~}; z8L?!{{p@&j9Dk#AnQ-Ds=Do>!thj|qX&!UdV?SF)|Ems}az!RCu4V9Mb;o>hPBy&4;E;1Y!+u=Ni0c@0BNJxKxScs? zS#lr4&wB61elD_QIAfj9iJu7*mfXbj^X9SO;c@)1c$o3>*w5gZ&dF6QzaW1szG#0| z+|7>r8GXs;%h=|sXIbxvI%WH1pA(~Bac=fswGYd$sqbgI2d-fFb)Rbtz9BwF+{S{l z?2fvhar~R|&Ws(CZ;NxAco?zgG?QcMW9;V+mfsWS*ydr@JkEw4TV7##LVZ8SJ}1p* z!;K4=V!sAql@ZD zUpY6kU;8{^`aAbJw%Ic0B^F#7$NwPjFL0hEb;|N@^2OA@$R1+GW6Zh0mcf6Tf0cHa zV##S%Oj&a)8}49!)ppp+=xXiIj%{9M#mViSzj`~YWpEAi88c^f&DQs7YhSw^j*e|! zVmH|i;eUzmM&>cQNjqfBxt-0;+M!~{L+p8s!Oh#DW5g>=xcr6Iy;VDGV#67B+{yCR z?XaIo)DFj)-LV~3y~sX{+1$zVEbc5$c04qWPqn@e+VgjHz8#+98fJGB=jh$rVHe|j zii=U)4n4zr$>)oW->3Ec%l2LCJWSU)&)CmH%z13|AKk-CtpCrg?@PAczsMg8Ze__G ztht*lD|S4@p2ry6*S#`i&xjK*wH{Y8;Ton)m~j(x&amW8RxDX_KU*GV$Kwp|C;yCj zg$bAMv>sQnV9b*1S#dLKZezoOE%&hF0rot?AW>fod5IC17<2Mv_G841YngKc3vOY{ z?Tqd(Urbmr;~|C*Xoq>WT=sJ7KG1qh){B=lw=#N=`yJanz@81W2djHFT>c949wM(S zH>!8Gk8lolY#Be&^Xwm`E(+&+wD*i5)3Lo-Tx=ijIaXU*-?M99PBD0*^D$@6^eN(C z_f+-C<{9ejRpvd*y|LzghR=3y%y@hpXUBA#dmGza{%Y|*$Gx#<%<#GLz?hpEJx^V* zV#%8O+3+y4T-~wcvR(Qavgc|>&u@oyOkUuASa2uP|CCqOJjQUl^DyDE*YLm8En7~r zd!c(}w!^+-o0r(XL|werK0D=;1!u?h%dPX@^7aaGu;V&buas{#uaXa@ulD}U+V3^; z&HT0Ai?KZ`PIhk+C(F`(vS-iq?egB056~k}H2kY;8KiKjRi|@$`%Mau$kdtq+t`2glfxkf*El&GW5xyM?AdYRZThcya#+pgIwyye(REJ_Ig9I^^#5ke zzkxW|-~8mT>g}Fid2(1cdW)084%W9kIqVzTtL(#^3vAf4=fqy?-1_9Ok|EbHWx|r1 z#_`*n9A?IG?qtN0&D~B8;XA~8_mjhJ_N*A(!}(a<*ZS|Y-h-{fXrpmgY*lS9mmDdR_<9JVsy4z?^AKE}Sx z7`$747%_PK$zdbQCwiXoGv#aSf6mF_3R8yfu@2X>e}Q{o`NEUK{OIe%{a)jxcp3b! zduGRi`I}D;`&sfZD;{UfjxDdS=km(@x42J+j9D@r+k5QGhI?4NRi4NGw~2%OK6!kf z{`cB{v~q5S@ADiJwxjQN{`bqn2gS{b>)A15`XTqsn)}%EFryF4A2arBIPn4T9Z)x{ z4~moB$DNz)C%hkw4$1F+`+oN1P_yJwww!1DdFTG1b02nI_T0kcOY+9-i2GplHT$yr z`pIF%hn(x1)@A)|d13V(&$Icib=iH-`}1MX{h#_}%aXx}i83 zgr|mmW1B}A-sseDi3KNW-q<`gH#s$IVYfoOEN^*gILQ1~;$^ltYr-mi=j6W^jJDnO*=2P}(a~E+lyt}v=-Q$$+Au;csr-pTGxP|e(P7SjR z?|o`G#GW0iX?ZcpvFJOc}G}dM1xLHROyk@iFGy*w00lT=seAdb0Rf zaW#Xdn9t^^r-q8@)>FeV_PjFoKTUle*8hxC!!)~@Q~uwZI(X)(VK>X?sLQec`R;q{ ze}Ovt0$-sn*%Z#p{FTnh_|@*4DUY&yjrG4M?*9=7%Qu`F3ifaH9P7Q#&*B}<{Uvel zQwPl7XFlWiJJ%7JvXyC?OaUf zN)mER&TYn~p~e8Y1Sr-ziqwN4K^*)Bird))M2=d}M{=^R{Sbp6xA zYhh1#e*pKBs#Px0Q+*@3ue}8(|&S=^>j){xYteG)Z1OdfrD*v5jpnLhTk?^$vF zr`eDFGfw-S70*4(IoUnuwC`DQ-rRW@Za+P2IW9jhIz2QjxxkuN*fab;^LL1s^@~pr zo7n7hAB^7MKG?lioJ_0J!xEDN&h>rmT7H;(%6?;;3(VLv=fnx?d|KX^audtXoE~#!M+RR%J!Gso%lsSi$A)uEj@pkUSDy6zw@wcU3vOZcZSzKt z$pf43c%D5cPI>;j=8YbAZbmGb@BmXDVa}EXFR|hh8%~}!@BiE%E3Re34eYpu$@i^4 zwplSaae6q!;I zEf0_WN?uw0&OM)%N3LhX&CGgr#^CqrhZPTvKOb#ezLsPMr7LvbkX;)2qx4n^-Yt&)saVIyW3; zbhWwR5_3*m5HD9VyXM@mksWt2o|yCZsO-a|Y%wamNd`D@P&3A^jsXKYW-4aXT> zf6m{La2~E+u+I(VhLrIQ=Z2kZcz`XBunXsgMFuyT8-gD=Cs#6O%#!OF-NgLSmFBa* zrTrMMvLCx!+wX_gkL<_%u5-g-)_3z9`!#bz&*biNz8}ZDdwQPLz2o9mG!gdhI;JZW*!UntT^#gdE`n)&oQ4hQ^wB~-`Hl&EO(Ero^PG8 zpO@J%xFp^e%nd6Taf%tISukbEt!%i1EqAkH#h!;4{O6p%%V9k(Fk;V`6F-w*u4KwJ z%$P9eCKjAw$5}@ICH`^zh4MW1bMoiVIK<8gBP(XCxt$GX*>WE{*34cePm7-C6r-1$&x9FE&a&eHX0MPB=3HR-D*67U z{#T2G9XBxEG6GLuh%$zA_nX_Wgqb%Pm@2oj-Sw6UmVI_aexS17qu;FgDACP~B9~Sp- z#PO-QVeRNwg6(;EVZERZng77Lz2~@<6$>Um5(k4Hs}tsz)Yrn8(f*8>b1e&QV9714n6u_C_N*BH!urfPKaTUtIL`2j@kQ@3b8cYGt?XHhAZ&MDSh&z>3MU(4?}&b{L}4~^q&nOwFGONM`zC&r9_&aW1e8 z&iI~!iDezvuxG;H>Sug!hqySyh&vgxWWxPSd6*fGGiS$|SJ-oT;Q4Eu@x5LX{$AG^ z-{;``+{m6Y%&vK6m}NV0#`g_)?%HSko{TvDPJCAv2iGuS!kigv7VNo?$?`M9k+IE= z;dQLTj4Q8UeXe7EUGo`V&%TT%&11@ivHyl=hTxjKsk}1hG;5|zZYICXxPt|Evt-4J zhnU=49PGG!!t*P|&w`tn-a`CiKlhCNJiy?VXNHy?mtD&`tIiA?nBCewEN*kg_iZ@O z9mIKU=Ujbeh!}A#Gp4M#jlmtAllh(05o;c2&qXG87T@0)zss2+XTe>pxt9$OvSq{I zuIi8>7a4Kca`|G&oU2)I9ZPOx#f%-dGr6038ryf5f2Q|P*UUL_9nW(mi+ibS*4)C5 z+sFQUi;wwz#5azwJu@6*yiWZwWq4iB{iAs-nX~3B^J#e;`+0fnXK+2|5S zjUhKN;tXT%WWtgu_cP;R<~+`V9ZOze#pRRs<0>|c*>XKQZf4JI4DPE=7;+CYHq1H4 zf{QGgxv9=LS~X!t{aSV#Yn} zA0(eFH+cSr+T6tQq4LCQB z-;MYf`C|I-J`Y$u?#ytMJv&B^_j$mWlQ*^>BNj|paT6QPu;os6EEzq)zD#(O8Rwbv zG7APbabB)q#VOXDX2X;%x3c37_T0^2i_Z^+Jj95{m~nAzKT+H(tiv_zxq;P_oSXHG z`(wJzb2oL)9rDJC+sF2corBR!tjn5-!hBX- zWXs^@&chXqU+Hs*<*U>Qn^&7Zj&m>DUGm4`wdON=}H>=iDmse8l;gepLOj`5VGXJD=GpNPQ@KfsXHs&*B_i6Ra_A~DPw&owQ zF5}NS4>N9I$(#*$vFBb!pYt9wWy73vEV;<=^VW?#$B^ll#LMQ0dt&(&agP086$f)3 zW5I=SoIU%a-p|`v?_27T!FPPFGCD0UV|&iIZtr(1&zSiIpU>>LdF z41eI~5hLzn%$f<0GUYroUS`GMj^_Q)eKBLglAG8wAIE>>zSwonb0>NFvGXuw%$Vz$ za5HmmXUmd34~*@f%JiJ?5^ftkzW=p82-s~V?U3u zS~}zRXRXhPyIKFQ^2p?G&cWa+XNO~~*t6s08qZzr?68&vH?ZLhtKjTVv%C7)A-uc& zCe98Si|d{p_OZF%+2JVL8=W1N*snM{tiFeMZ+dn}nBDB`P>t=IpB?5{@d~3`oE=u( z)4g(f^psseXL0wlL&N5tXNTqYw%*^L9X5^r!`WdkgZrHw4l+yRW9%c3JW5^|avdXXWXy~Sx3l0rHayCf^9&y? zzhggF{y+U(!;T4iZep;>y)ooYMl2a~KNB8i%Hymab9RXT-uWMEK7-BXG3FjtJjCvC z?vFhenLOd_5dDL3u4D2P_r~_AXNP6$JkOB9R`AxxSPo{<%Jb5G1z9Ge{x=~X7e29VEsJjV8^|TbLVFA{IkOXQ}%3MaCTVn&-(vM zd@Noh9`v0u(#*AJikIcE91!q}uACq0q$C|o9ne_l((_&1dvBaWm!I*w01gT=oF_zuh@laxE)vV9hOz_KJt$ zJLPw5^Dqm}kNxj*o(JmZ6#ISh$l%@Tks)`CsftBp4o91d+ud?K%Q8zWB3v8$-jE; zqvkXGm~$~Ys6NV^d~mfX&Yv+P(g{jU3C_&xb&@_#-T zAEuw{m~kU>W-Pd!9ruj=-#4GZ33+GAWe=CfRvZjZsyn8q)GzbXJ{Q>Y*w}x@J+VG3 zFOP6;u3>y$y|L#G1{dUe?B@YCY}xYC*uLnVQ_nMExFCM!KeR7f?qbKiOnxMfOnICI z7sviiojlU~pE@riZfDF{CfvuAH7m9ZFF6NGu6dMxCTzKd9dqVCm$$KhQQnySQr_77 zO8k!&|F6wwcG>3;b8cb5oF#X$;$GG~$c7DD&avYngWtH1P2yw7h^tw01N+~4FPZ#K zep&D!J02hHy$3A+;5~SZxc=x|qgOpQY-4@3b3@67``NK!5S$wp7_w)?iO0$#S2AVH zoEunh3rpsVu6NGw_Zpu(H_VOWTpY)5cy5^dcjx33tMJ?~!{A2ehFON(H?~)t^Lx7X z;o{hTQ}Z^9`)2lI#VzcZkNqpp4F{Os;+)^RHUF09h9!op&JEL#lOJwj!<`In>%1&@ zl+m5e4VPJR^6}=~`JBIlCr)l=c^C88b071&ijUddeXe10Z}XUP8#5LR z{_)(~TWd0!MVb6}~gU!pFW5c;&HS>qa3%iGkm-R;ZV9$dL9;R-YKf*mSP3`w& z`Q#e*Oc^}Vz6`lzY(H8)$2N~JV#|b=m~x3ZC!Zo-Ml89O6*sWv76zNd$B?@iaW7LI zWX^^a=a@W3o>)BA`|wojY!(+A?q>Wr_rZimnR1>PFEeMb)qJjC$thNxX3dlhx3c99 zcHGUL6@$m08xAq#F-BZq%$^A+o@RfpWX?5gxRKQp)C1!!?uF?Sy@w3{!+Zu$65rE3 z&vnc*`C|NJ_08}p-pA3W+Mn50`F@7y7_s15Hc#_jvE?>)EXMJto6qDK=Ck4=gPC)~ z@)_%KiaDoQFlEP_J$Es9ru$;VgUp^K56s!K;KVbRR)|;{IH(!z2|+8usFD9^dH2-hV#tsYyFql|NisCH0uXA2lMrw zXUUqugXV{p5igJZoP4QxH;9W7H!^w1{IG*Lce7^2j)&Ou7{iA;A0zgRIkD4xu4KwJ z%$P9eCKjAw$(^h=TAwu!vEebcTwuqZJttmfzlY5atC(^vYi?oq@cCia*ydsOoMZNg z`QZwa)V!CA^O5q(=uz&0CHF9V^!#vy880#4B%iO~W9NshEVzRucQf8BudLaQ?Z?Y! zq0M#dpCB$aTjqy?!GE}C7CgrEN#YvYnS8y{Ik}O^lReLrdzkS6a~@&AmL)H-;u0H9 zzRGh?aXz-p7(Z2>S#mFX9%8!HI;?q_ErVBk{%P~WYS!Gq;OXv**^Kvr#k1#!j`=qC zu}dDGKR=}GU+5m$yl8$n%6y0Sg$0+r#{LXhaWxyRWAx(rVKZ}XANyG{e98Q9kQt9L zeW~~Ewc_GhcHG2pr+F;7ckJgO1}}5}<2V-?z1;r)?R;F#jML1SGI)hNF=WYz`^WKD z$?L51F=qT~&$D{1=h<-|qyKh4Y`MU2*12CNZmwdW4J z52=H(%>&Fn;(cMxODwp=l9Q$98L{SCHr&ACWAef12v*KlT4Blqm7sSb!Q_Q%YIXAQ5HkK?Heo>ysHm|Ve^0({%l6z#% zEi9O`=598u7#@*-#yrM^3ryKF*w2bJk1+YF^~N@X zcZlO_ey*}&!j@Z@e%A=1%VX@h!0;FLW6X(t*5OL#T*HzHYi?r88TQ=CaMAn6 znERRXFmoOs+rM=0Y&iLD=lhlQ82rZlGWo6fYUS`nC=X>nK6^uB=j2l>T zh7ETz_`N(a;sIuCSaF^$d!~PI&iA^fKZ|2@N&KUKlNV-JJ3mZS&cSIGOj&X(EAANk zuYP{mH?~=`;Zb&+XK;=4!(~Pc-sikr!HiQZIL(qNYi=FArghm*oF9&j7*v@3~{7|vD{`uiJn;V=Tme_Oh1NOV&`5|J=VExT z^TQrSJiv^{Sa5+Adp4XnU_Y*8aBurFV#0)*m~n;$cd}y1hWpv^FoXNJ2S)6e@Cq|7 z|A_fq#fmW-u4l*14AzRD5ep{V!;A-5@CYlmY@Zehxt z8F#VZURFHFh7HTVw?5l-?&o9tCw0r7o0#5DoQ&>o-sl6)4|B}ctNVkVf6)11_2|E< zJ9hu3ZrD83eX@9%dl~y5DNhU@Ek7SOzDZsfKUO|iahBy4^)`+_#XT~An)~~Nc%JUw zMxP;%%xByaqi4Dw2G6!WYp(jFxVO1q2G4P?EV!H5bKN6r9v}Ok=N_3n-#)c|ChWM0 z;S0=X%AG7&vf%*+|LJ^8*fHf5Rt!HSUan=Z-Tg3O#*Ew9uw=i({f^@=R;Qnq2d-nw z%?w}SbBQVUGJ2^xVY18pvE$@t%zLf6WA}Q`v*+%y{|(|}#Vc&M{E+9kis}D~kHK5q zH}khUA4?u#w%2_ydY60ntoa{s4tCtZp1T?BckhgNm@$ttVaJ9OpK~s*WXClOKj?Fk z5w|ko4wl?Ij(t2g^_RTw(f2_jA}f zT+6VQX9k~g&ul)e-dTLcd&rWP7=G5gFIbPOnQ}c#Ze`0|3_h=p8S*G2&NJra(ZkmH zqH}UJQ?6sijm(*`;C7arWyO80S+n6$ww!0j%j_9^NgQABbA=(N7;%~jH!US+y82_zEo``h9d|SOhI5YNJjRL(Y}qq7YTw5B7&Bwak~w?sVfsz?F}Ard zj(^KNf6csat0T7D!1S1Wk8PIBzjJ;##PGZ7gf*9a-8$bBKcnO7f^BOalT+em#)`pd zakFI4=B&E>Gj4q0s39m5YAx zxSKtzvHb&e$@)juW79d$H$Bgo;g98m8E05?mOU#bKXIQd*|B5rE&2SZI%C4MOu2y> zw=ieUiX~gt3@&*enQ(zQudw{Ndipkh<-KFY8Fnlf{aT$eWzClJEPiL+G4uYYep#_$ z%{ew)WXomWu^vPAT+Qf;&lM)z$cz~aZfC_=w%j+i|76{<&C87b?0&v${$IqwbjiK2 z_wP9C>DBeq=2 zjvE+V?ZPm_l(Q_jj|~rv?cl;N$K>i4{Jy?>;N<^Vm#f)xn$a~b_`QAmawpqsU-0|- z?(ur!|GxTR%!nJ9afbEvFARIw@c^qETo^j0p?ywRhY6D#T^P2GZSH1pW6zJ?#6HY8 z*;dx$KNQ zGGxrvOt_9IH!@?!oZDG&mKFE2W5e*y&dG#J%(&vL=NYr&Ms}QGG$meUtXS|cE6%ZF z&)_Z>hUMox&xi@vG2RZf3)rEqAfwUiLi5 z@c!0e%sHl9WX5F|-3vn&T+Np289c!HjG2$^2YUY)uD1@O2gwI}#tY)!;CVLO#+JqC zL!Fx)k22cm{7iXe9OtSZSodK*SD11O3+`miee8II(ZlV}l$Y6Z#Si%?aWZ_gJTT>6 zRy@R>Et5^=vE=d}na7Ad6NZm*4{W$=9OqsZkF`HbwoLwA{9~IdJM+1Y(PnkUm@_On z%ZmFLKF)oN<6L0QCDsgoY#mN9e7t-xV#O}Uuqspmh5?m?aRz#^Kx~vsLfT3 zUZLI@b3GGoX3A|0U!`7{@gO_440gE>mW+OB-Pf4U{=d~NqgnOFiU-*82-DX&FAH8_ z@Ot(3E8|?x;Em?9;~pk&5TXkf?HX0Cp+$8_Ad7{w)feWJ(n1~TOIz!y!Xf-ORi_d%?v8<2Se73-=~h5 z@G?^dzcrsLSaOQt`>n&6o0)Pud+ueh-#Hj^ejMkOvH!#J_&f1(9UE>Q+Xv)<{YT`V z!AIR63-&BI(d+-1{TXsSBW`BPZR}Z$;|Jws9OnVXJi>%6Q(j`mCFY#`z5N)mI_;dtk^pMqFgfWq+_gL#ABKjO&X^3Udd(fzRE z2G-od3OYMeE9vgJMojX0QbfhDi7;qoQ%d`3ihu0?wtW26KF7qx_&fGv{$25~;eK{J!r-{NV8msA6E{O(SaBm8X6(3q zY=2+;j9Z^m%(=vx;UI6EVtmqlFz060%*S!gj^n4?2b@J(np8FX5#=Z=Blo96{^D+|#f#?4y zf6V{l^M&z}&le^4G%GxxHv3~<6M3X z@m%ZTu!<35#$3;Yo0)POa~3SPhcyqd|GSGr%ka7vhb!YaS6s|D{1lrupn%fyq zUL5u^E)H8+ap%~7_lv`Rwmib%9v6o>M!d{~ z6W0?jS24M#cv*6WEoaAete#l&ID>n+2SyAg^)q64Z|7jjEv#6uXT|J3?w`S0=O4%a zpSZ6t?!UJmJI*rr2lv2=N13g&-#E_YH;{*abnmP<&6X*{e^S59xSItlc5E2@vwLL7 z%ZwP@&~uDfPJ18NatovTx(9~$mp9g28v7q0U!gjCpy%1Hw=b&)sRIW8Dql=E$AU{N zIe8=f4;DW&CM>v#C1+T1Cu^2$xt~1`GuYrgWXMa5xWt%~H?}?_rd-R68yNqa^~Z7U z9LHIXP zw-PTmu;L7B?qtuBLGJ#?HXC-&caN-I;9RT3^&;!A-r;>?@M53y%wOq!WyyW)XT7KF zUgy4UZT{=+%kY2H4ddO;%Y-!x9%aRO25-1HthkMFCd{~*!JDkhkjri>FQv~(cHGYR z&Gu))nlPW5(s&+qedmpM1F;tYH4WBYFP#N<8d;|}8BN+$1Bm(0194RJi_49_GQdV%(%polXnpZBX(TN{xj;C!RNf+ zjF~g#E*9L&h6mZRVfcA@V$4NmTy|H_aTSxp>YX*WGWvq`n6qN|MfJ#@i!8t7{C9H> zPO&(mju?JfzSw-l{^K|scAR6-*msTR7&7N-wqNtP#f}@Wx@Qs`(wjH%q}=5gNyPOi-QsC z1$DrNTi7yZ{{!(b_@Q_h@(3fgjCqL(mzZ+$UiM+coNHNe6YC#&Ul?@q#DonSE;0MD zdH1$2H!%8%JTu`A2A9;$*w1-3TzMb;KbHrF+{B18jJcBuOQzhVOFohQD%7);!3T z4f|iqGlR?W#E_GJZ(Xiq_8WN`+uX(cx8}28!;*8XxXAu@>hK?|*V~^V*D>No#>|*- zJ5$cG;y%`_S^nO7?Ej!1*LnVm_k=YwW`p-)Y%g0FYF1ZS80HvVbzxZckLCvpL&Wat z3&VOQ*I4kq3*x@!g1^6R-nABd&w}-@y)Z2QCvpDW!mx_LbryyV%&xmIoH=^wJf-S6*D&6!Irz(b3emX3&Rm6Twum4EI4^z z&oO3p>xE$x3vL_xSu(keJdgc6%98V}c$qbW``Mo>*m8;;r`a=Qa9j7lg0pORfE|yp zXFIlUXI-YZw{Bv6u3&Tr>$2c9d#21*TbIYUgUA0rMfV>k#xoucJXi!lun2-+X|zGG z2o8ru5Tv@*AP5$R(5Nk`rr!pu4T7VK&_l3@O6#x)Jwz>{g2N&Ry(F9D@}nFUhtvJO z_pkSBX7-tR=9$^e=f&&pIL($7<3BSWgS#yZ6OT~8yDtm}*xl25qp|aUr2hLk2SyLn z&x}2T33YmuIxu4N5b+Ei=H4;qhOM4|xOfJSS{UZW_G8?yM~mC0zRb9F^a<+7{E6C+ zk>8Wto6)DZmrQng{;}FmU+{Yg?3eqPKht?Kc$WLY=-KAq#uussix;T_lNWoQRjv+W z`(^6DjK{|Ie(@}LmGLX>?{Vr~xYrC{V_h}}oeT3fc#hEIp04w57)8grm=m*d%=ns8}4P# z>9PG`^<(&N>cxs{pXj`~k<~}kb!>AdlYd_r_K*D^T^J6t_?UQxAGa??T=f_7WXOaY znR0>|w=-wPf_oW#!amt>aqO?fr=I_$_mjz|tk3Y%)@RI;DUYyV!~Q?5_m|qA^FFiT z6obz@N7kHX`33JGlmBv`S$xTQPx5@T;OFTZb_#ZfC>Y?0A5|N%Jw{aV9*?jLR$-K1Dn?v*9*&oMP||_mdH4 zn6PHXlPuV=;tCsvPZiHi48FNAB#gL|33FyV$buCs&aq+3j#n9d%lYi|JR??|WXGM1 z=H0(>oaH#q*>RjF$MJ8wkK;Ilry1u4cAQ}J9p8Co%*Sy~v*#?6?=B4UEV;yvYoG2O zwCcrz+u3ptqwk4l&RI5`XZU^b%((U$?g2M5_BjBGh)mwOt_6T z_pn@)KPw&?`#Hyk^K99%=c?z*_mcTob1U;J&V}Js_k$&mGy9qQ{XFw>9XoDf`b+nl z@vrQQ;j;ZO_?>&ijH{;P{d;*b{DVB%{L%c3uXScPF&doldjZUU!!twjeEDz(%Nv~; z3MS#1p=HLaEEv4N`Zqu0=l{hqWzXGAZXu2(XIOKVEgSYc#qgHqW3ldxzppKiTb=QH z0X(<iaE zWVqRWm~oB;=UK61&lM*3l-FN-jvHBUf+e@JV#b<#+3+A+9%jdyJx?&W*O}ooBQ7&x zxX1k5%!1okF=NAh>{v3m_nF}+6P{qfjty76#CUA~OgX`dJK1v|ll!P6%lnBRov{Aj zc#a!cKiEBD_7M9S`yZ}Oqsf_JX&h(pQsa+wPVBjz!K38Mc(n%wzu1A9&~-sb)?W5JHq=;O`9;0b4jMMez%*7ID)j9XZ82OI8X&qGYMpBavg z<2=QhJsYlmne*a$hJS7zrc7CK&p6J5Y@X=;vHJ`2FnZFNA$qxWc6gq_lh63Q1?J&C zMx18MiV2S~D&Jl8W}%#7PuFk{3044&q`G2yXsob5QyrE&b} z?!n(1=SCJx*l-tvXQ(4n&amPfd!A;p%X`X_>-Wi%6O5nf-m~C7wwz(`Eb-$wPc!8* zONRg8ImRrXtv-x1`(VeT44&ir$&^=_Ki7HxKkINGOHMO*p7R*{xj43`)c+sN#|ehd zS9eA)^qm;{U*z1Fz1%+boB!|Bfypb)$DBt;56G7_!&jR34eHJGP3{3R9%0To7My3v zjt!UDa?Pu(Kka_8=hWz%-2GXVhvm=w{qi2IoG&Y`|0j8Kf<3o0`hdKda33>H zv*1xSJjv*T^7&`aaUDBOGX0SHG2>n~JjD2ja~}J7nk9R-3=f#^!|n+y?qGaW{tW)z zx@@^Twm)j0uT`Iqs~2V|He77`mKD% z_Og6Nf9Jms82;XOgC&EvnQz58G2|p8rtG+%Pk>z#I4&fp5a3gC@u;F&*H#qC}3s{fSELkzV;n`t+ z?B`X6H#$44d58TmVY~M1u$TEw&JHt-Z+dn(&Ls3aQ?7ca{V*K8`PpF`%Uf8F6{lIV zV#8x>d6FF$7~Jygu)>Jz{?+`9S#UcW?q;y=>~LTlXT_2YJ9dn3b#@45#4%#UNjBWc zjyZ!{t0!X~WyX_ixx(f);@_nn>&3IXt#cT?o#)5?+n*gyFySJzJDwfZzMFSecXoF< zJ7nxPT8GtLJ;!j9I=#pG_c1R+ri?hng!`GYWX7Y+d7K4XmRw}T71msPSl(OC4qMnW zWqN=6WzK^vSdIOUP_MC{D`P*`zSq2rSaA#UN2%M`<{maI*z*vBt@2~YdSVg{8&8Ab01RQUFK)_O!tT-53=H6 z)~wm{B-3X(ALh@N=Mm38$9u+#8Efuk!-MR3cx*q{d(Y~5&hx|a;3fuB&T(u%UmTm4 zct6;4Vf1CbEC1$RyxjRS=L8FGXUU8e_p;_eHayIDulX3g%J<<9va7al<9lbi}442SN=o3AM#yd z`BCo$!&%=s2A}X=jqTd~9LGOt{jvS2v%~6-I?qpwV|L7XZ2r^zW;Z9_vHuI6XUSEw z>cEgSH?rXbTW)8^j6L@4G>mXU`6&M$f5#ZQq^s*j)5pjO|7BXMWZD%$6ru{@gljmhAJB*87EhGW(@C z#=jEBf-`J6$Ea5)=3HUJ^`DZ@uf1QaxnpeqR-Vi_!{T?=W%LK<$cn2zt-WHOjJc8R zU|n{cW^m1O!yH4ljJe2~YmRxI8(CiKoS*ZTPjGI?nO*zbaDc&e&J8oHILqX^=ltDt z`SH})zxtfNmu^0WY}TIh_t4GDgJb(9=Z2%qZgy@s$uK*fES=H&*4w>#(WpL>ow8FLT&+sl6(-*9fIne!xD zUS)Cz^UTTrj_3TmzkY6KaVPPN?joMSpPU;`FykVdjpv5=bM}8%>#_J#c`~}YaVA{# zd2#oUA2aS`d2jV#&Ess?vgaa$_}s9^ zqMi&n!HC<({s%Z$#t%H_=j+YSqs(}m4HuYCIF~P4hwE5!6XORvSEdhf57@C|IC*YZ zX2JFU<$1=exs|~~&ka)yxsNfYnX+QeV=Q@+H5b^jXV2AN68|vsGva2(Oqg&7Q|@NQ z{mfai;p{m6aCK(Oo^hgHjddBbXUg;u>cpBQ!$-O|EZL6zTx9pCbHmy%8-I*@!-_lD zKGyn7AE&n)b+{}y#bM9cl-E3H}=M2NYcJCQ+dF4;Z}0`7z}p+kbMOz9qi{)@A!z{fyqI z4)gM3%7RlYxsMg6*|1{AV+`J;4ve_KggrB^{mfnx=T9>=ob3cQ(%7Y<~ zFyb5wo*u{FX8m#e?bdC@a|i2ph-2|i&olj3`Lg1w?}>Yt`^uaNi+9V5B?~5pod+|n z`o4VM=Y3;U`OdQYfbR!`4|y*b9Wg(%53BbN#D7Gc*&cO%%>Ki9G3Oi$&a-64ip#9I z=9GCqYCUF57=6Ni*w*41e@Yw^E;HqtA9|h}m@{VcY4u>o-HeXeA2S|i`Wf|S@>%aA zD~3Ok2RE{1!k#-=9JdcPJkID#>iA>h+{U=EU#4GH7q46deVJh{w?`1 z`nGyA<_Z(8{fRuk<2@Mtu6i@)0jA&czA^c}=UM&0_wuLm;$C(<$ohxAdklW;-^u^6 zE;F`2^*tK>AL}gWUr;Yb=j6rsvUS*9@qK1<)pKX8x8%KL%598(Auq-}$c%?svS!bA zZ2!{x$naO{d)7V}vt!D%HxDx&7{@uog0n2yjP2hzC-%Sf@Af(Izjr>&|KNOCthgVH z{^))%7`%U-b-9x@3wHj?afQh>x*>*$ul`@cxu3z>ZYUY@2-BN({yx3DxX79-jBlo%SJa1F*>N9(n|FS$ z+jCrXRsSv2i_tARKgTVOdzi3b#Y1ENt<;+hSO2f^_1&dBmoEV#mo>z3rfm>st!h**bJy5-vaD^GeU&@1<*)wG@;hr(%KGr7Fp;;jy1JW1e8b(@eRg~v>dBm^SaW$C=elL%PqiL1?qJ2e?0AU5PWxxd(`>mkwx1^ccb?-W zR!_HIrq7TE!(GmWJ@>JGrn-;qXFC^`Q|`g{+;z1zCxWDv0%(YOn8*V->cgn&BL9n_PMu=|3RIZa*jDq zvE&kKuKqvs?|1*$aVLvcT8BLw#;=(>b%8alS0xZJlwPR~aAn z-UiqA|6f{%>3iLe(f6x6GnTAbGpM|mEV#^yYpyMx8%95%ehfe2UNe~W{$0m>ANM_B z{t4skxM%FI&CiTSSa6QPC!H%J2G=#tP0TsT^wajmng>UZ$&bZn)Q`z$)o-=u|5F@$ z?qxdXzOm*phM#kf#(u84p1c^b{=7UHe!;zF!~={u!-TU;*|6iv=y7$pzWl$ao{YGa z$$vSwvHhiPm}bms?B_9tjXcJ2ULD7|>IUZdviX>C2XpRb!Tl^*vf~lfU$K7%C)8<; z=eV26*Zh0Pic1W>?)z{<Dx?InMo0&3U#vRPLn-%x7 zWy$dS_Q9CPS+HfvMb=zl%e6O^2O|bQ@b3acZezqbnWzCEynDaCXF0o_~TA%A!a}yg*vSrGSQ|!5q z!4I7aLspD+sd&28lOYx%I@Hn!ZwjyZcCVDKCFktOF?ah~~a@ zG5EcC81euk&M@XI6E;kFiW#r6;Hul2mmwQ&WXlPLf3#l~JjjX_YaV0Id4~U|j?B2~ zcAjU*iW}K*f*rRr9NaG!oMC;<^Fz&+C)n{cdoD4&*7+g0y?t;!D^89E=ZB2xwa*U+ znDa23>zp4N2G>15TxG&=gZa3H#p?5ZuG%^*#(o}RaJ}=xQHDIuh%I9-GT{nSuDyf( zGGfjxEVzv&cd=s5ng`f&h8<_wvte-k^TR2Iyvm5H?r2?xOt_ILCzx?Nb7m~Kmn9Ff z;$haT+3*Bgo@U1-_6+W1{TrMg)-mKJMx12Kloj`~yRm%7@wMlN1*TjX`?(=9A7chL zIX`S=$enC>U~J#?{BVRVm&X2ETIbH<*PS1x7~Jaouz&Q{=ZA_RkFmUsyjgLHHG{jD zhwIpJ6MIgw+;HB{dmF#Qd4K0!o$e@(1%p2^&UGyAJj*#U;|bwr*L>qRSKVFS3>iJo zJY$_-?7c3^WyXUn zc$gJyHax+Ory18sECd2Y}12usef<~&<=?77UQaIRbI<2BBO1*aJNll#H=pWS1I z2gEUbz3;>Q#c?--gU*2oD;7LHj`Q?5{s!xe;|w2QoSWHj8-q7mj|q!$oQKD8&W+=5 z^6%0(&VC%{+6NlvCI-{;VZw|B_p@ik_|5WR&eIIu;=P|x7eE9vSH5T9ljGxIm_Uk@*c;z!j@|vEH7?i_^;Mw%w6nQFq*M{ z=4@E-6iZ%Z#Z?b6FGF_R$lzV>HA8M^#EdETvgZt|cbk{td)za&hn>Tu_1^0_2Jcfh zhCIfY^GvzOoU0xxAFgN3Eo_-GdB1s>v1GwnHay9oG7l354>J!Vc1#$5K;EoBqHgRN zK3v>U`((%o#@xZ2IcrWc_;>3u<@`9#t1KBL_Rn>!xrq%YnSNB=nRAXMPqAjtXja@K z;1!;jm~IL`2q=HW)xoMOX$Y(M2YGq#U;?opomjQ3^q zv;KWxHs^c9oF`cGG+QpQXRy`y=hT%wCs}{qJ!AL<>##U3PX=F%&SZpJX#&N zfytNLR|btd*zgdGFMGen@vk`7ar~?9`D2W83yTxhW%4!O36?xE_Mdbg#x@sNv1jxR z`+lr=ZejH;^<~Yy%;w!=hTpa>8+J^;KBmk##hm+Ca+(z@c0A6WErYZ6!;mYixnaBe!3p-Bi0c#Jhqvb*txVbhc3zxKkg zjSY9R<^HjKlM6%1_+}S|IrcowFuX9VFyh+3GR}x8w=lf-`w=FYKwd-WOHJj#a0*|KHFMfO}7$2Zu|Q}y4;y3Fo; z!Oy4L&s{DIhnTZw%a-+@s0ZVX&S$6Rxs~Z%<;#{8J04@tlWguLZfxJfc|1-0JueIi z3+`fhANw4=uQ*mb$(joc?yvq&w;ne!=OhcJtht-f1KbOyoE_T_lsChP3q$Y>@!Y`j zK^Oeox$y_vFJm5H!Wm|qWx<9OPqE=uc3ibfUJr48jJS~rCzx?N3udgimkkfH<6#Dq z>dS~HnD8_+F0o+nOz~XDhMU-NlEFjmpAn~+a35RFj{Og_f970f{BZk!mU%eIG*N$c z+|T?G@?!8v_l6}G7(L2IBS zz8`F#r``;w#7!B0zUSG# zNPbNB`2I2cN9WCmOYC23KhM{G-332iZk^Zrjxc$H_n8Gxu;n6~H<|wh+W#Vs@%!Y% zrgE>?@dSepScegpm~-t5<QSopRhkhJkI26?kB_l_CCJUJ~_#b8S}6E9x^!T-ZA9yah#{e{%?pM z`?)4JFE_B}B>QiwGsADGGh>!ad4xIVSaO~huuw%;n`|@J&192>QiqR=`e7SkJnaK~W!M<>#^c~CTG1j%y@zY7ua*v zEA*eUKbG9Wn%mfS)@N|Ry_XU{eNXx(3X z-UIm6^P>cf(!S#gQMZ`FOj`M8-06K34Oj{6uad!Jdb9^1b&4?`}E z{S04eUT$Q~2{zo$mKi(lWzT~Qe(!!VWX*;hTQ0NXnpb)556+DdVJR>&T!j9V*{Lz0eFk;Sx2bgh&1!q~YVZ&4Gc$NA8 z$-mIggyGHWY;WaM~YhPntZf1O~i^Fy{+`}}uI83wSEc0uN zXK)?yEV=fdj%x^~H~EuKj228;EDL=HietWj^-v01M8r z6q=A2~7lr^W= zavyt6v)JNX8Q$M~thmJZ0qXK5=fjxc1J#oybJje-hBItA%Z?3uo?fGyxsGhWc-&Ghh3~#u;XEd zPx9U{=Dn5hnT-aJZmnn=c;#j?xpS%i`+g~a*7rAG5u%X z2Zjf%%Zy8-ue~^|d#C5Pg&lXWf1Uj^IOu(6%#%#HFphK8znbq2?lTK+VZ)tlxrfmk z-NSL5v#i*R{cln~CR}074KwCt!eCk+jJSsh4>ILpmORdyEqnHi-YlPYd7c~DaVvwj z$cs7mvu4GH$Jp}}!+-IfGUlpxTaO`gZe+;`*4)mP8KcrUF=xew4a2wkK8|e$?=k*1 z=gaWz_Q{w#m~!_x&iyP|vgQ%CoMX>*zf*E(ROGG0I4gE+8NAQD?@||*+{&I)%--$1nDg*B&YCq( zu;pp?Tw?eh^S$3XT*s7~m~)aHv$6lMI-@%XuBpuTKJ&2RHiqw4 zXBIrjpmM(%^W@mitE{-{1M>ZVc;+AUUa?}%h6l#}4>=!}oMUjr`@w|42i1Y=SaK5^ zPO@jp@WblGg!`CtniVTHJjR|U8U362nX+fj)gSUa*R$bf_DmRl#QkEz-ORY3B}>*k z!j5wcj=Eor*)ioZbFMiejvLr8X2)@Q_ulWe(@!DlWGdl|E2##xp;$%c#U8T`9> zKkMGG`@DR{_807nH4n1oVP;vIUigRNAb#-LLipfcFWB<3DFH5fZ zsCaH<$As~B-5aLd&w?{7Im?<2JDy_Lss|IUnl(Q|mfXmO6YRO2(f90&DfcqxL6$ts znl)RVVDNq44aQtz%HU(-xQ-<^vF0Q@rVM}JJ~8G#rkrNZiY1S+;Ys#fV0g-V#+a)= zE{^M&b2BR@Y`KFycQgEhCgx+pAg3l%owxeR@U6fmV4N< zVEAMAlL?P9=W&*7S#yysSJ-oHt^TLoSEk&;oZDD(7i;Ehd4R!BoIhjEGG)V@r&#hT zYp(jF`ZHwsQ|Hf^6HK|C1vA#%%Z>*b{*Uu#!kRfxu;OX9Tw>4QQ=VUN{*1YaDJNMl zWz8ve+{f^Y^Jl_}IghbD>)hF#Gw-Lxb@FCaxwH5Z2^hSypg)_zW2+{`ps9JaIP z9+uY@&-gmx*>axwb;UDWE&lW3xtZzp#Ixrfme&{0_y*$Ha-R7b@eFS${tM!{ndyzh zv*#X`Hx|!$t$4PaXMPj$3~ws_xOi@6dNc9txrb#ap7G7av*kSVTZm_POYvV+uXT$< z%$_?~-fGeBfe?4=#o-X6+bj-q4A(CX3k+_%I0XOYTo^IA-QtiizWt)#1L6F*pDhnD z+F*S)cUT-wvFB9=cU&A+eaXBG8F3?HPB7tirp%aeFLNGb!NV+Bv*HQXJk5qnY#B7} z3D>dbCI)v}93~kuWyC4Q+{c8|Oj$AGG3GqUf(tC!v*PM6Tc7LMa5Gyb?6`wHcQc68 zi6KiyJi?fBOgPV!9WyR7=bEorpBq>*X2q?nxswg|uw}uHhuHHdgF7z{#~HF^#6`wj zVZyavwLT+e+`^pOSa26h=B#*tHD}mxmMt50JjI?@8QjJBpRhhdM%>7l6HK_BDKlo= z%bW*U@Gwi(taySoPqX0?TLxdVKG(75CI)}v{24N3#3{zy$Ar^NSux`=<~+%Q3oO~Q z=IZ~p9@n$yW`-M`KV$A-%H7PlpCwDyJi?Z9>^aZyuFjt^mzi?S*Tr)KOUA6Zl`VI& z=N^WC>iik=5K|sy&f_fEvgRUNuCV9Ylj8r(`7`DgrrgGyyI3-3%>!&X!=AGYH#vXC zJjIk(nRC@Q#4}{gjchr=p4%DT&G|FtUZyk~tSxvS-cJ-xAOD?75lYX6MhCJD74ebM9x!k~NR8 zT`TV4_RT1<-_b|dC&NeD-`M7H#%!5!ktJ7HJ<7fQo^`l| z4Y#r5E(TlOYle@O2P4ihX2aw$?lDuY`o8%YvfxHmoM8J{^D*4!UNPYz=B!!p1WTS~ z{Wx(y5cdReqfhi+F@3Vhnc_Fd9mOrmb}XDuYKQ68-JArw~P*0mleyg{W@_>d5S%kS-#%>|3}_$a8KBCC(}1tm*Jb#oe^glvthzh zOnH?p*DlCw+WE2LHa2f|evIDYJIjJcS@Jk5wye3xzEqDho_m{lSiN07tl#0@GW%Ee zmdU%FBg6MN|FhQPHU{st9;^4un^`4amh2dR!2IXLa|2VxESWO=pnJ@k6+1R#``^^5 zQ>Tx*mn^u0C3myuVWzX*CpKJS_c8DBd2t_iE-XIdTv+k|E6%Xv9GlPD7xOvmU9j#K zeZLs}m+uktFZr%BYn=bs<`N4A7sWGT^=0dge#L%RoD|2NCzyRh92>4*bbj2-jtQf0 zT9?7MY>(a2{f9?A^mxgUDujhI8oMCqTOG7iZxx(NEmxi@J6UT@(GbU>;4F}n< zW`Cng!|Abo<4Z&Eb8SZKZgy$d%5c4P81VpO&M@IDYn~eWZ!3OD9^AnEcH$Y_{?f3A z$sNS8;xWc|yfk!7xy+nvexc6Xz>+a5Ze`7#Y`BMMbZI!k;?9@+-V=Fq)i1R-%AYM0 zc6Yrr>}JpX4F2@eP%_~xYtE1Te|Bl;8Ev{WtpAmDImz_y>c*M}*x%#QaFosFOMV}U z`rK0-lY3nn*7cs}CIJBuKl%j7_sFR2KO^B zGv?#?7W1;azxkL>TpF&9KIqaA{>D5Hvkx{**>Z{<_c4CNCBH94{*SseoMg_cthna4 z_RGzz9(`%p!T7QE!)Tj*FnpXimX8-Vj{k)^EQ{kLt5p3M{H3_DpGU{`ljO^gE#tp( z518*z|KFL9n^`eo%^hsGn=SXVW67RJ7(Chg!jSWf*fHiZ6R!Ea`MHVVQ!e>ED&~Ev zd&Qp9jCQ&oOgYbjOKiCI57v2_{Frb%bM9fqgN&Zx{bI}$On90pmzXhF5x48ou#wF( zz1M8Hiyd>u&vL#@o-Ggd>=`^qo&G4ElWd;rT-k9SgXh@?GtQ3VoM%2Ip3(E2)BjnI z6YRL1(F^Q@B@eOUQN}NH&P>=b<1!1b89dJotQfQARyN$pmU|fQc3#Xm%j`w&J$tTM zbpyYTP&~tzIByo*$DW5r|HgNY$xG$Ij%%->pApO4x~#d2;mh1R#++fxK4x@Y3 z@tWeenKctO+`*Q+*>OL6mQ4T7`Lbrq;1%W@`?>B~^8S10!j?N(?~@0!f4DSMEdQT+ zGWkdE&FCw=uYq`OWXY|pUuFHV{c7jIs&I~D`!&`Z+gyEZ&v8A&e{!CTxScUGc09o9 zfc-Okt-7<|n(OH229~dL57}}zqu0C7%y^VJkF#LQ_@H~h{tfDPUC+Hy-Pm#;drq@^ zllPL*wD*8HS6FlXYW3!3woI75*?nfuX;yD>Ul{(2bs2Gy8CPG=bKK0lv~N~#wLWW3 zvth;d?ds0(kh(K^hx>DV&v7Sv?ql&z&olT}_ic1Wy%}=#4a9Lh<99hHcAR4QZuMgQ z9{NIFz7L}x zb}!g+jveROvt#xV=X)dT9919I{~=GdA9Ih{@d$g)G5)yoVaXLX3~%f?Ze;uk`(@54 z_B=3-*Y3yI=5Yp}bWSWjW&O4G@oC>%_T0hnnC}5&7A#n?VZ-3F&SxC|Pj$PA@i}?0 zrpo8gz#oe>W+X3dJHnKsVtrsn5n24A)hR-9t-74>I$!t-puA>W&++jrE7 z*>~MPhTn6ZEEt6L!*vY4?|FutWW%Yk|CIQ#pGO#Rjs;IK{-JqpE)Q;C$1RM1?EA(3 zw0f}qiSuOhQ}w)s`u~sh*mCRWS^H&l&b?vG(@eNDwmW&=QvJ?*o)vep<{kzY)NgF_ z7^92Mj~TCy?Mvdlt%16DCZ#gBf=-=YEzf z*>RS|&+VJllKF0JeXeKr3-d7lm3Wri&x$2$9$~{dww!0rj%9B@x3SKzeJ_~)#{0ya z2Uv23!Ee=r2~V-+3d3c2tQW@#7TnJ8cjjTqL#%j|?H`;Adv@%uae0VutIe$puX%ac z$(VbXvS7|bEO~VF+Lwox#dRq&iMM`8QtLWP%>O|d6*m9oFB*8G2t>( zuDQMWxPj3PFAv+8-stj>GrqC)+4DGyn_Tw$P2|B<8;sxd^00}`%`Oiq!_fLncyMgr zT;Ah2PmTSz6n6*vy47XB$HaQKwjK*kvAK;nwmi&^HG7_5u>SIJnjx2%a?Ks(aa(z? zVakqEWB=_h57R7pls!){-JlN4xXglU?&Q34gbhsm2g*WE>2;&}#JJHX3Kh^3UZvwx6ip4F5vCnWoN-@n1UkvHc|VVYI_O?`qyBUmh~H z+{=y!+4C^-r?_w9I2V~d(|P=J~ms2n;DeWW5m5oI6b!Cet9^?jHlSlxKH=AzxUWbtHbKf z^u6lN+q6{XEIyi_V$pf64Pc)@8!t zOV(xBs0%aBvgSNnF0yBEUwMDox{SXfZ#G|5e?}*K4_I=UJ=fjOd|&e(vS!Zozs=8% zEsL)^uPx%Zk-;}SKeoT+{bBrV_kbNcHsABy{pImPd9ztCAA?Kw$AqgNp#S&g8C`S5 z@8vLl(Sb4iCCA>}AG-V?Pfwda!twJi*{0 zSNvWMZ7z-DlUIgdLjOar4C~l&6Z?l<879a6-~Msy_01ACfn!xo9Eg6%suZp=RNOv|J?W9xih(HovIi9c%ABkk!#keAk-Sx zsW9}wVUgdmPURj)eYdVtMKIL7PL)IbZrUw;fObRwgR~pEmapUYJ2-x1ohmpUKTobx zwJ`MjI^~Cs7uTsCIqqJk2ITlR>(mg`VGL?7Q(p!B2ImU{#1Gw2hkjTCL$Dr3U^Ddm zcAfG;{dcqn#`?(T0_@%;E~vjpT+j#CK<)i?DhfSe^1YC8`T=={p%3vZ$IuI1YsrTk z!x;4cow!cG-zVrp$3M`APS`AR=!2f2b*dNoU>L?eU8lCe&_A)$8P5^&2E(usy8p#E zfgTuuKDZjj;25-j&UibK_QDG2`#1K`HM~x>K>a_|1GO)x2Rhaf=SkETC121#vQD+b z0PGey3_*RA{6iOvK|jn}M15oA9Xg;6ov;RazGU1%_eS~?`e6tL;2P-Iv`$$nk;C~g z083$bGxj1MU#C1Ghb_>)b)D*j4%iFba1C^QMgN`5c!q`02TNc8R=@~!LG9~x{4NLf zuob$t(LUIGT|(1-J31UjKFH>zr240@nvr{d3!9`x-T z<@Yy;A9lk448agwEAm~Us}6V^uonZJDU1o0Cqvw zF;NwkV>l+|$I|{Yv4bTrQjR^;etd*sgpcmFdKWrA>N*plK#Q3g- zUfK_xKV^JDAM`>$Tn+=U3&!98^eknZLLbb#ki5WR7=b!;|BP`X$Iu7$7Wx7DVHn!) zCVn}F_KWZji(wd+!x*fF_IrpMI-wVOUaZNTp$qz9 z1B}2{=xn83&1l`@N z3o!B$`GWSB$uo4o2=x7y`WDm9SIGm6yvDePfnNMU*Xy+RO7aQIpgTx@pf^Oj@XrDi#>Y)z3 z&;#3{9|m9;4!{T;g7!T})HWD^js}kR8c`L{u{VBT4EmsRAM9ZO4#F^uiu`*cs_;6F zp&M!?=tH-2M1`RDs1aqq9zQ2g4)w|r)eYTejwtO0+JF9ts)hQG(T8rh21a0khx!_b z3x;7CbX_;18lb~N`=H)BqJqNvspm%QVKMZ=a;QH*y)g2N5q=i}yX7NlweXP<6%jr) zqAWMzw~M?&H!Ouds6*$Av`3D+M^rBi{bodsL+{Jz-%MPv4B7+aANrvO24D;H{+4>B z{1w_Ia%gFUua2l{=;|3!i=qFu5!C}7z39Q%>*(D=K3CE%=;)(8&ca zv4<`ghG94^`~z{`O8swO51r5jW3UNop%K*v9ncST*aKZ~0J`B2^uQSO!Ghb!CoF-^ zKaQwM=!SJL1e>8_)rjhVUKoV-H}L}lP-{XD7DC@@;)3=+F}|P|hUNIr)CWDV;CA$& z1NvbZbPSMh=!Esq3tM3bc0$+N^fUCpVQ7B`KX-5poiG5aq5WOPlN>`IbPdwa&70e3aio!2SoLY8VEN8|C*8D6be*<4#%^7HJdDuFJj z3!kGt=z-193wGw3`Ss$@YPY(23 zTSk7~V0=J-i29)ZCV7M|7=*D8>96~#|8JwJ80w!f9-%*iKVcMqFz_Y)*v4^;_QKFs z+6g0ycz%vu{(8RePksBX=X?Fc4~L<>biFEjfcQ^YuUcU2;`J&FJ(sLk<50V7y>dKA z{jKX&weS`Ez{qRsRW}R=*Q+%!^u~In`D8sq4?3Y6>abC`YQ5?Z{%O4$gl;$t{R7nh z3+ja~;XA|u?eDHv?a&Fkp$mqj97dsgaJ?#eh-0Wj=X>kLOY>-Xua~l80>=D zr_>7rpRHH(e@VUnqAG+oEj18(qj$s#!oV7tkVd(4)s-&G` zSON8OHmGLkt=XV_B8Oqz;`E?tV_Bi>taf2#__M0{+7xdn| zK{Y`iY=Z&V1!FKI<&7KE7>wLPK05Go+Xht)y|>dY7=f$dFkB0rcWh8GsKeYR$UB@5 z-LMpTpbovT21cL<>UUB<^usQwHE&P@&<&$8pzL4IHn^uP+CcY~^j+C3XoFZ96( zw6{|KljIAQz%Z+vM(Bjg zp&RzV2wW@jpEHi23l=^_IV^#m2dE!<;bIto%`gOg(Dfkw3EeOZJ#ZLm4{uNfPm?ED z3cbIgpJ50#LG2OZhXL3NV{k2Wwr^0|pa;(XHTijTgQ|k=6~r&c&?m=FVh6);Na)|7 ziaYW96yp)vVJ&pP2Iz!dsKez_{xtn1aySINa2$r8Bfe*dvzvZ}k(X!}bp3|BLg#OZ z>skE3Qs{y@bi6{piX1k>0PKMNAoai)9G3Ea#`SZw?+x+{{UPFn`X6Z*bg!aaFa#se z_a@__3;Am18}!0z7=raM0=>}p)&|uH^*>Rc9RHbkVGQOzk9>gqzzD2@F<1w+w;9hc z0NY_0_QD7pgfSR_+B@V2+F{-cnH31e_Ibp3^Xh2i(9|3&m+ z9gIN_w1-)zpbNG`AMA#H7=mFq1S2p8V=%XyxIUmipaYgdH`JjY*1!O)hY{EUW3XNL zA?<|P8rlh+AK~XE`URFlFRX_8C-ftX!4P!*gM5e_j>FK<2Icq-@qfy=gML^Ky`Qn3 z!SKI`7Y6>#ID8rZ>lo+I3&&s>+5^}}i66RQ6%33r4xwW`^}`4Z!SERC3)HvK55GnJ zU*;){!3t>qhWQE|a52E%(7DE?of^OIby*qDI0g>;rQLTj`X!#xErf{RGhJNUV0oW+=-Oz{5 zJvOQ#=z=lmfw`~Y56*`^SPH}QH>!FVE83_!puP`rLYHHs8it5v_ zh2igQRLw8~eIkdQBLDtI6^8Z_;_Rgy7DLZL#0%XA6DJJAcBmh+Q3YWDMxdjVIA13| zSOT>}v4bAyff2YIx(?gO-?=9ra0vPj$8II{IPKP+15oRu z-lK>U`d}5*%IH5ihRdb=XySwcI1Ke;$V(8tW628)!5Zi-r~jb-1M(^5$B|Ddhr?2S z{6>}6Pk9A)&!1!j&;?td8@59a?1o+#f>tPJGLdT2P z!3doH4(ulHFa{f;_7Zx~4m+R&2A~tJhB{meU2qJ#q4qBE!b0eUCC~>epdY$m04|0h z*aX9{4Mw0J#$XTBezQ>xKsy|Q4j6+@m^%nxW}XNG%r6*$%`o%|^8$KaWjsTB5AFL4 za;QW9@8~BOfGr}2?Jx|xVFZSt=QZZzd&pr4)OxXlA=oQ?o%X&@JNsxa^uZG7hZWHC z2Kkg@*bMbmv2VejWLH%R$xCZ$rj9aMvgLMRkVGHyQ5iis~C0-c%jCJg9#1kP8 zFz_$@K+nI4>m&4G1@u7|^uxt40GnV4w!tv;OZhP49BNa_EPRFaTSjwx0D8y5Ruyz#*t_pq+o`coX9i#x^s5p|*wd1++sibin1% z3AK#vyV`;o*m zJEkn3QSY3XDuJ#YVyX^m^J2;e{dwq1Ib01xa4n3$F{terQ`$dicYch&4^N(UqJHT4 zR!nun2n<2(+cC8UI$#v~c8T%5Nc`;@Q_aw~TTBI^eUF%mK_|@p7y5e=KXk(`=!HS( zDT=9r&xvbq+7Cmp8fyE*`1|kpfi2Jp+o1<`LqA*%LvSq&?@RmtO`OmUwf$nM0(zhu zhKggVP0C>xjKLt(z8_OzXothl0k=UN77UX|=zy^Uh)0eOB%ja=J7EY0p;kg(L=G+g zK@N+cb`Wtu9o9iFY=!~Y0VA*nIu2$$$T1v;?n7d#@C)Rn*h4Q|47EeaBlN*;s2@iA zp&x4NXor*jhc2i?=Mgdf{yX(SKXe~S-e9PVeuu6fke?`W*a$ta75ZQ&48stN!L`tS z9PvRHw2z<&Rm=yXxP9K#5-pF=yoq<-jtf%6#8(04xl1wC%s3qx@J2I9K` z|Ii2BFaR6n*h4#E4E8|%M#ibg;TUw?hW$qTG||t{cRThl0^6YHUgC(+?pFN6*s_>v zkmLJlH}tj9UKn|Rd~G6*2Zm`({wVVUdLE0Zyv@}6B>fCEKjRC! zo?<*hAMAymF7&q0KQA(`q4pB_f;tRAcYtv-j{LXe2L@n+9KS+8!w~F*o>yaPK#pMq z>OHI{TWJR@hT89F9}L5K7=vEudyRZU{rBVzdV7iIE8={e@dX`y#1D1Y1pOi6gCW=h zwLfA9T`(r{Rpj|={11>n7!AxaLwyb78an>Qc!n|P{09AhGA^J4wn8uLfUyYvrTpKFE9ij*igM_Hv0=tN zw67yCB8QzY3D(tH@ypMqmWS;5c+`qh4zszvs>Tf-dNRe%KDRZ&+WU9fqL;4#ODCv!Snu z7y2xlRFxd(Y*G!-Zr#M+gQtGj1p_byHQOe&7V0nteK1cWF6e+xZIdd89_WH0SP$*9 zHYqQ3!*&>e0jSO1qz0f1MxcGpCcZyNzF-M-tut~K-7xY6v?1eEH zhR(U0R1|ulHXDC%K6K36q@2(Lt6&Jap*?StYJ$!kH}QAo@t?m*4MH!BK|jo$gFc)O zBd`=|I}smrz#6E-dgzAD&fge@97Dexf15l)FO0&NeUmEO0q(v@Er!}2v`>y04AwyRVe~f)98P`ETSmXg@iCkD-XZlI zOMK7)OP~wt&<$%~05-rdY=JS@0X@fU;(Lh10f%4!ZiC+AH>rvp(TBA#0vliqdZDX= z_@TCdJi)*T3|B+@`HUCnx_~@<8##1BS1obF5Nv|_g`4<3 zBD{$Hhh7+g+Qq~zyo7Q49rQ1yUg*D!`3W8M)CaX|8E?=72Vo3GMBacsbY4fh?bLhy zCRGjf8<8;O5s^gc^G& zFaoQf??uKVbat~IK+kKNR1ehOWc)yTnDMe3$FLT9pa=S3E7U$<{KCkG*g^Li`g?cu z|HgcQ+FJBrX!d5lU&!%}o7Ir8bhEPWL0lD^l?!SoY*ve*e&%MrPsnlIW)&8;Y*yNQ z;%?ililO)Sn^i5;2RAFf9KXL=^~mvOo7Fbqmz$NoCw4n*;qRhTUbuz7gHAgR*uvjE zr{7^Qbi#7zh1D>0;1>SwIeG_g;roEdOSh~h`vP?6_J+{x2P)UJqbG)IC+cefc{grsMXMQ2J!8UUiB9KUOD}C zHu1nv%@)-L_4Bsy{XXBhPG6A?SVbbXg+4eABe3uQ?B1e2=zN=T z0)6jnQSDHFk8uJ6A8b)22O?iXexM&Nh5^_F9UqY|=!HRO{|E7vFusNuSHjP?C@&1G z+oHOmGfEuL3&({UiT@z-{1yEQBd`<3U@z3Zrv1E+Q z+*15Q2aLc9XxGO1`{L-qM(BY)=!4xb00&?g4#ODK4yFEC!Ce&T(wF$?0`D#g>D#zemDkW(0(}e z?nqu>c&BmYhY{EVV{ia!1>N#LsxuFj>!!T@z_5-P3%3&D#VGPEgy^MC2P(SoR7xcr$P&ZdL6=T{mZJ|VVF0>e z3^qgOiR4SlVULuq> z#u*I3E-80o2VF1Cl>g%Q{Q?LVU5pc{6<09*|nm$SZ!9Bvc& zV)AtocCZ{eufz`wT*WwtAsB^WXjz23k+`AvHrfqi&;y-Kv>W4lnBvbi=}v(fcWO&<*RL7kZ!{w!jc(S z18blg*30oz%r6+}B%i0z&SzQIp&fQWC+vkT7=}JL1|zWGbo8F1U!en5LLIuH_XWlW z48TqphC%3i8M`w$h9%GupdHW+>xHjUAN0UMDes}(a{PPjs>$0*?1UlO3$-_yuQ0Zn z{GCa>Z_!TZfo>Rr%c1vA%ug78oBlbAdfuVEF!mn(0UcrT20eeppUBtHt{-B*mi~j< zC*%eC{y}_DA3_g$J|!*}dY|DB+9Ryn&>6)a48yh1JHmWF8@o~b!q5ihH}q~KF5wpD z%QgtY1+38a?RS#(0Av7=?~+nCIsbuVt$$f1j&c|;5 zt*Q|EUy@1W9Wi@xEO|EGqe|PRX*s20qFideqrPQ;<|wNN{JiB77#a#EZnMw zp?1PnWvQh;XoqfC41G|CVd#c-eJkISW4uDYlrP%K_u;UsBpw)otxCJE7ygttt$Cu;?=4g-#fTRnTrRUpcp)WyxtQ$k`)rPHtO{#o|CbpMT3w z>{UZQMvz}{QhwnnJI%W}x7l+1?#CW*xMLr&6difx+*(~_c$o9Z2M0PWdrbH#q)dEO zKi{WzgWAK}cCeh9UvOG}u2FY0vePLu{OI`w=OP!I<@`Gf`To$dAirRV)lG@TC=0+^ z$_}3_yLfJX?t*#JmO=hKdRw2$moogF9It1X!v~RnCoVr7c@^)2{9A^+!bWWB>m4i$ z^9$~`F3c}nW?PtFbf2~`zqobQg8b5@vlrx-Et#X|x8+#>F*m;q(SrP9R8Ylaq0}$_ z3P{x*cf|dz{J;4t!CxKzuDPpEy~TU&cKnfxrPc-cg-dLDeyMf&-26f$3#59B6CLTh zIX~%B?~DEgX8or!VbOuk(J!zN@zSGxb~nrn&V0@9OVnv^7!Kb;V*p|+Y zuMfGiES8JNapJlmHbux?DRRWd+Eq?j^wmDKs|c#hwWgT2uDE=m$WzA6MdpMxCSC!> z&FEV3e}U-o5}6O#$;jpy5>wWRtUN{5i|i0&(j0k-?I5zf6J)ZkMv#36+0=Tuh;&_P zEE{5@;b8w1--XC_LuTY7?z;q;_%YUMWU}5?Aln1k$-I~K)~e^{O5SRaS54>|>-YJ_ z`YrW&;$^^iiA?(BIP{NBkhLSb3|V3f-N-IP_U#0{5V8vrWYPy~ke!FDS@cr+z}h&m z_?bD=Nc8jQVq(0cU4_UVM|QkOXxFXraZ-wWRf=5Jp-SY(yh5LC&m66@j%J#nGS}Pi z^A&#FtZOsQ^=jMW+2(o$=I!{B9PG@v*Y4e%c}-?E?qF+YhReF1uqb0M>v~bH#d5%l zed_IayVBP5Mft%TTSfY!j;-`V9rmwwPn}m1*HG(eQ~gkiZWX#i=-xrwwK>E)b*`fp ztL-&vnL68$=#-%2|6QN@N3zZbh6*yNvl^X?U+Yt&ah>?NnhBR{{VbtQ znIlc;?)`i7+-{+|Io5t-j>!01PT4z@?IL~{e`m(WUpMlB4D!{;|CAz^I);$1M*flb zG3t14vJQ4)mZiOYYF{a%j*H@T*jdMaok>}rQdYqe&m;kJY}xYaI5vq zg#898(!NG){(_CfD0Tl3U$PFg#pR+SFOm7IEH6REp8~MF zg3QPxaNi-Q%Fh))70Bnjo-8-kf8@VJZmfrk@&|LQiWi;Ya?n4Dw#&_aaXnzhUGLWspaaKY={)954Pg zI^<#Ghwxr!9ULvbQ_IZlTgKR8C)`IM-6j?hm ztuJ{TbR*l0UgFpYAsbGStwHutiY$t3AVp>&87os{c4XZtvSMT_Qe@@Gd?~VOWJ^AmbkbROOb0Hf{ku65{hZI>8vOtQg4cXHvGC#8ADY719_oT=MkToU9jP)Pc zHOLN;0U00L@>a&?Hp=dzjHSSMiGBeEjmSqH4q zU0jj_`?rV-y`S(to`dFz9F$V_{owRIWFJt2-p%O!RD7hI6Ro!!S>PJL+%tI59Ypun znRFkY(v`KU8{Jd;`_zS^OMhBx%yoD*@;2meO~^y0d!^ z^}TPT>lY(04W-vxf&50~FHO|jW%{o{p8v;mc?0raXOOobuUM6?-+}yZ$d8Kqzn-K? zAN3#~M_w&*_BA=yN=c_t7N)G^%|3Oil$m2#ZUY%*W0YNxp{xqk0m|;7%*(!6dt}|r z*T!|Wx3gWkOJCJ;vuWi!$#YNS9^@Znkhda_B0m%ziThfDmUE#W`K)*Q)ID+e607wm z-0(Va9=CmDtc57Qmh##0J#c(pvY)qEawaAmdOH8c&^>vOYhcmMH0QX_W4$%MOwX@4 z+qgzy*P3)?fLWRRqak^m9dY_+u33{?IZ3%$)cY!XIYADf1RDYkCoh4 zV6$zgPyL(s=2+A7i>!Y&FB?vr$Bd(sD3YAjqx64V9hv4Wd1~`fpZ7G(Os5W9ZcYPm!yCl1vRi#{&)64@?!Vq5}d|AKjQ}=C84(n{5 zY;!>RwSW#gA;$GI?^EZ%byKGzV?39m>q2*rc)gkL8QbRBjP_67Gd9LVBesWc=~GWh zJ?0wyqzq`peAn4x>80$6sj|nVOycXNY{59!TIpj{OC6(Y(f#gLuD8;4=cMZ9%7+tQ z^(lM0ZhoS!>?54$4x>8~k8f(dwf=izxs`h-wdg(nb)O0(>v2zA*6;Y8j1%Y8CcIxT zAuhqD9s9kv^{Fq#K4m?!{wJX`C@$jP0Q#Syzkj?9GS^u?znc?Zgk&y^p%eLUpX%oQ z#9Sz{K4WNqA>m-5HN7 z%hM6T$PEfgcFS)mJ;mekk z@91-_jGQ5EyhOGf*?q{^icHG7kToahiO(Q14>G@KiO&`Jxzf*TkXv$t>cP02J;PFC z&u~(HZV|F^%5R|j=E-vgXM9_OH9l0#&;M|=YHm=y9QTnh&YzzcrxJsX-kI})=5;kO z$WBb!P>XyKa&A8xFVSs4R+gfR$kM`p2P1D3O=(BN#14lsiKvtErId3CZ@fg-i|h_$ z6W3_6KC~fgK-R>2&Hh>9Jw*0H)|)2cE~R`MxDH& zYT9wD=T}=_&#yT#ziwgv;)VGQC*?OTWGOfoaf9)}CApXy({=dG<)%gLPC<3V%yUaV z#rs)K{^Aq!8y1>=_57Bch3vu4&9Adwn|c09f7MgR!QTo_-n(}qt3XzQ>}UqR=HYIo z(e@K|oLzmtZJBo8tk&5}=GbDkgA2|(*kapNE#v4uy?ao7D(13fd*2vue0pK-D+|ACv0Sl7P@S?p=hU_w z+o4%bsteLVGDI1+Ci%JZVn|8|X`fj|8wKHvx&ECTL zkL1loC3a!#jw%YO`uG@`W}TG2{9%?Q*BHY^MHb7sdj}`a7YXC?*@;$nnDl(AKb=Rodgo6iq;DHFTHrHsD#(NtHM*FThxQEprpQGQuU zd5H3yeS+paS@O$Clyj`;Jv(LzKs{LpTI`ef#msi)nv1ZDJt5VIgeh6 zG zk*v?{*7VtHj@Q-ruP)}XDnV%V%@p>G6oZT%DOTi*+7C!TO5-K60J0iniF&J%orNqhrnSiQ1U<>e7_#G#9W35X zOgztCGLel1Z>%!wp1&Xclj5@!*v1%*9yHeo0x@@gVEP@j02+3yEbMKT%?laV{^B z|zU6J$I zP}()`3CSys7@P6-;&0YLK_zj@OE`!uCq))P_6_wW?xn|(eTj_A0OMt}|9jkvKn5md zMI6kr?c$A-f_)uK=UlQe+Nf_ov9pkol2KtW#1)6|x7A&5}xa ziL4Hp7um#Tqa0d1{C6v|<3%ZDt-g6`$Qb*N4s`F^4qd5h0NoCB`IyUimGb`(ve3P+ zn|u6}y5!@98&jU)lKEi&zQuAme%K;%BFry1k+~=SOOV$ipJ07z4;%_&oUFpt?!UIa${y+n(`dNy!Q^$~Lhi=Lw}X&$y>(nRD8R?G@cE=rIUUy6Tv&H5 z4U5D!PTA#@)ks-o^0k`v~Apb6W6Au$+c<0Jc+r61>t1$ zjoeSIJxqfelG@pf-i7E%9r7yRpAXqh$R_qt;;$3gVq`4iDS7)*lD|Rp>d~7gdc4G6 z1erTQCUx~7t3@W`PJ8j~ls=m}tEu{fB(y@tgPs5C z%gniwwXd&F?rRyNRoDfvOWBh#=FPK;?5E1mbD}qZUW3H*t3PL-iDiPU`(Gc2o0R_J~(cj49DAMRy6hZK7*S)4eBAw-()hPv{Q+Db;V1ZVS4n zmd9gwJ56^ohAQd}pxcJ-ZPLz{(Vc#r8c%p%oaM7L@uwZhXMD%S{r&#`=1@T&nD(%Q#N)$$#}k5TiP(R z=*e>}+OM~xU3_EUw^{Nn^U#OCV@?k$uhg6ATqF01ZcJVqjQNY*QtYzcUt-5+jV9Yk z{2}bB&Y+z+#DD6H@v{rF6=l1BE_rj2up_Fc_G43@nVdf{y^YT`n$SBqL2rqb^P%}z zmvQ~l9xs1b@{qiy{CvWZtSKS%9>b5E(^Ag|<_DhUb&|w3hHf{y6MN;U*sQJzpR#8t zLLUqIlVq->Ei>UITh-(Ay_XuXdt( zqps!Xy@#IcDJ`cY$Y<()Aq+#yn)A6e0y@h{QO==cL3eQ{aQ`j{wHFe9M9y%gv`kb z^a{@ks$cM4TmNR_8ZVbjx0q9ynZ|~MVQOhW|9152ME_m%GtCd#i=CA|&bzQ(fo-jf z^XE+4Y4<19){nA%qfW*{Ig9lRKaAgJmyV93~`1_SBz6ar0a^^?&M`U%p*FIkLKjmx) z+b^(PBsqK4w4EVmf5?`zO6qU;fyMIa*+Eq$?VbL-yMP<`M`l}Rq^-U9`s|#bI*a%6 zGTM)<=v?#uoX8}{5oFgOJ0xCb=5v>o&2`dudrzDv4`C#U7R-}2I9X^;uL+vptI9V1 zZcEu?;jJclNLniJ)r_xEeBI8uBX#Yv4osfF7S6Lh!tFxYoU@k6ldti&5>E&p#TWeF zb1J?H*t{0k2Gtk5pP_%`YW&4)eJyKJExuOaYj5$Dv<6%-u_PJi0WW$%^ortospkQI zyqu*w#m}{qesqdj(R&X+yUAERBxH>9%zZ5LknKYVHY{)cf-=F-VEvz4-Kl(9WGUQ%ZVvb`>w`YcC$1dttuO#0kB4_hbq zY=e}YPuZpMvZ?bh(=UE)D`RsUJs*0;+L1Iiryfrb|3m1lM6Y)??X%H7=6kj=RcC9Q zooP_X8oYQRF<-^rA%}ykK5X++@Bde$?#A}pR|nOg?3?fJH)5D(4K}VoU*B z@wx1ppbE$1NxQz_9BO>wH0j}YS$L8JmKuENCvg9?JcDFimFcuD^SBOQ2YZ6* z4c==((^q1C>1>YH}8EX@xIAC|M)yD zr7;rM5Vrf=6jXPJU-FQcyZF9y`8#c=&nLn?s=s7HE-n_er5mRKsWE^ zpgLW~@OM^j&vDSoU&&`JW#>}1K*~~b zZ+=Q?q{xV`1>O2A@wq9xVj{k;d;h2ShOlkV65lq;9^8)jX!KWInCZduDLFo?wYIgR6hH=BmUVZ^-GL8 zGCwkIvl}nTOAWFRGU=z(yd*x4C}Y-(ZVcU{L^r7|lV6uLzyE-qc4vHyu%4vtS>(Rh zJu{x7jcdYjd|iaE0V{RV57XpCo)KP=@pfJOx?9%xT>ks$uAut8tnnZB7-MHzpL{W8 zMV3T!$!)2@-$_e?YMA%hW2V2f_8OmFgp(I#^d1s%xkXv5QFXMoU~QfoL2+*sckVozt=9t&(v6y#X50<8aXaMo#&R(pDD-EpT+2Y zg6<9y<4$IbY59|#yLD4qf65%`#QxWJPhBHVUDr(AU!0HLAbK6>O<{Y4h4_`w*G;(l*Beqb*CR-@N6gPz1ZhTbal*cKWunJZc~*F(r;9?NqAQ@Oo$B4lQ|xz?4U zTi6=EennmOKsqufvR%a9*jt&;78(0@$_}PX_F1X(Fx&GyqFWQUyP5aemVhy))5eSJ z$*xQuF46`cwpUT-*)rDNH*Ke#U)A#Mk21V*b;qZ=lMkeE=9l(4&g8oNzW6vd+Go8~ z_U6()3uQf&J;z(^UbC*meT4CYflHDfG8DTq>`Ime)!SlsNfx`O((M|s`vZ1&id}gY zyK|H6O3>}ZZtnd-)qzrD{%&x^%c9=COi;S zOYxC9kFDmd1mk=vd3K@Oh3=!7bbm1wo6OY;boYGFyf>|_f64f5(6o8Z?Mj}Wlbif! zFUUwV*w&72H4@?XGPyW76^`{fx5dOaK@tm{xdk}x*I&<#i zp6UykZhsl~h>Fj)Sf2cad4EN_!Hg@bpLk>6k=D*$I;&N?&$i5J{cncTw&B~0?|UAK z`#$>rpYKX(KfbSjnCIH1{fb{7n{lsV9nUmyC71Q*u-Vgh5>tmVx$T>cM zA3uI%T{Gu27y3Ukzqu-FLzwbz$`6W{Po2-qiNPg?Isegn1-*Sl&$t)MFHUhELFyqDQ}{&2QN^{~~SQd~)i1EW^ATU%mKZJ7W0CJcszsRmy!mS%>4S{IqLgo%NB7YoZfB<@jDqT#I?H?P&T*-aA!TE0a(C#@@t(-SP>$e{~u4 z&txZk)rH+^?4Fdhtk1NYc3)U$E6#QrE|mDWxS#J&|NL9pR!CVfWe-c+uFVu{?YC>eZg|3O-|e>xVpsW8JkI| zW@OAYbXdtTWyJ0P_52I6sO1J!ka)cqad{-nlO1dl=8LH`|`v)Y*=hZj5!{>#?r%F(!S` zMA@^Ht>wM;vuCH7hsK39yJ)$g0cZeU>>cln3dd1v?r-Tw7STH~OHpY1q_CE;3?;p6#-*}an ze8{Vi|6TlYzRVm`{2SPleQBOQ2C*H*cEhx`a%%|Gns%*ku(`9`jx_E$7hl49{#sDA;#>M8H7|Fja z+tu0HB6)G+Yxws;{+=zqE}zlY%h`NMUb^w+d!75~;_C?0*R*-zKJDIF5+mcK;!?g> zwsQOPQi}dZ=o@)i{q+ASFHQJ5F39tq(w2v3^wl$6URL94tUsv!WaQZNHEmuxa%?Y6 zlb4#yxCiyd_UEM%{Z;52d9lpcmTAX}4_^oTF+N`2eQKs0XB{sN`nSk!vHW#aP+iIU zgnK#iS@`50U&d7~dWCQDdBSY^;wH1sY4g{XV|#gard@$~Uu`-5d~XNUi&Af!yS#UT#&2M0XU!OgaYLNNJ;UzAymvE%zt8Zu*+#o|ozb6hLb`gIXHSZW z(eoqLhWDm^n<;*M$`kE2zU2|Wa6(V#Umdzpbbro!?L+@GeJS@JF3GsM%DJi&KS#XJ z??A}-e%$nvb{!@+^=xhCsV?C;63Oc@_78>myh6kN5z~I!{$+kVsAbNp_$#}dXL#2H z)d4%;?~NJ#(N8v8{tlV_$)0XC{sumcKbys+XA^tIQsf;{5Av0~*S`nDtPV2ozke*Z}F*NEMTBlM@l@!c86C1cBK`)QUq#NTTCJv7E= zs^ahX?eI62WBYg-e}#+L+r+qUB;)1W?eND3Q=6vow-|rlY~j2`KWH~^hrgiBwpVWE z@gjNe!QZfo=lw(cWyo4-3Hc^bp6c}~CDLGpCQjOPj2=-NiIe0V4RDp**L zp4+dEv*PcH?eI60W7{W-KWSGR{=S#jub$+>Ub`57nc7t_%WT(GbB*yNcB`>_V2^&a zNygzG>BXlOCUOKVjsS|CkxStgk`r<{a6tHcI~Qoo>%*e7EP5 zOxJwUkGWU#YG3pEgQnm zJ|DcU=FH-NobWtr&MX!)x%S>h*&XHmNxzp-P|wYL&vadQn>9e>B^xfzmgTCZfJH(73%QYdtTbOczkB!vXiI2DN(JwycCDobs z9ndOt)}Vj>3H|Dh+30_<9qZEAcWjqt+0RM+#n&)LPwrQItZ2~+%{C->uWZl0sm*HJnkByl_$$4h^T}oX=JT!`&*z_x z?1nYzZKcTAgS#oWVzW#HDeJu4Q%XIj$ULpV=AE^#o4*^d>qI|JtdYsT8zA{!jeZGr z93^!a=eeohO^Q%fNf{qy8ZYtRgY2HTzV_zCzI(!d^6w0Y|Kc0iAEBQw9t{6ga!Fu5 z|3{gZvYn)im&~ymWX;H$L_nL<)-HK=<@kM{ms>U;|W#|R5DRcL$uf%5Elg9OBTC8$u`Jd!?}MzIi+R1#@iuS>luRwgG=HT-~o$h`-BBe`)^1E6n=HG`n2%Bxj@Kje(DZ43KT2X4qihU2!zah0 zuieZ!aYAOyZL=QHFQQEJzr%ZZiM}%~GkhfIOIbB#QS=WIWuxqh$++q%`zAv@V%I|1 zS6S@*l;vF;k2$5jAZ59f9XVNF!(@GHDcdKD-8f}?QFiX6oq3N#VzD=JF3e(AO4&J- z?Kx>De+ACmW9Cs-Ls<>S+VM}s=kLUtdS}wUwh)~r^qbM=W7&y*a)~o3TTaR-fPcwWM1oJUA`u5 zT{dDWVUu$?_Njd<hJF?eKW! zev@<5;^cFb*mht$Fkw6V*mm2>UUL3zJTrMizj}c88PDNT=UvHl7NhFI&W+u~=XXhc z_rcV~Y6ZF#=#LJvm3|9iYrU~w zt>L}4;ZY+$+3WAhdVe{Wjm`u335cIT(@)xYNj`Q=om-6H5^O55pM8_LN7On^`=q=r zoywcc90Fv|2&R;GxmpxJ@aqs8L@h!B6&tk#$(a#>=V%w8+l3p z#<2YrGA^Sm+785;WX}`H@mu)PH)8(@y3L~dpZ3h-Px>b1_mt+N-;V7H_Q0uglp-Ux zUdpXEC!co*k&RIw+kN9@%ztD<$P&-b&A0b}urP%SqcJWIZW*PGnD~$SRTf zkR{ezi_DuMYe42nk$L|gbMFHeSy?as!_3(g7bH|vQqob$$Y>))C8e5O+1=S))X`AM z&_+ciqryZbLnXl#4OdiBR4Vk6QF4unj0%edD(aGPy0zFRooC1` zz^VtR6ODuvXYN4b}y_#9;lfu)#)PTMaf1E74e98tDgn5+?QC`p|=_&dNwh z($@L}eFSb&=j0NW2b+c+tBB2tU_XaluCXBOB+^1J8JW(dYB&Xj28BTV0t>{!(M>t@h*lv3)ACW4*M}ok9QSpTw@aNI@mX1 zUh!_j?Q4eJZrBr=4T<*v>|YEv4wF37<2?f#fa&pGgpI)Tc&D{8#-h#AFBWH0%}d zpIj2oc~}likM|0!4W`FC>o)d7V0wNBVAsR+{4Rlg1g6J31d~3@WfJdd*hMg}csJs9 zzG1f=CViP}L&DwzJJVo;Fv&AL-V?AeOpo_0O!_xH-b=6zFyk3AO9ER2)1~n$}u7rIN<`wUH+&*X6ZH0YCvmx>Bg59UFLRddc@=V5<<~pLUKR!Mb z*%@SW7#mG_$xg&&#V_l2;(+Y?(nZ)VGkLJp#(mKn946^n1dH6bFZSF)e9Rbov`>|{ zO5|#g+o-JB_G)1l7_12vGFS)fbdAY8q!(5Mn~|^>>!<$jbE?T>gH7T!i{9kN6Z3ir zHVV`8+G?X+g6a912m2B%A^%~0hFlQ#X_y|@O4!{7tA%~SU`?=VH6~@J19m0MtL*gS zb}4RpI7eU?!1QoV!_G0}7GUKtJ)EnsQw^4L2V;DL6~K!n`E0jIJPe zBXW9rWZg+0Wv~G35`&e%!Wxq>g9rs-EgG>Bvc9^WsSr6VF`&Np`%;I(u z@^9xp?LGE)>4Y!Ccf(H*&a?055K^&~MML>sxETk@$3om9xK)XcnUCRkK1zM9M7AB- z0Y}zj9vtKla>Blxl&N;~tec%NXF}d3zAtPLxmU3t5c|mK?+dE{bvo|Fq__3Sy=u<6 z=DK{?_p?+_xk!8p+8GBCt`CWSM%;OZA=diXCCuKlm-tkpcjztqqF0EXiVyj|-O2Zh z?0grwR^-CSy*nnS)(qJiia);;!mSRuTI6o^6R)4#wdPvIK)V08sm^_eE?X;CLJ%`K%$eb=R>b>m|^^98?e~NwsZa?7OdU&n$ z^nF8>R_&~L7@bx0Uq$~%2cmzit-nS&Q{VUeGH(bgWxa!qF5^jSyFPcYNqED($#t*} z|N3#e88`Kgs`d8b!}3H~>6S6P`W}8w^3=nRcs17397XxDoJHXzyH_}zt@pz`qkZ_eH-aW$BOY>($#G*>gVsPblPG@yNuU)ZIC3 zc0J&nH%Mqx_|{5nMczG{BdcD{_@{&P?n)dd6v297dY=)5-EXi;SewCWVK*AA304QA z_^2y~e>-58!Vc0{FYF>sPRjKVEDZA+CrsnE8#g_i3$S+@Y!&u4gXP@A^B@K*fE^0c z!&wT;fa&3^fTbI95!frF|0X9sLH;j+Ey6ma?fKv*z1IZE-E{xOWKlvlq1O8)Ux%m>%aK zY*>?%ys3nJ1@>7nrurw}gHo`H`Lh_eQy<=^zHwoF{Z1A4gmqrNzu*K|#Z}g1deLb{ z=Zu)WYh&;95dX$;@5bFM3#$FYt;@qr;<$?2eYojy%(;)U3)ACR0Q-a{Cw5C=*Tdc# z3zNOiCw41wyB#;T{E2)m>_(UwMv-sD?K(rg3s#%L{vd82Gvp^=bt&x6<93xHzXH1m zX6_qGcyc@G7YzAA*p(^lm*aM+AzuZngq32?E(0HpwJi;})f@6{u**`|@5Sw6Lw*Pr zhP^Fj{{u1m)3{x($%m2YgIxd{qG7boXrZePRA zEdx@H>tM}4cq%$=@rSAx{-@S0T;6NM=owJHT9KJB=@ira;bTYP@)+v(L+asF1y@iI1F{fc+no%3K?+Uvd=ueTy!0Q13);NC8?@$(@;-2RR&x1LLw zb74!c8-UjDZ(FbI(bN0=f7y^KW$k*?ht0enCbu2pUn_1aL;IrFi+_LK5C5io{x?{u z{S%ur*gWz(`=Tq7?)#IM9UJ@&Yoxo_EP9AD9pjV_+CS@)`;(V`|1oR4e?e?EWApwA z(qH2Ko&B&$T3@wBI4iL^jm^;0oWGF1;+S>Y4)Sk<|8r~f6_`}*Vco;*ef?MB-dr>6 zN!Y<6#FfLZ6EEpIxSeM46tWLr9!Y&kJb{nk@RF(4QB5ps#?R7GrNzsP+ z)02*ksW26GGhcpwpZ$G$)TM1JgPr`7eNmPam0$6;jZ+aah@)|nzM=-Xdy%`x@pp|j zhB@MK{_9dS#QE47z}9oKPXAG!ofnd)+2z~XeCkl#r*Qun?r-9rcL&7Xd8dxJFX6tB zLSMp~^J$(J!@Y2S!rFYCKPyF8#a1=8p8jvv7}mE%+sd=iUNbrDNVxm3^|u%H+21WD zUfbPx^Z6rjpTPaVpL)9oa9_av2;5b_i~ep`-~KG2%Hyoh&{rWN!IewOVgQx}bIYCd z8_U@8!FJ00<+S~2Zw~RlHN_c1@uL+#R_7A^?SlQrVEwQem>U++9f3V-udn>olnj-NOY_sUrwQzQtY=d6 zSM=_bfT{Y)IVxX^sw+~bI&iP~h25u%yH=-S2UCiWYeen|sPa^oGHg6O^3miD1%0WzO^=c%FU7}B!a87w7_1j&8Egpl%I}ztz$a8a zC%mz9vLm>kxa2)HoyF}0+$zN`m!$6!>`EBXRhRf-kq{TbzAl7vB40IeK0~G6Q&NEY zA8`MK>wZgihNRUhwl4a^zUWuevC-D-v_Xl_F8d;zb9{Z9(|q^aYtqs$Hel~RUv}C+ z(l|w0C4Z0R{KV7?VyhWjhyHP2^gp?`@(Dvqdoq0)Q47x$h}cTDq>1%8)|jxtP*+{W z{F?{6AJ!@)UUy`M$wzUV!OgZzdQu!ISdxxe=)8zdE%(-wx43zArIann=Q`XsFDK`f zwC8QOoroJlw4^;2@pP}&%t_i0A^$1lzvjq$wF`U*GGW?RjqDP7hx}<@^eXZ!bz1pu zvS*C3WMaL1UlL*sUr$Q)+)MZ|<_)hnWhG@^_-fWOCh1v?tuVH>b8lUJvzwmflAhA1 zH{pIg?%x&nvvJ42b^08R36v)9KAa?c7jtD z^zn=T=yX-Ir4tJwTiC~W$3Jr(-;rH2ox}dLRAbq4Y&Bpjdxdqb{j%lzt5=qZonh=e zkDceaUnlQb-|>y5vSWRLy7`y?nH}i^DzNh^c8+!8l~gAwdHzF_yF;nZZRpPbm1i=Y zxFqSy@$ZKd>$B96X7sB5W{R^S>D%!?DIH~6Y z`m4$h?kl(-iL-Tx?XMJAaqGbC72M47Dt&T4ZZG3@1NU0oNo$|;_&90pmMm^Vh|QsM zsx=z@F!{Pp8zJ90I6uWSRgL+J{*}76anxQX=UM0XWalw?E6*;ZgD#iGCAeGVwUmo0 zWUof{6z=7@=yT<>OaXhT!jx@AwgK6oBb#jZ?3mpFWZRG}O=;JbmHeAUwiDUgMAoc} z&MUvox+wWKjo#1EQ~mDsH@IzzDi_ixmOR0H?|{*Sb%GG=6?6^~zqmxM8ny(}`>=Z0 z98B-ST4B!^tP3^{)BD|i*po1Ke?IX(r|+Ty@BVkdgL4E-CNLurk;O1=w{( zZDdIq>c;JpxIN&wIcot-)h*vA-GL`=s{KOt6=e5{teMx0=Dgb7Vv!x74ajiHh~vLq zSCjrdQwpKPqXeDLpd(lcZC50{CUMU=a5TCi?q(V+xk+Hp6<3g*M)pR>mbT8) z;D#}TTY!n+37cq-qQufx{M*g7rA&ud&S)w58Q$oVoy)w@-# zSFct5gx(i1B670R&iirXr;*>_gweB|{&QlfmGoLg@6oJL`xz)Bz4WtO7050i+lTCb zN#AvY9i}zXLapzNq(}^DyGp;3miG4S(I``K_UCMSN#T|$+dYZlma^V}?gQvbe62uo z`pA4~MeC_iQRQ|Ky_(mJMh_6cl_URrm9|=AQvPyb6)-7twB0@F%(jIW!Nc&ATz<99 z%i&iWT;f;_Z-rNiJn5Tao=XRkFpW}c8C~dhqx(+LO{h;d#L9}~VKZ`HK~DNa>rEd` z924*)t1B#HtbSx)MfMg+w*!z(87AopPh_-HY)tX&Z#*nx=hTBo)pk$mBgnpp?77@0)%k7ldLm`G zAK9!!Mx(V7|My{c?fNVuv2#)sVb$i9G5IbybTs;ihu=JcAE4|8V#7sbBrS^3xfdO^ z4*lDDBklYleau*bd<6M{+)?%ZMeE;@H|nWO3)mcw`$M8jy3C;WbM#udH+2}Z#o7;% z9Y^-`!$zZ{+*>y#gh|r-8*X|R#8X%~cj0p?l$cE-~}wg1RIjqIhOoKUBI7rJRIa-GN>aHKOHOpuFx zk4L>5vI)6kkUK)=EWiHnI`!G-^@=c+#^cy|>8R1@f6x(I->~hh*|yjFznS6{_Nrdw z4l!>ycGUi!;^Vfxg#PP1Z9GDJrEZ4M`4T!WGC;Fh_9G0eEdR)J3){|@8SHH@8nvGf zHtLM?rTf_2a~#?0k$tzM8MW7vP9XF5t*s9^E;Lz_pVPe@tiyOhqDLK@QtV)dG` zC~a{gvcG>DV*&g$>n8^zHu;}Q&u-gvW_HJ>^6V~tJ)16u`j|t+Ta;W>N3iq4+ehuS z<6W%Xvf8NXKfLrLdpv5|w@ZGlkCA@05jX2($4_QaEC@1nQ&S8zHt)jyaNLiQ zv|PKLR{LGi6yq)l+dQ^j#Fm(nOV|o*TI?%gv#f71XM(wL5V-*CX;_9PR{|S_9iy?3 zBPTj?Nj^u-A(&m#|gX08FjbI4p-wH~*AT`#ldZDXRsr%`nx*ZI6{}%Ay+DkFfy$ zJ;^Se+(<{4IdLg1p-}T*V*#I|v`$H4~BSfb3cdABPvd zXEa(O+_|KF&%(>$Zxcp1ge}1$FsUnY3A0A1f3R%=xP;}6u>YmW<--=yeF!G^)*~NK z<)_7GA0QE(3P;CHC-EZyYjbt3L5Fy6BR!-%HaTugEqP$iSSx;5HEB)?*zIXQ@|!B1 zc9;0X=j`uIZ2yq+A$P3U<&yqzVT5?W#9y;NjJRImB=N}IXUj@FUkZJ@5ikUH`NaFx73{x*cV`*=H70T z*ni!z*MFDQzM*BK?;hE8Rq;pe=<}Vnm!hSQ$F%8ylFc1ueuwN9v1!Qa->nXbJF>fx zy@OlpQ&*|Fzh)a1W^m!LL?ZEP$5tD*)P4ki*YfLu-3fb;dkM=Lwzn`9Ixjo4H9NdD zyJ~B8WNUWqmhAei*^OJXo71;uxAE&pk9c|R_?0!5miG1k1-~TU8u4o$zvSM|H>!M# zpZW78v9c^~J;=@Nhuj2mv&bEvWbfhxdrQbYw~n0TMcz1TvdA4Q_PB%$k8V zY(!&HXDVS|hPmyIJjWTVwZ{P!xR*FOFQ!vwuDD{oGNYcE`=RH=&RPG$-USzqM&FNZ zv%JQaxwmB6Pf^mOAXdh27`>a&8|L16xyHNSQsdUXr15~nz3jW33qs$|yQVyqoD3S$bSE@=-Uup!uy+*|J_jI?|1Udb?SPvUljNW)v~ zSGcKh&D3#Y8$f3no#UnM9dVf|^Lk(4Kgyn|N-YT?ADE!;yofoB z#UE?8zp^jk|8k0NK1klwVe9JmQ#T|{6T&O!1!UPsW(t%oeqG3xM~GXh^jGh=d}C7j zOIl5%yXDe&J5>ltV#wS3$W>oXUnXVhrS~g;Q_pvN zQ(o)J4HACrl-7)@Gp*~CH960rp0`y?)cTXe+cI}~#!2?=JfbRP!}>SIR``3m#FKo~ z>w`VBv-^xXoQskDCbAXM=&x5FI77UYp1qPD%5L_BvfEg_>G18y?(%KpEwo#+`?w$Q zT_Nit%U(fK?O6~0-G9|+l;WEdHjcANrBQ(k;@pnxNwrRYcJn1`=0lLRm||mfU)qN$ zY1U8f&ASfB8G)w~>wxsVrRZ({fO{6=Vii`8Hn!gD zEQFM~M)bR{W_`~`IHzs>RAnyg-{HAtr{+s6&J5Iz+V3y-s>2d~a>Ym9l-*yxlL zZLYL6bJ**>W;FIK*A^DHGvHG0S8;m`H#MIy$~|Q?R<OGBzaN)~P>gapdq62QnlNhOxEdy3yFPgz>RTjoUn_@x(lGyO5Ld zgWcZRb5`j?M;y2NxwlTSOMu$9Y@inM)l{ByXG4D>o zUDDWgyG*%B{ubl*3~nt_Zl8UhO2;+wSABHk>J(`p<*ONc8yne+mwb5)d#ZfdbHEnM zH@G?H?9FMut?KZtq}dYkFCxE%dt26>ci3OikRDj#kT=CYA9KbQoN}$o4yb}7aahL2 z(YSqH;;?N$;?R@M_p3ddIMs%fraJUwS@ZJ8s)?FLgH?|z$yM1%cS$y*4 zD4%_fSmi%@zMDs*I|!4V&MZzb8hnrXR~=VS>+<~;#}n-wo1{-4I(MRTv7^J;7xm(8 z@namfN!*STH!fi_u;*dfirDkyMc6d#9$~5ax|YN;Cv8~4H0%FePTraQM7;{I8iR;z z7}*<3?^x*n?+fvthkZnbFj(h9Z zRo>$a@#mRDe?)f{-NJ`PqrVc}ku`MxD^XYStLi@~BVA9$`lcGy1K4@ffZGsuvyhWZ z%6J=W0Jd3x>QCOUsz(Staqq+Z+iSQ_;6AyA`vUIIui>8YEPebM?uEF&vW9yIckAKQ z;jhL05Zp^*@w3}%H-2rnpRk5|AMU58u%C;~3EV@tt2#jX@s=Z1*XH2o!S8qcb;bzH z7~~m*SY3+^7^H6JKF2d}=%{+4`ct=$j32v`JSju&=z>*j5}Mg zs=g)Eg)hhJLK)5>WV1g#8eQbxy7GcG##g>sRoddmBvgH$K>wTQ)5WPv!Z!;WfW29W zDpPz;h9=id^HoPDm3#gSZA%J$N%Jz?pT_+Sj(us6gjd3+J$N1bc@N$SpEJ0$VcqZ- z;d(t8fV}`q73L}27uIlJ!u{nn+;jemad8TFiCZ!58$S~tOJ3yE&k%eQJXN@AanDWR zE^%$c{b=0XxQbuhu)|@8b1(TP4}A$AbZp6*pm13a6h7(5zuw{U#RTE=@I34slN~&4@{8csFMi7S1|QHy_oNdxa(|MR_Ha-9oMwy9{+5uq7321#hnv*l3f%r3w_k8C z{cEamQqcEw()38mKs)*kkHpu6#lIfdWw0Z}rmDm7cTWuCb_s3=iW`@-IUTS{*dyFq z7oMljHzn#_Zn}%C=>HJe8$|Y)?V`On#B#;gz9_VhC7i=StbV+g7aRsA>5B|hfN zyLom-a!uk~4}U%UP29^>!LJ-v1nZJAd*ptEmp6korPvPr_8W5&sbO=COC&7f03mysZCT*Is#cJ#Q*3Wl+WXlD;%2VJm)tu{yToJhk=ce%KmF z_x;v$LC;<k%dy7tufM?bYjT&J-2*?+b7*sXKcwI>b8BdOw=|5N&e zCq|=JOI(jx*Or`ielbN|CPjNKpJ2XjY(h81`EU9&b_pA z@xH=dotJe9u{VI+MaXRsIWCFE_#E|}xnrvDWX$7UgbvxDF0r#R$8)M0lQ3lcjB}T; z%S9?7417h=87hiy336MJ)AzALuu_dlo0bpT40|2-*28D3w)iY39*wvihnut)a*6-# zFbPw!fCT@qcD+~q)1adpapaf_ULqZ))UPSruEfUq>HLwh5Awf_!`+2!h{Z;cESo0+ z)TQnRe$KwlS4Y+Nv&CN09F146_#QIO^|;393{X++bt$&$u=N7AUgbV@*nBUU0g-U@ zq1!V!8hciCjrM#iUD4}OG>>T!Y%OE!#;=V=>zy=O!+to%NV^&I zeh}9QS7<&h?ZZQiU-!q>K+w0eMjSh_wfP(IGQ39qNVxp(NRio9gl!I6r+srYdfonn zi#WcRJrU$UY4H90zeOTl;T=#(zp`J_W_{~_9%mU}wP7n~IDRfYp-ru}XR1^rcU4H$ zDQPoC(A$pQY1}8a8S!U|!ZPb*zwnNlRjz&w-eEm zzDF)$i?9=52PAg15BN>j)z^IdXh%e>Gf>cB4l$XMx%A2Z;bza_6mwBm*qI; zAzO*;eUuIBPdijTrJN7>Z}wa_mi&%jr{@Qw(Yt)u8L{oG(H=1N^f#m!@~FI8!rlx2 zHmbcdn@+05FS7@BIYzicgvAI5!na1_v|BOeesj3SBv$C(jPXV z*N)!cT6$eceXHu{8zp={;@L7umx=A`)dRK8e@2RgkvL3XFXP8Nvn}~GXxr1f3EyixUG0QU&) z=6qPjOzpT;{Y^WmH-uY))@%Av=eo>6(fJP;}##|aymdOd!5K#fZPQlXV$Z` z-6+^=`Xk6TBYTA->p4EVAhGO8ey^bS#6PGf@he`Gb;bC(MR)H>(lQITdEDN_y|r5I zSJuI4D6*m~u8yPdKc?Qm#meRgc! zmr@}4X#I{c)lcGWrIe*S*k;&Qxi|BG#xcM&kxRbWt?XdII zTWm&Pm*>DsobNza?IWr3Y=8H<0#mEl?ZwS6eP`gz_1hp$%>5?CSp|u2JAPIDZ0$1@ zA~%R!J#t0dC#G}!8z6cKGx*%{Ls+K#9*J@)j(`ZN}R z<-n|Ydr!oAZp(pbEZR{KwmXNL(?mwD^c%w!=cT1L<{a?w=gv4e?Wm&|QFV|O^3+f+ z?uGoyzc;MD(PBM-9WKfH0qmFKXHbBuV|3fne+L-v+K;5D_{|_!7fpO_YY|p!u(Ut0 z{%o*ZShL2YUKPS-VefMMWt@E1l zqL$dZ#J1P&;~~{Oa_*edB2UHo$MQ_%bNB^brhV~`#nxzrmB6MnCV3Tt&BD&(-fl0+ z7uT+R1XYar9BVB0yovNjZLkX1ZC?77v2bn8yfj{C#nuRVy_&5stP?f|yOVpX z?cFNflKRCRjLCQ_jVyx124!0_O`^sL;!oip8Lw{`i;bNnkIP_%u#332+g+b*#i(?v z!mSQBOWe4`MjfoyV9l@^7)_|UM6MGSF<2k08YcN7m&gsnsth&-tAuS*QnuVYENrk9 zSOrWEU)D1D2-Cw7fR)2^e@kFN!(Iqh2GiT8YFMek>R}}YYlRiVTtB4jcfpEajS`QP zeHQ&(!YbC5O!LKcQjjIB7O*GjcYxUA61EDH^wU|+pX~ILepQ~~6}bYK89+yU?~A;1>K<+M z9*dVZyw(+OBL%xzPpub73k!BoD* z`wHUAld4W%(SV%wXYvENgJ~B%-!VXg>a?*tvV%O?P@25AQJ(4Ze6(o0{XwBncCh7u zJsaCM+-2?c-_3YH@~8=aOAi>c*L(T9l3y5B3HuE9)=y49P|9G^c#ZJzY!~moNhti~ zvazqc3yJ%l4ei!loV#<%KX$vZtJm#SSQpH#chaWitWaKICv$JNY1hR1ts>lpG#k?H z2VsLS$#;22+#Z=mxA;k8o?W)nI5hS>I}CNmE@=9a2F3~x64`egd(o&6=9^}bT4FXeD> zyM$$r#XzHF!#Tw5Vk0J7Gu3)^1e?p~zf&@fG+kp}N8R#$Fvajijj8&vwUFuE-%j9G zl$F@_&cX@}wgfAH>1D?H8{-^<<-zh{ZrzYHE`sG5EC|bm>HTdbEXQEAuq>F~H#EUA zV0u_OU=~dGw-=UX*c*bak``Gw$tB^Ngss4I-8tB@A-4=$(&QrOW~|abz^1uRt5`Fi z*c0Koe~&hBccz@F@^GLmNcigTqn3E+V}xc{jlnu$5m-RN!uJ_Pw+~haleLAk_u6b2 z)@HCNST9UZ=XqFb_$93oyKO|_(Ab9*bd5tjllZoJM8`tZ}$4PWe4uEwq+N#Z=n0z zvyrzLwj8j7J?n?OvOL!Bh4p^VSLIngwrBcY_H-!ElrZ)Zp1Ie>=U39V55e+t*6!Ow z$ju>FfSf$^jncy227;WKcz zzDr*=1)GL>_1}xQt!TET|7IqhwhXJ5+jaWyB4i5>iHA+X5QG)L-YfcC!YX0)2CIb) z!}R{U2{vTd>wpa!tQR%_bNg!XW5}`RGU>l3VH3#xGyQi)dU{&^p|4&4U4^|m>^(@h zwE1w#{<{tNS>(5gJXaCFZdhLK{@a*Dz72WTMj1AGVB;{=e}Aj^AL_p)oddq~w35T( z^IoY_C9ojuwdm8E#s1;meR?-;jkxJ;`2eiJVB@fQm|JHg+%vE`gDt{pVQzg9ximKD zYYdhPi@@|gy%1JyurgQ`Ob=feRteL?QUeRabblLR6^6ZbSO}IS;o_3;^}xyv-9cE; zkeh&&X>t*CXJMtV|1bOWAd5+Z_>qBsa!HsgVFL!Mh4sS%BINYxO|T)D-luoKrVZ8$ zTY~B7JOo=b*d%NLruXS{uz7x8*}Nd2yX zb-)_M9{G~Ap2vKuW#j&@We;Lc(obKvo`6aE>1-Az>6b75I&0ZWFv$^k!-}t#Bg@auOin1B+ z9+$Yr9)z{R*6Onx2y!iQ?a2Laud&bJZ^`kAYwUxtFzhpg%X;qk*KCcwf)8tUVb{$! z>02VOPMF%){eZo0)c_lTxow2BziqH#m{%X)i`$%GcL+9Xuu0eqOz*enUwm8h4sPQcD`6R1+*6?eYM?&@RBCk&nRxP zH=)@h+mRW6FRR!omqPuF<3Kf8K&xw(?)l~aJ1ixH5sfL z)&@Jq@uQOe>tUU+NnyMTa<3c>xl7i{+GQ_ckE|`Wu(lZVu{9#c7#O|8jwEf%%&`Ej+ku677%AQ=pDq&%R)xxS_dj2)Rs$jd7roBho0qca_Dol+# zS$lQ%eQ4r8qQC0hUBewmX9=B%V@JX;11l?xmv<>6i?9$(^_j%0g~RPq_6zxCIp;y#iPdOm7=YVciC+fOWy# z_DJFpfpx+T=U%QLzXr!1UAmLUjK-a_GO|sWkjeDQeEL0r1bM&_8V)qbc&-r}b#ETC zzc+LI8xBmX&d%YWX;>OO@plIIZrt_qwg~Hj>0`At9{%Wr>Ep&+Sckz1VeK$gm(R7^ zq%xS;(^(kS3)9oS2G(P+Mwo=}Ai^q_gt^_Z=Q0_`^}r;2H;9m$({NtNm^XbWc}k<^ zL$m14?1wH*Ol&$N8>&)Q@_0Zo|3vS)Qi59!ZX*&V)jq`P3XPUiSIDOT&JkpLk*#uM zTYOimvzh1cuWa@fz*~`-L*_(BW{;f7QtgfU5|q?Dbrz!^xdr6TipeQ|*=v{0X?wGM zTjn|Lt%^qvI@VhlH=<)@9(5qk$>zx0kIMLa6}JrBm=dTxKWAP-o9VR06h_V&?6tR! zVy!T(fSq4ud89A;hw!&tl80f~Jgh_!o7KQ_iW19MBPPnio!}4Hn5M9+isaKpR zyM4Ij<5nzg^of#g!?049seCv~(rssUAf9d#rg`Lo$ekg&5xeZJ!0KRb{SbRueB7`W zwprwqJw8`t*bCuQf?Pdv-}doG%Dqx&e=Oqrri{gtj^ypO+tOxi&2M(jGxCm932!GX z=WX%1y`)VaEFX3x_jcN-qh=~?#&HX1@)DOBSP?897gbhvWd}$jz7rsCM-so%j%0j{ z+-Y)88zQ>7u*iPsmLXS*+}lK#W1eC!3~Pm{ajY|Tseui^-X(IEXXljiUn6W5_CaB) zUaPH4%5r=wlU?RQ0!+XWpy}I2!IQpf5Z#<&ryi(25|KS}=A^}XpIsC9kia&zXE%pz z39@I3KTi5C!|Gw%g?-QtcLoo@^cyT6wgB5Dav!nfieUwBPqbGKi@CL9ZQR@S-dOvUK_BmsNLZKM%?B0=sgkjgi5C8;4EpXZV&JeLZ|uz}ByI!sop{>Dx*O_1RcbLQ49Dv9)Z3uLicXpW*9p^vfkI zTr!U6g%zJRW$_!6`o>~dC;I1d zZ?|8nuF!@jKEqXo+$3^0C(Cg_#~C9s0F=7gifo{CEc!%DR`u0lvrd(FM=vRl?Xey&Oj3|H>xOn`htIX&@I%$|7=Z0k-|xk|{w&Jt4~##Hl5k=-7rA17&)zqz z#*xr@pIX0hQ?%zF(!BKMPU)!vdm?s-jpzX%yAM{;S;z&w%>_m@%39)CMyOYyUa z-)HdiF#fliY(K-?H{xdze%{MMxm9QTnY89Xp2p5;@s67n%X8I3J?kO<$fbqpAT3NC zKK&RMauPNvk9macyZmnz*!qv#T0A%AS4e)vH&3@M1m+|c}`dLyz)>AUx#Ck1bz9G>i+`LnTfkOr- zSM54jhZ3M9xJ0>ZDwrT z`G98`C4IzxVIk|g^k?pRv9x<-ur8Ri(Gs5c*?(p+PM1K`+*`HgP>;?yI#-)I#m>j! znYnGrlt*;!f#t*+vKZY=)0wD^n70rU$_Ph5)}hXpiNhujP-A6DYzz4zMAxin4qWv;V_GTH1f zAy2pvM3YJ*B4smlBKy1er`B^+*|gtNAz`k;Z3#Db%qgtVk$(&Ka!IwdR)d0fV=2RFAoN;+q})s}xP(zy~_J;8W7OMchFhG9YO z6UwYnwmXoUM(&?2+f(T0Zu!40+m)Lc|DCyh*=|Cv6uH+T%_p!`Rvu4tDciHKD%d|; zw)5XceL-I@+r_X}jfL^29M%jw$f=|Hb7TK(U*CnzvTfdd{UB~Z-1NSF!jXS1`uf~r zBC(FvjR&-V4*=r^MOf7#au-p=`i(As^yv>zels*!sw(!Ud1 zft~U6m$KXkD}(*B(JNB@+z!WV={)%If?ZV*vGlI+bMUR&-=(@V>-sCvA)$F z?`EJU?+M%`^U+(=*O;p~`yw63`v2~yx1#@I-9mp&s2X!in^}#`)AtNV|H8fXVQg;6 z?l?AaIHu<07E*)~8lZioNHe!*9gHo!68T-)&Ss>o;ktdy=sBo@|$gQtoB{ zMA#6lg7B+-4QCHy64qw0IoLQ%-{)F}jlfj@uf|X88LIJXRdychsIuQEe&o|x&uF?b z&MSsZ!(^>P$_L-BQY+^oUxC{Y^RIV^8<)sOU?t26)!vVix8Iu~@omDbamQ2k9u>oV zd0(~I>4bOOHy29wuDZ3XZ*Zc zi##vKWYmpw&M9{Jrx>eC;!psK5NC7mP27Tx{6o_AtN8i5(w%rzFXe)delTo1E$ zk468B`?L$>8Dlk%WL>qzl7)iDwTYjs`Ad5AqBDR_qv&wSoVgK}UojTlBW2~8S2OH# zug;1nTRe^{v1W1^%9ONjU|_!awqg4_%1<3DagWzP4_4ZK`%e&L+ki5}x~u zpQ_rL>Dv~|HT7I`09$ftYf>NkQ@jp^^>@XbO*oD~);b{`w{F6bcivcZK+@=NBOJka z8^+A$+cBRx*b@*>xio*%HGhM;zb~~8tFs-}5C5*xRPw9xG|vCL$2o(>-;yS^uzuKk zq@1X=r<8MXc@CPF0D82HoKFg%K8UT6O6M%4j|PFoiU&81WoJ}KG2Ss2My3my;qxhb zlCP%{wzd5%m-qesi@ZFBy(ptSmhCuI=J-!fli&R@o)wjEnEq+cPX<{2VW#iGAFU#XNO7ZQ^q^! zzdOdF*K%*yC2f6&H!V1oNu@ShP~g`^nhj{I-)m ztOv%P|CkE+ZnU>wXevoUb>hLJd|$T|uXj^{mJNHXcE7wHQ?SIIPhKM7nh{rA~yT3 zWt^D}-=A_Z;P;=ji8MSjsZC9__Ws~Y@iZJrHAcLMzK&@=@wLNNLf9tWNqhf^vFL>o zSn^gcUux}pdv@{16SoD`_$=*R)IZAlt)i#i`DTB7L+ZgSHYc!ojHE+Gih97w=sg=l z&bt8oFUgQTxeM9iwb%Bqzl+B;;Z%d$PWKScuM!UHemh?!O!b7f@;1&qOPFql$IEei zZz(ZMze*J*@u!R5qU+BV+n+pG-n&Up#))@uZ?|{8+iB`lnw8)t?Su3Kj@zBCTNt-q z+)O=bL+fxGDtjvW1M*JJ>-a}xq-b9h)3kQnSJ2IJn3TB)Y+3RLLF@4qy?u+vH-3JE z_bmJUwHrM%LA7s1j%}^KeB)v~A4XD@xhB#mL(1H>gn=u>Z%FIw!QeW;+(+g!*1K&#Bp-U%U@Q1+@;OXtH=1zE!)-#w zIESL+wj1T*f5`rDAYUb+-QXjL^3HpLK`objZ^XZ4;w0;AR;KNrl&>jlc0NkGA?@Vf z{_Lc8e4kLAC6CVm8PEEU^4?b6rpDbXG|WEY^(pb^1?+K2S!mqCdgGUz`Mh24Sg_{N z0!DBWw<_ExKhHTjiQ5zCCB&`bt_?feH%hD6lfF6NzevSQwJ8#}N;cFB@bgmctv$A% zVzVEcLti8<#pd;z&8>I)x9zpI#f)AgMsJB36`Ot7Jju0rwr#Tnp2p%`!@rJ2-!En0 zU0yb~wQoF!?>An)IpF)gWWW|XU9cx}-2zNluea?(euKTABym|rF71rud1uy{*hgPqBMHE!VeWiT@~#9n z1v}O8r$u^yvQED3Anuj8FX6r==6)6Kp-kBkkvKNs9vE=ubG%G8oi7qe!6@Vx#;p}M znqHnueMOZ&=lL?mK6|X4GM3^k*Aid3w0eB;LcAW=yTbyBuhjWf<|$|MzcuwIRR*QK zS;eoaFSBOFy<8IZDOe>ez`fOvtjdG;sPIYHi_2~I_&$&Q41wro;U@M@65R$@S9||2 z?v1#cx?;BtwZwSP2;TpMz4O_GbfLSBtI2a)SQ zt_L}5YS~F+%1XP8J7eRquzbW`Mx3$X7&Xiz-GBLFJl(@)x zVq_}oF=Bt7@J8TuBER}ar!7+Rd8FiJWOgRV!kyTeKc9U{>`Pp&S>(CO_!VKl4Lf%W zpM#Gh+y|I4}W$Nw(;|4-qU z+Wvc=gW8c@&$5s?;gAMa>Zn{=z5C^SJRJ4$r;_61@r{J#Vsxxcc331XjXT&cB`lII zc9~9IgA3pkLC*S`eV*QW_GKsS)m|a*6tw*qkjji73|rHzZzIDM;Ma|AhO7I8x9%dk z&)@3k-XGVUK{w0Q-Q%rW$U%fbSNFrVuH<=ci1zJS&b!k0S(m`Q#%TJOWolE(`BMq@ zYOpsjGZy_N_tx>YJ!g+at#$FV7`Y|q#3_f&ns}9xnv-^;C*|!fsb{bLA>N15-|dQh zSokIBlvsSaZFA1`n^pPkq@j74@juJK^i6iWBKWBVwbmX9ZQ;xB39BYjccutyA8EQIag7pYF5!JU8IOJ|UN@yvly-9jJ`R^6AmymV zw@bCv(jL#^HiTO+=Ej~bhfSn47x`7(XKhE7@Snvb z+GrdloLzL3Glc&Q+*{Rl_=DUR?xH+BH5UD>&!ZI^Q2itX?SV-Qx%tzy@9=%9_;?Q!V2G7k0UJHtQ!&t*W^%jqMr z*^JF!VRJ>|`!(BU348{d)jt@E{!POB7@Txy_wn-mJ$}v(x3D%5mM3`vJRNEmI`6*W z2XpbZA#9%OyNW*fn-Z71ZGX$T5AP=ZC!O_-X4hYy+1TUXZu=Yb-L3n(HS^>8pHlXT zlDf1uYKs<*pc#&b2*(9zSS9gr%n*+Dr`cna_!q!gv)C)=<&vJ&JUcslY4W)cnQVBp zmEZWOo*vpeN+mCf`PC4XMhVNWmQ>l7{H>|rd5?b|i+)A;b8u38kE|2fW4kNqfVQhq zz;=1fUEZ1Mp8OD-_0^0muz7;$e!;dW^=1W|MQ=|W1A^`KAKZ%nb1eF4(YXm7)qdfh zbM7Ku&(%327N=wr!DFSw2}3Q1jZY*Dsy{l_4ujOcrnA_8!ynZL@OOw`2doozFy+zo zSIs?mx9gsb&N4tXv~ ztAeu`?_!5#52uZZe*++h+c<9jCT^sYe$Gg(-!WI>8M15aQ+M?B$k0TWXOd!a-d!Vh z{IOU59OLa+{Ec(f{$-rQc|ZL60r%GJ34X=Ll;W2>j-Zci zoV1_A(oNVETh>Lk-4ORZ*ezJF`#!rosPv#M@O-!6Q=aL;oVOWUi`bgL*8kOhy0mY_ zVb(`Tr_XY4-S|6|C;FN%dk?W^z{5WFXgmgCQm?D6w6r_uqg6hffgLW%^A7CKWB;u( ze}9W@f6cM=NV@+o-s{1s);a(5e7p@CN$kPxG9vwlpRh^(SrdyYY=zv{oy+>+ualm; zqBQt8|LN34PJ7lN+l6e_Z^qO(K=S=Ac~0ILC&$VytzAO7WfUWCkzoTgHgsnD6GCx` zk)85ji4IgdopB!RJ^s1tR?fFeBy91QgOef>wi0BQke%cH9|;?$IupXCn(Kt1Z1D_R zFaAY-yMO66h3q)8OaEZl{+V=>Ha5tHUiqT)JP6}KeLpw$x%=G=_>h(IS&V$cPk1(h z@@ozL#_3yBou-{|>a=R(oO2SC&&zzCwOYD*)h6{a&i={G!|J^^)+eyZC1IPzuZ;Z+ zTLtoy$S=Gw7X7}2ZA(Jf;`7pY`^$NApS+6NqvP{DxBt|0@p{voYJXri@lb8UUw^IQ zA$7f%jgx^lC-&8nmQC=kPZD-)ep*8Rc~~6WJ;5-6WMSU zn^V}VeB*fZlVYkV%jkA6q`p&D%Ro>gc5QXykH|68!- z3?s`kolS7Hb8q**z3At>c|2*2Ui#({+*)yS>n&Tsv32TM+*WXFN6wxb`0mUmRn_Pr+rNbJ#IC)$@wI!!VL${X*%hy@u+8qN!mOQryT0@Q#pt}%^;m7I2N)3^yJdU=%1dB*N=!fM&E_MyOFo_Kc&Wtv$A_a*C#`S1sM1>Q>#JCg z#eb?P<9Rq~eK&JncWkc4$okqsbGrXXs+UJ2rN(qp4&>7E;jsUR=Rh~e$D?fR&R#zD}O0|hFR*; zBrFf+)+LEs4=fkfEBgKD>t#G5Ps2D1Ke9g-KuYqmPJzsqDpW12Bhyho>jr#lgVPPUxhz!7JIM!LWMiX z{XG7R;Lqs?z+Z%`GQ=6No$mfT%PXJov#L_g8L=xi=Ul_u&7!m1g1+SA!YP~;!?rr7 zk!i<4@+Vl$eBdvfi=q*;{;t_(jc$jm(XoA0j``7zn7 zUqQDTyT^-vlEOoxN6!;~&T##Sj~9)#h+T4S<9AZ0lFuBd{a?w8VcL`@@oR_pbwJ#&N&Lz?XgoS0 zW1l~h7b;Hi_AALRo+%yo_DeknCw^6(&Nt@qYrFV0W|t|6SLr3}_q@)D*H;t#Qt6lE z*M7uH)@|$XOPF26Wia(9`GkN%U^he^)FX2Y{i>Du7 z6PNEajQHf$3?9Y8bF6;wWW0SFNi|lVWjwc8!gY%st|IQk5yo@JjjM4-Qk{w)N>yvR z5~pU7KlUH5gQ7c(?gW1Q8}|}_XP-2_-XibR<+N$SK%ZGt9^xzLw!a~9P9bKbAIZIx z{fn2rpK$)T5SDMSGFYC$!mwNz*`hA7R|Cs2hBW6 zJPTVf*b;0RrV0{alki!W+4fkvSC_CnSOtFQaz(IOm@XHD)fjS>ux5kR!rBepCRm#x z*8%G_nqegd>x2aj)(5LF*f6ZhU{kOfgU!S04YmSnGFVm(`C+gCtP`f^c?qn;kPE^3 z4Y_JqpCMNd8#h=hY|7B>f=wE7{jddtjlh--HVsQ#N(}P?Y}Jrkh2LQdp58R{;wdauHa$A=dzl7;aae~THv?-oXZYU~`6CBW%@>Ylp2Eay_uzKP37)2+M)# zZPNs-$dH?b6&i9&uyRArx{CT{$mPMR4Y?v%l_3{|H5hW0uzEwT7S?XCCRmrjI$*s9 z>xB&%YzQ_C)BBl8*bs~;AC!3JRmX>8fCr^{v3Qh$-t^EV&XXRu#ax zZUNS9$gRSL43={>?X#g<0Gl%8N@0rztAMQ-x)Ip2A=d!Q`BP#Vw88QX)(tC!>G?4L zD>3B8VPTkF7iM4;FunXO!a^{;E~I^s_P~(Kg#}@{zlE?egO$Nb4Hkw;_;lSGSh2wx zVRbOQ9JIsQ47nayt06ZC>oMdeV2g&_EG*-dL_d~bxiCF^RvqbQ$mPN647nm$pCK27 zjT>^6u(UrX`dbUjhw1({!Kw_o4p;+B&&yuefT24C8#Z(&VKau@9IRj^F)YilpusXe zM0tVf;me1$8FIz2UYH)fa@driTLqgmbn9RXhFmkO;4g{c>x2bidRY2kO@`bstjmy_ zf=wH8^ROjDZUt8K*F=A_K1}_9>HY>_t%h6)tjCZG!DbD)YS@Y)R}U-yTcW?Mu!zCB zV0AD(Ed8({Lv92%ZLn$BoWT}giw0YTt-y3Yay~+PWylr4a#j=NN?}h3F|TBYGK2MToY`_kn4a=8*;s{DMM}uwrH?P*owjCVAiXN zX|N2-F<8b&X`f+wdC7<68FIz25`&e)f(EOCRT!)eR%NheSdGCtVf6;c(EbChG!(ai}xWP(bQw9scW(`&iTQFEXY}sI~u(W7m9(BR84Au|J zGuQ~Mz+ls`Vwj$n3$P+XZWUH)$mOuXTVlu+z=DQcDXh$ptAK?Jxd^Nrrq8h(JnXf3 z*z5MNH{jUQ<2LTt)9d*RtilM(qGL}FOWJjI_;lS|SlG}lgqilrU}k*79`U3U-`G2|vZ?9Dp%bloLbjiGB@Z`;%5@?dp_ToJ6+U_qGJ({(Fh z^@d!nV^2@}CdZzx+W~7ZbbB3py4(<~$&j0bH5zQr!``xoy^I@@?d8M7p6+iktkv+N z9M%le<5uNiug=3>vxmJ-$DZzQAFSQ*cNo@Yuqnr$t~(FwFyvMod%9d!BjZU!E&%H^ zSP9Iu7lKLnbbHl~J)PCVdJTK6upWbT!MY9B?_qDm!``%GPxp5L)^FHbh4mRM=VQs? zD}YJ(bbF;R(_RHk?CEk5*r4G@18l%xZH_%%w;MKO*c*V28@l7L5rfUZh7GppVK41Q z+n(-kE^NxsErd@_;}bbs4nGlsn$*tEe0J?u?**qimRx8&H< z{k1;Me8KP|4>k+a<68ui@aeii*u0@z>DbfdYGI3pToY`;U>zRzdOhq7dDxqD?CJi_ z!Iq6MFT;3ZJRu$#O^i2SdcT?v%P?3m%raOx%(PeKVXw}yr-!c@mTTDSgyq2WwD0q< zH|$|=%ER8gV^8;Y1(t94n{^Z8D}x1KX81~A5>R8XbGO zzwNLp{Lonstj6$n5Ee1yCSY}j+$^ltkXwQ^7;;uK<28fj!AyHaFw4)tkv*i8P*KbGld?roA$l z*wf|0uyMnW8rX=z8a?c_d)Vvous7(~)BT-*O&Wg8!X^y1DW$a0|mk$$ry1&J+ zd4rY1mJENZV2g%a9c;yrYlbbu^s!#2hrK=zd&7=BJ$zFzD?M=>I}b}U*a~db2us%O zcKCFA0hrj+SqUu1uor@58LS$XVd&Pwat*mw4|`o6_WC{Sjd<9b_OQ3$VQ zcQ8IRST0P$r`s!pnfA(HroFI-y&4aDjUM*eJ?!;3_Vlm}!h%MaCmefvJ(~5fx8z~Z zx-;2c9!%n^`&$GH8U6-g@|DX>-4bK=V5Qyv8RV+3RY>P)x3wj6~~@F z-_L5du0Zq8lF@hyN!e06)JFw;@UYkBVXxc6-hhX_aSwYl9`+VJ z?4|8Zj&Cl^jBg>#jBgptjBnVnr>9j7EMla6qhn7`t9HkpuG<5vF?0tVd%Es~V^7ze zh1D9mOO8EV&bpiVuOXKQtApu&6v4!vt{a3k7`l~?Jzclfv8UIMCJ%cZ9`<@2d%EtB zV^0suB&^X0%bbV3We+md-*WaUNOv!Z#hiTPuH!2H5p;4^RUz*M+XZVk zbo)K*jX3sn-D%kWqwMShTS?2ZAG!qsTaE=H6p0d`LeYRhDg-Txd?EAYXU(ei~ zIqCMFlk>Z-`+h#>nP(;+v#DY`4*AX<^3DE4zrAL@d6>=@hUxmnVbWeRHU%rGx?~*k z6$bgt*fMNO#nv41)gAI3JLKy+X0w%kgqt% zXO_DStEjr{!fJ{&VEd|mE!dv&oxDVoDYgu2!_4(+ z4c1b=9IT_*CakAoE3i|=_F!EVdk8yItPPuk@~>RJkdKd>My)1&4fPhkP}MeDy&-vo6Q5xT;InAs-8v)qiHJ50+4|3oxB; z2`23|V-v7t6}#$?FFVL*#ui~o6}vsiXZm(wDdlUxRupRu@|m%xuvO)o{^`s4=3qKs z5GM6A^F?4f-?Br#HHUmThkTn3`6`2aX1RN?v}(s8Yz<}}TkSzUGqwj?SMBh=hy9Dn z=Z9q#3&ApqMPWK$a*)p~Hw`PO*gR|lX4bg`%PZfGL%w~7e9b{VbL~7CfRbj_4vuy{kBjr1Sohn}k z)-`kTYb*a_t1y)TViIn8E=?d*&+0viiyHbZ&1!EdW7HXG0VxqmSAq>Y@z2=Ocj=e zxwYpIy@77_ZyQ#Jnf=>?9l+em_WdmTd49*o%(DPHC&ujGCD<9vtv)O0F_mW>7KNGh z*?>i0ZuP04=T)9PSPo{^=Ma{Kxz(qO-cWfwAE19=W_^6H1DIQV7STPQviDC6c2100 zpB2~{%&k5-^q9)C35&wa`cz;Mm|K17=y{dr7?y*X_36U0Ft_^5{2cwG@&sUYm|34i z*a6I~KFjDHeh0~%KWngaV$AyFU}rG5`jpXQDo+g-g_-rK!y+)Z`kbKWRh~0g4mPZh ztk*LY`Um!Ryzc+T&uFdxb#vWZ#24asjLg^=EC@Tg9Q&(g>^i;^6}tgz!zQiQReWK7 zhsZ4V0JaF56x+d9RI%r<0xWa6&Z7ql$hmF)=cyk)c`bkPZy45s4aY(HFAh6~y-rNl zZzPTSj~{mj49=Aqe4)?S^A%u0n3=B(TY%;5`R?M}%Yz!n`Re%cD&H|Ir}A}SS(yB; zu~9#H2zdXeDhKuR{Q~Q`%C`XPs(eeZ4lHNSCwl{1{Z{csdiM5aVM{Qxy+v3Umbd4- z)ZSfun<`%eR#f>~umY@hIbXr-zv&P1{`P0>^_zpuz|8suVP4pz`Yq#2seEg&6(gVQ zZF8_BjGssvoae{;<1Mrt+VGqy{wgf%;%}gpmA?hsf;sI~&(QYK%r$Cehy4I-czj8j z0oX2VyyyS!(H?#Y?O5eVz>ZXoRany{M;@)Ga+F}FD#s423v+5q9c}h=EGN3Cp?oGick&Ux1ZiPVK9p z9iW+GwFldW4aZ8_d2*4^v4(aDb z*fuQB>l^j+3cfRZ=Ga*!zrvK5*`8@~gy7(8-X8Fy+p}8$8d@!eenE4gXzi7jDS?fP+(Z#=nmNfj*4++>ZY|?%# zi?51r*bfq0gzdnrXRzA$PqzKoE-7 z0&EH9G)7Uhl;M}QBw;JCJg;xGM&$AB;v4pZw50^A!JO(=Lpw6c5`P`mbn&;*dWK)> z)`OkGChhb6HOAw7TsMgg!78vxu}OR@UmC|sJ=3rx%&A=kv>ci_MrBym#lMGEHvDq$ z;t;k4bGx4EqIXn`=U2HNfw^5f1<>dJ&t9)ZSO8`{=bU+Z_tbb#lt7Cr|0*m38}FgU z_f7L?tA=0txCBeVzMt2|+>w3ti_EoTAKxB6bM7=@ySB2%b?c%X8)eCucz%uf>*eW_B0MbTiqfz`R+5U9Fm;#R`7cHw&JjU(zbQjH0+@|J}~vEVYtL@;X7Bc zRoEHq7tn2G2d3U;#vb9z-^X5V2bP0Pik~%hdt-vPL*|W=hF=Ay-_+T~Ic)pJ3Pzdb^%{)${u%?SY zh1N6tG6yoSQ`n?)Wf@;#+TN}jYyFmm~-G5-_m`@vC^(CEDUp6!@a*jf1wTA zCH3^flCWRCT$b&e9>v!-%97Y5tOa|sJyyoub`0n7E#A*w&k`&IbL#&Z+A`X(p3<&5 zEaBpBqh*x82U~|Z^~3CMvR^a&(w2GHChSA@w#a()LuQ}H@y+p@$iw4Z>Xw4}U`}nx zp@q@Rwrs){UHnzFq~Vvk9l(}hlg6lnuZ3?|H;Fxm9m6KgrTO2Y{a$-)7*>S+!{t8t zO|wr@_@WQ6$7Wy=n5whP4O@Sf@ikOz4OWLeh8MITwFLSW~>%u0j7d3oQexutQ z*E%c$n-tr{x20k|zr*nkn=~gD@O4$}60CED*j0RyYvVf0e8|F3yn1Nc%J2PM_LDCDd9(w=FXI)4?ZYPZc?zG8-#ItOD+8N_O^Pk! zTT`($*eYz&x$_v`xe+UU-i4jPp22I`KixewzTfEG=Xz*%+~?9pKWq+`ANU9F{a(5s z8^yPd&un87mcBx49$#I>mS6`kH7BK9+xxfs_~srwE?3&vg!y1jZS10j(ad?}`901z zE`C2+Qu#x$W!TdPePZtY<7ipsPr)*u2z-Khz#u zfTdxo+)H!5hOe$->#zgZhc1_E+fQ`y#eCy(<(iof{(7P?w`=AAdI^0v#uBp#+l0AY zGcThzjTq_IHP|7nBW2p}?bOYE%chja^ApT|tw?#Wf3wF*-~65#dx$T|GZD<#Hf$O8 zua{%@%~ zLg>D)u$L2s&BENuSw&A6F+u8O!V1e-J$7VyRWIU!scO<=HT2Pvwt*VXAAoJtcN!g z7{^Q5-j8y92AfoN2;YVgD`iJvdD!zVm;E)m>~*{qp7&y|DI2hD*rYjF#W(jDd+Y(s z2b(kpJNSw!_8eA#{V8p*&B4gj2hDjjf1Un%?6_PR+b}E$bD9gwXbCiPF08@gF8&R) zb;B>?u?0)R)OcK4D-ZD1@tOU31UtAw>^Z(Uo_}S=&Nk>z*e7(KsB>)?UrWWtVaKqC zU780|pEmn5gRlA3<8q}x3$R0&Q-4;_PSMQ%+=F#p{6}cBkF)zbuo;+B{^>tqe3gF= z7Ig71q9v3+28+A+SJBp$KMPB{_)BP;%D)3E!kn%P>S#5?FZ1UZR)tOaY?J3t*&jT9 zJQfn`gLz=zdwC8#&m6}kd`T6XfGxu&&D$)#s){Ybc3>a4T<%-Ua(D5C7VLFyz=E(z zv8VWUjaXT~rvHrogFQ{pTZi{FLU`*>7?*9Wf3O4CojN{n)8j9#e|S%L?y7mrZNS>F zpTFGhA2i!t#kcmg_Sgg1D$JqXZ#82(__{`{9CPQe4$SG8m^ury#a#S5Xldo&hpoBzkI{G4*akk*ra19iqG>z z`?w@w=fqArhVuB9Rcr~CfK57v_VMi)u`;GjSOw-ZMqRW9nz@d8{(|}J;`gI<48QbA z2zCN<*n550oNq~d|$^8!_R{Apl>%pAX-6gcS(6~RPe-bbs%;7VjwzV^hFOAP!2a2$@E5z>N zJ1}CUo(e~kH|{By9fi+>UAK>1^^eHZ^K zT3h+Eu$GIzgy#8rd;jmi&RzU%i zj_q8X!gqqtoaY%>`wFpTd}~h`$I3jf!B$~T?K(s&pqcZ$4cl<>pQG&nw9%7Z!jy&4DIb6wRCi zC$NZ%-}5)jC&Mpuzz0jg^1L?AQ*s?{`+VIJzCC>A97w=+VgF>0m2v!S^BkAOmwuW( zwg_8;O&W_`d?uB9*k11R-*UYK`_Sb&+wLC+@olNt2&@E~w0B*@=YP7r z+#GBU_H&oZ&6|By!MCkq_h4n%q`qq7>#5it?DPt;{=Z{C`i6^xNlh{L880PTVyj?T4hws#gm3DcL zxjuk7o!{rtW|zk8lCr|E8Q7%$PvKj|XC5ONSn3L~Wqf-owg%gUP1+kD?-UOHtDk>MSMHY9M@UKWgAw3 zInB3yv<8|v-$%LhAvP1@Tm;fvj3 zZ&v~qg-wdh;yYBaMOXtiY45R%FL0~9+y=}Kn-qJBFQa0oTil<5O**E6_!>s6ye|=f z)&I!;JiKMtfnsa0eZ_LHJ;gR*yNXp{HO2N|RmBcrJBqbo6~%h6ZN5xoXGEKeK;T zECAE(U4)$~Ukuh&Yz5X)Y#nx@*aobv*cPm%SQU1x*a7TFu_IVhu@3A|v2&On-`S5} zp3n0zJ)grcJ)h$+J)cuBJ)bi$J)a9OJ)g@kJ)dhZJ)i3^J)e(ZdOmkyTdEKEp)OBJ zF&}JGu?1LBu_ahRu>@>Gu~k@Ju`Dd7SP_<0Y#WwQY!|k!SOb<;tOZ+B>=d@D*z_mZ zk0>?=TTv_sODYzDEi1MRODMJmiz}9c#T46wMHQ>SB8u(7mJ~aLg%xYV78UEkLW+6+ zh4Zmue%OLyA=tcPQCL8+B+Rc^8aAg`9_CZ51e;ZC2R5VFKFq6F6E>~b3CyF|8SMNI z?Q8bTzq0-*7J%t|i!fck7)-Z!1*ZFN9j3=)1E$A!3#R8w6{hFk0c=&Z?FhE6SO=C< z>>O55Z1&{xdN2>$R=zN-s#qMhr&tPBS1bc-Dpr8C6f46ziq&8}*n`=7$e-*%>M%LK znZF@*3_Dl8E=4z@o~x3`;2A z8Z54SIapHpHet)kSAnIJZx6Pje21_#gO><=cYoD_<4XP`(3LUHOh+P37yr4wdg5cC37}|G|Dz`Q~A5 z+4CGRhZ)<&`f9%PC(PR#3h?Y(x1Wl8NNMOTCqb|7G{>whHa>PJy>2b@Bgq~seFD|L9r05 z1T)Ks!nReuB&@7h8n&hK;ujN9|=C!DeCR zyz0Pa6g!7`VUIQD)$C_D-V~dMMPOz-!mzl?7l*|ZOTnTr>$^6TBXc|hODI-=t-#DO z%CI$+uLfIHtPV@T%rQTPr4{SKvM{p@er(^fq4N1)dBqlBImMP>lF#ht1S|tH>#{n? zXS@C#{K@Vy}Mox-GkCY$~& z`yo}v98CJpEF%b$@i5DXz+^nke9JHy50kCIWPHu`<_7s5X4H8TCiQ!S!74Br4>R8$ zOvb}xhcIccSwij`nBm|4aSY#(Npu@7s&%rcs=BbDz2)>P~ab_g@))y(Jn`OGm7!0PzSx-7zU zz8FmMnd7lC$Y++ZKFDX5u>m_!Wo$X*s}Ay+WgHChnPnUe@|k6HVA6l)+&zcs@t8fk zJRb8f84t6JFighREF%uvQDvlH6_{D)3{2*W$qF!;e`XnFn9M)3j2cYlpV^K&Y*Xbs zh7}d-!eo6h%kcbf|M)P=@WJGGGs{?j)FLce}y8FMhHpIJr_Ci%=VA~0G1%rce-`OMfg zhkUs~KGU~3$Y+*Ofu&R#dk*;y9rCpY`OGqUgM4Ng-Y;HWpZzdtuh}mln6%eqQJB=v zEF(F{XO@wMB~?4}4*5!hd}bLtgM4Ng`-6OD8BN$SWtemK1eQ>BK7+*-n>p|AU(7NB zuqZyWj73;Pl@Wt2seCK2u)$<6w+>r`y;jZ((QC6)ue#(ehFr+ABwKQ{OerSw?H1y>P7EHPrUd z(tmdSA~x1;A8JQv+h{sY`uP+sdU&~?z5ho(_>)HY(xdv%qvg?@`Z9u6L3{Ej?zN-1 z6|{znmPPBLg+_6&8O4>*Jb&(-vxYYBq8*~eT(k~a8qH~ZrrE)6qJ7<{F8$xdkTDOS zRnXoz(x$8r%8Ryy=KYK7mwwwpv?N*(Ek2HW&TxD(XeqSuZ=YmGZQn%OKzrOMZgr$p z(Y9Q)23plcJ3%{e(fDCA&ykDfN9(v~VYG7>Z5eI$FP+=4jyCV2716>j+74RWMXRHw zT(mY?#zi|vE4XNL_nGpPU9?5Cnv0e|tGj4vv||^ofYx=@@TWA^b_h0Q9Kg~b&s!U~FQ!;Tc& zg{A(=UPc4fQmh4=`)j-J6t=9`^z@WxTd_G#DQ?WJJp<+2$L$OU* zU9k%6K(Rg8zG8>4J;mCvU06U44*ul$=)nR<*DoGpkv{X@m*ZVAKWy%A?7k4Jq*xR- z`?q#q5>`|!4fFn;-Is@LC{}`bj_tl3SWdBh*qLHYSmy8Tu_v%o#m->qf3W*z?#Fs> zFzfsWTm8rD7q?1Z#pE}m`oCXfo&V6*T7z@ArG2M$u97}ZqWS;Ho<9xSQY;Vi{j=Ry zf^90c1DpA{-M0@bDAt5cx9z?YSYEL+*tude_n-1)KQWHA+7Ii&bo-@^OK4~RGWH8g zz%u_jW|CtSb_xsey5EQWeiAK@Rynz>Nv<+l^55*aYOo`iQ?5g_!oNFf9kiuSUe=_X zX)pCd8y*i*uQ^z{bJ;K2B3j@-E^Cr2fp&y8%q46UmiW&xlN?#tA?%5~?)OP*w9hGt z|Gx(NF>7AEe5BPRzl(N=mh3vmb>au(Xyw`aSgO{7wrTs|3A)go(FQgeA-#_qZM4VFxt##uJ^xhYK_tNjK*jg zt%+vsr`7naqb>KGwIbTFi?)Nd@>%D&I$GOBYoo1x&N=QJt>dE2-OT*|ymQ z(USk?T;3X53oSf4-pBK018w`lS=&Zi^)wvk(mqE z(QcL3RypJIyB}@g0hcwYa~Q3PHmrlNIP44-;I;fo{uFHffsKoY2(a$o#7FBy4y}L| z7R@SqJSVo$&e5FKkX^LM&CYR6v?CX-ix!)4&guO!_G@VRd?f9fM{A-D=Z&;04C_9q z(ZBY$>duWUxXg=XwDz^e#S3`dZ`ahVOpM!QVu+rRe6!B;M)VST;33Ys)Mpoc{h{Of zNK6A(^ts1$&|6>LxOf6y`I9!B!xkRa=-<1s+R(q(Ao=EI$%p1Nw?z-5w;t}SOC6Kw z!AIE3OT)4->t2y6uORu*oXV4YJCg5_<2DQ1hsFGZeEeV9)P(KAp2F*X-@jrs-@0gX zU)i|0Yotv@MU?hGoLdM~gqIadC^3#h=tI z4LgR7+xTXyZsISXtpx1;vgC(pzvS9OOFz2Nzb9w)rFGlTD(48z^O#2eo~fn1a?}T> zXe9?t`e5cE%!kLi_dyVS2i=$nssj`cj0^UH$mSbY|;w+&+h z=+jSVT)cHuF5eYp&PW@U(2`$cZ$koBhv_zmKaIBVwRV3VR)T52)Vqv!hUV0NduX|! zJ=Y`V?S=w`{x0Pokz<*$vrlT?)f@XAIGN9cG0YR zoz~c_QEqH>T;!@f6wB4sW zmzPG1eWP=E1vLLRImcDdYG~H`4^})`#In2tcB1jE?OKd9JzcP$hfVcbs%6O#Fx6mWJHrH^` z3TWxuFKbfo3R>jZ_Im8WsxVy-$#sM_8*}cTQ?v@2^}dXn6ElzC{^1>s{`+Q@Hf6o1 zCUsaqD?Z0whb7nizy8>D;?%sDh=vDLxUbF9{tU6lax%R!u zF{});=9|@){@zafJv7hr?0)Z8aDIR}`RCDU${&WEyZD#UQqQ;NUxQU)I={4i18p|p z-u4RmCVB*~Zu(~so(=mpOH09pyn-1jZQ+AjVCTJ(i> z|0-+~=2V|NT2J{)u*kBrzlK&pGwV}_ox1qjXv;6M`+Kl$m{Wab{p@$X#qOVnC16he z2-+^1`To-~tftr+tg2WJwxif4tfE*2wyoG6tgP4}Y)i2=tfW{EwyBu+D>=Ru^TP^? zgIGuVn^GhfB|NU;EH zS+PZ!%m;JKW3aelE3lYi>#(R|8?cCCTd*a?s<5zP2e3uOj$k3hI|S8V#x z-0xFt4z{mY5VogS1h%W#GOVW98my{V4z{D%Caj`Z1t#mYIhK2{vSNp@Eydcfl43pB zrefa5u>L9LhZPhH!8R0&!t#nGVL8Rpu&iQvSVplDY+bP(SX!}t*qUNZ*s5YDu#{qF zuocB-9?SZtSOB)H*di>USPT|dYy}omY#kO=Yy%ciYzwxeSQQpl>;Sf?*bywGSO*qV z>>ReB*z7#(pJMZ{fMQ{oU$HoBPO%isr&tCyt5^XxqgWZ{RjdY^R;&*5D0U1xXHR4v zGhNu3VxF&N{Zq^bll_z#y8!Ddwgl@amVliowhC)2mW8zxE5eQy+lCz}whL=2)_@%< z)`B$@JB8I1n|>VYpJH>ceZ_*XJ;frhUB#ARHO1CoRmF0!9mO_bvcEO^z5?4;Y!6me z>=3r4SQ}PStOwgv%=>uOKgIm8f?^@qhGJ1zUa=%Br&t=6RV)w7C{}{4E4BkmE4B|? zQ>+PFRqOz`r)*fPv~?_&`r>+`Ln>#^~BMhP_8KWR;_z0zpMXv18> z^03~E2iF$-U#{OvuvGH$b+Y(tXmvE}T4dm_!$RNc>~Eu$(9G+l9;^-1*E4djW%dcI z&)?SQKfn48c`nN>@?4hNt_AL%o=QB>`boT7`)>@)@pcw3xgSPcj5zhJRut>Pl8Sl0mieui50+4D0Tx$m2^Lc<0gEcO3X3R~ zg)J#ogoPE`hAk?#3kxaMfCUw6!4?!dh0PmGj<@L`=XaQOuhDvs_SM{@zvX7p0%+16 zCv6E$#>YuZq7_}V3|h@a+eABZ(W+=?E?NW4|4QeⓈQqG|v;6PcE7tt>B`C(W)-m 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 z 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%0A3x)Jp?G%V@1UQQIOpC| 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

    hh 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∈yYkm*NlJCIbT1NCHGPbPM;Sjt$oC72W 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

    leH{Bdys`3sg)QRZ94h)7j0-oz|vD{mZWdsIpxg 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/cliutils.py b/venv/lib/python3.10/site-packages/ilorest/cliutils.py new file mode 100644 index 0000000..0e738d3 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/cliutils.py @@ -0,0 +1,246 @@ +### +# Copyright 2017 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Base implementation for cli interaction with Redfish interface""" + +# ---------Imports--------- + +import getpass +import os +import re +import subprocess +import sys + +try: + from rdmc_helper import UI +except ImportError: + from ilorest.rdmc_helper import UI + +if os.name == "nt": + import ctypes + from ctypes import windll, wintypes + +# ---------End of imports--------- + + +class CommandNotFoundException(Exception): + """Exception throw when Command is not found""" + + pass + + +class ResourceAllocationError(Exception): + """Exception throw when Command is not found""" + + pass + + +def get_user_config_dir(): + """Platform specific directory for user configuration. + + :returns: returns the user configuration directory. + :rtype: string + """ + if os.name == "nt": + try: + csidl_appdata = 26 + + shgetfolderpath = windll.shell32.SHGetFolderPathW + shgetfolderpath.argtypes = [ + wintypes.HWND, + ctypes.c_int, + wintypes.HANDLE, + wintypes.DWORD, + wintypes.LPCWSTR, + ] + + path_buf = ctypes.create_unicode_buffer(wintypes.MAX_PATH) + result = shgetfolderpath(0, csidl_appdata, 0, 0, path_buf) + + if result == 0: + return path_buf.value + except ImportError: + pass + + return os.environ["APPDATA"] + + return os.path.expanduser("~") + + +def is_exe(filename): + """Determine if filename is an executable. + + :param filename: the filename to examine. + :type filename: string + :returns: True if filename is executable False otherwise. + :rtype: boolean + """ + if sys.platform == "win32": + if os.path.exists(filename): + return True + + # windows uses PATHEXT to list valid executable extensions + pathext = os.environ["PATHEXT"].split(os.pathsep) + (_, ext) = os.path.splitext(filename) + + if ext in pathext: + return True + else: + if os.path.exists(filename) and os.access(filename, os.X_OK): + return True + + return False + + +def find_exe(filename, path=None): + """Search path for a executable (aka which) + + :param filename: the filename to search for. + :type filename: string. + :param path: the path(s) to search (default: os.environ['PATH']) + :param path: string separated with os.pathsep + :returns: string with full path to the file or None if not found. + :rtype: string or None. + """ + if path is None: + path = os.environ["PATH"] + + pathlist = path.split(os.pathsep) + + # handle fully qualified paths + if os.path.isfile(filename) and is_exe(filename): + return filename + + for innerpath in pathlist: + foundpath = os.path.join(innerpath, filename) + + if is_exe(foundpath): + return foundpath + + return None + + +def get_terminal_size(): + """Returns the rows and columns of the terminal as a tuple. + + :returns: the row and column count of the terminal + :rtype: tuple (cols, rows) + """ + _tuple = (80, 25) # default + + if os.name == "nt": + pass + else: + which_stty = find_exe("stty") + + if which_stty: + args = [which_stty, "size"] + try: + procs = subprocess.Popen(args, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + except OSError as excp: + raise ResourceAllocationError(str(excp)) + (stdout_s, _) = procs.communicate() + + _ = procs.wait() + # python3 change + if isinstance(stdout_s, bytes): + stdout_s = stdout_s.decode("utf-8") + if stdout_s and re.search(r"^\d+ \d+$", stdout_s): + rows, cols = stdout_s.split() + _tuple = (cols, rows) + + return _tuple + + +class CLI(object): + """Class for building command line interfaces.""" + + def __init__(self, verbosity=1, out=sys.stdout): + self._verbosity = verbosity + self._out = out + cols, rows = get_terminal_size() + self._cols = int(cols) + self._rows = int(rows) + + def verbosity(self, verbosity): + self._verbosity = verbosity + + def get_hrstr(self, character="-"): + """returns a string suitable for use as a horizontal rule. + + :param character: the character to use as the rule. (default -) + :type character: str. + """ + return "%s\n" % (character * self._cols) + + def printer(self, data, flush=True): + """printing wrapper + + :param data: data to be printed to the output stream + :type data: str. + :param flush: flush buffer - True, not flush output buffer - False + :type flush: boolean + """ + + UI(self._verbosity).printer(data, flush) + + def horizontalrule(self, character="-"): + """writes a horizontal rule to the file handle. + + :param character: the character to use as the rule. (default -) + :type character: str. + """ + + self.printer(self.get_hrstr(character=character)) + + def version(self, progname, version, extracontent): + """Prints a version string to fileh. + + :param progname: the name of the program. + :type progname: str. + :param version: the version of the program. + :type version str. + :param fileh: the file handle to write to. Default is sys.stdout. + :type fileh: file object + :returns: None + """ + tmp = "%s version %s\n%s" % (progname, version, extracontent) + self.printer(tmp) + self.horizontalrule() + + def prompt_password(self, msg, default=None): + """Convenient password prompting function + + :param msg: prompt text. + :type msg: str. + :param default: default value if user does not enter anything. + :type default: str. + :returns: string user entered, or default if nothing entered + """ + message = "%s : " % msg + + if default is not None: + message = "%s [%s] : " % (msg, default) + + i = getpass.getpass(message) + + if i is None or len(i) == 0: + i = default + + i = str(i) + + return i.strip() diff --git a/venv/lib/python3.10/site-packages/ilorest/config/__init__.py b/venv/lib/python3.10/site-packages/ilorest/config/__init__.py new file mode 100644 index 0000000..4886160 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/config/__init__.py @@ -0,0 +1 @@ +"""Config parsing for RDMC""" diff --git a/venv/lib/python3.10/site-packages/ilorest/config/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/config/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..91c8ebb7a306207a7c53bfa6399b0b91c2929f55 GIT binary patch literal 221 zcmYjLJqyAx6ii)O1ZOuXZVv79V-iG!y6T{tAfdLgO>Of+5{2q7@-KDuUpSd|^5EU$ z;Ep>S4En@k?7sNO{!c6Z;aIV;r#(w4Ig!*kl1cA5j8I&8=F3=VE;9d$%0Fy((SG7I zE~P0Zl)j1T*;Gg0Gvrt?DD-@`1gWrKiP6AI460bf8B_3J;sGVUfUHf9ViC@!pt)gz kjFX#nbZ*78fu!pOO1a>M(ooiox2iC`mu%e*)@`jveytTd5dZ)H literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/config/__pycache__/config.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/config/__pycache__/config.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8f094c7de07f9d67f94c53732985a0bc616e7ba8 GIT binary patch literal 3712 zcmdT{U2hx56`h&=;BrM#vh#u3Nt%rTH(^?fNs6MaBcv%D!zk)9t`#6C+hVcej;NKF zTzYmXmFx;IVD&HbnF9KfzcjA}isrd*PJ#B^SyG}XIY5EFWQm=b-MKS+=gc{GF0=J@ zpW(Vy`*ZTmHOBr<56hR0hfi_m9TYL^vY5vrh2C%?(!aVmqoOa(`odXfzL!BJA|2mLhLjnbf( z4fm4%SVcvW4TEe%RlfB#Tw$FS*Nv)w6scUQ9=%<@EIfRQJO2X;$>1_0ce|FfXHG2O zmK$F;Zt*VMjNQ0)!k)v~*o*5Ytn0^qyoP!$Zp7=T8?bK18z;QGj@D*;4XtKuVIi;R z&0mg-?4I%Vk@04l(3_P7RE};1k5o32sz_uWFe$1}1gp#OjSJ+)T`VFRm=6!5fxK&40X503T^WpXct{&sZBCG8QH%v{ zozGBAM%Z$AUQLh}YU_M{U90v!@3e$>_d|rjw;!3#%zHhg9G{=!Ij0?Wt?3(=ygRqM z;GbC!#u)$ZqS0r^ykIl1Wl6t>vp z4Q}&IE}q$Z`qm}LmPcKX7P;x*HlV$S2BgJjEEchKDqd&Dq7;CSA2M~F>Qdammd7?A za;DKsAvzbtTyXIAE@4M1Q*&TfHDzor%IQVT1c%%C3w}rQu=ADBH6=%B)RT(hK+CF_ z^g7zw0srM>6)>BYejok0hhh_a_W{)OwJRa&5gdz)`1EbifInx@7?4V9djZYgc4Tph zINyp2VoxrMmt#WFi>^7Khfz94_%hWzboCR225JL^)p_RT7tvKWutIf{iZ@Vn)SD>h zTvQdLW}NyynNWCIQmc*NR{R$4DqQO?#}#%LC`a0F;5L-|2O2<;h=!<8aw44CDENVx zS)|hZS`0l-9~MyUDI?87uXxWfYF0aCQ1!>hIJS?SX&rqY=Bk(WsW^7NWW!rFE9?V* z(%}ePoK4ryEoL~xiQ;ohe{T8f%JO$?$d6c6mX7Mic4WV5T^ajseaOI;kfC?CD^;M8L&Y{_p2t$1tkm7O||=RJ7$FZXoRJ5*F4*>0IYSW<~Vz3FYu4hwZ6*d>bL-3$DEBJNZ#Pdy*c>0h1 zO#IufQLlLB{;Sz^@!rMzE5Z!TeMt`Fsgc89(YPdsH6m5PXMzMU^*~|@JT{2{Bq!?f z184Hif^I}zh{HAFcm?7RhP)2O)o5I47nMw$8%P*WEgX73D17v+#ny8Hl3O!S+(^uw zt)D_T^!=7S{pU`Ev^FR?B&CF*_QP;s{@I}2 z2*ao2D4qAzkltiS^0iQsvY^3;B#eJvOs%2N-Xh`{wHpZ3+tm9G6_j-|?lt^o^R}^RHPpwj(6uz{_pzyp)~+ZOQj`kmIx@1Y zL3SwfDz?-SKOVwVD)lq!cOQQK;KBXJ+Rb(;xi)iN<&gHaD-=GVq}TlIu&==vj-P07 IzxJy0Uk{zONdN!< literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/config/__pycache__/rdmc_config.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/config/__pycache__/rdmc_config.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..de3815ce117ffe751af1d084f9a1eacb77ae6e6c GIT binary patch literal 7893 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/config/config.py b/venv/lib/python3.10/site-packages/ilorest/config/config.py new file mode 100644 index 0000000..7edbcb8 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/config/config.py @@ -0,0 +1,159 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Module for working with global configuration options.""" + +# ---------Imports--------- + +import logging +import os +import re + +import six +from six.moves import configparser + +# ---------End of imports--------- + + +# ---------Debug logger--------- + +LOGGER = logging.getLogger(__name__) + +# ---------End of debug logger--------- + + +class AutoConfigParser(object): + """Auto configuration parser. Properties starting with _ac__ are automatically + serialized to config file""" + + _config_pattern = re.compile(r"_ac__(?P.*)") + + def __init__(self, filename=None): + """Initialize AutoConfigParser + + :param filename: file name to be used for config loading. + :type filename: str. + + """ + self._sectionname = "globals" + self._configfile = filename + + @property + def configfile(self): + """The current configuration file location""" + return self._configfile + + def _get_ac_keys(self): + """Retrieve parse option keys""" + result = [] + for key in six.iterkeys(self.__dict__): + match = AutoConfigParser._config_pattern.search(key) + if match: + result.append(match.group("confkey")) + return result + + def _get(self, key): + """Retrieve parse option key + + :param key: key to retrieve. + :type key: str. + + """ + ackey = "_ac__%s" % key.replace("-", "_") + if ackey in self.__dict__: + return self.__dict__[ackey] + return None + + def _set(self, key, value): + """Set parse option key + + :param key: key to be set. + :type key: str. + :param value: value to be given to key. + :type value: str. + + """ + ackey = "_ac__%s" % key.replace("-", "_") + if ackey in self.__dict__: + self.__dict__[ackey] = value + return None + + def load(self, filename=None): + """Load configuration settings from the file filename, if filename + is None then the value from configfile property is used + + :param filename: file name to be used for config loading. + :type filename: str. + + """ + fname = self.configfile + if filename: + fname = filename + + if not fname or not os.path.isfile(fname): + return + + try: + config = configparser.RawConfigParser() + config.read(fname) + for key in self._get_ac_keys(): + configval = None + try: + configval = config.get(self._sectionname, key) + except configparser.NoOptionError: + # also try with - instead of _ + try: + configval = config.get(self._sectionname, key.replace("_", "-")) + except configparser.NoOptionError: + pass + + if configval: + ackey = "_ac__%s" % key + self.__dict__[ackey] = configval + except configparser.NoOptionError: + pass + except configparser.NoSectionError: + pass + + def save(self, filename=None): + """Save configuration settings from the file filename, if filename + is None then the value from configfile property is used + + :param filename: file name to be used for config saving. + :type filename: str. + + """ + fname = self.configfile + if filename: + fname = filename + + if fname: + return + + config = configparser.RawConfigParser() + try: + config.add_section(self._sectionname) + except configparser.DuplicateSectionError: + pass # ignored + + for key in self._get_ac_keys(): + ackey = "_ac__%s" % key + config.set(self._sectionname, key, str(self.__dict__[ackey])) + + fileh = open(self._configfile, "wb") + config.write(fileh) + fileh.close() diff --git a/venv/lib/python3.10/site-packages/ilorest/config/rdmc_config.py b/venv/lib/python3.10/site-packages/ilorest/config/rdmc_config.py new file mode 100644 index 0000000..9758c15 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/config/rdmc_config.py @@ -0,0 +1,288 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Rdmc config""" + +import os +import json + +try: + from config.config import AutoConfigParser + from logging_config_path import get_logging_config_path +except ImportError: + from ilorest.config.config import AutoConfigParser + from ilorest.logging_config_path import get_logging_config_path + + +class RdmcConfig(AutoConfigParser): + """Rdmc config class for loading and parsing the .conf file global configuration options. + Uses the AutoConfigParser.""" + + def _load_logdir_from_json(self): + """Load logdir from logging configuration JSON file. + + :returns: logdir path from JSON config, or current directory as fallback + :rtype: str + """ + config_path = get_logging_config_path() + try: + if os.path.isfile(config_path): + with open(config_path, "r", encoding="utf-8") as f: + config = json.load(f) + handlers = config.get("handlers", {}) + file_handler = handlers.get("file", {}) + filename = file_handler.get("filename", "") + if "%(logdir)s" in filename: + logdir = file_handler.get("filename").split("%(logdir)s")[0].rstrip("/\\") + return logdir if logdir else os.getcwd() + else: + # If filename does not contain %(logdir)s, extract directory from filename + return os.path.dirname(filename) if os.path.dirname(filename) else os.getcwd() + except Exception: + pass + + # Fallback to current working directory if any issues + return os.getcwd() + + def __init__(self, filename=None): + """Initialize RdmcConfig + + :param filename: file name to be used for Rdmcconfig loading. + :type filename: str + + """ + AutoConfigParser.__init__(self, filename=filename) + self._sectionname = "redfish" + self._configfile = filename + self._ac__logdir = self._load_logdir_from_json() + self._ac__cache = True + self._ac__url = "" + self._ac__username = "" + self._ac__password = "" + self._ac__sslcert = "" + self._ac__commit = "" + self._ac__format = "" + self._ac__cachedir = "" + self._ac__savefile = "" + self._ac__loadfile = "" + self._ac__user_cert = "" + self._ac__user_root_ca_key = "" + self._ac__user_root_ca_password = "" + + @property + def configfile(self): + """The current configuration file""" + return self._configfile + + @configfile.setter + def configfile(self, config_file): + """Set the current configuration file + + :param config_file: file name to be used for Rmcconfig loading. + :type config_file: str + """ + self._configfile = config_file + + @property + def logdir(self): + """Get the current log directory""" + return self._get("logdir") + + @logdir.setter + def logdir(self, value): + """Set the current log directory + :param value: current working directory for logging + :type value: str + """ + return self._set("logdir", value) + + @property + def cache(self): + """Get the config file cache status""" + + if isinstance(self._get("cache"), bool): + return self._get("cache") + + return self._get("cache").lower() in ("yes", "true", "t", "1") + + @cache.setter + def cache(self, value): + """Get the config file cache status + + :param value: status of config file cache + :type value: bool + """ + return self._set("cache", value) + + @property + def url(self): + """Get the config file URL""" + url = self._get("url") + url = url[:-1] if url.endswith("/") else url + + return url + + @url.setter + def url(self, value): + """Set the config file URL + + :param value: URL path for the config file + :type value: str + """ + return self._set("url", value) + + @property + def username(self): + """Get the config file user name""" + return self._get("username") + + @username.setter + def username(self, value): + """Set the config file user name + + :param value: user name for config file + :type value: str + """ + return self._set("username", value) + + @property + def password(self): + """Get the config file password""" + return self._get("password") + + @password.setter + def password(self, value): + """Set the config file password + + :param value: password for config file + :type value: str + """ + return self._set("password", value) + + @property + def commit(self): + """Get the config file commit status""" + return self._get("commit") + + @commit.setter + def commit(self, value): + """Set the config file commit status + + :param value: commit status + :type value: str + """ + return self._set("commit", value) + + @property + def format(self): + """Get the config file default format""" + return self._get("format") + + @format.setter + def format(self, value): + """Set the config file default format + + :param value: set the config file format + :type value: str + """ + return self._set("format", value) + + @property + def cachedir(self): + """Get the config file cache directory""" + return self._get("cachedir") + + @cachedir.setter + def cachedir(self, value): + """Set the config file cache directory + + :param value: config file cache directory + :type value: str + """ + return self._set("cachedir", value) + + @property + def defaultsavefilename(self): + """Get the config file default save name""" + return self._get("savefile") + + @defaultsavefilename.setter + def defaultsavefilename(self, value): + """Set the config file default save name + + :param value: config file save name + :type value: str + """ + return self._set("savefile", value) + + @property + def defaultloadfilename(self): + """Get the config file default load name""" + return self._get("loadfile") + + @defaultloadfilename.setter + def defaultloadfilename(self, value): + """Set the config file default load name + + :param value: name of config file to load by default + :type value: str + """ + return self._set("loadfile", value) + + @property + def proxy(self): + """Get proxy value to be set for communication""" + return self._get("proxy") + + @proxy.setter + def proxy(self, value): + """Set proxy value for communication""" + return self._set("proxy", value) + + @property + def ssl_cert(self): + """Get proxy value to be set for communication""" + return self._get("sslcert") + + @ssl_cert.setter + def ssl_cert(self, value): + """Set proxy value for communication""" + return self._set("sslcert", value) + + @property + def user_cert(self): + return self._get("usercert") + + @user_cert.setter + def user_cert(self, value): + return self._set("usercert", value) + + @property + def user_root_ca_key(self): + return self._get("user_root_ca_key") + + @user_root_ca_key.setter + def user_root_ca_key(self, value): + return self._set("user_root_ca_key", value) + + @property + def user_root_ca_password(self): + return self._get("user_root_ca_password") + + @user_root_ca_password.setter + def user_root_ca_password(self, value): + return self._set("user_root_ca_password", value) diff --git a/venv/lib/python3.10/site-packages/ilorest/debug_utils.py b/venv/lib/python3.10/site-packages/ilorest/debug_utils.py new file mode 100644 index 0000000..4c528ac --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/debug_utils.py @@ -0,0 +1,475 @@ +### +# Copyright 2016-2025 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Debug utilities for iLOrest""" + +import json +import os +import logging + +try: + from logging_config_path import get_logging_config_path +except ModuleNotFoundError: + from ilorest.logging_config_path import get_logging_config_path + + +def is_debug_enabled(config_path=None): + """ + Check if debug logging is enabled by reading the logging configuration file. + + Args: + config_path (str, optional): Path to the logging config file. + Defaults to the standard config location. + + Returns: + bool: True if debug logging is enabled, False otherwise. + """ + if config_path is None: + config_path = get_logging_config_path() + + try: + # Check if config file exists + if not os.path.isfile(config_path): + # If config file doesn't exist, assume debug is disabled + return False + + # Load the configuration file + with open(config_path, "r", encoding="utf-8") as f: + config = json.load(f) + + # Check the root logger level first + loggers = config.get("loggers", {}) + root_logger = loggers.get("", {}) + root_level = root_logger.get("level", "INFO").upper() + + # If root logger is set to DEBUG, debug is enabled + if root_level == "DEBUG": + return True + + # Check if any specific loggers have DEBUG level + for logger_name, logger_config in loggers.items(): + if logger_name == "": # Skip root logger, already checked + continue + level = logger_config.get("level", "INFO").upper() + if level == "DEBUG": + return True + + # Check handlers for DEBUG level + handlers = config.get("handlers", {}) + for handler_name, handler_config in handlers.items(): + level = handler_config.get("level", "INFO").upper() + if level == "DEBUG": + return True + + # If no DEBUG level found anywhere, debug is disabled + return False + + except (FileNotFoundError, json.JSONDecodeError, KeyError, ValueError): + # If there's any error reading the config, assume debug is disabled + return False + except Exception: + # For any other unexpected error, assume debug is disabled + return False + + +def get_current_log_level(logger_name="", config_path=None): + """ + Get the current log level for a specific logger from the configuration file. + + Args: + logger_name (str): Name of the logger. Empty string for root logger. + config_path (str, optional): Path to the logging config file. + + Returns: + str: The log level (e.g., 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'). + Returns 'INFO' as default if not found. + """ + if config_path is None: + config_path = get_logging_config_path() + + try: + # Check if config file exists + if not os.path.isfile(config_path): + return "INFO" + + # Load the configuration file + with open(config_path, "r", encoding="utf-8") as f: + config = json.load(f) + + # Get the specific logger configuration + loggers = config.get("loggers", {}) + logger_config = loggers.get(logger_name, {}) + + # Return the level, defaulting to INFO + return logger_config.get("level", "INFO").upper() + + except Exception: + # For any error, return INFO as default + return "INFO" + + +def set_debug_level_in_config(enable_debug=True, config_path=None): + """ + Update the logging configuration file to enable or disable debug logging. + + Args: + enable_debug (bool): True to enable debug, False to disable. + config_path (str, optional): Path to the logging config file. + + Returns: + bool: True if successful, False otherwise. + """ + if config_path is None: + config_path = get_logging_config_path() + + try: + # Check if config file exists + if not os.path.isfile(config_path): + return False + + # Load the configuration file + with open(config_path, "r", encoding="utf-8") as f: + config = json.load(f) + + # Set the desired level + new_level = "DEBUG" if enable_debug else "INFO" + + # Update root logger level + if "loggers" not in config: + config["loggers"] = {} + if "" not in config["loggers"]: + config["loggers"][""] = {} + + config["loggers"][""]["level"] = new_level + + # Update all other loggers to the same level + for logger_name in config["loggers"]: + config["loggers"][logger_name]["level"] = new_level + + # Update handlers to the same level + if "handlers" in config: + for handler_name in config["handlers"]: + config["handlers"][handler_name]["level"] = new_level + + # Write the updated configuration back to file + with open(config_path, "w", encoding="utf-8") as f: + json.dump(config, f, indent=2) + + return True + + except PermissionError as e: + logging.warning("Administrator privileges are required to save the configuration") + return False + except Exception as e: + logging.debug(f"Unexpected error in set_debug_level_in_config: {e}") + return False + + +def set_file_handlers_level(root_logger=None, level=logging.INFO): + """Set level for any FileHandler-like handlers on the provided logger. + + Args: + root_logger (logging.Logger): Logger instance to operate on. If None, uses logging.getLogger(). + level (int): Level to set for file handlers. + Returns: + int: Number of handlers updated. + """ + updated = 0 + try: + if root_logger is None: + root_logger = logging.getLogger() + + for h in list(root_logger.handlers): + try: + if isinstance(h, logging.FileHandler) or getattr(h, "baseFilename", None): + h.setLevel(level) + updated += 1 + except Exception: + pass + return updated + except Exception: + return 0 + + +def set_named_handler_level_if_exists(root_logger=None, name="logconfig_stdout", level=logging.INFO): + """Set level on a named handler only if it exists; do not create handlers. + + Args: + root_logger (logging.Logger): Logger to operate on (defaults to root logger). + name (str): Handler name to look for. + level (int): Level to set. + Returns: + bool: True if handler level was updated, False otherwise. + """ + try: + if root_logger is None: + root_logger = logging.getLogger() + + for h in list(root_logger.handlers): + if getattr(h, "name", None) == name: + try: + h.setLevel(level) + return True + except Exception: + return False + return False + except Exception: + return False + + +def update_config_handlers_levels(config_path=None, level_str="INFO", handler_names=None): + """Update handler levels in the JSON logging configuration file. + + Args: + config_path (str): Path to the logging_config.json file. + level_str (str): Level string to set (e.g., 'DEBUG', 'INFO'). + handler_names (iterable|None): If provided, only update these handler names; otherwise update all handlers. + + Returns: + bool: True if update succeeded, False otherwise. + """ + if config_path is None: + config_path = get_logging_config_path() + + try: + if not os.path.isfile(config_path): + return False + + with open(config_path, "r", encoding="utf-8") as f: + config = json.load(f) + + if "handlers" not in config: + config["handlers"] = {} + + for hname in list(config["handlers"].keys()): + if handler_names is None or hname in handler_names: + try: + config["handlers"][hname]["level"] = level_str + except Exception: + pass + + with open(config_path, "w", encoding="utf-8") as f: + json.dump(config, f, indent=2) + + return True + except PermissionError as e: + logging.warning("Administrator privileges are required to save the configuration") + return False + except Exception as e: + logging.debug(f"Unexpected error in update_config_handlers_levels: {e}") + return False + + +def update_config_loggers_levels(config_path=None, level_str="INFO"): + """Update all logger levels in the JSON logging configuration file. + + Args: + config_path (str): Path to the logging_config.json file. + level_str (str): Level string to set for loggers. + + Returns: + bool: True if update succeeded, False otherwise. + """ + if config_path is None: + config_path = get_logging_config_path() + + try: + if not os.path.isfile(config_path): + return False + + with open(config_path, "r", encoding="utf-8") as f: + config = json.load(f) + + if "loggers" not in config: + config["loggers"] = {} + + # Set root logger + if "" not in config["loggers"]: + config["loggers"][""] = {} + config["loggers"][""]["level"] = level_str + + # Set all other loggers to the same level + for lname in list(config["loggers"].keys()): + try: + config["loggers"][lname]["level"] = level_str + except Exception: + pass + + with open(config_path, "w", encoding="utf-8") as f: + json.dump(config, f, indent=2) + + return True + except PermissionError as e: + logging.warning("Administrator privileges are required to save the configuration") + return False + except Exception as e: + logging.debug(f"Unexpected error in update_config_loggers_levels: {e}") + return False + + +def set_runtime_logger_levels(root_logger=None, runtime_level=logging.INFO, set_module_logger=None): + """Set runtime logger and handler levels consistently. + + Args: + root_logger (logging.Logger): Logger instance to operate on. Defaults to root logger. + runtime_level (int): Logging level (e.g., logging.DEBUG). + set_module_logger (logging.Logger|None): Optional module-level logger to set (e.g., rdmc helper LOGGER). + + Returns: + bool: True if operations completed (best-effort), False on failure. + """ + try: + if root_logger is None: + root_logger = logging.getLogger() + + root_logger.setLevel(runtime_level) + + # Update named stdout handler if present + set_named_handler_level_if_exists(root_logger, "logconfig_stdout", runtime_level) + + # Update file handlers level + set_file_handlers_level(root_logger, runtime_level) + + if set_module_logger is not None: + try: + set_module_logger.setLevel(runtime_level) + except Exception: + pass + + return True + except Exception: + return False + + +def update_config_file_rotation_settings(config_path=None, max_bytes=None, backup_count=None): + """Update file rotation settings for RotatingFileHandler in the JSON logging configuration file. + + Args: + config_path (str): Path to the logging_config.json file. + max_bytes (int|None): Maximum size of log file in bytes before rotation. + backup_count (int|None): Number of backup files to keep. + + Returns: + bool: True if update succeeded, False otherwise. + """ + if config_path is None: + config_path = get_logging_config_path() + + try: + if not os.path.isfile(config_path): + return False + + with open(config_path, "r", encoding="utf-8") as f: + config = json.load(f) + + if "handlers" not in config: + config["handlers"] = {} + + # Update rotation settings for RotatingFileHandler instances + updated = False + for handler_name, handler_config in config["handlers"].items(): + if not isinstance(handler_config, dict): + continue + + handler_class = handler_config.get("class", "") + if "RotatingFileHandler" in handler_class: + if max_bytes is not None: + handler_config["maxBytes"] = max_bytes + updated = True + + if backup_count is not None: + handler_config["backupCount"] = backup_count + updated = True + + if updated: + with open(config_path, "w", encoding="utf-8") as f: + json.dump(config, f, indent=2) + + return updated + except PermissionError as e: + logging.warning("Administrator privileges are required to save the configuration") + return False + except Exception as e: + logging.debug(f"Unexpected error in update_config_file_rotation_settings: {e}") + return False + + +def get_config_file_rotation_settings(config_path=None): + """Get current file rotation settings from the JSON logging configuration file. + + Args: + config_path (str): Path to the logging_config.json file. + + Returns: + dict: Dictionary containing rotation settings for each RotatingFileHandler. + Format: {handler_name: {'maxBytes': value, 'backupCount': value}} + """ + if config_path is None: + config_path = get_logging_config_path() + + rotation_settings = {} + + try: + if not os.path.isfile(config_path): + return rotation_settings + + with open(config_path, "r", encoding="utf-8") as f: + config = json.load(f) + + handlers = config.get("handlers", {}) + for handler_name, handler_config in handlers.items(): + if not isinstance(handler_config, dict): + continue + + handler_class = handler_config.get("class", "") + if "RotatingFileHandler" in handler_class: + rotation_settings[handler_name] = { + "maxBytes": handler_config.get("maxBytes"), + "backupCount": handler_config.get("backupCount"), + } + + return rotation_settings + except Exception: + return rotation_settings + + +def validate_rotation_parameters(max_bytes=None, backup_count=None): + """Validate file rotation parameters. + + Args: + max_bytes (int|None): Maximum size of log file in bytes before rotation. + backup_count (int|None): Number of backup files to keep. + + Returns: + tuple: (is_valid, error_message) where is_valid is bool and error_message is str or None. + """ + try: + if max_bytes is not None: + if not isinstance(max_bytes, int): + return False, "log_file_size must be an integer" + if max_bytes <= 0: + return False, "log_file_size must be a positive integer" + + if backup_count is not None: + if not isinstance(backup_count, int): + return False, "backup_count must be an integer" + if backup_count < 0: + return False, "backup_count must be a non-negative integer" + + return True, None + except Exception: + return False, "Invalid rotation parameters" diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/BiosDefaultsCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/BiosDefaultsCommand.py new file mode 100644 index 0000000..9901a5f --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/BiosDefaultsCommand.py @@ -0,0 +1,156 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""BiosDefaultsCommand for rdmc""" + +try: + from rdmc_helper import Encryption, InvalidCommandLineErrorOPTS, ReturnCodes +except ImportError: + from ilorest.rdmc_helper import Encryption, InvalidCommandLineErrorOPTS, ReturnCodes + + +class BiosDefaultsCommand: + """Set BIOS settings back to default for the server that is currently + logged in""" + + def __init__(self): + self.ident = { + "name": "biosdefaults", + "usage": None, + "description": "Run to set the currently" + " logged in server's Bios. type settings to defaults\n\texample: " + "biosdefaults\n\n\tRun to set the currently logged in server's " + "Bios. type settings to user defaults\n\texample: biosdefaults " + "--userdefaults\n\n\tRun to set the currently logged in server " + "to manufacturing defaults, including boot order and secure boot." + "\n\texample: biosdefaults --manufacturingdefaults", + "summary": "Set the currently logged in server to default BIOS settings.", + "aliases": [], + "auxcommands": ["SetCommand", "RebootCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main BIOS defaults worker function""" + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.defaultsvalidation(options) + + if options.manufdefaults: + self.rdmc.ui.printer("Resetting BIOS attributes and settings to manufacturing defaults.\n") + elif options.userdefaults: + self.rdmc.ui.printer("Resetting BIOS attributes and settings to user defaults.\n") + + put_path = self.rdmc.app.typepath.defs.biospath + body = None + + if self.rdmc.app.typepath.defs.isgen10 and not options.manufdefaults: + bodydict = self.rdmc.app.get_handler(self.rdmc.app.typepath.defs.biospath, service=True, silent=True).dict + + for item in bodydict["Actions"]: + if "ResetBios" in item: + action = item.split("#")[-1] + path = bodydict["Actions"][item]["target"] + break + + body = {"Action": action} + + if options.userdefaults: + body["ResetType"] = "default.user" + else: + body["ResetType"] = "default" + + self.rdmc.app.post_handler(path, body) + else: + if options.userdefaults: + body = {"BaseConfig": "default.user"} + elif not options.manufdefaults: + body = {"BaseConfig": "default"} + if body: + self.rdmc.app.put_handler( + put_path + "/settings", + body=body, + optionalpassword=options.biospassword, + ) + + if not body and options.manufdefaults: + setstring = "RestoreManufacturingDefaults=Yes --selector=HpBios. --commit" + if options.reboot: + setstring += " --reboot=%s" % options.reboot + + self.auxcommands["set"].run(setstring) + + elif options.reboot: + self.auxcommands["reboot"].run(options.reboot) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def defaultsvalidation(self, options): + """BIOS defaults method validation function""" + self.cmdbase.login_select_validation(self, options) + + if options.encode: + options.biospassword = Encryption.decode_credentials(options.biospassword) + if isinstance(options.biospassword, bytes): + options.biospassword = options.biospassword.decode("utf-8") + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--reboot", + dest="reboot", + help="Use this flag to perform a reboot command function after" + " completion of operations. For help with parameters and" + " descriptions regarding the reboot flag, run help reboot.", + default=None, + ) + customparser.add_argument( + "--userdefaults", + dest="userdefaults", + action="store_true", + help="Sets bios to user defaults instead of manufacturing defaults.", + default=False, + ) + customparser.add_argument( + "--manufacturingdefaults", + dest="manufdefaults", + action="store_true", + help="Reset all configuration settings to manufacturing defaults, " "including boot order and secure boot.", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/BootOrderCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/BootOrderCommand.py new file mode 100644 index 0000000..7be53c2 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/BootOrderCommand.py @@ -0,0 +1,746 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""BootOrder Command for rdmc""" + +import ast +import copy +import fnmatch +from functools import reduce + +import six + +try: + from rdmc_helper import ( + UI, + BootOrderMissingEntriesError, + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidOrNothingChangedSettingsError, + ReturnCodes, + ) +except: + from ilorest.rdmc_helper import ( + UI, + BootOrderMissingEntriesError, + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidOrNothingChangedSettingsError, + ReturnCodes, + ) + + +class BootOrderCommand: + """Changes the boot order for the server that is currently logged in""" + + def __init__(self): + self.ident = { + "name": "bootorder", + "usage": None, + "description": "Run without arguments for current boot order and one time boot options." + "\n\texample: bootorder\n\n\tTo set the persistent boot order pick items " + 'from\n\tthe "Current Persistent Boot Order" section.\n\t' + "example: bootorder [5,4,3,2,1] --commit\n\n\tSetting partial" + " boot order is also supported.\n\tMissing entries are " + "concatenated at the end.\n\texample: bootorder [5] --commit\n\n\t" + "You can also set the boot order using partial string matching.\n\t" + "example: bootorder NIC.*v4 HD* Generic.USB.1.1 --commit\n\n\tThis will set " + "All v4 NICs first, followed by all hard drives,\n\tfollowed by Generic.USB.1.1. " + "Everything not listed will be\n\tadded to the end of the boot order." + '\n\n\tTo set one time boot entry pick items from the\n\t"' + 'Continuous and one time boot uefi options" section.\n\t' + "example: bootorder --onetimeboot=Hdd\n\n\tTo set continuous" + ' boot entry pick items from the\n\t"Continuous and one time ' + 'boot uefi options" section.\n\texample: bootorder --' + "continuousboot=Utilities --commit\n\n\tDisable either " + "continuous or one time boot options.\n\texample: bootorder " + "--disablebootflag --commit\n\n\t" + "Changing Secure Boot Keys:\n\tTo manage secure boot keys use" + " the --securebootkeys flag.\n\tTo delete all keys.\n\n\texample:" + " bootorder --securebootkeys=deletepk\n\tFor all possibilities" + " see the --securebootkeys flag \n\tin the options list.\n\n\t" + "NOTE: pick ONETIMEBOOT and " + 'CONTINUOUS items from "Continuous\n\tand one time boot ' + 'options" section. Items in this list represent\n\ta ' + '"clustered" view of the "Continuous and one time boot uefi' + '\n\toptions" section. Example: choosing Pxe will try to Pxe' + ' boot\n\tcapable devices in the order found in the "' + 'Continuous and one\n\ttime boot options".\n\n\t', + "summary": "Displays and sets the current boot order.", + "aliases": [], + "auxcommands": [ + "GetCommand", + "SelectCommand", + "SetCommand", + "RebootCommand", + ], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main boot order worker function""" + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.bootordervalidation(options) + + if options.secureboot: + self.secureboothelper(options.secureboot) + + if options.reboot: + self.auxcommands["reboot"].run(options.reboot) + + return ReturnCodes.SUCCESS + + self.rdmc.app.select(selector="HpeServerBootSettings.", path_refresh=True) + + props = self.rdmc.app.getprops(skipnonsetting=False) + + for prop in props: + bootname = prop.get("Name") + + self.rdmc.ui.printer("bootname is : {0}\n\n".format(bootname)) + + if self.rdmc.app.typepath.defs.isgen10: + if "current" in bootname.lower() or "pending" in bootname.lower(): + try: + bootpath = prop.get("@odata.id") + except: + bootpath = prop.get("links") + else: + bootpath = "/rest/v1/systems/1/bios/boot" + + self.rdmc.ui.printer("bootpath is : {0}\n\n".format(bootpath)) + + bootsources = self.rdmc.app.get_handler(bootpath, service=True, silent=True).dict["BootSources"] + + bootoverride = None + self.auxcommands["select"].selectfunction("HpeBios.") + try: + bootmode = self.auxcommands["get"].getworkerfunction("BootMode", options, results=True, uselist=True) + except: + bootmode = dict() + bootmode["BootMode"] = "Uefi" + + self.auxcommands["select"].selectfunction("ComputerSystem.") + onetimebootsettings = self.auxcommands["get"].getworkerfunction( + ["Boot/" + self.rdmc.app.typepath.defs.bootoverridetargettype], + options, + results=True, + uselist=True, + ) + + bootstatus = self.auxcommands["get"].getworkerfunction( + ["Boot/BootSourceOverrideEnabled"], + options, + results=True, + uselist=True, + ) + + targetstatus = self.auxcommands["get"].getworkerfunction( + ["Boot/BootSourceOverrideTarget"], + options, + results=True, + uselist=True, + ) + + uefitargetstatus = self.auxcommands["get"].getworkerfunction( + ["Boot/UefiTargetBootSourceOverride"], + options, + results=True, + uselist=True, + ) + + currentsettings = self.rdmc.app.get_handler(self.rdmc.app.typepath.defs.systempath, service=True, silent=True) + + if bootmode and bootmode[0].get("BootMode", None) == "Uefi": + if self.rdmc.app.typepath.defs.isgen9: + uefionetimebootsettings = self.auxcommands["get"].getworkerfunction( + ["Boot/UefiTargetBootSourceOverrideSupported"], + options, + results=True, + uselist=True, + ) + + else: + # Gen 10 + bootsettings = self.auxcommands["get"].getworkerfunction( + ["Boot"], + options, + results=True, + uselist=True, + )[0]["Boot"] + finaluefi = [] + if "UefiTargetBootSourceOverride@Redfish.AllowableValues" in bootsettings: + uefionetimebootsettings = bootsettings["UefiTargetBootSourceOverride@Redfish.AllowableValues"] + + for setting in uefionetimebootsettings: + for source in bootsources: + if "UEFIDevicePath" in source and source["UEFIDevicePath"].endswith(setting): + finaluefi.append(source["StructuredBootString"]) + continue + + uefionetimebootsettings = {"Boot": {"UefiTargetBootSourceOverrideSupported": finaluefi}} + else: + uefionetimebootsettings = None + + if options.onetimeboot is None and options.continuousboot is None and not options.disablebootflag: + self.auxcommands["select"].selectfunction("HpeServerBootSettings.") + bootsettings = self.auxcommands["get"].getworkerfunction( + "PersistentBootConfigOrder", options, results=True, uselist=True + ) + + if not args: + if not options.json: + self.print_out_boot_order( + bootsettings, + onetimebootsettings, + uefionetimebootsettings, + bootmode, + bootsources, + bootstatus, + targetstatus, + ) + elif options.json: + UI().print_out_json(bootsettings) + elif len(args) == 1 and args[0][0] == "[": + bootlist = args[0][1:-1].split(",") + currentlist = bootsettings[0]["PersistentBootConfigOrder"] + + if not isinstance(currentlist, list): + templist = ast.literal_eval(currentlist[1:-1]) + currentlist = [n.strip() for n in templist] + + removallist = copy.deepcopy(currentlist) + + if len(bootlist) > len(currentlist): + raise InvalidCommandLineError("Number of entries is greater than the current boot order length.") + else: + newlist = "[" + + for value, _ in enumerate(bootlist): + try: + newlist += currentlist[int(bootlist[value]) - 1] + except: + raise InvalidCommandLineError( + "Invalid entry " + "number passed to bootorder. Please \n" + " run bootorder without arguments" + " for possible boot \n order numbers. " + ) + + removallist.remove(currentlist[int(bootlist[value]) - 1]) + + if removallist: + newlist += "," + + if not removallist: + newlist += "]" + else: + for value, _ in enumerate(removallist): + newlist += removallist[value] + + if not value == len(removallist) - 1: + newlist += "," + + newlist += "]" + + if options.biospassword: + newlist += " --biospassword " + options.biospassword + + if options.reboot: + newlist += " --commit --reboot " + options.reboot + elif options.commit: + newlist += " --commit" + + self.auxcommands["set"].run("PersistentBootConfigOrder=" + newlist) + else: + currlist = bootsettings[0]["PersistentBootConfigOrder"] + if not isinstance(currlist, list): + templist = ast.literal_eval(currlist[1:-1]) + currlist = [n.strip() for n in templist] + remlist = copy.deepcopy(currlist) + if len(args) > len(currlist): + raise InvalidCommandLineError("Number of entries is " "greater than the current boot order length.") + newlist = [] + for arg in args: + argmatch = [val for val in remlist if fnmatch.fnmatch(val.lower(), arg.lower())] + if not argmatch and not options.ime: + raise InvalidCommandLineError( + "Invalid entry passed: " + "{0}. Please run bootorder to check for possible " + "values and reevaluate.\n".format(arg) + ) + if argmatch: + newlist.extend(argmatch) + _ = [remlist.remove(val) for val in newlist if val in remlist] + newlist.extend(remlist) + strlist = "[" + concatlist = reduce((lambda x, y: x + "," + y), newlist) + strlist = strlist + concatlist + "]" + + if options.biospassword: + strlist += " --biospassword " + options.biospassword + if options.reboot: + strlist += " --commit --reboot " + options.reboot + elif options.commit: + strlist += " --commit" + self.auxcommands["set"].run("PersistentBootConfigOrder=" + strlist) + else: + if options.onetimeboot is not None: + entry = options.onetimeboot + + if not bootstatus[0]["Boot"]["BootSourceOverrideEnabled"] == "Once": + bootoverride = " Boot/BootSourceOverrideEnabled=Once" + elif options.continuousboot is not None: + entry = options.continuousboot + + if not bootstatus[0]["Boot"]["BootSourceOverrideEnabled"] == "Continuous": + bootoverride = " Boot/BootSourceOverrideEnabled=Continuous" + else: + entry = "JacksBootOption" + if not bootstatus[0]["Boot"]["BootSourceOverrideEnabled"] == "Disabled": + if currentsettings.dict["Boot"]["BootSourceOverrideEnabled"] == "Disabled": + bootoverride = "Boot/BootSourceOverrideTarget=None" " Boot/BootSourceOverrideEnabled=Disabled" + else: + bootoverride = "Boot/BootSourceOverrideTarget=None" + + newlist = "" + + if entry.lower() in ( + item.lower() + for item in onetimebootsettings[0]["Boot"][self.rdmc.app.typepath.defs.bootoverridetargettype] + ): + if entry and isinstance(entry, six.string_types): + entry = entry.upper() + + entry = self.searchcasestring( + entry, + onetimebootsettings[0]["Boot"][self.rdmc.app.typepath.defs.bootoverridetargettype], + ) + + if not entry == targetstatus[0]["Boot"]["BootSourceOverrideTarget"]: + newlist += " Boot/BootSourceOverrideTarget=" + entry + + if bootoverride: + newlist += bootoverride + + if options.biospassword and newlist: + newlist += " --biospassword " + options.biospassword + + if options.reboot and newlist: + newlist += " --commit --reboot " + options.reboot + elif options.commit and newlist: + newlist += " --commit" + + if newlist: + self.auxcommands["set"].run(newlist) + else: + raise InvalidOrNothingChangedSettingsError("Entry is the current boot setting.") + elif ( + uefionetimebootsettings + and uefionetimebootsettings["Boot"]["UefiTargetBootSourceOverrideSupported"] + and entry in (item for item in uefionetimebootsettings["Boot"]["UefiTargetBootSourceOverrideSupported"]) + ): + if entry and isinstance(entry, six.string_types): + entry = entry.upper() + + entry = self.searchcasestring( + entry, + uefionetimebootsettings["Boot"]["UefiTargetBootSourceOverrideSupported"], + ) + try: + # gen10 + allowable_vals = next( + iter( + self.auxcommands["get"].getworkerfunction( + ["Boot/UefiTargetBootSourceOverride@Redfish.AllowableValues"], + options, + results=True, + uselist=True, + ) + ), + {}, + )["Boot"]["UefiTargetBootSourceOverride@Redfish.AllowableValues"] + for source in bootsources: + if source["StructuredBootString"].upper() == entry.upper(): + for val in allowable_vals: + if "UEFIDevicePath" in source and source["UEFIDevicePath"].endswith(val): + entry = val + break + except KeyError: + pass + + if not entry == uefitargetstatus["Boot"]["UefiTargetBootSourceOverride"]: + newlist += " Boot/UefiTargetBootSourceOverride=" + entry + elif not targetstatus["Boot"]["BootSourceOverrideTarget"] == "UefiTarget": + newlist += " Boot/BootSourceOverrideTarget=UefiTarget" + + if bootoverride: + if self.rdmc.app.typepath.defs.isgen9 and newlist: + if not bootoverride.split("=")[-1] == bootstatus["Boot"]["BootSourceOverrideEnabled"]: + # Preemptively set UefiTargetBootSourceOverride so iLO 4 doesn't complain + self.rdmc.app.patch_handler( + self.rdmc.app.typepath.defs.systempath, + {"Boot": {"UefiTargetBootSourceOverride": entry}}, + silent=True, + service=True, + ) + self.rdmc.app.select(selector=self.rdmc.app.selector, path_refresh=True) + newlist = "" + newlist += bootoverride + else: + newlist += bootoverride + + if options.reboot and newlist: + newlist += " --commit --reboot " + options.reboot + elif options.commit and newlist: + newlist += " --commit" + + if newlist: + try: + self.auxcommands["set"].run(newlist) + except InvalidOrNothingChangedSettingsError: + if self.rdmc.app.typepath.defs.isgen9: + pass + else: + raise + else: + raise InvalidOrNothingChangedSettingsError("Entry is the " "current boot setting.\n") + elif options.disablebootflag: + if bootoverride: + newlist += bootoverride + + if options.reboot: + newlist += " --commit --reboot " + options.reboot + elif options.commit and newlist: + newlist += " --commit" + + if newlist: + self.auxcommands["set"].run(newlist) + else: + raise InvalidOrNothingChangedSettingsError("Entry is the " "current boot setting.\n") + else: + raise InvalidCommandLineError( + "Invalid entry passed for one" + " time boot. Please run boot \n order without" + " arguments to view available options.\n" + ) + + self.cmdbase.logout_routine(self, options) + + # Return code + return ReturnCodes.SUCCESS + + def searchcasestring(self, entry, content): + """Helper function for retrieving correct case for value + + :param entry: entry to correlate case + :type entry: string. + :param content: list of items + :type content: list. + """ + for item in content: + if entry.upper() == item.upper(): + return item + + def secureboothelper(self, securebootoption): + """Helper function for secure boot function + + :param securebootoption: option passed in for secure boot + :type securebootoption: string. + """ + actionlist = ["defaultkeys", "deletekeys", "deletepk"] + + if not securebootoption.lower() in actionlist: + raise InvalidCommandLineError("%s is not a valid option for " "the securebootkeys flag." % securebootoption) + + if securebootoption == actionlist[0]: + action = "ResetAllKeysToDefault" + elif securebootoption == actionlist[1]: + action = "DeleteAllKeys" + elif securebootoption == actionlist[2]: + action = "DeletePK" + + results = self.rdmc.app.select(selector=self.rdmc.app.typepath.defs.hpsecureboot) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + results = results.resp.dict + + try: + for item in results["Actions"]: + if "ResetKeys" in item: + path = results["Actions"][item]["target"] + break + + body = {"ResetKeysType": action} + self.rdmc.app.post_handler(path, body) + except: + if securebootoption == actionlist[0]: + self.auxcommands["select"].selectfunction(self.rdmc.app.typepath.defs.hpsecureboot) + self.auxcommands["set"].run("ResetToDefaultKeys=True --commit") + elif securebootoption == actionlist[1]: + self.auxcommands["select"].selectfunction(self.rdmc.app.typepath.defs.hpsecureboot) + self.auxcommands["set"].run("ResetAllKeys=True --commit") + else: + self.rdmc.ui.warn("DeletePK option is not available on Gen9.\n") + + def print_out_boot_order( + self, + content, + onetimecontent, + uefionetimecontent, + bootmode, + bootsources, + bootstatus, + targetstatus, + ): + """Convert content to human readable and print out to std.out + + :param content: current content + :type content: string. + :param onetimecontent: list of one time boot entries + :type onetimecontent: list. + :param uefionetimecontent: list of uefi one time boot entries + :type uefionetimecontent: list. + :param bootmode: current system boot mode + :type bootmode: string. + :param bootsources: current systems boot sources + :type bootsources: list. + """ + if content is None: + raise BootOrderMissingEntriesError("No entries found in " "current boot order.\n\n") + else: + self.print_boot_helper(content[0], "\nCurrent Persistent Boot " "Order:", bootsources=bootsources) + + bootstatusval = bootstatus[0]["Boot"]["BootSourceOverrideEnabled"] + boottoval = targetstatus[0]["Boot"]["BootSourceOverrideTarget"] + if bootstatusval == "Continuous": + self.rdmc.ui.printer("Current continuous boot: {0}\n\n".format(boottoval)) + elif bootstatusval == "Once": + self.rdmc.ui.printer("Current one time boot: {0}\n\n".format(boottoval)) + + if onetimecontent is None: + raise BootOrderMissingEntriesError("No entries found for one time boot options.\n\n") + else: + self.print_boot_helper(onetimecontent[0]["Boot"], "Continuous and one time boot options:") + + if bootmode and any([bootmode[0].get(boot, None) == "Uefi" for boot in bootmode[0]]): + if uefionetimecontent is None: + self.rdmc.ui.printer("Continuous and one time boot uefi options:\n") + self.rdmc.ui.printer( + "No entries found for one-time UEFI options or boot source mode " "is not set to UEFI." + ) + else: + if isinstance(uefionetimecontent, dict): + self.print_boot_helper( + uefionetimecontent["Boot"], + "Continuous and one time boot uefi options:", + bootsources=bootsources, + ) + else: + self.print_boot_helper( + uefionetimecontent[0]["Boot"], + "Continuous and one time boot uefi options:", + bootsources=bootsources, + ) + + def print_boot_helper(self, content, outstring, indent=0, bootsources=None): + """Print boot helper + + :param content: current content + :type content: string. + :param outstring: output string + :type outstring: string. + :param indent: indent format + :type indent: string. + :param bootsources: current systems boot sources + :type bootsources: list. + """ + for _, value in list(content.items()): + self.rdmc.ui.printer("\t" * indent + outstring) + + if isinstance(value, list): + count = 1 + + for item in value: + self.rdmc.ui.printer("\n") + + if not item: + item = str("null") + + # if isinstance(item, six.string_types): + bootstring = False + try: + for source in bootsources: + if item == source["StructuredBootString"]: + self.rdmc.ui.printer( + "\t" * indent + + str(count) + + ". " + + str(item) + + " (" + + str(source["BootString"]) + + ")" + ) + bootstring = True + break + + if not bootstring: + self.rdmc.ui.printer("\t" * indent + str(count) + ". " + str(item)) + except: + self.rdmc.ui.printer("\t" * indent + str(count) + ". " + str(item)) + + count += 1 + # else: + # self.print_boot_helper(item, indent+1) + + self.rdmc.ui.printer("\n\n") + + def bootordervalidation(self, options): + """Boot order method validation function + + :param options: command line options + :type options: list. + """ + inputline = list() + + if self.rdmc.config.commit.lower() == "true": + options.commit = True + + self.cmdbase.login_select_validation(self, options) + + if inputline: + self.lobobj.loginfunction(inputline) + + if options.encode: + options.biospassword = Encryption.decode_credentials(options.biospassword) + if isinstance(options.biospassword, bytes): + options.biospassword = options.biospassword.decode("utf-8") + + @staticmethod + def options_argument_group(parser): + """Additional argument + + :param parser: The parser to add the removeprivs option group to + :type parser: ArgumentParser/OptionParser + """ + + parser.add_argument_group( + "GLOBAL OPTION:", + "Option(s) are available " "for all arguments within the scope of this command.", + ) + + parser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + self.options_argument_group(customparser) + + customparser.add_argument( + "--onetimeboot", + dest="onetimeboot", + help="Use this flag to configure a one-time boot option." + " Using this flag will prioritize the provided boot source" + " only on the very next time the server is booted.", + default=None, + ) + customparser.add_argument( + "--continuousboot", + dest="continuousboot", + help="Use this flag to enable a continuous boot option. Using" + " this flag will cause the system to boot to the selected" + " device every time the system boots.", + default=None, + ) + customparser.add_argument( + "--disablebootflag", + dest="disablebootflag", + action="store_true", + help="Use this to disable either continuous or one-time boot modes.", + default=None, + ) + customparser.add_argument( + "--securebootkeys", + dest="secureboot", + help="Use this flag to perform actions on secure boot keys." + "Possible values include defaultkeys: resets all keys to default," + "deletekeys: deletes all keys, deletepk: deletes all product keys.", + default=False, + ) + customparser.add_argument( + "--commit", + dest="commit", + action="store_true", + help="Use this flag when you are ready to commit all pending" + " changes. Note that some changes made in this way will be updated" + " instantly, while others will be reflected the next time the" + " server is started.", + default=None, + ) + customparser.add_argument( + "--reboot", + dest="reboot", + help="Use this flag to perform a reboot command function after" + " completion of operations. For help with parameters and" + " descriptions regarding the reboot flag, run help reboot.", + default=None, + ) + customparser.add_argument( + "--ignorematcherror", + dest="ime", + action="store_true", + help="Use this flag when you want to run multiple matches and " + "not throw an error in case there are no matches found for given " + "expression.", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/IscsiConfigCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/IscsiConfigCommand.py new file mode 100644 index 0000000..a6e0d31 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/IscsiConfigCommand.py @@ -0,0 +1,978 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""IscsiConfig Command for rdmc""" + +import json +import re +import time + +import redfish.ris + +try: + from rdmc_helper import ( + BootOrderMissingEntriesError, + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NicMissingOrConfigurationError, + ReturnCodes, + ) +except: + from ilorest.rdmc_helper import ( + BootOrderMissingEntriesError, + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NicMissingOrConfigurationError, + ReturnCodes, + ) + + +class IscsiConfigCommand: + """Changes the iscsi configuration for the server that is currently logged in""" + + def __init__(self): + self.ident = { + "name": "iscsiconfig", + "usage": None, + "description": "Run without" + " arguments for available NIC sources for iSCSI" + " configuration.\n\texample: iscsiconfig\n\n\tDisplay" + " the current iSCSI configuration:\n\texample: " + "iscsiconfig --list\n\n\tSaving current iSCSI " + "configuration to a file:\n\texample: iscsiconfig " + "--list -f output.txt\n\n\tLoading iSCSI " + "configurations from a file:\n\texample: iscsiconfig " + "--modify output.txt\n\n\tIn order to add a NIC " + 'source to an iSCSI boot attempt you must run \n\t"' + 'iscsiconfig" without any paramters. This will ' + "display a list of NIC\n\tsources which are currently" + " present in the system.\n\tAdding an iSCSI boot " + "attempt:\n\texample: iscsiconfig --add 1\n\n\tIn " + "order to delete an iSCSI boot attempt you must run" + '\n\t"iscsiconfig --list" to view the currently ' + "configured attempts.\n\tOnce you find the attempt " + "you want to delete simply pass the attempt\n\tnumber" + " to the iSCSI delete function.\n\tDeleting an iSCSI " + "boot attempt:\n\texample: iscsiconfig --delete 1", + "summary": "Displays and configures the current iscsi settings.", + "aliases": [], + "auxcommands": [ + "GetCommand", + "SetCommand", + "SelectCommand", + "RebootCommand", + "LogoutCommand", + ], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main iscsi configuration worker function + + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.iscsiconfigurationvalidation(options) + + if self.rdmc.app.typepath.defs.isgen10: + iscsipath = self.gencompatpaths(selector="HpeiSCSISoftwareInitiator.", rel=False) + if "/settings" not in iscsipath: + iscsisettingspath = iscsipath + "settings" + else: + iscsisettingspath = iscsipath + bootpath = self.gencompatpaths(selector="HpeServerBootSettings.") + bootpath = bootpath.replace("/settings", "") + else: + # TODO: update gencompats to handle the nesting of these links within the gen 9 version. + if self.rdmc.app.typepath.defs.biospath[-1] == "/": + iscsipath = self.rdmc.app.typepath.defs.biospath + "iScsi/" + iscsisettingspath = self.rdmc.app.typepath.defs.biospath + "iScsi/settings/" + bootpath = self.rdmc.app.typepath.defs.biospath + "Boot/" + else: + iscsipath = self.rdmc.app.typepath.defs.biospath + "/iScsi" + iscsisettingspath = self.rdmc.app.typepath.defs.biospath + "/iScsi/settings" + bootpath = self.rdmc.app.typepath.defs.biospath + "/Boot" + + if options.list: + self.listoptionhelper(options, iscsipath, iscsisettingspath, bootpath) + elif options.modify: + self.modifyoptionhelper(options, iscsisettingspath) + elif options.add: + self.addoptionhelper(options, iscsipath, iscsisettingspath, bootpath) + elif options.delete: + self.deleteoptionhelper(options, iscsisettingspath) + elif not args: + self.defaultsoptionhelper(options, iscsipath, bootpath) + else: + if len(args) < 2: + self.iscsiconfigurationvalidation(options) + else: + raise InvalidCommandLineError( + "Invalid number of parameters. " "Iscsi configuration takes a maximum of 1 parameter." + ) + + if options.reboot: + self.auxcommands["reboot"].run(options.reboot) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def gencompatpaths(self, selector=None, rel=False): + """Helper function for finding gen compatible paths + + :param selector: the type selection for the get operation + :type selector: str. + :param rel: flag to tell select function to reload selected instance + :type rel: boolean. + :returns: returns urls + """ + + self.rdmc.app.select(selector=selector, path_refresh=rel) + props = self.rdmc.app.getprops(skipnonsetting=False) + for prop in props: + name = prop.get("Name") + if "current" in name.lower() or "pending" in name.lower(): + try: + path = prop.get("@odata.id") + except: + self.rdmc.ui.error("URI path could not be found.") + return path + + def get_enabled_only(self): + enable_disable = dict() + final_enabled_list = list() + + bios = "/redfish/v1/systems/1/bios/" + bios_dict = self.rdmc.app.get_handler(bios, silent=True, service=True).dict + if "Attributes" in bios_dict: + bios_dict_attributes = bios_dict["Attributes"].items() + else: + bios_dict_attributes = bios_dict.items() + for attr, val in bios_dict_attributes: + if "NetworkBoot" in str(val): + enable_disable[attr] = val + # Enabled NIC only listing + for k, v in enable_disable.items(): + final_enabled_list.append(k) + + return final_enabled_list + + def addoptionhelper(self, options, iscsipath, iscsisettingspath, bootpath): + """Helper function to add option for iscsi + + :param options: command line options + :type options: list. + :param iscsipath: current iscsi path + :type iscsipath: str. + :param iscsisettingspath: current iscsi settings path + :type iscsisettingspath: str. + :param bootpath: current boot path + :type bootpath: str. + """ + devicealloc = list() + self.auxcommands["select"].selectfunction("HpeBiosMapping.") + pcisettingsmap = self.auxcommands["get"].getworkerfunction( + "BiosPciSettingsMappings", options, results=True, uselist=True + ) + + for item in pcisettingsmap[0]["BiosPciSettingsMappings"]: + if "Associations" in item: + if ( + "EmbNicEnable" in item["Associations"] + or "EmbNicConfig" in item["Associations"] + or "OcpAEnable" in item["Associations"] + ): + _ = [devicealloc.append(x) for x in item["Subinstances"]] + + if ( + re.match("FlexLom[0-9]+Enable", item["Associations"][0]) + or re.match("PciSlot[0-9]+Enable", item["Associations"][0]) + or re.match("Slot[0-9]+NicBoot[0-9]+", item["Associations"][0]) + ): + _ = [devicealloc.append(x) for x in item["Subinstances"]] + + foundlocation = False + iscsibootsources = self.rawdatahandler(action="GET", silent=True, jsonflag=True, path=iscsisettingspath) + count = 0 + attemptinstancenumber = self.bootattemptcounter(iscsibootsources[self.rdmc.app.typepath.defs.iscsisource]) + if self.rdmc.app.typepath.defs.isgen10: + newpcilist = [] + self.auxcommands["select"].selectfunction("HpeServerPciDeviceCollection") + pcideviceslist = next( + iter(self.auxcommands["get"].getworkerfunction("Members", options, results=True, uselist=False)), + None, + ) + for device in pcideviceslist["Members"]: + newpcilist.append(self.rdmc.app.get_handler(device["@odata.id"], silent=True).dict) + pcideviceslist = newpcilist + else: + self.auxcommands["select"].selectfunction(["Collection."]) + pcideviceslist = next( + iter( + self.auxcommands["get"].getworkerfunction( + "Items", + options, + results=True, + uselist=False, + filtervals=("MemberType", "HpServerPciDevice.*"), + ) + ), + None, + )["Items"] + + self.pcidevicehelper(devicealloc, iscsipath, bootpath, pcideviceslist) + + devicealloc_final = self.make_final_list(devicealloc, pcideviceslist) + + print_flag = False + iscsi_list = self.listoptionhelper(options, iscsipath, iscsisettingspath, bootpath, print_flag) + refined_list = list() + for s in iscsi_list: + for key, val in s.items(): + if key != "Not Added": + for k, v in val.items(): + refined_list.append(v["iSCSINicSource"]) + enabled_only_bootsource = self.get_enabled_only() + refined_devicealloc = list() + for d in devicealloc: + if "PreBootNetwork" in d["Associations"][0]: + nic = d["Associations"][1] + else: + nic = d["Associations"][0] + if "Storage" in nic: + continue + if nic in enabled_only_bootsource: + refined_devicealloc.append(d) + + for item in iscsibootsources[self.rdmc.app.typepath.defs.iscsisource]: + try: + if not item[self.rdmc.app.typepath.defs.iscsiattemptinstance]: + nicsourcedata = refined_devicealloc[int(options.add) - 1]["Associations"] + if "PreBootNetwork" in nicsourcedata[0]: + nic_getting_added = nicsourcedata[1] + else: + nic_getting_added = nicsourcedata[0] + if nic_getting_added in refined_list: + self.rdmc.ui.printer("Warning: This NIC is already added to existing attempt\n") + iscsibootsources[self.rdmc.app.typepath.defs.iscsisource][count]["iSCSINicSource"] = ( + nicsourcedata[1] if isinstance(nicsourcedata[0], dict) else nicsourcedata[0] + ) + + iscsibootsources[self.rdmc.app.typepath.defs.iscsisource][count][ + self.rdmc.app.typepath.defs.iscsiattemptinstance + ] = attemptinstancenumber + iscsibootsources[self.rdmc.app.typepath.defs.iscsisource][count][ + self.rdmc.app.typepath.defs.iscsiattemptname + ] = str(attemptinstancenumber) + foundlocation = True + break + except Exception: + raise NicMissingOrConfigurationError("Invalid input value for configuring NIC.") + count += 1 + + if foundlocation: + self.rdmc.app.patch_handler( + iscsisettingspath, + iscsibootsources, + optionalpassword=options.biospassword, + ) + else: + raise NicMissingOrConfigurationError("Failed to add NIC. All NICs" " have already been configured.") + + def make_final_list(self, devicealloc, pcideviceslist): + final_devicealloc = [] + for item in devicealloc: + if isinstance(item["Associations"][0], dict): + listval = 1 + else: + listval = 0 + if "Storage" not in item["Associations"][listval]: + for pcidevice in pcideviceslist: + # if item["CorrelatableID"] == pcidevice["UEFIDevicePath"]: + final_devicealloc.append(item) + return final_devicealloc + + def bootattemptcounter(self, bootsources): + """Helper function to count the current boot entries for iscsi + + :param bootsources: current iscsi boot sources + :type bootsources: list. + """ + size = 0 + count = list() + + for item in bootsources: + size += 1 + + if item[self.rdmc.app.typepath.defs.iscsiattemptinstance]: + count.append(int(item[self.rdmc.app.typepath.defs.iscsiattemptinstance])) + + if size == len(count): + raise NicMissingOrConfigurationError("Failed to add NIC. All " "NICs have already been configured.") + + count.sort(key=None, reverse=False) + + if len(count) > 0: + iterate = 0 + + for i in range(1, size + 1, 1): + if iterate < len(count) and i == count[iterate]: + iterate += 1 + else: + return iterate + 1 + else: + return int(1) + + def deleteoptionhelper(self, options, iscsisettingspath): + """Helper function to delete option for iscsi + + :param options: command line options + :type options: list. + :param iscsisettingspath: current iscsi settings path + :type iscsisettingspath: string. + """ + patch = None + + self.auxcommands["select"].selectfunction("HpBaseConfigs.") + contents = self.rdmc.app.getprops(selector="BaseConfigs") + + for content in contents: + for key in content["BaseConfigs"][0]["default"]: + if key == self.rdmc.app.typepath.defs.iscsisource: + patch = content["BaseConfigs"][0]["default"][key] + + if not patch: + raise NicMissingOrConfigurationError("Could not access Base Configurations.") + + self.validateinput(options=options, deleteoption=True) + + foundlocation = False + iscsibootsources = self.rawdatahandler(action="GET", silent=True, jsonflag=False, path=iscsisettingspath) + holdetag = iscsibootsources.getheader("etag") + iscsibootsources = json.loads(iscsibootsources.read) + + try: + count = 0 + for item in iscsibootsources[self.rdmc.app.typepath.defs.iscsisource]: + if item[self.rdmc.app.typepath.defs.iscsiattemptinstance] == int(options.delete): + iscsibootsources[self.rdmc.app.typepath.defs.iscsisource][count] = patch[count] + foundlocation = True + + count += 1 + except Exception: + raise NicMissingOrConfigurationError( + "The NIC targeted for delete" " does not exist. The request for " "delete could not be completed." + ) + + if foundlocation: + self.rdmc.app.put_handler( + iscsisettingspath, + iscsibootsources, + optionalpassword=options.biospassword, + headers={"if-Match": holdetag}, + ) + self.rdmc.app.get_handler(iscsisettingspath, silent=True) + else: + raise NicMissingOrConfigurationError("The given attempt instance does not exist.") + + def listoptionhelper(self, options, iscsipath, iscsisettingspath, bootpath, print_flag=True): + """Helper function to list options for iscsi + + :param options: command line options + :type options: list. + :param iscsipath: current iscsi path + :type iscsipath: str. + :param iscsisettingspath: current iscsi settings path + :type iscsisettingspath: str. + :param bootpath: current boot path + :type bootpath: str. + """ + self.auxcommands["select"].selectfunction("HpeBiosMapping.") + pcisettingsmap = self.auxcommands["get"].getworkerfunction( + "BiosPciSettingsMappings", options, results=True, uselist=True + ) + + devicealloc = list() + for item in pcisettingsmap[0]["BiosPciSettingsMappings"]: + if "Associations" in item: + if ( + "EmbNicEnable" in item["Associations"] + or "EmbNicConfig" in item["Associations"] + or "OcpAEnable" in item["Associations"] + ): + _ = [devicealloc.append(x) for x in item["Subinstances"]] + + if ( + re.match("FlexLom[0-9]+Enable", item["Associations"][0]) + or re.match("PciSlot[0-9]+Enable", item["Associations"][0]) + or re.match("Slot[0-9]+NicBoot[0-9]+", item["Associations"][0]) + ): + _ = [devicealloc.append(x) for x in item["Subinstances"]] + + if self.rdmc.app.typepath.defs.isgen10: + newpcilist = [] + + self.auxcommands["select"].selectfunction("HpeServerPciDeviceCollection") + pcideviceslist = next( + iter(self.auxcommands["get"].getworkerfunction("Members", options, results=True, uselist=False)), + None, + ) + + for device in pcideviceslist["Members"]: + newpcilist.append(self.rdmc.app.get_handler(device["@odata.id"], silent=True).dict) + + pcideviceslist = newpcilist + else: + self.auxcommands["select"].selectfunction(["Collection."]) + pcideviceslist = next( + iter( + self.auxcommands["get"].getworkerfunction( + "Items", + options, + results=True, + uselist=False, + filtervals=("MemberType", "HpServerPciDevice.*"), + ) + ), + None, + )["Items"] + i = 0 + iscsibootsources = "" + while i < 4: + self.auxcommands["select"].selectfunction("HpiSCSISoftwareInitiator.") + iscsibootsources = self.rawdatahandler(action="GET", silent=True, jsonflag=True, path=iscsisettingspath) + if not ("error" in iscsibootsources): + break + time.sleep(10) + i = i + 1 + self.rdmc.ui.printer("Retrying ...\n\n") + structeredlist = list() + + self.pcidevicehelper(devicealloc, iscsipath, bootpath, pcideviceslist) + if not ("error" in iscsibootsources): + total_attempts = [] + for item in iscsibootsources[self.rdmc.app.typepath.defs.iscsisource]: + if item["iSCSINicSource"]: + iscsi_attempt = item[self.rdmc.app.typepath.defs.iscsiattemptinstance] + for device in devicealloc: + it = device["CorrelatableID"].split(",") + del it[-1] + it = ",".join(it) + listval = 0 + if not isinstance(device["Associations"][0], list): + listval = 1 if isinstance(device["Associations"][0], dict) else 0 + + if item["iSCSINicSource"] == device["Associations"][listval]: + for pcidevice in pcideviceslist: + if "Storage" in pcidevice["DeviceType"]: + continue + pcid = pcidevice["UEFIDevicePath"].split(",") + del pcid[-1] + pcid = ",".join(pcid) + # using total_attempts to avoid duplicate entries + if ( + device["CorrelatableID"] == pcidevice["UEFIDevicePath"] + or ("Embedded" not in pcidevice["DeviceType"] and (pcid == it)) + ) and iscsi_attempt not in total_attempts: + total_attempts.append(iscsi_attempt) + inputstring = ( + pcidevice["DeviceType"] + + " " + + str(pcidevice["DeviceInstance"]) + + " Port " + + str(device["Subinstance"]) + + " : " + + pcidevice.get("Name", "").strip() + ) + structeredlist.append({inputstring: {str("Attempt " + str(iscsi_attempt)): item}}) + + else: + structeredlist.append({"Not Added": {}}) + + try: + if iscsibootsources is None: + raise BootOrderMissingEntriesError("No entries found for iscsi boot sources \n\n") + elif "error" in iscsibootsources: + raise BootOrderMissingEntriesError( + "/redfish/v1/systems/1/bios/oem/hpe/iscsi/settings URI seems to be not reachable even after" + " 4 retry attempts , kindly retry the command after some time \n\n" + ) + elif not options.filename and print_flag: + self.print_iscsi_config_helper(structeredlist, "Current iSCSI Attempts: \n") + except Exception as excp: + raise excp + + if structeredlist is None: + self.rdmc.ui.error("No entries found for iscsi boot sources.\n\n") + elif options.filename: + output = json.dumps(structeredlist, indent=2, cls=redfish.ris.JSONEncoder, sort_keys=True) + filehndl = open(options.filename[0], "w") + filehndl.write(output) + filehndl.close() + + self.rdmc.ui.printer("Results written out to '%s'\n" % options.filename[0]) + return structeredlist + + def defaultsoptionhelper(self, options, iscsipath, bootpath): + """Helper function for default options for iscsi + + :param options: command line options + :type options: list. + :param iscsipath: current iscsi path + :type iscsipath: str. + :param bootpath: current boot path + :type bootpath: str. + """ + self.auxcommands["select"].selectfunction("HpBiosMapping.") + pcisettingsmap = self.auxcommands["get"].getworkerfunction( + "BiosPciSettingsMappings", options, results=True, uselist=True + ) + + devicealloc = list() + for item in pcisettingsmap[0]["BiosPciSettingsMappings"]: + if "Associations" in item: + # self.rdmc.ui.printer("Assoc 1 : %s\n" % (item["Associations"])) + # self.rdmc.ui.printer("Sub 1 : %s\n" % (item["Subinstances"])) + if ( + "EmbNicEnable" in item["Associations"] + or "EmbNicConfig" in item["Associations"] + or "OcpAEnable" in item["Associations"] + ): + _ = [devicealloc.append(x) for x in item["Subinstances"]] + + try: + if ( + re.match("FlexLom[0-9]+Enable", item["Associations"][0]) + or re.match("PciSlot[0-9]+Enable", item["Associations"][0]) + or re.match("Slot[0-9]+NicBoot[0-9]+", item["Associations"][0]) + ): + _ = [devicealloc.append(x) for x in item["Subinstances"]] + except IndexError: + pass + # self.rdmc.ui.printer("Device alloc : %s\n" % devicealloc) + + if self.rdmc.app.typepath.defs.isgen10: + newpcilist = [] + self.auxcommands["select"].selectfunction("HpeServerPciDeviceCollection") + pcideviceslist = self.auxcommands["get"].getworkerfunction("Members", options, results=True, uselist=False) + pcideviceslist = pcideviceslist[0] + for device in pcideviceslist["Members"]: + newpcilist.append(self.rdmc.app.get_handler(device["@odata.id"], silent=True).dict) + pcideviceslist = newpcilist + else: + self.auxcommands["select"].selectfunction(["Collection."]) + pcideviceslist = self.auxcommands["get"].getworkerfunction( + "Items", + options, + results=True, + uselist=False, + filtervals=("MemberType", "HpServerPciDevice.*"), + )[0]["Items"] + + self.auxcommands["select"].selectfunction(self.rdmc.app.typepath.defs.hpiscsisoftwareinitiatortype) + iscsiinitiatorname = self.auxcommands["get"].getworkerfunction( + "iSCSIInitiatorName", options, results=True, uselist=True + ) + + disabledlist = self.pcidevicehelper(devicealloc, iscsipath, bootpath, pcideviceslist) + + self.print_out_iscsi_configuration(iscsiinitiatorname[0], devicealloc, pcideviceslist) + + if disabledlist: + self.print_out_iscsi_configuration(iscsiinitiatorname[0], disabledlist, pcideviceslist, disabled=True) + + def modifyoptionhelper(self, options, iscsisettingspath): + """Helper function to modify options for iscsi + + :param options: command line options + :type options: list. + :param iscsisettingspath: current iscsi settings path + :type iscsisettingspath: str. + """ + try: + inputfile = open(options.modify, "r") + contentsholder = json.loads(inputfile.read()) + except Exception as excp: + raise InvalidCommandLineError("%s" % excp) + + iscsibootsources = self.rawdatahandler(action="GET", silent=True, jsonflag=True, path=iscsisettingspath) + + count = 0 + resultsdict = list() + + for item in contentsholder: + for entry in item.values(): + enteredsection = False + + for key, value in entry.items(): + enteredsection = True + resultsdict.append( + self.modifyfunctionhelper( + key, + value, + iscsibootsources[self.rdmc.app.typepath.defs.iscsisource], + ) + ) + + if not enteredsection: + resultsdict.append(iscsibootsources[self.rdmc.app.typepath.defs.iscsisource][count]) + + count += 1 + + contentsholder = {self.rdmc.app.typepath.defs.iscsisource: resultsdict} + + self.rdmc.app.patch_handler(iscsisettingspath, contentsholder, optionalpassword=options.biospassword) + self.rdmc.app.get_handler(iscsisettingspath, silent=True) + self.rdmc.ui.printer("Please reboot the server for changes to take effect\n") + + def modifyfunctionhelper(self, key, value, bootsources): + """Helper function to modify the entries for iscsi + + :param key: key to be used for attempt + :type key: string. + :param value: value to apply to attempt + :type value: str. + :param bootsources: current boot sources + :type bootsources: list. + """ + foundoption = False + + for bootsource in bootsources: + if bootsource[self.rdmc.app.typepath.defs.iscsiattemptinstance] == int(key[-1:]): + foundoption = True + break + else: + return value + if foundoption: + return value + + def pcidevicehelper(self, devicealloc, iscsipath, bootpath, pcideviceslist=None, options=None): + """Helper function to check for extra pci devices / identify disabled devices + + :param devicealloc: list of devices allocated + :type devicealloc: list. + :param iscsipath: current iscsi path + :type iscsipath: str. + :param bootpath: current boot path + :type bootpath: str. + :param pcideviceslist: current pci device list + :type pcideviceslist: list. + :param options: command line options + :type options: list. + """ + if not pcideviceslist: + if self.rdmc.app.typepath.defs.isgen10: + newpcilist = [] + self.auxcommands["select"].selectfunction("HpeServerPciDeviceCollection") + pcideviceslist = next( + iter(self.auxcommands["get"].getworkerfunction("Members", options, results=True, uselist=False)), + None, + ) + + for device in pcideviceslist["Members"]: + newpcilist.append(self.rdmc.app.get_handler(device["@odata.id"], silent=True).dict) + + pcideviceslist = newpcilist + else: + self.auxcommands["select"].selectfunction(["Collection."]) + pcideviceslist = next( + iter( + self.auxcommands["get"].getworkerfunction( + "Items", + options, + results=True, + uselist=False, + filtervals=("MemberType", "HpServerPciDevice.*"), + ) + ), + None, + )["Items"] + try: + self.rawdatahandler(action="GET", silent=True, jsonflag=True, path=iscsipath)["iSCSINicSources"] + except: + raise NicMissingOrConfigurationError("No iSCSI nic sources available.") + + _ = [x["UEFIDevicePath"] for x in pcideviceslist] + removal = list() + + bios = self.rawdatahandler(action="GET", silent=True, jsonflag=True, path=bootpath) + + for item in devicealloc: + if isinstance(item["Associations"][0], dict): + if "PreBootNetwork" in list(item["Associations"][0].keys()): + if item["Associations"] and item["Associations"][0]["PreBootNetwork"] in list(bios.keys()): + if bios[item["Associations"][0]["PreBootNetwork"]] == "Disabled": + removal.append(item) + else: + if item["Associations"] and item["Associations"][0] in list(bios.keys()): + if bios[item["Associations"][0]] == "Disabled": + removal.append(item) + + _ = [devicealloc.remove(x) for x in removal] + + return removal + + def print_out_iscsi_configuration(self, iscsiinitiatorname, devicealloc, pcideviceslist, disabled=False): + """Convert content to human readable and print out to std.out + + :param iscsiinitiatorname: iscsi initiator name + :type iscsiinitiatorname: str. + :param devicealloc: list of devices allocated + :type devicealloc: list. + :param pcideviceslist: current pci device list + :type pcideviceslist: list. + :param disabled: command line options + :type disabled: boolean. + """ + try: + if iscsiinitiatorname is None: + BootOrderMissingEntriesError("No entry found for the iscsi initiator name.\n\n") + elif disabled: + pass + else: + self.print_iscsi_config_helper(iscsiinitiatorname["iSCSIInitiatorName"], "\nIscsi Initiator Name: ") + except Exception as excp: + raise excp + + try: + final_device_list = list() + enable_val = list() + + bios = "/redfish/v1/systems/1/bios/" + bios_dict = self.rdmc.app.get_handler(bios, silent=True, service=True).dict + if "Attributes" in bios_dict: + bios_dict_items = bios_dict["Attributes"].items() + else: + bios_dict_items = bios_dict.items() + for attr, val in bios_dict_items: + if "NetworkBoot" in str(val): + enable_val.append(attr.lower().strip()) + + # before comparing with pcideviceslist filtering enabled nics only + devicealloc = [ + val + for val in devicealloc + if (len(val["Associations"]) == 2 and val["Associations"][1].lower() in enable_val) + ] + + if devicealloc and pcideviceslist: + count = 0 + output_data = [] + for pcidevice in pcideviceslist: + if "storage" in pcidevice["DeviceType"].lower(): + continue + + pcid = pcidevice["UEFIDevicePath"].split(",") + del pcid[-1] + pcid = ",".join(pcid) + + for item in devicealloc: + it = item["CorrelatableID"].split(",") + del it[-1] + it = ",".join(it) + + # Match the correlatable ID from the + # PCI device & allocated device + if pcid == it: + # Format the device information + device = ( + pcidevice["DeviceType"] + + " " + + str(pcidevice["DeviceInstance"]) + + " Port " + + str(item["Subinstance"]) + ) + # final_device_list using to + # avoid the duplicate entries + if device not in final_device_list: + final_device_list.append(device) + # Add the device name or + # structured name to the dictionary + if "Name" not in pcidevice: + name = pcidevice.get( + "StructuredName", + "", + ).strip() + else: + name = pcidevice.get("Name", "").strip() + + count = count + 1 + output_data.append(f"{[count]} {device} : {name}\n") + + if output_data: + # display output data + status = "Disabled" if disabled else "Available" + self.rdmc.ui.printer(f"\n{status} iSCSI Boot Network Interfaces: \n") + [self.rdmc.ui.printer(i) for i in output_data] + print() # For a blank line, after the output + else: + self.rdmc.ui.printer("No iSCSI Boot Network Interfaces Available.\n\n") + + else: + raise BootOrderMissingEntriesError("No entries found for" " iscsi configurations devices.\n") + except Exception as excp: + raise excp + + def print_iscsi_config_helper(self, content, outstring, indent=0): + """Print iscsi configuration helper + + :param content: current content to be output + :type content: string. + :param outstring: current output string + :type outstring: str. + :param indent: current iscsi settings path + :type indent: str. + """ + self.rdmc.ui.printer("\t" * indent + outstring) + + if content: + self.rdmc.ui.print_out_json(content) + else: + self.rdmc.ui.error("\t" * indent + "No entries currently configured.\n") + + self.rdmc.ui.printer("\n\n") + + def rawdatahandler(self, action="None", path=None, silent=True, jsonflag=False): + """Helper function to get and put the raw data + + :param action: current rest action + :type action: list. + :param path: current path + :type path: str. + :param silent: flag to determine silent mode + :type silent: boolean. + :param jsonflag: flag to determine json output + :type jsonflag: boolean. + """ + if action == "GET": + rawdata = self.rdmc.app.get_handler(get_path=path, silent=silent) + + if jsonflag is True: + rawdata = json.loads(rawdata.read) + + return rawdata + + def validateinput(self, deviceallocsize=None, options=None, deleteoption=False): + """Helper function to validate that the input is correct + + :param deviceallocsize: current device allocated size + :type deviceallocsize: str. + :param options: command line options + :type options: list. + :param deleteoption: flag to delete option + :type deleteoption: boolean. + """ + if deviceallocsize: + try: + if int(options.add) - 1 >= deviceallocsize: + raise NicMissingOrConfigurationError("Please verify the " "given input value for configuring NIC.") + except Exception: + raise NicMissingOrConfigurationError("Please verify the " "given input value for configuring NIC.") + if deleteoption: + try: + if int(options.delete) == 0: + raise NicMissingOrConfigurationError( + "Invalid input value." "Please give valid attempt for instance values." + ) + except Exception: + raise NicMissingOrConfigurationError( + "Invalid input value." "Please give valid attempt for instance values." + ) + + def iscsiconfigurationvalidation(self, options): + """iscsi configuration method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + if options.encode: + options.biospassword = Encryption.decode_credentials(options.biospassword) + if isinstance(options.biospassword, bytes): + options.biospassword = options.biospassword.decode("utf-8") + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-f", + "--filename", + dest="filename", + help="Use this flag if you wish to use a different" + " filename than the default one. The default filename is" + " ilorest.json.", + action="append", + default=None, + ) + customparser.add_argument( + "--add", + dest="add", + help="Use this iSCSI configuration option to add an iSCSI" " configuration option.", + default=None, + ) + customparser.add_argument( + "--delete", + dest="delete", + help="Use this iSCSI configuration option to delete an iSCSI" " configuration option.", + default=None, + ) + customparser.add_argument( + "--modify", + dest="modify", + help="Use this iSCSI configuration option to modify an iSCSI" " configuration option.", + default=None, + ) + customparser.add_argument( + "--list", + dest="list", + action="store_true", + help="Use this iSCSI configuration option to list the details" " of the different iSCSI configurations.", + default=None, + ) + customparser.add_argument( + "--reboot", + dest="reboot", + help="Use this flag to perform a reboot command function after" + " completion of operations. For help with parameters and" + " descriptions regarding the reboot flag, run help reboot.", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/SetPasswordCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/SetPasswordCommand.py new file mode 100644 index 0000000..528bad6 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/SetPasswordCommand.py @@ -0,0 +1,225 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""SetPassword Command for rdmc""" + +try: + from rdmc_helper import ( + Encryption, + InvalidCommandLineErrorOPTS, + ReturnCodes, + UnableToDecodeError, + ) +except ImportError: + from ilorest.rdmc_helper import ( + Encryption, + InvalidCommandLineErrorOPTS, + ReturnCodes, + UnableToDecodeError, + ) + + +class SetPasswordCommand: + """Set password class command""" + + def __init__(self): + self.ident = { + "name": "setpassword", + "usage": None, + "description": "Sets the admin password and power-on password\n" + "setpassword --newpassword --currentpassword [OPTIONS]\n\n\t" + "Setting the admin password with no previous password set." + "\n\texample: setpassword --newpassword testnew --currentpassword None\n\n\tSetting the admin " + "password back to nothing.\n\texample: setpassword --newpassword None --currentpassword testnew " + "\n\n\tSetting the power on password.\n\texample: setpassword" + " --newpassword testnew --currentpassword None --poweron\n\tNote: " + "if it is empty password, send None as above.", + "summary": "Sets the admin password and power-on password", + "aliases": [], + "auxcommands": [ + "LoginCommand", + "SetCommand", + "SelectCommand", + "CommitCommand", + "RebootCommand", + "LogoutCommand", + ], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main set password worker function + + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.setpasswordvalidation(options) + + # if not args: + # self.rdmc.ui.printer('Please input the current password.\n') + # tempoldpass = getpass.getpass() + + # if tempoldpass and tempoldpass != '\r': + # tempoldpass = tempoldpass + # else: + # tempoldpass = '""' + + # self.rdmc.ui.printer('Please input the new password.\n') + # tempnewpass = getpass.getpass() + + # if tempnewpass and tempnewpass != '\r': + # tempnewpass = tempnewpass + # else: + # tempnewpass = '""' + # args.extend([tempnewpass, tempoldpass]) + + # if len(args) < 2: + # raise InvalidCommandLineError("Please pass both new password and old password.") + + args = list() + args.append(options.newpassword) + args.append(options.currentpassword) + count = 0 + for arg in args: + if arg: + if arg.lower() == "none" or arg.lower() == "null" or arg is None: + args[count] = "" + elif len(arg) > 2: + if ('"' in arg[0] and '"' in arg[-1]) or ("'" in arg[0] and "'" in arg[-1]): + args[count] = arg[1:-1] + elif len(arg) == 2: + if (arg[0] == '"' and arg[1] == '"') or (arg[0] == "'" and arg[1] == "'"): + args[count] = "" + count += 1 + + if options.encode: + _args = [] + for arg in args: + try: + arg = Encryption.decode_credentials(arg) + if isinstance(arg, bytes): + arg = arg.decode("utf-8") + _args.append(arg) + except UnableToDecodeError: + _args.append(arg) + args = _args + if self.rdmc.app.typepath.defs.isgen10: + bodydict = self.rdmc.app.get_handler(self.rdmc.app.typepath.defs.biospath, service=True, silent=True).dict + + for item in bodydict["Actions"]: + if "ChangePassword" in item: + path = bodydict["Actions"][item]["target"] + break + + if options.poweron: + body = { + "PasswordName": "User", + "OldPassword": args[1], + "NewPassword": args[0], + } + else: + body = { + "PasswordName": "Administrator", + "OldPassword": args[1], + "NewPassword": args[0], + } + + self.rdmc.app.post_handler(path, body) + else: + if options.poweron: + self.auxcommands["select"].run("HpBios.") + self.auxcommands["set"].run("PowerOnPassword=%s OldPowerOnPassword=%s" % (args[0], args[1])) + self.auxcommands["commit"].run("") + else: + self.auxcommands["select"].run("HpBios.") + self.auxcommands["set"].run("AdminPassword=%s OldAdminPassword=%s" % (args[0], args[1])) + self.auxcommands["commit"].run("") + self.rdmc.ui.printer( + "\nThe session will now be terminated.\n" + " login again with updated credentials in order to continue.\n" + ) + self.auxcommands["logout"].run("") + + if options: + if options.reboot: + self.auxcommands["reboot"].run(options.reboot) + + self.cmdbase.logout_routine(self, options) + return ReturnCodes.SUCCESS + + def setpasswordvalidation(self, options): + """Results method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--currentpassword", + dest="currentpassword", + help="Use this flag to provide current password.", + required=True, + ) + + customparser.add_argument( + "--newpassword", + dest="newpassword", + help="Use this flag to provide new password.", + required=True, + ) + + customparser.add_argument( + "--reboot", + dest="reboot", + help="Use this flag to perform a reboot command function after " + "completion of operations. 'REBOOT' is a replaceable parameter " + "that can have multiple values. For help with parameters and " + "descriptions regarding the reboot flag, run help reboot.", + default=None, + ) + customparser.add_argument( + "--poweron", + dest="poweron", + action="store_true", + help="""Use this flag to set power on password instead""", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__pycache__/BiosDefaultsCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__pycache__/BiosDefaultsCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..08b26dab8b6f9c520169df4767c4f1f7997f2786 GIT binary patch literal 4228 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__pycache__/BootOrderCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__pycache__/BootOrderCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..670ce4d62879f3170366c022e01bbba6fc53e052 GIT binary patch literal 17666 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__pycache__/SetPasswordCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/BIOS_COMMANDS/__pycache__/SetPasswordCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9720483c21a14b22d06566ad43ee3ed4786a0b3a GIT binary patch literal 5011 zcma)A&2QYs6(_k|?k;yF%d#y;wiB~%VrSc|vgO4TAzb^knqdQ}faE_lElwNiNI9 zym|9x=J(#)WMaZK@LZ_;H2nQ}!}upP#-A!0Z{n3dLBWhwBb#I44-Hmg_J;(R#+V?m{8MWE9fhgodM134wlu9Q1jZw;@T!A8a!05;9bBg zFQb434Vrnw*npjWXR`9APHyGItZW6n- z#UzD&!gVi9y-<3*(@l4WW_$&P!%pilf%Jm4WSh@rE$qm%pNgiV8n=^;5LZcGN#$br zpgyt8Bid>ADyzzn7r^V>Y$o{z${`R;DInZ)0jd-d|X3{&3f;*@|xa|@id zdHyivu>=Ci`Rliqmi>jLciy?Scw>1Uh8X}@-#~NST~+n{Fb-4SzeHF2Bnr#2O#G^r z>6q1jJ2Q^iFtf8qj2?`9t4-iEcp9kG@M@^If}Y$GZfIQ6_H2Ok8QVymw6bpP&JTb(H@6LWky-Q=-=@)y@g4vrby(?<`3t~xZtPd{ z(qj{{YmbaQJGb}UytGv(O26KqIhfo-KBRx7>zXb;0=2>1Us|)! zMN7LdlxC3*B#YJVTjICGS=8kp`t&;J#6xslALx{qS>wCLUirb>Sm`nGj}2q5qStnD z&&g)esr}=*^Vr;T(&^kuPdu{3->|}yY=UTc1@=KNxy1*6fyGbl{=KmFsOLTOz_Jxs z6Z^C^vvqpwxvkkxOflbYpBbZ{Ws~?F`?$1qZm*hG+0?87D<9vhvEzAd+rX$sLCtGe z$MmeR=bCV|4?c(P&!hJoJCVbEk%hE1PJUY2tH&-ob(mVry8lA%=Jm%Gq^$I1tf1#S zo0&ECJ$72}Jhh+G?b$+ZA#L57F^2tTbiY13F|F)r63#x01g+aQ_Ajt=L;25-GQw1{}S#)iPlxzlIHnr=bZqaQI30QL?HLM@YZ{An*t5j_4?11 zZXkk=7a`JsPf7*3wPf83#73_JI4b-XXI>bOhNQb)J{mDM?8vOvX6Ce7n>^|&Ly-Rm zAi}wz>_ySy6S!~VGxNfeukd_kUV1_tS-F?4w_aaqTB;(s*bduVIWmki7GBfZN;SE# z8N?fW07c44p&(C{{Vs+yOR6#GStR(aFGXxXQ1wN=Gi*#;qo5(gI)gM3m`7uMR(ZR7 zJxt`BD#2*k%XcV@Sc(Uue(;j?Na7)?atOY|G<#8tJ-~mEmIdw#!WJMu0j;+aMiJcf zjA?WUR+m4p3-jg;HP)}}sfjj(BBD$DOKEZkgP7BkeECTHVoULU57$V3FtaE-e% z<(-=k!&IGub-MkyPlu_24q9#ER!-3E!ZWM-SdgWT9SEvaIU*~n61G=4Jf_f9(5X<< zOvkbQ*dmo1$}pB`5aURc*LD#>D5qc(Wg1h$l&VUnu^XhDaFu*rs!Av~c>L;RRmTDG zaco$G39D<^U*Zy{X=J4zY^X*zkwY%+W>rb_VrBJ0Fpr;oobVVc9keANu2(=cQRA$bNlK(48H51)Z8w=FyKzy$)f}Q+-CeC)1=;;LCvx z2;*)qJz)N?vlqk0b|E`{C^HaOVT$Zqz<6X@$OP7-067=sR>?MkWv>q|!`xtQ1+D-n z05r0-52_0Opceu*vx%=If8zTj_~KIqlMMzyHIk*k@^v4l8a4XdJUj*&bxH?=Jlnel}nWGkd$r|v^nMXPy_Cn)97?FNWFFt zdz-;F_d2*KA*9hQ>2Zj73x6xnq6?of90qwvm&Oti3Go|&V1xX%uQJ*86%QA;5K>U* znkDf*OeH=*p(?=F0Mll*R;!Pn;z!is;v5L>r=rKRxkJ{$@h=kd@thG33~nW0Og`k0wwn9Oc4DTL?8o3AjbiSi&=m~3PUi1CZpdpP7@do12)In4VgsUzVCzrk|6Uq+d{3l98WhtY>JTUz}Nzs#}nl zoDEa~R$Y`@T%w;^QIeWhoSC0jtncLM9~|%O@9XR6=Mt 0 and "Members" in args[0]: + uselist = False + if uselist: + for item in contents: + self.removereserved(item) + if results: + LOGGER.info("Returning retrieved contents.") + return contents + + contents = contents[0] if len(contents) == 1 else contents + + if options and options.json and contents: + LOGGER.debug("Printing output in JSON format.") + UI().print_out_json(contents) + elif contents: + LOGGER.debug("Printing output in human-readable format.") + UI().print_out_human_readable(contents) + else: + try: + if nocontent or not any(next(iter(contents))): + raise Exception() + except Exception: + strtoprint = ", ".join(str(val) for val in nocontent) + if not strtoprint and arg: + strtoprint = arg + LOGGER.error("No contents found for entry: %s", strtoprint) + raise NoContentsFoundForOperationError("No get contents found for entry: %s" % strtoprint) + else: + LOGGER.error("No contents found for selected type.") + raise NoContentsFoundForOperationError("No get contents found for " "selected type.") + if options.logout: + LOGGER.info("Logging out.") + self.auxcommands["logout"].run("") + + def get_content(self, url, args, uselist, options): + """Get data from url""" + contents = self.rdmc.app.get_handler(url, service=True, silent=True).dict + if uselist: + # for get command removing @odata.* properties + args = [arg.lower() for arg in args if "@odata." not in arg.lower()] + else: + args = [arg.lower() for arg in args] + + if contents and not args: + contents = [contents] + elif contents and args: + collect_data = [] + for key, value in contents.items(): + # Collect top-level keys based on args + if any(key.lower() == arg for arg in args): + collect_data.append({key: value}) + + if "attributes" == key.lower() and isinstance(value, dict) and "attributes" not in args: + attr_vals = {k.lower(): v for k, v in value.items()} + val_dict = {arg: attr_vals[arg.lower()] for arg in args if arg.lower() in attr_vals} + if val_dict: + collect_data.append(val_dict) + + if key == "Members" and isinstance(value, list): + for member in value: + # Loop through each dict of Members + m_dict = {k.lower(): v for k, v in member.items()} + val_dict = {arg: m_dict[arg.lower()] for arg in args if arg.lower() in m_dict} + if val_dict: + collect_data.append(val_dict) + + # collect_data = [dict(t) for t in {tuple(d.items()) for d in collect_data}] + contents = collect_data + else: + contents = [] + + return contents + + def find_key_recursive(self, data, target_key): + """Recursively searches for a key in a nested dictionary (case-insensitive) and returns its value(s).""" + target_key_lower = target_key.lower() # Convert target_key to lowercase for case-insensitive matching + + if isinstance(data, dict): + for key, value in data.items(): + if key.lower() == target_key_lower: # Convert dictionary key to lowercase before comparison + yield value # Use yield to return multiple matches + elif isinstance(value, (dict, list)): + yield from self.find_key_recursive(value, target_key) + + elif isinstance(data, list): + for item in data: + yield from self.find_key_recursive(item, target_key) + + def removereserved(self, entry): + """function to remove reserved properties + :param entry: dictionary to remove reserved properties from + :type entry: dict. + """ + + for key, val in list(entry.items()): + if key.lower() in HARDCODEDLIST or "@odata" in key.lower(): + del entry[key] + elif isinstance(val, list): + for item in entry[key]: + if isinstance(item, dict) and item: + self.removereserved(item) + if all([True if not test else False for test in entry[key]]): + del entry[key] + elif isinstance(val, dict): + self.removereserved(val) + if all([True if not test else False for test in entry[key]]): + del entry[key] + + def checktoprint(self, options, contents, nocontent, arg): + """function to decide what/how to print + :param options: list of options + :type options: list. + :param contents: dictionary value returned by getprops. + :type contents: dict. + :param nocontent: props not found are added to the list. + :type nocontent: list. + :param arg: string of args + :type arg: string + """ + if options and options.json and contents: + self.rdmc.ui.print_out_json(contents) + elif contents: + self.rdmc.ui.print_out_human_readable(contents) + else: + try: + if nocontent or not any(next(iter(contents))): + raise Exception() + except Exception: + strtoprint = ", ".join(str(val) for val in nocontent) + if not strtoprint and arg: + strtoprint = arg + raise NoContentsFoundForOperationError("No get contents " "found for entry: %s" % strtoprint) + else: + raise NoContentsFoundForOperationError("No get contents " "found for selected type.") + + def collectandclear(self, contents, key, values): + """function to find and remove unneeded values from contents dictionary + :param contents: dictionary value returned by getprops + :type contents: dict. + :param key: string of keys + :type key: string. + :param values: list of values + :type values: list. + """ + clearcontent = contents[0][key] + if isinstance(clearcontent, dict): + keyslist = list(clearcontent.keys()) + else: + keyslist = [clearcontent] + clearedlist = keyslist + for arg in values: + for keys in keyslist: + if str(keys).lower() == str(arg).lower(): + clearedlist.remove(arg) + contents = iterateandclear(contents, clearedlist) + return contents + + def getvalidation(self, options): + """get method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--selector", + dest="selector", + help="Optionally include this flag to select a type to run" + " the current command on. Use this flag when you wish to" + " select a type without entering another command, or if you" + " wish to work with a type that is different from the one" + " you currently have selected.", + default=None, + ) + + customparser.add_argument( + "--filter", + dest="filter", + help="Optionally set a filter value for a filter attribute." + " This uses the provided filter for the currently selected" + " type. Note: Use this flag to narrow down your results. For" + " example, selecting a common type might return multiple" + " objects that are all of that type. If you want to modify" + " the properties of only one of those objects, use the filter" + " flag to narrow down results based on properties." + "\t\t\t\t\t Usage: --filter [ATTRIBUTE]=[VALUE]", + default=None, + ) + customparser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + customparser.add_argument( + "--noreadonly", + dest="noreadonly", + action="store_true", + help="Optionally include this flag if you wish to only show" + " properties that are not read-only. This is useful to see what " + "is configurable with the selected type(s).", + default=False, + ) + customparser.add_argument( + "--refresh", + dest="ref", + action="store_true", + help="Optionally reload the data of selected type and clear " "patches from current selection.", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/InfoCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/InfoCommand.py new file mode 100644 index 0000000..e1898f8 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/InfoCommand.py @@ -0,0 +1,183 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Info Command for RDMC""" + +try: + from rdmc_helper import ( + InfoMissingEntriesError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InfoMissingEntriesError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + +try: + from rdmc_helper import HARDCODEDLIST +except: + from ilorest.rdmc_helper import HARDCODEDLIST + + +class InfoCommand: + """Constructor""" + + def __init__(self): + self.ident = { + "name": "info", + "usage": None, + "description": "Displays detailed " + "information about a property within a selected type" + "\n\texample: info property\n\n\tDisplays detailed " + "information for several properties\n\twithin a selected " + "type\n\texample: info property property/sub-property property\n\n\t" + "Run without arguments to display properties \n\tthat " + "are available for info command\n\texample: info", + "summary": "Displays detailed information about a property within a selected type.", + "aliases": [], + "auxcommands": [], + } + + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, autotest=False, help_disp=False): + """Main info worker function + + :param line: command line input + :type line: string. + :param autotest: flag to determine if running automatictesting + :type autotest: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.infovalidation(options) + + if args: + for item in args: + if self.rdmc.app.selector.lower().startswith("bios.") and "attributes" not in item.lower(): + if not (item.lower() in HARDCODEDLIST or "@odata" in item.lower()): + item = "Attributes/" + item + + outdata = self.rdmc.app.info(props=item, dumpjson=options.json, latestschema=options.latestschema) + + if autotest: + return outdata + if outdata and options.json: + self.rdmc.ui.print_out_json(outdata) + elif outdata: + self.rdmc.ui.printer(outdata) + + if not outdata: + raise InfoMissingEntriesError("There are no valid " "entries for info in the current instance.") + else: + if len(args) > 1 and not item == args[-1]: + self.rdmc.ui.printer("\n************************************" "**************\n") + else: + results = set() + instances = self.rdmc.app.select() + for instance in instances: + currdict = instance.resp.dict + currdict = ( + currdict["Attributes"] + if instance.maj_type.startswith(self.rdmc.app.typepath.defs.biostype) + and currdict.get("Attributes", None) + else currdict + ) + results.update([key for key in currdict if key not in HARDCODEDLIST and "@odata" not in key.lower()]) + + if results and autotest: + return results + elif results: + self.rdmc.ui.printer("Info options:\n") + for item in results: + self.rdmc.ui.printer("%s\n" % item) + else: + raise InfoMissingEntriesError( + "No info items available for this selected type." " Try running with the --latestschema flag." + ) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def infovalidation(self, options): + """Info method validation function + + :param options: command line options + :type options: list. + """ + + if self.rdmc.opts.latestschema: + options.latestschema = True + + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--selector", + dest="selector", + help="Optionally include this flag to select a type to run" + " the current command on. Use this flag when you wish to" + " select a type without entering another command, or if you" + " wish to work with a type that is different from the one" + " you currently have selected.", + default=None, + ) + + customparser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + customparser.add_argument( + "--latestschema", + dest="latestschema", + action="store_true", + help="Optionally use the latest schema instead of the one " + "requested by the file. Note: May cause errors in some data " + "retrieval due to difference in schema versions.", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/ListCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/ListCommand.py new file mode 100644 index 0000000..0daa4e9 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/ListCommand.py @@ -0,0 +1,180 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""List Command for RDMC""" + +try: + from rdmc_helper import ( + UI, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + UI, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class ListCommand: + """Constructor""" + + def __init__(self): + self.ident = { + "name": "list", + "usage": None, + "description": "Displays the current values of the " + "properties within\n\ta selected type including" + " reserved properties\n\texample: list\n\n\tNOTE: If " + "you wish to not list all the reserved properties\n\t " + " run the get command instead", + "summary": "Displays the current value(s) of a" + " property(ies) within a selected type including" + " reserved properties.", + "aliases": ["ls"], + "auxcommands": ["GetCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Wrapper function for main list function + + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + selector = options.selector.lower() if options.selector else self.rdmc.app.selector.lower() + + if "securityservice" in selector: + self.cmdbase.login_validation(self, options) + else: + self.listvalidation(options) + + fvals = (None, None) + + if options.filter: + try: + if (str(options.filter)[0] == str(options.filter)[-1]) and str(options.filter).startswith(("'", '"')): + options.filter = options.filter[1:-1] + + (sel, val) = options.filter.split("=") + fvals = (sel.strip(), val.strip()) + except: + raise InvalidCommandLineError("Invalid filter" " parameter format [filter_attribute]=[filter_value]") + if options.selector: + if "storagecontroller." in options.selector.lower(): + options.selector = "storagecontrollercollection" + self.rdmc.app.selector = options.selector + elif self.rdmc.app.selector: + options.selector = self.rdmc.app.selector + if "securityservice" in options.selector.lower(): + url = "/redfish/v1/Managers/1/SecurityService/" + contents = self.rdmc.app.get_handler(url, service=True, silent=True).dict + security_contents = [] + + if options and options.json and contents: + UI().print_out_json(contents) + elif not args: + UI().print_out_human_readable(contents) + else: + attr = args[0] + contents_lower = {k.lower(): v for k, v in contents.items()} + security_contents.append({attr: contents_lower[attr.lower()]}) + if security_contents: + UI().print_out_human_readable(security_contents) + else: + self.auxcommands["get"].getworkerfunction(args, options, filtervals=fvals, uselist=False) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def listvalidation(self, options): + """List data validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--selector", + dest="selector", + help="Optionally include this flag to select a type to run" + " the current command on. Use this flag when you wish to" + " select a type without entering another command, or if you" + " wish to work with a type that is different from the one" + " you currently have selected.", + default=None, + ) + + customparser.add_argument( + "--filter", + dest="filter", + help="Optionally set a filter value for a filter attribute." + " This uses the provided filter for the currently selected" + " type. Note: Use this flag to narrow down your results. For" + " example, selecting a common type might return multiple" + " objects that are all of that type. If you want to modify" + " the properties of only one of those objects, use the filter" + " flag to narrow down results based on properties." + "\t\t\t\t\t Usage: --filter [ATTRIBUTE]=[VALUE]", + default=None, + ) + customparser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + customparser.add_argument( + "--refresh", + dest="ref", + action="store_true", + help="Optionally reload the data of selected type and clear " "patches from current selection.", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/LoadCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/LoadCommand.py new file mode 100644 index 0000000..202b77f --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/LoadCommand.py @@ -0,0 +1,569 @@ +### +# Copyright 2016-2023 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Load Command for RDMC""" + +import json +import os +import shlex +import subprocess +import sys +from datetime import datetime + +from six.moves import queue + +import redfish.ris +from redfish.ris.rmc_helper import LoadSkipSettingError + +try: + from rdmc_helper import ( + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + InvalidFileInputError, + InvalidMSCfileInputError, + MultipleServerConfigError, + NoChangesFoundOrMadeError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + InvalidFileInputError, + InvalidMSCfileInputError, + MultipleServerConfigError, + NoChangesFoundOrMadeError, + ReturnCodes, + ) + +try: + from rdmc_helper import HARDCODEDLIST +except: + from ilorest.rdmc_helper import HARDCODEDLIST + +# default file name +__filename__ = "ilorest.json" + + +class LoadCommand: + """Constructor""" + + def __init__(self): + self.ident = { + "name": "load", + "usage": None, + "description": "Run to load the default configuration" + " file\n\texample: load\n\n\tLoad configuration file from a " + "different file\n\tif any property values have changed, the " + "changes are committed and the user is logged out of the server" + "\n\n\texample: load -f output.json\n\n\tLoad configurations to " + "multiple servers\n\texample: load -m mpfilename.txt -f output." + "json\n\n\tNote: multiple server file format (1 server per new " + "line)\n\t--url -u admin -p password\n\t--url" + " -u admin -p password\n\t--url -u admin -p password", + "summary": "Loads the server configuration settings from a file.", + "aliases": [], + "auxcommands": ["CommitCommand", "SelectCommand", "RawPatchCommand"], + } + self.filenames = None + self.mpfilename = None + self.queue = queue.Queue() + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def securebootremovereadonly(self, tmp): + templist = [ + "SecureBootCurrentBoot", + "@odata.etag", + "Id", + "AutoNeg", + "FQDN", + "FullDuplex", + "HostName", + "IPv6Addresses", + "IPv6DefaultGateway", + "LinkStatus", + "MaxIPv6StaticAddresses", + "Name", + "NameServers", + "PermanentMACAddress", + "ConfigurationSettings", + "InterfaceType", + "NICSupportsIPv6", + "DomainName", + "IPV6", + "DNSServers", + "MACAddress", + "VLAN", + "SpeedMbps", + "DateTime", + ] + remove_data = self.rdmc.app.removereadonlyprops(tmp, False, True, templist) + return remove_data + + def run(self, line, help_disp=False): + """Main load worker function + + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.loadvalidation(options) + returnvalue = False + + if options.mpfilename: + self.rdmc.ui.printer("Loading configuration for multiple servers...\n") + else: + self.rdmc.ui.printer("Loading configuration...\n") + + for files in self.filenames: + if not os.path.isfile(files): + raise InvalidFileInputError( + "File '%s' doesn't exist. Please create file by running save command." % files + ) + if options.encryption: + with open(files, "rb") as myfile: + data = myfile.read() + data = Encryption().decrypt_file(data, options.encryption) + loadcontents = json.loads(data) + else: + try: + with open(files, "r") as myfile: + loadcontents = json.load(myfile) + except: + raise InvalidFileFormattingError("Invalid file formatting found in file %s" % files) + + if options.mpfilename: + mfile = options.mpfilename + outputdir = None + + if options.outdirectory: + outputdir = options.outdirectory + + if self.runmpfunc(mpfile=mfile, lfile=files, outputdir=outputdir): + return ReturnCodes.SUCCESS + else: + raise MultipleServerConfigError("One or more servers failed to load given configuration.") + + results = False + eth_conf = False + validation_errs = [] + + for loadcontent in loadcontents: + for content, loaddict in loadcontent.items(): + inputlist = list() + + if content == "Comments": + continue + + if "EthernetInterface" in content: + if options.force_network_config: + import platform + import tempfile + + patchpath = "/redfish/v1/Managers/1/EthernetInterfaces/1/" + + try: + payload = loadcontent[content][patchpath] + except KeyError: + continue + + payload = loadcontent[content][patchpath] + remove_odata = self.securebootremovereadonly(payload) + payload.update(remove_odata) + if "StaticNameServers" in payload: + payload["StaticNameServers"] = [ + item for item in payload["StaticNameServers"] if item != "::" + ] + tempdir = "/tmp" if platform.system() == "Darwin" else tempfile.gettempdir() + temp_file = os.path.join(tempdir, "temp_patch.json") + out_file = open(temp_file, "w") + patch_payload = {patchpath: payload} + json.dump(patch_payload, out_file, indent=6) + out_file.close() + self.auxcommands["rawpatch"].run(temp_file + " --service") + os.remove(temp_file) + eth_conf = True + continue + else: + self.rdmc.ui.printer( + "Skipping network configurations as" " --force_network_config is not included.\n" + ) + continue + + inputlist.append(content) + if options.biospassword: + inputlist.extend(["--biospassword", options.biospassword]) + + self.auxcommands["select"].selectfunction(inputlist) + if self.rdmc.app.selector.lower() not in content.lower(): + raise InvalidCommandLineError("Selector not found.\n") + + try: + for _, items in loaddict.items(): + remove_odata = self.securebootremovereadonly(items) + items.update(remove_odata) + try: + if self.rdmc.app.loadset( + seldict=items, + latestschema=options.latestschema, + uniqueoverride=options.uniqueoverride, + ): + results = True + except LoadSkipSettingError: + returnvalue = True + results = True + except: + raise + except redfish.ris.ValidationError as excp: + errs = excp.get_errors() + validation_errs.append({self.rdmc.app.selector: errs}) + except: + raise + + try: + if results: + self.auxcommands["commit"].commitfunction(options=options) + reboot_needed = False + for n in inputlist: + n = n.lower() + if "bios" in n or "boot" in n or "iscsi" in n: + reboot_needed = True + if reboot_needed: + self.rdmc.ui.printer("Reboot is required for settings to take effect.\n") + except NoChangesFoundOrMadeError as excp: + if returnvalue: + pass + else: + raise excp + + if validation_errs: + for validation_err in validation_errs: + for err_type in validation_err: + self.rdmc.ui.error("Validation error(s) in type %s:\n" % err_type) + for err in validation_err[err_type]: + if isinstance(err, redfish.ris.RegistryValidationError): + self.rdmc.ui.error(err.message) + try: + if err.reg: + self.rdmc.ui.error(str(err.sel)) + except: + pass + raise redfish.ris.ValidationError() + + if not results: + if eth_conf: + continue + else: + self.rdmc.ui.printer("No differences found from current configuration.\n") + + # Return code + if returnvalue: + return ReturnCodes.LOAD_SKIP_SETTING_ERROR + + return ReturnCodes.SUCCESS + + def loadvalidation(self, options): + """Load method validation function + + :param options: command line options + :type options: list. + """ + + if self.rdmc.opts.latestschema: + options.latestschema = True + + try: + self.cmdbase.login_validation(self, options) + except Exception: + if options.mpfilename: + pass + else: + raise + + # filename validations and checks + if options.filename: + self.filenames = options.filename + elif self.rdmc.config: + if self.rdmc.config.defaultloadfilename: + self.filenames = [self.rdmc.config.defaultloadfilename] + + if not self.filenames: + self.filenames = [__filename__] + + def verify_file(self, filedata, inputfile): + """Function used to handle oddly named files and convert to JSON + + :param filedata: input file data + :type filedata: string. + :param inputfile: current input file + :type inputfile: string. + """ + try: + tempholder = json.loads(filedata) + return tempholder + except: + raise InvalidFileFormattingError("Invalid file formatting found in file %s" % inputfile) + + def get_current_selector(self, path=None): + """Returns current selected content minus hard coded list + + :param path: current path + :type path: string. + """ + contents = self.rdmc.app.monolith.path[path] + + if not contents: + contents = list() + + for content in contents: + for k in list(content.keys()): + if k.lower() in HARDCODEDLIST or "@odata" in k.lower(): + del content[k] + + return contents + + def runmpfunc(self, mpfile=None, lfile=None, outputdir=None): + """Main worker function for multi file command + + :param mpfile: configuration file + :type mpfile: string. + :param lfile: custom file name + :type lfile: string. + :param outputdir: custom output directory + :type outputdir: string. + """ + # self.logoutobj.run("") + data = self.validatempfile(mpfile=mpfile, lfile=lfile) + + if not data: + return False + + processes = [] + finalreturncode = True + outputform = "%Y-%m-%d-%H-%M-%S" + + if outputdir: + if outputdir.endswith(('"', "'")) and outputdir.startswith(('"', "'")): + outputdir = outputdir[1:-1] + + if not os.path.isdir(outputdir): + self.rdmc.ui.error("The give output folder path does not exist.\n") + raise InvalidCommandLineErrorOPTS("") + + dirpath = outputdir + else: + dirpath = os.getcwd() + + dirname = "%s_%s" % (datetime.now().strftime(outputform), "MSClogs") + createdir = os.path.join(dirpath, dirname) + os.mkdir(createdir) + + oofile = open(os.path.join(createdir, "CompleteOutputfile.txt"), "w+") + self.rdmc.ui.printer("Create multiple processes to load configuration " "concurrently to all servers...\n") + + while True: + if not self.queue.empty(): + line = self.queue.get() + else: + break + + finput = "\n" + "Output for " + line[line.index("--url") + 1] + ": \n\n" + urlvar = line[line.index("--url") + 1] + + if "python" in os.path.basename(sys.executable.lower()): + # If we are running from source we have to add the python file to the command + listargforsubprocess = [sys.executable, sys.argv[0]] + line + else: + listargforsubprocess = [sys.executable] + line + + if os.name != "nt": + listargforsubprocess = " ".join(listargforsubprocess) + + urlfilename = urlvar.split("//")[-1] + logfile = open(os.path.join(createdir, urlfilename + ".txt"), "w+") + pinput = subprocess.Popen(listargforsubprocess, shell=True, stdout=logfile, stderr=logfile) + + processes.append((pinput, finput, urlfilename, logfile)) + + for pinput, finput, urlfilename, logfile in processes: + pinput.wait() + returncode = pinput.returncode + finalreturncode = finalreturncode and not returncode + + logfile.close() + logfile = open(os.path.join(createdir, urlfilename + ".txt"), "r+") + oofile.write(finput + str(logfile.read())) + oofile.write("-x+x-" * 16) + logfile.close() + + if returncode == 0: + self.rdmc.ui.printer("Loading Configuration for {} : SUCCESS\n".format(urlfilename)) + else: + self.rdmc.ui.error("Loading Configuration for {} : FAILED\n".format(urlfilename)) + self.rdmc.ui.error( + "ILOREST return code : {}.\nFor more details please check " + "{}.txt under {} directory.\n".format(returncode, urlfilename, createdir) + ) + + oofile.close() + + if finalreturncode: + self.rdmc.ui.printer("All servers have been successfully configured.\n") + + return finalreturncode + + def validatempfile(self, mpfile=None, lfile=None): + """Validate temporary file + + :param mpfile: configuration file + :type mpfile: string. + :param lfile: custom file name + :type lfile: string. + """ + self.rdmc.ui.printer("Checking given server information...\n") + + if not mpfile: + return False + + if not os.path.isfile(mpfile): + raise InvalidFileInputError( + "File '%s' doesn't exist, please " "create file by running save command." % mpfile + ) + + try: + with open(mpfile, "r") as myfile: + data = list() + cmdtorun = ["load"] + cmdargs = ["-f", str(lfile)] + globalargs = ["-v", "--nocache"] + + while True: + line = myfile.readline() + + if not line: + break + + if line.endswith(os.linesep): + line.rstrip(os.linesep) + + args = shlex.split(line, posix=False) + + if len(args) < 5: + self.rdmc.ui.error("Incomplete data in input file: {}\n".format(line)) + raise InvalidMSCfileInputError("Please verify the " "contents of the %s file" % mpfile) + else: + linelist = globalargs + cmdtorun + args + cmdargs + line = str(line).replace("\n", "") + self.queue.put(linelist) + data.append(linelist) + except Exception as excp: + raise excp + + if data: + return data + + return False + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-f", + "--filename", + dest="filename", + help="Use this flag if you wish to use a different" + " filename than the default one. The default filename is" + " %s." % __filename__, + action="append", + default=None, + ) + customparser.add_argument( + "-m", + "--multiprocessing", + dest="mpfilename", + help="""use the provided filename to obtain data""", + default=None, + ) + customparser.add_argument( + "--outputdirectory", + dest="outdirectory", + help="""use the provided directory to output data for multiple server configuration""", + default=None, + ) + customparser.add_argument( + "--latestschema", + dest="latestschema", + action="store_true", + help="Optionally use the latest schema instead of the one " + "requested by the file. Note: May cause errors in some data " + "retrieval due to difference in schema versions.", + default=None, + ) + customparser.add_argument( + "--uniqueoverride", + dest="uniqueoverride", + action="store_true", + help="Override the measures stopping the tool from writing " "over items that are system unique.", + default=False, + ) + customparser.add_argument( + "--encryption", + dest="encryption", + help="Optionally include this flag to encrypt/decrypt a file " "using the key provided.", + default=None, + ) + customparser.add_argument( + "--reboot", + dest="reboot", + help="Use this flag to perform a reboot command function after" + " completion of operations. For help with parameters and" + " descriptions regarding the reboot flag, run help reboot.", + default=None, + ) + customparser.add_argument( + "--force_network_config", + dest="force_network_config", + help="Use this flag to force set network configuration." + "Network settings will be skipped if the flag is not included.", + action="store_true", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/LoginCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/LoginCommand.py new file mode 100644 index 0000000..5e36f67 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/LoginCommand.py @@ -0,0 +1,582 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Login Command for RDMC""" + +import getpass +import os +import socket +import redfish.ris +from redfish.hpilo.vnichpilo import AppAccount +from redfish.rest.connections import ChifDriverMissingOrNotFound, VnicNotEnabledError +import requests +from requests.exceptions import SSLError, RequestException +import platform +from argparse import SUPPRESS + +try: + from rdmc_helper import ( + Encryption, + LOGGER, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + PathUnavailableError, + ReturnCodes, + UsernamePasswordRequiredError, + VnicExistsError, + VnicLoginError, + InactiveAppAccountTokenError, + NoAppAccountError, + GenBeforeLoginError, + AppAccountExistsError, + ) +except ModuleNotFoundError: + from ilorest.rdmc_helper import ( + ReturnCodes, + LOGGER, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + PathUnavailableError, + Encryption, + UsernamePasswordRequiredError, + VnicExistsError, + VnicLoginError, + InactiveAppAccountTokenError, + NoAppAccountError, + GenBeforeLoginError, + AppAccountExistsError, + ) + +from redfish.rest.v1 import ServerDownOrUnreachableError + + +class LoginCommand: + """Constructor""" + + def __init__(self): + self.ident = { + "name": "login", + "usage": None, + "description": "To login remotely run using iLO url and iLO credentials" + "\n\texample: login -u " + "-p \n\n\tTo login on a local server run without " + "arguments\n\texample: login" + "\n\n\tTo login through VNIC run using --force_vnic and iLO credentials " + "\n\texample: login --force_vnic -u -p " + "\n\nLogin using OTP can be done in 2 ways." + "\n\n\t To login implicitly, use the tag --wait_for_otp." + "\n\t\texample: login -u -p --wait_for_otp" + "\n\n\n\t To login explicitly, use the tag -o/--otp and enter OTP after." + "\n\t\texample: login -u -p -o " + "\n\n\tNOTE: A [URL] can be specified with " + "an IPv4, IPv6, or hostname address.", + "summary": "Connects to a server, establishes a secure session," " and discovers data from iLO.", + "aliases": [], + "auxcommands": ["LogoutCommand"], + "cert_data": {}, + } + self.cmdbase = None + self.rdmc = None + self.url = None + self.username = None + self.password = None + self.sessionid = None + self.biospassword = None + self.auxcommands = dict() + self.cert_data = dict() + self.login_otp = None + self.ilo_gen = 6 + + def run(self, line, help_disp=False): + """wrapper function for main login function + + :param line: command line input + :type line: string. + :param help_disp: flag to determine to display or not + :type help_disp: boolean + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + self.loginfunction(line) + + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + + if not self.rdmc.app.monolith._visited_urls: + self.auxcommands["logout"].run("") + raise PathUnavailableError("The path specified by the --path flag is unavailable.") + except Exception: + raise + + # Return code + return ReturnCodes.SUCCESS + + def perform_login(self, options, skipbuild, user_ca_cert_data, args, app_obj): + + ilo_ver = self.ilo_gen + if ilo_ver < 7 or (ilo_ver >= 7 and (options.usechif or options.noapptoken or args)): + login_response = self.rdmc.app.login( + username=self.username, + password=self.password, + sessionid=self.sessionid, + base_url=self.url, + path=options.path, + skipbuild=skipbuild, + includelogs=options.includelogs, + biospassword=self.biospassword, + is_redfish=self.rdmc.opts.is_redfish, + proxy=self.rdmc.opts.proxy, + user_ca_cert_data=user_ca_cert_data, + json_out=self.rdmc.json, + login_otp=self.login_otp, + log_dir=self.rdmc.log_dir, + ) + else: + if options.hostappname or options.hostappid or options.salt: + if not (options.hostappname and options.hostappid and options.salt): + raise InvalidCommandLineError("Please enter all the necessary host application information.\n") + + # Code to check if vnic is enabled. + vnic_enabled = self.rdmc.app.vexists(app_obj) + if not vnic_enabled: + raise VnicExistsError( + "Unable to access iLO using virtual NIC. " + "Please ensure virtual NIC is enabled in iLO. " + "Ensure that virtual NIC in the host OS is " + "configured properly. Refer to documentation for more information.\n" + ) + + # To check if appaccount exists. If not, error out. + try: + apptoken_exists = self.rdmc.app.token_exists(app_obj) + except Exception as excp: + raise AppAccountExistsError("Error occurred while checking if app account exists.\n") + + # If appaccount doesn't exist + if not apptoken_exists: + raise NoAppAccountError( + "The app account is not available for this host application. " + "Please retry using the --no_app_account option or generate " + "an application account using the appaccount create command.\n" + ) + + try: + # Function will log in, retrieve session id, call build monolith, .save() + login_response = self.rdmc.app.vnic_login( + app_obj=app_obj, + path=options.path, + skipbuild=skipbuild, + includelogs=options.includelogs, + json_out=self.rdmc.json, + base_url=self.url, + username=self.username, + password=self.password, + log_dir=self.rdmc.log_dir, + login_otp=self.login_otp, + is_redfish=self.rdmc.opts.is_redfish, + proxy=self.rdmc.opts.proxy, + user_ca_cert_data=user_ca_cert_data, + biospassword=self.biospassword, + sessionid=self.sessionid, + ) + except redfish.hpilo.vnichpilo.InactiveAppAccountTokenError: + LOGGER.error("Login failed due to an inactive or expired App Account token.") + raise InactiveAppAccountTokenError("Login failed due to an inactive or expired App Account token.") + except Exception as excp: + error_msg = """Error occurred while performing login using app account. + Check if application account exists using 'appaccount details' command. + Otherwise, try with --no_app_account option.\n""" + LOGGER.error(error_msg) + raise VnicLoginError(error_msg) + + if options.session_id and login_response and hasattr(login_response, "_auth_key"): + self.rdmc.ui.printer(f"\nSessionID:{login_response._auth_key}\n\n") + + def loginfunction(self, line, skipbuild=None, json_out=False): + """Main worker function for login class + + :param line: entered command line + :type line: list. + :param skipbuild: flag to determine if monolith should be build + :type skipbuild: boolean. + :param json_out: flag to determine if json output neededd + :type skipbuild: boolean. + """ + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineError("Invalid command line arguments") + + if platform.system() == "Darwin": + # Mac OS + app_obj = None + self.ilo_gen = 6 + else: + app_obj = AppAccount( + appname=options.hostappname, + appid=options.hostappid, + salt=options.salt, + username=options.user, + password=options.password, + log_dir=self.rdmc.log_dir, + ) + + self.ilo_gen = self.get_ilover_beforelogin(args=args, app_obj=app_obj, options=options) + + self.loginvalidation(options=options, args=args, app_obj=app_obj) + + # if proxy server provided in command line as --useproxy, it will be used, + # otherwise it will the environment variable setting. + # else proxy will be set as None. + if self.rdmc.opts.proxy: + _ = self.rdmc.opts.proxy + elif "https_proxy" in os.environ and os.environ["https_proxy"]: + _ = os.environ["https_proxy"] + elif "http_proxy" in os.environ and os.environ["http_proxy"]: + _ = os.environ["http_proxy"] + else: + _ = self.rdmc.config.proxy + + no_bundle = False + + if getattr(options, "ca_cert_bundle", False): + user_ca_cert_data = {"ca_certs": options.ca_cert_bundle} + else: + user_ca_cert_data = {} + if getattr(options, "user_certificate", False): + no_bundle = True + user_ca_cert_data.update({"cert_file": options.user_certificate}) + if getattr(options, "user_root_ca_key", False): + no_bundle = True + user_ca_cert_data.update({"key_file": options.user_root_ca_key}) + if getattr(options, "user_root_ca_password", False): + no_bundle = True + user_ca_cert_data.update({"key_password": options.user_root_ca_password}) + + if not no_bundle: + if hasattr(user_ca_cert_data, "ca_certs"): + user_ca_cert_data.pop("ca_certs") + + try: + if getattr(options, "force_vnic", False): + self.rdmc.ui.printer("\nAttempt to login with Vnic...\n") + try: + sock = socket.create_connection((args[0], 443)) + if sock: + sock.close + except: + pass + + self.sessionid = options.sessionid + self.login_otp = options.login_otp + + if self.url and "blobstore" in self.url and (options.waitforOTP or options.login_otp): + options.waitforOTP = None + options.login_otp = None + self.rdmc.ui.printer( + "Warning: For local inband mode, TFA is not supported, options --wait_for_otp " + "and --otp will be ignored\n" + ) + + if options.waitforOTP: + try: + self.perform_login(options, skipbuild, user_ca_cert_data, args, app_obj) + except redfish.rest.connections.OneTimePasscodeError: + self.rdmc.ui.printer("One Time Passcode Sent to registered email.\n") + ans = input("Enter OTP: ") + self.login_otp = ans + self.perform_login(options, skipbuild, user_ca_cert_data, args, app_obj) + else: + self.perform_login(options, skipbuild, user_ca_cert_data, args, app_obj) + except ServerDownOrUnreachableError as excp: + self.rdmc.ui.printer("The following error occurred during login: '%s'\n" % str(excp.__class__.__name__)) + + self.username = None + self.password = None + + # Warning for cache enabled, since we save session in plain text + if not self.rdmc.encoding: + self.rdmc.ui.warn("Cache is activated. Session keys are stored in plaintext.") + + if self.rdmc.opts.debug: + self.rdmc.ui.warn("Logger is activated. Logging is stored in plaintext.") + + if options.selector: + try: + self.rdmc.app.select(selector=options.selector) + + if self.rdmc.opts.verbose: + self.rdmc.ui.printer(("Selected option: '%s'\n" % options.selector)) + except Exception as excp: + raise redfish.ris.InstanceNotFoundError(excp) + + def loginvalidation(self, options, args, app_obj): + """Login helper function for login validations + + :param options: command line options + :type options: list. + :param args: command line arguments + :type args: list. + """ + # Fill user name/password from config file + if not options.user: + options.user = self.rdmc.config.username + if not options.password: + options.password = self.rdmc.config.password + if not hasattr(options, "user_certificate"): + options.user_certificate = self.rdmc.config.user_cert + if not hasattr(options, "user_root_ca_key"): + options.user_root_ca_key = self.rdmc.config.user_root_ca_key + if not hasattr(options, "user_root_ca_password"): + options.user_root_ca_password = self.rdmc.config.user_root_ca_password + + ilo_ver = self.ilo_gen + + if ( + options.user + and not options.password + and ( + not hasattr(options, "user_certificate") + or not hasattr(options, "user_root_ca_key") + or hasattr(options, "user_root_ca_password") + ) + ): + # Option for interactive entry of password + tempinput = getpass.getpass().rstrip() + if tempinput: + options.password = tempinput + else: + raise InvalidCommandLineError("Empty or invalid password was entered.") + + if options.user: + self.username = options.user + + if options.password: + self.password = options.password + + if options.encode: + self.username = Encryption.decode_credentials(self.username).decode("utf-8") + self.password = Encryption.decode_credentials(self.password).decode("utf-8") + + if options.biospassword: + self.biospassword = options.biospassword + + if ilo_ver >= 7: + if not args: + if self.username and self.password and not options.noapptoken and not options.usechif: + options.noapptoken = True + if options.noapptoken: + if ( + not self.username or not self.password + ): # Add another check to see if username and password is present in environment variables + raise UsernamePasswordRequiredError( + "Please enter username and password in order to login without app account.\n" + ) + options.force_vnic = True + + # Assignment of url in case no url is entered + if getattr(options, "force_vnic", False): + if not (getattr(options, "ca_cert_bundle", False) or getattr(options, "user_certificate", False)): + if not (self.username and self.password) and not options.sessionid: + raise UsernamePasswordRequiredError("Please provide credentials to login with virtual NIC.\n") + self.url = "https://16.1.15.1" + else: + if ilo_ver >= 7 and not options.usechif: + # TO DO + # self.url = self.rdmc.app.GetIPAddress() + self.url = "https://16.1.15.1" + else: + self.url = "blobstore://." + + if args: + # Any argument should be treated as an URL + self.url = args[0] + + # Verify that URL is properly formatted for https:// + if "https://" not in self.url: + self.url = "https://" + self.url + + if not ( + hasattr(options, "user_certificate") + or hasattr(options, "user_root_ca_key") + or hasattr(options, "user_root_ca_password") + ): + if not (options.user and options.password): + raise InvalidCommandLineError("Empty username or password was entered.") + else: + # Check to see if there is a URL in config file + if self.rdmc.config.url: + self.url = self.rdmc.config.url + + def get_ilover_beforelogin(self, args, app_obj, options): + """ + Attempts to retrieve the iLO version before login. + + :param args: List of command-line arguments; expects iLO IP/hostname at index 0. + :param app_obj: App object for fallback retrieval if args is empty. + :param options: Options object, may include flags like 'force_vnic' or 'usechif'. + :return: iLO version as an integer. + :raises: GenBeforeLoginError, VnicExistsError, ChifDriverMissingOrNotFound, VnicNotEnabledError + """ + ip = path = None # Initialize to avoid UnboundLocalError + try: + if args: + ip = args[0] + path = f"https://{ip}/redfish/v1" + + response = requests.get(path, verify=False, timeout=10) + response.raise_for_status() + + try: + json_data = response.json() + oem_data = json_data.get("Oem", {}).get("Hpe") or json_data.get("Oem", {}).get("Hp") + if not oem_data: + raise KeyError("Oem->Hpe or Oem->Hp block missing in response.") + + manager = oem_data.get("Manager", [{}])[0] + manager_type = manager.get("ManagerType") + + if manager_type: + ilo_ver = int(manager_type.split(" ")[1]) + else: + moniker = oem_data.get("Moniker", {}) + prodgen = moniker.get("PRODGEN") + if not prodgen: + raise KeyError("PRODGEN key not found in Moniker.") + ilo_ver = int(prodgen.split(" ")[1]) + except (KeyError, ValueError, IndexError) as e: + raise GenBeforeLoginError( + f"Failed to parse iLO version from response. Error: {e}\n" + "Ensure the iLO firmware is Redfish-compliant and responds correctly.\n" + ) + else: + ilo_ver, _ = self.rdmc.app.getilover_beforelogin(app_obj) + + return ilo_ver + + except ChifDriverMissingOrNotFound: + if getattr(options, "force_vnic", False): + return 5 + raise + + except VnicNotEnabledError: + if getattr(options, "usechif", False): + return 7 + raise VnicExistsError( + "Unable to access iLO using virtual NIC.\n" + "Please ensure that virtual NIC is enabled in iLO and " + "properly configured in the host OS.\n" + "Refer to the documentation for setup instructions.\n" + ) + + except SSLError: + raise GenBeforeLoginError( + f"SSL Error: Unable to connect to the server at {ip or '[unknown IP]'}.\n" + "Please verify the iLO IP and try accessing the GUI.\n" + ) + + except RequestException as e: + raise GenBeforeLoginError( + f"Connection Error: Could not retrieve data from {path or '[unknown path]'}.\n" f"Details: {e}\n" + ) + + except Exception as e: + raise GenBeforeLoginError( + f"An unexpected error occurred while retrieving the iLO version.\n" + f"Details: {e}\n" + "Verify if virtual NIC is enabled for iLO7 or that the CHIF driver " + "is installed for iLO5 and iLO6 based servers.\n" + ) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + + def remove_argument(parser, arg): + for action in parser._actions: + opts = action.option_strings + if (opts and opts[0] == arg) or action.dest == arg: + parser._remove_action(action) + break + + for action in parser._action_groups: + for group_action in action._group_actions: + opts = group_action.option_strings + if (opts and opts[0] == arg) or group_action.dest == arg: + action._group_actions.remove(group_action) + return + + if not customparser: + return + + customparser.add_argument( + "--wait_for_otp", + dest="waitforOTP", + help="Optionally include this flag to implicitly wait for OTP.", + action="store_true", + default=None, + ) + self.cmdbase.add_login_arguments_group(customparser) + remove_argument(customparser, "url") + customparser.add_argument( + "--selector", + dest="selector", + help="Optionally include this flag to select a type to run" + " the current command on. Use this flag when you wish to" + " select a type without entering another command, or if you" + " wish to work with a type that is different from the one" + " you currently have selected.", + default=None, + ) + customparser.add_argument( + "--no_app_token", + "--no_app_account", + dest="noapptoken", + help="Include this parameter in order to login to iLO7 and above with credentials and not app account.", + default=None, + action="store_true", + ) + customparser.add_argument("--hostappid", dest="hostappid", help="Parameter to specify hostappid", default=None) + customparser.add_argument( + "--hostappname", dest="hostappname", help="Parameter to specify hostappname", default=None + ) + customparser.add_argument( + "--salt", dest="salt", help="Parameter to specify application owned salt", default=None + ) + customparser.add_argument( + "--use_chif", + dest="usechif", + help="Include this parameter in order to operate iLO7 and above using chif.", + default=None, + action="store_true", + ) + customparser.add_argument( + "--show_session_id", + "-s", + dest="session_id", + help=SUPPRESS, + default=None, + action="store_true", + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/LogoutCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/LogoutCommand.py new file mode 100644 index 0000000..cc7b999 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/LogoutCommand.py @@ -0,0 +1,79 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Logout Command for RDMC""" + +try: + from rdmc_helper import InvalidCommandLineErrorOPTS, ReturnCodes +except ImportError: + from ilorest.rdmc_helper import InvalidCommandLineErrorOPTS, ReturnCodes + + +class LogoutCommand: + """Constructor""" + + def __init__(self): + self.ident = { + "name": "logout", + "usage": None, + "description": "Run to end the current session and disconnect" " from the server\n\tExample: logout", + "summary": "Ends the current session and disconnects from the server.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + + def logoutfunction(self, line): + """Main logout worker function + + :param line: command line input + :type line: string. + """ + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.rdmc.app.logout("") + + def run(self, line, help_disp=False): + """Wrapper function for main logout function + + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + self.rdmc.ui.printer("Logging session out.\n") + self.logoutfunction(line) + + # Return code + return ReturnCodes.SUCCESS + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/PendingChangesCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/PendingChangesCommand.py new file mode 100644 index 0000000..5ced8f1 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/PendingChangesCommand.py @@ -0,0 +1,201 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Results Command for rdmc""" + +import copy +import json +import sys + +import jsondiff + +try: + from rdmc_helper import HARDCODEDLIST +except: + from ilorest.rdmc_helper import HARDCODEDLIST +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class PendingChangesCommand: + """PendingChanges class command""" + + def __init__(self): + self.ident = { + "name": "pending", + "usage": None, + "description": "Run to show pending committed changes " + "that will be applied after a reboot.\n\texample: pending", + "summary": "Show the pending changes that will be applied on reboot.", + "aliases": [], + "auxcommands": [], + } + + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Show pending changes of settings objects + + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if args: + raise InvalidCommandLineError("Pending command does not take any arguments.") + self.pendingvalidation(options) + + self.pendingfunction() + sys.stdout.write("\n") + self.cmdbase.logout_routine(self, options) + return ReturnCodes.SUCCESS + + def pendingfunction(self): + """Main pending command worker function""" + settingsuri = [] + ignorekeys = ["@odata.id", "@odata.etag", "@redfish.settings", "oem"] + ignoreuri = [str("hpsut*")] + ignorekeys.extend(HARDCODEDLIST) + + resourcedir = self.rdmc.app.get_handler(self.rdmc.app.monolith._resourcedir, service=True, silent=True) + + for resource in resourcedir.dict["Instances"]: + if (resource["@odata.id"].split("/").__len__() - 1) > 4: + splitstr = resource["@odata.id"].split("/")[5] + for element in ignoreuri: + if "/settings" in resource["@odata.id"] and not self.wildcard_str_match(element, splitstr): + settingsuri.append(resource["@odata.id"]) + + self.rdmc.ui.printer("Current Pending Changes:\n") + + for uri in settingsuri: + diffprint = {} + baseuri = uri.split("settings")[0] + + base = self.rdmc.app.get_handler(baseuri, service=True, silent=True) + settings = self.rdmc.app.get_handler(uri, service=True, silent=True) + + typestring = self.rdmc.app.monolith.typepath.defs.typestring + currenttype = ".".join(base.dict[typestring].split("#")[-1].split(".")[:-1]) + + differences = json.loads(jsondiff.diff(base.dict, settings.dict, syntax="symmetric", dump=True)) + + diffprint = self.recursdict(differences, ignorekeys) + + self.rdmc.ui.printer("\n%s:" % currenttype) + if not diffprint: + self.rdmc.ui.printer("\nNo pending changes found.\n") + else: + self.rdmc.ui.pretty_human_readable(diffprint) + + def wildcard_str_match(self, first, second): + """ + Recursive function for determining match between two strings. Accounts + for wildcard characters + + :param first: comparison string (may contain '*' or '?' for wildcards) + :param type: str (unicode) + :param second: string value to be compared (must not contain '*' or '?') + :param type: str (unicode) + """ + + if not first and not second: + return True + if len(first) > 1 and first[0] == "*" and not second: + return False + if (len(first) > 1 and first[0] == "?") or (first and second and first[0] == second[0]): + return self.wildcard_str_match(first[1:], second[1:]) + if first and first[0] == "*": + return self.wildcard_str_match(first[1:], second) or self.wildcard_str_match(first, second[1:]) + + return False + + def recursdict(self, diff, ignorekeys): + """Recursively get dict ready for printing + + :param diff: diff dict + :type options: dict. + """ + diffprint = copy.deepcopy(diff) + for item in diff: + if item.lower() in ignorekeys: + diffprint.pop(item) + elif item == "$delete": + for ditem in diff[item]: + if isinstance(diff[item], list): + continue + if isinstance(diff[item][ditem], dict): + diffprint[item].pop(ditem) + if ditem.lower() in ignorekeys or ditem.isdigit(): + continue + else: + diffprint.update({"removed": ditem}) + diffprint.pop(item) + elif item == "$insert": + for ditem in diff[item]: + del diffprint[item][diffprint[item].index(ditem)] + diffprint.update({"changed index position": ditem[1]}) + diffprint.pop(item) + elif isinstance(diff[item], dict): + diffprint[item] = self.recursdict(diff[item], ignorekeys) + + elif isinstance(diff[item], list): + diffprint.update({item: {"Current": diff[item][0], "Pending": diff[item][1]}}) + else: + continue + + return diffprint + + def pendingvalidation(self, options): + """Pending method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/ExitCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/ExitCommand.py new file mode 100644 index 0000000..942343a --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/ExitCommand.py @@ -0,0 +1,80 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Exit Command for rdmc""" + +import sys + +try: + from rdmc_helper import InvalidCommandLineErrorOPTS, ReturnCodes +except ImportError: + from ilorest.rdmc_helper import InvalidCommandLineErrorOPTS, ReturnCodes + + +class ExitCommand: + """Exit class to handle exiting from interactive mode""" + + def __init__(self): + self.ident = { + "name": "exit", + "usage": None, + "description": "Run to exit from the interactive shell\n\texample: exit", + "summary": "Exits from the interactive shell.", + "aliases": ["quit"], + "auxcommands": ["LogoutCommand"], + } + # self.rdmc = rdmcObj + # self.logoutobj = rdmcObj.commands_dict["LogoutCommand"](rdmcObj) + + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """If an argument is present, print help else exit + + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (_, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if not args or not line: + self.auxcommands["logout"].run("") + + # System exit + sys.exit(ReturnCodes.SUCCESS) + else: + self.rdmc.ui.error("Exit command does not take any parameters.\n") + raise InvalidCommandLineErrorOPTS("Invalid command line arguments.") + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/HelpCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/HelpCommand.py new file mode 100644 index 0000000..a74ced4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/HelpCommand.py @@ -0,0 +1,113 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Help Command for RDMC""" + +try: + from rdmc_base_classes import RdmcCommandBase, RdmcOptionParser +except ImportError: + from ilorest.rdmc_base_classes import RdmcCommandBase, RdmcOptionParser +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class HelpCommand(RdmcCommandBase): + """Constructor""" + + def __init__(self): + self.ident = { + "name": "help", + "usage": None, + "description": "help [COMMAND]\n\tFor more detailed command descriptions" + " use the help command feature\n\texample: help login\n", + "summary": "Displays command line syntax and help menus for individual commands." " Example: help login\n", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Wrapper function for help main function + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if not args or not line: + RdmcOptionParser().print_help() + if self.rdmc: + cmddict = self.rdmc.get_commands() + sorted_keys = sorted(list(cmddict.keys())) + + for key in sorted_keys: + if key[0] == "_": + continue + else: + self.rdmc.ui.printer("\n%s\n" % key) + for cmd in cmddict[key]: + self.rdmc.ui.printer( + "%-25s - %s\n" + % ( + self.rdmc.commands_dict[cmd].ident["name"], + self.rdmc.commands_dict[cmd].ident["summary"], + ) + ) + else: + if self.rdmc: + cmddict = self.rdmc.get_commands() + sorted_keys = list(cmddict.keys()) + + for key in sorted_keys: + for cmd in cmddict[key]: + cmd_s = cmd.split("Command") + cmd_s = cmd_s[0] + if args[0].lower() == cmd_s.lower(): + self.rdmc.ui.printer(self.rdmc.commands_dict[cmd].ident["description"] + "\n") + return ReturnCodes.SUCCESS + raise InvalidCommandLineError("Command '%s' not found." % args[0]) + # Return code + return ReturnCodes.SUCCESS + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/__pycache__/ExitCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/REQUIREDCOMMANDS/__pycache__/ExitCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..08bb4e568983109042f2eeb922354aafcfa4bc31 GIT binary patch literal 2012 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 W#bJ}1pHiBWY6o&uF%ytrVE_QuWH*uk literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/ResultsCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/ResultsCommand.py new file mode 100644 index 0000000..31f04dc --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/ResultsCommand.py @@ -0,0 +1,156 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Results Command for rdmc""" + +from redfish.ris.resp_handler import ResponseHandler +from redfish.ris.rmc_helper import EmptyRaiseForEAFP + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class ResultsCommand: + """Monolith class command""" + + def __init__(self): + self.ident = { + "name": "results", + "usage": None, + "description": "Run to show the results of the last" " changes after a server reboot.\n\texample: results", + "summary": "Show the results of changes which require a server reboot.", + "aliases": [], + "auxcommands": ["LoginCommand", "SelectCommand"], + } + + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Gather results of latest BIOS change + + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if args: + raise InvalidCommandLineError("Results command does not take any arguments.") + self.resultsvalidation(options) + results = {} + if self.rdmc.app.typepath.defs.biospath[-1] == "/": + iscsipath = self.rdmc.app.typepath.defs.biospath + "iScsi/" + bootpath = self.rdmc.app.typepath.defs.biospath + "Boot/" + else: + iscsipath = self.rdmc.app.typepath.defs.biospath + "/iScsi" + bootpath = self.rdmc.app.typepath.defs.biospath + "/Boot" + + try: + self.auxcommands["select"].selectfunction("SmartStorageConfig") + smartarray = self.rdmc.app.getprops() + sapaths = [path["@odata.id"].split("settings")[0] for path in smartarray] + except: + sapaths = None + + biosresults = self.rdmc.app.get_handler(self.rdmc.app.typepath.defs.biospath, service=True, silent=True) + iscsiresults = self.rdmc.app.get_handler(iscsipath, service=True, silent=True) + bootsresults = self.rdmc.app.get_handler(bootpath, service=True, silent=True) + saresults = [] + if sapaths: + saresults = [self.rdmc.app.get_handler(path, service=True, silent=True) for path in sapaths] + try: + results.update({"Bios:": biosresults.dict[self.rdmc.app.typepath.defs.biossettingsstring]["Messages"]}) + except Exception: + results.update({"Bios:": None}) + + try: + results.update({"Iscsi:": iscsiresults.dict[self.rdmc.app.typepath.defs.biossettingsstring]["Messages"]}) + except: + results.update({"Iscsi:": None}) + + try: + results.update({"Boot:": bootsresults.dict[self.rdmc.app.typepath.defs.biossettingsstring]["Messages"]}) + except: + results.update({"Boot:": None}) + try: + for result in saresults: + loc = "SmartArray" + if saresults.index(result) > 0: + loc += " %d:" % saresults.index(result) + else: + loc += ":" + results.update({loc: result.dict[self.rdmc.app.typepath.defs.biossettingsstring]["Messages"]}) + except: + results.update({"SmartArray:": None}) + + self.rdmc.ui.printer("Results of the previous reboot changes:\n\n") + + for result in results: + self.rdmc.ui.printer("%s\n" % result) + try: + for msg in results[result]: + _ = ResponseHandler( + self.rdmc.app.validationmanager, + self.rdmc.app.typepath.defs.messageregistrytype, + ).message_handler(response_data=msg, message_text="", verbosity=0, dl_reg=False) + pass + except EmptyRaiseForEAFP as exp: + raise EmptyRaiseForEAFP(exp) + except Exception: + self.rdmc.ui.error("No messages found for %s.\n" % result[:-1]) + + self.cmdbase.logout_routine(self, options) + return ReturnCodes.SUCCESS + + def resultsvalidation(self, options): + """Results method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/SaveCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/SaveCommand.py new file mode 100644 index 0000000..55eb3f3 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/SaveCommand.py @@ -0,0 +1,424 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Save Command for RDMC""" + +import json +from collections import OrderedDict + +import redfish.ris + +try: + from rdmc_helper import ( + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + ReturnCodes, + iLORisCorruptionError, + ) +except ImportError: + from ilorest.rdmc_helper import ( + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + ReturnCodes, + iLORisCorruptionError, + ) + +# default file name +__filename__ = "ilorest.json" + + +class SaveCommand: + """Constructor""" + + def __init__(self): + self.ident = { + "name": "save", + "usage": None, + "description": "Run to save a selected type to a file" + "\n\texample: save --selector HpBios.\n\n\tChange the default " + "output filename\n\texample: save --selector HpBios. -f " + "output.json\n\n\tTo save multiple types in one file\n\texample: " + "save --multisave Bios.,ComputerSystem.", + "summary": "Saves the selected type's settings to a file.", + "aliases": [], + "auxcommands": ["SelectCommand"], + } + self.filename = __filename__ + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main save worker function + + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if options.multisave: + options.selector = "" + if ( + hasattr(options, "selector") + and options.selector is not None + and "hpbaseconfigs" not in options.selector.lower() + and "hpebaseconfigs" not in options.selector.lower() + and "bios" not in options.selector.lower() + ): + self.savevalidation(options) + else: + # filename validations and checks + self.cmdbase.login_validation(self, options) + self.filename = None + if options.filename and len(options.filename) > 1: + raise InvalidCommandLineError("Save command doesn't support multiple filenames.") + elif options.filename: + self.filename = options.filename[0] + elif self.rdmc.config: + if self.rdmc.config.defaultsavefilename: + self.filename = self.rdmc.config.defaultsavefilename + + if not self.filename: + self.filename = __filename__ + + # if args: + # raise InvalidCommandLineError("Save command takes no arguments.") + + self.rdmc.ui.printer("Saving configuration...\n") + if options.filter: + try: + if (str(options.filter)[0] == str(options.filter)[-1]) and str(options.filter).startswith(("'", '"')): + options.filter = options.filter[1:-1] + + (sel, val) = options.filter.split("=") + sel = sel.strip() + val = val.strip() + except: + raise InvalidCommandLineError("Invalid filter" " parameter format [filter_attribute]=[filter_value]") + + instances = self.rdmc.app.select( + selector=self.rdmc.app.selector, + fltrvals=(sel, val), + path_refresh=True, + ) + contents = self.saveworkerfunction(options, instances=instances) + else: + contents = self.saveworkerfunction(options) + + if options.multisave: + for select in options.multisave: + try: + self.auxcommands["select"].run(select) + except: + pass + contents += self.saveworkerfunction(options) + + if not contents: + raise redfish.ris.NothingSelectedError + else: + # TODO: Maybe add this to the command. Not sure we use it elsewhere in the lib + contents = self.add_save_file_header(contents) + + if options.encryption: + with open(self.filename, "wb") as outfile: + outfile.write( + Encryption().encrypt_file( + json.dumps(contents, indent=2, cls=redfish.ris.JSONEncoder), + options.encryption, + ) + ) + else: + with open(self.filename, "w") as outfile: + outfile.write(json.dumps(contents, indent=2, cls=redfish.ris.JSONEncoder, sort_keys=True)) + self.rdmc.ui.printer("Configuration saved to: %s\n" % self.filename) + + self.cmdbase.logout_routine(self, options) + + # Return code + return ReturnCodes.SUCCESS + + def saveworkerfunction(self, options, instances=None): + """Returns the currently selected type for saving + + :param instances: list of instances from select to save + :type instances: list. + """ + try: + if ( + options.selector is not None + and ( + "bios" in options.selector.lower() + or "hpbaseconfigs" in options.selector.lower() + or "hpebaseconfigs" in options.selector.lower() + ) + ) and (options.multisave is None or options.multisave == ""): + raise KeyError + content = self.rdmc.app.getprops(insts=instances) + try: + contents = [{val[self.rdmc.app.typepath.defs.hrefstring]: val} for val in content] + except KeyError: + try: + contents = [{val["links"]["self"][self.rdmc.app.typepath.defs.hrefstring]: val} for val in content] + except KeyError: + raise iLORisCorruptionError( + "iLO Database seems to be corrupted. Please check. Reboot the server to " "restore\n" + ) + except Exception: + config_path = None + contents = list() + if options.selector is not None: + if options.selector.lower() == "bios." or "bios.v" in options.selector.lower(): + config_path = ["/redfish/v1/systems/1/bios/settings/"] + elif options.selector.lower() == "bios": + config_path = [ + "/redfish/v1/systems/1/bios/settings/", + "/redfish/v1/systems/1/bios/mappings/", + "/redfish/v1/systems/1/bios/oem/hpe/mappings/", + ] + elif "hpbaseconfigs" in options.selector.lower() or "hpebaseconfigs" in options.selector.lower(): + config_path = [ + "/redfish/v1/systems/1/bios/oem/hpe/baseconfigs/", + "/redfish/v1/systems/1/bios/oem/hpe/nvmeof/baseconfigs/", + "/redfish/v1/systems/1/bios/oem/hpe/iscsi/baseconfigs/", + "/redfish/v1/systems/1/bios/oem/hpe/tlsconfig/baseconfigs/", + "/redfish/v1/systems/1/bios/oem/hpe/serverconfiglock/baseconfigs/", + "/redfish/v1/systems/1/bios/oem/hpe/kmsconfig/baseconfigs/", + "/redfish/v1/systems/1/bios/oem/hpe/boot/baseconfigs/", + "/redfish/v1/systems/1/bios/baseconfigs/", + "/redfish/v1/systems/1/bios/nvmeof/baseconfigs/", + "/redfish/v1/systems/1/bios/iscsi/baseconfigs/", + "/redfish/v1/systems/1/bios/tlsconfig/baseconfigs/", + "/redfish/v1/systems/1/bios/serverconfiglock/baseconfigs/", + "/redfish/v1/systems/1/bios/kmsconfig/baseconfigs/", + "/redfish/v1/systems/1/bios/boot/baseconfigs/", + ] + elif "hpebiosmapping" in options.selector.lower(): + config_path = [ + "/redfish/v1/systems/1/bios/mappings", + "/redfish/v1/systems/1/bios/oem/hpe/mappings/", + ] + result = None + for b in config_path: + try: + result = self.rdmc.app.get_handler(b, silent=True, service=True) + except: + pass + if result is not None: + if result.status == 200: + d = {b: result.dict} + contents.append(d) + + type_string = self.rdmc.app.typepath.defs.typestring + + templist = list() + srnum_list = list() + + for content in contents: + typeselector = None + pathselector = None + + for path, values in content.items(): + # if "Managers/1/EthernetInterfaces/1" not in path: + for dictentry in list(values.keys()): + if dictentry == type_string: + typeselector = values[dictentry] + pathselector = path + del values[dictentry] + if dictentry in [ + "IPv4Addresses", + "IPv6Addresses", + "IPv6AddressPolicyTable", + "MACAddress", + "StaticNameServers", + # "AutoNeg", + # "FullDuplex", + "SpeedMbps", + ]: + del values[dictentry] + if dictentry in [ + "IPv6StaticAddresses", + "IPv6StaticDefaultGateways", + "IPv4StaticAddresses", + ]: + if values[dictentry]: + del values[dictentry] + if dictentry in ["IPv4", "IPv6", "DHCPv6", "DHCPv4"]: + if "DNSServers" in values[dictentry]: + del values[dictentry]["DNSServers"] + del values["Oem"]["Hpe"][dictentry]["DNSServers"] + if "UseDNSServers" in values[dictentry]: + del values[dictentry]["UseDNSServers"] + del values["Oem"]["Hpe"][dictentry]["UseDNSServers"] + + if values: + skip = False + if "SerialNumber" in values and values["SerialNumber"] is not None and values["SerialNumber"] != "": + if values["SerialNumber"] in srnum_list: + skip = True + else: + srnum_list.append(values["SerialNumber"]) + tempcontents = dict() + + if not skip: + if typeselector and pathselector: + tempcontents[typeselector] = {pathselector: values} + else: + raise InvalidFileFormattingError("Missing path or selector in input file.") + + templist.append(tempcontents) + + return templist + + def nested_sort(self, data): + """Helper function to sort all dictionary key:value pairs + + :param data: dictionary to sort + :type data: dict. + """ + + for key, value in data.items(): + if isinstance(value, dict): + data[key] = self.nested_sort(value) + + data = OrderedDict(sorted(list(data.items()), key=lambda x: x[0])) + + return data + + def savevalidation(self, options): + """Save method validation function + + :param options: command line options + :type options: list. + """ + + if options.multisave: + options.multisave = options.multisave.replace('"', "").replace("'", "") + options.multisave = options.multisave.replace(" ", "").split(",") + if not len(options.multisave) >= 1: + raise InvalidCommandLineError("Invalid number of types in multisave option.") + options.selector = options.multisave[0] + options.multisave = options.multisave[1:] + + self.cmdbase.login_select_validation(self, options) + + # filename validations and checks + self.filename = None + + if options.filename and len(options.filename) > 1: + raise InvalidCommandLineError("Save command doesn't support multiple filenames.") + elif options.filename: + self.filename = options.filename[0] + elif self.rdmc.config: + if self.rdmc.config.defaultsavefilename: + self.filename = self.rdmc.config.defaultsavefilename + + if not self.filename: + self.filename = __filename__ + + def add_save_file_header(self, contents): + """Helper function to retrieve the comments for save file + + :param contents: current save contents + :type contents: list. + """ + templist = list() + + headers = self.rdmc.app.create_save_header() + templist.append(headers) + + for content in contents: + templist.append(content) + + return templist + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + customparser.add_argument( + "-f", + "--filename", + dest="filename", + help="Use this flag if you wish to use a different filename than the default one. " + "The default filename is %s." % __filename__, + action="append", + default=None, + ) + + customparser.add_argument( + "--selector", + dest="selector", + help="Optionally include this flag to select a type to run the current command on. " + "Use this flag when you wish to select a type without entering another command, " + "or if you wish to work with a type that is different from the one currently " + "selected.", + default=None, + # required=True, + ) + customparser.add_argument( + "--multisave", + dest="multisave", + help="Optionally include this flag to save multiple types to a single file. " + "Overrides the currently selected type.\n\t Usage: --multisave type1.,type2.,type3.", + default="", + ) + customparser.add_argument( + "--filter", + dest="filter", + help="Optionally set a filter value for a filter attribute. This uses the provided " + "filter for the currently selected type. Note: Use this flag to narrow down your " + "results. For example, selecting a common type might return multiple objects that " + "are all of that type. If you want to modify the properties of only one of those " + "objects, use the filter flag to narrow down results based on properties." + "\n\t Usage: --filter [ATTRIBUTE]=[VALUE]", + default=None, + ) + customparser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the displayed output to " + "JSON format. Preserving the JSON data structure makes the information easier to " + "parse.", + default=False, + ) + customparser.add_argument( + "--encryption", + dest="encryption", + help="Optionally include this flag to encrypt/decrypt a file using the key provided.", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/SelectCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/SelectCommand.py new file mode 100644 index 0000000..0b7a799 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/SelectCommand.py @@ -0,0 +1,143 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Select Command for RDMC""" + +from redfish.ris import NothingSelectedError + +try: + from rdmc_helper import LOGGER, InvalidCommandLineErrorOPTS, ReturnCodes +except ImportError: + from ilorest.rdmc_helper import LOGGER, InvalidCommandLineErrorOPTS, ReturnCodes + + +class SelectCommand: + """Constructor""" + + def __init__(self): + self.ident = { + "name": "select", + "usage": None, + "description": "Selects the Redfish/HpRest type to be used.\nIn order to " + "remove the need of including the version while selecting you" + " can simply enter the type name until the first period\n\t" + "example: select HpBios.\n" + "Run without an argument to " + "display the currently selected type\n\texample: select", + "summary": "Selects the object type to be used.", + "aliases": ["sel"], + "auxcommands": ["LoginCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def selectfunction(self, line): + """Main select worker function + + :param line: command line input + :type line: string. + """ + + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.selectvalidation(options) + + if args: + if options.ref: + LOGGER.warning("Patches from current selection will be cleared.") + selector = args[0] + selections = self.rdmc.app.select(selector=selector, path_refresh=options.ref) + + if "storage" in selector.lower(): + storage_url = "/redfish/v1/Systems/1/Storage/" + list_storageid = self.rdmc.app.get_handler(storage_url, silent=True, service=True).dict["Members"] + for val in list_storageid: + storageid_fromurl = val["@odata.id"] + ctr = self.rdmc.app.get_handler(storageid_fromurl, silent=True, service=True).dict + if "Controllers" in ctr: + ctr_url = ctr["Controllers"]["@odata.id"] + self.rdmc.app.get_handler(ctr_url, silent=True, service=True).dict + if self.rdmc.opts.verbose and selections: + templist = list() + self.rdmc.ui.printer("Selected option(s): ") + + for item in selections: + if item.type not in templist: + templist.append(item.type) + + self.rdmc.ui.printer("%s\n" % ", ".join(map(str, templist))) + + else: + selector = self.rdmc.app.selector + + if selector: + sellist = [sel for sel in self.rdmc.app.monolith.typesadded if selector.lower() in sel.lower()] + self.rdmc.ui.printer("Current selection: ") + self.rdmc.ui.printer("%s\n" % ", ".join(map(str, sellist))) + else: + raise NothingSelectedError + + self.cmdbase.logout_routine(self, options) + + def selectvalidation(self, options): + """Select data validation function + + :param options: command line options + :type options: list. + """ + + self.cmdbase.login_select_validation(self, options) + + def run(self, line, help_disp=False): + """Wrapper function for main select function + + :param line: entered command line + :type line: list. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + self.selectfunction(line) + + # Return code + return ReturnCodes.SUCCESS + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--refresh", + dest="ref", + action="store_true", + help="Optionally reload the data of selected type and clear " "patches from current selection.", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/SetCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/SetCommand.py new file mode 100644 index 0000000..c34dcd0 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/SetCommand.py @@ -0,0 +1,472 @@ +### +# Copyright 2016-2023 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Set Command for RDMC""" +import json +import os +import sys + +import redfish.ris + +from redfish.rest.connections import SecurityStateError + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidOrNothingChangedSettingsError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + ReturnCodes, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidOrNothingChangedSettingsError, + ) + +from redfish.ris.rmc_helper import NothingSelectedError + + +class SetCommand: + """Constructor""" + + def __init__(self): + self.ident = { + "name": "set", + "usage": None, + "description": "Setting a " + "single level property example:\n\tset property=value\n\n\t" + "Setting multiple single level properties example:\n\tset " + "property=value property=value property=value\n\n\t" + "Setting a multi level property example:\n\tset property/" + "subproperty=value", + "summary": "Changes the value of a property within the" " currently selected type.", + "aliases": [], + "auxcommands": [ + "CommitCommand", + "RebootCommand", + "RawPatchCommand", + "SelectCommand", + "LogoutCommand", + ], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def setfunction(self, line, skipprint=False): + """Main set worker function + + :param line: command line input + :type line: string. + :param skipprint: boolean to determine output + :type skipprint: boolean. + """ + + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if not self.rdmc.interactive and not self.rdmc.app.cache: + raise InvalidCommandLineError("The 'set' command is not useful in " "non-interactive and non-cache modes.") + + self.setvalidation(options) + ilover = self.rdmc.app.getiloversion() + if ilover >= 7.000 and ("HighSecurity" in args[0] or "Production" in args[0]): + self.rdmc.ui.error( + "HighSecurity and Production modes are not supported on iLO 7 , Please use SecureStandard instead \n" + ) + raise SecurityStateError( + "HighSecurity and Production modes are not supported on iLO 7 , Please use SecureStandard instead" + ) + else: + if "SecureStandard" in args[0] and ilover < 7.000: + self.rdmc.ui.error( + "SecureStandard mode is not supported on iLO 6 and below , Please use HighSecurity instead \n" + ) + raise SecurityStateError( + "SecureStandard mode is not supported on iLO 6 and below , Please use HighSecurity instead \n" + ) + _ = args[0].find("HighSecurity") + if ilover >= 7.000: + _ = args[0].find("SecureStandard") + fsel = None + fval = None + if args: + if "ethernetinterface" in self.rdmc.app.selector.lower() and "ipv4addresses" in args[0].lower(): + raise InvalidCommandLineError( + "For security reasons this request is discarded. " + "Use `rawpatch` or the `load --force_network_config` command " + "to modify the IP configuration of the ilO.\n" + ) + if options.filter: + try: + (fsel, fval) = str(options.filter).strip("'\" ").split("=") + (fsel, fval) = (fsel.strip(), fval.strip()) + except: + raise InvalidCommandLineError( + "Invalid filter" " parameter format [filter_attribute]=[filter_value]" + ) + + if any([s.lower().startswith("adminpassword=") for s in args]) and not any( + [s.lower().startswith("oldadminpassword=") for s in args] + ): + raise InvalidCommandLineError( + "'OldAdminPassword' must also " + "be set with the current password \nwhen " + "changing 'AdminPassword' for security reasons." + ) + count = 0 + for arg in args: + if arg: + if len(arg) > 2: + if ('"' in arg[0] and '"' in arg[-1]) or ("'" in arg[0] and "'" in arg[-1]): + args[count] = arg[1:-1] + elif len(arg) == 2: + if (arg[0] == '"' and arg[1] == '"') or (arg[0] == "'" and arg[1] == "'"): + args[count] = None + count += 1 + if not self.rdmc.app.selector: + raise NothingSelectedError + if "." not in self.rdmc.app.selector: + self.rdmc.app.selector = self.rdmc.app.selector + "." + if self.rdmc.app.selector: + if self.rdmc.app.selector.lower().startswith("bios."): + if "attributes" not in arg.lower(): + arg = "Attributes/" + arg + + try: + (sel, val) = arg.split("=") + sel = sel.strip().lower() + val = val.strip("\"'") + + if val.lower() == "true" or val.lower() == "false": + val = val.lower() in ("yes", "true", "t", "1") + except: + raise InvalidCommandLineError("Invalid set parameter format. [Key]=[Value]") + + newargs = list() + + if "/" in sel and "/" not in str(val): + newargs = sel.split("/") + elif "/" in sel: + items = arg.split("=", 1) + newargs = items[0].split("/") + if not isinstance(val, bool): + if val: + if val[0] == "[" and val[-1] == "]": + val = val[1:-1].split(",") + payload = {newargs[-1]: val} if newargs else {sel: val} + if newargs: + for key in newargs[:-1][::-1]: + payload = {key: payload} + try: + contents = self.rdmc.app.loadset( + seldict=payload, + latestschema=options.latestschema, + fltrvals=(fsel, fval), + uniqueoverride=options.uniqueoverride, + ) + if not contents: + if not sel.lower() == "oldadminpassword": + raise InvalidOrNothingChangedSettingsError( + "Nothing changed " + "for attribute '%s'.\nPlease check if the attribute is Oem/Hpe Attribute or Read-only " + "or System Unique property or the value trying to set is same or invalid" % sel + ) + elif contents == "No entries found": + raise InvalidOrNothingChangedSettingsError( + "No " "entries found in the current " "selection for the setting '%s'." % sel + ) + elif contents == "reverting": + self.rdmc.ui.error("Removing previous patch and returning to the " "original value.\n") + else: + for content in contents: + self.rdmc.ui.printer("Added the following patch:\n") + self.rdmc.ui.print_out_json(content) + + except redfish.ris.ValidationError as excp: + errs = excp.get_errors() + + for err in errs: + if err.sel and err.sel.lower() == "adminpassword": + types = self.rdmc.app.monolith.types + + for item in types: + for instance in types[item]["Instances"]: + if "hpbios." in instance.maj_type.lower(): + _ = [ + instance.patches.remove(patch) + for patch in instance.patches + if patch.patch[0]["path"] == "/OldAdminPassword" + ] + + if isinstance(err, redfish.ris.RegistryValidationError): + self.rdmc.ui.printer(err.message) + + raise redfish.ris.ValidationError(excp) + + if options.commit: + self.auxcommands["commit"].commitfunction(options) + + if options.reboot and not options.commit: + self.auxcommands["reboot"].run(options.reboot) + + if options.logout: + self.auxcommands["logout"].run("") + + else: + raise InvalidCommandLineError("Missing parameters for 'set' command.\n") + + def patchfunction(self, line): + """Main set worker function + :param line: command line input + :type line: string. + :param skipprint: boolean to determine output + :type skipprint: boolean. + """ + import platform + import tempfile + + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if not self.rdmc.interactive and not self.rdmc.app.cache: + raise InvalidCommandLineError("The 'set' command is not useful in " "non-interactive and non-cache modes.") + + _ = self.rdmc.app.selector + self.setvalidation(options) + if args: + count = 0 + for arg in args: + if arg: + if len(arg) > 2: + if ('"' in arg[0] and '"' in arg[-1]) or ("'" in arg[0] and "'" in arg[-1]): + args[count] = arg[1:-1] + elif len(arg) == 2: + if (arg[0] == '"' and arg[1] == '"') or (arg[0] == "'" and arg[1] == "'"): + args[count] = None + count += 1 + if not self.rdmc.app.selector: + raise NothingSelectedError + if "." not in self.rdmc.app.selector: + self.rdmc.app.selector = self.rdmc.app.selector + "." + if self.rdmc.app.selector: + if self.rdmc.app.selector.lower().startswith("bios."): + if "attributes" not in arg.lower(): + arg = "Attributes/" + arg + + try: + (sel, val) = arg.split("=") + sel = sel.strip() + val = val.strip("\"'") + + if val.lower() == "true" or val.lower() == "false": + val = val.lower() in ("yes", "true", "t", "1") + except: + raise InvalidCommandLineError("Invalid set parameter format. [Key]=[Value]") + + newargs = list() + + if "/" in sel and "/" not in str(val): + newargs = sel.split("/") + elif "/" in sel: + items = arg.split("=", 1) + newargs = items[0].split("/") + + if not isinstance(val, bool): + if val: + if val[0] == "[" and val[-1] == "]": + val = val[1:-1].split(",") + if val.isdigit(): + val = int(val) + patch_data = dict() + payload = {newargs[-1]: val} if newargs else {sel: val} + if "drive" in self.rdmc.app.selector.lower(): + tempdir = "/tmp" if platform.system() == "Darwin" else tempfile.gettempdir() + temp_file = os.path.join(tempdir, "temp_patch.json") + out_file = open(temp_file, "w") + if getattr(options, "filter", None): + filt_arr = options.filter.split("=") + patchpath = filt_arr[-1] + else: + sys.stdout.write("Please provide the actual drive to modify using filter option\n") + return + patch_payload = {patchpath: payload} + json.dump(patch_payload, out_file, indent=6) + out_file.close() + sys.stdout.write("payload %s \n" % patch_payload) + self.auxcommands["rawpatch"].run(temp_file + " --service") + os.remove(temp_file) + elif newargs: + for key in newargs[:-1][::-1]: + if key == "PowerControl": + payload = {key: [payload]} + else: + payload = {key: payload} + patch_data.update(payload) + if "Oem" in key: + if ( + "managernetworkprotocol." in self.rdmc.app.selector + or "thermal." in self.rdmc.app.selector + ): + tempdir = "/tmp" if platform.system() == "Darwin" else tempfile.gettempdir() + temp_file = os.path.join(tempdir, "temp_patch.json") + out_file = open(temp_file, "w") + if "managernetworkprotocol." in self.rdmc.app.selector: + patchpath = self.rdmc.app.typepath.defs.managerpath + "NetworkProtocol/" + elif "thermal." in self.rdmc.app.selector: + patchpath = "/redfish/v1/Chassis/1/Thermal/" + patch_payload = {patchpath: payload} + json.dump(patch_payload, out_file, indent=6) + out_file.close() + sys.stdout.write("payload %s \n" % patch_payload) + self.auxcommands["rawpatch"].run(temp_file + " --service") + self.auxcommands["select"].run(self.rdmc.app.selector + " --refresh") + os.remove(temp_file) + if "PowerControl" in payload.keys(): + import platform + import tempfile + + tempdir = "/tmp" if platform.system() == "Darwin" else tempfile.gettempdir() + temp_file = os.path.join(tempdir, "temp_patch.json") + out_file = open(temp_file, "w") + patch_path = "/redfish/v1/Chassis/1/Power" + patch_payload = {patch_path: payload} + json.dump(patch_payload, out_file, indent=6) + out_file.close() + self.auxcommands["rawpatch"].run(temp_file + " --service") + os.remove(temp_file) + + def run(self, line, skipprint=False, help_disp=False): + """Main set function + + :param line: command line input + :type line: string. + :param skipprint: boolean to determine output + :type skipprint: boolean. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + if ( + ("Oem/Hpe/EnhancedDownloadPerformanceEnabled" in line[0]) + or ("Oem/Hpe/ThermalConfiguration" in line[0]) + or ("Oem/Hpe/FanPercentMinimum" in line[0]) + or ("PowerControl" in line[0]) + or (self.rdmc.app.selector is not None and "drive" in self.rdmc.app.selector.lower()) + ): + self.patchfunction(line) + else: + try: + self.setfunction(line, skipprint=skipprint) + except SecurityStateError: + return ReturnCodes.V1_SECURITY_STATE_ERROR + # Return code + return ReturnCodes.SUCCESS + + def setvalidation(self, options): + """Set data validation function""" + + if self.rdmc.opts.latestschema: + options.latestschema = True + if self.rdmc.config.commit.lower() == "true": + options.commit = True + try: + self.cmdbase.login_select_validation(self, options) + except redfish.ris.NothingSelectedError: + raise redfish.ris.NothingSelectedSetError("") + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--selector", + dest="selector", + help="Optionally include this flag to select a type to run" + " the current command on. Use this flag when you wish to" + " select a type without entering another command, or if you" + " wish to work with a type that is different from the one" + " you currently have selected.", + default=None, + ) + + customparser.add_argument( + "--filter", + dest="filter", + help="Optionally set a filter value for a filter attribute." + " This uses the provided filter for the currently selected" + " type. Note: Use this flag to narrow down your results. For" + " example, selecting a common type might return multiple" + " objects that are all of that type. If you want to modify" + " the properties of only one of those objects, use the filter" + " flag to narrow down results based on properties." + "\t\t\t\t\t Usage: --filter [ATTRIBUTE]=[VALUE]", + default=None, + ) + customparser.add_argument( + "--commit", + dest="commit", + action="store_true", + help="Use this flag when you are ready to commit all pending" + " changes. Note that some changes made in this way will be updated" + " instantly, while others will be reflected the next time the" + " server is started.", + default=None, + ) + customparser.add_argument( + "--reboot", + dest="reboot", + help="Use this flag to perform a reboot command function after" + " completion of operations. For help with parameters and" + " descriptions regarding the reboot flag, run help reboot.", + default=None, + ) + customparser.add_argument( + "--latestschema", + dest="latestschema", + action="store_true", + help="Optionally use the latest schema instead of the one " + "requested by the file. Note: May cause errors in some data " + "retrieval due to difference in schema versions.", + default=None, + ) + customparser.add_argument( + "--uniqueoverride", + dest="uniqueoverride", + action="store_true", + help="Override the measures stopping the tool from writing " "over items that are system unique.", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/StatusCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/StatusCommand.py new file mode 100644 index 0000000..ab96226 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/StatusCommand.py @@ -0,0 +1,203 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Status Command for RDMC""" + +from functools import reduce + +from redfish.ris.utils import merge_dict + +try: + from rdmc_helper import InvalidCommandLineErrorOPTS, ReturnCodes +except ImportError: + from ilorest.rdmc_helper import InvalidCommandLineErrorOPTS, ReturnCodes + + +class StatusCommand: + """Constructor""" + + def __init__(self): + self.ident = { + "name": "status", + "usage": None, + "description": "Run to display all pending changes within" + " the currently\n\tselected type that need to be" + " committed\n\texample: status", + "summary": "Displays all pending changes within a selected type" " that need to be committed.", + "aliases": [], + "auxcommands": ["SelectCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main status worker function + + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.statusvalidation(options) + contents = self.rdmc.app.status() + selector = self.rdmc.app.selector + + if contents and options.json: + self.jsonout(contents) + elif contents: + self.outputpatches(contents, selector) + else: + self.rdmc.ui.printer("No changes found\n") + + # Return code + return ReturnCodes.SUCCESS + + def jsonout(self, contents): + """Helper function to print json output of patches + + :param contents: contents for the selection + :type contents: string. + """ + self.rdmc.ui.printer("Current changes found:\n") + createdict = lambda y, x: {x: y} + totdict = {} + for item in contents: + for keypath, value in item.items(): + path = keypath.split("(")[1].strip("()") + cont = {} + totdict[path] = cont + for content in value: + val = ( + ["List Manipulation"] + if content["op"] == "move" + else [content["value"].strip("\"'")] if len(content["value"]) else [""] + ) + cont = reduce( + createdict, + reversed([path] + content["path"].strip("/").split("/") + val), + ) + merge_dict(totdict, cont) + self.rdmc.ui.print_out_json(totdict) + + def outputpatches(self, contents, selector): + """Helper function for status for use in patches + + :param contents: contents for the selection + :type contents: string. + :param selector: type selected + :type selector: string. + """ + self.rdmc.ui.printer("Current changes found:\n") + for item in contents: + moveoperation = "" + for key, value in item.items(): + if selector and key.lower().startswith(selector.lower()): + self.rdmc.ui.printer("%s (Currently selected)\n" % key) + else: + self.rdmc.ui.printer("%s\n" % key) + + for content in value: + try: + if content["op"] == "move": + moveoperation = "/".join(content["path"].split("/")[1:-1]) + continue + except: + if content[0]["op"] == "move": + moveoperation = "/".join(content[0]["path"].split("/")[1:-1]) + continue + try: + if isinstance(content[0]["value"], int): + self.rdmc.ui.printer("\t%s=%s" % (content[0]["path"][1:], content[0]["value"])) + elif not isinstance(content[0]["value"], bool) and not len(content[0]["value"]) == 0: + if content[0]["value"][0] == '"' and content[0]["value"][-1] == '"': + self.rdmc.ui.printer( + "\t%s=%s" + % ( + content[0]["path"][1:], + content[0]["value"][1:-1], + ) + ) + else: + self.rdmc.ui.printer("\t%s=%s" % (content[0]["path"][1:], content[0]["value"])) + else: + output = content[0]["value"] + + if not isinstance(output, bool): + if len(output) == 0: + output = '""' + + self.rdmc.ui.printer("\t%s=%s" % (content[0]["path"][1:], output)) + except: + if isinstance(content["value"], int): + self.rdmc.ui.printer("\t%s=%s" % (content["path"][1:], content["value"])) + elif ( + content["value"] + and not isinstance(content["value"], bool) + and not len(content["value"]) == 0 + ): + if content["value"][0] == '"' and content["value"][-1] == '"': + self.rdmc.ui.printer("\t%s=%s" % (content["path"][1:], content["value"])) + else: + self.rdmc.ui.printer("\t%s=%s" % (content["path"][1:], content["value"])) + else: + output = content["value"] + + if output and not isinstance(output, bool): + if len(output) == 0: + output = '""' + + self.rdmc.ui.printer("\t%s=%s" % (content["path"][1:], output)) + self.rdmc.ui.printer("\n") + if moveoperation: + self.rdmc.ui.printer("\t%s=List Manipulation\n" % moveoperation) + + def statusvalidation(self, options): + """Status method validation function""" + + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/TypesCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/TypesCommand.py new file mode 100644 index 0000000..c11c110 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/TypesCommand.py @@ -0,0 +1,125 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Types Command for RDMC""" + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class TypesCommand: + """Constructor""" + + def __init__(self): + self.ident = { + "name": "types", + "usage": None, + "description": "Run to display currently " "available selectable types\n\tExample: types", + "summary": "Displays all selectable types within the currently logged in server.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def typesfunction(self, line, returntypes=False): + """Main types worker function + + :param line: command line input + :type line: string. + :param returntypes: flag to determine if types should be printed + :type returntypes: boolean. + """ + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.typesvalidation(options) + + if not args: + typeslist = list() + typeslist = sorted(set(self.rdmc.app.types(options.fulltypes))) + + if not returntypes: + self.rdmc.ui.printer("Type options:\n") + + for item in typeslist: + self.rdmc.ui.printer("%s\n" % item) + else: + return typeslist + else: + raise InvalidCommandLineError("The 'types' command does not take any arguments.") + + self.cmdbase.logout_routine(self, options) + + def run(self, line, help_disp=False): + """Wrapper function for types main function + + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + self.typesfunction(line) + + # Return code + return ReturnCodes.SUCCESS + + def typesvalidation(self, options): + """types method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--fulltypes", + dest="fulltypes", + action="store_true", + help="Optionally include this flag if you would prefer to " + "return the full type name instead of the simplified versions" + " (Redfish only option).", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/CommitCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/CommitCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0e97bb7dc29caf32c94ebcb396e068374b7c8787 GIT binary patch literal 3610 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/GetCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/GetCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..05ff597a9063197783e384915bab20c78d68548b GIT binary patch literal 14195 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 a7?dQqb;d9*>aE&EVz2sXaO1Lm*8DH1oKZOd literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/ListCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/ListCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3870bf0018d457b2457f7b03abe7f31e6a424225 GIT binary patch literal 4796 zcmb7I&668P6`wDSq>)y(*Pm;LFeE^t!YkPc2XHwdW^Jbo@j66nLN+l|V|8ma@@Pis znc203whFMh;ZtrDhutGpRPnEbBYowRJ5+(8D*Rs0%&vBw9GI@Gb`n}(KZ{wvU zN5l6@^;f~`7d7qg)LHy$=)8lH{1O$@Hnmxc>C6cAv9W24%}sM`ZCc~XW<}RN)S|PN z#_j2MbdCPhy6TJTKGGt6M|)ReCbOPu%z9#M)>x&dwe8v2_ktvK*W&TmkC;1%h5NzH zyK7(IYOQTaAR4t}ew0kW55gUBu@l8v=E zN>Y*a(^&L%99e$UuA;1=Bv(*DKpNe_tSy~YQ0zb2bIpU8QDY9Zk(y8F*J2uOs;)~b z#8tDu-VBmS=uZs!wE*TC&Acw_iMR0AX>T%?4l3((6f^nDR^FrmuskcEJ^f{|}}*(g+jj zyvxhyYTMF^{4tl6Eb+IvY>|+J%e3^`KkSyRH}%<>#ck!5+kLW&@@t_{M^U=# z8k#mYgfrJh+Md1-Q%{YN+0$kXj97b>xi;7LjZchSbJqeWT(q>*POAfB+AV=$u5W9} zcbP%I;(N5));@xUr#3U6=)VO#%*|0v{DA7c`o0#yE=JbK$$PsMX3ZXS#4hzDXoNcSAS=$ z;8d?g{k>Dn+1J5Ob+<3W}80E0zC~!b^ZQ=`mjM)gFQvw9_fK-z#JzS^ID_;hv1%P!9=4Qs~ zaAvQr4tY3{nmmzkz+;e33EzS~ZyW3Df{^%&FY&dF=lW~U^;f>2k>~nbvm1pMaR)(| zf^4mXA%_ynN zUh4|Z27uG<_SNp)90!u_)o!n#yq8nn-Dn#?q`V{TBnSaLM;r_ptcB7;N#M-208jIv z4#m}XVQPCC6xaC7_|)j-a0GO!gz*j+ZBrVZD^h!k^xzYVILTxbwbBC8ny5&oq8O=&~A;72+WJYnk5 zi-`)|S?%3lTf5ckiPO|uCQ$X%TF)0-v{?|F(&_icJJbS2n35u0M#BO{1ySpzZe5^J#&&urj3tvd<7(PYbN48gt<@afs_zY^mk zzH49Ganap0KPzY6k?F3-0u$bROmt{&h3S;6f2J!Kh)O{Yb)%MpPF zi8~1WEec=r<*uIx#26@J)H0|p-B28L-22Jm?wuizj)cNT&mstc-MX+gPAqro)Uzlv)Q2pYoYfLs;~23!UC0}+o^5FNuUQXpOs3I>P%Ha`f4I{v0M%e^jKDPxwgZc3c+kDB%i9O+a?iac|?q zA|<(89Hzvo1d8ZFndLax8m8Do>7F~r#sC?N8$VQ$HVA?^eZf_-qVgp4Xubzf7`F8%hZjDz?Z`!Hi4U0>d$7N`r)^Q>PCC zLF{nNEg#AK_{PS@2X}saf8!P+ji29m@BXa^2ysRf;waBUSWI3k7TiPD$!GfuubC%! zi%NS;;rj4pTRGL_Nsv+!Sy_r`i=^95JQG5W$nT^RYdRy?e z6WOGxa_%RR|&z)x}=m1SFc6YfxDUdX-de_4&9U9(_ zc$SB9jXUE>EYkdcG^dg2;%(E;;x4*r;dVugiacxAb7tPA;5?xW)H-DtFX>JDCEfUP Gx&A-q)RWKv literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/LoadCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/LoadCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0441327763e0e6a24ed7898374c068d2c9c4bf10 GIT binary patch literal 13033 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/LoginCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/LoginCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..90c894ebaaf1bb29ab50a4684143e0ab9086591a GIT binary patch literal 14175 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/LogoutCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/LogoutCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c66af3bf9583d97d1a8a06041e53218a5f621358 GIT binary patch literal 2117 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 U9`m?Jl9!)1Yo+t1_4T6nf8?sXFaQ7m literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/ResultsCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/ResultsCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9bf55ffb4bc4c0f597f057feb03670bbb03dd19d GIT binary patch literal 4306 zcma)9-H+4Q6~EVZ9Oq*)nGDPaEQ6^EYSblxtwhxbA=qKqA}zy;fGE@5x+d3?aY$@) zuQM}oooZF6iqs-eRq9h!4Uatbp-=r!?n7VtwEqJApy$|5GBdDM9r@uO&eXj>X3Q5jlVKR3{~ z^g(_rKQOioN*)q#Q6o-abdeJLC1Z+5$2=k)-6Nk7mSg&J!t`g#R*B`?q;5nj_Z%_o zhr(R<2Lsz<=C;pG&IX-t;54L8<=am=j4^tY2H93wP4JGR$#glTVw4mWL6ID8i>+jL75y5(Hk={ub;Yu0tCdG^4OxuLMT zjx3>CxEqA7@5#Iv!W=%5dC;>h93e~ga6f}k)N?ZDGRF&LzB6Etpg5^;ek_|LzOvvu+a%qi5F`i%Yx z95~kamC#@swqB5fLae@~l(=LJtM{~Cu~+Jqdvh$e3NHRc;Xgeh%`cO&enet`B=6OZ z$O`X`D&nYU8AerDX_Xwzvoh|Q&N`^RCS!xmvC4B28#l=_IxfKN^z2UaSXT{51F3;b`tA={MIU_T=+B>T-pi*fFt#unpZ zZ}HF`CjbR_U5clLGgSfclcT?180 zU(u%~-2d>oPtSHv5L-T2VILt*aSl##Z(Ny5&%~7_f<4jMI2Tt|3G^?ItKn*f^r=IL zpMIwFK8mYMWh-oroqef|7hrGkkU-f1^v}Gaqd!wJuEA!!GuCRHQ`?a!4(sMjYR@+0XI(uM(SE;WdOs2k8KNm%x*+8;LooQ49mhIai z5QO>Z?Yr%aXp2QNds>0b?Sa{cVAV23$X&0C#BB5KZ~#;$%mAW(v zc0|g>ok+iUamVQgl0+Y895RV9Ci8*eJwG%<`w7spH=1qJ_~sovZ)r2q-F8Q~%_#RN zFh4Y#Nju6lu`P9APvA&dYXc95?a=4If$P4v?RJlZFa;PX2X7mhX$^`l1gEb`V;V!a z0w0Eu2G#|b{$6>iK)_O?!gZh7q1|wqG=vj|0EFNe2_f9)L;xZ4jUtuCC8-4fa6;c{ zu>xac@oL`{Aw+`U+5_AY_g^E?g<~|zhhF1q-|yIcaSbYyDVz6U?L5Xjx8uMa-9AA7 z-hD76BjXAaisU}!F|c5d^k@$_6GAlH>ZO|9NV(6?!??Q2agJ2&Adsc56Iu{yF^l2n zK+I2KfuV@wHTZX-_!+#(`Aq^!aDCB|#vMmsG!&73TYz?2sdiejn5f|f=k_SUD$>mJ zto4?*qSCCV71bw}kcIq!JG-tw6j^+qME_Q?7^&w)@m5`vb6~$o(q*AmWOW8Bh!97PJbOsyyZpbwhEWq(FX-pD68Ea$?nqU#j47SKvJ2 zk5FiOk?N4^EYT|bique)e`&e_H4S7ndV#V%#YsMepF6-`O0=7;0$u=#A~R=JU{1{KJ=V|k z)|xUjYSzr8Q(A8&d_NtFUNPhR&AO5r%Q6^?>shIRTeIDvAFYPp#v);w8Qq{}ehY6x zH#I#nk0Wv1$=<^SZ8pILwH;HTAsQJzN#2v8^Sg%}2oS>J1dHS=&vW*sS0C7}H|>27 zsm@S@K<){P9D~dCf?;?JtfRxzX&=CB)n?2}ahnEQs|)THWT?sV;gycTC+C4;Kw;CV ze?Taa)-)Z=QHj=$!Fg=>W}V)u8~8yv}??w2Yg0;iO;R$$*51m{Z cS5pkGVeC)bOV!Z literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/SaveCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/SaveCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f137bffe19bbd38c27d45a1f9145f42b7554acd4 GIT binary patch literal 10278 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/COMMANDS/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..890aed4f7efff752e6be243e5b683c61b7197f1e GIT binary patch literal 199 zcmd1j<>g`k0wwn9Oc4DTL?8o3AjbiSi&=m~3PUi1CZpdpP7@do12)In4VgsUzVCzrk|6Uq+d{3l98WhtY>JTUz}Nzs#}nl zoDEa~R$Y`@T%w;^QIeWhoSC0jtncja>+9&}609E|pP83g5+AQuP 100: + raise InvalidCommandLineError("Specify the correct value (1-100)" " to configure PMM") + if options.interleave: + if options.interleave.lower() not in ["on", "off"]: + raise InvalidCommandLineError( + "Specify the correct value to set interleave" + " state of persistent memory regions\n\n" + self.ident["usage"] + ) + options.interleave = options.interleave.lower() + + if options.proc and not options.memorymode and not options.interleave: + raise InvalidCommandLineError( + "Use '-m|--memory-mode' flag to specify the size in percentage" + " or '-i|--pmem-interleave' flag to set interleave" + " state of persistent memory regions" + ) + + # If not 100% memorymode, -i flag is mandatory to interleave memroy regions. + if 0 <= options.memorymode < 100 and not options.interleave: + raise InvalidCommandLineError( + "Use '-i | --pmem-interleave' flag to" " specify the interleave state of persistent" " memory regions" + ) + if options.proc: + for proc_id in options.proc: + if not proc_id.isdigit(): + raise InvalidCommandLineError("Specify the correct processor id") + + def definearguments(self, customparser): + """ + Wrapper function for new command main function + :param customparser: command line input + :type customparser: parser + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-m", + "--memory-mode", + dest="memorymode", + type=int, + help="Percentage of the total capacity to configure all PMMs to MemoryMode." + " This flag is optional. If not specified," + " by default configuration will be applied with 0%% Volatile." + " To interleave persistent memory regions, use this flag in conjunction with" + " the --pmem-interleave flag. To configure all the PMMs on specific processor," + " use this flag in conjunction with the --proc flag.", + default=0, + ) + + customparser.add_argument( + "-i", + "--pmem-interleave", + dest="interleave", + help="Indicates whether the persistent memory regions should be interleaved or not.", + default=None, + ) + + customparser.add_argument( + "-pid", + "--proc", + nargs=1, + action=_ParseOptionsList, + dest="proc", + help="To apply selected configuration on specific processors, " + "supply a comma-separated list of Processor IDs (without spaces) where " + "p=processor id. This flag is optional. If not specified, " + "by default configuration will be applied to all the Processors.", + ) + + customparser.add_argument( + "-f", + "--force", + action="store_true", + dest="force", + help="Allow the user to force the configuration " "by automatically accepting any prompts.", + default=False, + ) + + @staticmethod + def warn_existing_chunks_and_tasks(self, memory_chunk_tasks, memory_chunks): + """ + Checks for existing Memory Chunks and Pending Configuration Task resources on + a server where a user is trying to selected configuration + :param memory_chunk_tasks: Pending Configuration Tasks + :type memory_chunk_tasks: list + :memory_chunks: Memory Chunks in the existing configuration + :type memory_chunks: list + :returns: None + """ + # If Memory Chunks exist, display Existing configuration warning + if memory_chunks: + self.rdmc.ui.warn( + "Existing configuration found. Proceeding with applying a new " + "configuration will result in overwriting the current configuration and " + "cause data loss.\n" + ) + # If Pending Configuration Tasks exist, display warning + if memory_chunk_tasks: + self.rdmc.ui.printer( + "Warning: Pending configuration tasks found. Proceeding with applying " + "a new configuration will result in overwriting the pending " + "configuration tasks.\n" + ) + # Raise a NoChangesFoundOrMade exception when either of the above conditions exist + if memory_chunks or memory_chunk_tasks: + # Line feed for proper formatting + raise NoChangesFoundOrMadeError( + "\nFound one or more of Existing Configuration or " + "Pending Configuration Tasks. Please use the " + "'--force | -f' flag with the same command to " + "approve these changes." + ) + return None + + def delete_existing_chunks_and_tasks(self, memory_chunk_tasks, memory_chunks): + """ + Delete existing Memory Chunks and Pending Configuration Tasks + :param memory_chunk_tasks: Pending Configuration Tasks + :type memory_chunk_tasks: list + :memory_chunks: Memory Chunks in the existing configuration + :type memory_chunks: list + :returns: None + """ + # Delete any pending configuration tasks + if memory_chunk_tasks: + self.auxcommands["clearpmmpendingconfig"].delete_tasks(memory_chunk_tasks) + # Delete any existing configuration + if memory_chunks: + for chunk in memory_chunks: + data_id = chunk.get("@odata.id") + resp = self._rest_helpers.delete_resource(data_id) + if not resp: + raise NoChangesFoundOrMadeError("Error occurred while deleting " "existing configuration") + return None + + @staticmethod + def get_valid_processor_list(input_proc_list, domain_members): + """ + Function to check processors specified by user are valid or not + :param domain_members: Memory Resources + :type input_proc_list: List + :type domain_members: Dict + :returns: List of valid processors in string format (ex: [PROC1MemoryDomain]) + """ + proc_list = [] + index = 0 + invalid_proc_list = [] + # Create list with valid processors based on 'Id' attribute. + for member in domain_members: + proc_list.append(member["Id"]) + + for index, proc_id in enumerate(input_proc_list): + temp_proc_id = "PROC" + str(proc_id) + "MemoryDomain" + if temp_proc_id not in proc_list: + invalid_proc_list.append(proc_id) + else: + input_proc_list[index] = temp_proc_id + + # Raise execption if given proc id is not exist. + if invalid_proc_list: + if len(invalid_proc_list) == 1: + raise NoChangesFoundOrMadeError( + "Specified processor number {proc_list} is invalid".format(proc_list=invalid_proc_list[0]) + ) + else: + raise NoChangesFoundOrMadeError( + "Specified processor numbers {proc_list} are invalid".format(proc_list=",".join(invalid_proc_list)) + ) + + return input_proc_list + + @staticmethod + def filter_memory_chunks(memory_chunks, domain_members, proc_list): + """ + Filter memory chunks based on specified processor list + :param memory_chunks: list of all memory chunks + :param domain_members: dict of memory resources + :param proc list: List of specified processors + :Retrun: List of memory chunks corresponding to specified processors + """ + all_chunks = list() + for member in domain_members: + proc_id = member["Id"] + if not proc_list or (proc_id in proc_list): + data_id = member.get("MemoryChunks").get("@odata.id") + all_chunks += [chunk for chunk in memory_chunks if data_id in chunk.get("@odata.id")] + + return all_chunks + + @staticmethod + def get_post_data(config_data, interleavable_memory_sets): + """ + Create post body based on config data + :param config_data: dict with user input + :type config_data: dict + :param interleavable_memory_sets: List of interleavable sets + :type interleavable_memory_sets: List + :returns: Returns post data + """ + + body = { + "AddressRangeType": "PMEM", + "InterleaveSets": [], + "Oem": {"Hpe": {"MemoryChunkSizePercentage": 100 - config_data["size"]}}, + } + # Get the list of interleave sets based on the configuration + if config_data["pmeminterleave"] == "on" or config_data["size"] == 100: + # If persistent memory regions are interleaved or if it's 100% MemoryMode, + # choose the list with maximum entries. + interleave_sets = [max(interleavable_memory_sets, key=lambda x: len(x["MemorySet"]))] + else: + # If persistent memory regions are not interleaved, + # choose all the lists with exactly one entry. + interleave_sets = [il_set for il_set in interleavable_memory_sets if len(il_set["MemorySet"]) == 1] + + # Using in-place update to change the interleave sets format. + # Replace 'MemorySet' with 'Memory' for each MemorySet in interleave_sets. + for index, interleavableset in enumerate(interleave_sets): + interleave_sets[index] = [ + {"Memory": {"@odata.id": str(memory_region["@odata.id"])}} + for memory_region in interleavableset["MemorySet"] + ] + + # Create post body for each interleave sets from post body template. + post_data = [] + for interleaveset in interleave_sets: + current_body = deepcopy(body) + current_body["InterleaveSets"] = interleaveset + post_data.append(current_body) + + return post_data + + def configure_pmm(self, options): + """ + Applies selected configuration to the PMMs + :param options: options specified by user + :returns: None + """ + # Retrieve Memory Chunks and Task Resources from server. + ( + task_members, + domain_members, + memory_chunks, + ) = self._rest_helpers.retrieve_task_members_and_mem_domains() + + # Filter Task Resources to include only Pending Configuration Tasks. + memory_chunk_tasks = self._rest_helpers.filter_task_members(task_members) + + if not domain_members: + raise NoContentsFoundForOperationError( + "Failed to retrieve Memory Domain Resources, please check if persistent memory is present/configured" + ) + + # Dict with input config data + config_data = { + "size": options.memorymode, + "pmeminterleave": options.interleave, + "proc": options.proc, + } + # Check for given processor id list is valid or not. + if options.proc: + config_data["proc"] = self.get_valid_processor_list(config_data["proc"], domain_members) + memory_chunks = self.filter_memory_chunks(memory_chunks, domain_members, config_data["proc"]) + + # In case of 100% Volatile, Interleaving memory regions is not applicable. + if ( + config_data["size"] == 100 + and config_data["pmeminterleave"] + and config_data["pmeminterleave"].lower() == "on" + ): + raise InvalidCommandLineError( + "Selected configuration is invalid. " "Interleaving not supported in 100% volatile." + ) + + if options.force: + self.delete_existing_chunks_and_tasks(memory_chunk_tasks, memory_chunks) + else: + self.warn_existing_chunks_and_tasks(self, memory_chunk_tasks, memory_chunks) + + for member in domain_members: + proc_id = member["Id"] + # If given proc list is not empty, applies configuration to selected processors + if not config_data["proc"] or (proc_id in config_data["proc"]): + path = member["MemoryChunks"].get("@odata.id") + data = self.get_post_data(config_data, member["InterleavableMemorySets"]) + for body in data: + resp = self._rest_helpers.post_resource(path, body) + if resp is None: + raise NoChangesFoundOrMadeError("Error occurred while applying configuration") + + # Display warning + self.rdmc.ui.printer("\nConfiguration changes require reboot to take effect.\n") + + # Display pending configuration + self.auxcommands["showpmmpendingconfig"].show_pending_config(type("MyOptions", (object,), dict(json=False))) + return None diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ApplyPmemConfigCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ApplyPmemConfigCommand.py new file mode 100644 index 0000000..fd7ba0a --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ApplyPmemConfigCommand.py @@ -0,0 +1,357 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Command to apply a pre-defined configuration to PMM""" +from __future__ import absolute_import + +from copy import deepcopy + +try: + from rdmc_helper import ( + LOGGER, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoChangesFoundOrMadeError, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + ReturnCodes, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + LOGGER, + NoChangesFoundOrMadeError, + NoContentsFoundForOperationError, + ) + +from .lib.DisplayHelpers import DisplayHelpers +from .lib.RestHelpers import RestHelpers + + +class ApplyPmemConfigCommand: + """ + Command to apply a pre-defined configuration to PMM + """ + + # Available configIDs + config_ids = [ + { + "name": "MemoryMode", + "description": "Configure all the PMMs to 100% Memory Mode.", + "totalPmemPercentage": 0, + "pmemIntereleaved": False, + }, + { + "name": "PmemInterleaved", + "description": "Configure all PMMs to 100% Persistent. " + "Interleave the Persistent memory regions within each processor.", + "totalPmemPercentage": 100, + "pmemIntereleaved": True, + }, + { + "name": "PmemNotInterleaved", + "description": "Configure all PMMs to 100% Persistent. " + "The Persistent memory regions are not interleaved.", + "totalPmemPercentage": 100, + "pmemIntereleaved": False, + }, + ] + + def __init__(self): + self.ident = { + "name": "applypmmconfig", + "usage": None, + "description": "Applies a pre-defined configuration to PMM\n" + "\texample: applypmmconfig --pmmconfig MemoryMode\n", + "summary": "Applies a pre-defined configuration to PMM.", + "aliases": [], + "auxcommands": [ + "ShowPmemPendingConfigCommand", + "ClearPendingConfigCommand", + ], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + self._display_helpers = DisplayHelpers() + + def definearguments(self, customparser): + """ + Wrapper function for new command main function + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-C", + "--pmmconfig", + action="store", + type=str, + dest="config", + help="Specify one of the pre-defined configIDs to apply" " to all Persistent Memory Modules.", + default=None, + ) + + customparser.add_argument( + "-L", + "--list", + action="store_true", + dest="list", + help="Display a list of available pre-defined configIDs" " along with a brief description.", + default=False, + ) + + customparser.add_argument( + "-f", + "--force", + action="store_true", + dest="force", + help="Allow the user to force the configuration " "by automatically accepting any prompts.", + default=False, + ) + + def run(self, line, help_disp=False): + """ + Wrapper function for new command main function + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + LOGGER.info("PMM Apply Pre-Defined Configuration: %s", self.ident["name"]) + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineError("Failed to parse options") + if args: + self.validate_args(options) + self.validate_options(options) + self.apply_pmm_config(options) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + @staticmethod + def validate_args(options): + """ + Produces relevant error messages when unwanted extra arguments are specified with flags. + """ + if options.config: + raise InvalidCommandLineError("'config | -C' expects a single argument") + else: + raise InvalidCommandLineError("Chosen flag doesn't expect additional arguments") + + def validate_options(self, options): + """ + Validate whether options specified by user are valid. + :param options: options specified by the user. + :type options: instance of OptionParser class. + """ + # Set of valid configIDs + valid_config_ids = {config_id.get("name").lower() for config_id in self.config_ids} + + if not options.config and not options.list and not options.force: + raise InvalidCommandLineError("No flag specified.\n\nUsage: " + self.ident["usage"]) + if not options.config and options.force: + raise InvalidCommandLineError("'--force | -f' flag mandatorily requires the " "'--pmmconfig | -C' flag.") + if options.config and options.list: + raise InvalidCommandLineError("Only one of '--pmmconfig | -C' or '--list | -L' " "may be specified") + # Check whether the user entered configID is valid + if options.config and not options.config.lower() in valid_config_ids: + raise InvalidCommandLineError( + "Invalid configID.\nTo view a list of pre-defined " "configIDs, use 'applypmmconfig --list'" + ) + + def apply_pmm_config(self, options): + """ + Calls relevant functions based on the flags specified by the user. + :param options: options specified by the user. + :type options: instance of OptionParser class. + """ + if options.list: + self.show_predefined_config_options() + elif options.config: + # Raise exception if server is in POST + if RestHelpers(rdmcObject=self.rdmc).in_post(): + raise NoContentsFoundForOperationError( + "Unable to retrieve resources - " "server might be in POST or powered off" + ) + self.apply_predefined_config(options) + + def show_predefined_config_options(self): + """ + Display the available pre-defined configIDs that the user can choose from to + apply to their Persistent memory Modules. + """ + self.rdmc.ui.printer("\nAvailable Configurations:\n\n") + for config_id in ApplyPmemConfigCommand.config_ids: + self.rdmc.ui.printer(config_id.get("name") + "\n") + self.rdmc.ui.printer("\t" + config_id.get("description") + "\n") + self.rdmc.ui.printer("\n") + + def warn_existing_chunks_and_tasks(self, memory_chunk_tasks, memory_chunks): + """ + Checks for existing Memory Chunks and Pending Configuration Task resources on + a server where a user is trying to apply a pre-defined configuration + :param memory_chunk_tasks: Pending Configuration Tasks + :type memory_chunk_tasks: list + :memory_chunks: Memory Chunks in the existing configuration + :type memory_chunks: list + :returns: None + """ + # If Memory Chunks exist, display Existing configuration warning + if memory_chunks: + self.rdmc.ui.printer( + "Warning: Existing configuration found. Proceeding with applying a new " + "configuration will result in overwriting the current configuration and " + "cause data loss.\n" + ) + # If Pending Configuration Tasks exist, display warning + if memory_chunk_tasks: + self.rdmc.ui.printer( + "Warning: Pending configuration tasks found. Proceeding with applying " + "a new configuration will result in overwriting the pending " + "configuration tasks.\n" + ) + # Raise a NoChangesFoundOrMade exception when either of the above conditions exist + if memory_chunks or memory_chunk_tasks: + # Line feed for proper formatting + raise NoChangesFoundOrMadeError( + "\nFound one or more of Existing Configuration or " + "Pending Configuration Tasks. Please use the " + "'--force | -f' flag with the same command to " + "approve these changes." + ) + return None + + def delete_existing_chunks_and_tasks(self, memory_chunk_tasks, memory_chunks): + """ + Delete existing Memory Chunks and Pending Configuration Tasks + :param memory_chunk_tasks: Pending Configuration Tasks + :type memory_chunk_tasks: list + :memory_chunks: Memory Chunks in the existing configuration + :type memory_chunks: list + :returns: None + """ + # Delete any pending configuration tasks + if memory_chunk_tasks: + self.auxcommands["clearpmmpendingconfig"].delete_tasks(memory_chunk_tasks) + # Delete any existing configuration + if memory_chunks: + for chunk in memory_chunks: + data_id = chunk.get("@odata.id") + resp = RestHelpers(rdmcObject=self.rdmc).delete_resource(data_id) + if not resp: + raise NoChangesFoundOrMadeError("Error occured while deleting " "existing configuration") + return None + + @staticmethod + def get_post_data(config_data, interleavable_memory_sets): + """ + Create post body based on config data + :param config_data: An entry of self.config_iD's list + :type config_data: dict + :param interleavable_memory_sets: List of interleavable sets + :type interleavable_memory_sets: List + :returns: Returns post data + """ + + body = { + "AddressRangeType": "PMEM", + "InterleaveSets": [], + "Oem": {"Hpe": {"MemoryChunkSizePercentage": config_data["totalPmemPercentage"]}}, + } + # Get the list of interleave sets based on the configuration + if config_data["pmemIntereleaved"] or config_data["totalPmemPercentage"] == 0: + # If pmem regions are interleaved or if it MemoryMode, choose the list with maximum entries. + interleave_sets = [max(interleavable_memory_sets, key=lambda x: len(x["MemorySet"]))] + else: + # If pmem regions are NOT interleaved, choose all the lists with exactly one entry. + interleave_sets = [il_set for il_set in interleavable_memory_sets if len(il_set["MemorySet"]) == 1] + + # Using in-place update to change the interleave sets format. + # Replace 'MemorySet' with 'Memory' for each MemorySet in interleave_sets. + # Get '@odata.id' for each memory region from original interleave_sets and add this to new structure. + for index, interleavableset in enumerate(interleave_sets): + interleave_sets[index] = [ + {"Memory": {"@odata.id": str(memory_region["@odata.id"])}} + for memory_region in interleavableset["MemorySet"] + ] + + # Create post body for each interleave sets from post body template. + post_data = [] + for interleaveset in interleave_sets: + current_body = deepcopy(body) + current_body["InterleaveSets"] = interleaveset + post_data.append(current_body) + + return post_data + + def apply_predefined_config(self, options): + """ + Apply the selected pre-defined configuration to Persistent Memory Modules. + :param options: option specified by the user. + :returns: None + """ + # Retrieve Memory Chunks and Task Resources from server + (task_members, domain_members, memory_chunks) = RestHelpers( + rdmcObject=self.rdmc + ).retrieve_task_members_and_mem_domains() + + # Filter Task Resources to include only Pending Configuration Tasks + memory_chunk_tasks = RestHelpers(rdmcObject=self.rdmc).filter_task_members(task_members) + + if options.force: + self.delete_existing_chunks_and_tasks(memory_chunk_tasks, memory_chunks) + else: + self.warn_existing_chunks_and_tasks(memory_chunk_tasks, memory_chunks) + + if not domain_members: + raise NoContentsFoundForOperationError("Failed to retrive Memory Domain Resources") + + # Get the user specified configID + config_data = next( + (config_id for config_id in self.config_ids if config_id.get("name").lower() == options.config.lower()), + None, + ) + + for proc in domain_members: + path = proc["MemoryChunks"].get("@odata.id") + data = self.get_post_data(config_data, proc["InterleavableMemorySets"]) + for body in data: + resp = RestHelpers(rdmcObject=self.rdmc).post_resource(path, body) + if resp is None: + raise NoChangesFoundOrMadeError("Error occured while applying configuration") + + # display warning + self.rdmc.ui.printer("Configuration changes require reboot to take effect.\n") + + # display pending configuration + self.auxcommands["showpmmpendingconfig"].show_pending_config(type("MyOptions", (object,), dict(json=False))) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ClearPendingConfigCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ClearPendingConfigCommand.py new file mode 100644 index 0000000..0635343 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ClearPendingConfigCommand.py @@ -0,0 +1,134 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Command to clear pending tasks""" +from __future__ import absolute_import + +try: + from rdmc_helper import ( + LOGGER, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoChangesFoundOrMadeError, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + ReturnCodes, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + NoChangesFoundOrMadeError, + LOGGER, + ) + +from .lib.RestHelpers import RestHelpers + + +class ClearPendingConfigCommand: + """Command to clear pending config tasks""" + + def __init__(self): + self.ident = { + "name": "clearpmmpendingconfig", + "usage": None, + "description": "Clear pmm pending config tasks\n" "\texample: clearpmmpendingconfig", + "summary": "Clear pending config tasks", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def get_memory_chunk_tasks(self): + """ + Function to retrieve Memory Chunk Tasks + :returns: Retrieved Memory Chunk Tasks + """ + # Retrieving tasks members + tasks = RestHelpers(rdmcObject=self.rdmc).retrieve_task_members() + if tasks: + # Filtering out Memory Chunk Tasks + memory_chunk_tasks = RestHelpers(rdmcObject=self.rdmc).filter_task_members(tasks) + if memory_chunk_tasks: + return memory_chunk_tasks + self.rdmc.ui.printer("No pending configuration tasks found.\n\n") + return [] + + def delete_tasks(self, memory_chunk_tasks, verbose=False): + """ + Function to delete pending configuration tasks + :param memory_chunk_tasks: Pending confguration tasks. + :type memory_chunk_tasks: list + :param verbose: Toggles verbose mode, which print task IDs as + individual tasks are deleted. + :type verbose: Boolean + :returns: None + """ + for task in memory_chunk_tasks: + data_id = task.get("@odata.id") + task_id = task.get("Id") + resp = RestHelpers(rdmcObject=self.rdmc).delete_resource(data_id) + if resp: + if verbose: + self.rdmc.ui.printer("Deleted Task #{}".format(task_id) + "\n") + else: + raise NoChangesFoundOrMadeError("Error occured while deleting " "task #{}".format(task_id)) + return None + + def run(self, line, help_disp=False): + """ + Wrapper function for new command main function + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + LOGGER.info("Clear Pending Configuration: %s", self.ident["name"]) + # pylint: disable=unused-variable + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineError("Failed to parse options") + if args: + raise InvalidCommandLineError("Chosen flag doesn't expect additional arguments") + # Raise exception if server is in POST + if RestHelpers(rdmcObject=self.rdmc).in_post(): + raise NoContentsFoundForOperationError( + "Unable to retrieve resources - " "server might be in POST or powered off" + ) + memory_chunk_tasks = self.get_memory_chunk_tasks() + self.delete_tasks(memory_chunk_tasks, verbose=True) + + return ReturnCodes.SUCCESS + + def definearguments(self, customparser): + """ + Wrapper function for new command main function + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/DisplaySecurityStateCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/DisplaySecurityStateCommand.py new file mode 100644 index 0000000..f3c28b4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/DisplaySecurityStateCommand.py @@ -0,0 +1,123 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- + +"""Command to Display Security State of Dimms""" + +# ---------Imports--------- +from __future__ import absolute_import + +from tabulate import tabulate + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + ReturnCodes, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ) + +from .lib.RestHelpers import RestHelpers + +# ---------End of imports--------- + + +class DisplaySecurityStateCommand: + """Command to Display Security State of Dimms""" + + def __init__(self): + self.ident = { + "name": "pmmsecuritystate", + "usage": None, + "description": "Displaying the Security state of dimms\n\texample: pmmsecuritystate", + "summary": "Displaying the Security state of dimms.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + self._rest_helpers = None + + def display_SecurityState(self): + resp = self._rest_helpers.retrieve_pmem_location() + + pmemLocation = [] + for item in resp["Members"]: + if item["MemoryType"] == "IntelOptane": + pmemLocation.append(item["Name"]) + + securityState = [] + headers = ["Location", "State"] + for i in pmemLocation: + path = "/redfish/v1/Systems/1/Memory/" + i + resp = self._rest_helpers.retrieve_security_state(path) + state = resp["SecurityState"] + securityState.append(state) + + merged_list = tuple(zip(pmemLocation, securityState)) + print(tabulate(merged_list, headers, tablefmt="psql")) + + def run(self, line, help_disp=False): + """ + Wrapper function for new command main function + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineError("Failed to parse options") + if args: + raise InvalidCommandLineError("Chosen flag doesn't expect additional arguments") + + # Raise exception if server is in POST + self._rest_helpers = RestHelpers(rdmcObject=self.rdmc) + if self._rest_helpers.in_post(): + raise NoContentsFoundForOperationError( + "Unable to retrieve resources - " "server might be in POST or powered off" + ) + + self.display_SecurityState() + + return ReturnCodes.SUCCESS + + def definearguments(self, customparser): + """Wrapper function for smbios command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowPmemCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowPmemCommand.py new file mode 100644 index 0000000..e48cc83 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowPmemCommand.py @@ -0,0 +1,455 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Command to display information about Persistent Memory modules""" +from __future__ import absolute_import, division + +import re +from argparse import Action +from enum import Enum + +try: + from rdmc_helper import ( + LOGGER, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + ReturnCodes, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + LOGGER, + ) + +from .lib.DisplayHelpers import DisplayHelpers, OutputFormats +from .lib.Mapper import Mapper +from .lib.MapperRenderers import MappingTable +from .lib.PmemHelpers import PmemHelpers +from .lib.RestHelpers import RestHelpers + + +class _Parse_Options_List(Action): + def __init__(self, option_strings, dest, nargs, **kwargs): + super(_Parse_Options_List, self).__init__(option_strings, dest, nargs, **kwargs) + + def __call__(self, parser, namespace, values, option_strings): + """ + Callback to parse a comma-separated list into an array. + Then store the array in the option's destination + """ + try: + setattr(namespace, self.dest, next(iter(values)).split(",")) + except: + raise InvalidCommandLineError("Values in a list must be separated by a comma.") + + +class DefaultAttributes(Enum): + """ + Enum class containing default display attributes for various flags + """ + + device = ["Location", "Capacity", "Status", "DIMMStatus", "Life", "FWVersion"] + config = ["Location", "VolatileSize", "PmemSize", "PmemInterleaved"] + summary = ["TotalCapacity", "TotalVolatileSize", "TotalPmemSize"] + logical = ["PmemSize", "DimmIds"] + + +def get_default_attributes(flag): + """ + This method returns default attributes to be displayed + :param flag: name of flag + :type flag: string + :return: list of default attributes for the passed flag + """ + if flag == "device": + return list(DefaultAttributes.device.value) + if flag == "config": + return list(DefaultAttributes.config.value) + if flag == "logical": + return list(DefaultAttributes.logical.value) + if flag == "summary": + return list(DefaultAttributes.summary.value) + return [] + + +class ShowPmemCommand: + """Command to display information about Persistent Memory modules""" + + def __init__(self): + self.ident = { + "name": "showpmm", + "usage": None, + "description": "Display information about " "Persistent Memory modules \n\texample: showpmm --device", + "summary": "Display information about Persistent Memory modules.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + self._display_helpers = DisplayHelpers() + self._mapper = Mapper() + self._pmem_helpers = PmemHelpers() + + def show_pmem_modules(self, options): + """ + Command to display information about Persistent Memory modules + :param options: command options + :type options: options. + """ + # Retrieving memory collection resources + if options.logical or options.config: + memory, domain_members, all_chunks = RestHelpers(rdmcObject=self.rdmc).retrieve_mem_and_mem_domains() + if not domain_members: + raise NoContentsFoundForOperationError("Failed to retrieve Memory " "Domain resources") + else: + memory = RestHelpers(rdmcObject=self.rdmc).retrieve_memory_resources() + + if memory: + memory_members = memory.get("Members") + else: + raise NoContentsFoundForOperationError("Failed to retrieve Memory Resources") + + # Get dimm ids of all memory objects + member_dimm_ids = set() + for member in memory_members: + member_dimm_ids.add(member.get("DeviceLocator")) + + # Filtering Persistent Memory members + pmem_members, pmem_dimm_ids = self._pmem_helpers.get_pmem_members(memory_members) + if not pmem_members: + raise NoContentsFoundForOperationError("No Persistent Memory Modules found") + + parsed_dimm_ids = list() + if options.dimm: + parsed_dimm_ids = self._pmem_helpers.parse_dimm_id(options.dimm) + + for dimm_id in parsed_dimm_ids: + if dimm_id not in member_dimm_ids: + raise InvalidCommandLineError("One or more of the specified " "DIMM ID(s) are invalid") + elif dimm_id not in pmem_dimm_ids: + raise InvalidCommandLineError( + "One or more of the specified DIMM ID(s) " "are not Persistent Memory Modules" + ) + + # Creating a list of persistent memory members according to specified DIMM Ids + selected_pmem_members = list() + if parsed_dimm_ids: + for pmem_member in pmem_members: + if pmem_member.get("DeviceLocator") in parsed_dimm_ids: + selected_pmem_members.append(pmem_member) + else: + selected_pmem_members = pmem_members + + # Call 'show_pmem_module_device()' when either the user specifies '--device' flag + # or specifies no flag at all + if ( + not options.device and not options.config and not options.logical and not options.summary + ) or options.device: + self.show_pmem_module_device(selected_pmem_members, options) + + elif options.config: + self.show_pmem_module_configuration(selected_pmem_members, all_chunks, options) + + elif options.summary: + self.show_pmem_module_summary(selected_pmem_members, options) + + elif options.logical: + if not all_chunks: + self.rdmc.ui.printer("No Persistent Memory regions found\n\n") + return + self.show_persistent_interleave_sets(selected_pmem_members, all_chunks, options) + + def generate_display_output(self, members, options, flag, mapping_table, **resources): + """ + :param members: list of members returned as a result of GET request + :type members: list of dictionaries + :param options: command options + :type options: options + :param mapping_table: Mapping table to be used to extract attributes + :param flag: name of flag + :type flag: string + :return: filtered list of dictionaries to be sent to Display Helpers for output + """ + display_output_list = list() + # use default attributes for now + display_attributes = get_default_attributes(flag) + + for member in members: + temp_dict = self._mapper.get_multiple_attributes( + member, display_attributes, mapping_table, output_as_json=options.json, **resources + ) + display_output_list.append(temp_dict) + return display_output_list + + def show_pmem_module_device(self, selected_pmem_members, options): + """ + Command to display information about DIMMs when the + '--device' | '-D' flag is specified + :param selected_pmem_members: pmem members to be displayed + :type selected_pmem_members: list + :param options: command options + :type options: options + """ + # generating the data to be printed + display_output = self.generate_display_output( + selected_pmem_members, options, "device", MappingTable.device.value + ) + # Displaying output based on --json flag + if options.json: + self._display_helpers.display_data(display_output, OutputFormats.json) + else: + self._display_helpers.display_data(display_output, OutputFormats.table) + + def show_pmem_module_configuration(self, selected_pmem_members, all_chunks, options=None): + """ + Command to display information about DIMMs when the + '--pmmconfig' | '-C' flag is specified + :param selected_pmem_members: pmem members to be displayed + :type selected_pmem_members: list + :param all_chunks: list of memory chunks + :type all_chunks: list + :param options: command options + :type options: options + """ + # generating the data to be printed + display_output = self.generate_display_output( + selected_pmem_members, + options, + "config", + MappingTable.config.value, + chunks=all_chunks, + ) + # Displaying output based on --json flag + if options.json: + self._display_helpers.display_data(display_output, OutputFormats.json) + else: + self._display_helpers.display_data(display_output, OutputFormats.table) + + def show_persistent_interleave_sets(self, selected_pmem_members, all_chunks, options=None): + """ + Command to display information about the Persistent interleave + regions among the Persistent Memory Modules when the '--logical' | '-L' flag is + specified + :param selected_pmem_members: list of memory members retrieved via GET request + :type selected_pmem_members: list + :param all_chunks: list of memory chunks + :type all_chunks: list + :param options: command options + :type options: options + """ + # generating the data to be printed + display_output = self.generate_display_output( + all_chunks, + options, + "logical", + MappingTable.logical.value, + memory=selected_pmem_members, + ) + # Displaying output based on --json flag + if options.json: + self._display_helpers.display_data(display_output, OutputFormats.json) + else: + self.rdmc.ui.printer("\nInterleave Persistent Memory regions\n") + self._display_helpers.display_data(display_output, OutputFormats.table) + + def show_pmem_module_summary(self, selected_pmem_members, options=None): + """ + Command to display a summary of the current Persistent Memory + configuration when the '--summary' | '-M' flag is specified + :param selected_pmem_members: list of memory members retrieved via GET request + :type selected_pmem_members: list + :param options: command options + :type options: options + """ + # getting default attributes for --summary flag + attribute_list = get_default_attributes("summary") + # generating the data to be printed + display_output = self._mapper.get_multiple_attributes( + selected_pmem_members, + attribute_list, + MappingTable.summary.value, + options.json, + ) + # Displaying output based on --json flag + if options.json: + self._display_helpers.display_data(display_output, OutputFormats.json) + else: + self._display_helpers.print_properties([display_output]) + + def run(self, line, help_disp=False): + """ + Wrapper function for new command main function + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + LOGGER.info("PMM: %s", self.ident["name"]) + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineError("Failed to parse options") + + self.rdmc.login_select_validation(self, options) + + if args: + self.validate_args(options) + self.validate_show_pmem_options(options) + # Raise exception if server is in POST + if RestHelpers(rdmcObject=self.rdmc).in_post(): + raise NoContentsFoundForOperationError( + "Unable to retrieve resources - " "server might be in POST or powered off" + ) + self.show_pmem_modules(options) + + return ReturnCodes.SUCCESS + + @staticmethod + def validate_args(options): + """ + Produces relevant error messages when unwanted extra arguments are specified with flags + """ + some_flag = options.device or options.config or options.logical or options.summary + if options.logical or options.summary: + raise InvalidCommandLineError("Chosen flag doesn't expect additional arguments") + elif (options.device or options.config or not some_flag) and not options.dimm: + raise InvalidCommandLineError("Use the '--dimm | -I' flag to filter by DIMM IDs") + elif (options.device or options.config or not some_flag) and options.dimm: + raise InvalidCommandLineError("Values in a list must be comma-separated " "(no spaces)") + + @staticmethod + def validate_show_pmem_options(options): + """ + Validate whether options specified by user are valid + :param options: options specified by the user with the 'showpmm' command + :type options: instance of OptionParser class + """ + # Usage/Error strings + usage_multiple_flags = ( + "Only one of '--device | -D', '--pmmconfig | -C', " "'--logical | -L' or '--summary | -M' may be specified" + ) + # usage_all_display = "Only one of '--all | -a' or '--display | -d' may be specified\n" + usage_dimm_flag = ( + "'--dimm | -I' can only be specified with either the " + "'--device | -D' or '--pmmconfig | -C' flag\n" + " or without any flag" + ) + error_dimm_format = "DIMM IDs should be of the form 'ProcessorNumber@SlotNumber'" + error_dimm_range = "One or more of the specified DIMM ID(s) are invalid" + + views = [options.device, options.config, options.logical, options.summary] + + if (options.logical or options.summary) and options.dimm: + raise InvalidCommandLineError(usage_dimm_flag) + + if views.count(False) < 3: + raise InvalidCommandLineError(usage_multiple_flags) + + if options.dimm: + for dimm_id in options.dimm: + # Regex match test for expressions of type 'num1@num2' + if not re.match(r"^\d+\@\d+$", dimm_id): + raise InvalidCommandLineError(error_dimm_format) + # Accepts expressions from '1@1' to '9@19' + if not re.match(r"^[1-9]\@([1-9]|[1]\d)$", dimm_id): + raise InvalidCommandLineError(error_dimm_range) + + def definearguments(self, customparser): + """ + Wrapper function for new command main function + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-j", + "--json", + action="store_true", + dest="json", + help="Optionally include this flag to change the output to JSON format.", + default=False, + ) + + customparser.add_argument( + "-D", + "--device", + action="store_true", + default=False, + dest="device", + help="Show information about the physical persistent memory modules." + " Default view shows information about all PMMs." + " To filter DIMMs, use this flag in conjunction with" + " the --dimm flag.", + ) + + customparser.add_argument( + "-C", + "--pmmconfig", + action="store_true", + default=False, + dest="config", + help="Show the current configuration of the persistent memory modules." + " Default view shows information about all PMMs." + " To filter DIMMs, use this flag in conjunction with" + " the --dimm flag.", + ) + + customparser.add_argument( + "-L", + "--logical", + action="store_true", + default=False, + dest="logical", + help="Show the Persistent Memory Regions.", + ) + + customparser.add_argument( + "-M", + "--summary", + action="store_true", + default=False, + dest="summary", + help="Show the summary of the persistent memory resources.", + ) + + customparser.add_argument( + "-I", + "--dimm", + type=str, + action=_Parse_Options_List, + metavar="IDLIST", + nargs=1, + dest="dimm", + help=" To view specific devices, supply a comma-separated list" + " of DIMM IDs in the format P@S (without spaces)," + " where P=processor and S=slot. Example: '1@1,1@12'", + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowPmemPendingConfigCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowPmemPendingConfigCommand.py new file mode 100644 index 0000000..a56251a --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowPmemPendingConfigCommand.py @@ -0,0 +1,170 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Command to show the pending configuration for PMM""" + +from __future__ import absolute_import + +try: + from rdmc_helper import ( + LOGGER, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + ReturnCodes, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + LOGGER, + NoContentsFoundForOperationError, + ) + +from .lib.DisplayHelpers import DisplayHelpers, OutputFormats +from .lib.Mapper import Mapper +from .lib.MapperRenderers import MappingTable +from .lib.PmemHelpers import PmemHelpers +from .lib.RestHelpers import RestHelpers + + +class ShowPmemPendingConfigCommand: + """ + Command to show the pending configuration for PMM + """ + + def __init__(self): + self.ident = { + "name": "showpmmpendingconfig", + "usage": None, + "description": "Shows the pending tasks for configuring PMM\n" "\texample: showpmmpendingconfig --json", + "summary": "Shows the pending configuration for PMM.", + "aliases": [], + "auxcommands": [], + } + self._mapper = Mapper() + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + self._display_helpers = DisplayHelpers() + self._pmem_helpers = PmemHelpers() + + def definearguments(self, customparser): + """ + Wrapper function for new command main function + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-j", + "--json", + action="store_true", + dest="json", + help="Optionally include this flag to change the output to JSON format.", + default=False, + ) + + def run(self, line, help_disp=False): + """ + Wrapper function for new command main function + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + LOGGER.info("PMM Pending Configuration: %s", self.ident["name"]) + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineError("Failed to parse options") + if args: + raise InvalidCommandLineError("Chosen command or flag doesn't expect additional arguments") + # Raise exception if server is in POST + if RestHelpers(rdmcObject=self.rdmc).in_post(): + raise NoContentsFoundForOperationError( + "Unable to retrieve resources - " "server might be in POST or powered off" + ) + self.show_pending_config(options) + + return ReturnCodes.SUCCESS + + def show_pending_config(self, options): + """ + Command to display information about pending Persistent Memory Configuration + :param options: command options + :type options: options. + """ + # retrieving task members + task_members = RestHelpers(rdmcObject=self.rdmc).retrieve_task_members() + + # filtering task members + filtered_task_members = RestHelpers(rdmcObject=self.rdmc).filter_task_members(task_members) + if not filtered_task_members: + self.rdmc.ui.printer("No pending configuration tasks found.\n\n") + return None + + # retrieving memory members + memory = RestHelpers(rdmcObject=self.rdmc).retrieve_memory_resources() + if memory: + memory_members = memory.get("Members") + else: + raise NoContentsFoundForOperationError("Failed to retrieve Memory Resources") + + attributes = ["Operation", "PmemSize", "VolatileSize", "DimmIds"] + display_output = list() + for task in filtered_task_members: + # finding operation of task + operation = self._mapper.get_single_attribute(task, "Operation", MappingTable.tasks.value, True) + # displaying existing configuration for DELETE operation + if operation.get("Operation", "") == "DELETE": + target_uri = task.get("Payload").get("TargetUri") + data = RestHelpers(rdmcObject=self.rdmc).get_resource(target_uri) + table = MappingTable.delete_task.value + else: + task_type = self._mapper.get_single_attribute(task, "Type", MappingTable.tasks.value, True) + task_type = task_type.get("Type", "") + if task_type != "PMEM": + self.rdmc.ui.warn("Unsupported interleave set type found: " + task_type) + continue + data = task + table = MappingTable.tasks.value + + task_output = self._mapper.get_multiple_attributes( + data, + attributes, + table, + output_as_json=options.json, + memory=memory_members, + ) + display_output.append(task_output) + + if options.json: + self._display_helpers.display_data(display_output, OutputFormats.json) + else: + self._display_helpers.display_data(display_output, OutputFormats.table) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowRecommendedConfigCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowRecommendedConfigCommand.py new file mode 100644 index 0000000..c634618 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/ShowRecommendedConfigCommand.py @@ -0,0 +1,193 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Command to show recommended configurations""" +from __future__ import absolute_import, division + +from collections import OrderedDict + +try: + from rdmc_helper import ( + LOGGER, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + ReturnCodes, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + LOGGER, + ) + +from .lib.DisplayHelpers import DisplayHelpers, OutputFormats +from .lib.Mapper import Mapper +from .lib.MapperRenderers import MappingTable +from .lib.PmemHelpers import PmemHelpers +from .lib.RestHelpers import RestHelpers + + +class ShowRecommendedConfigCommand: + """Show recommended configurations""" + + def __init__(self): + self.ident = { + "name": "showrecommendedpmmconfig", + "usage": None, + "description": "Show recommended configurations\n" "\texample: showrecommendedpmmconfig", + "summary": "Show Recommended Configuration", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + self._display_helpers = DisplayHelpers() + self._mapper = Mapper() + self._pmem_helpers = PmemHelpers() + + def definearguments(self, customparser): + """ + Wrapper function for new command main function + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-j", + "--json", + action="store_true", + dest="json", + help="Optionally include this flag to change the output to JSON format.", + default=False, + ) + + def run(self, line, help_disp=False): + """ + Wrapper function for new command main function + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + LOGGER.info("Show Recommended Configuration: %s", self.ident["name"]) + try: + (_, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineError("Failed to parse options") + if args: + raise InvalidCommandLineError("Chosen command doesn't expect additional arguments") + # Raise exception if server is in POST + if RestHelpers(rdmcObject=self.rdmc).in_post(): + raise NoContentsFoundForOperationError( + "Unable to retrieve resources - " "server might be in POST or powered off" + ) + self.show_recommended_config() + + return ReturnCodes.SUCCESS + + def show_recommended_config(self): + """ + Show recommended pmm configuration + """ + members = RestHelpers(rdmcObject=self.rdmc).retrieve_memory_resources().get("Members") + + if not members: + raise NoContentsFoundForOperationError("Failed to retrieve memory resources") + + # Retreving dimms + pmem_members = self._pmem_helpers.get_pmem_members(members)[0] + + if not pmem_members: + raise NoContentsFoundForOperationError("No Persistent Memory Modules found") + + # Retreving dram dimms + dram_members = self._pmem_helpers.get_non_aep_members(members)[0] + + if not dram_members: + raise NoContentsFoundForOperationError("No DRAM DIMMs found") + + # retrieving Total Capacity of PMEM dimms + attr = self._mapper.get_single_attribute(pmem_members, "TotalCapacity", MappingTable.summary.value, True) + pmem_size = attr.get("TotalCapacity", {}).get("Value", 0) + + # retrieving Total Capacity of DRAM dimms + dram_size = self._mapper.get_single_attribute(dram_members, "TotalCapacity", MappingTable.summary.value, True) + dram_size = dram_size.get("TotalCapacity", {}).get("Value", 0) + + display_output = list() + recommended_config = list() + + # Add AppDirect Mode + temp_dict = OrderedDict() + temp_dict["MemoryModeTotalSize"] = 0 + temp_dict["PmemTotalSize"] = pmem_size + temp_dict["CacheRatio"] = None + recommended_config.append(temp_dict) + + # Add Memory Mode + temp_dict = OrderedDict() + temp_dict["MemoryModeTotalSize"] = pmem_size + temp_dict["PmemTotalSize"] = 0 + temp_dict["CacheRatio"] = pmem_size / dram_size + recommended_config.append(temp_dict) + + # Add Mixed Mode (BPS doesn't support it) + if "Gen10 Plus" not in RestHelpers(rdmcObject=self.rdmc).retrieve_model(self.rdmc)["Model"]: + stepsize = 32 + appdirect_size = 0 + step = 1 + while appdirect_size < pmem_size: + appdirect_size = step * stepsize * len(pmem_members) + memorymode_size = pmem_size - appdirect_size + cache_ratio = memorymode_size / dram_size + if 2 <= cache_ratio <= 16: + temp_dict = OrderedDict() + temp_dict["MemoryModeTotalSize"] = memorymode_size + temp_dict["PmemTotalSize"] = appdirect_size + temp_dict["CacheRatio"] = cache_ratio + recommended_config.append(temp_dict) + step += 1 + + # Sorting based on MemoryModeTotalSize + recommended_config = sorted(recommended_config, key=lambda x: x["MemoryModeTotalSize"]) + + # Adding units and formating cache ratio + for output in recommended_config: + output["MemoryModeTotalSize"] = "%d GB" % output["MemoryModeTotalSize"] + output["PmemTotalSize"] = "%d GB" % output["PmemTotalSize"] + if output["CacheRatio"] is None: + output["CacheRatio"] = "N/A" + else: + output["CacheRatio"] = "1:%.1f" % output["CacheRatio"] + display_output.append(self._pmem_helpers.json_to_text(output)[0]) + + # Display output in table format + self._display_helpers.display_data(display_output, OutputFormats.table) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/AdvancedPmmConfigCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/AdvancedPmmConfigCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bd2ea67a9086d9b863c2d89b08c168ed0f73a33b GIT binary patch literal 13306 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 Ah5!Hn literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ApplyPmemConfigCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ApplyPmemConfigCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e3b33ae3dd3331be6a74db08f4ba5a8773610693 GIT binary patch literal 10819 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ClearPendingConfigCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ClearPendingConfigCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dc44801907aad21e1ef47cdd8132c668c05b22c1 GIT binary patch literal 3835 zcmbtX&2Qtz73WYCNm24gyxln7pb4?bb|Z9cB~1^lo2Hv;?X8FB@JS!Y%#|4b^%YB~*_{toL-H6)W&oi7K(tGvaEm8k;>cwt7}< z_w2aVs}b!pEm<=(=A6DyH2i_Q5!G>QCXcc>2Xqkab1fk!8m&?@YQzh@1)@FHs737; z8nvJ6y+vBOv@npGyO%)pp8xxxfG+z^FU85vXqeU`fR9c|uR?WNd7f-U@5aLplw5h{0a`r0@EJGMhFd&<25{HVs)07p zsPRv8ta-pDXrUikJ+C~+e}igZO|>I$D^#;Mp5R)pRD7tcbfJF+_`D5HjXm?@EMl7_ zE50-T&Sd_CEc0`L8%E;COjbw2A23-5lmZ@Rh@Z5?2>8ZNr3IYv1rxIFkDdi32}QFi zt04vCr4_{V5XPm!X&gv{hC$B3tq@8>u&Do)#$SWiZ(g>BY0O$j;ur7zx|Q+thy}T5 zg;BZ=w1(w*>zF0SttdQfWvBTtP2S&l@7(j3^)V$Xne0?ZVxCtLg7 zo$kR_=fKZgHc5jN zcW+iQRd9s{NKm{L4IaWn4j>;9N?ww4{X#nbP&b8Lj&z_T%;^4rkJ+f%zdj7wh3;zMv`d8;2r zIpbG5^-(CTjE4|Ic(cM+aeh^WGr0m2VOL&&yHc}+qEXqbq2#LrmZSb_V!wegu?Wqw zX^<7&AO=~4yLk6zB)?zLc7Q-mFZ6AURSMWcco>sM+Fu@=RmPQb@O1#uP)`8dSv4mB zI`}?-UKtzEV~$P!4uE_g`xU^(xjC+05L#W;5b7`V+@faL_niEVPz#{9{XaoinV~t4 zK4lTh*$=@po3@$x+>hPwp46s034Sg{g~1hYH!i2=ry2X+*-!u2l+J0<$`KZF!_9MX{=O*rRs=9YU0=1rwG zm5H;Zf1joh*^|rRnHO}@gw48(+QXFkxxW!osqaw!I)GX%KT-!vl_R-teR(E{Q`}S8 z%uRz}#2Lj+L=!8f`4=TSONBA-0-beQMSnQa#s>c#yqWlx zH&8FNz`qtQH2!hE2(=RQkG1n92(nceT^?64@4o~qO6!{S;>8U6&$ypKf#LS20Ts}2 z6LtcgP*z#7A11TW*|do(MNm3HzMY8Tn;RzCXwDfFAxkj7Uuf;5DKAUb=wEVsnQR;OfWZ9Ia(C0_7I#642}GOOH(G2`?<@W zWe~kxpVAO>1-OpS2csCvw36dnpCImFiW{~A@BEUU`E_|~p05>qdJ zdb0z8zCZ_E(+i(5izvUrGH6VML5WKA;5(T7@e2WBy zyqtE))=pFBSRBbU;FA}n0{~%0CvU*hQ3etUfX2M0>n9D7un+jmrk;ULfltF?73JqX zc5tsHbMY%k)_2tBS^1fC3#wqOYd7ZR%O$9UH})^Th03&o#?2Y5>{r#0{XuyMAL56I XzyjQOr2$-in>6gViT-WFS*iRFnZPsq literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/DisplaySecurityStateCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/DisplaySecurityStateCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7bbc296103dbe6d03a56d1e693cfd906cf2e0561 GIT binary patch literal 3149 zcma)8-ESMm5#PPr`{0q145zj#J8chbk$?@PtJ0!CjiPlRONoJqGDHPIh!%$@G zJU@5-8h^Wn(7*NM`s2dnF}&g{AQTM{#neb}Y77jl$7W)t=D@^gwhA+nkklGjsXee$ zXW*pnz{Tiul-(nUwNAG&(m#;15>NB4%VP8e%J54>ZR#ZLv@_^n^f96?ZM{OYb!H4! zsMkl`_Um8mj472ko)sEgHFG!%JKN*2ax zk#h-4u8f9d0>WLQ)}Lm_Q4-UI;!op@?Q))T_3-~N4xSzLmEX&E@=UT!ioLwd=w8kb z3dSQD=UKD8eaK|Vvz?qW(Is5Fl3SYCnm9nd!$80qkQDM0mcV{7f~6ae3A4xWiVuM> zG{6uBgW`cn4QjqZ140S4;NPMh>QMI;9@w-+Jy>yQ8(g-c9xnW}bW`o6#n*Ce!bp?l zqsQ8~9eC?AAz(Zo}wb`qsU!XEkmqvHJ^redpWE0RSiQ&uUW2~%wd!HCC&4vum} z2?*k+%7Lgyf(g}*%9Bw8D*;=rm_k^UGfL?Y_=<3vjufHsNbpqw>Of_$ zqq$RSG%M!<&oSt8H_+Uz2<&(3y}yt|!k&tp8E1IjlD2fJR%PiF_}V-J?KL3VJ>~4P zbO;HiJQ(Es^ystzU_6BsP7VqgWf13{hK&1ZKB}`=S#_e!eiCp-$FZ0O$J;^wR7jSJ zU^{5E1Zw3*S}9V97s;Z+By60@uFKcKG3q{NlE>_rg+ISJTZh(XAppl)698XdYeh1$c9psF@qQZM=AB$`~w zUehzo^W;j)%-EdH?9ENRXSTi<#R;oBE+`k!VCzCEX2H%h7YsfGl=?JhB70x@?4*E# z=SP&r`qQJtkNBiab)$r|@N_Lb80wlh+x;wyh6&T1e2IM+h`i(@Cj3obFn$b9OykK^ z`a|sm|JgzR$Om5*`AY^_2~A_%T~&5%7FS-K9d%u<+pTi?pY81I_WS%EU`O56XNR?H z2sYJl*TqYDO;+!o#Iotox~w%>>%>`DA1!LR=5qP=W8`JMi}R*759k{iplkW)vCf@3 zS9E2lupkuo7bO{TLl;Asca7OMZw07GhjA`0fp-(5SDvawOBQRNQ0BoQ%PQdGzs0k-LFAI>U%U$QXrZ=6uM%fsma=Dd*PN73gY=Z9?vkz`_ z=o@=`UA)(Ib@S9Wi7-@N7^XQb6Fu&P;fpd#791xGX+8=={t%9;LBb#Fkq*T*6ZP$Y z>#EAzK(^o&9Uv|u004K@d#B^qoL+a8e+&$L;<$u6B%H`~XzRMK+BJ+d?ihdLLfN3c z{j|R3Hn-4s;NqdL5?j}HsWrHKY#qYtC$$#AYrt!(-e#_H|ImE+ANAc(=s=OX9kTrnXakF;>^!(z^O>joGZ)ITOybX2RLlEJoO@);SwK(RxDG z>z%o9zBMoFjn297eCxcdPjsFPpK3j&Yp-i;l1+V}u_@oWTWURx`)PIt_h)%-r`Bt2 znhZ5_t=kWq<q`TFZ?H`4iQ-9xVvu*jXqY(y(jmtIF) zjrv`7HR78+pUXE^!|ONvxX-&Q5%Wc}%FsoU+}F24Kg`C_?G0bV*=-w>pZY6hcj9?e ze66K}{fzHwyE>S}_`q(JSc#d~D)YOVskO@3pmI9vZh2hz?q-jcP`KBz4{dW~+A`{N zPv0mU6tNcT1MRMHU<~wuF(~bp0&QUat^TJv_(t2-KGHXurL-*i_#i%u0jce}K{tq9 z7tb?=-`PzkBl$R2#2nu$QWNVKr{%84abvxAn|?pi)2i#XJDw1(`;m74?(%*V`pXC6 z3zxpM+~d)K-;Tv{(1{koVBVh3mk<5!;c_R~S?(Rh`%(9cOP5|=7D4PU_Pq9c=plP^ zJZag#gWV8`J>Z{B#zUD;e;e{ExRdwF|5x=qWUanDlkh|l4B zzJN;@C>%X``Vq^wlz(oU)-L~}x`k^6m!K(35h)aXgUHz_p0LS z*gikCAjo(mKZkbyY*AdG?qIMsmcw;_19yT1(I`KsTe|(&4N~3lS{O>taNV@#x=QPy z-f-PpeXpZhf~ruV;1hda&!K)vIs5L5duj*yKz2sI>7$)WP_Uza1ogYLhI<+7#8U zLBsNn?;ZLK`eNc{6nmZGDQD#Eso|eAVJ};YGmql&t zrN#WifEWmiu^a4x5&Mu5ew0=^(Ov*X7}-Y2S8^K{F~=2LqJhHJOx-qZ@KZzQ)Y2x! zp8rvuHgg4+xQSwbQ~5oE*GN+y7zdE-ZK4^Vos~4Rpp`&-R?^A^%>?bDq*;o#2d&yH zCqI(ga&tcrPUu6yF^9`jh{ROw?Z}=&<{^#Qk?S)#^fKv%P;T*Mhj`nGcIBOFjgNYM z)~NKdBCCg7R$`6;k9Zg{5Gj!!bT!lt@sJ$Lzk=1^U!~%=sdyDdvyz&mm*hIi4ry76 z_IN*><}}gB?nqgm+w)^Ldk1&;!M}^C#S99&(vbT^dqtP2bK01P#IFS66*65UOmNy^?IN*9=m~3YF@8RC2`&)0tG)H4l<97!(#!Mbh3?|g` z2em_u|IwgvGCjbYco)$%1~&TY2WQ0hXeDH+$#RB&pXmID1MOsXfIjyOAWujW_2YjJ z>RC`t(1D{e`V9Xu=ueFG*7#2brub)C;e)x8c~+%o%Mseixzlq0;Cez6Zaf!}Ix-#E@EMPv} z|KesBM-7Kj2e63~gpLZ)^V`90fLA0O;apq2D4GDFK2(sj*ph3XWKcJHlo6S|Me_V3 z-;w)!WB{mltkpJ}=hY!4k1IM!_&SR8>3scM(hD$U(w2uZ3(AU zS_1SDrt!Hl%<{0fnwuEH>#kjNLBDh%C#Nl=_xq@TJ>ou+h#rt_q6 zvpM8a<3yAo=h=rE6zb_K>oq<1PQl5$sZRN~!thgsv@yCkSP_tiou=dh zu_2+7tyTI2OiS>-&rU6FS|6EhOp&K&#+O6%u)Ly+qEVRxcCdBh!F0(qfF%s8Wa~44 z^F*}_OP>Tysd`fX<^$t_Wl`ItUek^57(X*jvur#tF+*_~#?PipmNA3z)3{9ZH8H38 z)8sSTW5(t~Z+6O>Bo_l&loIw3CWtlC?Xb*&Hlf>f=-0Vp8=4LHb6^iD19KOr$iO%- z1AR~?YaROCIw=pN&bx&=FoEIy1CF1e&QW+#?Fw|0G$$dy86kt85MfU^9w`)9BP8Fi zuieDmEm&*ua4xC89-4}dXhcmdwu0labxnRTy`@5iX(4Hdjlr- z3ALgMo0NO)*crmg@yQ60J_0+-w|+E!mQ6W^-VHjCBRni$%F*x7UPh1`3@?*IsLb0V ztu#2x;5RB>3Vswxa6RE32-sbgR3#Gd@-1*hI#0SL#J&UoY9nwtHK{*$(WhCa`(Y0f3ph4rx#Ru1)gfdMHVXnqVr1yng9bz}Sr`|X$IR3wpr8MdBddT~^oalkfDHqK z>B>~QXC9YGNccQNr+i`!N^#}DlmNpZBd(y?IjvdpUKkacUkVq{nJ1jvp1nUlOGh z)5sHSqgmz0Sb9E9g|rY~quL=An<&yo&I`@%)!vlDfrO+1tTk;*Mhv8%WNM-cx&wJQDrCmA1> z37~_A&S(5$7CZ!(-Uvt`M1$u@+JR6)IL&9OU0D|HAxNn9jcvHciaQ* z-*JhvD9na38!ey*>%T2q^5xRFT6>5uPXW5ebEk4dfji-%FSrwNfS<#irsPihpn6gx z(@`Jg)wQTym=-*PBq0i02gF+O*fp7i-@$j6?=E`m1cAs+seIpX0*16!~Q!-!R2IBv0 zD#icn1^<6y!0>;^_n%r@zltr}Xx4`)m-j(YaDv(%%Yx~&v~OJm4-uP;VRB^grcppq zU{{xxgnx%79OKX(&}Oj7Qj6O)OF94nP+`Yem9zSckzD+RT0Gmgs}FG|MUbVZ_n%OK zC$9#+(@ykzhy}*5<+iohJSoGH(+(_VoY#mGlX}LRfFkz{`0n5#M4rHtrWRM@+OBc* zTPlvoN(22+6Uz*~G5FhFq4_Li31H4TE0d4zHmUr|Nn@Z5N;LDpX2B~teNW@RAD_v5e%i@Q)o;sDJ(WZp?H&~9h0)O#QWVBNy=Wt zc+;-I1f0OF zfDjm&qwqt*7G1oSoh;yB<->3g-p@R@B6;PF$E5>ELvbV{;bJ$!(S&%uXd)>5Bf*}lZ&k$chAITz;W=q;t&}7)=*2}C4#=+IBCI4D5 z4%R$?f$S3;z;5weVy-Ppu&s|zm?p|E9%wxVbm z<|hgeKV)TygNOzc6e5>}l2P&?LlU3nwRB6{*@Cr62o4;jLX%FoUHG3te~M~%Hw zc6#77Xqn)?LbA<~Bqm?ZC4?fR{SKqY;X7$+sOZpHfbc^UM8r4xH?F3R7*H!r>OHfuglM(ZP@?VJQjMG?wv z1Y_dV;0UlH?X11utSI?9E5ofrFCj^qNT(E4I@gJko{@S<`Q7R5y*Qm7A#tyZm~Htm z@NWxFT6IjH^FIOYEfQABq%o>+<&k&1Y{DBe13&sCE(_YcfnU1Nb{}rO7auFc#EQz( zpD}NnlzRS0bvk{dM4zAnbqp0QEnL7U03`x6NY9`^I)(Zv%+Kr(k&G#+RaOJFLZN;( zQBaWxDXB<+9HGvzSxH6u;|LW2e@R8Se}wuZdnzvBKzN!x!=7aqnDZf0KIy%hpGm%7 z$i=6FN^Rs~MWHq;W8Md3!Kx;&Dd~nWOW9-X zPM^`)0gol|3;~|@J~4*mdF9$A;@7t~H>3!7@zT|%i3pcOgjsGFp@X!N<#^!ntBIWp zqU7=9N5m9(oMJ=753)Q`60F|-k)W&|2M|9`D$R{~6_s3aR9>7}l;X%o0OvU(xCriz`We zM9IkRu^XOx8%kZ@Qm#L6ns}IDdTu-WnKSqX9lg}0(vNha{%!P16g)Psdq;+yi-;zo&`3u@dwd3koXd{)0f~Mjn z805Vk82B+6lvwXVkz=!S_3go8zq0LI%+-E|YhI!Q8G-Drufon$+8rkXbGE-Kpxu|8 zwLEKP;nI~$FX8&a0%g9?`6+oMtsuM0Lp~m-?2;j~078?qB0Ue#<|?FKz(9A8NBv&f zpr)LNursnPDFGKiN@i6yMkRerJ*QKUH(>L8wD>lu>H~~65!7rL=17(c+?DsuYM%2# zzqrqwnVGxh;rsFar|xM~?Z1)>wC!7v)+~s!H1?ekI23uW(mnl8m!_xe`pnG#0HlQiMF0Q* literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ShowPmemPendingConfigCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/ShowPmemPendingConfigCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..52362f6356e2c9e2f83d4ef34508214edd278035 GIT binary patch literal 4573 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..46b366b6b2d37bfa86d0bbabeb42af0b1f03b272 GIT binary patch literal 217 zcmd1j<>g`k0wwn9Oc4DTL?8o3AjbiSi&=m~3PUi1CZpdpP7@do12)In4VgsUzVCzrk|6Uq+d{3l98WhtY>JTUz}Nzs#}nl zoDEa~R$Y`@T%w;^QIeWhoSC0jtRLVS6zmxs;_4R?@9XO89~2qy?C2KczG$)ehvUVkRKL!T= 2] + table.append(row) + headers = [x.split(":")[0].strip() for x in data[0].split("\n") if len(x.split(":")) == 2] + not_found = [x for x in data[0].split("\n") if len(x.split(":")) < 2] + self._ui.printer("\n".join(not_found)) + if not truncate: + return headers, table + truncated_headers = [self.truncate_lengthy(str(x), self.max_width) for x in headers] + truncated_data = [[self.truncate_lengthy(str(x), self.max_width) for x in row] for row in table] + return truncated_headers, truncated_data + + # pylint: disable=unused-argument + def print_table(self, table_data, property_id=None): + """ + This function prints data in table format + :param table_data: data to be printed in table format + :type array of objects + :param property_id: Specifies the property which acts as the identifier + :type string + """ + headers, data = self.format_data(table_data, True) + self._ui.printer("\n") + self._ui.printer(tabulate(data, headers, tablefmt="plain")) + self._ui.printer("\n\n") + return + + def print_list(self, list_data, property_id=None): + """ + This function prints data in list format + :param list_data: data to be printed in list format + :type array of objects + :param property_id: Specifies the property which acts as the identifier + :type string + """ + + headers, data = self.format_data(list_data) + flag = 0 + counter = 0 + if property_id is None or property_id not in headers: + flag = 1 + + if flag == 0: + property_id_index = headers.index(property_id) + del headers[property_id_index] + + for item in data: + if flag == 0: + self._ui.printer("--- " + property_id + ": " + str(item[property_id_index] + " ---")) + item.remove(item[property_id_index]) + else: + counter += 1 + self._ui.printer("--- " + str(counter) + " ---") + for prop in enumerate(headers): + self._ui.printer("\n" + headers[prop[0]] + ": " + str(item[prop[0]])) + self._ui.printer("\n\n") + return + + def print_properties(self, data): + """ + This function prints the data in list format without any header + :param data:data to be printed without header + :type array of string + """ + if not data: + self._ui.printer("\n") + return + headers, data = self.format_data(data) + for item in data: + for prop in enumerate(headers): + self._ui.printer("\n" + headers[prop[0]] + ": " + str(item[prop[0]])) + self._ui.printer("\n") + self._ui.printer("\n") + return + + # pylint: disable=unused-argument + def output_to_json(self, json_data, property_id=None): + """ + This function prints data in json format + :param json_data: data to be printed in json format + :type json_data: array of objects + :param property_id: Specifies the property which acts as the identifier + :type property_id: string + """ + self._ui.printer("\n") + self._ui.print_out_json(json_data) + self._ui.printer("\n") + return + + @staticmethod + def truncate_lengthy(stringin, max_length): + """Truncate lengthy strings to a maximum size + :param stringin: string to truncate + :type stringin: string + :param max_length: maximum allowed length of a string + :type max_length: int + :return: return the truncated string + :rtype: string + """ + if stringin: + if len(stringin) > max_length: + return stringin[: (max_length - 2)] + ".." + return stringin + return "" diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/Mapper.py b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/Mapper.py new file mode 100644 index 0000000..ddd3443 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/Mapper.py @@ -0,0 +1,96 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""There are helper functions used to get required data using mapping table""" +from __future__ import absolute_import + +from jsonpointer import resolve_pointer + + +class Mapper(object): + """Helper functions for getting data""" + + def get_multiple_attributes(self, data, attributes_list, mapping_table, output_as_json=False, **resources): + """ + Method used to get data for multiple attributes + :param data: json from which data is to be extracted + :param attributes_list: list of attributes to be extracted + :param mapping_table: table used to extract data + :param output_as_json: specifies whether the output should be in json or not + :param resources: additional resources required to compute attributes + :return: Either string or json containing extracted information for all the attributes + """ + # loop over the list of attribute names provided + if output_as_json: + output = {} + for attribute in attributes_list: + output.update( + self.get_single_attribute( + data, + attribute, + mapping_table, + output_as_json=True, + resources=resources, + ) + ) + else: + output = "" + for attribute in attributes_list: + output += "\n" + self.get_single_attribute(data, attribute, mapping_table, resources=resources) + return output + + @staticmethod + def get_single_attribute(data, attribute_name, mapping_table, output_as_json=False, resources=None): + """ + Method used to get data for single attribute + :param data: json from which data is to be extracted + :param attribute_name: attribute to be extracted + :param mapping_table: table used to extract data + :param output_as_json: specifies whether the output should be in json or not + :param resources: additional resources required to compute attributes + :return: Either string or json containing extracted information for single attribute + """ + output = {} if output_as_json else "No match found for '{}'".format(attribute_name) + # finding the attribute in the mapping table + mapping = mapping_table.get(attribute_name, None) + if mapping: + # attribute exists in mapping table + resolved_data = resolve_pointer(data, mapping["path"], None) + + if resolved_data is not None: + # attribute_name is present in data + if "compute" in mapping: + resolved_data = mapping["compute"](data=resolved_data, resources=resources) + value = resolved_data + + if output_as_json: + if "renderJSON" in mapping: + # calling the rendering function to generate the JSON output + value = mapping["renderJSON"](value) + if isinstance(value, bytes): + value = value.decode("utf-8") + output = {attribute_name: value} + else: + if "renderText" in mapping: + # calling the rendering function to generate the TEXT output + value = mapping["renderText"](value) + if isinstance(value, bytes): + value = value.decode("utf-8") + output = "{}: {}".format(attribute_name, value) + + # attribute does not exist in mapping table or value is None + return output diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/MapperRenderers.py b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/MapperRenderers.py new file mode 100644 index 0000000..57208b1 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/MapperRenderers.py @@ -0,0 +1,478 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""These are helper functions used to render different attributes""" +from __future__ import absolute_import, division + +from enum import Enum + +from .Mapper import Mapper +from .PmemHelpers import PmemHelpers + + +class MapperRenderers(object): + """Methods used to render different attributes""" + + @staticmethod + def format_num(num): + """ + Method to convert any number to GiB + Note: The result produced by the unit conversion is in GiB. + However, it is labeled as GB to be consistent with other products. + :param num: any number + :return: formatted number in string format + """ + return str(PmemHelpers.py3_round(num / 1024, 2)) + " GB" + + @staticmethod + def format_num_json(num): + """ + Method to convert any number to GiB in json format + Note: The result produced by the unit conversion is in GiB. + However, it is labeled as GB to be consistent with other products. + :param num: any number + :return: formatted number in json format + """ + return {"Units": "GB", "Value": PmemHelpers.py3_round(num / 1024, 2)} + + @staticmethod + def format_percentage(num): + """ + Method to append % symbol + :param num: any number + :return: formatted percentage in string format + """ + return "{}%".format(num) + + @staticmethod + def format_percentage_json(num): + """ + Method to get formatted percentage + :param num: any number + :return: formatted percentage in json format + """ + return {"Units": "%", "Value": num} + + @staticmethod + def find_pmem_interleaved(**kwargs): + """ + Method to find whether specified member is interleaved or not + :param kwargs: + data (dict): all the Memory REST data for the individual Memory to check whether + interleaved or not + resources (dict): a dict containing all required REST resources; the 'chunks' keyword + containing all MemoryChunk data is required for this method + :return: Yes if interleaved, No if not interleaved, N/A otherwise + """ + member = kwargs.get("data", {}) + chunks = kwargs.get("resources").get("chunks", []) + data_id = member.get("@odata.id", "") + for chunk in chunks: + interleave_sets = chunk.get("InterleaveSets") + if not interleave_sets: + continue + for mem_set in interleave_sets: + if PmemHelpers.compare_id(data_id, mem_set.get("Memory").get("@odata.id")): + if len(interleave_sets) > 1: + return "Yes" + return "No" + return "N/A" + + @staticmethod + def calculate_total_capacity(**kwargs): + """ + Method to calculate total capacity + :param kwargs: + data (list): all the memory members for which total capacity is to be calculated + :return: total capacity in MiB + """ + members = kwargs.get("data", []) + total = 0 + if members: + for member in members: + capacity = Mapper.get_single_attribute( + member, "Capacity", MappingTable.device.value, output_as_json=True + ) + total += capacity.get("Capacity", {}).get("Value", 0) + # returning value in MiB + return total * 1024 + + @staticmethod + def calculate_total_pmem(**kwargs): + """ + Method to calculate total pmem size + :param kwargs: + data (list): all the memory members for which total pmem size is to be calculated + :return: total pmem size in MiB + """ + members = kwargs.get("data", []) + total = 0 + if members: + for member in members: + capacity = Mapper.get_single_attribute( + member, "PmemSize", MappingTable.device.value, output_as_json=True + ) + total += capacity.get("PmemSize", {}).get("Value", 0) + # returning value in MiB + return total * 1024 + + @staticmethod + def calculate_total_volatile(**kwargs): + """ + Method to calculate total volatile size + :param kwargs: + data (list): all the members for which total volatile size is to be calculated + :return: total volatile size in MiB + """ + members = kwargs.get("data", []) + total = 0 + if members: + for member in members: + capacity = Mapper.get_single_attribute( + member, "VolatileSize", MappingTable.device.value, output_as_json=True + ) + total += capacity.get("VolatileSize", {}).get("Value", 0) + # returning value in MiB + return total * 1024 + + @staticmethod + def find_dimm_ids(**kwargs): + """ + Method to find DimmIds present in given chunk + :param kwargs: + data (dict): all the MemoryChunk REST data for the individual Memory chunk of which + dimmids is to be found + resources (dict): a dict containing all required REST resources; the 'memory' keyword + containing all memory resources is required for this method + :return: string containing dimmids + """ + member = kwargs.get("data", {}) + memory_members = kwargs.get("resources").get("memory", []) + interleave_sets = member.get("InterleaveSets", []) + locations = [] + for interleave_set in interleave_sets: + for pmem in memory_members: + if PmemHelpers.compare_id(interleave_set.get("Memory").get("@odata.id"), pmem.get("@odata.id")): + location = Mapper.get_single_attribute( + pmem, "Location", MappingTable.device.value, output_as_json=True + ) + locations.append(location.get("Location", "")) + return PmemHelpers.location_format_converter(locations)[0] + + @staticmethod + def map_operation(**kwargs): + """ + Method to map HTTP operations to user-friendly names + :param kwargs: + data (str): HTTP operation to be mapped to user-friendly name + :return: mapped operation + """ + operation = kwargs.get("data", "") + operation_mapper = {"POST": "CREATE"} + return operation_mapper.get(operation, operation) + + @staticmethod + def calculate_task_pmem_size(**kwargs): + """ + Method to calculate pmem size for a task + :param kwargs: + data (dict): all the Task REST data for the individual task of which pmem size + is to be calculated + resources (dict): a dict containing all required REST resources; the 'memory' keyword + containing all memory resources is required for this method + :return: pmem size of task in MiB + """ + size = 0 + task = kwargs.get("data", {}) + # finding memory chunk size + memory_chunk_size = Mapper.get_single_attribute( + task, "MemoryChunkSize", MappingTable.tasks.value, output_as_json=True + ) + memory_chunk_size = memory_chunk_size.get("MemoryChunkSize", {}).get("Value", None) + if memory_chunk_size is not None: + size = memory_chunk_size + else: + memory_members = kwargs.get("resources", {}).get("memory", []) + interleave_sets = task.get("Payload").get("JsonBody").get("InterleaveSets", []) + selected_members = [] + for interleave_set in interleave_sets: + for pmem in memory_members: + if PmemHelpers.compare_id( + interleave_set.get("Memory").get("@odata.id"), + pmem.get("@odata.id"), + ): + selected_members.append(pmem) + # finding total capacity + total_capacity = Mapper.get_single_attribute( + selected_members, + "TotalCapacity", + MappingTable.summary.value, + output_as_json=True, + ) + total_capacity = total_capacity.get("TotalCapacity", {}).get("Value", 0) + # finding memory chunk size percentage + memory_chunk_size_percentage = Mapper.get_single_attribute( + task, + "MemoryChunkSizePercentage", + MappingTable.tasks.value, + output_as_json=True, + ) + memory_chunk_size_percentage = memory_chunk_size_percentage.get("MemoryChunkSizePercentage", {}).get( + "Value", None + ) + if memory_chunk_size_percentage is not None: + size = total_capacity * memory_chunk_size_percentage / 100 + # returning value in MiB + return size * 1024 + + @staticmethod + def calculate_task_volatile_size(**kwargs): + """ + Method to calculate volatile size for a task + :param kwargs: + data (dict): all the Task REST data for the individual task of which volatile size + is to be calculated + resources (dict): a dict containing all required REST resources; the 'memory' keyword + containing all memory resources is required for this method + :return: volatile size of task in MiB + """ + task = kwargs.get("data", {}) + memory_members = kwargs.get("resources", {}).get("memory", []) + interleave_sets = task.get("Payload").get("JsonBody").get("InterleaveSets", []) + selected_members = [] + for interleave_set in interleave_sets: + for pmem in memory_members: + if PmemHelpers.compare_id(interleave_set.get("Memory").get("@odata.id"), pmem.get("@odata.id")): + selected_members.append(pmem) + # finding total capacity + total_capacity = Mapper.get_single_attribute( + selected_members, + "TotalCapacity", + MappingTable.summary.value, + output_as_json=True, + ) + total_capacity = total_capacity.get("TotalCapacity", {}).get("Value", 0) + volatile_size = total_capacity + # finding memory chunk size + memory_chunk_size = Mapper.get_single_attribute( + task, "MemoryChunkSize", MappingTable.tasks.value, output_as_json=True + ) + memory_chunk_size = memory_chunk_size.get("MemoryChunkSize", {}).get("Value", None) + if memory_chunk_size is not None: + size = memory_chunk_size + volatile_size = total_capacity - size + else: + # finding memory chunk size percentage + memory_chunk_size_percentage = Mapper.get_single_attribute( + task, + "MemoryChunkSizePercentage", + MappingTable.tasks.value, + output_as_json=True, + ) + memory_chunk_size_percentage = memory_chunk_size_percentage.get("MemoryChunkSizePercentage", {}).get( + "Value", None + ) + if memory_chunk_size_percentage is not None: + size = total_capacity * memory_chunk_size_percentage / 100 + volatile_size = total_capacity - size + # returning value in MiB + return volatile_size * 1024 + + @staticmethod + def calculate_chunk_volatile_size(**kwargs): + """ + Method to calculate volatile size for a chunk + :param kwargs: + data (dict): all the Task REST data for the individual chunk of which volatile size + is to be calculated + resources (dict): a dict containing all required REST resources; the 'memory' keyword + containing all memory resources is required for this method + :return: volatile size of chunk in MiB + """ + chunk = kwargs.get("data", {}) + memory_members = kwargs.get("resources", {}).get("memory", []) + interleave_sets = chunk.get("InterleaveSets", []) + selected_members = [] + for interleave_set in interleave_sets: + for pmem in memory_members: + if PmemHelpers.compare_id(interleave_set.get("Memory").get("@odata.id"), pmem.get("@odata.id")): + selected_members.append(pmem) + # finding total capacity + total_capacity = Mapper.get_single_attribute( + selected_members, + "TotalCapacity", + MappingTable.summary.value, + output_as_json=True, + ) + total_capacity = total_capacity.get("TotalCapacity", {}).get("Value", 0) + volatile_size = total_capacity + # finding memory chunk size + memory_chunk_size = Mapper.get_single_attribute( + chunk, "PmemSize", MappingTable.delete_task.value, output_as_json=True + ) + memory_chunk_size = memory_chunk_size.get("PmemSize", {}).get("Value", None) + if memory_chunk_size is not None: + volatile_size = total_capacity - memory_chunk_size + + # returning value in MiB + return volatile_size * 1024 + + +DEVICE_MAPPING_TABLE = { + "PmemSize": { + "path": "/PersistentRegionSizeLimitMiB", + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, + "Capacity": { + "path": "/CapacityMiB", + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, + "DIMMStatus": {"path": "/Oem/Hpe/DIMMStatus", "renderJSON": lambda data: data}, + "FWVersion": {"path": "/FirmwareRevision", "renderJSON": lambda data: data}, + "Life": { + "path": "/Oem/Hpe/PredictedMediaLifeLeftPercent", + "renderText": MapperRenderers.format_percentage, + "renderJSON": MapperRenderers.format_percentage_json, + }, + "Location": {"path": "/DeviceLocator", "renderJSON": lambda data: data}, + "Status": {"path": "/Status/Health", "renderJSON": lambda data: data}, + "VolatileSize": { + "path": "/VolatileRegionSizeLimitMiB", + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, +} + +CONFIG_MAPPING_TABLE = { + "PmemInterleaved": {"path": "", "compute": MapperRenderers.find_pmem_interleaved}, + "PmemSize": { + "path": "/PersistentRegionSizeLimitMiB", + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, + "Location": { + "path": "/DeviceLocator", + "renderJSON": lambda data: data.encode("ascii", "ignore"), + }, + "VolatileSize": { + "path": "/VolatileRegionSizeLimitMiB", + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, +} + +SUMMARY_MAPPING_TABLE = { + "TotalCapacity": { + "path": "", + "compute": MapperRenderers.calculate_total_capacity, + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, + "TotalPmemSize": { + "path": "", + "compute": MapperRenderers.calculate_total_pmem, + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, + "TotalVolatileSize": { + "path": "", + "compute": MapperRenderers.calculate_total_volatile, + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, +} + +LOGICAL_MAPPING_TABLE = { + "PmemSize": { + "path": "/MemoryChunkSizeMiB", + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, + "DimmIds": { + "path": "", + "compute": MapperRenderers.find_dimm_ids, + "renderJSON": lambda data: data, + }, +} + +TASK_MAPPING_TABLE = { + "DimmIds": { + "path": "/Payload/JsonBody", + "compute": MapperRenderers.find_dimm_ids, + "renderJSON": lambda data: data, + }, + "MemoryChunkSize": { + "path": "/Payload/JsonBody/MemoryChunkSizeMiB", + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, + "MemoryChunkSizePercentage": { + "path": "/Payload/JsonBody/Oem/Hpe/MemoryChunkSizePercentage", + "renderText": MapperRenderers.format_percentage, + "renderJSON": MapperRenderers.format_percentage_json, + }, + "PmemSize": { + "path": "", + "compute": MapperRenderers.calculate_task_pmem_size, + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, + "Operation": { + "path": "/Payload/HttpOperation", + "compute": MapperRenderers.map_operation, + }, + "Type": {"path": "/Payload/JsonBody/AddressRangeType"}, + "VolatileSize": { + "path": "", + "compute": MapperRenderers.calculate_task_volatile_size, + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, +} + +DELETE_TASK_MAPPING_TABLE = { + "DimmIds": { + "path": "", + "compute": MapperRenderers.find_dimm_ids, + "renderJSON": lambda data: data, + }, + "Operation": {"path": "", "compute": lambda **kwargs: "DELETE"}, + "PmemSize": { + "path": "/MemoryChunkSizeMiB", + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, + "VolatileSize": { + "path": "", + "compute": MapperRenderers.calculate_chunk_volatile_size, + "renderText": MapperRenderers.format_num, + "renderJSON": MapperRenderers.format_num_json, + }, +} + + +class MappingTable(Enum): + """Enum class representing mapping tables""" + + device = DEVICE_MAPPING_TABLE + summary = SUMMARY_MAPPING_TABLE + config = CONFIG_MAPPING_TABLE + logical = LOGICAL_MAPPING_TABLE + tasks = TASK_MAPPING_TABLE + delete_task = DELETE_TASK_MAPPING_TABLE diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/PmemHelpers.py b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/PmemHelpers.py new file mode 100644 index 0000000..0dee0cf --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/PmemHelpers.py @@ -0,0 +1,132 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""This module contains common helper functions used by several pmem commands""" + + +class PmemHelpers(object): + """ + Class containing common helper functions used by several pmem commands + """ + + @staticmethod + def py3_round(number, precision): + """ + Rounds numbers in accordance with the Python 3 round specification + :param number: number to be rounded + :type number: floating point number + :param precision: Number of decimal places the number should be rounded off to + :type precision: integer + :return: rounded off number + """ + if abs(round(number) - number) == 0.5: + return 2.0 * round(number / 2.0, precision) + return round(number, precision) + + @staticmethod + def parse_dimm_id(dimm_id_list): + """ + Converts DIMM IDs from the 'X@Y' format + to the 'PROC X DIMM Y' format + :param dimm_id_list: DIMM IDs in the 'X@Y' format + :type dimm_id_list: list + :return: list of DIMM IDs in the 'PROC X DIMM Y' format + """ + parsed_list = list() + for dimm_id in dimm_id_list: + temp = dimm_id.split("@") + parsed_list.append("PROC " + temp[0] + " DIMM " + temp[1]) + return parsed_list + + @staticmethod + def get_pmem_members(memory_members): + """ + Filters persistent memory members from memory resources + :param memory_members: members of memory collection resource + :type memory_members: list of members + :returns: list of persistent memory members if found else empty list + """ + base_module_type = "PMM" + pmem_members = list() + pmem_dimm_id = set() + for member in memory_members: + memory_type = member.get("Oem").get("Hpe").get("BaseModuleType") + if memory_type == base_module_type: + pmem_members.append(member) + pmem_dimm_id.add(member.get("DeviceLocator")) + return pmem_members, pmem_dimm_id + + @staticmethod + def get_non_aep_members(memory_members): + """ + Filters dram memory members from memory resources + :param memory_members: members of memory collection resource + :type memory_members: list of members + :returns: list of dram memory members if found else empty list + """ + base_module_type = "PMM" + dram_members = list() + dram_dimm_id = set() + for member in memory_members: + memory_type = member.get("Oem").get("Hpe").get("BaseModuleType") + if memory_type != base_module_type: + dram_members.append(member) + dram_dimm_id.add(member.get("DeviceLocator")) + return dram_members, dram_dimm_id + + @staticmethod + def json_to_text(dictionary): + """ + Converts json to string format + :param dictionary: json to be converted + :return: list containing the string + """ + output = "" + for key, value in dictionary.items(): + item = "\n" + key + ":" + str(value) + output += item + return [output] + + @staticmethod + def location_format_converter(location_list): + """ + Converts location format from 'PROC X DIMM Y' to 'X@Y' + :param location_list: list of locations of the format 'PROC X DIMM Y' + :type location_list: list of strings + :returns: string of locations in the 'X@Y' format (comma separated) + """ + converted_str = "" + for location in location_list: + temp = location.split(" ") + converted_str += temp[1] + "@" + temp[3] + if location is not location_list[-1]: + converted_str += ", " + return converted_str, ("PROC " + converted_str[0]) + + @staticmethod + def compare_id(id1, id2): + """ + Compares two ids + :param id1: first id to be compared + :param id2: second id to be compared + :return: True if ids are same else False + """ + if id1[-1] == "/": + id1 = id1[:-1] + if id2[-1] == "/": + id2 = id2[:-1] + return id1 == id2 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/RestHelpers.py b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/RestHelpers.py new file mode 100644 index 0000000..66d1ca3 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/RestHelpers.py @@ -0,0 +1,268 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""This is the helper class with functions that manipulate REST data""" +from __future__ import absolute_import # check if python3 supported + +import json +import multiprocessing +from multiprocessing.dummy import Pool as ThreadPool + + +class RestHelpers(object): + """This is the helper class with functions that manipulate REST data""" + + def __init__(self, rdmcObject): + self.rdmc = rdmcObject # relies on the updated reference to the RDMC class object + + def get_resource(self, url): + """ + Perform a GET request for the specified URL + :param url: the URL of the resource to fetch + :type: string + :returns: object containing the REST responsed + :rtype: RestResponse object + """ + accepted_status = [200, 202] + resp = self.rdmc.app.get_handler(url, service=True, silent=True) + if resp and resp.status in accepted_status and resp.dict: + return resp.dict + return None + + def retrieve_memory_resources(self): + """ + Retrieve the expanded Memory Collection resource + """ + return self.get_resource("/redfish/v1/systems/1/memory?$expand=.") + + def retrieve_mem_domain_resources(self, chunks_flag=True): + """ + Retrieve Memory Domain Resources and All Chunks + """ + mem_domain_resources = self.get_resource("/redfish/v1/systems/1/MemoryDomains?$expand=.") + domain_members = [] + all_chunks = [] + if mem_domain_resources: + domain_members = mem_domain_resources.get("Members") + if not chunks_flag: + return domain_members + chunk_id_list = list() + for member in domain_members: + chunk_id_list.append(member.get("MemoryChunks").get("@odata.id") + "?$expand=.") + if chunk_id_list: + chunks = self.concurrent_get(chunk_id_list) + else: + chunks = [] + # combining all chunks + for chunk in chunks: + chunk_members = chunk.get("Members") + if chunk_members: + temp_chunks = [member for member in chunk_members] + else: + temp_chunks = [] + all_chunks.extend(temp_chunks) + return domain_members, all_chunks + + @staticmethod + def filter_task_members(task_members): + """ + Filters new memory chunk task members + :param task_members: list of task members to be filtered + :return: list of filtered task members + """ + members = list() + for member in task_members: + # retrieving only new tasks + if member.get("TaskState") == "New": + target_uri = member.get("Payload").get("TargetUri") + # checking if type Memory Chunk collection + if "MemoryChunks" in target_uri: + json_body = member.get("Payload").get("JsonBody") + if json_body: + member["Payload"]["JsonBody"] = json.loads(json_body) + members.append(member) + return members + + def retrieve_task_members(self): + """ + Retrieve task members + :returns: list of task members + """ + # retrieving task resources + task_resources = self.get_resource("/redfish/v1/TaskService/Tasks?$expand=.") + # getting task members + if task_resources: + task_members = task_resources.get("Members") + if task_members: + return task_members + return [] + + def retrieve_mem_and_mem_domains(self): + """ + Helper Function to retrieve Memory Resources and Memory Domain Resources + concurrently + :returns: memory resources, memory domain members and a list of memory chunks + """ + # 'resource_list' is a list of functions that will be called to retrieve resources. + resource_list = [ + self.retrieve_memory_resources, + self.retrieve_mem_domain_resources, + ] + # 'response_list' contains the list of responses received on calling the functions + # that are a part of 'resource_list', in the same order. + response_list = self.concurrent_retrieve(resource_list) + # Segregating individual responses from 'response_list': + # The 'get()' call is responsible for retrieving the value that a function returns + # from the 'AsyncResult' object returned by 'apply_async' in 'concurrent_retrieve'. + memory = response_list[0].get() + # domain_members and all chunks are returned as a tuple in 'response_list' as per the + # 'retrieve_mem_domain_resources()' function definition. They are unpacked here. + (domain_members, all_chunks) = response_list[1] + # Returns the values of resources obtained above. + return memory, domain_members, all_chunks + + def retrieve_task_members_and_mem_domains(self): + """ + Helper Function to retrieve Task Resources and Memory Domain Resources + concurrently + :returns: task members, memory domain members and a list of memory chunks + """ + # 'resource_list' is a list of functions that will be called to retrieve resources. + resource_list = [self.retrieve_task_members, self.retrieve_mem_domain_resources] + # 'response_list' contains the list of responses received on calling the functions + # that are a part of 'resource_list', in the same order. + response_list = self.concurrent_retrieve(resource_list) + # Segregating individual responses from 'response_list': + # The 'get()' call is responsible for retrieving the value that a function returns + # from the 'AsyncResult' object returned by 'apply_async' in 'concurrent_retrieve'. + task_members = response_list[0].get() + # domain_members and all chunks are returned as a tuple in 'response_list' as per the + # 'retrieve_mem_domain_resources()' function definition. They are unpacked here. + (domain_members, all_chunks) = response_list[1] + # Returns the values of resources obtained above. + return task_members, domain_members, all_chunks + + @staticmethod + def concurrent_retrieve(resource_list): + """ + Concurrently retrieve Resources + :param resource_list: List of resources to retrieve concurrently + :type: List of functions + :returns: List of response objects obtained as a result of GET requests + :rtype: List of objects + """ + response_list = list() + # Spawn a pool of worker threads based on the CPU core count and + # the number of functions to call. + # 'len(resource_list) - 1' ensures that the last function call happens + # on the main thread and not on a worker thread. + pool = ThreadPool(min(len(resource_list) - 1, multiprocessing.cpu_count())) + # Asynchronously call funtions from 'resource_list' on worker threads and + # append responses to 'response_list'. These responses will be 'AsyncResult' + # objects and the actual return value will have to be retrieved by a 'get()' + # call to the returned response. + for resource in resource_list[:-1]: + response_list.append(pool.apply_async(resource)) + # Call the last function in 'resource_list' on the main thread so that + # the main thread is doing some useful work and not sitting idle waiting + # for all other threads to complete. This reduces the thread communication + # overhead as well. The response returned here will not be an 'AsyncResult' + # object and no 'get()' call is required to retrieve the actual return value. + temp_response = resource_list[-1]() + # Wait for all worker threads to complete execution. + pool.close() + pool.join() + # Once all threads have finished execution, append the response recieved + # on the main thread to the 'response_list'. + response_list.append(temp_response) + # Return list of responses obtained from the main and worker threads. + return response_list + + def concurrent_get(self, uri_list): + """ + Spawns a Threadpool and sends concurrent GET Requests + :param uri_list: List of URIs on which the GET Requests + are supposed to be made + :returns: List of responses from the GET Requests + """ + # Spawn a pool of worker threads based on the CPU core count and + # the number of GET requests to be sent + pool = ThreadPool(min(multiprocessing.cpu_count(), len(uri_list))) + response_list = pool.map(self.get_resource, uri_list) + # Wait for worker threads to complete + pool.close() + pool.join() + # Return list of responses obtained via GET requests from worker threads + return response_list + + def delete_resource(self, url): + """ + Perform a delete request for the specified URL + :param url: the URL of the resource to delete + :type: string + :returns: status code + """ + resp = self.rdmc.app.delete_handler(url, service=True, silent=True) + if resp and resp.status in [200, 202]: + return resp.status + return None + + def post_resource(self, path, body): + """ + Perform a post request for the specified path with body + :param path: the URL path + :type: string + :body: the body to be sent + :type: string + :returns: status code + """ + accepted_status = [200, 201, 202, 204] + resp = self.rdmc.app.post_handler(path, body, service=True, silent=True) + if resp and resp.status in accepted_status: + return resp.status + return None + + def in_post(self): + """ + Check whether the server is in POST + :return: True if server is in Post, False otherwise + :rtype: Boolean + """ + resp_body = self.get_resource("/redfish/v1/systems/1") + if resp_body: + if resp_body.get("Oem").get("Hpe").get("PostState") == "FinishedPost": + return False + return True + + def retrieve_security_state(self, path): + """ + Get the security state + """ + return self.get_resource(path) + + def retrieve_pmem_location(self): + """ + Retrieve the Pmem location + """ + return self.get_resource("/redfish/v1/Systems/1/Memory/?$expand=.#") + + def retrieve_model(self, rdmcObj): + """ + Retrieve the Model + """ + self.rdmc = rdmcObj + return self.get_resource("/redfish/v1/Chassis/1") diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/DisplayHelpers.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/DisplayHelpers.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..13584dd3b3d72fad5d75ca2de9c1c2c7b3635ecc GIT binary patch literal 6984 zcmd5>-EZ6073Y^Eijp1MaqGC<8uoM3kjQB}tf-I%Z4)QU&^Se$BCF7XV00;)iA2hm zR1$0S%aUz<*?|2A_QM9`VgC?;J?*Kl+gpHP`<;79ic)L?+ruy!yuQ4j=bn$>Ip;E5 zSg;iQ-m3k||Lg0D@;7=Z|4h7miYI!8f+<~vsZ1NFL#?Z+RM!Xk(C8YXZVW2JO1Gja z6AL|+L3LQ`)`n)+RF!*5uxuz^eSbq$=uh-p)BdlOKz*#-P*|1Ko++&68Bg_Y1MeoQ zXTtLeh+aXcEw*F!#Z<7o08 zZDsccZWP(v8*wl4f|w`{#V|StjY}&aW#Fa8z>nh8co2obR;!kpjuW^;&v8=AafTrq z52)UBoV~F-$a-py!@{29a1tZ0Q$gZ>uJAKdr{cwLH+I9JxA7qQ;Qfy`Mm&7r_2Ov5 zAA}c&Zs6{CeB+T9JlYue_cuoS@opG=*na=gM&!rd#gW^4h!J8msE;?iC$SeqB!rDG zH}7oU+`hZHb=SGIdF%F_ubr#6Z{7NA>)N(h>Y9|#&xP!w_Gq8iK+JhO5m9I=hH7Yr zYO13BC9dlj^C=DPqbPG7ilcz%uP~h%&s1>!RiRR9x5n03omprz(biy1)as}$utn4? zc7`oIQ@RbbEVC7~G`$6OmaRTho~qqNA-{9!;w;sZ%aZ&#)f;hNicu(D9Ok+>uY;=~ zy{Dnbe^jS~UBwe!Mv*8F=uu!bZ%*m6kWkTOa z0N^qN0GWP}cDezx;p!iGJhtz6tnWv=dH23ez7c8@+I{YO0UKm3Q(L(i+wLF=?U-XX zL;$u_7E*dI@USTCa&PQ&j}`h;vhb2w_jx$Xv^Aq~mlQU%?|V7*zQ?8;cM2ozAi6o- zGIQd}Rs#B9C_E<|ewa)M403T(|+#7V;*!qkc35T z`?}8~FiMb#rGY&K$x}&8&$jJBAnf?@678bt;4%i5*TxdD3!j1*>5)4a;}rc|u0rfF zqz-$HM%ao5`2q8uOqcCZu$KSG+fvN2jVJ1$*n#i-cKtw&q0w+E%8~jM&gNl-YfL%R z@;0V1{WowWN9v(|r2J9aBP}&vsGaX=!S88@t(KAM120G`h(Ub{*+QRQ06C-QTB@}# zrRtM;i?=QlVE4k|=*m|_5v|ryCha*3mq;vNp?!G}_MoU&P|2sJs`b(#$z6*>UP472 za`mM{YP@tn7`av)P3Lc68h@J#IvlX?U8=uF#gD0IQ8DZKIeGkhc*HR-$(bh;Mmq?? z7G5GuA;K~)Yg1BMT8WC22>4}Az+1|(d!I%BKi9aZPcm=HA$-! zSp|%*)2x~ZH$BdOgtwL@{iZ>F4mnqbxH2#`D45|t6_X@>Mrj?O<@CdGz|!S>G;{La z#c2~QD48NCBrc?llJ(p`LqxJOnx?vni1Zx(R^U`klq)DFubs@L8P`fuBp|s;D}Ih5 zff`YqdZc}$9q0!lXg}0slu9A{p%&|jk-$MRHYP3JNgKzZ{NPgje$#AQL6A{EP-ra7D?r(15?AA~oPhmGWl@ zr|?u0=m2t;v&d3(NSoGOi_IW!_hK=zbEz;g%n zYz*yQXX?7Lu9Wu4TJnAN?q#D*T4nETCIYp|i>dTZ(^&FVCnzj+ovN?L&iy}7SK%4A z_&X5&#JG6zqWwba*b~D>RVXt53_Y!y(Au;jqLPyGzK_nd%DrLu$V=;#A$goGo-%B# z7i{6AU{f_tjsC#hNozg8VeIjAxuopKyb=2Fk7;Rx+UIrtRrG{-A|iURj_VeYQka^B z{M^(`^&PyM+BsN48#z0yVSNq{r8N+7Gq)H7hlMfx8ZU_&Sx^{C)I}~p>H-6SUl#_V z9l+y43Ew@?0gGCukOZ1y28;#QXqiG9Lh%8fvZYYS^?bBY$g|})p`4Y;pH5d!f-UkG z1d1gkvmg7o@fst{4e~UjSf?EFi>WfM&(SrXDP7Za)~vS9!Jbf-Eul^P8dwKNBcCZT zPCy>HElvuPp`FAtfovpe{sk4Y@Rlw~NoCrBK=}_C6cOkdRl>PNcsnU&fqLhUmGgA= z4D{((g&qNY6b_boFX}?h0H-+(XzA_>;>m(Br+PWMQ#k=MsOwbBICid(LTT#%*xQv1 zwUgy%1tX*mAj~c#pDs!PLJ`G<9QuT#s}~25z%VOzz6NO=;)&?;w+XK%r2E4;>1Ov6 z*FtlLYRvC2IPA; z&!MxJxyVLgEv}6_MSqAp@W`K(?v3QFkTeZH$QeX=a~|Fm%#s=N{LpE)T#BwP<^G*w zOLs5`AA8J}?UYEm^OBH@mnS3iny#H?#JCKg%vjt*<@B+amO=UIW`3U3nr=R4)SQyJzu*xui(xep!xDy1=B+m;DNkCk%?hS*$~#)>_0}2Q zpw}i93sfwkNDXmEOgCGczH9I|sSp4}u))cB@LN=nlBLZkc4NOc#O*`K1Z5>^g;t6r zWEo>A=oeu(-SAg6OS5X$s`Z++Xr8xLw1q{L)2OZ1qND?#Hu__*7oRpbsbgx8d*nK* zBIZjQoDF-3|LGHuxRjH((~Xz_JwTIw#7@b8V00TX!kov5Iovt02QG8BP|%v( z*&cJjeG1Q*Cj}S&sLUc2=b7|N$(gTm{~=et;Jalk;GI!LVI|HU`YA06^Q-7E;Xi?W z6kvUV4rQK{iidGpUB2c{ybZG)4KO%jF+8xD$81I(;{o9g zTVXD1J;nzZz&ilGt=&yPz{TXvJ4d09a$#UA1J5A76*)@=J@{|J`WZa(3m7UQ&c1v@{*KHueq zG=XBB%`VCo0u$va0C;(91y`j2P#bZLL_+kTa=>OC=qS$=jWaVf4=n(LjHT3=^iA$) zlGGk7Vmt@C9a#GKVgL2Y9Hd4Xw*xF(C`8!kmIc%U*QcR=L(^vo59c}qPZP#Um))?7hoZuXJUs_L8{AP{hz`%BA&>68jr&`lY;AA! zx5Lei&AazM4{zMv+`QhuxmBxbI`?w%NS`r&J}>-*r}8|2lNVti#|ZW?f!mtj-M?aV!gIqI_#TGJ79>U)VHmm|Kf_a}vYtZkGwYcJeeMdX ztO`{wv(F)B9oWDREoPNiQ0RPj4~YQQ$TkPkE*(t3}t( zEA>AmnJ}X%hsJzfqyJM2kleqamRF{0a;BfdF|6PO80BTgY9hL{KfTn~q@Zf7TQkxN zEYX2VZ@8c>c*eN+bn9+^;*@H%eofD&wxNM1?*6pr?@t3)yA8u>8~RGvAg|joV3CSu z5!cS}5u8ujWjx9m4_0am`uIHEb^66|V|LC%;)K!Cnz58#H6#dM1}v=U%-N$!$!l6_ zhEqn^oYdFgk?+88>R87jc+K+QUNfX%dAMV>aobQt+xw;Y-@(M5oL?e^7kCuk3anfG zpryUA#u_SCayK6uO0MNzW=MM< UHn2Z}?nlym+mMqT2+C>uFSV`$G5`Po literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/MapperRenderers.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/MapperRenderers.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a1e1c5ea74dffbefcdd6e01caceaae6d1490ff56 GIT binary patch literal 12211 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/PmemHelpers.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/PmemHelpers.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ab4d58516898ec4f6aa1bb77a5844cdf07d7f7fa GIT binary patch literal 4272 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/PERSISTENT_MEMORY_COMMANDS/lib/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..67f0781c7cb1c693665237fb7666c0b356f18884 GIT binary patch literal 221 zcmd1j<>g`k0wwn9Oc4DTL?8o3AjbiSi&=m~3PUi1CZpd-pOK%Ns-IPC zWN4{hP?VpQnp{$>pP7@do12)In4VgsUzVCzrk|6Uq+d{3l98WhtY>JTUz}Nzs#}nl zoDEa~R$Y`@T%w;^QIeWhoSC0jtRLVS6zmxs;_4R?@9XO89~2qy?CPO2TqWyMTDf`tJ985=pn literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawDeleteCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawDeleteCommand.py new file mode 100644 index 0000000..046a34a --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawDeleteCommand.py @@ -0,0 +1,219 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""RawDelete Command for rdmc""" + +import sys + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class RawDeleteCommand: + """Raw form of the delete command""" + + def __init__(self): + self.ident = { + "name": "rawdelete", + "usage": None, + "description": "Run to to delete data from" + ' the passed in path.\n\texample: rawdelete "/redfish/v1/' + 'Sessions/(session ID)"\n', + "summary": "Raw form of the DELETE command.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main raw delete worker function + + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + headers = {} + + if hasattr(options, "sessionid") and options.sessionid: + self.sessionvalidation(options) + else: + self.deletevalidation(options) + + if options.path.startswith('"') and options.path.endswith('"'): + options.path = options.path[1:-1] + + if options.expand: + options.path = options.path + "?$expand=." + + try: + currentsess = self.rdmc.app.current_client.session_location + except: + currentsess = None + + if options.headers: + extraheaders = options.headers.split(",") + + for item in extraheaders: + header = item.split(":") + + try: + headers[header[0]] = header[1] + except: + InvalidCommandLineError("Invalid format for --headers option.") + + if currentsess and (options.path in currentsess): + self.rdmc.app.logout() + self.rdmc.ui.printer( + "Your session has been terminated (deleted).\nPlease log " "back in if you wish to continue.\n" + ) + else: + returnresponse = False + + if options.response or options.getheaders: + returnresponse = True + + results = self.rdmc.app.delete_handler( + options.path, + headers=headers, + silent=options.silent, + service=options.service, + ) + + if returnresponse and results: + if options.getheaders: + self.rdmc.ui.print_out_json(dict(results.getheaders())) + + if options.response: + sys.stdout.write(results.read) + self.rdmc.ui.printer("\n") + elif results.status == 404: + return ReturnCodes.NO_CONTENTS_FOUND_FOR_OPERATION + elif results.status != 200: + return ReturnCodes.UI_CLI_USAGE_EXCEPTION + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def deletevalidation(self, options): + """Raw delete validation function + + :param options: command line options + :type options: list. + """ + self.rdmc.login_select_validation(self, options, skipbuild=True) + + def sessionvalidation(self, options): + """Raw delete session validation function + + :param options: command line options + :type options: list. + """ + + url = None + if options.user or options.password or options.url: + if options.url: + url = options.url + else: + if self.rdmc.app.config.get_url(): + url = self.rdmc.app.config.get_url() + if url and "https://" not in url: + url = "https://" + url + + return url + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "path", + help="Uri on iLO to be deleted.", + ) + customparser.add_argument( + "--response", + dest="response", + action="store_true", + help="Use this flag to return the iLO response body.", + default=False, + ) + customparser.add_argument( + "--getheaders", + dest="getheaders", + action="store_true", + help="Use this flag to return the iLO response headers.", + default=False, + ) + customparser.add_argument( + "--headers", + dest="headers", + help="Use this flag to add extra headers to the request." + "\t\t\t\t\t Usage: --headers=HEADER:VALUE,HEADER:VALUE", + default=None, + ) + customparser.add_argument( + "--silent", + dest="silent", + action="store_true", + help="""Use this flag to silence responses""", + default=False, + ) + customparser.add_argument( + "--service", + dest="service", + action="store_true", + help="""Use this flag to enable service mode and increase the function speed""", + default=False, + ) + customparser.add_argument( + "--expand", + dest="expand", + action="store_true", + help="""Use this flag to expand the path specified using the """ """expand notation '?$expand=.'""", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawGetCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawGetCommand.py new file mode 100644 index 0000000..c704d75 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawGetCommand.py @@ -0,0 +1,322 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""RawGet Command for rdmc""" + +import json + +import redfish +import requests +from urllib.parse import urljoin +import sys + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ResourceNotReadyError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ResourceNotReadyError, + ReturnCodes, + ) + + +class RawGetCommand: + """Raw form of the get command""" + + def __init__(self): + self.ident = { + "name": "rawget", + "usage": None, + "description": "Run to to retrieve data from " + 'the passed in path.\n\tExample: rawget "/redfish/v1/' + 'systems/(system ID)"', + "summary": "Raw form of the GET command.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main raw get worker function + + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + headers = {} + + if getattr(options, "no_auth"): + pass + else: + if hasattr(options, "sessionid") and options.sessionid: + _ = self.sessionvalidation(options) + else: + self.getvalidation(options) + + if options.path.endswith("?=."): + path = options.path + strip = path[:-3] + options.path = strip + "?$expand=." + + if options.path.startswith('"') and options.path.endswith('"'): + options.path = options.path[1:-1] + + if options.expand: + options.path = options.path + "?$expand=." + + if options.headers: + extraheaders = options.headers.split(",") + for item in extraheaders: + header = item.split(":") + + try: + headers[header[0]] = header[1] + except: + InvalidCommandLineError("Invalid format for --headers " "option.") + + returnresponse = False + if options.response or options.getheaders: + returnresponse = True + + extra_path = None + if "#" in options.path: + path_list = options.path.split("#") + options.path = path_list[0] + extra_path = path_list[1] + if "/" in extra_path: + extra_path_list = extra_path.split("/") + extra_path_list = list(filter(None, extra_path_list)) + if getattr(options, "no_auth"): + if options.url: + url = "https://" + options.url.rstrip("/") + else: + url = "https://16.1.15.1" + path = urljoin(url, options.path.lstrip("/")) + try: + response = requests.get(path, verify=False) + if response.status_code == 200: + data = response.json() + self.rdmc.ui.printer("%s\n" % json.dumps(data, indent=4)) + return ReturnCodes.SUCCESS + except Exception as e: + sys.stdout.write("Error: Failed to complete operation.\n") + return ReturnCodes.INVALID_COMMAND_LINE_ERROR + + results = self.rdmc.app.get_handler( + options.path, + sessionid=options.sessionid, + headers=headers, + silent=options.silent, + service=options.service, + username=options.user, + password=options.password, + base_url=options.url, + noauth=options.no_auth, + stderr_flag=options.stderr_flag, + ) + result = None + if results.dict: + if extra_path: + result = results.dict + for p in extra_path_list: + if p.isdigit(): + p = int(p) + result = result[p] + else: + result = results.dict + + if results and results.status == 200 and options.binfile: + output = results.read + filehndl = open(options.binfile[0], "wb") + filehndl.write(output) + filehndl.close() + elif results and returnresponse: + if options.getheaders: + self.rdmc.ui.printer(json.dumps(dict(results.getheaders())) + "\n") + if options.response: + self.rdmc.ui.printer(results.read + "\n") + elif results and results.status == 200: + if results.dict: + if options.filename: + output = json.dumps( + result, + indent=2, + cls=redfish.ris.JSONEncoder, + sort_keys=True, + ) + + filehndl = open(options.filename[0], "w") + filehndl.write(output) + filehndl.close() + + self.rdmc.ui.printer("Results written out to '%s'.\n" % options.filename[0]) + else: + if not result: + result = results.dict + if options.service: + self.rdmc.ui.printer("%s\n" % result) + else: + self.rdmc.ui.print_out_json(result) + else: + json_payload = json.loads(results._http_response.data) + try: + message_id = json_payload["error"]["@Message.ExtendedInfo"][0]["MessageId"] + self.rdmc.ui.error("%s" % message_id) + if "ResourceNotReadyRetry" in message_id: + raise ResourceNotReadyError("Resources are not ready in iLO, Please wait for some time and retry") + except: + self.rdmc.ui.error("An invalid or incomplete response was received: %s\n" % json_payload) + return ReturnCodes.NO_CONTENTS_FOUND_FOR_OPERATION + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def getvalidation(self, options): + """Raw get validation function + + :param options: command line options + :type options: list. + """ + self.rdmc.login_select_validation(self, options, skipbuild=True) + + def sessionvalidation(self, options): + """Raw patch session validation function + + :param options: command line options + :type options: list. + """ + + url = None + if options.user or options.password or options.url: + if options.url: + url = options.url + else: + if self.rdmc.app.redfishinst and self.rdmc.app.redfishinst.base_url: + url = self.rdmc.app.redfishinst.base_url + if url and "blobstore://" not in url and "https://" not in url: + url = "https://" + url + + return url + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "path", + help="Uri on iLO", + ) + customparser.add_argument( + "--response", + dest="response", + action="store_true", + help="Use this flag to return the iLO response body.", + default=False, + ) + customparser.add_argument( + "--getheaders", + dest="getheaders", + action="store_true", + help="Use this flag to return the iLO response headers.", + default=False, + ) + customparser.add_argument( + "--headers", + dest="headers", + help="Use this flag to add extra headers to the request." " example: --headers=HEADER:VALUE,HEADER:VALUE", + default=None, + ) + customparser.add_argument( + "--silent", + dest="silent", + action="store_true", + help="""Use this flag to silence responses""", + default=False, + ) + customparser.add_argument( + "-f", + "--filename", + dest="filename", + help="""Write results to the specified file.""", + action="append", + default=None, + ) + customparser.add_argument( + "-b", + "--writebin", + dest="binfile", + help="""Write the results to the specified file in binary.""", + action="append", + default=None, + ) + customparser.add_argument( + "--service", + dest="service", + action="store_true", + help="""Use this flag to enable service mode and increase the function speed""", + default=False, + ) + customparser.add_argument( + "--expand", + dest="expand", + action="store_true", + help="""Use this flag to expand the path specified using the """ """expand notation '?$expand=.'""", + default=False, + ) + customparser.add_argument( + "--no_auth", + dest="no_auth", + action="store_true", + help="""Use this flag to enable service mode and increase the function speed""", + default=False, + ) + customparser.add_argument( + "--stderr_out", + "--stderr_flag", + dest="stderr_flag", + action="store_true", + help="""Use this flag to enable service mode and increase the function speed""", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawHeadCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawHeadCommand.py new file mode 100644 index 0000000..b534781 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawHeadCommand.py @@ -0,0 +1,148 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""RawHead Command for rdmc""" + +import json + +import redfish + +try: + from rdmc_helper import InvalidCommandLineErrorOPTS, ReturnCodes +except ImportError: + from ilorest.rdmc_helper import InvalidCommandLineErrorOPTS, ReturnCodes + + +class RawHeadCommand: + """Raw form of the head command""" + + def __init__(self): + self.ident = { + "name": "rawhead", + "usage": None, + "description": "Run to to retrieve data from the " + 'passed in path\n\texample: rawhead "/redfish/v1/systems/' + '(system ID)"\n', + "summary": "Raw form of the HEAD command.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main raw head worker function + + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.headvalidation(options) + + if options.path.startswith('"') and options.path.endswith('"'): + options.path = options.path[1:-1] + + results = self.rdmc.app.head_handler(options.path, silent=options.silent, service=options.service) + + content = None + tempdict = dict() + + if results and results.status == 200: + if results._http_response: + content = results.getheaders() + else: + content = results._headers + + tempdict = dict(content) + + if options.filename: + output = json.dumps(tempdict, indent=2, cls=redfish.ris.JSONEncoder, sort_keys=True) + filehndl = open(options.filename[0], "w") + filehndl.write(output) + filehndl.close() + + self.rdmc.ui.printer("Results written out to '%s'.\n" % options.filename[0]) + else: + if options.service: + self.rdmc.ui.printer("%s\n" % tempdict) + else: + self.rdmc.ui.print_out_json(tempdict) + else: + return ReturnCodes.NO_CONTENTS_FOUND_FOR_OPERATION + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def headvalidation(self, options): + """Raw head validation function + + :param options: command line options + :type options: list. + """ + self.rdmc.login_select_validation(self, options, skipbuild=True) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "path", + help="Uri on iLO to query HEAD.", + ) + customparser.add_argument( + "--silent", + dest="silent", + action="store_true", + help="""Use this flag to silence responses""", + default=None, + ) + customparser.add_argument( + "-f", + "--filename", + dest="filename", + help="""Use the provided filename to perform operations.""", + action="append", + default=None, + ) + customparser.add_argument( + "--service", + dest="service", + action="store_true", + help="""Use this flag to enable service mode and increase the function speed""", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawPatchCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawPatchCommand.py new file mode 100644 index 0000000..1e23ff0 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawPatchCommand.py @@ -0,0 +1,264 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""RawPatch Command for rdmc""" + +import json +import re +import sys +from collections import OrderedDict +from urllib.parse import urljoin + +import requests + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + InvalidFileInputError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + InvalidFileInputError, + ReturnCodes, + ) + + +class RawPatchCommand: + """Raw form of the patch command""" + + def __init__(self): + self.ident = { + "name": "rawpatch", + "usage": None, + "description": "Run to send a patch from the data" + " in the input file.\n\tMultiple PATCHes can be performed in sequence by " + "\n\tadding more path/body key/value pairs.\n" + "\n\texample: rawpatch rawpatch.txt" + '\n\n\tExample input file:\n\t{\n\t "/redfish/' + 'v1/systems/(system ID)":\n\t {\n\t ' + '"AssetTag": "NewAssetTag"\n\t }\n\t}', + "summary": "Raw form of the PATCH command.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main raw patch worker function + + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + headers = {} + results = [] + if getattr(options, "no_auth"): + pass + else: + if hasattr(options, "sessionid") and options.sessionid: + _ = self.sessionvalidation(options) + else: + self.patchvalidation(options) + + contentsholder = None + try: + with open(options.path, "r") as _if: + contentsholder = json.loads(_if.read(), object_pairs_hook=OrderedDict) + except IOError: + raise InvalidFileInputError( + "File '%s' doesn't exist. " "Please create file by running 'save' command." % options.path + ) + except ValueError: + raise InvalidFileFormattingError("Input file '%s' was not " "formatted properly." % options.path) + + if options.headers: + extraheaders = options.headers.split(",") + + for item in extraheaders: + header = item.split(":") + + try: + headers[header[0]] = header[1] + except: + raise InvalidCommandLineError("Invalid format for --headers option.") + if getattr(options, "no_auth"): + if options.url: + url = "https://" + options.url.rstrip("/") + else: + url = "https://16.1.15.1" + path = urljoin(url, contentsholder["path"].lstrip("/")) + body = contentsholder["body"] + try: + response = requests.patch(path, json=body, verify=False) + if response.status_code == 200: + sys.stdout.write(response.content.decode("utf-8") + "\n") + return ReturnCodes.SUCCESS + except Exception as e: + sys.stdout.write("Error: Failed to complete operation.\n") + return ReturnCodes.INVALID_COMMAND_LINE_ERROR + + if "path" in contentsholder and "body" in contentsholder: + results.append( + self.rdmc.app.patch_handler( + contentsholder["path"], + contentsholder["body"], + headers=headers, + silent=options.silent, + optionalpassword=options.biospassword, + service=options.service, + noauth=options.no_auth, + ) + ) + + elif all([re.match(r"^/(\S+/?)+$", key) for key in contentsholder]): + for path, body in contentsholder.items(): + results.append( + self.rdmc.app.patch_handler( + path, + body, + headers=headers, + silent=options.silent, + optionalpassword=options.biospassword, + service=options.service, + noauth=options.no_auth, + ) + ) + else: + raise InvalidFileFormattingError("Input file '%s' was not format properly." % options.path) + + returnresponse = False + + if options.response or options.getheaders: + returnresponse = True + + if results and returnresponse: + for result in results: + if options.getheaders: + self.rdmc.ui.print_out_json(dict(result.getheaders())) + + if options.response: + self.rdmc.ui.printer(result.read) + self.rdmc.ui.printer("\n") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def patchvalidation(self, options): + """Raw patch validation function + + :param options: command line options + :type options: list. + """ + self.rdmc.login_select_validation(self, options, skipbuild=True) + + def sessionvalidation(self, options): + """Raw patch session validation function + + :param options: command line options + :type options: list. + """ + + url = None + if options.user or options.password or options.url: + if options.url: + url = options.url + else: + if self.rdmc.app.redfishinst.base_url: + url = self.rdmc.app.redfishinst.base_url + if url and "https://" not in url: + url = "https://" + url + + return url + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "path", + help="Path to the JSON file containing the data to be patched.", + ) + customparser.add_argument( + "--silent", + dest="silent", + action="store_true", + help="""Use this flag to silence responses""", + default=False, + ) + customparser.add_argument( + "--response", + dest="response", + action="store_true", + help="Use this flag to return the iLO response body.", + default=False, + ) + customparser.add_argument( + "--getheaders", + dest="getheaders", + action="store_true", + help="Use this flag to return the iLO response headers.", + default=False, + ) + customparser.add_argument( + "--headers", + dest="headers", + help="Use this flag to add extra headers to the request." + "\t\t\t\t\t Usage: --headers=HEADER:VALUE,HEADER:VALUE", + default=None, + ) + customparser.add_argument( + "--service", + dest="service", + action="store_true", + help="""Use this flag to enable service mode and increase the function speed""", + default=False, + ) + customparser.add_argument( + "--no_auth", + dest="no_auth", + action="store_true", + help="""Use this flag to enable service mode and increase the function speed""", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawPostCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawPostCommand.py new file mode 100644 index 0000000..730ae63 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawPostCommand.py @@ -0,0 +1,276 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""RawPost Command for rdmc""" + +import json +import re +import sys +from collections import OrderedDict +import requests +from urllib.parse import urljoin + +try: + from rdmc_helper import ( + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + InvalidFileInputError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + InvalidFileInputError, + ReturnCodes, + ) + + +class RawPostCommand: + """Raw form of the post command""" + + def __init__(self): + self.ident = { + "name": "rawpost", + "usage": None, + "description": "Run to send a post from " + "the data in the input file.\n\tMultiple POSTs can be performed in sequence by" + " \n\tadding more path/body key/value pairs.\n" + "\n\texample: rawpost rawpost." + 'txt\n\n\tExample input file:\n\t{\n\t "/' + "redfish/v1/systems/(system ID)/Actions/ComputerSystem." + 'Reset":\n\t {\n\t "ResetType": ' + '"ForceRestart"\n\t }\n\t}', + "summary": "Raw form of the POST command.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main raw patch worker function + + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + headers = {} + results = [] + if getattr(options, "no_auth"): + pass + else: + if hasattr(options, "sessionid") and options.sessionid: + self.sessionvalidation(options) + else: + self.postvalidation(options) + + contentsholder = None + + try: + with open(options.path, "r") as _if: + contentsholder = json.loads(_if.read(), object_pairs_hook=OrderedDict) + except IOError: + raise InvalidFileInputError( + "File '%s' doesn't exist. " "Please create file by running 'save' command." % options.path + ) + except ValueError: + raise InvalidFileFormattingError("Input file '%s' was not " "formatted properly." % options.path) + if options.encode: + if ( + "body" in contentsholder + and "UserName" in contentsholder["body"] + and "Password" in contentsholder["body"] + and len(list(contentsholder["body"].keys())) == 2 + ): + encobj = Encryption() + contentsholder["body"]["UserName"] = encobj.decode_credentials(contentsholder["body"]["UserName"]) + contentsholder["body"]["Password"] = encobj.decode_credentials(contentsholder["body"]["Password"]) + + if options.headers: + extraheaders = options.headers.split(",") + for item in extraheaders: + header = item.split(":") + + try: + headers[header[0]] = header[1] + except: + raise InvalidCommandLineError("Invalid format for --headers option.") + + if getattr(options, "no_auth"): + if options.url: + url = "https://" + options.url.rstrip("/") + else: + url = "https://16.1.15.1" + path = urljoin(url, contentsholder["path"].lstrip("/")) + body = contentsholder["body"] + try: + response = requests.post(path, json=body, verify=False) + if response.status_code == 200: + sys.stdout.write(response.content.decode("utf-8") + "\n") + # sys.stdout.write("Operation completed successfully.\n") + return ReturnCodes.SUCCESS + except Exception as e: + sys.stdout.write("Error: Failed to complete operation.\n") + return ReturnCodes.INVALID_COMMAND_LINE_ERROR + + if "path" in contentsholder and "body" in contentsholder: + results.append( + self.rdmc.app.post_handler( + contentsholder["path"], + contentsholder["body"], + headers=headers, + silent=options.silent, + service=options.service, + noauth=options.no_auth, + ) + ) + elif all([re.match(r"^/(\S+/?)+$", key) for key in contentsholder]): + for path, body in contentsholder.items(): + results.append( + self.rdmc.app.post_handler( + path, + body, + headers=headers, + silent=options.silent, + service=options.service, + noauth=options.no_auth, + ) + ) + else: + raise InvalidFileFormattingError("Input file '%s' was not " "formatted properly." % options.path) + returnresponse = False + + if options.response or options.getheaders: + returnresponse = True + + if results and returnresponse: + for result in results: + if options.getheaders: + self.rdmc.ui.print_out_json(dict(result.getheaders())) + + if options.response: + if isinstance(result.ori, bytes): + self.rdmc.ui.printer(result.ori.decode("utf-8") + "\n") + else: + self.rdmc.ui.printer(result.ori + "\n") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def postvalidation(self, options): + """Raw post validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options, skipbuild=True) + + def sessionvalidation(self, options): + """Raw post session validation function + + :param options: command line options + :type options: list. + """ + + url = None + if options.user or options.password or options.url: + if options.url: + url = options.url + else: + if self.rdmc.app.redfishinst.base_url: + url = self.rdmc.app.redfishinst.base_url + if url and "https://" not in url: + url = "https://" + url + + return url + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "path", + help="Path to the JSON file containing the data to be patched.", + ) + customparser.add_argument( + "--response", + dest="response", + action="store_true", + help="Use this flag to return the iLO response body.", + default=False, + ) + customparser.add_argument( + "--getheaders", + dest="getheaders", + action="store_true", + help="Use this flag to return the iLO response headers.", + default=False, + ) + customparser.add_argument( + "--headers", + dest="headers", + help="Use this flag to add extra headers to the request." + "\t\t\t\t\t Usage: --headers=HEADER:VALUE,HEADER:VALUE", + default=None, + ) + customparser.add_argument( + "--silent", + dest="silent", + action="store_true", + help="""Use this flag to silence responses""", + default=False, + ) + customparser.add_argument( + "--service", + dest="service", + action="store_true", + help="""Use this flag to enable service mode and increase the function speed""", + default=False, + ) + customparser.add_argument( + "--no_auth", + dest="no_auth", + action="store_true", + help="""Use this flag to enable service mode and increase the function speed""", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawPutCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawPutCommand.py new file mode 100644 index 0000000..9e18f28 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/RawPutCommand.py @@ -0,0 +1,268 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""RawPut Command for rdmc""" + +import json +import re +import sys +from collections import OrderedDict +from urllib.parse import urljoin + +import requests + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + InvalidFileInputError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + InvalidFileInputError, + ReturnCodes, + ) + + +class RawPutCommand: + """Raw form of the put command""" + + def __init__(self): + self.ident = { + "name": "rawput", + "usage": None, + "description": "Run to send a post from " + "the data in the input file.\n\tMultiple PUTs can be performed in sequence by " + "\n\tadding more path/body key/value pairs.\n" + "\n\texample: rawput rawput." + 'txt\n\n\tExample input file:\n\t{\n\t "/redfish/' + 'v1/systems/(system ID)/bios/Settings/":\n\t {\n\t' + '\t"Attributes": {\n\t\t' + ' "BaseConfig": "default"\n\t\t}\n\t }\n\t}', + "summary": "Raw form of the PUT command.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main raw put worker function + + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + headers = {} + results = [] + + if hasattr(options, "sessionid") and options.sessionid: + self.sessionvalidation(options) + else: + self.putvalidation(options) + + contentsholder = None + + try: + with open(options.path, "r") as _if: + contentsholder = json.loads(_if.read(), object_pairs_hook=OrderedDict) + except IOError: + raise InvalidFileInputError( + "File '%s' doesn't exist. " "Please create file by running 'save' command." % options.path + ) + except ValueError: + raise InvalidFileFormattingError("Input file '%s' was not " "formatted properly." % options.path) + + if options.headers: + extraheaders = options.headers.split(",") + + for item in extraheaders: + header = item.split(":") + + try: + headers[header[0]] = header[1] + except: + raise InvalidCommandLineError("Invalid format for --headers option.") + + if getattr(options, "no_auth"): + if options.url: + url = "https://" + options.url.rstrip("/") + else: + url = "https://16.1.15.1" + path = urljoin(url, contentsholder["path"].lstrip("/")) + body = contentsholder["body"] + try: + response = requests.put(path, json=body, verify=False) + if response.status_code == 200: + sys.stdout.write(response.content.decode("utf-8") + "\n") + # sys.stdout.write("Operation completed successfully.\n") + return ReturnCodes.SUCCESS + except Exception as e: + sys.stdout.write("Error: Failed to complete operation.\n") + return ReturnCodes.INVALID_COMMAND_LINE_ERROR + + if "path" in contentsholder and "body" in contentsholder: + results.append( + self.rdmc.app.put_handler( + contentsholder["path"], + contentsholder["body"], + headers=headers, + silent=options.silent, + optionalpassword=options.biospassword, + service=options.service, + noauth=options.no_auth, + ) + ) + elif all([re.match(r"^/(\S+/?)+$", key) for key in contentsholder]): + for path, body in contentsholder.items(): + results.append( + self.rdmc.app.put_handler( + path, + body, + headers=headers, + silent=options.silent, + optionalpassword=options.biospassword, + service=options.service, + noauth=options.no_auth, + ) + ) + else: + raise InvalidFileFormattingError("Input file '%s' was not " "formatted properly." % options.path) + + returnresponse = False + + if options.response or options.getheaders: + returnresponse = True + + if results and returnresponse: + for result in results: + if options.getheaders: + sys.stdout.write(json.dumps(dict(result.getheaders())) + "\n") + + if options.response: + if isinstance(result.read, bytes): + sys.stdout.write(result.read.decode("utf-8")) + else: + sys.stdout.write(result.read) + sys.stdout.write("\n") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def putvalidation(self, options): + """Raw put validation function + + :param options: command line options + :type options: list. + """ + self.rdmc.login_select_validation(self, options, skipbuild=True) + + def sessionvalidation(self, options): + """Raw put session validation function + + :param options: command line options + :type options: list. + """ + + url = None + if options.user or options.password or options.url: + if options.url: + url = options.url + else: + if getattr(self.rdmc.app.redfishinst, "base_url", False): + url = self.rdmc.app.redfishinst.base_url + if url and "https://" not in url: + url = "https://" + url + + return url + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "path", + help="Path to the JSON file containing the data to be patched.", + ) + customparser.add_argument( + "--response", + dest="response", + action="store_true", + help="Use this flag to return the iLO response body.", + default=False, + ) + customparser.add_argument( + "--getheaders", + dest="getheaders", + action="store_true", + help="Use this flag to return the iLO response headers.", + default=False, + ) + customparser.add_argument( + "--headers", + dest="headers", + help="Use this flag to add extra headers to the request." + "\t\t\t\t\t Usage: --headers=HEADER:VALUE,HEADER:VALUE", + default=None, + ) + customparser.add_argument( + "--silent", + dest="silent", + action="store_true", + help="""Use this flag to silence responses""", + default=False, + ) + customparser.add_argument( + "--service", + dest="service", + action="store_true", + help="""Use this flag to enable service mode and increase the function speed""", + default=False, + ) + customparser.add_argument( + "--no_auth", + dest="no_auth", + action="store_true", + help="""Use this flag to enable service mode and increase the function speed""", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawDeleteCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawDeleteCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..139c6df104d0475391d5afccfa6ff588a9f49f5d GIT binary patch literal 4689 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawGetCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawGetCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7018aa8a11e3c32b13c5904f9c7d3cdb5da18b7e GIT binary patch literal 6568 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 Xu3bq+IZGbk)dHl>npaKht7YeZc&^HQ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawPatchCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawPatchCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..01a227c53cae72c4dbb0b17ac3c40141496b306f GIT binary patch literal 5917 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawPutCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/RawPutCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7ad912c2ee3d843b8f53b524e4d3ca36f028b744 GIT binary patch literal 5904 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 SwxNPH*pI7MZ5MoJ&iP+`uU?A) literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/RAW_COMMANDS/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..adbb0643b2169762502fa031e86a6ff12ba10da4 GIT binary patch literal 203 zcmd1j<>g`k0wwn9Oc4DTL?8o3AjbiSi&=m~3PUi1CZpdpP7@do12)In4VgsUzVCzrk|6Uq+d{3l98WhtY>JTUz}Nzs#}nl zoDEa~R$Y`@T%w;^QIeWhoSC0jtRLhU9`Ee$>+9&}609E|pP83g5+AQuP;M1& literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/ClearControllerConfigCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/ClearControllerConfigCommand.py new file mode 100644 index 0000000..b6284a2 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/ClearControllerConfigCommand.py @@ -0,0 +1,166 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Clear Controller Configuration Command for rdmc""" + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class ClearControllerConfigCommand: + """Drive erase/sanitize command""" + + def __init__(self): + self.ident = { + "name": "clearcontrollerconfig", + "usage": None, + "description": "To clear a controller" + " config.\n\tExample: clearcontrollerconfig --controller=1" + '\n\texample: clearcontrollerconfig --controller="Slot0"', + "summary": "Clears smart array controller configuration.", + "aliases": [], + "auxcommands": ["SelectCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main disk inventory worker function + + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.clearcontrollerconfigvalidation(options) + + ilo_ver = self.rdmc.app.getiloversion() + if ilo_ver >= 6.110: + self.rdmc.ui.printer( + "ClearController option is not supported for this device." + "\nUse factoryresetcontroller command to reset the controller," + "\tthe action does erase or sanitize data on the drives.\n" + ) + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + else: + self.auxcommands["select"].selectfunction("SmartStorageConfig.") + content = self.rdmc.app.getprops() + + if not options.controller: + raise InvalidCommandLineError("You must include a controller to select.") + if options.controller: + controllist = [] + contentsholder = { + "LogicalDrives": [], + "Actions": [{"Action": "ClearConfigurationMetadata"}], + "DataGuard": "Disabled", + } + try: + if options.controller.isdigit(): + slotlocation = self.get_location_from_id(options.controller) + if slotlocation: + slotcontrol = slotlocation.lower().strip('"').split("slot")[-1].lstrip() + for control in content: + if slotcontrol.lower() == control["Location"].lower().split("slot")[-1].lstrip(): + controllist.append(control) + elif "slot" in options.controller.lower(): + controllerid = options.controller.strip("Slot ") + slotlocation = self.get_location_from_id(controllerid) + if slotlocation: + slotcontrol = slotlocation.lower().strip('"').split("slot")[-1].lstrip() + for control in content: + if slotcontrol.lower() == control["Location"].lower().split("slot")[-1].lstrip(): + controllist.append(control) + if not controllist: + raise InvalidCommandLineError("") + except InvalidCommandLineError: + raise InvalidCommandLineError("Selected controller not found in the current " "inventory list.") + for controller in controllist: + # self.rdmc.ui.printer( + # "ClearController path and payload: %s, %s\n" + # % (controller["@odata.id"], contentsholder) + # ) + self.rdmc.app.put_handler(controller["@odata.id"], contentsholder) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def get_storage_location_from_id(self, storage_id): + for sel in self.rdmc.app.select("StorageController", path_refresh=True): + if "Collection" not in sel.maj_type: + controller_storage = sel.dict + if controller_storage["Id"] == str(storage_id): + return controller_storage["Location"]["PartLocation"]["ServiceLabel"] + return None + + def get_location_from_id(self, controller_id): + for sel in self.rdmc.app.select("SmartStorageArrayController", path_refresh=True): + if "Collection" not in sel.maj_type: + controller = sel.dict + if controller["Id"] == str(controller_id): + return controller["Location"] + return None + + def clearcontrollerconfigvalidation(self, options): + """clear controller config validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--controller", + dest="controller", + help="Use this flag to select the corresponding controller " "using either the slot number or index.", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/CreateVolumeCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/CreateVolumeCommand.py new file mode 100644 index 0000000..cfb18f3 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/CreateVolumeCommand.py @@ -0,0 +1,1167 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Create Volume Command for rdmc""" + +from argparse import RawDescriptionHelpFormatter + +from redfish.ris import IdTokenError +from redfish.ris.rmc_helper import IloResponseError, InstanceNotFoundError + +try: + from rdmc_helper import ( + IloLicenseError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidSmartArrayConfigurationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IloLicenseError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidSmartArrayConfigurationError, + ReturnCodes, + ) + + +class CreateVolumeCommand: + """Create volume command""" + + def __init__(self): + self.ident = { + "name": "createvolume", + "usage": None, + "description": "Creates volumes on compatible HPE SSA RAID controllers\nTo view " + "help on specific sub-commands run: createvolume -h\n\n" + "NOTE: Refer http://www.hpe.com/info/scmo for additional information " + "on creating Volumes on Gen11 servers.\n\t" + "Also, when you select multiple physicaldrives you can select by both\n\t" + "physical drive name and by the location at the same time.\n\t" + "You can also select controllers by slot number as well as index.\n\t" + "For iLO6, storage id need to be specified using --storageid=DE00E000 " + "along with --controller=1", + "summary": "Creates a new volume on the selected controller.", + "aliases": ["createlogicaldrive"], + "auxcommands": ["SelectCommand", "StorageControllerCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main disk inventory worker function + + :param line: command line input + :type line: string. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.createvolumevalidation(options) + ilo_ver = self.rdmc.app.getiloversion() + if ilo_ver < 6.110: + try: + self.auxcommands["select"].selectfunction("StorageController.") + content = self.rdmc.app.getprops() + if options.command == "quickdrive": + options.sparedrives = None + raise InvalidCommandLineError( + "This controller is not compatible with quickdrive option. " + "Please use customdrive or volume option\n" + ) + ilo_ver = 6.110 + options.command = "volume" + except Exception: + pass + + if ilo_ver >= 6.110: + if options.command == "customdrive" or options.command == "quickdrive": + raise InvalidCommandLineError("customdrive or quickdrive subcommand is not supported on iLO6(Gen11).\n") + if not options.storageid: + raise InvalidCommandLineError("--storageid option is mandatory for iLO6 or latest iLO5 onwards.\n") + else: + if options.command == "volume": + raise InvalidCommandLineError("volume subcommand is not supported on iLO5(Gen10).\n") + if options.controller: + if ilo_ver >= 6.110: + if options.storageid: + controllers = self.auxcommands["storagecontroller"].storagecontroller(options, single_use=True) + else: + raise InvalidCommandLineError("--storageid option is mandatory for iLO6 onwards.\n") + else: + try: + controllers = self.auxcommands["storagecontroller"].controllers(options, single_use=True) + if len(controllers) == 0: + if not options.storageid: + raise InvalidCommandLineError( + "--storageid option is mandatory. Please input storageid as well so that " + "controllers/volumes can be identified.\n" + ) + controllers = self.auxcommands["storagecontroller"].storagecontroller(options, single_use=True) + options.command = "volume" + ilo_ver = 6.110 + except InstanceNotFoundError: + if not options.storageid: + raise InvalidCommandLineError( + "--storageid option is mandatory. Please input storageid as well so that " + "controllers/volumes can be identified.\n" + ) + controllers = self.auxcommands["storagecontroller"].storagecontroller(options, single_use=True) + options.command = "volume" + ilo_ver = 6.110 + try: + controller = controllers[next(iter(controllers))] + (create_flag, newdrive) = self.createvolume(options, controller) + if create_flag: + if ilo_ver >= 6.110: + temp_odata = controller["@odata.id"] + volume_path = temp_odata.split("Controllers")[0] + "Volumes" + self.rdmc.ui.printer("CreateVolume path and payload: %s, %s\n" % (volume_path, newdrive)) + result = self.rdmc.app.post_handler(volume_path, newdrive) + if result.status == 400: + self.rdmc.ui.error("iLO has thrown BadRequest for this command attempt \n") + return ReturnCodes.RIS_ILO_RESPONSE_ERROR + + self.rdmc.ui.printer("Volume created successfully \n") + if options.sparedrives: + controller["physical_drives"] = self.auxcommands[ + "storagecontroller" + ].storagephysical_drives(options, controller, options.storageid, single_use=True) + array = options.disks.split(",") + set_spare = False + newdrive1 = {"Links": {"DedicatedSpareDrives": [{}]}} + volume_path1 = volume_path + result.session_location.split("Volumes")[1] + + sparedrives = options.sparedrives.split(",") + s_array = [] + if len(controller["physical_drives"]) > 0: + for p_id in controller["physical_drives"]: + p_loc = self.convertloc( + controller["physical_drives"][str(p_id)]["PhysicalLocation"]["PartLocation"][ + "ServiceLabel" + ] + ) + l_loc = p_loc.split(":")[1:] + p_loc = ":".join(l_loc) + + for sdrive in sparedrives: + if sdrive == p_loc and sdrive not in array: + s_array.append( + { + "@odata.id": controller["physical_drives"][str(p_id)]["@odata.id"], + } + ) + set_spare = True + newdrive1["Links"]["DedicatedSpareDrives"] = s_array + if not set_spare: + raise InvalidCommandLineError( + "Invalid spare drive given, check whether given spare drive is different from " + "disks given or check whether spare drive belongs to same controller" + ) + + self.rdmc.app.patch_handler(volume_path1, newdrive1) + self.rdmc.ui.printer("Successfully added the sparedrives %s\n" % (newdrive1)) + + return ReturnCodes.SUCCESS + + else: + temp_odata = controller["@odata.id"] + payload_dict = dict() + payload_dict["DataGuard"] = "Disabled" + if "settings" not in temp_odata: + temp_odata = temp_odata + "settings/" + settings_controller = self.rdmc.app.get_handler(temp_odata, service=False, silent=True) + # Fix for multiple logical creation at single reboot + if self.rdmc.app.typepath.defs.isgen9: + payload_dict["logical_drives"] = dict() + payload_dict["logical_drives"]["new"] = newdrive + else: + payload_dict["LogicalDrives"] = settings_controller.dict["LogicalDrives"] + payload_dict["LogicalDrives"].append(newdrive) + self.rdmc.ui.printer("CreateVolume path and payload: %s, %s\n" % (temp_odata, payload_dict)) + self.rdmc.app.put_handler( + temp_odata, + payload_dict, + headers={"If-Match": self.getetag(temp_odata)}, + ) + self.rdmc.app.download_path([temp_odata], path_refresh=True, crawl=False) + self.rdmc.ui.printer( + "One or more properties were changed and will not take effect " "until system is reset \n" + ) + except IloLicenseError: + self.rdmc.ui.error("License Error Occured while creating volume\n") + return ReturnCodes.ILO_LICENSE_ERROR + except IdTokenError: + self.rdmc.ui.error("Insufficient Privilege to create volume\n") + return ReturnCodes.RIS_MISSING_ID_TOKEN + except IloResponseError: + self.rdmc.ui.error("iLO threw iLOResponseError\n") + return ReturnCodes.RIS_ILO_RESPONSE_ERROR + except InvalidSmartArrayConfigurationError as excp: + self.rdmc.ui.error(excp.args[0]) + return ReturnCodes.INVALID_SMART_ARRAY_PAYLOAD + except StopIteration: + self.rdmc.ui.error("Drive or Controller not exist, Please check drive or controller\n") + except InvalidCommandLineError as excp: + self.rdmc.ui.error(excp.args[0]) + return ReturnCodes.INVALID_COMMAND_LINE_ERROR + except Exception as excp: + self.rdmc.ui.error(excp.args[0]) + + else: + self.rdmc.ui.error("Provide the controller \n") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def convertloc(self, servicelabel): + loc = servicelabel.split(":") + temp_str = str( + loc[0].split("=")[1] + ":" + loc[1].split("=")[1] + ":" + loc[2].split("=")[1] + ":" + loc[3].split("=")[1] + ) + return temp_str + + def get_allowed_list(self, storage_id, attr): + url = "/redfish/v1/Systems/1/Storage/" + storage_id + "/Volumes/Capabilities" + attr_allowed_str = attr + "@Redfish.AllowableValues" + + results = self.rdmc.app.get_handler(url, service=True, silent=True).dict + return results[attr_allowed_str] + + def createvolume(self, options, controller): + """Create volume""" + global p_loc + ilo_ver = self.rdmc.app.getiloversion() + if options.command == "volume": + ilo_ver = 6.110 + if ilo_ver >= 6.110: + try: + raidlvllist = self.get_allowed_list(options.storageid, "RAIDType") + except: + raidlvllist = [ + "Raid0", + "Raid1", + "Raid1ADM", + "Raid10", + "Raid10ADM", + "Raid5", + "Raid50", + "Raid6", + "Raid60", + ] + + else: + raidlvllist = [ + "Raid0", + "Raid1", + "Raid1ADM", + "Raid10", + "Raid10ADM", + "Raid5", + "Raid50", + "Raid6", + "Raid60", + ] + interfacetypelist = ["SAS", "SATA", "NVMe"] + mediatypelist = ["SSD", "HDD"] + sparetypelist = ["Dedicated", "Roaming"] + acceltypelist = ["ControllerCache", "IOBypass", "None"] + locationtypelist = ["Internal", "External"] + legacylist = ["Primary", "Secondary", "All", "None"] + paritylist = ["Default", "Rapid"] + iOPerfModeEnabledlist = ["true", "false"] + if ilo_ver >= 6.110: + try: + readCachePolicylist = self.get_allowed_list(options.storageid, "ReadCachePolicy") + # writeCachePolicylist = self.get_allowed_list(options.storageid, "WriteCachePolicy") + writeCachePolicylist = [ + "Off", + "WriteThrough", + "ProtectedWriteBack", + "UnprotectedWriteBack", + ] + except: + readCachePolicylist = ["Off", "ReadAhead"] + writeCachePolicylist = [ + "Off", + "WriteThrough", + "ProtectedWriteBack", + "UnprotectedWriteBack", + ] + # InitMethodlist = self.get_allowed_list(options.storageid, "InitializeMethod") + WriteHoleProtectionPolicyList = ["Yes", "No"] + sparedrives = [] + changes = False + + if ilo_ver >= 6.110: + controller["physical_drives"] = self.auxcommands["storagecontroller"].storagephysical_drives( + options, controller, options.storageid, single_use=True + ) + else: + try: + controller["physical_drives"] = self.auxcommands["storagecontroller"].physical_drives( + options, controller, single_use=True + ) + except: + controller["physical_drives"] = self.auxcommands["storagecontroller"].storagephysical_drives( + options, controller, options.storageid, single_use=True + ) + if ilo_ver >= 6.110: + controller["logical_drives"] = self.auxcommands["storagecontroller"].storagelogical_drives( + options, controller, options.storageid, single_use=True + ) + else: + try: + controller["logical_drives"] = self.auxcommands["storagecontroller"].logical_drives( + options, controller, single_use=True + ) + except: + controller["logical_drives"] = self.auxcommands["storagecontroller"].storagelogical_drives( + options, controller, options.storageid, single_use=True + ) + if controller.get("Links"): + if ilo_ver >= 6.110: + newdrive = {"Links": {"Drives": {}}} + else: + newdrive = {"Links": {"DataDrives": {}}} + else: + if ilo_ver >= 6.110: + newdrive = {"Links": {"Drives": {}}} + else: + newdrive = {"links": {"DataDrives": {}}} + + changes = False + itemadded = False + + for item in raidlvllist: + if options.raid.lower() == item.lower(): + if options.command == "customdrive" or options.command == "volume": + drivecount = len(options.disks.replace(", ", ",").split(",")) + else: + try: + drivecount = int(options.disks) + except ValueError: + raise InvalidCommandLineError("Number of drives is not an integer.") + if self.raidvalidation(item.lower(), drivecount, options): + itemadded = True + if ilo_ver >= 6.110: + newdrive["RAIDType"] = options.raid.upper() + else: + newdrive["Raid"] = item + break + + if not itemadded: + raise InvalidCommandLineError("Invalid raid type or configuration.") + else: + itemadded = False + + if options.command == "customdrive": + if options.sparedrives: + sparedrives = options.sparedrives.replace(", ", ",").split(",") + newdrive["SpareDrives"] = [] + newdrive["SpareRebuildMode"] = "Dedicated" + + drives = options.disks.replace(", ", ",").split(",") + newdrive["DataDrives"] = [] + + if len(controller["physical_drives"]) > 0: + for id in controller["physical_drives"]: + for drive in drives: + drv_id = controller["physical_drives"][str(id)] + if "Location" in drv_id: + drv_loc = drv_id["Location"] + else: + location = drv_id["PhysicalLocation"]["PartLocation"]["ServiceLabel"] + loc = location.split(":") + del loc[0] + if len(loc) == 3: + temp_str = str( + loc[0].split("=")[1] + ":" + loc[1].split("=")[1] + ":" + loc[2].split("=")[1] + ) + drv_loc = temp_str + + if drive == drv_loc: + newdrive["DataDrives"].append(drive) + + for sdrive in sparedrives: + drv_id = controller["SpareDrives"][str(id)] + if "Location" in drv_id: + drv_loc = drv_id["Location"] + else: + location = drv_id["PhysicalLocation"]["PartLocation"]["ServiceLabel"] + loc = location.split(":") + del loc[0] + if len(loc) == 3: + temp_str = str( + loc[0].split("=")[1] + ":" + loc[1].split("=")[1] + ":" + loc[2].split("=")[1] + ) + drv_loc = temp_str + + if drive == drv_loc: + newdrive["DataDrives"].append(drive) + if sdrive == drv_id: + newdrive["SpareDrives"].append(sdrive) + else: + raise InvalidCommandLineError("No Physical Drives in this controller") + + if drivecount > len(newdrive["DataDrives"]): + raise InvalidCommandLineError( + "Not all of the selected drives could " "be found in the specified locations." + ) + + if options.sparetype: + itemadded = False + for item in sparetypelist: + if options.sparetype.lower() == item.lower(): + newdrive["SpareRebuildMode"] = item + itemadded = True + break + + if not itemadded: + raise InvalidCommandLineError("Invalid spare drive type.") + + if options.drivename: + newdrive["LogicalDriveName"] = options.drivename + + if options.capacitygib: + try: + capacitygib = int(options.capacitygib) + except ValueError: + raise InvalidCommandLineError("Capacity is not an integer.") + newdrive["CapacityGiB"] = capacitygib + + if options.acceleratortype: + itemadded = False + for item in acceltypelist: + if options.acceleratortype.lower() == item.lower(): + newdrive["Accelerator"] = item + itemadded = True + break + + if not itemadded: + raise InvalidCommandLineError("Invalid accelerator type.") + + if options.legacyboot: + itemadded = False + for item in legacylist: + if options.legacyboot.lower() in item.lower(): + newdrive["LegacyBootPriority"] = item + itemadded = True + break + + if not itemadded: + raise InvalidCommandLineError("Invalid legacy boot priority.") + + if options.capacityblocks: + try: + capacityblocks = int(options.capacityblocks) + except ValueError: + raise InvalidCommandLineError("Capacity is not an integer.") + + newdrive["CapacityBlocks"] = capacityblocks + + if options.paritygroup: + try: + paritygroup = int(options.paritygroup) + except ValueError: + raise InvalidCommandLineError("Parity group is not an integer.") + + newdrive["ParityGroupCount"] = paritygroup + + if options.paritytype: + itemadded = False + for item in paritylist: + if options.paritytype.lower() == item.lower(): + newdrive["ParityInitializationType"] = item + itemadded = True + break + + if not itemadded: + raise InvalidCommandLineError("Invalid parity type") + + if options.blocksize: + try: + blocksize = int(options.blocksize) + except ValueError: + raise InvalidCommandLineError("Block size is not an integer.") + + newdrive["BlockSizeBytes"] = blocksize + + if options.stripsize: + try: + stripsize = int(options.stripsize) + except ValueError: + raise InvalidCommandLineError("Strip size is not an integer.") + + newdrive["StripSizeBytes"] = stripsize + + if options.stripesize: + try: + stripesize = int(options.stripesize) + except ValueError: + raise InvalidCommandLineError("Stripe size is not an integer.") + + newdrive["StripeSizeBytes"] = stripesize + elif options.command == "quickdrive": + try: + numdrives = int(options.disks) + except ValueError: + raise InvalidCommandLineError("Number of drives is not an integer.") + + newdrive["DataDrives"] = { + "DataDriveCount": numdrives, + "DataDriveMinimumSizeGiB": 0, + } + for item in mediatypelist: + if options.drivetype.lower() == item.lower(): + newdrive["DataDrives"]["DataDriveMediaType"] = item + itemadded = True + break + if not itemadded: + raise InvalidCommandLineError("Invalid media type.") + else: + itemadded = False + for item in interfacetypelist: + if options.interfacetype.lower() == item.lower(): + newdrive["DataDrives"]["DataDriveInterfaceType"] = item + itemadded = True + break + if not itemadded: + raise InvalidCommandLineError("Invalid interface type.") + + if options.locationtype: + for item in locationtypelist: + if options.locationtype.lower() == item.lower(): + newdrive["DataDrives"]["DataDriveLocation"] = item + break + if options.minimumsize: + try: + minimumsize = int(options.minimumsize) + except ValueError: + raise InvalidCommandLineError("Minimum size is not an integer.") + newdrive["DataDrives"]["DataDriveMinimumSizeGiB"] = minimumsize + newdrive["CapacityGiB"] = minimumsize + elif options.command == "volume": + idval = [] + if len(controller["physical_drives"]) > 0: + array = options.disks.split(",") + DA = ["DA000000", "DA000001"] + for p_id in controller["physical_drives"]: + if p_id not in DA: + p_loc = self.convertloc( + controller["physical_drives"][str(p_id)]["PhysicalLocation"]["PartLocation"]["ServiceLabel"] + ) + + for ar in array: + if ar in p_loc: + idval.append(controller["physical_drives"][str(p_id)]["@odata.id"]) + array.remove(ar) + newdrive["Links"]["Drives"] = [] + if idval is not None: + for id in idval: + newdrive["Links"]["Drives"].append( + { + "@odata.id": id, + } + ) + else: + raise InvalidCommandLineError( + "Disk location given is invalid , Kindly recheck and provide valid location" + ) + + if "capacitygib" in options and options.capacitygib: + options.capacitybytes = int(options.capacitygib) * 1024 * 1024 * 1024 + if "capacitybytes" in options and options.capacitybytes is not None: + if options.capacitybytes: + try: + if isinstance(options.capacitybytes, list): + capacitybytes = int(options.capacitybytes[0]) + else: + capacitybytes = int(options.capacitybytes) + except ValueError: + raise InvalidCommandLineError("Capacity is not an integer.") + + newdrive["CapacityBytes"] = capacitybytes + + if "iOPerfModeEnabled" in options and options.iOPerfModeEnabled: + for item in iOPerfModeEnabledlist: + if ( + options.iOPerfModeEnabled.lower() == item.lower() + and options.iOPerfModeEnabled.lower() == "false" + ): + newdrive["IOPerfModeEnabled"] = eval(options.iOPerfModeEnabled) + itemadded = True + break + elif ( + options.iOPerfModeEnabled.lower() == item.lower() + and options.iOPerfModeEnabled.lower() == "true" + ): + if "SSD" in controller["SupportedDeviceProtocols"]: + newdrive["IOPerfModeEnabled"] = eval(options.iOPerfModeEnabled) + itemadded = True + break + else: + raise InvalidCommandLineError( + " IOPerfModeEnabled can be true only when supported protocol is SSD" + ) + if not itemadded: + raise InvalidCommandLineError("Invalid IOPerfModeEnabled, Value should be either False or True") + else: + itemadded = False + + if "ReadCachePolicy" in options and options.ReadCachePolicy is not None: + for item in readCachePolicylist: + if options.ReadCachePolicy.lower() == item.lower(): + newdrive["ReadCachePolicy"] = item + itemadded = True + break + if not itemadded: + raise InvalidCommandLineError("Invalid ReadCachePolicy, Value should be 'Off' or 'ReadAhead'") + else: + itemadded = False + + if "WriteCachePolicy" in options and options.WriteCachePolicy is not None: + for item in writeCachePolicylist: + if options.WriteCachePolicy.lower() == item.lower(): + newdrive["WriteCachePolicy"] = item + itemadded = True + break + if not itemadded: + raise InvalidCommandLineError( + "Invalid WriteCachePolicy, Values should be 'Off', 'WriteThrough','ProtectedWriteBack'," + "'UnprotectedWriteBack'" + ) + else: + itemadded = False + + if "VROC" in controller["Model"]: + if options.WriteHoleProtectionPolicy is not None: + for item in WriteHoleProtectionPolicyList: + if ( + options.WriteHoleProtectionPolicy.lower() == item.lower() + and options.WriteHoleProtectionPolicy.lower() == "yes" + ): + newdrive["WriteHoleProtectionPolicy"] = "Journaling" + newdrive["Links"]["JournalingMedia"] = idval + itemadded = True + break + if not itemadded: + raise InvalidCommandLineError( + "Invalid WriteHoleProtectionPolicy, Values can be either Yes or No" + ) + else: + itemadded = False + if "drivename" in options and options.drivename: + options.DisplayName = options.drivename + if "DisplayName" in options and options.DisplayName is not None: + newdrive["DisplayName"] = options.DisplayName + + if newdrive: + if options.command == "quickdrive": + newdrive_count = newdrive["DataDrives"]["DataDriveCount"] + elif options.command == "customdrive": + newdrive_count = len(newdrive["DataDrives"]) + elif options.command == "volume": + newdrive_count = len(newdrive["Links"]["Drives"]) + + if len(controller["physical_drives"]) >= newdrive_count: + drives_avail = len(controller["physical_drives"]) + accepted_drives = 0 + for cnt, drive in enumerate(controller["physical_drives"]): + drivechecks = (False, False, False, False) + if drives_avail < newdrive_count: + raise InvalidSmartArrayConfigurationError( + "Unable to continue, requested number of drives not actually present under the storage ID" + " or the drives requested are in use by another volume\n" + ) + else: + drivechecks = (True, False, False, False) + + if options.command == "quickdrive": + if ( + controller["physical_drives"][drive]["InterfaceType"] + == newdrive["DataDrives"]["DataDriveInterfaceType"] + ): + drivechecks = (True, True, False, False) + else: + drives_avail -= 1 + continue + if ( + controller["physical_drives"][drive]["MediaType"] + == newdrive["DataDrives"]["DataDriveMediaType"] + ): + drivechecks = (True, True, True, False) + else: + drives_avail -= 1 + continue + else: + drivechecks = (True, True, True, False) + in_use = False + if controller["logical_drives"] is not None: + for existing_logical_drives in controller["logical_drives"]: + _logical_drive = controller["logical_drives"][existing_logical_drives] + if _logical_drive.get("LogicalDrives"): + for _data_drive in _logical_drive["LogicalDrives"]["DataDrives"]: + if drive == _logical_drive["LogicalDrives"]["DataDrives"][_data_drive]: + in_use = True + elif _logical_drive.get("Links"): + if not ilo_ver >= 6.110: + for _data_drive in _logical_drive["Links"]["DataDrives"]: + if drive == _logical_drive["Links"]["DataDrives"][_data_drive]: + in_use = True + else: + for _data_drive in _logical_drive["Links"]["Drives"]: + if drive in _data_drive["@odata.id"] and _logical_drive["RAIDType"] != "None": + in_use = True + elif _logical_drive.get("links"): + for _data_drive in _logical_drive["links"]["DataDrives"]: + if drive == _logical_drive["links"]["DataDrives"][_data_drive]: + in_use = True + if in_use: + drives_avail -= 1 + continue + else: + drivechecks = (True, True, True, True) + if drivechecks[0] and drivechecks[1] and drivechecks[2]: + if controller.get("Links"): + pass + else: + if not ilo_ver >= 6.110: + newdrive["links"]["DataDrives"][int(drive)] = controller["physical_drives"][drive] + accepted_drives += 1 + changes = True + if accepted_drives == newdrive_count: + break + else: + drives_avail -= 1 + + if changes: + if self.rdmc.app.typepath.defs.isgen9: + controller["logical_drives"]["new"] = newdrive + else: + if not ilo_ver >= 6.110: + try: + newdrive.pop("Links") + except KeyError: + newdrive.pop("links") + if not ilo_ver >= 6.110: + controller["LogicalDrives"].append(newdrive) + del controller["logical_drives"] + del controller["physical_drives"] + + return (changes, newdrive) + + def getetag(self, path): + """get etag from path""" + etag = None + instance = self.rdmc.app.monolith.path(path) + if instance: + etag = ( + instance.resp.getheader("etag") + if "etag" in instance.resp.getheaders() + else instance.resp.getheader("ETag") + ) + return etag + + def raidvalidation(self, raidtype, numdrives, options): + """vaidation function for raid levels + :param raidtype: raid type + :type options: string. + :param numdrives: number of drives + :type numdrives: int. + :param options: command line options + :type options: list. + """ + + valid = True + if raidtype == "raid1": + if numdrives < 2: # or options.stripsize: + valid = False + elif raidtype == "raid5": + if numdrives < 3: # or options.stripsize: + valid = False + elif raidtype == "raid6": + if numdrives < 4: # or options.stripsize: + valid = False + elif raidtype == "raid50": + if numdrives < 6: + valid = False + elif raidtype == "raid60": + if numdrives < 8: + valid = False + + return valid + + def createvolumevalidation(self, options): + """Create volume validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + @staticmethod + def options_argument_group(parser): + """Define optional arguments group + + :param parser: The parser to add the login option group to + :type parser: ArgumentParser/OptionParser + """ + group = parser.add_argument_group( + "GLOBAL OPTIONS", + "Options are available for all" "arguments within the scope of this command.", + ) + + group.add_argument( + "--controller", + dest="controller", + help="Use this flag to select the corresponding controller " + "using either the slot number or index.\nexample: --controller=Slot 0 OR " + "--controller=1", + default=None, + required=True, + ) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + # self.options_argument_group(customparser) + + subcommand_parser = customparser.add_subparsers(dest="command") + subcommand_parser.required = True + qd_help = ( + "Create a volume with a minimal number of arguments (utilizes default " + "values on the controller). This option is only for iLO5 or Gen10" + ) + # quickdrive sub-parser + qd_parser = subcommand_parser.add_parser( + "quickdrive", + help=qd_help, + description=qd_help + "\n\texample: createvolume quickdrive " + " " + "--locationtype=Internal --minimumsize=0 --controller=1", + formatter_class=RawDescriptionHelpFormatter, + ) + qd_parser.add_argument( + "raid", + help="Specify the RAID level for the volume to be created.", + metavar="Raid_Level", + ) + qd_parser.add_argument( + "disks", + help="For quick drive creation, specify number of disks.", + metavar="Drives", + ) + qd_parser.add_argument( + "drivetype", + help="Specify the drive media type of the physical disk(s) (i.e. HDD or SSD)", + metavar="Drive_Media_Type", + ) + qd_parser.add_argument( + "interfacetype", + help="Specify the interface type of the physical disk(s) (i.e. SATA or SAS or NVMe)", + metavar="Drive_Interface_Type", + ) + qd_parser.add_argument( + "--locationtype", + dest="locationtype", + help="Optionally specify the location of the physical disks(s) (i.e. Internal or External)", + default=None, + ) + qd_parser.add_argument( + "--minimumsize", + dest="minimumsize", + help="""Optionally include to set the minimum size of the drive """ + """in GiB. (usable in quick creation only, use -1 for max size)""", + default=None, + ) + qd_parser.add_argument( + "--controller", + dest="controller", + help="Use this flag to select the corresponding controller " + "using either the slot number or index.\nexample: --controller=Slot 0 OR " + "--controller=1", + default=None, + required=True, + ) + qd_parser.add_argument( + "--storageid", + dest="storageid", + help="Use this flag to select the corresponding storageid " + "using either the slot number or index.\nexample: --storageid=DE123234", + default=None, + required=False, + ) + self.cmdbase.add_login_arguments_group(qd_parser) + # self.options_argument_group(qd_parser) + + cd_help = ( + "Create a customised volume using all available properties (as optional " + "arguments) for creation. This option is only for iLO5 or Gen10" + ) + # customdrive sub-parser + cd_parser = subcommand_parser.add_parser( + "customdrive", + help=cd_help, + description=cd_help + "\n\texample: createvolume customdrive " + " --controller=1 " + "--name=drivename --spare-drives=1I:1:1,1I:1:3 " + "--spare-type=Dedicated --capacitygib=10 " + "--accelerator-type=None\n\n\tOPTIONS:\n\traid-level:\t\t" + "Raid0, Raid1, Raid1ADM, Raid10, Raid10ADM, Raid5, Raid50, " + "Raid6, Raid60\n\tphysicaldrivelocation(s):\tLocation, Drive-name\n\t" + "media-type:\t\tSSD,HDD\n\tinterface-type:" + "\t\tSAS, SATA, NVMe\n\tdrive-location:\t\tInternal, External\n\t" + "--spare-type:\t\tDedicated, Roaming\n\t--accelerator-type:\t" + "ControllerCache, IOBypass, None\n\t--paritytype:\t\tDefault, Rapid" + "\n\t--capacitygib:\t\t-1 (for Max Size)\n\t--capacityblocks:\t" + "-1 (for Max Size)\n\n\t", + formatter_class=RawDescriptionHelpFormatter, + ) + cd_parser.add_argument( + "raid", + help="Specify the RAID level for the volume to be created.", + metavar="Raid_Level", + ) + cd_parser.add_argument( + "disks", + help="For custom drive, specify a comma separated physical disk locations.", + metavar="Drive_Indices", + ) + cd_parser.add_argument( + "-n", + "--name", + dest="drivename", + help="""Optionally include to set the drive name (usable in """ """custom creation only).""", + default=None, + ) + cd_parser.add_argument( + "--spare-drives", + dest="sparedrives", + help="""Optionally include to set the spare drives by the """ + """physical drive's location. (usable in custom creation only)""", + default=None, + ) + cd_parser.add_argument( + "--capacitygib", + dest="capacitygib", + help="""Optionally include to set the capacity of the drive in """ + """GiB. (usable in custom creation only, use -1 for max """ + """size)""", + default=None, + ) + cd_parser.add_argument( + "--accelerator-type", + dest="acceleratortype", + help="""Optionally include to choose the accelerator type.""", + default=None, + ) + cd_parser.add_argument( + "--spare-type", + dest="sparetype", + help="""Optionally include to choose the spare drive type. """ """(usable in custom creation only)""", + default=None, + ) + cd_parser.add_argument( + "--minimumsize", + dest="minimumsize", + help="""Optionally include to set the minimum size of the drive """ + """in GiB. (usable in quick creation only, use -1 for max size)""", + default=None, + ) + cd_parser.add_argument( + "--legacy-boot", + dest="legacyboot", + help="""Optionally include to choose the legacy boot priority. """ """(usable in custom creation only)""", + default=None, + ) + cd_parser.add_argument( + "--storageid", + dest="storageid", + help="Use this flag to select the corresponding storageid " + "using either the slot number or index.\nexample: --storageid=DE123234", + default=None, + required=False, + ) + cd_parser.add_argument( + "--capacityblocks", + dest="capacityblocks", + help="""Optionally include to choose the capacity in blocks. """ + """(use -1 for max size, usable in custom creation only)""", + default=None, + ) + cd_parser.add_argument( + "--paritygroupcount", + dest="paritygroup", + help="""Optionally include to include the number of parity """ + """groups to use. (only valid for certain RAID levels)""", + default=None, + ) + cd_parser.add_argument( + "--paritytype", + dest="paritytype", + help="""Optionally include to choose the parity initialization""" + """ type. (usable in custom creation only)""", + default=None, + ) + cd_parser.add_argument( + "--block-size-bytes", + dest="blocksize", + help="""Optionally include to choose the block size of the disk""" + """ drive. (usable in custom creation only)""", + default=None, + ) + cd_parser.add_argument( + "--strip-size-bytes", + dest="stripsize", + help="""Optionally include to choose the strip size in bytes. """ """(usable in custom creation only)""", + default=None, + ) + cd_parser.add_argument( + "--stripe-size-bytes", + dest="stripesize", + help="""Optionally include to choose the stripe size in bytes. """ """(usable in custom creation only)""", + default=None, + ) + cd_parser.add_argument( + "--controller", + dest="controller", + help="Use this flag to select the corresponding controller " + "using either the slot number or index.\nexample: --controller=Slot 0 OR " + "--controller=1", + default=None, + required=True, + ) + self.cmdbase.add_login_arguments_group(cd_parser) + # self.options_argument_group(cd_parser) + v_help = ( + "Create a volume using all available properties (as optional " + "arguments) for creation on gen 11 or higher " + ) + # volume sub-parser + v_parser = subcommand_parser.add_parser( + "volume", + help=v_help, + description=v_help + "\n\texample: createvolume volume " + " " + " " + " --storageid=DE009000 --controller=0 " + " " + "\n\n\t", + formatter_class=RawDescriptionHelpFormatter, + ) + v_parser.add_argument( + "raid", + help="Specify the RAID level for the volume to be created.", + metavar="Raid_Level", + ) + v_parser.add_argument( + "disks", + help="For custom drive, specify a comma separated physical disk locations.", + metavar="Drive_Indices", + ) + v_parser.add_argument( + "--storageid", + dest="storageid", + help="Use this flag to select the corresponding storageid " + "using either the slot number or index.\nexample: --storageid=DE123234", + default=None, + required=True, + ) + v_parser.add_argument( + "--DisplayName", + dest="DisplayName", + help="""Optionally include to set the drive name """, + default=None, + ) + v_parser.add_argument( + "--iOPerfModeEnabled", + dest="iOPerfModeEnabled", + help="""Optionally include to choose the IOPerfModeEnabled . Allowed values are 'True', 'False'""", + default=None, + ) + v_parser.add_argument( + "--ReadCachePolicy", + dest="ReadCachePolicy", + help="""Optionally include to choose the ReadCachePolicy. """ """Allowed values are 'Off', 'ReadAhead'""", + default=None, + ) + v_parser.add_argument( + "--WriteCachePolicy", + dest="WriteCachePolicy", + help="Optionally include to set the WriteCachePolicy " + "Allowed values are 'Off', 'WriteThrough','ProtectedWriteBack','UnprotectedWriteBack'", + default=None, + ) + v_parser.add_argument( + "--WriteHoleProtectionPolicy", + dest="WriteHoleProtectionPolicy", + help="""Optionally include to choose the WriteHoleProtectionPolicy """ + """this is applicable only for VROC, You can send either Yes or No as values""", + default=None, + ) + v_parser.add_argument( + "--sparedrives", + dest="sparedrives", + help="""Optionally include to set the spare drives by the """ + """physical drive's location. (usable in custom creation only)""", + action="append", + default=None, + ) + v_parser.add_argument( + "--capacitybytes", + dest="capacitybytes", + help="""Optionally include to set the capacity of the drive in """ + """bytes. (usable in custom creation only, use -1 for max """ + """size)""", + action="append", + default=None, + ) + v_parser.add_argument( + "--controller", + dest="controller", + help="Use this flag to select the corresponding controller " + "using either the slot number or index.\nexample: --controller=Slot 0 OR " + "--controller=1", + default=None, + required=True, + ) + + self.cmdbase.add_login_arguments_group(v_parser) + # self.options_argument_group(v_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/DeleteVolumeCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/DeleteVolumeCommand.py new file mode 100644 index 0000000..98c1268 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/DeleteVolumeCommand.py @@ -0,0 +1,441 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Delete Volume Command for rdmc""" + +from six.moves import input + +from redfish.ris import InstanceNotFoundError + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + + +class DeleteVolumeCommand: + """Delete volume command""" + + def __init__(self): + self.ident = { + "name": "deletevolume", + "usage": None, + "description": "To delete a volume " + "to a controller by index.\n\texample: deletevolume " + "1 --controller=1\n\n\tTo delete multiple volumes by " + "index.\n\tExample: deletevolume 1,2 --controller=1" + "\n\n\tTo delete all volumes on a controller.\n\t" + "deletevolume --controller=1 --all\n\n\t" + 'deletevolume --controller="Slot1" --all\n\n\tNOTE: ' + "You can also delete volumes by " + '"VolumeUniqueIdentifier".\n\n\t' + "For iLO6, storage id need to be specified using --storageid=DE00E000 along with --controller=1\n\n\t" + "You can also delete volumes by VolumeName", + "summary": "Deletes volumes from the selected controller.", + "aliases": ["deletelogicaldrive"], + "auxcommands": ["SelectCommand", "StorageControllerCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main disk inventory worker function + + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.deletevolumevalidation(options) + ilo_ver = self.rdmc.app.getiloversion() + if ilo_ver < 6.110: + try: + self.auxcommands["select"].selectfunction("StorageController.") + content = self.rdmc.app.getprops() + ilo_ver = 6.110 + except Exception: + pass + + if ilo_ver >= 6.110: + if not options.storageid: + raise InvalidCommandLineError( + "--storageid option is mandatory for iLO6 along with --controller option.\n" + ) + controller_logicaldrives = self.auxcommands["storagecontroller"].storagelogical_drives( + options, options.controller, options.storageid, single_use=True + ) + if len(controller_logicaldrives) == 0: + raise InvalidCommandLineError("No Logical drives found.\n") + get_contrller = [] + self.auxcommands["select"].selectfunction("StorageCollection.") + st_content = self.rdmc.app.getprops() + for st_controller in st_content: + path = st_controller["Members"] + for mem in path: + for val in mem.values(): + if "DE" in val and options.storageid in val: + getval = self.rdmc.app.get_handler(val, silent=True, service=True).dict + controller = getval["Controllers"] + for ctl in controller.values(): + ctl = ctl + "/0" + get_sel = self.rdmc.app.get_handler(ctl, silent=True, service=True) + get_contrller.append(get_sel) + else: + self.auxcommands["select"].selectfunction("SmartStorageConfig.") + content = self.rdmc.app.getprops() + + if not args and not options.all: + raise InvalidCommandLineError("You must include a logical drive to delete.") + elif not options.controller: + raise InvalidCommandLineError("You must include a controller to select.") + else: + if len(args) > 1: + logicaldrives = args + elif len(args) == 1: + logicaldrives = args[0].replace(", ", ",").split(",") + else: + logicaldrives = None + + controllist = [] + + try: + if ilo_ver >= 6.110: + if options.controller.isdigit(): + slotlocation = self.storageget_location_from_id(options.controller, options.storageid) + if slotlocation: + slotcontrol = slotlocation.lower().strip('"').split("slot")[-1].lstrip().strip("=") + for control in get_contrller: + cont_temp = control.dict + temp = cont_temp["Location"]["PartLocation"]["ServiceLabel"] + if "Location" in cont_temp and slotcontrol.lower() == temp.lower().split("slot")[ + -1 + ].lstrip().strip("="): + controllist.append(cont_temp) + elif "slot" in options.controller.lower(): + slotlocation = options.controller + if slotlocation: + slotcontrol = slotlocation.lower().strip('"').split("slot")[-1].lstrip().strip("=") + for control in get_contrller: + cont_temp = control.dict + temp = cont_temp["Location"]["PartLocation"]["ServiceLabel"] + if "Location" in cont_temp and slotcontrol.lower() == temp.lower().split("slot")[ + -1 + ].lstrip().strip("="): + controllist.append(cont_temp) + if not controllist: + raise InvalidCommandLineError("") + else: + try: + controllers = self.auxcommands["storagecontroller"].storagecontroller(options, single_use=True) + options.command = "volume" + ilo_ver = 6.110 + except InstanceNotFoundError: + if not options.storageid: + raise InvalidCommandLineError( + "--storageid option is mandatory. Please input storageid as well so that " + "controllers/volumes can be identified.\n" + ) + controllers = self.auxcommands["storagecontroller"].storagecontroller(options, single_use=True) + options.command = "volume" + ilo_ver = 6.110 + if options.controller.isdigit(): + slotlocation = self.get_location_from_id(options.controller) + if slotlocation: + slotcontrol = slotlocation.lower().strip('"').split("slot")[-1].lstrip() + for control in content: + if slotcontrol.lower() == control["Location"].lower().split("slot")[-1].lstrip(): + controllist.append(control) + if not controllist: + raise InvalidCommandLineError("") + except InvalidCommandLineError: + raise InvalidCommandLineError("Selected controller not found in the current inventory " "list.") + if ilo_ver >= 6.110: + self.storagedeletevolume(controller_logicaldrives, logicaldrives, options.all, options.force) + else: + self.deletevolume(controllist, logicaldrives, options.all, options.force) + self.rdmc.ui.printer( + "One or more properties were changed and will not take effect " "until system is reset \n" + ) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def get_location_from_id(self, controller_id): + # self.rdmc.ui.printer("Controller ID: %s\n" % (controller_id)) + for sel in self.rdmc.app.select("SmartStorageArrayController", path_refresh=True): + if "Collection" not in sel.maj_type: + controller = sel.dict + self.rdmc.ui.printer("Controller ID: %s\n" % (controller["Id"])) + if controller["Id"] == str(controller_id): + self.rdmc.ui.printer("Controller Location: %s\n" % (controller["Location"])) + return controller["Location"] + return None + + def storageget_location_from_id(self, controller_id, storageid): + get_contrller = [] + # self.auxcommands["select"].selectfunction("StorageCollection.") + st_content = self.rdmc.app.getprops() + for st_controller in st_content: + path = st_controller["Members"] + for mem in path: + for val in mem.values(): + if "DE" in val and storageid in val: + getval = self.rdmc.app.get_handler(val, silent=True, service=True).dict + controller = getval["Controllers"] + for ctl in controller.values(): + ctl = ctl + "/0" + get_sel = self.rdmc.app.get_handler(ctl, silent=True, service=True) + get_contrller.append(get_sel) + for sel in get_contrller: + if "Collection" not in sel.path: + controller = sel.dict + if controller["Id"] == str(controller_id): + return controller["Location"]["PartLocation"]["ServiceLabel"] + return None + + def deletevolume(self, controllist, drivelist, allopt, force): + """Gets volumes ready for deletion + + :param controllist: list of controllers + :type controllist: list. + :param drivelist: volumes to delete + :type drivelist: list. + :param allopt: flag for deleting all volumes + :type allopt: bool. + """ + + for controller in controllist: + changes = False + + numdrives = len(controller["LogicalDrives"]) + deletecount = 0 + + if allopt: + controller["LogicalDrives"] = [] + controller["DataGuard"] = "Disabled" + if not force: + if not self.inputaccept(None): + return + self.lastlogicaldrive(controller) + changes = True + else: + for deldrive in drivelist: + found = False + + if deldrive.isdigit(): + deldrive = int(deldrive) + + for idx, ldrive in enumerate(controller["LogicalDrives"]): + if deldrive == ldrive["LogicalDriveNumber"]: + if not force: + if not self.inputaccept(ldrive["LogicalDriveName"]): + return + + controller["LogicalDrives"][idx]["Actions"] = [{"Action": "LogicalDriveDelete"}] + + controller["DataGuard"] = "Permissive" + deletecount += 1 + + changes = True + found = True + + break + + if not found: + raise NoContentsFoundForOperationError("Logical " "drive %s not found." % str(deldrive)) + + if deletecount == numdrives: + self.lastlogicaldrive(controller) + + if changes: + # self.rdmc.ui.printer( + # "DeleteVolume path and payload: %s, %s\n" + # % (controller["@odata.id"], controller) + # ) + put_path = controller["@odata.id"] + if "settings" not in put_path: + put_path = put_path + "settings/" + controller["@odata.id"] = put_path + self.rdmc.app.put_handler( + put_path, + controller, + headers={"If-Match": self.getetag(controller["@odata.id"])}, + ) + self.rdmc.app.download_path([controller["@odata.id"]], path_refresh=True, crawl=False) + + def lastlogicaldrive(self, controller): + """Special case that sets required properties after last drive deletion + + :param controller: controller change settings on + :type controller: dict. + """ + changelist = [ + "PredictiveSpareRebuild", + "SurfaceScanAnalysisPriority", + "FlexibleLatencySchedulerSetting", + "DegradedPerformanceOptimization", + "CurrentParallelSurfaceScanCount", + "SurfaceScanAnalysisDelaySeconds", + "MonitorAndPerformanceAnalysisDelaySeconds", + "InconsistencyRepairPolicy", + "DriveWriteCache", + "ExpandPriority", + "EncryptionEULA", + "NoBatteryWriteCache", + "ReadCachePercent", + "WriteCacheBypassThresholdKiB", + "RebuildPriority", + "QueueDepth", + "ElevatorSort", + ] + + for item in changelist: + if item in list(controller.keys()): + controller[item] = None + + def inputaccept(self, drivename): + while True: + if drivename is None: + ans = input("Are you sure you would" " like to continue deleting all volumes" "? (y/n)") + else: + ans = input("Are you sure you would" " like to continue deleting volume" " %s? (y/n)" % drivename) + + if ans.lower() == "y": + return 1 + elif ans.lower() == "n": + self.rdmc.ui.printer("Stopping command without deleting volume/volumes.\n") + return 0 + + def storagedeletevolume(self, logical_drives, drivelist, allopt, force): + if allopt: + sorted_dict = sorted(logical_drives, reverse=True) + if not force: + if not self.inputaccept(None): + return + for drive in sorted_dict: + self.rdmc.app.delete_handler(logical_drives[drive]["@odata.id"], {}) + else: + found = False + sorted_dict = sorted(logical_drives, reverse=True) + sorted_drivelist = sorted(drivelist, reverse=True) + for deldrive in sorted_drivelist: + found = False + changes = False + for drive in sorted_dict: + if logical_drives[drive]["Id"] == deldrive: + if not force: + if not self.inputaccept(logical_drives[drive]["Name"]): + return + self.rdmc.ui.printer("Setting volume %s " "for deletion\n" % logical_drives[drive]["Name"]) + changes = True + found = True + break + try: + if changes: + # self.rdmc.ui.printer( + # "DeleteVolume path and payload: %s, %s\n" + # % (logical_drives[drive]["@odata.id"], "{}") + # ) + self.rdmc.app.delete_handler(logical_drives[drive]["@odata.id"], {}) + except: + self.rdmc.ui.printer( + "This volume cannot" + "be deleted without deleting " + "the higher volumes in the same Physical drive first.\n" + ) + raise + if not found: + raise NoContentsFoundForOperationError("Logical " "drive not found.") + + def getetag(self, path): + """get etag from path""" + etag = None + instance = self.rdmc.app.monolith.path(path) + if instance: + etag = ( + instance.resp.getheader("etag") + if "etag" in instance.resp.getheaders() + else instance.resp.getheader("ETag") + ) + return etag + + def deletevolumevalidation(self, options): + """delete volume validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--controller", + dest="controller", + help="Use this flag to select the corresponding controller " "using either the slot number or index.", + default=None, + ) + customparser.add_argument( + "--storageid", + dest="storageid", + help="Use this flag to select the corresponding storageid in iLO6 only.", + default=None, + ) + customparser.add_argument( + "--all", + dest="all", + help="""Use this flag to delete all volumes on a controller.""", + action="store_true", + default=False, + ) + customparser.add_argument( + "--force", + dest="force", + help="""Use this flag to override the "are you sure?" text when deleting a volume.""", + action="store_true", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/DriveSanitizeCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/DriveSanitizeCommand.py new file mode 100644 index 0000000..7881a0a --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/DriveSanitizeCommand.py @@ -0,0 +1,537 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Drive Erase/ Sanitize Command for rdmc""" + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + + +class DriveSanitizeCommand: + """Drive erase/sanitize command""" + + def __init__(self): + self.ident = { + "name": "drivesanitize", + "usage": None, + "description": "To sanitize a physical drive " + 'by index.\n\texample: drivesanitize "1I:1:1" --controller=1\n\n\tTo' + " sanitize multiple drives by specifying location.\n\texample: " + "drivesanitize 1I:1:1,1I:1:2 --controller=1 --mediatype HDD/SSD\n\texample: drivesanitize " + "1I:1:1,1I:1:2 --controller=Slot 1 --mediatype=HDD " + "if incorrect mediatype is specified, error will generated " + "For iLO6, storage id need to be specified using --storageid=DE00E000 along with --controller=1\n" + "Once drivesanitize function is performed in iLO6, It may take a while to complete.\n " + "To check the status of Sanitization, perform to following command-\n" + "drivesanitize 1I:1:1 --controller=1 --storageid=DE00900 --status\n" + "Once the process in 100% complete, use the --drivereset tag to reset the drive. Example-\n" + "drivesanitize 1I:1:1 --controller=1 --storageid=DE00900 --drivereset\n", + "summary": "Erase/Sanitize physical drive(s)", + "aliases": ["DriveEraseCommand"], + "auxcommands": ["SelectCommand", "RebootCommand", "StorageControllerCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main disk inventory worker function + + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.drivesanitizevalidation(options) + + ilo_ver = self.rdmc.app.getiloversion() + + if ilo_ver < 6.110: + try: + controllers = self.auxcommands["storagecontroller"].controllers(options, single_use=True) + if len(controllers) == 0: + if not options.storageid: + raise InvalidCommandLineError( + "--storageid option is mandatory. Please input storageid as well so that " + "controllers/volumes can be identified.\n" + ) + ilo_ver = 6.110 + except: + if not options.storageid: + raise InvalidCommandLineError( + "--storageid option is mandatory. Please input storageid as well so that " + "controllers/volumes can be identified.\n" + ) + + if ilo_ver >= 6.110: + if not options.storageid: + raise InvalidCommandLineError( + "--storageid option is mandatory for iLO6" " along with --controller option.\n" + ) + self.auxcommands["select"].selectfunction("StorageController") + content = self.rdmc.app.getprops() + controllers = self.auxcommands["storagecontroller"].storagecontroller(options, single_use=True) + if controllers: + for controller in controllers: + if ( + getattr(options, "controller", False) == controller + or controllers[controller]["Location"]["PartLocation"]["ServiceLabel"][-1] + == getattr(options, "controller", False)[-1] + ): + controller_physicaldrives = self.auxcommands["storagecontroller"].storagephysical_drives( + options, + options.controller, + options.storageid, + single_use=True, + ) + else: + self.auxcommands["select"].selectfunction("SmartStorageConfig") + content = self.rdmc.app.getprops() + controllers = self.auxcommands["storagecontroller"].controllers(options, single_use=True) + if controllers: + for controller in controllers: + if int(controller) == int(options.controller): + controller_physicaldrives = self.auxcommands["storagecontroller"].physical_drives( + options, controllers[controller], single_use=True + ) + + if not args and not options.all: + raise InvalidCommandLineError("You must include a physical drive to sanitize.") + elif not options.controller: + raise InvalidCommandLineError("You must include a controller to select.") + else: + if len(args) > 1: + physicaldrives = args + elif len(args) == 1: + physicaldrives = args[0].replace(", ", ",").split(",") + else: + physicaldrives = None + + controllist = [] + + try: + if ilo_ver >= 6.110: + if options.controller.isdigit(): + slotlocation = self.storageget_location_from_id(options.controller, options.storageid) + if slotlocation: + slotcontrol = slotlocation.lower().strip('"').split("slot")[-1].lstrip().strip("=") + for control in controllers.values(): + if "Location" in control and slotcontrol.lower() == control["Location"]["PartLocation"][ + "ServiceLabel" + ].lower().split("slot")[-1].lstrip().strip("="): + controllist.append(control) + elif "slot" in options.controller.lower(): + slotlocation = options.controller + if slotlocation: + slotcontrol = slotlocation.lower().strip('"').split("slot")[-1].lstrip().strip("=") + for control in controllers.values(): + if "Location" in control and slotcontrol.lower() == control["Location"]["PartLocation"][ + "ServiceLabel" + ].lower().split("slot")[-1].lstrip().strip("="): + controllist.append(control) + if not controllist: + raise InvalidCommandLineError("") + else: + if options.controller.isdigit(): + slotlocation = self.get_location_from_id(options.controller) + if slotlocation: + slotcontrol = slotlocation.lower().strip('"').split("slot")[-1].lstrip() + for control in content: + if slotcontrol.lower() == control["Location"].lower().split("slot")[-1].lstrip(): + controllist.append(control) + if not controllist: + raise InvalidCommandLineError("") + except InvalidCommandLineError: + raise InvalidCommandLineError("Selected controller not found in the current inventory " "list.") + + if ilo_ver >= 6.110: + if options.status: + if options.all: + for drive in controller_physicaldrives.values(): + pdrive_inilo = self.convertloc(drive["PhysicalLocation"]["PartLocation"]["ServiceLabel"]) + if len(drive["Operations"]) != 0: + self.rdmc.ui.printer( + "The drive is in %s state, %s percent complete.\n" + % ( + drive["Operations"][0]["OperationName"], + drive["Operations"][0]["PercentageComplete"], + ) + ) + if int(drive["Operations"][0]["PercentageComplete"]) == 100: + self.rdmc.ui.printer("You can reset %s using --drivereset now.\n" % (pdrive_inilo)) + elif len(drive["Operations"]) == 0: + mr_ct = drive["Status"]["State"] + self.rdmc.ui.printer("Sanitization is completed and updated drive status = %s\n" % (mr_ct)) + else: + self.rdmc.ui.printer("Sanitization failed for drive %s.\n" % (pdrive_inilo)) + else: + for drive in controller_physicaldrives.values(): + pdrive_inilo = self.convertloc(drive["PhysicalLocation"]["PartLocation"]["ServiceLabel"]) + for userdrive in physicaldrives: + if userdrive == pdrive_inilo: + if len(drive["Operations"]) != 0: + self.rdmc.ui.printer( + "The drive is in %s state, %s percent complete.\n" + % ( + drive["Operations"][0]["OperationName"], + drive["Operations"][0]["PercentageComplete"], + ) + ) + if int(drive["Operations"][0]["PercentageComplete"]) == 100: + self.rdmc.ui.printer("You can reset %s using --drivereset now.\n" % (userdrive)) + elif len(drive["Operations"]) == 0: + mr_ct = drive["Status"]["State"] + self.rdmc.ui.printer( + "Sanitization is completed and updated drive status = %s\n" % (mr_ct) + ) + + else: + self.rdmc.ui.printer("Sanitization failed for drive %s.\n" % (userdrive)) + elif options.drivereset: + if options.all: + for drive in controller_physicaldrives.values(): + pdrive_inilo = self.convertloc(drive["PhysicalLocation"]["PartLocation"]["ServiceLabel"]) + if "Actions" in drive: + if "#Drive.Reset" in drive["Actions"]: + path = drive["@odata.id"] + "/Actions/Drive.Reset" + contentsholder = {"ResetType": "ForceOn"} + self.rdmc.ui.printer("DriveReset path and payload: %s, %s\n" % (path, contentsholder)) + self.rdmc.app.post_handler(path, contentsholder) + else: + if len(drive["Operations"]) != 0: + self.rdmc.ui.printer( + "Sanitization is in progress for drive %s. Use --status to check it's status.\n" + % (pdrive_inilo) + ) + else: + self.rdmc.ui.printer( + "Drive sanitization is not being performed on %s\n" % (pdrive_inilo) + ) + else: + self.rdmc.ui.printer("Drive sanitization is not being performed on %s\n" % (pdrive_inilo)) + else: + for drive in controller_physicaldrives.values(): + pdrive_inilo = self.convertloc(drive["PhysicalLocation"]["PartLocation"]["ServiceLabel"]) + for userdrive in physicaldrives: + if userdrive == pdrive_inilo: + if "Actions" in drive: + if "#Drive.Reset" in drive["Actions"]: + path = drive["@odata.id"] + "/Actions/Drive.Reset" + contentsholder = {"ResetType": "ForceOn"} + self.rdmc.ui.printer( + "DriveReset path and payload: %s, %s\n" % (path, contentsholder) + ) + self.rdmc.app.post_handler(path, contentsholder) + else: + if len(drive["Operations"]) != 0: + self.rdmc.ui.printer( + "Santization is in progress for drive %s. Use --status to check its " + "status.\n" % (pdrive_inilo) + ) + else: + self.rdmc.ui.printer( + "Drive sanitization is not being performed on %s\n" % (pdrive_inilo) + ) + else: + self.rdmc.ui.printer( + "Drive sanitization is not being performed on %s\n" % (pdrive_inilo) + ) + else: + if self.storagesanitizedrives(physicaldrives, controller_physicaldrives, options.all): + if options.reboot: + self.auxcommands["reboot"].run("ColdBoot") + self.rdmc.ui.printer("Preparing for sanitization...\n") + self.monitorsanitization() + + else: + if options.status is True or options.drivereset is True: + raise InvalidCommandLineError("--status and --drivereset options are not supported on iLO 5\n") + if self.sanitizedrives( + controllist, + physicaldrives, + controller_physicaldrives, + options.mediatype, + options.all, + ): + if options.reboot: + self.auxcommands["reboot"].run("ColdBoot") + self.rdmc.ui.printer("Preparing for sanitization...\n") + self.monitorsanitization() + else: + self.rdmc.ui.printer("Sanitization will occur on the next system reboot.\n") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def get_location_from_id(self, controller_id): + for sel in self.rdmc.app.select("SmartStorageArrayController", path_refresh=True): + if "Collection" not in sel.maj_type: + controller = sel.dict + if controller["Id"] == str(controller_id): + return controller["Location"] + return None + + def storageget_location_from_id(self, controller_id, storage_id): + for sel in self.rdmc.app.select("StorageController", path_refresh=True): + if "Collection" not in sel.maj_type and storage_id in sel.dict["@odata.id"]: + controller = sel.dict + if controller["Id"] == str(controller_id): + return controller["Location"]["PartLocation"]["ServiceLabel"] + return None + + def sanitizedrives(self, controllist, drivelist, controller_drives, mediatype, optall): + """Gets drives ready for sanitization + + :param controllist: list of controllers + :type controllist: list. + :param drivelist: physical drives to sanitize + :type drivelist: list. + :param optall: flag for sanitizing all drives + :type optall: bool. + """ + sanitizedrivelist = [] + logicaldrivelist = [] + changes = False + + for controller in controllist: + pdrivelist = [x["DataDrives"] for x in controller["LogicalDrives"]] + + for plist in pdrivelist: + for drive in plist: + logicaldrivelist.append(drive) + + if optall: + sanitizedrivelist = [x["Location"] for x in controller["PhysicalDrives"]] + else: + for erasedrive in drivelist: + try: + for idx, pdrive in enumerate(controller["PhysicalDrives"]): + if erasedrive == pdrive["Location"]: + if pdrive["Location"] in logicaldrivelist: + raise InvalidCommandLineError( + "Unable to" + " sanitize configured drive. Remove" + " any volume(s) associated " + "with drive %s and try again." % pdrive["Location"] + ) + + # Validate Media Type + if not (self.validate_mediatype(erasedrive, mediatype, controller_drives)): + raise InvalidCommandLineError( + "One or more of the drives given does not match the " + "mediatype %s which is specified" % mediatype + ) + self.rdmc.ui.printer( + "Setting physical drive %s " "for sanitization\n" % pdrive["Location"] + ) + sanitizedrivelist.append(pdrive["Location"]) + break + except KeyError as excp: + raise NoContentsFoundForOperationError( + "The property '%s' is missing " "or invalid." % str(excp) + ) + + if sanitizedrivelist: + changes = True + if mediatype == "SSD": + erase_pattern_string = "SanitizeRestrictedBlockErase" + else: + erase_pattern_string = "SanitizeRestrictedOverwrite" + + contentsholder = { + "Actions": [ + { + "Action": "PhysicalDriveErase", + "ErasePattern": erase_pattern_string, + "PhysicalDriveList": sanitizedrivelist, + } + ], + "DataGuard": "Disabled", + } + + # self.rdmc.ui.printer( + # "DriveSanitize path and payload: %s, %s\n" + # % (controller["@odata.id"], contentsholder) + # ) + patch_path = controller["@odata.id"] + if "settings" not in patch_path: + patch_path = patch_path + "settings/" + controller["@odata.id"] = patch_path + + self.rdmc.app.patch_handler(controller["@odata.id"], contentsholder) + + return changes + + def convertloc(self, servicelabel): + loc = servicelabel.split(":") + temp_str = str(loc[1].split("=")[1] + ":" + loc[2].split("=")[1] + ":" + loc[3].split("=")[1]) + return temp_str + + def storagesanitizedrives(self, drivelist, controller_drives, optall): + sanitizedrivelist = [] + changes = False + plocation = "" + if len(controller_drives) != 0: + for plist in controller_drives.values(): + logicaldrivelist = [] + logicaldrivelist.extend(plist["Links"]["Volumes"]) + plocation = self.convertloc(plist["PhysicalLocation"]["PartLocation"]["ServiceLabel"]) + + if optall: + if logicaldrivelist: + self.rdmc.ui.printer( + "Unable to" + " sanitize drive %s. Remove" + " any volume(s) associated " + "with this drive and try again.\n" % plocation + ) + break + sanitizedrivelist.append(plocation) + else: + for erasedrive in drivelist: + try: + if erasedrive == plocation: + if logicaldrivelist: + self.rdmc.ui.printer( + "Unable to" + " sanitize drive %s. Remove" + " any volume(s) associated " + "with this drive and try again.\n" % plocation + ) + self.rdmc.ui.printer("Setting physical drive %s " "for sanitization\n" % plocation) + sanitizedrivelist.append(plocation) + break + except KeyError as excp: + raise NoContentsFoundForOperationError( + "The property '%s' is missing " "or invalid.\n" % str(excp) + ) + + if sanitizedrivelist: + changes = True + path = plist["@odata.id"] + "/Actions/Drive.SecureErase" + contentsholder = {} + + self.rdmc.ui.printer("DriveSanitize path and payload: %s, %s\n" % (path, contentsholder)) + + self.rdmc.app.post_handler(path, contentsholder) + sanitizedrivelist = [] + self.rdmc.ui.printer("You can check the sanitization status of %s using --status\n" % (plocation)) + + return changes + + def validate_mediatype(self, erasedrive, mediatype, controller_drives): + """validates media type as HDD or SSD""" + for idx in list(controller_drives.keys()): + phy_drive = controller_drives[idx] + if phy_drive["Location"] == erasedrive and phy_drive["MediaType"] == mediatype: + return True + return False + + def monitorsanitization(self): + """monitors sanitization percentage""" + # TODO: Add code to give updates on sanitization + + def drivesanitizevalidation(self, options): + """drive sanitize validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--controller", + dest="controller", + help="Use this flag to select the corresponding controller " "using either the slot number or index.", + default=None, + ) + customparser.add_argument( + "--storageid", + dest="storageid", + help="Use this flag to select the corresponding storageid in iLO6 only.", + default=None, + ) + customparser.add_argument( + "--mediatype", + dest="mediatype", + help="""Use this flag to select the mediatype of the hard disk """, + default=None, + required=True, + ) + customparser.add_argument( + "--reboot", + dest="reboot", + help="Include this flag to perform a coldboot command " + "function after completion of operations and monitor " + "sanitization.", + action="store_true", + default=False, + ) + customparser.add_argument( + "--all", + dest="all", + help="""Use this flag to sanitize all physical drives on a """ """controller.""", + action="store_true", + default=False, + ) + customparser.add_argument( + "--drivereset", + dest="drivereset", + help="""Use this flag to reset physical drives on a """ """controller.""", + action="store_true", + default=False, + ) + customparser.add_argument( + "--status", + dest="status", + help="""Use this flag to check sanitization status of a """ """controller.""", + action="store_true", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/FactoryResetControllerCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/FactoryResetControllerCommand.py new file mode 100644 index 0000000..3d53557 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/FactoryResetControllerCommand.py @@ -0,0 +1,223 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Factory Reset Controller Command for rdmc""" + + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class FactoryResetControllerCommand: + """Factory reset controller command""" + + def __init__(self): + self.ident = { + "name": "factoryresetcontroller", + "usage": None, + "description": "Run without " + "arguments for the current controller options.\n\texample: " + "factoryresetcontroller\n\n\tTo factory reset a controller " + "by index.\n\texample: factoryresetcontroller --controller=2" + '\n\texample: factoryresetcontroller --controller="Slot 1" \n\n' + "\tTo factory reset a controller on Gen11 server\n" + "\texample: factoryresetcontroller --reset_type resetall --storageid DE000100\n" + "\texample: factoryresetcontroller --reset_type preservevolumes --storageid DE000100\n", + "summary": "Factory resets a controller by index or location.", + "aliases": [], + "auxcommands": ["SelectCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main disk inventory worker function + + :param line: command line input + :type line: string. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.frcontrollervalidation(options) + + ilo_ver = self.rdmc.app.getiloversion() + if ilo_ver >= 6.110: + if not options.storageid: + raise InvalidCommandLineError( + "--storageid option is mandatory for iLO6 along with --controller option.\n" + ) + if ( + (options.controller is not None) + and (options.storageid is not None) + and (options.reset_type is not None) + ): + raise InvalidCommandLineError("--controller is not supported in iLO6.") + + elif (options.storageid is not None) and (options.reset_type is not None): + st_content = [] + self.auxcommands["select"].selectfunction("StorageCollection.") + get_content = self.rdmc.app.getprops() + for st_controller in get_content: + path = st_controller["Members"] + for mem in path: + for val in mem.values(): + if "DE" in val and options.storageid in val: + getval = self.rdmc.app.get_handler(val, silent=True, service=True).dict + if options.storageid: + if getval["Id"] == options.storageid: + st_content.append(getval) + else: + raise InvalidCommandLineError( + "Selected storage id not found in the current inventory " "list." + ) + else: + st_content.append(getval) + for st_controller in st_content: + path = st_controller["Actions"]["#Storage.ResetToDefaults"]["target"] + + if options.reset_type.lower() == "resetall": + actionitem = "ResetAll" + body = {"ResetType": actionitem} + elif options.reset_type.lower() == "preservevolumes": + actionitem = "PreserveVolumes" + body = {"ResetType": actionitem} + else: + raise InvalidCommandLineError("Invalid command.") + + # self.rdmc.ui.printer( + # "FactoryReset path and payload: %s, %s\n" + # % (path, body) + # ) + self.rdmc.app.post_handler(path, body) + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + elif (options.storageid is None) or (options.reset_type is None): + raise InvalidCommandLineError("Invalid command\n" "--reset_type and --storageid is required") + + else: + self.auxcommands["select"].selectfunction("SmartStorageConfig.") + content = self.rdmc.app.getprops() + if options.controller and options.reset_type is None and options.storageid is None: + controllist = [] + + try: + if options.controller and options.controller.isdigit(): + slotlocation = self.get_location_from_id(options.controller) + if slotlocation: + slotcontrol = slotlocation.lower().strip('"').split("slot")[-1].lstrip() + for control in content: + if slotcontrol.lower() == control["Location"].lower().split("slot")[-1].lstrip(): + controllist.append(control) + # else: + # self.parser.print_help() + # return ReturnCodes.SUCCESS + if not controllist: + raise InvalidCommandLineError("") + except InvalidCommandLineError: + raise InvalidCommandLineError("Selected controller not found in the current inventory " "list.") + for controller in controllist: + contentsholder = { + "Actions": [{"Action": "FactoryReset"}], + "DataGuard": "Disabled", + } + self.rdmc.ui.printer( + "FactoryReset path and payload: %s, %s\n" % (controller["@odata.id"], contentsholder) + ) + self.rdmc.app.patch_handler(controller["@odata.id"], contentsholder) + + elif options.controller and (options.reset_type is not None) or (options.storageid is not None): + raise InvalidCommandLineError( + "Invalid command\n" "--reset_type and --storageid is not supported in iLO5" + ) + + for idx, val in enumerate(content): + self.rdmc.ui.printer("[%d]: %s\n" % (idx, val["Location"])) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def get_location_from_id(self, controller_id): + for sel in self.rdmc.app.select("SmartStorageArrayController", path_refresh=True): + if "Collection" not in sel.maj_type: + controller = sel.dict + if controller["Id"] == str(controller_id): + return controller["Location"] + return None + + def frcontrollervalidation(self, options): + """Factory reset controller validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--controller", + dest="controller", + help="Use this flag to select the corresponding controller " "using either the slot number or index.", + default=None, + ) + + customparser.add_argument( + "--reset_type", + dest="reset_type", + help="Use this flag to pass the reset type for storage controller in iLO6 ", + default=None, + ) + + customparser.add_argument( + "--storageid", + dest="storageid", + help="Use this flag to select the corresponding storage id in iLO6", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/StorageControllerCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/StorageControllerCommand.py new file mode 100644 index 0000000..961af60 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/StorageControllerCommand.py @@ -0,0 +1,2200 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Storage Controller Command for rdmc""" +import json +import sys +from argparse import RawDescriptionHelpFormatter + +import redfish + +try: + from rdmc_helper import ( + UI, + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + ReturnCodes, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + UI, + InvalidFileInputError, + Encryption, + ) + +from redfish.ris.resp_handler import ResponseHandler + +# from redfish.ris.utils import iterateandclear + +__config_file__ = "storagecontroller_config.json" + +# from rdmc_base_classes import HARDCODEDLIST + +__subparsers__ = ["load", "save", "state"] + + +class StorageControllerCommand: + """Storage controller command""" + + def __init__(self): + self.ident = { + "name": "storagecontroller", + "usage": None, + "description": "\tTo Manage PLDM for RDE storage devices. For other storage devices (i.e NVMe)," + "use the `select type/get/set` paradigm or raw commands.\n\n" + "\tRun without arguments for the " + "current list of Storage controllers.\n\texample: " + "storagecontroller\n\n\tTo get more details on a specific controller " + "select it by index Note: On ILO6, --storageid is mandatory along with --controller.\n\t" + "example: storagecontroller --storageid=DE00E000 --controller=2" + "\n\n\tTo get more details on a specific controller select " + 'it by location.\n\texample: storagecontroller --storageid=DE00E000 --controller "Slot 0"' + "\n\n\tIn order to get a list of all physical drives for " + "each controller.\n\texample: storagecontroller --physicaldrives" + "\n\n\tTo obtain details about physical drives for a " + "specific controller.\n\texample: storagecontroller --storageid=DE00E000 --controller=3 " + "--physicaldrives\n\n\tTo obtain details about a specific " + "physical drive for a specific controller.\n\texample: storagecontroller " + "--storageid=DE00E000 --controller=3 --pdrive=1I:1:1\n\n\tIn order to get a list of " + "all volumes for the each controller.\n\texample: " + "storagecontroller --logicaldrives\n\n\tTo obtain details about " + "volumes for a specific controller.\n\texample: " + "storagecontroller --storageid=DE00E000 --controller=3 --logicaldrives\n\n\tTo obtain " + "details about a specific volume for a specific " + "controller.\n\texample: storagecontroller --storageid=DE00E000 --controller=3 --ldrive=1\n\n\tTo obtain " + "details about a specific Storage id for a specific " + "controllers.\n\texample: storagecontroller --storageid=DE00E000\n", + "summary": "Discovers all storage controllers installed in the " "server and managed by the SmartStorage.", + "aliases": ["smartarray"], + "auxcommands": ["SelectCommand"], + } + self.config_file = None + self.fdata = None + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def file_handler(self, filename, operation, options, data=None, sk=None): + """ + Wrapper function to read or write data to a respective file + + :param data: data to be written to output file + :type data: container (list of dictionaries, dictionary, etc.) + :param file: filename to be written + :type file: string (generally this should be self.clone_file or tmp_clone_file + :param operation: file operation to be performed + :type operation: string ('w+', 'a+', 'r+') + :param sk: sort keys flag + :type sk: boolean + :param options: command line options + :type options: attribute + :returns: json file data + """ + writeable_ops = ["w", "w+", "a", "a+"] + fdata = None + + try: + if operation in writeable_ops: + if getattr(options, "encryption", False): + with open(filename, operation + "b") as outfile: + outfile.write( + Encryption().encrypt_file( + json.dumps( + data, + indent=2, + cls=redfish.ris.JSONEncoder, + sort_keys=sk, + ), + getattr(options, "encryption", False), + ) + ) + else: + with open(filename, operation) as outfile: + outfile.write( + json.dumps( + data, + indent=2, + cls=redfish.ris.JSONEncoder, + sort_keys=sk, + ) + ) + else: + if getattr(options, "encryption", False): + with open(filename, operation + "b") as file_handle: + fdata = json.loads( + Encryption().decrypt_file( + file_handle.read(), + getattr(options, "encryption", False), + ) + ) + else: + with open(filename, operation) as file_handle: + fdata = json.loads(file_handle.read()) + return fdata + except Exception as excp: + raise InvalidFileInputError( + "Unable to open file: %s.\nVerify the file location " "and the file has a valid JSON format.\n" % excp + ) + + def controller_id(self, options): + """ + Get iLO types from server and save storageclone URL get Controller + :parm options: command line options + :type options: attribute + :returns: returns list + """ + self.auxcommands["select"].selectfunction("StorageControllerCollection.") + ctr_content = self.rdmc.app.getprops() + ctrl_data = [] + all_ctrl = dict() + for ct_controller in ctr_content: + path = ct_controller["Members"] + for i in path: + res = i["@odata.id"] + ctrl_data.append(res) + ctrl_id_url = res + "?$expand=." + get_ctr = self.rdmc.app.get_handler(ctrl_id_url, silent=True, service=True).dict + _ = get_ctr["@odata.id"].split("/") + get_ctr = self.rdmc.app.removereadonlyprops(get_ctr, False, True) + all_ctrl[get_ctr["Name"]] = get_ctr + return all_ctrl + + def get_volume(self, options): + """ + Get iLO types from server and save storageclone URL get volumes + :parm options: command line options + :type options: attribute + :returns: returns list + """ + self.auxcommands["select"].selectfunction("VolumeCollection.") + vol_content = self.rdmc.app.getprops() + vol_data = [] + all_vol = dict() + for st_volume in vol_content: + path = st_volume["Members"] + for i in path: + res = i["@odata.id"] + if self.rdmc.opts.verbose: + sys.stdout.write("Saving properties of type %s \t\n" % res) + vol_data.append(res) + vol_id_url = res + "?$expand=." + get_vol = self.rdmc.app.get_handler(vol_id_url, silent=True, service=True).dict + # print("Assigned drive", get_vol["Links"]["Drives"]) + get_vol = self.rdmc.app.removereadonlyprops(get_vol, False, True) + all_vol[get_vol["Name"]] = get_vol + return all_vol + + def run(self, line, help_disp=False): + """Main sstorage controller worker function + :param help_disp: command line input + :type help_disp: bool. + :param line: command line input + :type line: string. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + ident_subparser = False + for cmnd in __subparsers__: + if cmnd in line: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + ident_subparser = True + break + if not ident_subparser: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line, default=True) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.storagecontrollervalidation(options) + ilo_ver = self.rdmc.app.getiloversion() + + if options.command == "state": + if not options.storageid: + raise InvalidCommandLineError("Please provide --storageid option.\n") + if ilo_ver >= 6: + storage_ctlr = self.storagecontroller(options, print_ctrl=False, single_use=True) + for storage in storage_ctlr: + if storage_ctlr[storage].get("@Redfish.Settings"): + time = storage_ctlr[storage]["@Redfish.Settings"].get("Time", "Not Available") + sys.stdout.write("Last Configuration Attempt: %s\n" % str(time)) + for message in storage_ctlr[storage]["@Redfish.Settings"].get("Messages", []): + ResponseHandler( + self.rdmc.app.validationmanager, + self.rdmc.app.typepath.defs.messageregistrytype, + ).message_handler( + response_data=message, + message_text="", + verbosity=2, + dl_reg=False, + ) + else: + sys.stdout.write( + "Previous storage controller configuration status messages are " + "not available for controller '%s'\n" % (storage) + ) + ctrl_data = dict() + ctrl_data.update({"Location": storage_ctlr[storage].get("Location", "Unknown")}) + ctrl_data.update({"Model": storage_ctlr[storage].get("Model", "Unknown")}) + UI().print_out_json(ctrl_data) + + else: + controllers = self.controllers(options, print_ctrl=False, single_use=True) + for controller in controllers: + if controllers[controller].get("@Redfish.Settings"): + time = controllers[controller]["@Redfish.Settings"].get("Time", "Not Available") + sys.stdout.write("Last Configuration Attempt: %s\n" % str(time)) + for message in controllers[controller]["@Redfish.Settings"].get("Messages", []): + ResponseHandler( + self.rdmc.app.validationmanager, + self.rdmc.app.typepath.defs.messageregistrytype, + ).message_handler( + response_data=message, + message_text="", + verbosity=2, + dl_reg=False, + ) + else: + sys.stdout.write( + "Previous storage controller configuration status messages are " + "not available for controller '%s'\n" % (controller) + ) + ctrl_data = dict() + ctrl_data.update({"Location": controllers[controller].get("Location", "Unknown")}) + ctrl_data.update({"Model": controllers[controller].get("Model", "Unknown")}) + UI().print_out_json(ctrl_data) + + if options.command == "save": + if ilo_ver >= 6.110: + storage = {} + all_stgcntrl = {} + st_content = self.rdmc.app.get_handler("/redfish/v1/Systems/1/Storage/", silent=True, service=True).dict + sel = st_content["Members"] + for i in sel: + res = i["@odata.id"] + if "DE" in res: + storage_id_url = res + "?$expand=." + getval = self.rdmc.app.get_handler(storage_id_url, silent=True, service=True).dict + vol = self.get_volume(options) + ctr = self.controller_id(options) + getval = self.rdmc.app.removereadonlyprops(getval, False, True) + storage.update(getval) + getval["Controllers"]["Members"].append(ctr) + del getval["Controllers"]["Members"][0] + getval["Volumes"]["Members"].append(vol) + del getval["Volumes"]["Members"][0] + all_stgcntrl[getval["Id"]] = getval + self.file_handler(self.config_file, "w", options, all_stgcntrl, sk=True) + sys.stdout.write("Storage Controller configuration saved to '%s'.\n" % self.config_file) + else: + st_content = self.rdmc.app.get_handler("/redfish/v1/Systems/1/Storage/", silent=True, service=True).dict + sel = st_content["Members"] + for i in sel: + res = i["@odata.id"] + if "DE" in res: + break + else: + continue + storage = {} + all_stgcntrl = {} + storage_id_url = res + "?$expand=." + getval = self.rdmc.app.get_handler(storage_id_url, silent=True, service=True).dict + vol = self.get_volume(options) + ctr = self.controller_id(options) + getval = self.rdmc.app.removereadonlyprops(getval, False, True) + storage.update(getval) + getval["Controllers"]["Members"].append(ctr) + del getval["Controllers"]["Members"][0] + getval["Volumes"]["Members"].append(vol) + del getval["Volumes"]["Members"][0] + all_stgcntrl[getval["Id"]] = getval + self.file_handler(self.config_file, "w", options, all_stgcntrl, sk=True) + sys.stdout.write("Storage Controller configuration saved to '%s'.\n" % self.config_file) + controllers = self.controllers(options, print_ctrl=False, single_use=True) + for key, controller in controllers.items(): + physical_drives = self.physical_drives(options, controller, print_ctrl=False, single_use=True) + logical_drives = self.logical_drives(options, controller, print_ctrl=False, single_use=True) + if self.rdmc.app.typepath.defs.isgen10: + for drivec_idx, drivec in enumerate(controller.get("PhysicalDrives", [])): + for drive in physical_drives: + if drivec["Location"] == physical_drives[drive]["Location"]: + controller["PhysicalDrives"][drivec_idx].update(physical_drives[drive]) + break + for drivec_idx, drivec in enumerate(controller.get("LogicalDrives", [])): + for drive in logical_drives: + if drivec["LogicalDriveNumber"] == logical_drives[drive]["Id"]: + controller["LogicalDrives"][drivec_idx].update(logical_drives[drive]) + break + if controller.get("Links"): + controller["Links"]["LogicalDrives"] = logical_drives + controller["Links"]["PhysicalDrives"] = physical_drives + else: + controller["links"]["LogicalDrives"] = logical_drives + controller["links"]["PhysicalDrives"] = physical_drives + + self.file_handler(self.config_file, "w", options, controllers, sk=True) + sys.stdout.write("Storage Controller configuration saved to '%s'.\n" % self.config_file) + + if options.command == "load": + if ilo_ver >= 6.110: + storage_load = self.file_handler(self.config_file, operation="rb", options=options) + for starageid in storage_load: + + controller_id = storage_load[starageid]["Controllers"] + logical_id = storage_load[starageid]["Volumes"] + physical_id = storage_load[starageid]["Drives"] + + if controller_id: + if "Members" in controller_id: + id_controller = "/redfish/v1/Systems/1/Storage/" + starageid + controllers = self.rdmc.app.get_handler(id_controller, silent=True).dict + readonly_removed_controllers = self.storagecontrollerremovereadonly(controllers) + readonly_removed = controller_id + self.load_property_helper(readonly_removed, readonly_removed_controllers, id_controller) + else: + for data in controller_id: + id_controller = controller_id[data].get("@odata.id") + controllers = self.rdmc.app.get_handler(id_controller, silent=True).dict + readonly_removed_controllers = self.storagecontrollerremovereadonly(controllers) + readonly_removed = storage_load["Controllers"] + for controller, val in readonly_removed.items(): + for i in readonly_removed_controllers: + try: + if (i in val) and (controllers[i] != val[i]): + body = {str(i): val[i]} + self.rdmc.app.patch_handler(id_controller, body) + except: + sys.stdout.write("Unable to update the property " "for: '%s'.\n" % i) + continue + if logical_id: + if "Members" in logical_id: + id_logical = "/redfish/v1/Systems/1/Storage/" + starageid + "/Volumes/1" + logicals = self.rdmc.app.get_handler(id_logical, silent=True).dict + readonly_removed_logical = self.storagecontrollerremovereadonly(logicals) + readonly_logical = logical_id + self.load_property_helper(readonly_logical, readonly_removed_logical, id_logical) + else: + for logical_data in logical_id: + id_logical = logical_id[logical_data].get("@odata.id") + logicals = self.rdmc.app.get_handler(id_logical, silent=True).dict + readonly_removed_logical = self.storagecontrollerremovereadonly(logicals) + readonly_logical = storage_load["Volumes"] + for logical, val in readonly_logical.items(): + for lg in readonly_removed_logical: + try: + if (lg in val) and (logicals[lg] != val[lg]): + body = {str(lg): val[lg]} + self.rdmc.app.patch_handler(id_logical, body) + except: + sys.stdout.write("Unable to update the property " "for: '%s'.\n" % lg) + continue + if physical_id: + if "Members" in physical_id: + id_physical = "/redfish/v1/Systems/1/Storage/" + starageid + "/Drives" + physicals = self.rdmc.app.get_handler(id_physical, silent=True).dict + readonly_removed_physical = self.storagecontrollerremovereadonly(physicals) + readonly_physical = physical_id + self.load_property_helper(readonly_physical, readonly_removed_physical, id_physical) + else: + for physical_data in physical_id: + id_physical = physical_id[physical_data].get("@odata.id") + physicals = self.rdmc.app.get_handler(id_physical, silent=True).dict + readonly_removed_physical = self.storagecontrollerremovereadonly(physicals) + readonly_physical = storage_load["Drives"] + for logical, val in readonly_physical.items(): + for lg in readonly_removed_physical: + try: + if (lg in val) and (physicals[lg] != val[lg]): + body = {str(lg): val[lg]} + self.rdmc.app.patch_handler(id_physical, body) + except: + sys.stdout.write("Unable to update the property " "for: '%s'.\n" % lg) + continue + sys.stdout.write( + "Storage Controller configuration loaded. Reboot the server to " "finalize the configuration.\n" + ) + + else: + controllers = self.file_handler(self.config_file, operation="rb", options=options) + + for controller in controllers: + put_path = controllers[controller]["@Redfish.Settings"]["SettingsObject"]["@odata.id"] + if controllers[controller].get("DataGuard"): + controllers[controller]["DataGuard"] = "Disabled" + readonly_removed = self.rdmc.app.removereadonlyprops(controllers[controller]) + readonly_removed["LogicalDrives"] = controllers[controller]["LogicalDrives"] + readonly_removed["PhysicalDrives"] = controllers[controller]["PhysicalDrives"] + # self.rdmc.app.put_handler(controllers[controller]["@odata.id"], readonly_removed) + self.rdmc.app.put_handler(put_path, readonly_removed) + + sys.stdout.write( + "Storage Controller configuration loaded. Reboot the server to " + "finalize the configuration.\n" + ) + elif options.command == "default": + if ilo_ver >= 6: + if options.storageid and not options.controller: + self.storageid(options, print_ctrl=True, single_use=False) + elif options.storageid and options.controller: + self.storagecontroller(options, print_ctrl=True, single_use=False) + elif options.controller and not options.storageid: + raise InvalidCommandLineError( + "with --controller option, --storageid option is mandatory for 'iLO 6' and 'iLO 5'.\n" + ) + elif ( + options.physicaldrives or options.pdrive or options.logicaldrives or options.ldrive + ) and not options.storageid: + raise InvalidCommandLineError("--storageid option is mandatory for 'iLO 6' and 'iLO 5'.\n") + elif ( + not options.storageid + and not options.controller + and not options.physicaldrives + and not options.pdrive + and not options.logicaldrives + and not options.ldrive + ): + self.list_all_storages(options, print_ctrl=True, single_use=False) + else: + self.controllers(options, print_ctrl=True, single_use=False) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def load_property_helper(self, readonly, readonly_removed, id): + for item, val in readonly.items(): + for lg in readonly_removed: + try: + if (lg in val) and (item[lg] != val[lg]): + body = {str(lg): val[lg]} + self.rdmc.app.patch_handler(id, body) + except: + sys.stdout.write("Unable to update the property " "for: '%s'.\n" % lg) + continue + + def list_all_storages(self, options, print_ctrl=False, single_use=False): + # self.auxcommands["select"].selectfunction("StorageCollection.") + st_url = "/redfish/v1/Systems/1/Storage/" + st_content = self.rdmc.app.get_handler(st_url, silent=True, service=True) + if "error" not in st_content.dict: + if st_content.dict["Members@odata.count"] == 0: + raise InvalidCommandLineError("Redfish Enabled Controllers not found in this server.\n") + if st_content.dict["Members"]: + st_content = st_content.dict["Members"] + + if "json" in options and not options.json: + if self.rdmc.opts.verbose: + sys.stdout.write("---------------------------------\n") + sys.stdout.write("List of RDE storage devices\n") + sys.stdout.write("---------------------------------\n") + if options.json: + outjson = dict() + for st_controller in st_content: + for val in st_controller.values(): + if "DE" in val: + st = self.rdmc.app.get_handler(val, silent=True, service=True).dict + health = "" + if "Health" in st["Status"]: + health = st["Status"]["Health"] + elif "HealthRollup" in st["Status"]: + health = st["Status"]["HealthRollup"] + if options.json: + outjson[st["Id"]] = dict() + outjson[st["Id"]]["Name"] = st["Name"] + outjson[st["Id"]]["Health"] = health + outjson[st["Id"]]["State"] = st["Status"]["State"] + else: + sys.stdout.write( + "%s: %s: Health %s: %s\n" % (st["Id"], st["Name"], health, st["Status"]["State"]) + ) + + if options.json: + UI().print_out_json(outjson) + else: + raise InvalidCommandLineError( + "Storage controllers are not ready , Kindly re run the command after sometime\n" + ) + else: + raise InvalidCommandLineError( + "Storage controllers are not ready , " "Kindly re run the command after sometime\n" + ) + + def storagecontrollerremovereadonly(self, controller): + templist = [ + "Ports", + "CacheSummary", + "SupportedRAIDTypes", + "PCIeInterface", + "SupportedControllerProtocols", + "SupportedDeviceProtocols", + "SKU", + "SpeedGbps", + "SerialNumber", + "PartNumber", + "Model", + "@odata.etag", + "Status", + "Manufacturer", + "Location", + "Identifiers", + "FirmwareVersion", + "Name", + "Id", + "@odata.type", + "@odata.id", + "Links", + ] + + remove_data = self.rdmc.app.removereadonlyprops(controller, False, True, templist) + return remove_data + + def odataremovereadonly(self, tmp): + templist = [ + "@odata.etag", + "@odata.type", + "@odata.context", + ] + remove_data = self.rdmc.app.removereadonlyprops(tmp, False, True, templist) + return remove_data + + def controllers(self, options, print_ctrl=False, single_use=False): + """ + Identify/parse volumes (and child properties) of a parent array controller + + :param options: command line options (options.controller is a required attribute) + :type options: object attributes + :param print_ctrl: flag for console print enablement/disablement (default disabled) + :type print_ctrl: bool + :param single_use: singular usage - True or explore mode - False, + returns dictionary of results to calling function (default disabled) - see returns. + :type single_use: bool + :returns: None, dictionary of all controllers identified by 'Id' + """ + no_need_ilo5 = False + if getattr(options, "controller", False): + controller_ident = False + + if ( + not (getattr(options, "json", False)) + and not (getattr(options, "controller", False)) + and print_ctrl + and (options.physicaldrives is None) + and (options.pdrive is None) + and (options.logicaldrives is None) + and (options.ldrive is None) + ): + if not options.storageid and not options.controllers: + sys.stdout.write("---------------------------------\n") + sys.stdout.write("List of RDE storage devices\n") + sys.stdout.write("---------------------------------\n") + + st_flag = False + storage_data = {} + get_contrller = [] + list_storageid = self.rdmc.app.get_handler("/redfish/v1/Systems/1/Storage/", silent=True, service=True) + if "error" not in list_storageid.dict: + if list_storageid.dict["Members@odata.count"] == 0: + raise InvalidCommandLineError("Redfish Enabled Controllers not found in this server.\n") + if len(list_storageid.dict["Members"]) > 0: + list_storageid = list_storageid.dict["Members"] + for val in list_storageid: + storageid_fromurl = val["@odata.id"] + # storageid_fromurl = val.split("/")[-2] + try: + stdout = "DE" in storageid_fromurl and options.storageid in storageid_fromurl + except: + stdout = "DE" in storageid_fromurl + if "DE" in storageid_fromurl and stdout: + st_flag = True + getval = self.rdmc.app.get_handler(storageid_fromurl, silent=True, service=True).dict + try: + controller = getval["Controllers"] + volumes = getval["Volumes"] + list_controllers = self.rdmc.app.get_handler( + controller["@odata.id"], silent=True, service=True + ).dict + list_volumes = self.rdmc.app.get_handler( + volumes["@odata.id"], silent=True, service=True + ).dict + except KeyError: + self.rdmc.ui.printer("Please check controller was Gen11.\n") + return ReturnCodes.NO_CONTENTS_FOUND_FOR_OPERATION + + for ctl in list_controllers["Members"]: + ctl = ctl["@odata.id"] + get_sel = self.rdmc.app.get_handler(ctl, silent=True, service=True) + get_contrller.append(get_sel) + else: + continue + if not st_flag: + raise InvalidCommandLineError( + "Storage ID {} not found or Storage ID is not Redfish enabled " + "and does not have DExxxxxx\n".format(options.storageid) + ) + return + no_need_ilo5 = True + outjson = dict() + for sel in get_contrller: + if "Collection" not in sel.path: + controller = sel.dict + storage_id = controller["@odata.id"].split("/") + storage_id = storage_id[6] + if getattr(options, "controller", False): + if ( + getattr(options, "controller", False) == controller["Id"] + or getattr(options, "controller", False)[-1] + == controller["Location"]["PartLocation"]["ServiceLabel"][-1] + ): + controller_ident = True + else: + continue + if ( + print_ctrl + and not getattr(options, "controller", False) + and not getattr(options, "physicaldrives", False) + and not getattr(options, "pdrive", False) + and not getattr(options, "ldrive", False) + and not getattr(options, "logicaldrives", False) + and options.storageid is None + and not options.json + and not getattr(options, "controllers", False) + ): + health = "" + if "Health" in controller["Status"]: + health = controller["Status"]["Health"] + elif "HealthRollup" in controller["Status"]: + health = controller["Status"]["HealthRollup"] + sys.stdout.write( + "%s: %s: Health %s: %s\n" + % (storage_id, controller["Model"], health, controller["Status"]["State"]) + ) + elif ( + getattr(options, "json", False) + and (options.controller is None) + and (options.physicaldrives is None) + and (options.pdrive is None) + and (options.ldrive is None) + and (options.logicaldrives is None) + and options.storageid is None + and options.json + and not options.controllers + ): + tmp = dict() + tmp["Name"] = controller["Name"] + tmp["State"] = controller["Status"]["Health"] + tmp["Health"] = controller["Status"]["State"] + outjson[storage_id] = tmp + + if ( + not getattr(options, "json", False) + and options.storageid + and not getattr(options, "controllers", False) + and not getattr(options, "physicaldrives", False) + and not getattr(options, "logicaldrives", False) + and not getattr(options, "ldrive", False) + and not getattr(options, "pdrive", False) + and not getattr(options, "controller", False) + and options.command not in "state" + ): + sys.stdout.write("-----------------------------------\n") + sys.stdout.write("Details of Storage %s\n" % options.storageid) + sys.stdout.write("-----------------------------------\n") + sys.stdout.write("\tId: %s\n\t" % getval["Id"]) + sys.stdout.write("Health: %s\n\t" % getval["Status"]["HealthRollup"]) + sys.stdout.write("Name: %s\n\t" % getval["Name"]) + sys.stdout.write("Number of Controllers: %s\n\t" % list_controllers["Members@odata.count"]) + sys.stdout.write("Number of Volumes: %s\n\t" % list_volumes["Members@odata.count"]) + sys.stdout.write("Number of Drives: %s\n\t\n" % getval["Drives@odata.count"]) + if ( + getattr(options, "json", False) + and options.storageid + and options.json + and not options.physicaldrives + and not options.logicaldrives + and not options.ldrive + and not options.pdrive + and not options.controller + and not options.controllers + ): + storage_data["Storage"] = dict() + + storage_data["Storage"].update({"Id": getval["Id"]}) + storage_data["Storage"].update({"Health": getval["Status"]["HealthRollup"]}) + storage_data["Storage"].update({"Name": getval["Name"]}) + storage_data["Storage"].update( + {"Number of Controllers": list_controllers["Members@odata.count"]} + ) + storage_data["Storage"].update({"Number of Volumes": list_volumes["Members@odata.count"]}) + storage_data["Storage"].update({"Number of Drives": getval["Drives@odata.count"]}) + UI().print_out_json(storage_data) + elif ( + # print_ctrl + getattr(options, "json", False) + and (options.controller is not None) + and ( + (options.logicaldrives is not None) + or (options.physicaldrives is not None) + or (options.ldrive is not None) + or (options.pdrive is not None) + ) + ): + pass + + elif ( + getattr(options, "json", False) + and (options.controller is not None) + and ( + (options.logicaldrives is not None) + or (options.physicaldrives is not None) + or (options.ldrive is not None) + or (options.pdrive is not None) + ) + ): + pass + # controllers code with json and without json + elif ( + getattr(options, "controllers", False) + and options.storageid + and options.controllers + and options.json is None + ): + sys.stdout.write("---------------------------------------------------\n") + sys.stdout.write("List of Controllers in this Storage ID %s\n" % options.storageid) + sys.stdout.write("---------------------------------------------------\n") + list_ctr = list_controllers["Members"] + for lst in list_ctr: + l_data = lst["@odata.id"] + get_ctr = self.rdmc.app.get_handler(l_data, silent=True, service=True).dict + sys.stdout.write("\tId: %s\n\t" % get_ctr["Id"]) + sys.stdout.write("Health: %s\n\t" % get_ctr["Status"]["Health"]) + sys.stdout.write("Name: %s\n\t" % get_ctr["Name"]) + sys.stdout.write("FirmwareVersion: %s\n\t" % get_ctr["FirmwareVersion"]) + sys.stdout.write("SerialNumber: %s\n\t\n" % get_ctr["SerialNumber"]) + elif ( + getattr(options, "json", False) + and options.storageid + and print_ctrl + and options.json + and options.controllers + ): + # sys.stdout.write("---------------------------------------------------\n") + # sys.stdout.write("List of Controllers in this Storage ID %s\n" % options.storageid) + # sys.stdout.write("---------------------------------------------------\n") + list_ctr = list_controllers["Members"] + for lst in list_ctr: + l_data = lst["@odata.id"] + get_ctr = self.rdmc.app.get_handler(l_data, silent=True, service=True).dict + ctr_data = dict() + ctr_data["Controllers"] = dict() + ctr_data["Controllers"].update({"Id": get_ctr["Id"]}) + ctr_data["Controllers"].update({"Health": get_ctr["Status"]["Health"]}) + ctr_data["Controllers"].update({"Name": get_ctr["Name"]}) + ctr_data["Controllers"].update({"FirmwareVersion": get_ctr["FirmwareVersion"]}) + ctr_data["Controllers"].update({"SerialNumber": get_ctr["SerialNumber"]}) + UI().print_out_json(ctr_data) + + elif ( + getattr(options, "controller", False) + and print_ctrl + and (options.controller is not None) + and options.json is None + and not options.physicaldrives + and not options.pdrive + and not options.logicaldrives + and not options.ldrive + ): + controller_info = "---------------------------------------------\n" + controller_info += "Controller {} Details on Storage Id {}" "\n".format( + options.controller, storage_id + ) + controller_info += "---------------------------------------------\n" + controller_info += "Id: %s\n" % controller["Id"] + controller_info += "StorageId: %s\n" % storage_id + controller_info += "Name: %s\n" % controller["Name"] + controller_info += "FirmwareVersion: %s\n" % controller["FirmwareVersion"] + controller_info += "Manufacturer: %s\n" % controller["Manufacturer"] + controller_info += "Model: %s\n" % controller["Model"] + controller_info += "PartNumber: %s\n" % controller["PartNumber"] + controller_info += "SerialNumber: %s\n" % controller["SerialNumber"] + try: + controller_info += "SKU: %s\n" % controller["SKU"] + except KeyError: + pass + controller_info += "Status: %s\n" % controller["Status"] + try: + controller_info += ( + "SupportedDeviceProtocols: %s\n" % controller["SupportedDeviceProtocols"] + ) + except KeyError: + pass + try: + controller_info += ( + "SupportedControllerProtocols: %s\n" % controller["SupportedControllerProtocols"] + ) + except KeyError: + pass + self.rdmc.ui.printer(controller_info, verbose_override=True) + + elif getattr(options, "json", False) and (options.controller is not None): + outjson_data = dict() + outjson_data.update({"Id": controller["Id"]}) + outjson_data.update({"StorageId": storage_id}) + outjson_data.update({"Name": controller["Name"]}) + outjson_data.update({"FirmwareVersion": controller["FirmwareVersion"]}) + outjson_data.update({"Manufacturer": controller["Manufacturer"]}) + outjson_data.update({"Model": controller["Model"]}) + outjson_data.update({"PartNumber": controller["PartNumber"]}) + outjson_data.update({"SerialNumber": controller["SerialNumber"]}) + try: + outjson_data.update({"SKU": controller["SKU"]}) + except KeyError: + pass + outjson_data.update({"Status": controller["Status"]}) + try: + outjson_data.update( + {"SupportedDeviceProtocols": controller["SupportedDeviceProtocols"]} + ) + except KeyError: + pass + try: + outjson_data.update( + {"SupportedControllerProtocols": controller["SupportedControllerProtocols"]} + ) + except KeyError: + pass + UI().print_out_json(outjson_data) + + if getattr(options, "logicaldrives", False) or getattr(options, "ldrive", False) or single_use: + self.storagelogical_drives(options, controller, storage_id, print_ctrl) + + if getattr(options, "physicaldrives", False) or getattr(options, "pdrive", False) or single_use: + self.storagephysical_drives(options, controller, storage_id, print_ctrl) + + if single_use: + storage_data[controller["Id"]] = controller + if getattr(options, "controller", False) and not controller_ident and print_ctrl: + raise InvalidCommandLineError( + "Controller in position '%s' was " "not found\n" % (getattr(options, "controller", False)) + ) + if single_use: + return storage_data + + else: + if not no_need_ilo5: + controller_data = {} + for sel in self.rdmc.app.select("SmartStorageArrayController", path_refresh=True): + if "Collection" not in sel.maj_type: + controller = sel.dict + if getattr(options, "controller", False): + if ( + getattr(options, "controller", False) == controller["Id"] + or getattr(options, "controller", False) == controller["Location"] + ): + controller_ident = True + else: + continue + + if self.rdmc.app.typepath.defs.isgen10: + for g10controller in self.rdmc.app.select("SmartStorageConfig.", path_refresh=True): + if g10controller.dict.get("Location") == controller.get("Location"): + id = controller.get("Id") + controller.update(g10controller.dict) + if id: # iLO Bug - overwrite the Id from collection + controller["Id"] = id + break + + if ( + print_ctrl + and (options.controller is None) + and (options.physicaldrives is None) + and (options.pdrive is None) + and (options.ldrive is None) + and (options.logicaldrives is None) + ): + sys.stdout.write( + "[%s]: %s - %s\n" + % ( + controller["Id"], + controller["Location"], + controller["Model"], + ) + ) + elif ( + getattr(options, "json", False) + and (options.controller is None) + and (options.physicaldrives is None) + and (options.pdrive is None) + and (options.ldrive is None) + and (options.logicaldrives is None) + ): + outjson = dict() + outjson["Controllers"] = dict() + outjson["Controllers"][controller["Id"]] = dict() + outjson["Controllers"][controller["Id"]]["Location"] = controller["Location"] + outjson["Controllers"][controller["Id"]]["Model"] = controller["Model"] + UI().print_out_json(outjson) + + elif ( + print_ctrl + and (options.controller is not None) + and ((options.ldrive is not None) or options.pdrive is not None) + ): + pass + + elif ( + getattr(options, "json", False) + and (options.controller is not None) + and ((options.ldrive is not None) or (options.pdrive is not None)) + ): + pass + + elif print_ctrl and (options.controller is not None) and options.json is None: + controller_info = "------------------------------------------------\n" + controller_info += "Controller Info \n" + controller_info += "------------------------------------------------\n" + controller_info += "Id: %s\n" % controller["Id"] + controller_info += "AdapterType: %s\n" % controller["AdapterType"] + controller_info += "DataGuard: %s\n" % controller["DataGuard"] + controller_info += "Description: %s\n" % controller["Description"] + controller_info += "FirmwareVersion: %s\n" % controller["FirmwareVersion"] + controller_info += "Name: %s\n" % controller["Name"] + controller_info += "Model: %s\n" % controller["Model"] + controller_info += "Location: %s\n" % controller["Location"] + # controller_info += "Links: %s\n" % controller["Links"] + controller_info += "SerialNumber: %s\n" % controller["SerialNumber"] + controller_info += "Status: %s\n" % controller["Status"] + self.rdmc.ui.printer(controller_info, verbose_override=True) + + elif getattr(options, "json", False) and (options.controller is not None): + outjson_data = dict() + outjson_data.update({"Id": controller["Id"]}) + outjson_data.update({"AdapterType": controller["AdapterType"]}) + outjson_data.update({"DataGuard": controller["DataGuard"]}) + outjson_data.update({"Description": controller["Description"]}) + outjson_data.update({"FirmwareVersion": controller["FirmwareVersion"]}) + outjson_data.update({"Name": controller["Name"]}) + outjson_data.update({"Model": controller["Model"]}) + outjson_data.update({"Location": controller["Location"]}) + # outjson_data.update({"Links": controller["Links"]}) + outjson_data.update({"SerialNumber": controller["SerialNumber"]}) + outjson_data.update({"Status": controller["Status"]}) + UI().print_out_json(outjson_data) + + if ( + getattr(options, "logicaldrives", False) + or getattr(options, "ldrive", False) + or single_use + ): + self.logical_drives(options, controller, print_ctrl) + + if ( + getattr(options, "physicaldrives", False) + or getattr(options, "pdrive", False) + or single_use + ): + self.physical_drives(options, controller, print_ctrl) + + if single_use: + controller_data[controller["Id"]] = controller + + if getattr(options, "controller", False) and not controller_ident and print_ctrl: + raise InvalidCommandLineError( + "Controller in position '%s' was not found\n" % (getattr(options, "controller", False)) + ) + if getattr(options, "json", False) and not options.storageid: + if self.rdmc.opts.verbose: + sys.stdout.write("---------------------------------\n") + sys.stdout.write("List of RDE storage devices\n") + sys.stdout.write("---------------------------------\n") + UI().print_out_json(outjson) + if single_use: + return controller_data + else: + raise InvalidCommandLineError( + "Storage controller is not ready, Kindly re run the command after sometime\n" + ) + else: + raise InvalidCommandLineError("Storage controller is not ready, Kindly re run the command after sometime\n") + + def storagecontroller(self, options, print_ctrl=False, single_use=False): + if getattr(options, "controller", False): + controller_ident = False + + if ( + not (getattr(options, "json", False)) + and not (getattr(options, "controller", False)) + and print_ctrl + and (options.physicaldrives is None) + and (options.pdrive is None) + and (options.logicaldrives is None) + and (options.ldrive is None) + ): + sys.stdout.write("Controllers:\n") + + storage_data = {} + get_contrller = [] + + list_storageid = self.rdmc.app.get_handler("/redfish/v1/Systems/1/Storage/", silent=True, service=True).dict[ + "Members" + ] + for val in list_storageid: + storageid_fromurl = val["@odata.id"] + if "DE" in storageid_fromurl and options.storageid in storageid_fromurl: + getval = self.rdmc.app.get_handler(storageid_fromurl, silent=True, service=True).dict + try: + controller = getval["Controllers"] + list_controllers = self.rdmc.app.get_handler( + controller["@odata.id"], silent=True, service=True + ).dict + except KeyError: + self.rdmc.ui.printer("Please check controller was Gen11.\n") + return ReturnCodes.NO_CONTENTS_FOUND_FOR_OPERATION + + for ctl in list_controllers["Members"]: + ctl = ctl["@odata.id"] + get_sel = self.rdmc.app.get_handler(ctl, silent=True, service=True) + get_contrller.append(get_sel) + + for sel in get_contrller: + if "Collection" not in sel.path: + controller = sel.dict + storage_id = controller["@odata.id"].split("/") + storage_id = storage_id[6] + if getattr(options, "controller", False): + if ( + getattr(options, "controller", False) == controller["Id"] + or getattr(options, "controller", False)[-1] + == controller["Location"]["PartLocation"]["ServiceLabel"][-1] + ): + controller_ident = True + else: + continue + if ( + print_ctrl + and (options.controller is None) + and (options.physicaldrives is None) + and (options.pdrive is None) + and (options.ldrive is None) + and (options.logicaldrives is None) + ): + sys.stdout.write( + "StorageId:%s - ControllerId:%s - %s - %s\n" + % ( + storage_id, + controller["Id"], + controller["Location"]["PartLocation"]["ServiceLabel"], + controller["Model"], + ) + ) + + elif ( + getattr(options, "json", False) + and (options.controller is None) + and (options.physicaldrives is None) + and (options.pdrive is None) + and (options.ldrive is None) + and (options.logicaldrives is None) + ): + outjson = dict() + outjson["Controllers"] = dict() + outjson["Controllers"][storage_id] = dict() + outjson["Controllers"][storage_id]["controllerid"] = controller["Id"] + outjson["Controllers"][storage_id]["controllerid"]["Location"] = controller["Location"][ + "PartLocation" + ]["ServiceLabel"] + outjson["Controllers"][storage_id]["controllerid"]["Model"] = controller["Model"] + UI().print_out_json(outjson) + + elif ( + print_ctrl + and (options.controller is not None) + and ( + (options.logicaldrives is not None) + or (options.physicaldrives is not None) + or (options.ldrive is not None) + or (options.pdrive is not None) + ) + ): + pass + + elif ( + getattr(options, "json", False) + and (options.controller is not None) + and ( + (options.logicaldrives is not None) + or (options.physicaldrives is not None) + or (options.ldrive is not None) + or (options.pdrive is not None) + ) + ): + pass + + elif print_ctrl and (options.controller is not None) and options.json is None: + controller_info = "---------------------------------------------\n" + controller_info += "Controller {} Details on Storage Id {}\n".format(options.controller, storage_id) + controller_info += "---------------------------------------------\n" + controller_info += "Id: %s\n" % controller["Id"] + controller_info += "StorageId: %s\n" % storage_id + controller_info += "Name: %s\n" % controller["Name"] + controller_info += "FirmwareVersion: %s\n" % controller["FirmwareVersion"] + controller_info += "Manufacturer: %s\n" % controller["Manufacturer"] + controller_info += "Model: %s\n" % controller["Model"] + controller_info += "PartNumber: %s\n" % controller["PartNumber"] + controller_info += "SerialNumber: %s\n" % controller["SerialNumber"] + try: + controller_info += "SKU: %s\n" % controller["SKU"] + except KeyError: + pass + controller_info += "Status: %s\n" % controller["Status"] + try: + controller_info += "SupportedDeviceProtocols: %s\n" % controller["SupportedDeviceProtocols"] + except KeyError: + pass + try: + controller_info += ( + "SupportedControllerProtocols: %s\n" % controller["SupportedControllerProtocols"] + ) + except KeyError: + pass + self.rdmc.ui.printer(controller_info, verbose_override=True) + + elif getattr(options, "json", False) and (options.controller is not None): + outjson_data = dict() + outjson_data.update({"Id": controller["Id"]}) + outjson_data.update({"StorageId": storage_id}) + outjson_data.update({"Name": controller["Name"]}) + outjson_data.update({"FirmwareVersion": controller["FirmwareVersion"]}) + outjson_data.update({"Manufacturer": controller["Manufacturer"]}) + outjson_data.update({"Model": controller["Model"]}) + outjson_data.update({"PartNumber": controller["PartNumber"]}) + outjson_data.update({"SerialNumber": controller["SerialNumber"]}) + try: + outjson_data.update({"SKU": controller["SKU"]}) + except KeyError: + pass + outjson_data.update({"Status": controller["Status"]}) + try: + outjson_data.update({"SupportedDeviceProtocols": controller["SupportedDeviceProtocols"]}) + except KeyError: + pass + try: + outjson_data.update( + {"SupportedControllerProtocols": controller["SupportedControllerProtocols"]} + ) + except KeyError: + pass + UI().print_out_json(outjson_data) + + if getattr(options, "logicaldrives", False) or getattr(options, "ldrive", False) or single_use: + self.storagelogical_drives(options, controller, storage_id, print_ctrl) + + if getattr(options, "physicaldrives", False) or getattr(options, "pdrive", False) or single_use: + self.storagephysical_drives(options, controller, storage_id, print_ctrl) + + if single_use: + storage_data[controller["Id"]] = controller + if getattr(options, "controller", False) and not controller_ident and print_ctrl: + raise InvalidCommandLineError( + "Controller in position '%s' was " "not found\n" % (getattr(options, "controller", False)) + ) + if single_use: + return storage_data + + def storageid(self, options, print_ctrl=False, single_use=False): + st_url = "/redfish/v1/Systems/1/Storage/" + st_content = self.rdmc.app.get_handler(st_url, silent=True, service=True).dict["Members"] + st_flag = False + for st_controller in st_content: + url = st_controller["@odata.id"] + if options.storageid in url and "DE" in url: + st_flag = True + break + else: + continue + if not st_flag: + raise InvalidCommandLineError( + "\nStorage ID {} not found or Storage ID is not Redfish enabled and does not have DExxxxxx\n".format( + options.storageid + ) + ) + return + + res_dict = dict() + res_dict["Storage"] = dict() + + storage_id_url = "/redfish/v1/Systems/1/Storage/" + options.storageid + "?$expand=." + + storage_resp = self.rdmc.app.get_handler(storage_id_url, silent=True, service=True).dict + if not storage_resp: + raise InvalidCommandLineError("\nStorage Id {} not found\n".format(options.storageid)) + return + controllers = storage_resp["Controllers"]["Members"] + volumes = storage_resp["Volumes"]["Members"] + drives = storage_resp["Drives"] + stg_data = [] + actual_no_drives = 0 + for d in storage_resp["Drives"]: + if d["Status"]["State"] == "Enabled": + actual_no_drives += 1 + if print_ctrl and storage_resp and options.json is None: + if ( + options.storageid + and not options.controllers + and not options.physicaldrives + and not options.logicaldrives + and not options.ldrive + and not options.pdrive + ): + sys.stdout.write("-----------------------------------\n") + sys.stdout.write("Details of Storage %s\n" % options.storageid) + sys.stdout.write("-----------------------------------\n") + sys.stdout.write("\tId: %s\n\t" % storage_resp["Id"]) + sys.stdout.write("Health: %s\n\t" % storage_resp["Status"]["HealthRollup"]) + sys.stdout.write("Name: %s\n\t" % storage_resp["Name"]) + sys.stdout.write("Number of Controllers: %s\n\t" % storage_resp["Controllers"]["Members@odata.count"]) + sys.stdout.write("Number of Volumes: %s\n\t" % storage_resp["Volumes"]["Members@odata.count"]) + sys.stdout.write("Number of Drives: %s\n\t\n" % actual_no_drives) + elif ( + options.storageid + and not options.controllers + and options.physicaldrives + and not options.logicaldrives + and not options.ldrive + and not options.pdrive + ): + self.storagephysical_drives(options, options.controller, options.storageid, print_ctrl) + elif ( + options.storageid + and not options.controllers + and not options.physicaldrives + and options.logicaldrives + and not options.ldrive + and not options.pdrive + ): + self.storagelogical_drives(options, options.controller, options.storageid, print_ctrl) + elif options.storageid and options.ldrive: + self.storagelogical_drives(options, options.controller, options.storageid, print_ctrl) + elif options.storageid and options.pdrive: + self.storagephysical_drives(options, options.controller, options.storageid, print_ctrl) + + elif options.json is not None: + if options.logicaldrives or options.ldrive: + self.storagelogical_drives(options, options.controller, options.storageid, print_ctrl) + if options.physicaldrives or options.pdrive: + self.storagephysical_drives(options, options.controller, options.storageid, print_ctrl) + + storage_data = dict() + storage_data.update({"Id": storage_resp["Id"]}) + storage_data.update({"Health": storage_resp["Status"]["HealthRollup"]}) + storage_data.update({"Name": storage_resp["Name"]}) + storage_data.update({"Number of Controllers": storage_resp["Controllers"]["Members@odata.count"]}) + storage_data.update({"Number of Volumes": storage_resp["Volumes"]["Members@odata.count"]}) + storage_data.update({"Number of Drives": actual_no_drives}) + stg_data.append(storage_data) + + _ = self.print_list_controllers(options, controllers, print_ctrl) + _ = self.print_list_volumes(options, volumes, print_ctrl) + _ = self.print_list_drives(options, drives, print_ctrl) + + # Append controller, volume and drive information to final dictionary + if ( + not options.controllers + and res_dict + and options.json + and not options.physicaldrives + and not options.logicaldrives + and not options.ldrive + and not options.pdrive + ): + if ( + options.storageid + and not options.controllers + and not options.physicaldrives + and not options.logicaldrives + and not options.ldrive + and not options.pdrive + ): + res_dict["Storage"].update(storage_data) + UI().print_out_json(res_dict) + + elif options.controllers and options.storageid and options.json is None: + sys.stdout.write("---------------------------------------------------\n") + sys.stdout.write("List of Controllers in this Storage ID %s\n" % options.storageid) + sys.stdout.write("---------------------------------------------------\n") + list_ctr = controllers + for lst in list_ctr: + l_data = lst["@odata.id"] + get_ctr = self.rdmc.app.get_handler(l_data, silent=True, service=True).dict + sys.stdout.write("\tId: %s\n\t" % get_ctr["Id"]) + sys.stdout.write("Health: %s\n\t" % get_ctr["Status"]["Health"]) + sys.stdout.write("Name: %s\n\t" % get_ctr["Name"]) + sys.stdout.write("FirmwareVersion: %s\n\t" % get_ctr["FirmwareVersion"]) + sys.stdout.write("SerialNumber: %s\n" % get_ctr["SerialNumber"]) + + elif options.controllers and print_ctrl and options.json: + list_ctr = controllers + for lst in list_ctr: + l_data = lst["@odata.id"] + get_ctr = self.rdmc.app.get_handler(l_data, silent=True, service=True).dict + ctr_data = dict() + ctr_data["Controllers"] = dict() + ctr_data["Controllers"].update({"Id": get_ctr["Id"]}) + ctr_data["Controllers"].update({"Health": get_ctr["Status"]["Health"]}) + ctr_data["Controllers"].update({"Name": get_ctr["Name"]}) + ctr_data["Controllers"].update({"FirmwareVersion": get_ctr["FirmwareVersion"]}) + ctr_data["Controllers"].update({"SerialNumber": get_ctr["SerialNumber"]}) + UI().print_out_json(ctr_data) + + def print_list_controllers(self, options, controllers, print_ctrl): + c_data = [] + if not options.json: + sys.stdout.write("Controllers Details:\n") + if not controllers: + sys.stdout.write("\tNone:\n\n") + for c in controllers: + ctrlr = c["@odata.id"] + getctrl = self.rdmc.app.get_handler(ctrlr, silent=True, service=True).dict + if print_ctrl and getctrl and options.json is None: + sys.stdout.write("\tId: %s\n\t" % getctrl["Id"]) + sys.stdout.write("Health: %s\n\t" % getctrl["Status"]["Health"]) + sys.stdout.write("Location: %s\n\t" % getctrl["Location"]["PartLocation"]["ServiceLabel"]) + sys.stdout.write("Name: %s\n\t\n" % getctrl["Name"]) + elif options.json is not None: + ctrl_data = dict() + ctrl_data.update({"Id": getctrl["Id"]}) + ctrl_data.update({"Health": getctrl["Status"]["Health"]}) + ctrl_data.update({"Location": getctrl["Location"]["PartLocation"]["ServiceLabel"]}) + ctrl_data.update({"Name": getctrl["Name"]}) + c_data.append(ctrl_data) + return c_data + + def print_list_volumes(self, options, volumes, print_ctrl): + v_data = [] + if "json" in options and options.json: + vol_data = dict() + if not options.json: + sys.stdout.write("\nVolume Details:\n") + if not volumes: + sys.stdout.write("\tNone\n\n") + for vol in volumes: + volume = vol["@odata.id"] + getvolumes = self.rdmc.app.get_handler(volume, silent=True, service=True).dict + if print_ctrl and getvolumes and options.json is None: + sys.stdout.write("\tId: %s\n\t" % getvolumes["Id"]) + sys.stdout.write("Name: %s\n\t" % getvolumes["Name"]) + sys.stdout.write("RAIDType: %s\n\t" % getvolumes["RAIDType"]) + sys.stdout.write("VolumeUniqueId: %s\n\t" % getvolumes["Identifiers"][0]["DurableName"]) + sys.stdout.write("Health: %s\n\n" % getvolumes["Status"]["Health"]) + elif options.json is not None: + vol_data.update({"Id": getvolumes["Id"]}) + vol_data.update({"Name": getvolumes["Name"]}) + vol_data.update({"Health": getvolumes["Status"]["Health"]}) + vol_data.update({"RAIDType": getvolumes["RAIDType"]}) + vol_data.update({"VolumeUniqueId": getvolumes["Identifiers"][0]["DurableName"]}) + v_data.append(vol_data) + return v_data + + def print_list_drives(self, options, drives, print_ctrl): + d_data = [] + if not options.json: + sys.stdout.write("Drive Details:\n\n") + if not drives: + sys.stdout.write("\tNone\n\n") + for drive in drives: + dve = drive["@odata.id"] + getdrives = self.rdmc.app.get_handler(dve, silent=True, service=True).dict + if print_ctrl and getdrives and options.json is None: + sys.stdout.write("\tId: %s\n\t" % getdrives["Id"]) + sys.stdout.write("Location: %s\n\t" % getdrives["PhysicalLocation"]["PartLocation"]["ServiceLabel"]) + sys.stdout.write("Health: %s\n\t" % getdrives["Status"].get("Health", "NA")) + sys.stdout.write("Name: %s\n\t" % getdrives["Name"]) + sys.stdout.write("Model: %s\n\t" % getdrives.get("Model", "NA")) + sys.stdout.write("Revision: %s\n\t" % getdrives.get("Revision", "NA")) + sys.stdout.write("Serial Number: %s\n\t" % getdrives.get("SerialNumber", "NA")) + sys.stdout.write("Protocol: %s\n\t" % getdrives.get("Protocol", "NA")) + sys.stdout.write("MediaType: %s\n\t" % getdrives.get("MediaType", "NA")) + sys.stdout.write("CapacityBytes: %s\n\t\n" % getdrives.get("CapacityBytes", "NA")) + + elif options.json is not None: + drives_data = dict() + drives_data.update({"Id": getdrives["Id"]}) + drives_data.update({"Model": getdrives.get("Model", "NA")}) + drives_data.update({"Revision": getdrives.get("Revision", "NA")}) + drives_data.update({"Protocol": getdrives.get("Protocol", "NA")}) + drives_data.update({"MediaType": getdrives.get("MediaType", "NA")}) + drives_data.update({"CapacityBytes": getdrives.get("CapacityBytes", "NA")}) + drives_data.update({"Name": getdrives["Name"]}) + drives_data.update({"Health": getdrives["Status"].get("Health", "NA")}) + drives_data.update({"Serial Number": getdrives.get("SerialNumber", "NA")}) + drives_data.update({"Location": getdrives["PhysicalLocation"]["PartLocation"]["ServiceLabel"]}) + d_data.append(drives_data) + return d_data + + def storagephysical_drives(self, options, controller, storage_id, print_ctrl=False, single_use=False): + found_entries = False + if not getattr(options, "json", False) and print_ctrl: + sys.stdout.write("--------------------------------------------------\n") + if not getattr(options, "pdrive", False): + if controller: + sys.stdout.write("Drives on Controller %s and Storage %s\n" % (options.controller, storage_id)) + else: + sys.stdout.write("Drives on Storage %s\n" % storage_id) + else: + if controller: + sys.stdout.write( + "Drive %s on Controller %s and Storage %s\n" % (options.pdrive, options.controller, storage_id) + ) + else: + sys.stdout.write("Drive %s on Storage %s\n" % (options.pdrive, storage_id)) + sys.stdout.write("--------------------------------------------------\n") + if getattr(options, "pdrive", False): + pdrive_ident = False + else: + pdrive_ident = True + if single_use: + physicaldrives = {} + if getattr(options, "json", False): + outjson = dict() + outjson["Drives"] = dict() + print_drives = [] + storage_url = self.rdmc.app.typepath.defs.systempath + "Storage/" + storage_id + dd_list = self.rdmc.app.get_handler(storage_url, silent=True).dict.get("Drives", {}) + if dd_list: + found_entries = True + for dd in dd_list: + drive_url = dd["@odata.id"] + drive_data = self.rdmc.app.get_handler(drive_url, silent=True).dict + location = drive_data["PhysicalLocation"]["PartLocation"]["ServiceLabel"] + loc = location.split(":") + del loc[0] + if len(loc) == 3: + temp_str = str(loc[0].split("=")[1] + ":" + loc[1].split("=")[1] + ":" + loc[2].split("=")[1]) + location = temp_str + else: + pass + + if getattr(options, "pdrive", False): + if options.pdrive != location: + continue + else: + pdrive_ident = True + if single_use: + physicaldrives.update({drive_data["Id"]: drive_data}) + if ( + print_ctrl + and pdrive_ident + and options.pdrive is None + and options.json is None + and (location not in print_drives) + ): + sys.stdout.write( + "\t[%s]: %s, Model %s, Location %s, Type %s, Serial %s - %s Bytes\n" + % ( + location, + drive_data.get("Name", "NA"), + drive_data.get("Model", "NA"), + location, + drive_data.get("MediaType", "NA"), + drive_data.get("SerialNumber", "NA"), + drive_data.get("CapacityBytes", "NA"), + ) + ) + elif ( + print_ctrl + and pdrive_ident + and options.pdrive + and options.json is None + and (location not in print_drives) + ): + sys.stdout.write( + "\tId: %s\n\t%s\n\tModel: %s\n\tLocation: %s\n\tType: %s\n\tSerial: %s\n\tCapacity: %s Bytes\n" + % ( + drive_data["Id"], + drive_data["Name"], + drive_data.get("Model", "NA"), + location, + drive_data.get("MediaType", "NA"), + drive_data.get("SerialNumber", "NA"), + drive_data.get("CapacityBytes", "NA"), + ) + ) + break + elif getattr(options, "json", False) and pdrive_ident and (location not in print_drives): + outjson["Drives"][location] = dict() + outjson["Drives"][location]["Id"] = drive_data["Id"] + outjson["Drives"][location]["Name"] = drive_data["Name"] + outjson["Drives"][location]["Model"] = drive_data.get("Model", "NA") + outjson["Drives"][location]["Location"] = location + outjson["Drives"][location]["MediaType"] = drive_data.get("MediaType", "NA") + outjson["Drives"][location]["SerialNumber"] = drive_data.get("SerialNumber", "NA") + outjson["Drives"][location]["CapacityBytes"] = drive_data.get("CapacityBytes", "NA") + if options.pdrive: + break + + print_drives.append(location) + if getattr(options, "json", False) and pdrive_ident: + UI().print_out_json(outjson) + if getattr(options, "pdrive", False) and not pdrive_ident and print_ctrl: + raise InvalidCommandLineError("\tPhysical drive in position '%s' was not found\n" % options.pdrive) + elif not found_entries and print_ctrl: + sys.stdout.write("\tPhysical drives not found.\n") + + if single_use: + return physicaldrives + + def storagelogical_drives(self, options, controller, storage_id, print_ctrl=False, single_use=False): + found_entries = False + printed = False + if not getattr(options, "json", False) and print_ctrl: + sys.stdout.write("--------------------------------------------------\n") + if not getattr(options, "ldrive", False): + sys.stdout.write("Volumes on Controller %s and Storage %s\n" % (options.controller, storage_id)) + else: + if controller: + sys.stdout.write( + "Volume %s on Controller %s and Storage %s\n" % (options.ldrive, options.controller, storage_id) + ) + else: + sys.stdout.write("Volume %s on Storage %s\n" % (options.ldrive, storage_id)) + sys.stdout.write("--------------------------------------------------\n") + if getattr(options, "ldrive", False): + ldrive_ident = False + else: + ldrive_ident = True + if single_use: + logicaldrives = {} + if getattr(options, "json", False): + outjson = dict() + outjson["volumes"] = dict() + list_volumes = self.rdmc.app.get_handler( + "/redfish/v1/Systems/1/Storage/" + storage_id + "/Volumes/", + silent=True, + service=True, + ).dict["Members"] + found = False + for tmp in list_volumes: + if not found: + tmp = tmp["@odata.id"] + tmp = self.rdmc.app.get_handler(tmp, silent=True, service=True).dict + try: + std_v = options.storageid in tmp["@odata.id"] + except: + std_v = tmp["@odata.id"] + if std_v: + if getattr(options, "ldrive", False): + ldrive_ident = False + else: + ldrive_ident = True + if getattr(options, "ldrive", False): + if options.ldrive != tmp["Id"]: + continue + else: + ldrive_ident = True + found = True + + if "Identifiers" in tmp: + durablename = tmp["Identifiers"] + if durablename is not None: + d_name = [name["DurableName"] for name in durablename] + found_entries = True + + drives = [] + d_data = tmp["Links"]["Drives"] + for dd in d_data: + drive = dd["@odata.id"] + drive_data = self.rdmc.app.get_handler(drive, silent=True).dict + location = drive_data["PhysicalLocation"]["PartLocation"]["ServiceLabel"] + loc = location.split(":") + del loc[0] + if len(loc) == 3: + temp_str = str( + loc[0].split("=")[1] + ":" + loc[1].split("=")[1] + ":" + loc[2].split("=")[1] + ) + location = temp_str + drives.append(location) + volumes = ", ".join(str(item) for item in drives) + if print_ctrl and ldrive_ident and options.ldrive is None and not getattr(options, "json", False): + sys.stdout.write( + "\t[%s]: Name %s RAIDType %s VUID %s Capacity %s Bytes - Health %s\n" + % ( + tmp["Id"], + tmp["Name"], + tmp["RAIDType"], + d_name[0], + tmp["CapacityBytes"], + tmp["Status"]["Health"], + ) + ) + elif getattr(options, "json", False) and ldrive_ident: + outjson["volumes"][tmp["Id"]] = dict() + outjson["volumes"][tmp["Id"]]["VolumeName"] = tmp["Name"] + outjson["volumes"][tmp["Id"]]["RAIDType"] = tmp["RAIDType"] + outjson["volumes"][tmp["Id"]]["VolumeUniqueIdentifier"] = d_name[0] + # if options.ldrive: + # outjson["volumes"][tmp["Id"]]["Drive Location"] = volumes + outjson["volumes"][tmp["Id"]]["Capacity"] = tmp["CapacityBytes"] + outjson["volumes"][tmp["Id"]]["Health"] = tmp["Status"]["Health"] + printed = True + elif print_ctrl and ldrive_ident and options.ldrive is not None: + sys.stdout.write( + "\tId: %s\n\tName: %s\n\tRaidType: %s\n\tVolumeUniqueId: %s\n\tCapacity: %s Bytes\n\n" + % ( + tmp["Id"], + tmp["Name"], + tmp["RAIDType"], + d_name[0], + tmp["CapacityBytes"], + ) + ) + printed = True + if single_use: + logicaldrives.update({tmp["Id"]: tmp}) + if getattr(options, "json", False) and ldrive_ident: + UI().print_out_json(outjson) + printed = True + if getattr(options, "ldrive", False) and not ldrive_ident: + sys.stdout.write("\tVolume '%s' was not found.\n" % options.ldrive) + elif not found_entries and print_ctrl: + sys.stdout.write("\tVolumes not found.\n") + if not getattr(options, "logicaldrives", False) and not printed: + if getattr(options, "ldrive", False): + raise InvalidCommandLineError("\tVolume '%s' does not exists.\n" % getattr(options, "ldrive", False)) + + if single_use: + return logicaldrives + + def get_storage_data_drives(self, options, drives, print_ctrl=False, single_use=False): + if not (getattr(options, "json", False)) and print_ctrl: + sys.stdout.write("\tData Drives:\n\n") + if single_use: + subsetdrives = {drives["Id"]: drives} + found_entries = False + if print_ctrl: + self.tranverse_func(drives) + found_entries = True + + elif getattr(options, "json", False): + UI().print_out_json(drives) + + if not found_entries and print_ctrl: + sys.stdout.write("\t\tComponent drives not found.\n") + + if single_use: + return subsetdrives + + def tranverse_func(self, data, indent=0): + for key, value in data.items(): + sys.stdout.write("\t %s :" % str(key)) + if isinstance(value, dict): + self.tranverse_func(value, indent + 1) + else: + sys.stdout.write("%s \n" % str(value)) + + def physical_drives(self, options, content, print_ctrl=False, single_use=False): + """ + Identify/parse physical drives (and child properties) of a parent array controller + + :param options: command line options + :type options: object attributes + :param content: dictionary of physical drive href or @odata.id paths (expect @odata.type + "SmartStorageArrayController", @odata.id /Systems/1/SmartStorage/ArrayControllers/X/) + :type content: dict + :param print_ctrl: flag for console print enablement/disablement (default disabled) + :type print_ctrl: bool + :param single_use: singular usage - True or explore mode - False, + returns dictionary of results to calling function (default disabled) - see returns. + :type single_use: bool + :returns: None, dictionary of all physical drives identified by 'Id' + """ + dd = "" + confd = content.get("PhysicalDrives") + try: + dd = content["links"]["PhysicalDrives"][self.rdmc.app.typepath.defs.hrefstring] + except: + dd = content["Links"]["PhysicalDrives"][self.rdmc.app.typepath.defs.hrefstring] + finally: + if not getattr(options, "json", False) and print_ctrl: + sys.stdout.write("Physical Drives:\n") + if getattr(options, "pdrive", False): + pdrive_ident = False + else: + pdrive_ident = True + if single_use: + physicaldrives = {} + found_entries = False + for data in self.rdmc.app.get_handler(dd, silent=True).dict.get("Members", {}): + try: + tmp = data[self.rdmc.app.typepath.defs.hrefstring] + except: + tmp = data[next(iter(data))] + finally: + tmp = self.rdmc.app.get_handler(tmp, silent=True).dict + found_entries = True + if confd: + for confdd in confd: + if confdd.get("Location") == tmp.get("Location"): + tmp.update(confdd) + break + if getattr(options, "pdrive", False): + if options.pdrive != tmp["Location"]: + continue + else: + pdrive_ident = True + if single_use: + physicaldrives[tmp["Id"]] = tmp + if print_ctrl and pdrive_ident and options.pdrive is None: + sys.stdout.write( + "\t[%s]: Model %s, Location %s, Type %s, Serial %s - %s MiB\n" + % ( + tmp["Location"], + tmp.get("Model", "NA"), + tmp.get("Location", "NA"), + tmp.get("MediaType", "NA"), + tmp.get("SerialNumber", "NA"), + tmp.get("CapacityMiB", "NA"), + ) + ) + elif getattr(options, "json", False) and pdrive_ident and options.pdrive is None: + outjson = dict() + outjson["PhysicalDrives"] = dict() + outjson["PhysicalDrives"][tmp["Location"]] = dict() + outjson["PhysicalDrives"][tmp["Location"]]["Model"] = tmp.get("Model", "NA") + outjson["PhysicalDrives"][tmp["Location"]]["Location"] = tmp.get("Location", "NA") + outjson["PhysicalDrives"][tmp["Location"]]["MediaType"] = tmp.get("MediaType", "NA") + outjson["PhysicalDrives"][tmp["Location"]]["SerialNumber"] = tmp.get("SerialNumber", "NA") + outjson["PhysicalDrives"][tmp["Location"]]["CapacityMiB"] = tmp.get("CapacityMiB", "NA") + UI().print_out_json(outjson) + + elif print_ctrl and pdrive_ident and options.pdrive is not None: + ctl_logical = dict() + contoller_loc = content["Location"] + "-" + content["Model"] + ctl_logical.update({"Controller": contoller_loc}) + remove_odata = self.odataremovereadonly(tmp) + ctl_logical.update(remove_odata) + location = ctl_logical["Location"] + if print_ctrl and ctl_logical and options.ldrive is None and not getattr(options, "json", False): + sys.stdout.write( + "\tId:\t%s\n\tModel:\t%s\n\tLocation:\t%s\n\tType:\t%s\n\tSerial:\t%s\n\tCapacity:\t%s " + "Bytes\n" + % ( + ctl_logical["Id"], + ctl_logical["Model"], + ctl_logical["Location"], + ctl_logical["MediaType"], + ctl_logical["SerialNumber"], + ctl_logical["CapacityLogicalBlocks"], + ) + ) + elif getattr(options, "json", False) and ctl_logical: + outjson = dict() + outjson["Drives"] = dict() + outjson["Drives"][location] = dict() + outjson["Drives"][location]["Id"] = ctl_logical["Id"] + outjson["Drives"][location]["Model"] = ctl_logical["Model"] + outjson["Drives"][location]["Location"] = location + outjson["Drives"][location]["MediaType"] = ctl_logical["MediaType"] + outjson["Drives"][location]["SerialNumber"] = ctl_logical["SerialNumber"] + outjson["Drives"][location]["CapacityLogicalBlocks"] = ctl_logical["CapacityLogicalBlocks"] + UI().print_out_json(outjson) + + elif getattr(options, "json", False) and pdrive_ident and options.pdrive is not None: + ctl_logical = dict() + contoller_loc = content["Location"] + "-" + content["Model"] + ctl_logical.update({"Controller": contoller_loc}) + remove_odata = self.odataremovereadonly(tmp) + ctl_logical.update(remove_odata) + UI().print_out_json(ctl_logical) + + if getattr(options, "pdrive", False) and pdrive_ident: + break + if getattr(options, "pdrive", False) and not pdrive_ident and print_ctrl: + raise InvalidCommandLineError("\tPhysical drive in position '%s' was not found \n" % options.pdrive) + elif not found_entries and print_ctrl: + sys.stdout.write("\tPhysical drives not found.\n") + + if single_use: + return physicaldrives + + def logical_drives(self, options, storage_id, content, print_ctrl=False, single_use=False): + """ + Identify/parse volumes (and child properties) of an associated array controller + + :param options: command line options + :type options: object attributes + :param content: dictionary of volume href or @odata.id paths (expect @odata.type + "SmartStorageArrayController", @odata.id /Systems/1/SmartStorage/ArrayControllers/X/) + :type content: dict + :param print_ctrl: flag for console print enablement/disablement (default disabled) + :type print_ctrl: bool + :param single_use: singular usage - True or explore mode - False, + returns dictionary of results to calling function (default disabled) - see returns. + :type single_use: bool + :returns: None, dictionary of all volumes identified by 'Id' + """ + + confd = content.get("LogicalDrives") + try: + _ = content["links"]["LogicalDrives"][self.rdmc.app.typepath.defs.hrefstring] + except: + _ = content["Links"]["LogicalDrives"][self.rdmc.app.typepath.defs.hrefstring] + finally: + if not getattr(options, "json", False) and print_ctrl: + sys.stdout.write("Volumes:\n") + if getattr(options, "ldrive", False): + ldrive_ident = False + else: + ldrive_ident = True + if single_use: + logicaldrives = {} + found_entries = False + try: + list_volumes = self.rdmc.app.get_handler( + "/redfish/v1/Systems/1/Storage/" + options.storageid + "/Volumes/", + silent=True, + service=True, + ).dict["Members"] + except: + list_volumes = self.rdmc.app.get_handler( + "/redfish/v1/Systems/1/Storage/" + storage_id + "/Volumes/", + silent=True, + service=True, + ).dict["Members"] + for data in list_volumes: + try: + tmp = data[self.rdmc.app.typepath.defs.hrefstring] + except: + tmp = data[next(iter(data))] + finally: + tmp = self.rdmc.app.get_handler(tmp, silent=True).dict + found_entries = True + if confd: + for confdd in confd: + if confdd.get("LogicalDriveNumber") == tmp.get("LogicalDriveNumber"): + tmp.update(confdd) + break + if getattr(options, "ldrive", False): + if options.ldrive != tmp["Id"]: + continue + else: + ldrive_ident = True + if print_ctrl and ldrive_ident and options.ldrive is None: + sys.stdout.write( + "\t[%s]: Name %s Raid %s VUID %s - %s MiB\n" + % ( + tmp["Id"], + tmp["LogicalDriveName"], + tmp["Raid"], + tmp["VolumeUniqueIdentifier"], + tmp["CapacityMiB"], + ) + ) + elif getattr(options, "json", False) and ldrive_ident and options.ldrive is None: + outjson = dict() + outjson["LogicalDrives"] = dict() + outjson["LogicalDrives"][tmp["Id"]] = dict() + outjson["LogicalDrives"][tmp["Id"]]["LogicalDriveName"] = tmp["LogicalDriveName"] + outjson["LogicalDrives"][tmp["Id"]]["Raid"] = tmp["Raid"] + outjson["LogicalDrives"][tmp["Id"]]["VolumeUniqueIdentifier"] = tmp["VolumeUniqueIdentifier"] + outjson["LogicalDrives"][tmp["Id"]]["CapacityMiB"] = tmp["CapacityMiB"] + UI().print_out_json(outjson) + elif print_ctrl and ldrive_ident and options.ldrive is not None: + ctl_logical = dict() + contoller_loc = content["Location"] + "-" + content["Model"] + ctl_logical.update({"Controller": contoller_loc}) + remove_odata = self.odataremovereadonly(tmp) + ctl_logical.update(remove_odata) + id = ctl_logical["Id"] + if print_ctrl and ctl_logical and options.json is None: + sys.stdout.write("\tId: %s\n\t" % ctl_logical["Id"]) + sys.stdout.write("Name: %s\n\t" % ctl_logical["LogicalDriveName"]) + sys.stdout.write("RAIDType: %s\n\t" % ctl_logical["Raid"]) + sys.stdout.write("VolumeUniqueId: %s\n\t" % ctl_logical["VolumeUniqueIdentifier"]) + sys.stdout.write("Capacity: %s\n\t" % ctl_logical["CapacityBlocks"]) + sys.stdout.write("Health: %s\n\n" % ctl_logical["Status"]["Health"]) + # UI().print_out_json(ctl_logical) + elif getattr(options, "json", False) and ctl_logical: + outjson = dict() + outjson["Volumes"] = dict() + outjson["Volumes"][id] = dict() + # outjson["Volumes"][id]["Id"] = ctl_logical["Id"] + outjson["Volumes"][id]["VolumeName"] = ctl_logical["LogicalDriveName"] + outjson["Volumes"][id]["RAIDType"] = ctl_logical["Raid"] + outjson["Volumes"][id]["Health"] = ctl_logical["Status"]["Health"] + outjson["Volumes"][id]["Capacity"] = ctl_logical["CapacityBlocks"] + outjson["Volumes"][id]["VolumeUniqueIdentifier"] = ctl_logical["VolumeUniqueIdentifier"] + UI().print_out_json(outjson) + elif getattr(options, "json", False) and ldrive_ident and options.ldrive is not None: + ctl_logical = dict() + contoller_loc = content["Location"] + "-" + content["Model"] + ctl_logical.update({"Controller": contoller_loc}) + remove_odata = self.odataremovereadonly(tmp) + ctl_logical.update(remove_odata) + UI().print_out_json(ctl_logical) + + elif getattr(options, "json", False) and ldrive_ident: + UI().print_out_json(tmp) + if single_use: + logicaldrives[tmp["Id"]] = tmp + if getattr(options, "ldrive", False) and ldrive_ident: + break + if getattr(options, "ldrive", False) and not ldrive_ident: + sys.stdout.write("\tVolume '%s' was not found \n" % options.pdrive) + elif not found_entries and print_ctrl: + sys.stdout.write("\tVolumes not found.\n") + + if single_use: + return logicaldrives + + def get_data_drives(self, options, drives, print_ctrl=False, single_use=False): + """ + Identify/parse a physical component drive collection of a respective volume. The + physical disk properties as well as some logical RAID parameters within each respective + member. + + :param options: command line options + :type options: object attributes + :param content: collection of data drives href or @odata.id paths (as members) as attributed + to a respective volume. + :type content: dict + :param print_ctrl: flag for console print enablement/disablement (default disabled) + :type print_ctrl: bool + :param single_use: singular usage, returns dictionary of results to calling function + (default disabled) + :type single_use: bool + :returns: None, dictionary of all physical drives composing a parent volume, + each instance identified by 'Id' + """ + + if not (getattr(options, "json", False)) and print_ctrl: + sys.stdout.write("\tData Drives:\n\n") + if single_use: + subsetdrives = {} + found_entries = False + for member in drives.get("Members", {}): + try: + tmp = member[self.rdmc.app.typepath.defs.hrefstring] + except: + tmp = member[next(iter(member))] + finally: + tmp = self.rdmc.app.get_handler(tmp, silent=True).dict + found_entries = True + if single_use: + subsetdrives[tmp["Id"]] = tmp + if print_ctrl: + self.tranverse_func(tmp) + elif getattr(options, "json", False): + UI().print_out_json(tmp) + if not found_entries and print_ctrl: + sys.stdout.write("\t\tComponent drives not found.\n") + + if single_use: + return subsetdrives + + def storagecontrollervalidation(self, options): + """Storage controller validation function + + :param options: command line options + :type options: list. + """ + if "json" in options and options.json: + self.rdmc.json = True + self.cmdbase.login_select_validation(self, options) + + if getattr(options, "sa_conf_filename", False): + if options.command == "save": + open(options.sa_conf_filename, "w+b") + if options.command == "load": + open(options.sa_conf_filename, "r+b") + self.config_file = options.sa_conf_filename + else: + self.config_file = __config_file__ + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + subcommand_parser = customparser.add_subparsers(dest="command") + + default_parser = subcommand_parser.add_parser( + "default", + help="Running without any sub-command will return storage controller configuration data\n" + "on the currently logged in server. Additional optional arguments will narrow the\n" + "scope of returned data to individual controllers, physical or volumes", + ) + default_parser.add_argument( + "--controller", + dest="controller", + help="Use this flag to select the corresponding controller using either the slot " + "number or index. \n\tExamples:\n\t1. To get more details on a specific " + "controller, select it by index.\tstoragecontroller --controller=2" + "\n\t2. To get more details on a specific controller select " + "it by location.\tstoragecontroller --controller='Slot 0'", + default=None, + ) + default_parser.add_argument( + "--storage_id", + "--storageid", + dest="storageid", + help="Use this flag to select the corresponding controller using either the storageid " + "id. \n\tExamples:\n\t1. To get more details on a specific " + "controller, select it by storageid.\tstoragecontroller --storageid=DE00E000" + "\n\t2. To get more details on a specific controller select " + "it by location.\tstoragecontroller --storageid='DE00E000'", + default=None, + ) + default_parser.add_argument( + "--controllers", + dest="controllers", + action="store_true", + help="Use this flag to return the controllers for the storageid selected." + "\n\tExamples:\n\t1. storagecontroller --controllers\n", + default=None, + ) + default_parser.add_argument( + "--physicaldrives", + "--drives", + dest="physicaldrives", + action="store_true", + help="Use this flag to return the physical drives for the controller selected." + "\n\tExamples:\n\t1. storagecontroller --drives\n\t2. To obtain details about " + "physical drives for a specific controller.\tstoragecontroller --controller=3 " + "--physicaldrives", + default=None, + ) + default_parser.add_argument( + "--logicaldrives", + "--volumes", + dest="logicaldrives", + action="store_true", + help="Use this flag to return the volumes for the controller selected.\n\t " + "\n\tExamples:\n\t1. storagecontroller --logicaldrives\n\t2. To obtain details about " + "volumes for a specific controller.\tstoragecontroller --controller=3 " + "--logicaldrives", + default=None, + ) + default_parser.add_argument( + "--pdrive", + "--drive", + dest="pdrive", + help="Use this flag to select the corresponding physical disk.\n\tExamples:\n\t " + "1. To obtain details about a specific physical drive for a specific controller." + "\tstoragecontroller --controller=3 --pdrive=1I:1:1", + default=None, + ) + default_parser.add_argument( + "--ldrive", + "--volume", + dest="ldrive", + help="Use this flag to select the corresponding logical disk.\n\tExamples:\n\t " + "1. To obtain details about a specific physical drive for a specific controller." + "\tstoragecontroller --controller=3 --ldrive=1", + default=None, + ) + default_parser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="""Use this flag to output data in JSON format.""", + default=None, + ) + self.cmdbase.add_login_arguments_group(default_parser) + + state_help = "Print state/event information from @Redfish.Settings (if available)" + state_parser = subcommand_parser.add_parser( + "state", + help=state_help, + description=state_help + "\n\tExample: storagecontroller state", + formatter_class=RawDescriptionHelpFormatter, + ) + state_parser.add_argument( + "--controller", + dest="controller", + help="Use this flag to select the corresponding controller using either the slot " + "number or index. \n\tExamples:\n\t1. To get more details on a specific " + "controller, select it by index.\tstoragecontroller state --controller=2" + "\n\t2. To get more details on a specific controller select " + "it by location.\tstoragecontroller state --controller='Slot 0'", + default=None, + ) + state_parser.add_argument( + "--storage_id", + "--storageid", + dest="storageid", + help="Use this flag to select the corresponding controller using either the storageid " + "id. \n\tExamples:\n\t1. To get more details on a specific " + "controller, select it by storageid.\tstoragecontroller state --storageid=DE00E000" + "\n\t2. To get more details on a specific controller select " + "it by location.\tstoragecontroller state --storageid='DE00E000'", + default=None, + ) + self.cmdbase.add_login_arguments_group(state_parser) + json_save_help = ( + "Save a JSON file with all current configurations (all controllers, logical and \nphysical drives)." + ) + # json save sub-parser + json_save_parser = subcommand_parser.add_parser( + "save", + help=json_save_help, + description=json_save_help + "\n\tExample: storagecontroller save -f ", + formatter_class=RawDescriptionHelpFormatter, + ) + json_save_parser.add_argument( + "-f", + dest="sa_conf_filename", + help="Specify a filename for saving the storagecontroller configuration. (Default: " + "'storagecontroller_config.json')", + default=None, + ) + self.cmdbase.add_login_arguments_group(json_save_parser) + json_load_help = ( + "Load a JSON file with modified storagecontroller configurations (All read-only " + "properties\nare discarded)." + ) + # json load sub-parser + json_load_parser = subcommand_parser.add_parser( + "load", + help=json_load_help, + description=json_load_help + "\n\tExample: storagecontroller load -f ", + formatter_class=RawDescriptionHelpFormatter, + ) + json_load_parser.add_argument( + "-f", + dest="sa_conf_filename", + help="Specify a filename for loading a storagecontroller configuration. (Default: " + "'storagecontroller_config.json')", + default=None, + ) + self.cmdbase.add_login_arguments_group(json_load_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/ClearControllerConfigCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/ClearControllerConfigCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..13ce644d023acb778a6bfc40700f6d63bb3bd76c GIT binary patch literal 4598 zcmb_g&5ztj6}R1Px7*z_NoMk$NH~!K+pyEU0fe+sf)Xal5|qqF=`5=Zi;UA%)8mQT z?o_!a8RLP4L>v%{5QjbOp+}s;^2cyPsw)?A;)<4q@O!p1RZ0)DPcTQ^BU#T(s*l1kFD}RWBX{%b=WI8iKePFB_gUV`UV6K|F_MsLn zni{WeozXS=z`ZudW6C zk?@lsjxaD7_z`p0V&Mul=skxpTC1Xt-H0~*Fkt2Q%^>2}gouSY^_qeAZ{O{z#vPuF zM6?_;E_<}n>{CJGGG6&T6kJ=?v1xs8rKM@trSndm{}1G6yJ4KXb2fcDSCVw)z!!<@ z3*m3QEK2DPZ8g{BA@3!n4qKKoBY(hEbtL^hR}HeO2!`Z3swPM99kHcqa1`iRs)j#$ zTNBxb{pFi)eoF>&|*S;GGTm&GYYe zh9cg8AhHvL@e*7V>_umjN1L56xZfFWCF^nYt@inMIx&l(G-jzFduH5sM-@kS1%F5MlaV(a1ErQzAbK1i#WqV!#kMX>71$a zS21)`xBp=|mfqCUb8qs%_GFFgJ@Wm@GmlCgZ|-ehH#99Xgp+9-+F0Mg0Z)vLN>@u8 z=rPCDOw05g<0E6cvTXtiPMTU`CABqUt22RvOyAVxSD8Uy@eP`7Y4_ljiNz{U^j`uP zGHq;Ul^tD2ZNuECkDVQDyP8#*`JgIp=Y5TFlT}NKx$!)>R(6buETA~RtP|S!Agj%+ zatNzfS!H8E@???O#EV+L(?z4NZP##iaC!qB=Le_vv&y!eW;8xNyrYRfL8c?r+R?Y` zSzUad)yGG7wDB=Ex1*1bv-usJ9RSA@;NfJ}Rqe;ew;P#5G+Bck#0XLEp?hG6KW4S@ z$*e&#KKy-jiOuKyKncw}&+Et7A#iNw+?yru=l>Vpf1Ba`=d33G4xQxsht(Re+Tzwf z3yYzDp|nd4`)Y2_l~y^G&9TK3T4s~xAO0J?FIl2>IDL4_48|UhofXlmuwArNhT8!ME&;eSZXY-r`FQa zIuD0R>p#5Y{N)eB76~t6OR|n`#y5i=Z#y4I?ymVg z5*>$?CsUByl`)Cke8^4K39~22`F5S!m`bsW#atHf?jm~aB0TdG-^DOdG715*?I;UC z12{<+y99$>um)Tdr@o!ObuS*dgON<2m0mbv;4s6}g)GJFwz96|tkucM-lw7T7EgR) zt?a9T^zVn9A&k!5jQc^)5A#qYRjrsVRsAX`-y8XYeW9NP3IeL1zrdsHn{h9X%xRVI z+f6SPfDAQGwUFy~Egm6m!xwT5jf8+N%(z4t$fTXtFUKTPJ7BHT%7QaUE|fEbffJAH zDNF#7s&zkDUcT1tii6ZzAei=YTF)1KT1XInDW|(76F#{1I7rl2dasIidCHKBuPXj< zsOI`S0e)|CK~SuWQJ`u$b1uXIT5>*&`|&981PXX%9v0Mmq3ww`D;ujI91Nv$raBM+ zPDma|7W5&{VbFMCsXK2?!~-v2sv5?Ru;D7X^bnt62vRF7nieGF5mOBu1aBQl5VE7z zyjY-hO*$j0PAc+n)`qH9IJZ=~2c}`{VNZx`a7+qujfq^)m6|Vm<$4@4P&LWA6VX(I zS|xe00P-@`oGidaz(fZk%?4PYmGR>1~6V8KTvuF3#a= zZdbAjtDex3YNkKYf#&DXM$}<7y!HvrKy2)459@ixRbNquriZu`>h3dLHHUt(?g_pI z^jKHUGUdF*ku`2GaR#!e=4~Lr|+OO|D+9Chl^;yCI(#}{f@-Mn}AQ|=fi z;l%|iD65`Ai1-?szr`zQuM1Xs@r@eGcRIC8vCk=^my~B=(ITZqCDWxzDl3(!=V>DW z0FFPy2&;aAyKSyiEB(!ff}nVszvQ>kh(Cg!i`(gda-K;%cqzN-A#%rqBDn2S?yIt# zz2wETX|}VHHfL{Lxf`ZGqKqX^Vb(&wKTQbA>;$n_4&#U+ZJKqBk)#eDAV7 zMuYokBV!37#viwlC78HYCCbbbtQzBM{wPdZmBP>`e8v#i$k+(RqXEK=^!kXGL)E0A zNoQ$zM3Nb8?DGJ10E;8AP3Fi?$s5RDOv}`phFM&35GtH6%X{PU?kPrX=8Cj$p_P_? zz2(rYiLQ&DryS24#B3B&z3F)mM}An2)I5*HJ2)*&l3Y+2!eR<*?fZF;>p+UVo7R2fZW9{2~q%-D{{3S4d*t10S7Zc z_kbiiJ@Q&yC1p9Znf!37QZ5x3yR0a#a`MY5CHaw3r6RkMN@A5us&w+lQ91U;ifu_Q z#bTsozH{#Fo}MANOQlS3y6^McbI(2Z+ZU99`9JX;BKt%CS}bmd;_l9A8b`N~|VtC8H51hunBMwVJ+_Ud`Of zthU{1Tg~3euD0K5k4D~&RC@J@*|B*(8lgWf+qr$&n~_TNUgV94NQmTz5s`eL-O7p7 zd}J`~?4PpCLd`U8RLdKyrZH7rT`g3Eu~@YXORN?@0?v`asJCaXaBteQi&kl^R;pIs zG|Ow3tJZ3vRx>SRXJ^Dh^^RG&WLZ^fQ1fy# zQ4z9e-0MWqE2W|tli zy`X=;w^Pzzl3#V%*`)^Mt{jx29F$@di2460oWySmKl>ye82<=iD)c3AjYuqMBKaE$ zH;fY*4wOZ@}y>$^m>#12UTjb%F4Heoo0OSPQkV&>ttr%#34OF~cHjOv0Uoz(B zCylwunQ5d~YF4#eHZ41|P&MwB%zMT%ID_igYi6;uSSlL!#_eI%0o$-PDicPyN#k57 z|AH~RoXN~yTevh~%$bX(Wh~cfYZIfR_wL;rSza?o0B5vRS*(uQ#nmeFXhDb)jc=iB zPzG@%VvIEPqf}W^oXs71!>o*t8@6fP1hv-Z-X2K+qh?z%k(Z)gn1tjFbj>+m1}2* z47*mf3QML@5=O-|g;A>-w@rT>5Z|zg8pFe?TuGdtzBD$5|6^#rimZF3+A{JR?Vlfa z#(Z`t0O&o%6hvO?nIr^2H>!+yU2=HK)un)RUi&Z>Iw$m9xaut!w`XJ-Wt7YR_>0L zOSebYHfzh(%Bhj@u~EBJGl$m-#XBg$r7hF0jhgpskYHdvdvyNlzbZ6(TNenLgiwo%*n{You=co- zt)#0H1_W~@wUvGxsmI;8(CS~Y_*9*s8klE60W||E|PaNYgMFNJ>OC5 z6lsDg^m<%mkkSsU(!eUW=}L^`ddJY?)<5FD$n{%vme+bG}7ZBXx9pvj(5AJIDlz3X`t-NcT8{MJH@)+*f z+AI3pteaWXdLp4Q+ec}SwR*eTzOrBR-_ZbTR@FElc2h}ki198sEP%6z>+35WDEl`7 z?G6%l)K{i3!eZ|^>iZ$!v+r@V-XZqaJH-KElp;&f68`ErwB5dP82P=x_h5en*zQ1$ z4ppOTDN^5waR8)#ti~7%9W8n?J{@^~s@@H%9Fg(bQ5U0wJ|DvGFn&k+(a-uWcNd@? zCHNxsWepVS5l6RE^@%v}mBeNVWeIV|`3<3eBDYcZZvM3~mT0IN;{wDA4R<+N#m39e)t1 z_le_fpBOwB5hvU>V53<%w@thR>hK(2Nv#Ybz8`cRdKjzsGt|_|iItaDhER5dV4(gm zu*uLHn2nr^R65-LmE&TxpYleLhbLw*$^_gXd8EzlYvz%aVHas)4746`+a6=&#Q4LQ zFB?`y-8SrDa=_D^_q(rMw}(rguz#x^{a(a#SkU?4mKTF5wUh}8uzN!9c)MzH!4NiaAh)v`Zuvw zunMb28M}7u^wepBVyL{fQEQZ|ZLVQ&#Kr8Ig{{d*kmqQ_%T8i=nD&xhGm|`UJB>j37#43!GgxA*CY1&@$2A`^I=U8}GWq>i3 zdE35L*eq8IV!}9T58;<7L4ZV@(;%<03|wlire%Y2f@(3J;ibd157dOh~O~c4|o&MP&FV7fHqC=OxIF7t`Y_EIT#MTvKE9Nn$ z%xOM^d_=VLa@W<#vCQU{eKoN6jV zMse9J-l0Pfw)B?4iA}}8ccQe2(-@|{v1nCSSr*u;B>LVAAlw34$H4+L!{LTbJ&mDr zj?ITjfnywO zK~XBxQJ_PeLKJnq7|t+W`xSXKkpy*8GmFDl3$@}hjt9wQvmkIZga#u^{E)ZIMQrbv zy?D_o+$%c^*C5Bx7fqJ?URnu02#ZXkFV+z%*49X{y%-qFic_*)!J*I7aU8U)EG5M4 zwK8zmHcDP{4J#Tlz(!TOmIr4DXi31AwL)#f_Ts2gwY;9Wnfd(8m23IAOY_&S&CXxS zUz(e{Hs|#yWLkuS7pFzo_HsD;QqS|gW`R)#IciAoVxX?4uT)DFuN^#GT=rYH`nfY8 zjGyAAXb~nx$0^xdw7o>hUNS4MdTm&#gF;EvFl&V+uU$a!k!ZwNf~|12jCeZ;{VOw5 zmjdi9I*oeW)U~TK^Yb&aZ{%mD^9$GBzBFs;$g4xgE?Pu{$8 zZE_k)gIaZM21JxYzuPaX&eUjiRuRnVC6F}PtH9gB1KWzhJ=Sh+iS`&?n)VWT&~MF) z=Dnm`#K9ckqdX`_T!Qg}I_oN-c!esqNgm8EmeKbVBnQs|FGI3D&r6HfCK;6J;UzGi zp*iy61=2o(qd;h8IWO&39`~}L8spXswUe|lE2xIPmIwRA*Jxb5c$r@bTeb>u#H$jz zP^@`7eW{mku%@S*_ls++*^rOD1Uv?f8><2?V&Tve8R!sjg=b*Q46gRID5M&`BViiKXzSSP#|Jx>3fj(XCUNj+VIg zH+q`dN>FRjF4UuTI;f(g+Pt#F~TJGUI{b^U6@a#rPx28P>W^w%k z{U_O!-)=76h5S^ETBkO;qd6@DSRGmiVafdgmOtx>QyBF>=!kWoBuWI&9BKi|2OW6& z;at=}iuSZa@6ZyO(;MD1Ov&x-2xwe{<}~<6Y)&GA2~XN&U;k3qYEf4cI5XlT7{dut z$4M&M3mpxG8fm?LDrrQ5l0j;sIrTxb9&=;R=O$+@(ggE<>q+#yMM|ZQ2(gc7P7Z3; zXDRpd6xQYB$f^~yOdAErHZWd_`5Qu{g_W%LQ18e1*(AG(k>-euG2eo4gLhRvNx+v% zAT?>HNM;0-ky>jP{TCWeqA^e*hPRG$2%YFO7rJcx#UI92Vx%i_K_m1sG3)Ff#R9ol zvX@8ij*rS^!yZLQsuf3_U852kdvvO>R=8b)SjIB#^u0bOtBp*S%hh|dt+-JrV-L4r zodseb3awYxG(Gb4Ac;Ackfh2ep-gjB#}3c(VjEW3%TX|2Ab6(8lk81OIbgTY&&!eI z^$XG>_%lGaY3ZYx*MoWB9NCV$TB|h?l<+2j%B<#fg4LLKTN)H+F*mvr6H%y}+65GS zAg6XGZXI#bICksEgK`dP8Yl}YI6BhbQbg$gBwE*TB-Q;e-f^VCpdgYTC>U00&sP!Y&?)RboI8cIe2x_ga zN*`iSbE%k5iI1DgB%qKA$`HNqgL)DQshd!1MOU(0?T;gFH$7Q3b({I)5QXhS90spI zQ8ilYK&*2sCk~4vkF~8GctT}Z-&N^$lC>_%qZo}G6c;<8mc-&hf3%sfIdY?>#>a>>?r~Tq3xBqSg?f)AWVJHB1S0)e|f-q;*7*h7QdqB5Qs08=Ad&Pe*e_X0r#c)e&Bw*Kk^Ljnzj4?3wO<0_*=&P3(dH@`(08QYgU;?k^6*M zfj(*L3H0l?Dmr-LG^;{)fu`K=2T>loFCpg)=R{X_1H#vsYm%VDF6RH;P5iG}UuB*n zr6@R)`A%E^3iwX5zXnKW6{J0Y^e@0ed(hU)%uRcd@*mYqz?jw#1T#U~{8lg%UZMJ! z2?tQ`Rj#)W^?txOr2?Gxwczw;jMGFDPJhHW{Qx+fqJv5o`HG?L-l5YdY@4= zIEZ?$bG?J8XEWw)0pXZCD8mj+4g8IJvJSt9zw|;}?HCj)AR=v!_N1JG+W9F0G z#M~EeH__|+pqFm90i!E~5mP)KKsnX|1%?g<(i)Yp zE?`eE&?3Ec>))Y7r(Cb<$HknO$L?V;kmzUYC)^Y6Aj}`S^-b(XR1W0X2{!YDk}z1&@Y$$hDI0y9dt{;fLz3Crt6P-j7^{@vqSD93V2U;o-8ef=S?F#9ns2hfKB z@y-Ud`p517V0K_-=@Ohr@=Ywbz0w4PdVk3B?FNt8yJSv9ttaT!UV8J|ORLD|x+DJ2 zjpm2MO)eR?#!zyI+fw02cso6{VM?!!JkSvDXDCCo`d}P}DsdU7a4;tE&6k2P@#WYM zaJ~iZcu%$U5HLpp@1dJTpWbBd9Btx;xOI!lP@33*QA4~&7>+)O0@mjPPCMb33ic*( z>q~x`$Z^dti3BMBet!fMiCbUX7ES_u`U^z4NAdO7z`1ezSCEotT4E<8uyf(s-vI1! zMWt`J?Ex>3w_yLf%*$N?p6J2)KW4c95^%o|z%3}ae*(BC72H2@I|8^TTi|*Ox6lOl z-!t6r0q*SpZV^2e+~b6G5U@`%YzlV*_F<;@sV3M7tB1-l#Z8_kJz^2GULqb;Jh$A` z?q8$bgna<*mV$OyxIYPN1hDpCuJIduc3Rv~ITw&~T4BRsz`lbvx*jF1kB}$jT>@rb zDVxgJ5e--Na1QO@64rZ-wHrCK-{g}Da!Q<|W(T-(xG~G!;X84(@Y{`)`iMADAFZ8{ zv+_Z78gkcYr1`yscSG~N_?;O(+)Xd z{WGy%AFm|b5pnXBNPXl{V*P_qc^nT_`L|X1ZwedbQ{nQI0_l4a_4c6+k^@QWeHp_j zez|^1hF$FO>Zje)I0e)mN744j?rBj&4ajzs%hk_dw-=wXMdVyO*0&#FH#hoq_v;nB-cA79A7%2<(=H}839R$*^{&;0568x8+T$9 zQ}vDq?H}a!-$N;w-&?R(DM70@RqeO9_DR57Y@*#=jMX?vD&%Y-gx#?Ufm$3=rzV8I zSn*F6N&6o(MhPRNT7{hJdk_Vej*62nN9vA4qA)yCj`r(Nm?l!o6rgoD3z01q!k{&)*e<_@O4 z_*|hR#^h@pIf#uh1zSOJ@xQH#nY0mUI z=U}p#qPDJA%cbHbpvA5&E_&H_AxX>y80$8cmc1_6Dr&I7n1Yip!hOr@ey0KpK})Lj z&#A>U0i7gckQciNM>B1l7IlZI)SFUej2pR*B9r}1%oe^$dn%wS`=w7)cbT1ULLd9s$N z7IPe#GjDH{%Hk?qTv-q3rLHI&p*2bfkI`eC9;_<-dldRIJxEz-{arkqqq9}RH!vC! zII#0goW9GaGXqavcn+2g^rp!hP)K*lVs)boCrA_aQMmg`2w{IjC>vR`Z;v?r+nFb+ z&m&$gY^|Gx5z*O0I=y14wz(bg+WgEnN*BGhNmyH9cOjE`qm4o%k?9JT#Vh7gp}2Xm zTCIT*t6-c>XP=J}jBCh)t0#I3s}ARmcpZK_7txJ7wsYWmfvOox;J3By5X;E|Z&3ae z2vYOa$x6vmTNjVdmgzLH{lN8?3;&E z#oF_Wb9STnevV^!o&&y9<_8t5gWwdHNjn0Tm!0Yj;#c9=xVo`QHE1ll8W|8Ah30;) zQj!{so}eI$ip4_F4!}`A)-eSK7ou^pf;UH-?P2;eQJgzGX@SDcO7>OxPUC=E|Tl%t(q|mrA!w5ts(N zc0c7djg;3Ouo6dil&)Pjtwox^mnzcoy<_H?q`rCId1TroOFzlCYOz|jor}gZrG57Z zlAG`l0p9HL-0(jkIY_mMu^{1{&-e`Z45%T4HRguB?9Xl!Uc>MkxJ=TROvDRl#5wN+ zXpzp(Rv&<{9-w*yfy^E7axA4oQr#*009$huL_35LgB&sj!YjbQ&;XIBc?m$`c5A?Z zr{9>nHs!@>3}6-6#2{tfs^a1RrfFr#>u11kR?AFvfP^hpEO0IS>;r%WxK!CNvE)ei z6nGLS@A1Z}L!JqRVr>J`dlP&MKLofEKuBX8S&~aTiUAjYpg<`~q&Gm47YWt`a+89O zdI12538Zl|GpH{BE3dt20wWQrUYhAbGnx_>E?cjm8@$eQe8HNaZk-ERVlGjEH|g<+ z9&giw+_|mK(Sw#^ZcLb4au!WCjCnCE z!Cr>>n>{h4lRyVmH;UV^8!JAkkNqHGRkBQa&zH6a{)zm8J3jg@UCY>Ehq1^nzxjk*nN-olOd7Bsr#NQ z3a+3l%DyihgKVotT}=bZD!V(e>&U8?;kkv)5|}R`=b5JwvvQb{?vlwdNpJMbOZnZi zewpa^6?%L?4`Mm%&*|}fdi(`F{*oSlg$H~PHl!<~ZT&UHaan>!^ge~P=}D{30XQNs z7j*a@3ve(X#Ih2xeBo}PRF-_bhRt-~S5-urHrWyKCL>Rh3b_ko zPUYbY09S^m8XOuD(T=AHK%sa_y<5}C#etj$Qg9!DGXmTZ$oZfzx*Kj2KDw~nhCaAeT3FyoS=1fB?WX=K_Z7YmdF251?0pJTgu25|HbQrh!#$vFW|4u7fr zMe1l5UklNnrgZ8%wLrbnf0lqd1N9AV7=$m<;i>_ww=1<>TBug62?k<6Z}~7R{evue z>SF`~Ml&C$baE6?cPa{SnENRor(%uzL{)+)okCKmLp-n>bWCA9cO#ZUF1dZ6 z4BSIfPqn97lH5GH^giYO(Lv*&!Ru@arF5m*>fvfnJV;&(l7vd!!PFCw6ZUL9lD1^hr ziBy;Va$E}>0=F6BLxMrEoW56uvN4&O0v60M+J4l-SZI4WPE^#NW@8Cp3{K5vek^GY zE`3V;nZRF4bByiW5{i(LHB+wm&v?I(zX`h}Ttq-b>zY!cXj^bffKe3A2-X4I7s6eI zt@vXomaKjbCxrGmT8XPLJY-N4>Xkv=>B2H@kQ<5Ep2*)D!{lPzSfYI<{0=Wo)K=8+acZP;*MsR|`m8dK({^+g_ z%~Djvk-i)038eRh(&60RwB}AUG!%^@l%f3A?FsmDH~aT12*HXp@yrgj z1yZOaHV2K10t%4w=4-icpi)~v1!ZadZa`Y_;?$vW)_}kTn<8f{(vHaR*^g)hu~nk< zv5(mIkt1ivJ|Y($W|hIXbQMbZw6VH~sc5s~#d!`48H z-)*TM^E;LL3BTj1pYmIC4sFM4)M{g++B7GL-KYc1a$N|}eB6q^aZMsfP)sy%!fsP;m`yj{yairDB?ul#q|yro*@{vpSEdD7z;R6$uOPTup#7g7E{2# z@F8_cwQ36)eF&4PrRxlF^cp)d%Scee>3HMHwTqKi4BU~Qfrqj4rYvRyPt)Mt9H|(1 zuH!J+K%TD0u+9%Ep(6a;rIHWo0X5DePqN{g!n~J%@|AaR9ORo2^I-BSzzJ%&cysIAlNRr8r|5`tYdfo0?& zR!;$^xO_~+$-8nzhY^+B0F%AA!3#F#B?hi^_=*9!@$p?d9dUfc0ADa@#No;(xz_3Ct-XHexGqM5MZ2e6D=51yj>g@g9;;xpAavJAu-GtP-~PnB1XknfD@&_pd?N; zrJNRL#M!2lm&GgM)uxo@z7d=W@tQc-RHn6ORO-CAAU@Mn>UA+GE;gl1iD_}EDdnmlF#Ht81{PVEaQ~e}MkZmsPfL9G4tmG=P>+ z2{u};;mYiPo1r0K2S>2jKypj*LMmQX0jnE?xH4!NbnkGCRr=09%%lTJ8(ufVR~gUI zPGgw2g%^x-z;0No2M}RJ%`k2M5D64HDq(oo*IiHn=!m5O(17d?X{OGPwaD_pn01!+ zQM7OII)S(R>`cB`hF#J6W28E#=lOFZ@`D@vZ4$IMtOou8LhUzP6znY>W+G&Ka?O4;8H+Q0>cM zq?kemlZWjVzSYdXwY(rV5v)D-=|EKWM|a!4*^SNx z1CPc7D=o7jTYR!%L{bg5D-Z_xcS`gDr?wu)jSY4=ffNlAIkZJ41( zFmL!eAt|rr!1_bVvto!f+QZ|_IID&G3~10gNrd>#cJ9CU_DAWf zVcC^mW%+q_KS5o5zh(U7sgtKpUk*tSDR@dY)c%U;Wea4eZS418@Btg~-Noa$(<((n zc=tNU6!2;Dq7vjVxTA0vd+Fy1k?{5CW+~#&10F4(k!*YssOft&h>{`XJeQ&n5?C3m zB+&WsnThd<@gaVl3Nl&T1P%)Xvtg4vKTh%{q^W0Nb)LKxGMTj6H&0~J4VgEQW*3UF zA%o<{xO%~#LWTT{u^{P;%sHcS@Ub4Md3LPv?VzS^W2Q``uPDv^kTk(_zccBEd<7Pe z4nq(WnRGDw8F$K=oF6i1nh){p&PWSEAbwH8pMyie49ui`S`xWXBp?{jl^z~cq?J+= z=@y@lAs8T~&j%VODxwk=Kp3(ExV#f5BEX%4vO~jxb}{{q)9Q2;^N-BOgW)357&5U< zp-kGDCV4G+ObYCVoG!?99+CpM(533&>rV311_8^BcCg+4|=+{U&Y z=dDkcK|GZ5D^MX}qp>}Pal~)Ufg}x^y@= zol3eA&sl#)VCFv+Oo*`3w;;S)Y}b=PqMfwq4UZu|aXkmOwE(=Z!{*xckSZjVH;Mq_)>*eXd7 zQbWRD2Y{&v81cT86*O}7!3srt^2UD79;AV72ovjn6TRQxzUdHusP^bnTMbv67ad}B znQ1mmX47Hz*Tgd9tFw!FZ^M9XaD4Yy1dJ?F-!w#@aE`wPaLJWF1n z!JVo>Gu$GX4_|<%xkV^%KqT5+y=armQ>>gbg0s)x!ghtuK)A zHZFmGC5}nw!b=Ch`O_SpMi&fhUPwBHJx0i0?+k9wJN^zjw0b#UhiAHGkvqT(u)|C% zO^gv^Qr?pFPpYJX93Xe00XXZh|ImQ5V|aM3nR4uO@B$6CRNKBaayCL^RF>U42WZvd zQJ8ADkg|t^^Wc-|)LLoV&Z*|Ota3&Dxg3$4Jqo++9EaEk!})M~G(*DgxlATiwa^DZ zF#^|F7W{!~fIOgv4FCI-a1atkt7j5@nMW!eh|!oAnR{$@iGf`$IM3mGAnYY&@wu)u zw2YBpVwVHQ-o7I~U;4cL%#P#51kLt)4j2vD^3YE@Uuk^^G%QLT+(B9Rh7y(#=6-yTVGz3&y;;t-~ zy6d;qZ2a&#q56UGAwc;CX`O!vRP=-nuLan3$(D^zC6MMB;aK8{o|1a#1T2;>5<Iqp=(-Qwz>a!7t9y{?9J?-Zp_9P2qb*Q!W#9!%M&u@crLhzbkH}Gs~|9QAHr4uH8 zFPkt9xA44h7*aUQz0Ic4>jpIwiT|UweM0}>MG(Ry4DEU0=V8?hshRQ|%VnIyavg29 zKDY44>|pfrU?+Waloqah-pl0kt5vaqPkZIPY(BpZhd`B+%;!b5n9p1Lh`m3g$9wd6 zM2{>z1U<-p$u>AIOP{tW6`?*`t_lm^q>fnE>Cs?W4zba$4YkN0-X=p^Dgr+fEwd}~ zi>cG8WGWf?MfsQNOl4F1v=qE_c3D(oc5sKa0FYh^3@@h$%{@4esgF8XC3X;scs-$% z5ewfQqS*$YJsrj6w|m<7lSC?+jJfRV$KN56UThhLJhMt4Xk*VcZznz#0|QoVBwUs7 j+OCUU>YOC(1t2Ux?5gj;jD*jCrWw&}(tw9WSLXi#wN?<5 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/DeleteVolumeCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/DeleteVolumeCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9030531636383b4e7a9720b40eb706eaac1a8bfa GIT binary patch literal 10767 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 Ri}_u66QJmTe{1(<{v!wx!ao22 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_ARRAY_COMMANDS/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..519d96bef047d85a0336a311bcdb0ec53278ebc5 GIT binary patch literal 211 zcmd1j<>g`k0wwn9Oc4DTL?8o3AjbiSi&=m~3PUi1CZpdpP7@do12)In4VgsUzVCzrk|6Uq+d{3l98WhtY>JTUz}Nzs#}nl zoDEa~R$Y`@T%w;^QIeWhoSC0jtRL*_7!(rk7!>3f8Sm`x>+9&}609E|pP83g5+AQu YP \n\t" + "smartnic --id -j\n\t" + "smartnic --id --logs\n\t" + "smartnic --id --bootprogress\n\t" + "smartnic --id --clearlog\n\t" + "smartnic --id --update_fw \n\t" + "smartnic --id --reset < GracefulShutdown / ForceRestart / Nmi / GracefulRestart >\n", + "summary": "Discovers all pensando nic installed in the " "server", + "aliases": [], + "auxcommands": ["SelectCommand"], + } + self.config_file = None + self.fdata = None + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Smartnic command""" + + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + if args: + raise InvalidCommandLineError("servernic command takes no " "arguments.") + + ilo_ver = self.rdmc.app.getiloversion() + if ilo_ver < 5.268: + raise IncompatibleiLOVersionError( + "Please upgrade to iLO 5 2.68 or " "greater to ensure correct flash of this firmware." + ) + + self.smartnicvalidation(options) + + path = self.rdmc.app.typepath.defs.systempath + + info = self.gatherinfo(path) + + if not info: + raise InvalidCommandLineError("No SmartNic available.") + + fw_version = self.get_fw_version() + options_system = True + + if options.json and options.id is not None: + string_id = options.id + to_list = list(string_id.split(",")) + for id in to_list: + if options.bootprogress: + if id == info["Id"]: + json_content = self.print_get_bootprogress(info) + UI().print_out_json(json_content) + elif id != info["Id"]: + self.rdmc.ui.printer("No bootprogress present for given smartnic id %s \n" % id) + + elif options.logs: + if id == info["Id"]: + json_content = self.print_get_logs(info) + UI().print_out_json(json_content) + elif id != info["Id"]: + self.rdmc.ui.printer("No logs present for given smartnic id %s \n" % id) + + elif options_system: + if id == info["Id"] and info["SystemType"] == "DPU": + json_content = self.build_json_out(info, fw_version) + UI().print_out_json(json_content) + elif id != info["Id"] or info["SystemType"] != "DPU": + self.rdmc.ui.printer("System %s:\n" % id) + self.rdmc.ui.printer("\tNo SmartNic present in given id %s \n" % id) + + elif options.json and options.id is None and options_system and not options.logs and not options.bootprogress: + if info["SystemType"] == "DPU": + json_content = self.build_json_out(info, fw_version) + UI().print_out_json(json_content) + if info["SystemType"] != "DPU": + self.rdmc.ui.printer("System %s:\n" % id) + self.rdmc.ui.printer("\tNo SmartNic present in given id %s \n" % id) + + elif (options.json and options.logs and options.id is None) or ( + options.logs and not options.json and options.id is None + ): + raise InvalidCommandLineError( + "No command --logs for smartnic\n" + "usage: smartnic --id --logs \n" + "\t smartnic --id --logs -j" + ) + + elif (options.bootprogress and options.json and options.id is None) or ( + options.bootprogress and not options.json and options.id is None + ): + raise InvalidCommandLineError( + "No command --bootprogress for smartnic\n" + "usage: smartnic --id --bootprogress\n" + "\t smartnic --id --bootprogress -j" + ) + + else: + if options.id is not None: + string_id = options.id + str_lst = list(string_id.split(",")) + if options.update_fw is None and options.reset is None: + for id in str_lst: + if options.bootprogress: + if id == info["Id"]: + self.get_bootprogress(info) + elif id != info["Id"]: + self.rdmc.ui.printer("No bootprogress present for given smartnic id %s\n" % id) + + elif options.logs: + if id == info["Id"]: + self.get_logs(info) + elif id != info["Id"]: + self.rdmc.ui.printer("No logs present for given smartnic id %s \n" % id) + + elif options_system and not options.clearlog and not options.logs: + if id == info["Id"] and info["SystemType"] == "DPU": + self.prettyprintinfo(info, fw_version) + elif id != info["Id"] or info["SystemType"] != "DPU": + self.rdmc.ui.printer("System %s:\n" % id) + self.rdmc.ui.printer("\tNo SmartNic present in given id %s \n" % id) + + elif options.clearlog and options_system: + try: + for id in str_lst: + if id == info["Id"]: + self.clearlog(options, info, id) + elif id != info["Id"]: + self.rdmc.ui.printer("Given smartnic id is not present to clear the logs.") + except Exception as excp: + raise excp + + elif options.update_fw is not None: + try: + self.upload_firmware(options, info) + except Exception as excp: + # if SessionExpired: + # time.sleep(320) # wait till reboot the server + # self.smartnicvalidation(options) + # self.cmdbase.login_select_validation(self, options) + # else: + raise excp + + elif options.reset is not None: + try: + for id in str_lst: + if id == info["Id"]: + self.get_resettype(options, info, id) + elif id != info["Id"]: + self.rdmc.ui.printer("No reset type present for given smartnic id %s \n" % id) + + except Exception as excp: + raise excp + + else: + if options.clearlog and options_system: + raise InvalidCommandLineError( + "No command --clearlog for smartnic\n" "usage: smartnic --id --clearlog" + ) + + if options_system and not options.clearlog: + if info["SystemType"] == "DPU": + self.prettyprintinfo(info, fw_version) + elif info["SystemType"] != "DPU": + self.rdmc.ui.printer("No SmartNic available.") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def get_fw_version(self): + # to get pensando firmware version + name = [] + f_version = "" + fw_path = "/redfish/v1/UpdateService/FirmwareInventory/?$expand=." + fw_result = self.rdmc.app.get_handler(fw_path, service=True, silent=True) + fw_result = fw_result.dict + members = fw_result["Members"] + for n in members: + name_version = n["Name"], n["Version"] + name.append(name_version) + + for fw_name in name: + if "Pensando" in fw_name[0]: + f_version += fw_name[1] + return f_version + + def clearlog(self, options, info, id): + try: + log_service = info["LogServices"] + for log_id in log_service.values(): + data = self.rdmc.app.get_handler(log_id, service=True, silent=True).dict + members = data["Members"] + for val in members: + for dpu in val.values(): + dpu_data = self.rdmc.app.get_handler(dpu, service=True, silent=True).dict + path = dpu_data["Actions"]["#LogService.ClearLog"]["target"] + action = path.split("/")[-2] + action = {"Action": action} + self.rdmc.app.post_handler(path, action) + + except Exception as excp: + raise excp + + def get_resettype(self, options, info, id): + self.printreboothelp(options.reset) + time.sleep(3) + + if id == info["Id"]: + put_path = info["@odata.id"] + + for item in info["Actions"]: + if "Reset" in item: + if self.rdmc.app.typepath.defs.isgen10: + # action = item.split("#")[-1] + put_path = info["Actions"][item]["target"] + break + + if options.reset.lower() == "gracefulshutdown": + body = {"ResetType": "GracefulShutdown"} + elif options.reset.lower() == "forcerestart": + body = {"ResetType": "ForceRestart"} + elif options.reset.lower() == "nmi": + body = {"ResetType": "Nmi"} + elif options.reset.lower() == "gracefulrestart": + body = {"ResetType": "GracefulRestart"} + + self.rdmc.app.post_handler(put_path, body) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def printreboothelp(self, flag): + if flag.upper() == "FORCERESTART": + self.rdmc.ui.warn( + "\nForcing a server restart. Note, the current session will be " + "terminated.\nPlease wait for the server to boot completely before logging in " + "again.\nRebooting the server in 3 seconds...\n" + ) + elif flag.upper() == "NMI": + self.rdmc.ui.warn( + "\nA non-maskable interrupt will be issued to this server. Note, the " + "current session will be terminated.\nIssuing interrupt in 3 seconds...\n" + ) + + elif flag.upper() == "GRACEFULSHUTDOWN": + self.rdmc.ui.warn( + "\nThe server will be graceful shutdown. Note, the current session will be " + "terminated.\nPlease wait for the server to boot completely before logging in " + "again.\nRebooting the server in 3 seconds...\n" + ) + + elif flag.upper() == "GRACEFULRESTART": + self.rdmc.ui.warn( + "\nGraceful server restart. Note, the current session will be " + "terminated.\nPlease wait for the server to boot completely before logging in " + "again.\nRebooting the server in 3 seconds...\n" + ) + + def upload_firmware(self, options, info): + try: + string_id = options.id + to_list = list(string_id.split(",")) + for id in to_list: + for info_id in info["Id"]: + if id == info_id: + target = info["@odata.id"] + fw_path = options.update_fw + results = self.rdmc.app.select(selector="UpdateService.", path_refresh=True)[0].dict + results = results["Actions"]["#UpdateService.SimpleUpdate"]["target"] + string_split = fw_path.split("/") + for tar in string_split: + if tar.endswith("tar"): + self.rdmc.ui.printer("Uploading firmware: %s\n" % os.path.basename(tar)) + + res = self.rdmc.app.post_handler(results, {"ImageURI": fw_path, "Targets": [target]}) + + # Taskmonitor to find the firmware status + task_id = res.dict["TaskMonitor"] + + if res.status == 202: + status = self.wait_for_state_change(task_id, options) + if status: + self.rdmc.ui.printer( + "Component " + tar + " uploaded successfully.\n" + "A reboot may be required for firmware changes to take effect.\n" + ) + + if not status: + # Failed to upload the component. + raise UploadError("Error while processing the component.") + + elif (res.status == 404) or (res.status == 402): + return ReturnCodes.FAILED_TO_UPLOAD_COMPONENT + + except (FirmwareUpdateError, UploadError) as excp: + raise excp + + def wait_for_state_change(self, taskid, options, wait_time=4800): + """Wait for the iLO UpdateService to a move to terminal state. + :param options: command line options + :type options: list. + :param wait_time: time to wait on upload + :type wait_time: int. + """ + total_time = 0 + spinner = ["|", "/", "-", "\\"] + state = "" + self.rdmc.ui.printer("Waiting for iLO UpdateService to finish flashing the firmware \n") + + while total_time < wait_time: + state, _ = self.get_update_service_state(taskid) + if state == "ERROR": + return False + elif ( + (state == "Running") + or (state == "New") + or (state == "Starting") + or (state == "Interrupted") + or (state == "Suspended") + ): + # Lets try again after 8 seconds + count = 0 + # fancy spinner + while count <= 32: + self.rdmc.ui.printer("Updating: %s\r" % spinner[count % 4]) + time.sleep(0.25) + count += 1 + total_time += 8 + elif state == "Completed": + break + + if total_time >= wait_time: + raise FirmwareUpdateError("UpdateService in " + state + " state for " + str(wait_time) + "s") + + return True + + def get_update_service_state(self, taskid): + results = self.rdmc.app.get_handler(taskid, service=True, silent=True) + if results.status == 202: + return results.dict["TaskState"], results.dict + + if results and results.status == 200 and results.dict: + output = results.dict + err = output["error"]["@Message.ExtendedInfo"] + for e in err: + msgsrg = e["MessageArgs"] + return msgsrg[0], results.dict + else: + return "UNKNOWN", {} + + def print_get_bootprogress(self, info): + try: + if info is not None: + for id in info["Id"]: + content = {"Id": id} + content.update({"LastState": info["BootProgress"]["LastState"]}) + content.update({"OemLastState": info["BootProgress"]["OemLastState"]}) + content_json = {"Boot Progress": content} + return content_json + except Exception as excp: + raise excp + + def get_bootprogress(self, info): + boot_output = "" + boot_output = "------------------------------------------------\n" + boot_output += "Boot Progress \n" + boot_output += "------------------------------------------------\n" + if info is not None: + for id in info["Id"]: + boot_output += "Id: %s\n" % id + boot_output += "LastState: %s\n" % info["BootProgress"]["LastState"] + boot_output += "OemLastState: %s\n" % info["BootProgress"]["OemLastState"] + self.rdmc.ui.printer(boot_output, verbose_override=True) + + def print_get_logs(self, info): + log_service = info["LogServices"] + for log_id in log_service.values(): + data = self.rdmc.app.get_handler(log_id, service=True, silent=True).dict + members = data["Members"] + for val in members: + for dpu in val.values(): + dpu_data = self.rdmc.app.get_handler(dpu, service=True, silent=True).dict + entry = dpu_data["Entries"] + for dpu_entry in entry.values(): + result = self.rdmc.app.get_handler(dpu_entry, service=True, silent=True).dict + result = result["Members"] + if not result: + content = {} + else: + for member in result: + get_res = member["@odata.id"] + get_result = self.rdmc.app.get_handler(get_res, service=True, silent=True).dict + content = {"Id": get_result["Id"]} + content.update({"Name": get_result["Name"]}) + content.update({"Created": get_result["Created"]}) + content.update({"EntryType": get_result["EntryType"]}) + content.update({"Severity": get_result["Severity"]}) + message = get_result["Message"] + message = message.split(":") + content.update({message[0]: message[1]}) + content_json = {"Logs View": content} + return content_json + + def get_logs(self, info): + log_output = "" + log_service = info["LogServices"] + for log_id in log_service.values(): + data = self.rdmc.app.get_handler(log_id, service=True, silent=True).dict + members = data["Members"] + log_output = "------------------------------------------------\n" + log_output += "Logs View \n" + log_output += "------------------------------------------------\n" + for val in members: + for dpu in val.values(): + dpu_data = self.rdmc.app.get_handler(dpu, service=True, silent=True).dict + entry = dpu_data["Entries"] + for dpu_entry in entry.values(): + result = self.rdmc.app.get_handler(dpu_entry, service=True, silent=True).dict + result = result["Members"] + for member in result: + get_res = member["@odata.id"] + get_result = self.rdmc.app.get_handler(get_res, service=True, silent=True).dict + log_output += "Id: %s\n" % get_result["Id"] + log_output += "Name: %s\n" % get_result["Name"] + log_output += "Created: %s\n" % get_result["Created"] + log_output += "EntryType: %s\n" % get_result["EntryType"] + log_output += "Severity: %s\n" % get_result["Severity"] + log_output += "%s\n" % get_result["Message"] + self.rdmc.ui.printer(log_output, verbose_override=True) + + def prettyprintinfo(self, info, fw_version): + output = "" + output = "------------------------------------------------\n" + output += "SmartNic Information\n" + output += "------------------------------------------------\n" + + if info is not None: + for id in info["Id"]: + output += "System %s:\n" % id + output += "\tModel: %s\n" % info["Model"] + output += "\tManufacturer: %s\n" % info["Manufacturer"] + output += "\tName: %s\n" % info["Name"] + output += "\tFirmware Version: %s\n" % fw_version + output += "\tPowerState: %s\n" % info["PowerState"] + output += "\tSerialNumber: %s\n" % info["SerialNumber"] + output += "\tSystemType: %s\n" % info["SystemType"] + try: + output += "\tHealth: %s\n" % info["Status"]["Health"] + except KeyError: + pass + try: + output += "\tState: %s\n" % info["Status"]["State"] + except KeyError: + pass + try: + output += ( + "\tOperating System: %s \n" + % info["Oem"][self.rdmc.app.typepath.defs.oemhp]["OperatingSystem"]["Kernel"]["Name"] + ) + except KeyError: + pass + try: + output += ( + "\tOS Version: %s \n" + % info["Oem"][self.rdmc.app.typepath.defs.oemhp]["OperatingSystem"]["Kernel"]["Version"] + ) + except KeyError: + pass + try: + avail_sys = info["Oem"][self.rdmc.app.typepath.defs.oemhp]["AvailableSystemCapabilities"] + avail_sys = str(avail_sys).strip("[]''") + output += "\tAvailable SystemCapabilities: %s \n" % avail_sys + except KeyError: + pass + try: + enable_sys = info["Oem"][self.rdmc.app.typepath.defs.oemhp]["EnabledSystemCapabilities"] + enable_sys = str(enable_sys).strip("[]''") + output += "\tEnable SystemCapabilities: %s \n" % enable_sys + except KeyError: + pass + try: + integration_con = info["Oem"][self.rdmc.app.typepath.defs.oemhp]["IntegrationConfig"] + integration_con = str(integration_con).strip("'{} ") + integration_con = integration_con.replace("'", "") + output += "\tIntegration Config: %s \n" % integration_con + except KeyError: + pass + + output += "\tUUID: %s\n" % info["UUID"] + + self.rdmc.ui.printer(output, verbose_override=True) + + def build_json_out(self, info, fw_version): + if info is not None: + for id in info["Id"]: + content = {"model": info["Model"]} + content.update({"Manufacturer": info["Manufacturer"]}) + content.update({"Name": info["Name"]}) + content.update({"Firmware Version": fw_version}) + content.update({"PowerState": info["PowerState"]}) + content.update({"SerialNumber": info["SerialNumber"]}) + content.update({"SystemType": info["SystemType"]}) + try: + content.update({"Health": info["Status"]["Health"]}) + except KeyError: + pass + try: + content.update({"State": info["Status"]["State"]}) + except KeyError: + pass + try: + content.update( + { + "Operating System": info["Oem"][self.rdmc.app.typepath.defs.oemhp]["OperatingSystem"][ + "Kernel" + ]["Name"] + } + ) + except KeyError: + pass + try: + content.update( + { + "OS Version": info["Oem"][self.rdmc.app.typepath.defs.oemhp]["OperatingSystem"]["Kernel"][ + "Version" + ] + } + ) + except KeyError: + pass + try: + content.update( + { + "Available SystemCapabilities": info["Oem"][self.rdmc.app.typepath.defs.oemhp][ + "AvailableSystemCapabilities" + ] + } + ) + except KeyError: + pass + try: + content.update( + { + "Enable SystemCapabilities": info["Oem"][self.rdmc.app.typepath.defs.oemhp][ + "EnabledSystemCapabilities" + ] + } + ) + except KeyError: + pass + try: + content.update( + {"Integration Config": info["Oem"][self.rdmc.app.typepath.defs.oemhp]["IntegrationConfig"]} + ) + except KeyError: + pass + content.update({"UUID": info["UUID"]}) + system = {"System %s" % id: content} + content_json = {"SmartNic Information": system} + return content_json + + def gatherinfo(self, path): + try: + # info = {} + results = "" + csysresults = self.rdmc.app.select(selector="ComputerSystemCollection.") + csysresults = csysresults[0].dict + members = csysresults["Members"] + for id in members: + for mem_id in id.values(): + if path != mem_id: + results = self.rdmc.app.get_handler(mem_id, service=True, silent=True).dict + return results + except: + pass + + def smartnicvalidation(self, options): + """smartnic validation function. + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + + customparser.add_argument( + "--id", + dest="id", + help="Optionally include this flag to retrive the selected smartnic .", + default=None, + ) + + customparser.add_argument( + "--logs", + dest="logs", + action="store_true", + help="Optionally include this flag to list all the logs .", + default=False, + ) + + customparser.add_argument( + "--bootprogress", + dest="bootprogress", + action="store_true", + help="Optionally include this flag to list the bootprogress information", + default=False, + ) + + customparser.add_argument( + "--update_fw", + dest="update_fw", + help="Include this flag to update firmware to pensando card", + default=None, + ) + # customparser.add_argument( + # "--update_os", + # dest="update_os", + # help="Include this flag to update OS to pensando card", + # default=None, + # ) + + customparser.add_argument( + "--reset", + dest="reset", + help="Add this flag to reset the server", + nargs="?", + type=str, + const="GracefulRestart", + ) + + customparser.add_argument( + "--clearlog", + dest="clearlog", + action="store_true", + help="Optionally include this flag to clear log", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_NIC_COMMANDS/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_NIC_COMMANDS/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_NIC_COMMANDS/__pycache__/SmartNicCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/SMART_NIC_COMMANDS/__pycache__/SmartNicCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..996cfa04a5e2564841c1dc78554083804db62128 GIT binary patch literal 17418 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/AHSdiagCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/AHSdiagCommand.py new file mode 100644 index 0000000..4136b90 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/AHSdiagCommand.py @@ -0,0 +1,519 @@ +### +# Copyright 2017 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""AHS diag Command for rdmc""" + +import os +from ctypes import POINTER, c_char_p, c_int, c_ubyte, create_string_buffer + +import redfish.hpilo.risblobstore2 as risblobstore2 + +try: + from rdmc_helper import ( + LOGGER, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + LOGGER, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +from redfish.hpilo.rishpilo import HpIlo + +if os.name != "nt": + from _ctypes import dlclose + + +class AHSdiagCommand: + """Add Sign/Marker posts into the AHS logs of the server""" + + def __init__(self): + self.ident = { + "name": "ahsdiag", + "usage": None, + "description": "Adding sign or Marker Post into AHS logs." + "\n\tahsdiag --WriteSignPost \n\tahsdiag --WriteMarkerPost" + ' --instance 1 --markervalue 3 --markertext "DIMM Test Start"', + "summary": "Adding sign or Marker Post into AHS logs.", + "aliases": ["ahsops"], + "auxcommands": [ + "LoginCommand", + "SelectCommand", + "LogoutCommand", + "ServerlogsCommand", + ], + } + + self.dynamicclass = -1 + self.lib = None + self.channel = None + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main ahsdiag function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.ahsdiagvalidation(options) + self.ahsdiagworkerfunction(options) + self.cmdbase.logout_routine(self, options) + return ReturnCodes.SUCCESS + + def ahsdiagworkerfunction(self, options): + """Main ahsdig worker function + + :param options: command line options + :type options: list. + """ + if not options: + raise InvalidCommandLineErrorOPTS("") + + if self.lib is None and self.channel is None: + self.resetilo() + + if options.signpost and options.markerpost: + raise InvalidCommandLineErrorOPTS("") + + if options.signpost: + if options.inst or options.mval or options.mtext: + raise InvalidCommandLineError("") + self.addsignpost(options) + elif options.markerpost: + if options.inst and options.mval and options.mtext: + self.addmarkerpost(options) + else: + raise InvalidCommandLineErrorOPTS("") + else: + self.rdmc.ui.printer("Choose an operation!\n") + raise InvalidCommandLineErrorOPTS("") + + def addsignpost(self, options): + """Function to add signpost + + :param options: command line options + :type options: list. + """ + excp = None + for _ in range(0, 3): # channel loop for iLO + self.rdmc.ui.printer("Start writing sign post ... \n") + try: + if not self.spregister(): + raise + self.rdmc.ui.printer("Successfully registered.\n") + fail = True + + for _ in range(3): + if self.signpostregister(): + self.rdmc.ui.printer("Signpost was successful!\n") + fail = False + break + else: + self.rdmc.ui.printer("Signpost attempt failed!\n") + + if options.postIML and fail: + self.addimlpost(options) + + self.unregister() + return + except Exception: + if self.rdmc.opts.verbose: + self.rdmc.ui.printer("Retrying with new channel...\n") + self.resetilo() + raise excp + + def spregister(self): + """Function that registers the signpost""" + self.bb_class_allocate() + + if self.dynamicclass == -1: + return False + + self.lib.bb_register_wrapper(self.dynamicclass) + size = self.lib.sizeofbbregister() + rcode = self.dowriteread(size) + + if rcode == 0: + self.lib.bb_descriptor_code_wrapper(self.dynamicclass) + size = self.lib.sizeofbbdescriptorcode() + rcode = self.dowriteread(size) + + # if rcode > 0: + # return True + # else: + # return False + return True + + def bb_class_allocate(self): + """Function to obtain a handle for further operations""" + self.lib.bb_class_allocate_wrapper() + self.lib.getreq.restype = POINTER(c_ubyte) + ptrreq = self.lib.getreq() + + # sizeofbbchifresp = self.lib.sizeofBBCHIFRESP() + size = self.lib.sizeofbbclassalloc() + data = bytearray(ptrreq[:size][:]) + + if self.rdmc.opts.debug: + LOGGER.debug("Sending data to chif:{0}\n".format(bytes(data))) + + resp = self.channel.chif_packet_exchange(data) + + resp = create_string_buffer(bytes(resp)) + self.lib.setresp.argtypes = [c_char_p] + self.lib.setresp(resp) + + if len(resp) != 0: + self.dynamicclass = self.lib.respmsgrcode() + self.rdmc.ui.printer("Do Read Return error code:{0}\n".format(self.dynamicclass)) + else: + self.dynamicclass = 0 + + def unregister(self): + """Function to unregister the handle""" + self.lib.bb_unregister_wrapper() + size = self.lib.sizeinunregister() + rcode = self.dowriteread(size) + + if rcode == 0: + self.rdmc.ui.printer("Unregistration successful!\n") + else: + self.rdmc.ui.printer("Failed to unregister with code:{0}.\n".format(rcode)) + + def dowriteread(self, size): + """Function responsible for communication with the iLO + + :param size: size of the buffer to be read or written + :type size: int + """ + ptrreq = self.lib.getreq() + data = bytearray(ptrreq[:size][:]) + if self.rdmc.opts.debug: + LOGGER.debug("Sending data to chif:{0}\n".format(data)) + try: + resp = self.channel.chif_packet_exchange(data) + except Exception: + self.resetilo() + return -1 + + self.lib.setresp.argtypes = [c_char_p] + resp = create_string_buffer(bytes(resp)) + self.lib.setresp(resp) + rcode = self.lib.respmsgrcode() + + if rcode == 0: + self.lib.updatehandle() + + return rcode + + def signpostregister(self): + """Worker function of signpost register""" + self.lib.bb_code_set_wrapper() + size = self.lib.sizeinbbcodeset() + returnval = self.dowriteread(size) + + if returnval != 0: + self.printsignpostregister(returnval) + return False + + self.lib.bb_log_wrapper() + size = self.lib.sizeinbblog() + returnval = self.dowriteread(size) + + if returnval != 0: + self.printsignpostregister(returnval) + return False + + self.lib.bb_log_static_wrapper() + size = self.lib.sizeinbblog() + returnval = self.dowriteread(size) + + if returnval != 0: + self.printsignpostregister(returnval) + return False + + return True + + def printsignpostregister(self, returnval): + """Commonly used output statement. + + :param returnval: return code for signpost + :type returnval: int + """ + self.rdmc.ui.printer("return signpost register failed={0}\n".format(returnval)) + + def addmarkerpost(self, options): + """Function to add marker post + + :param options: command line options + :type options: list. + """ + excp = None + for _ in range(0, 3): # channel loop for iLO + self.rdmc.ui.printer("Start writing marker post ... \n") + + try: + for i in range(3): + if self.mpregister(): + break + + self.rdmc.ui.printer("attempting to register Marker Post..." "failed {0} times\n".format(i + 1)) + + self.resetilo() + + self.rdmc.ui.printer("Successfully registered.\n") + fail = True + + for _ in range(3): + if self.markerpostregister(options): + self.rdmc.ui.printer("Marker Post was successful!\n") + fail = False + break + else: + self.rdmc.ui.printer("Marker Post attempt failed!\n") + + if options.postIML and fail: + self.addimlpost(options) + + self.unregister() + return + except Exception: + if self.rdmc.opts.verbose: + self.rdmc.ui.printer("Retrying with new channel...\n") + self.resetilo() + raise excp + + def mpregister(self): + """Function that registers the marker post""" + self.bb_class_allocate() + self.rdmc.ui.printer("return code(dynamic class)={0}.\n".format(self.dynamicclass)) + + if self.dynamicclass == -1: + return False + + self.lib.bb_register_mwrapper(self.dynamicclass) + size = self.lib.sizeofbbregister() + rcode = self.dowriteread(size) + + if rcode == 0: + self.lib.bb_descriptor_code_mwrapper(self.dynamicclass) + size = self.lib.sizeofbbdescriptorcode() + rcode = self.dowriteread(size) + + if rcode == -1: + return False + self.lib.bb_descriptor_field_mwrapper(self.dynamicclass) + size = self.lib.sizeofbbdescriptorcode() + rcode = self.dowriteread(size) + if rcode == -1: + return False + + return True + + def markerpostregister(self, options): + """Worker function of marker post register + + :param options: command line options + :type options: list. + """ + self.lib.bb_code_set_mwrapper() + size = self.lib.sizeinbbcodeset() + returnval = self.dowriteread(size) + + if returnval != 0: + return False + + mval = int(options.mval) + minst = int(options.inst) + mtext = create_string_buffer(bytes(options.mtext, "utf-8")) + + self.lib.markerpost_wrapper.argtypes = [c_int, c_int, c_char_p] + self.lib.markerpost_wrapper(mval, minst, mtext) + + size = self.lib.sizeinbblogm() + returnval = self.dowriteread(size) + + if returnval != 0: + return False + + return True + + def resetilo(self): + """Function to reset iLO""" + if self.channel: + self.channel.close() + self.loadlib() + self.channel = HpIlo(dll=self.lib) + self.lib.ChifDisableSecurity() + + def loadlib(self): + """Function to load the so library""" + self.closedll() + try: + if os.name == "nt": + self.rdmc.ui.printer("Operation can be performed only on Unix based systems!\n") + raise InvalidCommandLineErrorOPTS("") + else: + self.lib = risblobstore2.BlobStore2.gethprestchifhandle() + except Exception as excp: + raise InvalidCommandLineErrorOPTS(excp) + + def closedll(self): + """Deallocate dll handle.""" + try: + dlclose(self.lib) + except Exception: + pass + + def addimlpost(self, options): + """Adding maintenance post from serverlogs. + + :param options: command line options + :type options: list. + """ + if options.signpost: + imltext = "Signpost Writing Failed" + elif options.markerpost: + imltext = "Markerpost Writing Failed" + + options.service = "IML" + options.clearlog = None + options.mainmes = imltext + + path = self.serverlogsobj.returnimlpath() + self.serverlogsobj.addmaintenancelogentry(options, path=path) + + def ahsdiagvalidation(self, options): + """ahsdiag method validation function""" + client = None + + try: + self.cmdbase.login_select_validation(self, options) + client = self.rdmc.app.current_client + except Exception: + if client: + if not client.base_url == "blobstore://.": + raise InvalidCommandLineError("ahsdiag command " "available in local mode only.\n") + + if self.rdmc.config.url: + raise InvalidCommandLineError("ahsdiag command " "available in local mode only.\n") + + if not client: + self.lobobj.run("") + + def definearguments(self, customparser): + """Defines the required arguments for ahsdiag command. + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--selectlog", + dest="service", + help="""Read log from the given log service. Options: IML, """ """IEL or AHS.""", + default=None, + ) + customparser.add_argument( + "--clearlog", + "-c", + dest="clearlog", + action="store_true", + help="""Clears the logs for a the selected option.""", + default=None, + ) + customparser.add_argument( + "--maintenancemessage", + "-m", + dest="mainmes", + help="""Maintenance message to be inserted into the log. """ """(IML LOGS ONLY FEATURE)""", + default=None, + ) + customparser.add_argument( + "--customiseAHS", + dest="customiseAHS", + help="""Allows customised AHS log data to be downloaded.""", + default=None, + ) + customparser.add_argument( + "-s", + "--WriteSignPost", + dest="signpost", + action="store_true", + help="""Writes a sign post into the AHS log.""", + default=False, + ) + customparser.add_argument( + "-r", + "--WriteMarkerPost", + dest="markerpost", + action="store_true", + help="""Writes a marker post into the AHS log.""", + default=False, + ) + customparser.add_argument( + "-i", + "--instance", + dest="inst", + help="""Argument required by marker post.""", + default=None, + ) + customparser.add_argument( + "-l", + "--markervalue", + dest="mval", + help="""Argument required by marker post.""", + default=None, + ) + customparser.add_argument( + "-t", + "--markertext", + dest="mtext", + help="""Argument required by marker post.""", + default=None, + ) + customparser.add_argument( + "-w", + "--WriteIMLPost", + dest="postIML", + action="store_true", + help="""Writes an IML entry if failure occurs.""", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/AutomaticTestingCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/AutomaticTestingCommand.py new file mode 100644 index 0000000..53fc9f3 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/AutomaticTestingCommand.py @@ -0,0 +1,2782 @@ +### +# Copyright 2016 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + + +# -*- coding: utf-8 -*- +"""Automatic Testing for rdmc""" + +import datetime +import json +import os +import platform +import random +import re +import string +import sys +import time +import traceback +from logging import FileHandler +from zipfile import ZipFile + +from six.moves.urllib.request import urlopen, urlretrieve + +try: + from rdmc_helper import ( + HARDCODEDLIST, + CommandNotEnabledError, + Encryption, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidOrNothingChangedSettingsError, + NoChangesFoundOrMadeError, + NoContentsFoundForOperationError, + PathUnavailableError, + ReturnCodes, + ) +except: + from ilorest.rdmc_helper import ( + HARDCODEDLIST, + CommandNotEnabledError, + Encryption, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidOrNothingChangedSettingsError, + NoChangesFoundOrMadeError, + NoContentsFoundForOperationError, + PathUnavailableError, + ReturnCodes, + ) + +from redfish.ris.rmc_helper import IloResponseError + +__error_logfile__ = "automatictesting_error_logfile.log" +__pass_fail__ = "passfail" +__last_line__ = "lastline" + + +def log_decor(func): + """decorator to gather and log traceback while continuing testing""" + + def func_wrap(*args, **kwargs): + """decorator wrapper function""" + try: + func(*args, **kwargs) + except Exception as exp: + if isinstance(exp, dict) or isinstance(exp, list): + # DOES NOT WORK YET. For errors which are captured and gathered before a raise, there + # is no point in showing the DEBUG log. + logging(command=func.__name__, error=exp, logfile_ignore=True) + elif args: + logging(command=func.__name__, error=exp, args=args[0]) + else: + logging(command=func.__name__, error=exp) + else: + logging(command=func.__name__, args=args[0]) + + return func_wrap + + +def logging(command, error=None, args=None, logfile_ignore=False): + """ + handler for logging errors as well as the pass/fail log. + + :param command: string representing the command/function which was tested + :param error: error string (if provided in the event of an exception) + :param args: arguments provided to the command/function which was tested. May need this + for various purposes (file handles, references to objects, references to object attributes) + + """ + debug_ret_err = False + debug_log_errs = [] + data2 = [] + data_passed_failed = {} + lockout = False + pass_flag = True + + error_strs = ["Code:400", "Code:401", "Exception", "EXCEPTION", "Warning", "WARNING"] + if not error: + try: + if args: + if args.rdmc.opts.debug: + for handle in args.rdmc.app.logger.parent.handlers: + if isinstance(handle, FileHandler): + # obtain last 25 lines of the debug log (if '-d' is used) + with open(handle.baseFilename, "rb") as dlfh: + debug_log_errs = tail_debug_log(dlfh, 25) + for line in debug_log_errs: + for err in error_strs: + if err in line: + with open(__last_line__, "r") as ll_file: + tmp_err = ll_file.readline() + if err not in tmp_err: + with open(__last_line__, "w+") as ll_file: + ll_file.write(line) + error = line + pass_flag = False + break + if error: + break + except: + debug_ret_err = True + + error_strs = ["Code:400", "Code:401", "Exception", "EXCEPTION", "Warning", "WARNING"] + if not error: + try: + if args: + if args.rdmc.opts.debug: + for handle in args.rdmc.app.logger.parent.handlers: + if isinstance(handle, FileHandler): + # obtain last 25 lines of the debug log (if '-d' is used) + with open(handle.baseFilename, "rb") as dlfh: + debug_log_errs = tail_debug_log(dlfh, 25) + for line in debug_log_errs: + for err in error_strs: + if err in line: + with open(__last_line__, "r") as ll_file: + tmp_err = ll_file.readline() + if err not in tmp_err: + with open(__last_line__, "w+") as ll_file: + ll_file.write(line) + error = line + pass_flag = False + break + if error: + break + except: + debug_ret_err = True + + try: + fhandle = open(__pass_fail__, "r") + data = fhandle.readlines() + fhandle.close() + for itr in data: + if "Total: " in itr: + data2.append("Total: " + str(int(itr.split(":")[-1].split("\n")[0]) + 1)) + continue + elif "Fail:" in itr and error: + data2.append("Fail: " + str(int(itr.split(":")[-1].split("\n")[0]) + 1)) + data_passed_failed[command] = "'{}' Command - Failed".format(command) + elif "Pass:" in itr and pass_flag: + data2.append("Pass: " + str(int(itr.split(":")[-1].split("\n")[0]) + 1)) + if command not in data_passed_failed: + data_passed_failed[command] = "'{}' Command - Passed".format(command) + elif "Command - " in itr: + resultdata = itr.split("'") + data_passed_failed[(resultdata[1])] = itr + elif not lockout: + lockout = True + data2.append(itr.split("\n")[0]) + except Exception: + sys.stderr.write("An error occurred with Pass/Fail log counter.\n") + data2 = None + pass + finally: + fhandle = open(__pass_fail__, "w+") + for element in data2: + fhandle.writelines(element + "\n") + fhandle.writelines("\n") + for k, v in list(data_passed_failed.items()): + if "\n" in v: + fhandle.writelines(v) + else: + fhandle.writelines(v + "\n") + fhandle.close() + + if error: + sys.stderr.write("An error occurred in: %s - %s\n" % (command, error)) + with open(__error_logfile__, "a+") as fhandle: + fhandle.write("\n" + command + " - Test#: ") + if data[0]: + fhandle.write(str(int(data[0].split(":")[-1].split("\n")[0]) + 1)) + else: + fhandle.write(" 1") + + fhandle.write("\nSimplified Error: " + str(error) + "\n") + # if args: + fhandle.write("\nTraceback:\n------------------------\n") + fhandle.write(str(traceback.format_exc()) + "\n") + if not debug_ret_err and not logfile_ignore: + fhandle.write("\nTail of Debug Logfile:") + fhandle.write("\n------------------------\n") + for item in debug_log_errs: + fhandle.write(item) + fhandle.write("\n------END OF DEBUG------\n") + + +def tail_debug_log(f, lines=1, _buffer=4098): + """Returns last n lines from the filename. + + :param f: filename for 'tail' retrieval + :type f: file handle + :param lines: number of lines to retrieve + :type lines: int + :param _buffer: buffer space for blocks + :type _buffer: bytes + """ + # place holder for the lines found + lines_found = [] + + # block counter will be multiplied by buffer + # to get the block size from the end + block_counter = -1 + + # loop until we find X lines + while len(lines_found) < lines: + try: + f.seek(block_counter * _buffer, os.SEEK_END) + except IOError: # either file is too small, or too many lines requested + f.seek(0) + lines_found = f.readlines() + break + + lines_found = f.readlines() + block_counter -= 1 + + return lines_found[-lines:] + + +class AutomaticTestingCommand: + """Automatic testing class command""" + + def __init__(self): + self.ident = { + "name": "automatictesting", + "usage": None, + "description": "Automatic testing command, not customer facing.", + "summary": "Automatic testing command, not customer facing.", + "aliases": [], + "auxcommands": [ + "LoginCommand", + "LogoutCommand", + "TypesCommand", + "SelectCommand", + "GetCommand", + "ListCommand", + "InfoCommand", + "SetCommand", + "StatusCommand", + "CommitCommand", + "SaveCommand", + "LoadCommand", + "RawDeleteCommand", + "RawHeadCommand", + "RawGetCommand", + "RawPatchCommand", + "RawPutCommand", + "RawPostCommand", + "IscsiConfigCommand", + "FirmwareUpdateCommand", + "IloResetCommand", + "ISToolCommand", + "ResultsCommand", + "BootOrderCommand", + "ServerStateCommand", + "VirtualMediaCommand", + "IloAccountsCommand", + "IloFederationCommand", + "ClearRestApiStateCommand", + "CertificateCommand", + "SigRecomputeCommand", + "ESKMCommand", + "SendTestCommand", + "SingleSignOnCommand", + "ServerlogsCommand", + "AHSdiagCommand", + "SMBiosCommand", + "IloLicenseCommand", + "DeleteComponentCommand", + "DownloadComponentCommand", + "InstallSetCommand", + "ListComponentCommand", + "UpdateTaskQueueCommand", + "UploadComponentCommand", + "HpGooeyCommand", + "PendingChangesCommand", + "ServerInfoCommand", + "MaintenanceWindowCommand", + "FwpkgCommand", + "RebootCommand", + "IPProfilesCommand", + "FirmwareIntegrityCheckCommand", + "SetPasswordCommand", + "BiosDefaultsCommand", + "FwpkgCommand", + "ServerCloneCommand", + "FactoryDefaultsCommand", + "DirectoryCommand", + "SmartArrayCommand", + ], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + self.ret_code = ReturnCodes.SUCCESS + + def run(self, line, help_disp=False): + """Main automatic testing worker function + + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + if sys.platform == "darwin": + raise CommandNotEnabledError("'%s' command is not supported on MacOS" % str(self.name)) + elif "VMkernel" in platform.uname(): + raise CommandNotEnabledError("'%s' command is not supported on VMWare" % str(self.name)) + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.getautomatictestingvalidation(options) + with open(__last_line__, "w+") as ll_file: + ll_file.write("") + with open(__pass_fail__, "w+") as pf_file: + pf_file.write("Total: 0\nPass: 0\nFail: 0\n") + with open(__error_logfile__, "w+") as log_file: + log_file.write("") + + self.rdmc.ui.printer("***************************************************" "******************************\n") + self.rdmc.ui.printer("****************************AUTOMATIC TESTING " "STARTING***************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.options = options + if options.sumtest: + self.testsumcode() + return ReturnCodes.SUCCESS + if options.ahsdiagtest: + self.ahsdiagtesting(options.local) + + # erase iLORest Debug Log (if debugging enabled) + if self.rdmc.opts.debug: + for handle in self.rdmc.app.logger.parent.handlers: + if isinstance(handle, FileHandler): + with open(handle.baseFilename, "w+") as dlfh: + dlfh.write("") + if self.rdmc.config: + if self.rdmc.config._ac__savefile: + self.logfile = self.rdmc.config._ac__savefile + + self.helpmenusautomatictesting() + self.loginautomatictesting() + self.typesandselectautomatictesting(options.local, options.latestschema) + self.getandsetautomatictesting(options.latestschema) + self.saveandloadautomatictesting(options.local, options.latestschema) + self.iscsiautomatictesting() + self.istoolautomatictesting() + self.resultsautomatictesting() + self.bootorderautomatictesting() + self.serverstateautomatictesting() + self.virtualmediaautomatictesting() + self.accountautomatictesting() + self.federationautomatictesting() + self.certificateautomatictesting() + self.eskmautomatictesting() + self.sendtestautomatictesting() + self.ssoautomatictesting() + self.sigrecomputeautomatictesting() + self.serverlogstesting() + self.ilolicensetesting() + self.setbiospasswordautomatictesting(options.local) + self.smbiostesting() + self.cloningautomatictesting() + self.pendingautomatictesting() + self.serverinfoautomatictesting() + self.directoryautomatictesting() + if options.complete: + self.serverclonecommandautomatictesting(options.local) + self.fwpkgcommandautomatictesting() + self.ipprofilesautomatictesting() + self.fwintegritycheckautomatictesting() + self.uploadcomptesting() + self.listcomptesting() + self.updatetaskqueuetesting() + self.installsettesting() + self.maintenancewindowautomatictesting() + self.listanddownloadcomptesting() + self.deletecomptesting() + if options.complete: + self.setbiosdefaultsautomatictesting() # Sets bios default + self.rawautomatictesting(options.local) + if options.complete: + self.smartarrayautomatictesting() + self.firmwareautomatictesting() + + self.rdmc.ui.printer("***************************************************" "******************************\n") + self.rdmc.ui.printer("******************************AUTOMATIC TESTING " "DONE*****************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + # Show PASS/FAIL + with open(__pass_fail__, "r") as fhandle: + data = fhandle.readlines() + self.rdmc.ui.printer("Results are:\n") + for item in data: + if item == "\n": + break + else: + self.rdmc.ui.printer(item) + + self.rdmc.ui.printer("Review logfiles: '%s', '%s',\n" % (__pass_fail__, __error_logfile__)) + + if options.archive: + self.archive_handler(options.archive[0]) + + self.cmdbase.logout_routine(self, options) + # Return code + self.rdmc.ui.printer("\n") + return self.ret_code + + def getautomatictestingvalidation(self, options): + """get inventory validation function + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + @log_decor + def helpmenusautomatictesting(self): + """handler for help menu auto test""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("**********************STARTING HELP MENU AUTOMATIC " "TESTING***********************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + # Argparse will attempt a force exit when using '-h'? Maybe we need to re-add the help + # command again... + # try: + # self.rdmc.run(['--h']) + # except Exception as exp: + # pass + + for command in self.auxcommands: + self.auxcommands[command].run("-h") + self.rdmc.ui.printer( + "\n*********************************************" "************************************\n" + ) + self.rdmc.ui.printer( + "***********************************************" "**********************************\n" + ) + self.rdmc.ui.printer( + "***********************************************" "**********************************\n\n" + ) + + @log_decor + def loginautomatictesting(self): + """handler for login auto test""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("************************STARTING LOGIN AUTOMATIC " "TESTING*************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + loopcount = 10 + + for xint in range(loopcount): + self.rdmc.ui.printer("Login operation counter: %d\n" % xint) + self.auxcommands["login"].loginfunction("") + + self.auxcommands["logout"].logoutfunction("") + self.rdmc.ui.printer("\n") + + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + @log_decor + def typesandselectautomatictesting(self, local, latestschema): + """handler for types and select auto test + + :param local: flag to enable local login + :type local: boolean. + :param latestschema: flag to determine if we should use smart schema. + :type latestschema: boolean. + """ + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*******************STARTING TYPES AND SELECT " "AUTOMATIC TESTING*******************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + if local: + self.auxcommands["login"].loginfunction("") + + typeslist = self.auxcommands["types"].typesfunction("", returntypes=True) + + for item in typeslist: + if item and not item.startswith("Session."): + self.rdmc.ui.printer("Selected option: '%s'\n" % item) + self.auxcommands["select"].selectfunction(item) + self.auxcommands["select"].selectfunction("") + + self.getandinfoautomatictesting(latestschema=latestschema) + + self.rdmc.ui.printer( + "\n*****************************************" "***************************************\n" + ) + self.rdmc.ui.printer( + "*******************************************" "*************************************\n" + ) + self.rdmc.ui.printer( + "*******************************************" "*************************************\n\n" + ) + + self.auxcommands["logout"].logoutfunction("") + + @log_decor + def getandsetautomatictesting(self, latestschema): + """handler for get and set auto test + + :param latestschema: flag to determine if we should use smart schema. + :type latestschema: boolean. + """ + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*********************STARTING GET AND SET AUTOMATIC" " TESTING**********************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].loginfunction("") + self.rdmc.ui.printer("\n") + + if self.rdmc.app.typepath.flagiften: + biosinputlist = [ + "Attributes/BootMode", + "Attributes/MissingItem", + "Attributes/AdminName", + "Attributes/AdminEmail", + "Attributes/AdminPhone", + "Attributes/CustomPostMessage", + "Attributes/ServerAssetTag", + "Attributes/ServerName", + "Attributes/ServerOtherInfo", + "Attributes/ServerPrimaryOs", + "Attributes/ServiceEmail", + "Attributes/ServiceName", + "Attributes/ServiceOtherInfo", + "Attributes/ServicePhone", + ] + else: + biosinputlist = [ + "BootMode", + "MissingItem", + "AdminName", + "AdminEmail", + "AdminPhone", + "CustomPostMessage", + "ServerAssetTag", + "ServerName", + "ServerOtherInfo", + "ServerPrimaryOs", + "ServiceEmail", + "ServiceName", + "ServiceOtherInfo", + "ServicePhone", + ] + + self.setautomatichelper(biosinputlist, "HpBios.", latestschema) + + self.rdmc.ui.printer("\n*************************************************" "*******************************\n") + self.rdmc.ui.printer("***************************************************" "*****************************\n") + self.rdmc.ui.printer("***************************************************" "*****************************\n\n") + + biosinputlist = ["Boot/BootSourceOverrideTarget", "AssetTag"] + self.setautomatichelper(biosinputlist, "ComputerSystem.", latestschema) + + self.rdmc.ui.printer("\n*************************************************" "*******************************\n") + self.rdmc.ui.printer("***************************************************" "*****************************\n") + self.rdmc.ui.printer("***************************************************" "*****************************\n\n") + self.auxcommands["status"].run("") + + self.rdmc.ui.printer("\n*************************************************" "*******************************\n") + self.rdmc.ui.printer("***************************************************" "*****************************\n") + self.rdmc.ui.printer("***************************************************" "*****************************\n\n") + self.auxcommands["commit"].run("") + + @log_decor + def setautomatichelper(self, inputlist, selector, latestschema): + """handler for set auto test + + :param inputlist: list of items to be set. + :type inputlist: list. + :param selector: type to be select for items that will be set. + :type selector: str. + :param latestschema: flag to determine if we should use smart schema. + :type latestschema: boolean. + """ + self.rdmc.ui.printer("STARTING TEST FOR SETTINGS ON '%s'.\n" % selector) + self.auxcommands["select"].selectfunction([selector]) + + for item in inputlist: + listresults = self.auxcommands["get"].getworkerfunction(item, self.options, results=True) + for getresults in listresults: + if getresults and isinstance(getresults[next(iter(getresults))], dict): + for key in getresults: + getresults = getresults[key] + + for key, value in list(getresults.items()): + if key == "BootSourceOverrideTarget": + if value == "None": + randstring = "Cd" + else: + randstring = "None" + else: + randstring = "".join( + random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(10) + ) + + if value == randstring: + value = value[::-1] + + self.rdmc.ui.printer("Setting: '%s'\t\tBefore:'%s'\tAfter:'%s" "'\n" % (key, value, randstring)) + + inputline = item + "=" + randstring + + if latestschema: + inputline += " --latestschema" + + try: + self.auxcommands["set"].run(inputline, skipprint=True) + except: + pass + elif getresults: + for key, value in list(getresults.items()): + randstring = "".join( + random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(10) + ) + + if value == randstring: + value = value[::-1] + + self.rdmc.ui.printer("Setting: '%s'\t\tBefore:'%s'\tAfter:'%s" "'\n" % (key, value, randstring)) + + inputline = key + "=" + randstring + + if latestschema: + inputline += " --latestschema" + + try: + self.auxcommands["set"].run(inputline, skipprint=True) + except: + pass + else: + InvalidCommandLineError("Variable '%s' was not found in the " "current selection.\n" % item) + + @log_decor + def getandinfoautomatictesting(self, item="", latestschema=False, getval=None, already_checked=[]): + """handler for get and info auto test + + :param item: list of items to be set. + :type item: list. + :param latestschema: flag to determine if we should use smart schema. + :type latestschema: boolean. + :param selectitems: list of selected items. + :type selectitems: list. + :param origin: location for current item. + :type origin: str. + :param already_checked: List of keys already checked. + :type already_checked: list. + """ + listdata = self.auxcommands["get"].getworkerfunction(item, self.options, results=True) + if not listdata: + self.rdmc.ui.warn("(GET) No list contents found for section: '%s'\n" % item) + + getdata = self.auxcommands["get"].getworkerfunction(item, self.options, uselist=True, results=True) + if getdata and item and self.rdmc.opts.verbose: + self.rdmc.ui.printer("Contents found for section: '%s'\n" % item) + elif not getdata: + self.rdmc.ui.warn("(LIST) No contents found for section: '%s'\n" % item) + + cline = item + " --latestschema" if latestschema else item + try: + if not self.auxcommands["info"].run(cline, autotest=True): + logging("info", cline, add_traceback=False) + raise KeyError + except: + self.rdmc.ui.warn("(LIST) No info contents found for section: '%s'\n" % cline) + + if not getdata: + return + + getdata = getval if getval is not None or item else getdata + if isinstance(getdata, dict): + for key, val in list(getdata.items()): + if key.lower() in HARDCODEDLIST or key.lower() in already_checked: + continue + key = (item + "/" + key) if item else key + already_checked.append(key) + self.getandinfoautomatictesting( + item=key, + latestschema=latestschema, + getval=val, + already_checked=already_checked, + ) + elif isinstance(getdata, (list, tuple)): + for kii in getdata: + if not isinstance(kii, dict): + continue + for key, val in list(kii.items()): + if key.lower() in HARDCODEDLIST: + continue + key = (item + "/" + key) if item else key + if key in already_checked: + continue + else: + already_checked.append(key) + self.getandinfoautomatictesting( + item=key, + latestschema=latestschema, + getval=val, + already_checked=already_checked, + ) + + @log_decor + def saveandloadautomatictesting(self, local, latestschema): + """handler for save and load auto test + + :param local: flag to enable local login + :type local: boolean. + :param latestschema: flag to determine if we should use smart schema. + :type latestschema: boolean. + """ + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("********************STARTING SAVE AND LOAD " "AUTOMATIC TESTING*********************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + biosinputlist = [ + "AdminName", + "AdminEmail", + "AdminPhone", + "CustomPostMessage", + "ServerAssetTag", + "ServerName", + "ServerOtherInfo", + "ServerPrimaryOs", + "ServiceEmail", + "ServiceName", + "ServiceOtherInfo", + "ServicePhone", + ] + # TODO: Verify the data in file matches server after load + # TODO: Add multi select save/load checking + if local: + self.auxcommands["login"].loginfunction("") + + self.auxcommands["save"].run("--selector=HpBios. -f ilorest.json") + + fileh = open("ilorest.json", "r") + tempholder = fileh.read() + + for item in biosinputlist: + restring = '"' + item + '": ".*?"' + randstring = "".join(random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(10)) + + replacestring = '"' + item + '": "' + randstring + '"' + tempholder = re.sub(restring, replacestring, tempholder, flags=re.DOTALL) + + outfile = open("ilorest.json", "w") + outfile.write(tempholder) + outfile.close() + + self.rdmc.ui.printer("\n") + + if latestschema: + self.auxcommands["load"].run("--latestschema") + else: + self.auxcommands["load"].run("-f ilorest.json") + + self.rdmc.ui.printer("\n") + self.auxcommands["logout"].run("") + + @log_decor + def iscsiautomatictesting(self): + """iscsi automatic testing""" + self.rdmc.ui.printer("***************************************************" "******************************\n") + self.rdmc.ui.printer("*****************STARTING ISCSI CONFIGURATION " "AUTOMATIC TESTING******************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + found = 0 + testfile = None + self.auxcommands["iscsiconfig"].run("") + + try: + self.auxcommands["iscsiconfig"].run("--delete 1") + except: + pass + + self.auxcommands["iscsiconfig"].run("--add [1]") + self.auxcommands["iscsiconfig"].run("--list") + self.auxcommands["iscsiconfig"].run("--list -f TESTFILE") + + try: + testfile = open("TESTFILE") + for line in testfile: + if '"Attempt 1"' in line: + found = 1 + self.rdmc.ui.printer("Output Validated.\n") + break + + if found == 0: + raise NoContentsFoundForOperationError("Change not found.") + except Exception as excp: + raise excp + + try: + testfile.seek(0) + found = 1 + self.auxcommands["iscsiconfig"].run("--delete 1") + self.auxcommands["iscsiconfig"].run("--list -f TESTFILE") + + for line in testfile: + if '"Attempt 1"' in line: + raise NoChangesFoundOrMadeError("Not deleted") + + if found == 0: + self.rdmc.ui.printer("Attempt successfully deleted.\n") + except Exception as excp: + raise excp + + self.auxcommands["logout"].run("") + + @log_decor + def rawautomatictesting(self, local): + """raw commands automatic testing + + :param local: flag to enable local login + :type local: boolean. + """ + if local: + self.auxcommands["login"].loginfunction("") + + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*********************STARTING RAW_COMMANDS " "AUTOMATIC TESTING*********************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["rawhead"].run('"/rest/v1/systems/1" -f TESTFILE') + + try: + testfile = open("TESTFILE") + json.loads(testfile.read()) + except Exception as excp: + raise excp + finally: + testfile.close() + + self.rdmc.ui.printer("json return validated.\n") + self.auxcommands["rawget"].run('"/rest/v1/systems/1/bios/Settings" -f TESTFILE') + + try: + testfile = open("TESTFILE") + json.loads(testfile.read()) + except Exception as excp: + raise excp + finally: + testfile.close() + + self.rdmc.ui.printer("json return validated.\n") + + try: + writefile = open("WRITEFILE", "w") + writefile.write( + '{\n\t"path": "/rest/v1/systems/1/bios/Settings",' '\n\t"body": {\n\t\t"AdminName": "RexySmith"\n\t}\n}' + ) + writefile.close() + + self.auxcommands["rawpatch"].run("WRITEFILE") + self.auxcommands["rawget"].run('"/rest/v1/systems/1/bios/Settings" -f TESTFILE') + testfile = open("TESTFILE") + found = 0 + + for line in testfile: + if '"AdminName"' in line: + if '"RexySmith"' in line: + found = 1 + self.rdmc.ui.printer("json return validated.\n") + break + + if found == 0: + raise NoContentsFoundForOperationError("Change not found.") + + except Exception as excp: + raise excp + + finally: + testfile.close() + + # ******************RAW PUT************************* + try: + writefile = open("WRITEFILE", "w") + if self.rdmc.app.typepath.flagiften: + writefile.write( + '{\n\t"path":"/rest/v1/systems/1/bios/Settings",\n' + '\t"body":{\n\t\t"Attributes":{\n\t\t\t"BaseConfig":' + ' "default"\n\t\t}\n\t}\n}' + ) + else: + writefile.write( + '{\n\t"path": "/rest/v1/systems/1/bios/Settings",\n' + '\t"body":{\n\t\t"BaseConfig": "default"' + "\n\t}\n}" + ) + writefile.close() + + self.auxcommands["rawput"].run("WRITEFILE") + self.auxcommands["rawget"].run('"/rest/v1/systems/1/bios/Settings" -f TESTFILE') + testfile = open("TESTFILE") + found = 0 + + for line in testfile: + if '"BaseConfig"' in line: + if '"default"' in line: + found = 1 + self.rdmc.ui.printer("json return validated\n") + break + + if found == 0: + raise NoContentsFoundForOperationError("Change not found.") + except Exception as excp: + raise excp + finally: + testfile.close() + + # ******************RAW POST************************ + if not local: + try: + writefile = open("WRITEFILE", "w") + + if self.rdmc.app.typepath.flagiften: + writefile.write( + '{\n\t"path": "/redfish/v1/Systems/1/' + 'Actions/ComputerSystem.Reset/",\n\t"body": ' + '{\n\t\t"ResetType": "ForceRestart"\n\t}\n}' + ) + else: + writefile.write( + '{\n\t"path": "/rest/v1/Systems/1",\n' + '\t"body": {\n\t\t"Action": "Reset",' + '\n\t\t"ResetType": "ForceRestart"\n\t}\n}' + ) + + writefile.close() + + self.auxcommands["rawpost"].run("WRITEFILE") + self.rdmc.ui.printer("Waiting for BIOS to reset. See you in 7 mins.\n") + time.sleep(60) + self.rdmc.ui.printer("6 minutes remaining...\n") + time.sleep(60) + self.rdmc.ui.printer("5 minutes remaining...\n") + time.sleep(60) + self.rdmc.ui.printer("4 minutes remaining...\n") + time.sleep(60) + self.rdmc.ui.printer("3 minutes remaining...\n") + time.sleep(60) + self.rdmc.ui.printer("2 minutes remaining...\n") + time.sleep(60) + self.rdmc.ui.printer("1 minute remaining...\n") + time.sleep(60) + + self.auxcommands["rawget"].run('"/rest/v1/systems/1/bios/Settings" -f TESTFILE') + testfile = open("TESTFILE") + found = 0 + + # may error if bios don't update upon restart + for line in testfile: + if '"AdminEmail"' in line: + if '""' in line: + found = 1 + self.rdmc.ui.printer("reset validated\n") + break + + if found == 0: + raise NoContentsFoundForOperationError("Change not found.") + except Exception as excp: + raise excp + finally: + testfile.close() + + # ******************RAW DELETE********************** + self.auxcommands["rawget"].run('"/rest/v1/Sessions" -f TESTFILE') + + try: + testfile = open("TESTFILE") + next_item = False + + for line in testfile: + if next_item: + session = line + break + + if '"MySession":' in line and '"MySession": false' not in line and '"MySession": true' not in line: + next_item = True + + session = session.split('"') + + for item in session: + if "/Sessions/" in item: + session = '"%s"' % item + break + except Exception as excp: + raise excp + finally: + testfile.close() + + try: + self.auxcommands["rawdelete"].run(session) + self.rdmc.ui.printer("Session Deleted\n") + except Exception as excp: + raise excp + + ''' Rework to configure firmware update test. + @log_decor + def firmwareautomatictesting(self): + """ firmware update automatic testing """ + + self.rdmc.ui.printer("\n*************************************************" \ + "********************************\n") + self.rdmc.ui.printer("*********************SKIPING FIRMWARE " \ + "AUTOMATIC TESTING***************************\n") + self.rdmc.ui.printer("***************************************************" \ + "******************************\n\n") + + fw_url = "http://infinitymaster.us.rdlabs.hpecorp.net:1051/automatic_testing/components"\ + "/FIRMWARE/blah" + tmp = urlopen(fw_url) + rom_url = fw_url + "/ROM/" + ilo_url = fw_url + "/iLO/" + +# rom_fw_dict = [] +# ilo_fw_dict = [] + + rom_fw_arr = self.automatictesting_helper_fb(rom_url) +# ilo_fw_arr = self.automatictesting_helper_fb(ilo_url) + + try: + for i in rom_fw_arr: + #tmparr = path.split('/') + #urlretrieve(fw_url + path, tmparr[-1]) + (fmw, _) = urlretrieve(rom_url + i, i) + self.auxcommands['flashfwpkg'].run(fmw + ' --forceupload --ignorechecks') + + except Exception as excp: + self.rdmc.ui.printer("A General Error Occured: %s" %excp) + block = True + + #self.auxcommands['login'].run("") + +# if local: +# return + +# self.auxcommands['login'].run("") +# tests = {'rom': [], 'firmware': firmware} +# (romfamily, _) = self.rdmc.app.getbiosfamilyandversion() + +# for version in rom: +# if romfamily.lower() in version.lower(): +# tests['rom'].append(version) + +# for test in tests: +# for link in tests[test]: +# counter = 0 +# keep_going = True + +# self.auxcommands['logout'].run("") +# self.auxcommands['login'].run("") +# self.auxcommands['firmwareupdate'].run(link) + +# if test == 'rom': +# self.auxcommands['login'].run("") +# self.auxcommands['iloreset'].run("") + +# self.rdmc.ui.printer("Waiting for iLO...\n") +# time.sleep(60) +# self.rdmc.ui.printer("1 minute remaining...\n") +# time.sleep(60) + +# while keep_going: +# try: +# if counter > 50: +# raise + +# counter += 1 +# keep_going = False +# self.auxcommands['login'].run("") +# except Exception as excp: +# if counter > 50: +# raise excp +# else: +# keep_going = True + + ''' + + @log_decor + def istoolautomatictesting(self): + """istool automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*********************STARTING ISTOOL " "AUTOMATIC TESTING***************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].run("") + self.auxcommands["istool"].run("") + self.auxcommands["logout"].run("") + + @log_decor + def resultsautomatictesting(self): + """results automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*********************STARTING RESULTS " "AUTOMATIC TESTING**************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].run("") + self.auxcommands["results"].run("") + self.auxcommands["logout"].run("") + + @log_decor + def bootorderautomatictesting(self): + """boot order automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*********************STARTING BOOT ORDER " "AUTOMATIC TESTING***********************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + try: + self.auxcommands["bootorder"].run("--disablebootflag --commit") + except: + pass + + self.auxcommands["bootorder"].run("[5,4,3,2,1]") + self.auxcommands["logout"].run("") + + self.auxcommands["bootorder"].run("--onetimeboot=Cd") + self.auxcommands["commit"].run("") + btype, target = self.bootorderhelper() + + if not btype == "Once" or not target == "Cd": + raise InvalidOrNothingChangedSettingsError + + self.auxcommands["bootorder"].run("--onetimeboot=Hdd") + self.auxcommands["bootorder"].run("--continuousboot=Hdd --commit") + btype, target = self.bootorderhelper() + + if not btype == "Continuous" or not target == "Hdd": + raise InvalidOrNothingChangedSettingsError + + # self.auxcommands['bootorder'].run("--onetimeboot=Cd") + # self.auxcommands['bootorder'].run("--continuousboot=Hdd") + # self.auxcommands['bootorder'].run("--disablebootflag --commit") + # btype, target = self.bootorderhelper() + # + # if not btype == 'Disabled' or not target == 'None': + # raise InvalidOrNothingChangedSettingsError + + self.auxcommands["bootorder"].run("--disablebootflag") + # try: + # self.auxcommands['bootorder'].run("--disablebootflag") + # except: + # self.rdmc.ui.printer("Entry is the current boot setting.\n") + + self.auxcommands["logout"].run("") + + self.auxcommands["login"].run("") + self.auxcommands["bootorder"].run("--securebootkeys=deletepk") + self.auxcommands["logout"].run("") + + self.auxcommands["login"].run("") + self.auxcommands["bootorder"].run("--securebootkeys=defaultkeys") + self.auxcommands["logout"].run("") + + self.auxcommands["login"].run("") + self.auxcommands["bootorder"].run("--securebootkeys=deletekeys") + self.auxcommands["logout"].run("") + + @log_decor + def bootorderhelper(self): + """boot order helper for automatic testing""" + self.auxcommands["login"].run("") + results = self.rdmc.app.get_handler(self.rdmc.app.typepath.defs.systempath, service=True, silent=True) + + btype = results.dict["Boot"]["BootSourceOverrideEnabled"] + target = results.dict["Boot"]["BootSourceOverrideTarget"] + + return btype, target + + @log_decor + def serverstateautomatictesting(self): + """server state automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*********************SERVER STATE " "AUTOMATIC TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].run("") + self.auxcommands["serverstate"].run("") + self.auxcommands["logout"].run("") + + @log_decor + def virtualmediaautomatictesting(self): + """virtual media automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*********************VIRTUAL MEDIA " "AUTOMATIC TESTING*****************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + return + + self.auxcommands["login"].run("") + self.auxcommands["virtualmedia"].run("") + + try: + self.auxcommands["virtualmedia"].run("2 --remove") + except: + pass + + # Needs to be updated + self.auxcommands["virtualmedia"].run("2 http://10.0.0.1/vm.iso --bootnextreset") + results = self.rdmc.app.get_handler("/rest/v1/Managers/1/VirtualMedia/2", service=True, silent=True).dict + + if not results["Inserted"] or not results["Oem"][self.rdmc.app.typepath.defs.oemhp]["BootOnNextServerReset"]: + raise InvalidOrNothingChangedSettingsError("VM not found.") + + self.auxcommands["virtualmedia"].run("2 --remove") + + results = self.rdmc.app.get_handler("/rest/v1/Managers/1/VirtualMedia/2", service=True, silent=True).dict + + if results["Inserted"] or results["Oem"][self.rdmc.app.typepath.defs.oemhp]["BootOnNextServerReset"]: + raise InvalidOrNothingChangedSettingsError("VM not removed.") + + self.auxcommands["logout"].run("") + + @log_decor + def accountautomatictesting(self): + """iLO manager account automatic testing""" + """ - add, modify privs, changepass, delete""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("**************************ACCOUNT " "AUTOMATIC TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].run("") + self.auxcommands["iloaccounts"].run("") + errors = [] + priv_dict = { + "LoginPriv": 1, + "RemoteConsolePriv": 2, + "UserConfigPriv": 3, + "iLOConfigPriv": 4, + "VirtualMediaPriv": 4, + "VirtualPowerAndResetPriv": 5, + "HostNICConfigPriv": 6, + "HostBIOSConfigPriv": 7, + "HostStorageConfigPriv": 9, + "SystemRecoveryConfigPriv": 7, + } + for i in range(5): + randname = "".join(random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(6)) + accid = None + rand_privs = random.sample(priv_dict, 3) + rand_priv_str = "--addprivs " + for rp in enumerate(rand_privs): + if rp[1] == "SystemRecoveryConfigPriv": + continue + elif rp[0] == (len(rand_privs) - 1): + rand_priv_str += str(priv_dict[rp[1]]) + else: + rand_priv_str += str(priv_dict[rp[1]]) + "," + acct_str = "add " + randname + " " + randname + " testpassword " + rand_priv_str + try: + self.auxcommands["iloaccounts"].run(acct_str) + except Exception as excp: + if "rand_priv" in locals(): + errors.append("Unable to create account '{}', " "'{}': {}".format(randname, acct_str, str(excp))) + + results = self.rdmc.app.get_handler( + self.rdmc.app.typepath.defs.accountspath, service=True, silent=True + ).dict[self.rdmc.app.typepath.defs.collectionstring] + + if "Id" not in list(results[0].keys()): + newresults = [] + + for acct in results: + acct = self.rdmc.app.get_handler( + acct[self.rdmc.app.typepath.defs.hrefstring], + service=True, + silent=True, + ).dict + newresults.append(acct) + + results = newresults + + for acct in results: + if acct["Oem"][self.rdmc.app.typepath.defs.oemhp]["LoginName"] != randname: + continue + else: + self.rdmc.ui.printer("Created account found.\n") + accid = acct["Id"] + privs = acct["Oem"][self.rdmc.app.typepath.defs.oemhp]["Privileges"] + try: + rand_priv = next(iter(random.sample(privs, 1))) + privstr = "" + if privs[rand_priv]: + privstr = "--removeprivs=" + str(priv_dict[rand_priv]) + else: + privstr = "--addprivs=" + str(priv_dict[rand_priv]) + self.auxcommands["iloaccounts"].run("modify " + randname + " " + privstr) + except Exception as excp: + if "rand_priv" in locals(): + errors.append( + "Unable to modify privilege '{}' for account " + "'{}': {}".format(rand_priv, randname, str(excp)) + ) + else: + errors.append( + "Unable to retrieve privileges for account '{}' " ": {}".format(randname, excp) + ) + break + self.auxcommands["iloaccounts"].run("changepass " + randname + " newpassword") + self.auxcommands["iloaccounts"].run("delete " + accid) + + if not accid: + raise NoChangesFoundOrMadeError("Created account not found.") + + self.auxcommands["logout"].run("") + if errors: + raise Exception("The following errors occurred while testing accounts: %s" % errors) + + @log_decor + def federationautomatictesting(self): + """federation automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*********************ADDFEDERATION " "AUTOMATIC TESTING*****************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].run("") + self.auxcommands["ilofederation"].run("") + + redfish = self.rdmc.app.monolith.is_redfish + randname = "".join(random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(6)) + foundfed = False + + self.auxcommands["ilofederation"].run("add " + randname + " password") + self.auxcommands["ilofederation"].run("") + + path = self.rdmc.app.typepath.defs.federationpath + results = self.rdmc.app.get_handler(path, service=True, silent=True).dict + + if redfish: + results = results["Members"] + else: + results = results["links"]["Member"] + + newresults = [] + for fed in results: + fed = self.rdmc.app.get_handler(fed[self.rdmc.app.typepath.defs.hrefstring], service=True, silent=True).dict + + newresults.append(fed) + results = newresults + + for fed in results: + if fed["Id"] == randname: + self.rdmc.ui.printer("Created federation found.\n") + foundfed = True + break + + if not foundfed: + raise NoChangesFoundOrMadeError("Created federation not found.") + + self.auxcommands["ilofederation"].run("changekey " + randname + " newpassword") + self.auxcommands["ilofederation"].run("delete " + randname) + self.auxcommands["logout"].run("") + + @log_decor + def serverlogstesting(self): + """server logs automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*********************STARTING SERVERLOGS " "AUTOMATIC TESTING***********************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].loginfunction("") + self.auxcommands["serverlogs"].run("--selectlog=IEL -f IELlog.txt") + self.auxcommands["serverlogs"].run("--selectlog=IML -f IMLlog.txt") + self.auxcommands["serverlogs"].run("--selectlog=AHS --downloadallahs") + self.auxcommands["serverlogs"].run("--selectlog=AHS --clearlog") + self.auxcommands["serverlogs"].run("--selectlog=IEL --clearlog") + self.auxcommands["serverlogs"].run("--selectlog=IML --clearlog") + + self.auxcommands["logout"].run("") + + @log_decor + def ahsdiagtesting(self, local): + """ahs diags automatic testing""" + if local and os.name != "nt": + self.rdmc.ui.printer( + "\n*********************************************" "************************************\n" + ) + self.rdmc.ui.printer( + "*********************STARTING AHSDIAG " "AUTOMATIC TESTING**************************\n" + ) + self.rdmc.ui.printer( + "***********************************************" "**********************************\n\n" + ) + pass + + self.auxcommands["login"].loginfunction("") + self.auxcommands["ahsdiag"].run("--WriteSignPost") + self.auxcommands["ahsdiag"].run( + "--WriteMarkerPost --instance 1 --markervalue" ' 3 --markertext "Automatictesting"' + ) + + self.auxcommands["logout"].run("") + + @log_decor + def crapistesting(self): + """clear rest api automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*********************CLEARRESTAPI " "AUTOMATIC TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["clearrestapistate"].run("") + + if self.rdmc.app.monolith.is_redfish: + path = "/redfish/v1/registries/" + else: + path = "/rest/v1/registries" + + results = self.rdmc.app.get_handler(path, service=True, silent=True).dict + + for item in results[self.rdmc.app.typepath.dict.collectionstring]: + if "attributereg" in item[self.rdmc.app.typepath.defs.hrefstring]: + raise NoChangesFoundOrMadeError("No changes found.") + + self.auxcommands["logout"].run("") + + @log_decor + def certificateautomatictesting(self): + """generate csr automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*******************SSO AND TLS CERTIFICATE " "AUTOMATIC TESTING*********************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + error_dict = dict() + delete_items = list() + + url_path = "http://infinitymaster.us.rdlabs.hpecorp.net:1051/automatic_testing/x509_certs/" + + orgname = " HPE" + orgunit = " _iLOrest_Team" + commonname = " JustSomeGuys" + country = " USA" + state = " Tejas" + city = " Houston" + + self.auxcommands["login"].run("") + self.auxcommands["certificate"].run("csr" + orgname + orgunit + commonname + country + state + city) + + for item in self.automatictesting_helper_fb(url_path): + fld = urlopen(url_path + item) + data = fld.read() + with open(item, "w+b") as certfile: + certfile.write(data) + delete_items.append(item) + try: + self.auxcommands["certificate"].run("tls " + item) + except Exception: + error_dict[file] = "tls " + item + self.rdmc.ui.printer( + "iLO flagged an error while uploading the" " TLS certificate file to iLO: %s\n" % item + ) + + try: + self.auxcommands["singlesignon"].run("importcert " + item) + except Exception: + error_dict[file] = "tls " + item + self.rdmc.ui.printer( + "iLO flagged an error while uploading the" " SSO certificate file to iLO: %s\n" % item + ) + + self.automatictesting_helper_fd(delete_items) + self.auxcommands["logout"].run("") + + if error_dict: + try: + raise ValueError + except ValueError as err: + if not err.args: + err.args = ("iLO flagged an error with components: ",) + for item in error_dict: + err.args = err.args + ("Component: %s, Full String: %s" % (item, error_dict[item]),) + raise + + @log_decor + def eskmautomatictesting(self): + """eskm automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*************************ESKM " "AUTOMATIC TESTING**********************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + pass + + self.auxcommands["login"].run("") + self.auxcommands["eskm"].run("testconnections") + self.auxcommands["eskm"].run("clearlog") + self.auxcommands["logout"].run("") + + @log_decor + def sigrecomputeautomatictesting(self): + """sigrecompute automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*********************SIGRECOMPUTE " "AUTOMATIC TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].run("") + + try: + self.auxcommands["sigrecompute"].run("") + except IncompatibleiLOVersionError: + self.rdmc.ui.printer("Server is redfish. Skipping sigrecompute.\n") + + self.auxcommands["logout"].run("") + + @log_decor + def sendtestautomatictesting(self): + """results automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*************************SENDTEST " "AUTOMATIC TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + self.auxcommands["login"].run("") + try: + self.auxcommands["select"].run(self.rdmc.app.typepath.defs.snmpservice) + self.auxcommands["select"].run(self.rdmc.app.typepath.defs.managernetworkservicetype) + except: + self.rdmc.ui.printer("Skipping sendtest testing, resource not available.\n") + self.auxcommands["logout"].run("") + return + + try: + # setup for snmpalert + # set SNMPAlertProtocol=SNMPv1Trap + self.auxcommands["select"].run(self.rdmc.app.typepath.defs.snmpservice) + self.auxcommands["set"].run("AlertsEnabled=true") + self.auxcommands["set"].run("AlertDestinations=[testdns.newdnststr] --commit") + except: + pass + + try: + # setup for alertmail + # {"Oem": { "Hpe":{"AlertMailEnabled": true, "AlertMailEmail": "bob@bob.bob", + # "AlertMailSenderDomain": "domain", "AlertMailSMTPServer": "1.35.35.35"}}} + self.auxcommands["select"].run(self.rdmc.app.typepath.defs.managernetworkservicetype) + + if self.rdmc.app.typepath.flagiften: + oem = "Oem/Hpe" + else: + oem = "Oem/Hp" + + self.auxcommands["set"].run( + oem + + "/AlertMailEmail=test@test.test " + + oem + + "/AlertMailEnabled=True " + + oem + + "/AlertMailSMTPServer=testserver.test.test " + + oem + + "/AlertMailSenderDomain=testdomain.test.test --commit" + ) + except: + pass + + try: + # setup for syslog + self.auxcommands["select"].run(self.rdmc.app.typepath.defs.managernetworkservicetype) + self.auxcommands["set"].run( + oem + "/RemoteSyslogServer=testserver.test.svrtest " + oem + "/RemoteSyslogEnabled=True --commit" + ) + except: + pass + + self.auxcommands["login"].run("") + + self.auxcommands["sendtest"].run("syslog") + self.auxcommands["sendtest"].run("alertmail") + self.auxcommands["sendtest"].run("snmpalert") + + self.auxcommands["logout"].run("") + + @log_decor + def ssoautomatictesting(self): + """sso automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*********************SINGLESIGNON " "AUTOMATIC TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].run("") + self.auxcommands["singlesignon"].run("importdns newdnsname.dnstest") + self.auxcommands["singlesignon"].run("deleterecord 1") + self.auxcommands["singlesignon"].run("importdns newdnsname.dnstest") + self.auxcommands["singlesignon"].run("deleterecord all") + + self.auxcommands["logout"].run("") + + @log_decor + def ilolicensetesting(self): + """iLO license automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("***********************ILOLICENSE " "AUTOMATIC TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].run("") + + try: + self.auxcommands["ilolicense"].run("xx-xx-xx-xx") + except IloResponseError: + pass + + self.auxcommands["logout"].run("") + + @log_decor + def smbiostesting(self): + """smbios automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("***************************SMBIOS " "AUTOMATIC TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + if self.rdmc.app.typepath.flagiften: + self.auxcommands["login"].run("") + self.auxcommands["smbios"].run("smbios") + self.auxcommands["logout"].run("") + else: + self.rdmc.ui.printer("Skipping smbios testing, server not gen10.\n") + + @log_decor + def directoryautomatictesting(self): + """Directory command automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*************************DIRECTORY " "AUTOMATIC TESTING*****************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.rdmc.ui.printer("Testing settings output.\n") + self.auxcommands["directory"].run("kerberos") + self.auxcommands["directory"].run("ldap") + self.auxcommands["directory"].run("kerberos -j") + self.auxcommands["directory"].run("ldap -j") + + self.rdmc.ui.printer("Testing setting properties.\n") + self.auxcommands["directory"].run("kerberos --serviceaddress test.account --port 1337 --realm " "testrealm") + self.auxcommands["directory"].run("ldap testusername testpassword --enable") + self.auxcommands["directory"].run( + "ldap --serviceaddress test2.account --addsearch autotestsearch," "autotestsearch2" + ) + + self.rdmc.ui.printer("Testing adding roles.\n") + self.auxcommands["directory"].run( + 'kerberos --addrole "Administrator:a test,' 'ReadOnly:another test" --disable' + ) + + self.rdmc.ui.printer("Validating changes...\n") + + results = self.rdmc.app.select(selector="AccountService.", path_refresh=True)[0].dict + + if results["LDAP"]["Authentication"]["Username"] == "testusername": + self.rdmc.ui.printer("Validated Username.\n") + else: + sys.stderr.write("Username not changed.\n") + if ( + results["ActiveDirectory"]["ServiceAddresses"][0] == "test.account:1337" + and results["LDAP"]["ServiceAddresses"][0] == "test2.account" + ): + self.rdmc.ui.printer("Validated Service addresses.\n") + else: + sys.stderr.write("Service addresses not changed.\n") + raise IloResponseError("") + if ( + results["Oem"]["Hpe"]["DirectorySettings"]["LdapServerPort"] == 55 + and results["Oem"]["Hpe"]["KerberosSettings"]["KDCServerPort"] == 1337 + ): + self.rdmc.ui.printer("Validated Ports.\n") + else: + sys.stderr.write("Ports not changed.\n") + raise IloResponseError("") + if results["Oem"]["Hpe"]["KerberosSettings"]["KerberosRealm"] == "testrealm": + self.rdmc.ui.printer("Validated Realm.\n") + else: + sys.stderr.write("Realm not changed.\n") + raise IloResponseError("") + if ( + "autotestsearch" in results["LDAP"]["LDAPService"]["SearchSettings"]["BaseDistinguishedNames"] + and "autotestsearch2" in results["LDAP"]["LDAPService"]["SearchSettings"]["BaseDistinguishedNames"] + ): + self.rdmc.ui.printer("Validated SearchSettings.\n") + else: + sys.stderr.write("SearchSettings not changed.\n") + if results["LDAP"]["ServiceEnabled"] and not results["ActiveDirectory"]["ServiceEnabled"]: + self.rdmc.ui.printer("Validated ServiceEnabled.\n") + else: + sys.stderr.write("Service not enabled/disabled.\n") + raise IloResponseError("") + rolecount = 0 + for role in results["LDAP"]["RemoteRoleMapping"]: + if role["RemoteGroup"] == "a test" or role["RemoteGroup"] == "another test": + rolecount += 1 + if rolecount == 2: + self.rdmc.ui.printer("Validated Role mappings.\n") + else: + sys.stderr.write("Remote roles not changed.\n") + raise IloResponseError("") + + self.rdmc.ui.printer("Removing changes...\n") + self.auxcommands["directory"].run('kerberos --serviceaddress "" --realm ""') + self.auxcommands["directory"].run( + 'ldap --serviceaddress "" --disable --removesearch ' "autotestsearch,autotestsearch2" + ) + self.auxcommands["directory"].run('ldap --removerole "dirgroupa test,dirgroupanother test"') + + self.rdmc.ui.printer("Validating removal.\n") + + results = self.rdmc.app.select(selector="AccountService.", path_refresh=True)[0].dict + + if not results["LDAP"]["ServiceEnabled"]: + self.rdmc.ui.printer("Validated Service disabled.\n") + else: + sys.stderr.write("Service not disabled.\n") + raise IloResponseError("") + if not results["ActiveDirectory"]["ServiceAddresses"][0] and not results["LDAP"]["ServiceAddresses"][0]: + self.rdmc.ui.printer("Validated Service addresses.\n") + else: + sys.stderr.write("Service addresses not removed.\n") + raise IloResponseError("") + if not results["Oem"]["Hpe"]["KerberosSettings"]["KerberosRealm"]: + self.rdmc.ui.printer("Validated Realm.\n") + else: + sys.stderr.write("Realm not removed.\n") + raise IloResponseError("") + if ( + not "autotestsearch" in results["LDAP"]["LDAPService"]["SearchSettings"]["BaseDistinguishedNames"] + and not "autotestsearch2" in results["LDAP"]["LDAPService"]["SearchSettings"]["BaseDistinguishedNames"] + ): + self.rdmc.ui.printer("Validated SearchSettings.\n") + else: + sys.stderr.write("SearchSettings not removed.\n") + raise IloResponseError("") + rolecount = 0 + for role in results["LDAP"]["RemoteRoleMapping"]: + if role["RemoteGroup"] == "a test" or role["RemoteGroup"] == "another test": + rolecount += 1 + if rolecount == 0: + self.rdmc.ui.printer("Validated Role mappings.\n") + else: + sys.stderr.write("Remote roles not removed.\n") + raise IloResponseError("") + + @log_decor + def serverclonecommandautomatictesting(self, local): + """copy command automatic testing""" + + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("**************************SERVER CLONE " "AUTOMATIC TESTING*************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + ue_clone_file_name = "ilorest_clone_ue.json" + enc_clone_file_name = "ilorest_clone_enc.json" + delete_list = [ue_clone_file_name, enc_clone_file_name] + error = {} + + self.auxcommands["login"].loginfunction("") + try: + self.rdmc.ui.printer("Testing 'save' operation (unencrypted)...\n") + line_str = "save --nobios --silent -f " + ue_clone_file_name + self.auxcommands["serverclone"].run(line_str) + + self.rdmc.ui.printer("Testing 'load' operation (unencrypted)...\n") + line_str = "load --silent -f " + tmp_file = self.serverclone_helper(ue_clone_file_name, line_str) + delete_list.append(tmp_file) + self.auxcommands["serverclone"].run(line_str + tmp_file) + self.rdmc.ui.printer("Unencrypted Clone Test Complete\n") + + except Exception as excp: + self.rdmc.ui.printer("Unencrypted Clone Test Failed\n") + with open("clone_error_logfile.log", "r") as err_logfile: + error_log = err_logfile.read() + with open("changelog.log", "r") as chng_logfile: + try: + chng_log = json.loads(chng_logfile.read()) + except ValueError: + chng_log = chng_logfile.read() + error["unencrypted_clone"] = { + "base_error": "An error occurred working with serverclone unencrypted save/load: {}".format(excp), + "command": line_str + tmp_file, + "traceback": traceback.format_exc(), + "clone_error_logfile": error_log, + "change_log": chng_log, + } + + try: + self.rdmc.ui.printer("Testing 'save' operation (encrypted)...\n") + line_str = "save --encryption HPESecretAESKey1 --silent --nobios -f " + enc_clone_file_name + self.auxcommands["serverclone"].run(line_str) + + self.rdmc.ui.printer("Testing 'load' operation (encrypted)...\n") + line_str = "load --silent --encryption HPESecretAESKey1 -f " + tmp_file = self.serverclone_helper(enc_clone_file_name, line_str) + delete_list.append(tmp_file) + self.auxcommands["serverclone"].run(line_str) + self.rdmc.ui.printer("Encrypted Clone Test Complete\n") + + except Exception as excp: + self.rdmc.ui.printer("Encrypted Clone Test Failed\n") + with open("clone_error_logfile.log", "r") as err_logfile: + error_log = err_logfile.read() + with open("changelog.log", "r") as chng_logfile: + try: + chng_log = json.loads(chng_logfile.read()) + except ValueError: + chng_log = chng_logfile.read() + error["encrypted_clone"] = { + "base_error": "An error occurred working with serverclone unencrypted save/load: {}".format(excp), + "command": line_str + tmp_file, + "traceback": traceback.format_exc(), + "clone_error_logfile": error_log, + "change_log": chng_log, + } + + """ #DO NOT OPEN UNTIL CHRISTMAS (Ok maybe earlier) + self.rdmc.ui.printer("Attempting load of clone files from NFS server...\n") + for item in self.automatictesting_helper_fb(url_path): + f_name = "" + clone_file = urlopen(url_path + item) + data = clone_file.read() + with open(item, 'w+b') as target: + target.write(data) + if isinstance(item, six.string_types): + f_name += item + delete_list.append(f_name) + self.auxcommands['serverclone'].run("load --silent -f " + f_name) + + self.rdmc.ui.printer("Test Complete...cleaning up.\n") + """ + + try: + err_list, err_str = self.automatictesting_helper_fd(delete_list) + if err_list: + raise Exception(err_str) + except Exception as excp: + error["delete_cfs"] = "An error occurred deleting clone files: '%s'" % str(excp) + + if error: + raise Exception("The following exceptions occured in ServerClone:\n {}".format(error)) + + @log_decor + def cloningautomatictesting(self): + """cloning automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("**************************CLONING " "AUTOMATIC TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + if not self.rdmc.app.typepath.flagiften: + self.rdmc.ui.printer("Skipping iloclone command, server is not gen10.\n") + return ReturnCodes.SUCCESS + + self.auxcommands["login"].run("") + self.cloneobj.run("save -f CLONETEST.json", testing=True) + self.auxcommands["logout"].run("") + self.auxcommands["login"].run("") + self.cloneobj.run("load -f CLONETEST.json", testing=True) + self.auxcommands["logout"].run("") + + @log_decor + def pendingautomatictesting(self): + """pending automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("**************************PENDING " "AUTOMATIC TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].run("") + self.auxcommands["pending"].run("") + self.auxcommands["logout"].run("") + + @log_decor + def deletecomtesting(self): + """Delete component command testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*************************DELETE " "COMPONENT TESTING******************************\n") + self.rdmc.ui.printer( + "***************************************************" "********************************\n\n" + ) + + self.auxcommands["login"].run("") + + if not self.rdmc.app.typepath.flagiften: + self.rdmc.ui.printer("Skipping delete component command, server is not gen10.\n") + return ReturnCodes.SUCCESS + + self.auxcommands["deletecomp"].run("-a") + self.auxcommands["logout"].run("") + + @log_decor + def uploadcomptesting(self): + """Upload component command testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("***************************UPLOAD " "COMPONENT TESTING******************************\n") + self.rdmc.ui.printer("*************************************************" "********************************\n\n") + + error_dict = dict() + self.auxcommands["login"].run("") + url_path = "http://infinitymaster.us.rdlabs.hpecorp.net:1051/automatic_testing/components" "/COMPONENTS/" + + if not self.rdmc.app.typepath.flagiften: + self.rdmc.ui.printer("Skipping upload component command, server is not gen10.\n") + return ReturnCodes.SUCCESS + + # skip = False + # compname = "cp029917.exe" + # compsigname_1 = "cp029917_part1.compsig" + # compsigname_2 = "cp029917_part2.compsig" + # compnamepath = os.path.join(os.getcwd(), compname) + # compsigname_1path = os.path.join(os.getcwd(), compsigname_1) + # compsigname_2path = os.path.join(os.getcwd(), compsigname_2) + + components_dict = self.automatictesting_helper_fb(url_path, True) + delete_list = [] + for _, val in list(components_dict.items()): + compy = None + try: + uploadstr = "" + for file in val: + if len(file.split(".")) <= 2: + tmparr = file.split(".") + fld = urlopen(url_path + file) + data = fld.read() + with open(file, "w+b") as target: + target.write(data) + delete_list.append(file) + if "compsig" in tmparr[-1]: + uploadstr += " --compsig=" + else: + uploadstr += " --component=" + compy = file + uploadstr += file + + self.auxcommands["uploadcomp"].run(uploadstr + " --forceupload") + + except Exception: + error_dict[compy] = uploadstr + self.rdmc.ui.printer("iLO flagged an error while uploading the" " previous files: %s\n" % uploadstr) + self.rdmc.ui.printer("Check for correct file type and compsig.\n") + continue + + # cleanup routine + self.automatictesting_helper_fd(delete_list) + + if error_dict: + try: + raise ValueError + except ValueError as err: + if not err.args: + err.args = ("iLO flagged an error with components: ",) + for item in error_dict: + err.args = err.args + ("Component: %s, Full String: %s" % (item, error_dict[item]),) + raise + + # try: + # if not os.path.isfile(compnamepath): + # (compname, _) = urlretrieve("http://infinitymaster:81"\ + # "/automatic_testing/" \ + # + compname, compname) + # + # if not os.path.isfile(compsigname_1path): + # (compsigname_1, _) = urlretrieve(\ + # "http://16.83.62.70/jack/" + compsigname_1, compsigname_1) + # + # if not os.path.isfile(compsigname_2path): + # (compsigname_2, _) = urlretrieve(\ + # "http://16.83.62.70/jack/" + compsigname_2, compsigname_2) + # except: + # skip = True + # + # if not skip: + # self.auxcommands['uploadcomp'].run("--component={0} --compsig={1} " \ + # "--forceupload".format(compname, compsigname_1)) + # #self.auxcommands['uploadcomp'].run("--component=firmware-nic-qlogic-nx2-2." \ + # # "19.6-1.1.x86_64.rpm --compsig=firmware-" \ + # # "nic-qlogic-nx2-2.19.6-1.1.x86_64.compsig") + # + # self.auxcommands['logout'].run("") + # else: + # self.rdmc.ui.printer("Could not complete test due to missing test " \ + # "files.\n") + + @log_decor + def listanddownloadcomptesting(self): + """List and Download component command testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*************************DOWNLOAD " "COMPONENT TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + delete_list = list() + if not self.rdmc.app.typepath.flagiften: + self.rdmc.ui.printer("Skipping download component command, server is not gen10.\n") + return ReturnCodes.SUCCESS + + self.auxcommands["login"].run("") + + self.rdmc.ui.printer("Components found in iLO Repository:\n\n") + self.auxcommands["listcompt"].run("") + comps = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/ComponentRepository/") + + for item in comps: + uri_str = "" + uri_str += "/fwrepo/" + item["Filename"] + self.rdmc.ui.printer("Downloading component: '%s'.\n" % item["Filename"]) + self.auxcommands["downloadcomp"].run(uri_str) + self.rdmc.ui.printer("Successfully downloaded '%s' from iLO " "Repository.\n" % item["Filename"]) + delete_list.append(item["Filename"]) + + self.rdmc.ui.printer("Test Complete...cleaning up.\n") + self.automatictesting_helper_fd(delete_list) + self.auxcommands["logout"].run("") + return ReturnCodes.SUCCESS + + @log_decor + def deletecomptesting(self): + """Delete from component repository testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("***************************DELETE " "COMPONENT TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + return + + if not self.rdmc.app.typepath.flagiften: + self.rdmc.ui.printer("Skipping download component command, server is not gen10.\n") + return ReturnCodes.SUCCESS + + self.auxcommands["login"].run("") + self.rdmc.ui.printer("Components found in iLO Repository:\n\n") + self.auxcommands["listcompt"].run("") + + comps = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/ComponentRepository/") + + for item in comps: + # str = "" + # str += "/fwrepo/" + item['Filename'] + self.rdmc.ui.printer("Deleting component: '%s'.\n" % item["Filename"]) + self.auxcommands["deletecomp"].run(item["Filename"]) + self.rdmc.ui.printer("Successfully downloaded '%s' from iLO " "Repository.\n" % item["Filename"]) + + self.rdmc.ui.printer("Test Complete...\n") + self.auxcommands["logout"].run("") + return ReturnCodes.SUCCESS + + @log_decor + def installsettesting(self): + """Install set command testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*************************INSTALL " "SET COMMAND TESTING*****************************\n") + self.rdmc.ui.printer("**************************************************" "*******************************\n\n") + + self.auxcommands["login"].run("") + + if not self.rdmc.app.typepath.flagiften: + self.rdmc.ui.printer("Skipping install set command, server is not gen10.\n") + return ReturnCodes.SUCCESS + + installsetlist = [] + url = "http://infinitymaster.us.rdlabs.hpecorp.net:1051/automatic_testing/install_sets/" + + # skip MakeInstallSet + installsetlist = self.automatictesting_helper_fb(url) + i = 0 + + self.auxcommands["login"].loginfunction("") + + for installset in installsetlist: + try: + (installsetfile, _) = urlretrieve(url + installset, installset) + i = i + 1 + self.rdmc.ui.printer("Uploading Installset: %s\n" % installsetfile) + self.auxcommands["installset"].run("add " + installset) + self.rdmc.ui.printer("Invoking Installset: %s\n" % installsetfile) + self.auxcommands["installset"].run("invoke --name=TestSet" + str(i) + " --cleartaskqueue") + self.rdmc.ui.printer("Removing Installset: %s\n" % installsetfile) + self.auxcommands["installset"].run("delete --name=TestSet" + str(i)) + + except Exception as excp: + self.rdmc.ui.printer( + "A general error occured while attempting to " + "use the file: %s. The following error was " + "logged: %s\n" % (installsetfile, excp) + ) + self.rdmc.ui.printer("Check for missing test files\n") + continue + + self.rdmc.ui.printer("Removing any remaining installsets\n") + self.auxcommands["installset"].run("--removeall") + self.auxcommands["logout"].logoutfunction("") + + for installset in installsetlist: + try: + if os.path.exists(installsetfile): + self.rdmc.ui.printer("Removing local file: %s\n" % installsetfile) + os.remove(installsetfile) + except Exception as excp: + self.rdmc.ui.printer( + "An error occured attempting to remove the " "file: %s, logged: %s\n" % (installsetfile, excp) + ) + continue + + return ReturnCodes.SUCCESS + + @log_decor + def updatetaskqueuetesting(self): + """Update task queue command testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("**************************UPDATE " "TASK QUEUE TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].run("") + + if not self.rdmc.app.typepath.flagiften: + self.rdmc.ui.printer("Skipping taskqueue command, server is not gen10.\n") + return ReturnCodes.SUCCESS + + self.auxcommands["taskqueue"].run("") + self.auxcommands["taskqueue"].run("create 30") + self.auxcommands["taskqueue"].run("") + + self.auxcommands["taskqueue"].run("create reboot") + self.auxcommands["taskqueue"].run("") + self.auxcommands["taskqueue"].run("-r") + self.auxcommands["taskqueue"].run("") + + self.auxcommands["logout"].run("") + + @log_decor + def listcomptesting(self): + """List component command testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*****************************LIST " "COMPONENT TESTING******************************\n") + self.rdmc.ui.printer("***************************************************" "******************************\n\n") + + self.auxcommands["login"].run("") + + if not self.rdmc.app.typepath.flagiften: + self.rdmc.ui.printer("Skipping list component command, server is not gen10.\n") + return ReturnCodes.SUCCESS + + self.auxcommands["listcompt"].run("") + self.auxcommands["logout"].run("") + + @log_decor + def testsumcode(self): + """SUM commands batch testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*************************SUM " "COMMANDS TESTING******************************\n") + self.rdmc.ui.printer( + "***************************************************" "********************************\n\n" + ) + + self.auxcommands["login"].run("") + + if not self.rdmc.app.typepath.flagiften: + self.rdmc.ui.printer("Skipping list component command, server is not gen10.") + return ReturnCodes.SUCCESS + + # TODO:verification of cache to be done manually for now + if not self.rdmc.app.typepath.flagiften: + self.auxcommands["rawget"].run("/rest/v1/Chassis/1/Power") + self.auxcommands["rawget"].run("/redfish/v1/Chassis/1/Power/") + self.auxcommands["rawget"].run("/rest/v1/Systems/1") + self.auxcommands["rawget"].run("/redfish/v1/Systems/1/") + + self.auxcommands["hpgooey"].run(" --list --namespace perm") + # self.auxcommands['hpgooey'].run(" --read --key ipmanager --namespace perm -f " \ + # "c:\ipman.json") + self.auxcommands["logout"].run("") + self.auxcommands["login"].run("") + + # Update the password in session_payload.json file. + # self.auxcommands['rawpost'].run("session_payload.json --getheaders --service") + + session_key = "" + for client in self.rdmc.app._rmc_clients: + session_key = client.get_authorization_key() + session_key = " --sessionid={0}".format(session_key) + break + self.auxcommands["rawpost"].run( + "sut_provider_registration_payload.json " + "--getheaders --response --service --providerid" + "=SUT-PROVIDER" + session_key + ) + self.auxcommands["rawput"].run( + "sut_registry_payload.json --getheaders --response" " --service --providerid=SUT-PROVIDER" + session_key + ) + self.auxcommands["rawput"].run( + "sut_schema.json --getheaders --response --service " "--providerid=SUT-PROVIDER" + session_key + ) + self.auxcommands["rawput"].run( + "sut_settings_schema.json --getheaders --response " "--service --providerid=SUT-PROVIDER" + session_key + ) + self.auxcommands["rawput"].run( + "sut_tasksettings_schema.json --getheaders " + "--response --service --providerid=SUT-PROVIDER " + session_key + ) + self.auxcommands["rawput"].run( + "sut_systeminventory_schema.json --getheaders " + "--response --service --providerid=SUT-PROVIDER " + session_key + ) + self.auxcommands["rawput"].run("HPSUT_rest.json --providerid=HPSUT-PROVIDER") + self.auxcommands["rawput"].run("HPSUTSettings_rest.json --providerid=HPSUT-PROVIDER") + self.auxcommands["rawpatch"].run("HPSUTSettings_rest.json --providerid=HPSUT-PROVIDER") + self.auxcommands["logout"].run("") + + if self.rdmc.app.typepath.flagiften: + self.auxcommands["rawget"].run("/redfish/v1/Managers/1/") + self.auxcommands["rawget"].run("/redfish/v1/Chassis/1/Power/") + self.auxcommands["rawget"].run("/redfish/v1/Systems/1/") + self.auxcommands["rawget"].run("/redfish/v1/Managers/1/UpdateService") + self.auxcommands["rawget"].run("/redfish/v1/Chassis/") + + self.auxcommands["hpgooey"].run(" --list --namespace perm") + # self.auxcommands['hpgooey'].run(" --read --key ipmanager --namespace perm -f " \ + # "c:\ipman.json") + + self.auxcommands["rawget"].run("/redfish/v1/Managers/1/SecurityService/") + self.auxcommands["rawget"].run("/redfish/v1/UpdateService/FirmwareInventory/ --expand") + self.auxcommands["rawget"].run("/redfish/v1/UpdateService/SoftwareInventory/ --expand") + self.auxcommands["rawget"].run("/redfish/v1/updateService/installsets/ --expand") + + # Check if the uploadcomp commands are necessary for the continuation of the code + # compname = "xxx" + # compsigname = "yyy" + compname = "cp029917.exe" + compsigname_1 = "cp029917_part1.compsig" + self.auxcommands["uploadcomp"].run( + "--component={0} --compsig={1} " "--forceupload".format(compname, compsigname_1) + ) + + self.auxcommands["rawget"].run("/redfish/v1/updateService/ComponentRepository/ --expand") + self.auxcommands["rawget"].run("/redfish/v1/Managers/1/EthernetInterfaces/ --expand") + self.auxcommands["logout"].run("") + + self.auxcommands["login"].run("") + # TODO:update the password in session_payload_gen10.json file. + self.auxcommands["rawpost"].run("session_payload_gen10.json --getheaders --service") + session_key = "" + for client in self.rdmc.app._rmc_clients: + session_key = client.get_authorization_key() + session_key = " --sessionid={0}".format(session_key) + break + self.auxcommands["rawdelete"].run( + " " + "--getheaders --response --service --providerid=" + "SUT-PROVIDER" + session_key + ) + self.auxcommands["rawpost"].run( + "sut_provider_registration_payload_gen10.json " + "--getheaders --response --service --providerid=" + "SUT-PROVIDER" + session_key + ) + self.auxcommands["rawput"].run( + "sut_registry_payload_gen10.json --getheaders " + "--response --service --providerid=SUT-PROVIDER " + session_key + ) + self.auxcommands["rawput"].run( + "sut_schema_gen10.json --getheaders --response " "--service --providerid=SUT-PROVIDER" + session_key + ) + self.auxcommands["rawput"].run( + "sut_settings_schema_gen10.json --getheaders " + "--response --service --providerid=SUT-PROVIDER " + session_key + ) + self.auxcommands["rawput"].run( + "sut_tasksettings_schema_gen10.json --getheaders " + "--response --service --providerid=SUT-PROVIDER " + session_key + ) + self.auxcommands["rawput"].run( + "sut_systeminventory_schema_gen10.json --getheaders " + "--response --service --providerid=SUT-PROVIDER " + session_key + ) + + self.auxcommands["rawput"].run("HPSUT_redfish.json --providerid=HPSUT-PROVIDER") + self.auxcommands["rawput"].run("HPSUTSettings_redfish.json --providerid=HPSUT-PROVIDER") + self.auxcommands["rawpatch"].run("HPSUTSettings_redfish.json --providerid=HPSUT-PROVIDER") + self.auxcommands["logout"].run("") + + self.auxcommands["login"].run("") + self.auxcommands["rawget"].run("/redfish/v1/Chassis/1/Power/") + self.auxcommands["rawget"].run("/redfish/v1/Systems/1/") + self.auxcommands["rawget"].run("/redfish/v1/updateService/installsets/") + self.auxcommands["rawget"].run("/redfish/v1/updateService/updatetaskqueue/") + self.auxcommands["rawget"].run("/redfish/v1/UpdateService/FirmwareInventory/") + self.auxcommands["rawget"].run("/redfish/v1/UpdateService/SoftwareInventory/") + self.auxcommands["rawget"].run("/redfish/v1/Managers/1/SecurityService/CertificateAuthentication/") + self.auxcommands["rawget"].run("/redfish/v1/Managers/1/DateTime/") + self.auxcommands["rawget"].run("/redfish/v1/UpdateService/ComponentRepository/") + self.auxcommands["rawget"].run("/redfish/v1/UpdateService/FirmwareInventory/") + self.auxcommands["rawget"].run("/redfish/v1/UpdateService/UpdateTaskQueue/ --expand") + + # compname = "xxx" + # compsigname = "yyy" + compname = "cp029917.exe" + compsigname_1 = "cp029917_part1.compsig" + self.auxcommands["uploadcomp"].run( + "--component={0} --compsig={1} " "--forceupload".format(compname, compsigname_1) + ) + self.auxcommands["rawget"].run("/redfish/v1/updateService/ComponentRepository/") + # Component uri returned by the rawget above + # self.auxcommands['downloadcomp'].run("Component uri returned by the rawget above") + self.auxcommands["logout"].run("") + + @log_decor + def maintenancewindowautomatictesting(self): + """Maintenance window command automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("******************MAINTENANCE WINDOW " "AUTOMATIC TESTING***************************\n") + self.rdmc.ui.printer("***********************************************" "**********************************\n\n") + + if not self.rdmc.app.typepath.flagiften: + self.rdmc.ui.printer("Skipping... Not available on Gen 9.") + return + self.auxcommands["login"].loginfunction("") + + for entry_ in range(0, 10): + startoffset = random.randint(1, 10) + endoffset = random.randint(1, 10) + startoffset + + startdatetime = datetime.datetime.now() + datetime.timedelta(days=startoffset) + enddatetime = datetime.datetime.now() + datetime.timedelta(days=endoffset) + + maintenancewindow_start_time = startdatetime.strftime("%Y-%m-%dT%H:%M:%S") + maintenancewindow_descr = '"This is a test for planned maintenance"' + maintenancewindow_end_time = enddatetime.strftime("%Y-%m-%dT%H:%M:%S") + maintenancewindow_str = ( + "add " + + maintenancewindow_start_time + + " --expire=" + + maintenancewindow_end_time + + " --name=TestMaintenanceEntry" + + str(entry_) + + " --description " + + maintenancewindow_descr + ) + + self.rdmc.ui.printer("Adding Maintenance Window: " + maintenancewindow_str + "\n") + self.auxcommands["maintenancewindow"].run(maintenancewindow_str) + + self.auxcommands["maintenancewindow"].run("") + + maintenancewindow_str = "delete TestMaintenanceEntry" + str(entry_) + + self.rdmc.ui.printer("Removing Maintenance Window: " + maintenancewindow_str + "\n") + self.auxcommands["maintenancewindow"].run(maintenancewindow_str) + + self.auxcommands["logout"].logoutfunction("") + + @log_decor + def serverinfoautomatictesting(self): + """Serverinfo command automatic testing""" + info_list = { + "--fans", + "--processor", + "--memory", + "--thermals", + "--power", + "--system", + } + info_string = "--fans --processor --memory --thermals --power --system --showabsent" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*************************SERVER INFO AUTOMATIC " "TESTING***************************\n") + self.rdmc.ui.printer("***********************************************" "**********************************\n\n") + + self.auxcommands["login"].loginfunction("") + + for item in info_list: + self.auxcommands["serverinfo"].run(item) + + self.auxcommands["serverinfo"].run(info_string) + + self.auxcommands["logout"].logoutfunction("") + + @log_decor + def fwpkgcommandautomatictesting(self): + """Fwpkg command automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("************************FIRMWARE PACKAGE AUTOMATIC " "TESTING***********************\n") + self.rdmc.ui.printer("*************************************************" "********************************\n\n") + + self.rdmc.ui.printer("Skipping FW Package testing\n") + # self.fwpackage.run("") + + @log_decor + def ipprofilesautomatictesting(self): + """ipprofiles command automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("*****************************IP PROFILES AUTOMATIC " "TESTING***********************\n") + self.rdmc.ui.printer("*************************************************" "********************************\n\n") + + self.auxcommands["login"].loginfunction("") + try: + self.auxcommands["ipprofiles"].run("") # expect a non-empty string or buffer + # self.rdmc.ui.printer("Update with JSON:\n") + # self.rdmc.ui.printer(repr(self.auxcommands['ipprofiles']obj.run("ipprofiles" + \ + # ipprofile.json))) + # self.rdmc.ui.printer(repr(self.auxcommands['ipprofiles']obj.run("ipprofiles"))) + except PathUnavailableError: + self.rdmc.ui.printer("Skipping IP Profiles test, IP provider is unavailable.\n") + + self.auxcommands["logout"].logoutfunction("") + + @log_decor + def fwintegritycheckautomatictesting(self): + """fwintegrity command automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("******************FIRMWARE INTEGRITY CHECK AUTOMATIC " "TESTING*********************\n") + self.rdmc.ui.printer("*************************************************" "********************************\n\n") + + if not self.rdmc.app.typepath.flagiften: + self.rdmc.ui.printer("Skipping firmware integrity check, only available on Gen 10.") + else: + self.auxcommands["login"].loginfunction("") + self.auxcommands["fwintegritycheck"].run("--results") + self.auxcommands["fwintegritycheck"].run("") + self.auxcommands["logout"].logoutfunction("") + + @log_decor + def setbiospasswordautomatictesting(self, local): + """biospassword command automatic testing""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("**********************SET BIOS PASSWORD AUTOMATIC " "TESTING************************\n") + self.rdmc.ui.printer("***********************************************" "**********************************\n\n") + + if not local: + self.auxcommands["login"].loginfunction("") + self.auxcommands["set"].run("testpassword " + '""') + self.auxcommands["set"].run('""' + " testpassword") + self.auxcommands["logout"].logoutfunction("") + else: + self.rdmc.ui.printer("Skipping setting bios password testing in local.\n") + + @log_decor + def setbiosdefaultsautomatictesting(self): + """biosdefault command automatictesting""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("************************SET BIOS DEFAULTS AUTOMATIC " "TESTING**********************\n") + self.rdmc.ui.printer("***********************************************" "**********************************\n\n") + + self.auxcommands["login"].loginfunction("") + try: + self.rdmc.ui.printer("Setting BIOS Defaults:\n") + self.rdmc.ui.printer(repr(self.auxcommands["biosdefaults"].run("--manufacturingdefaults"))) + except: + self.rdmc.ui.printer("Unable to set BIOS Defaults\n") + self.auxcommands["logout"].logoutfunction("") + + @log_decor + def smartarrayautomatictesting(self): + """smart array command automatictesting""" + self.rdmc.ui.printer("\n*************************************************" "********************************\n") + self.rdmc.ui.printer("************************SMART ARRAY AUTOMATIC " "TESTING*******************\n") + self.rdmc.ui.printer("***********************************************" "********************************\n\n") + + self.auxcommands["select"].selectfunction("SmartStorageConfig.") + content = self.rdmc.app.getprops() + + if content: + self.auxcommands["smartarray"].selection_output(dict(controller=None), content) + else: + raise Exception("This system does not have a valid Smart Storage Controller") + + # helper functions + def automatictesting_helper_fd(self, data): + """ + Helper function to delete files pulled from remote to local machine. + + :param data: dictionary or list of files to be removed + :type data: dictonary or list + """ + errors = [] + + if isinstance(data, dict): + for _, d_file in list(data.items()): + try: + if os.path.exists(d_file): + os.remove(d_file) + except Exception as excp: + errors.append( + "An error occured attempting to remove the file: %s, logged: %s\n" + % (filename.split(".")[0], excp) + ) + + elif isinstance(data, list): + for d_file in data: + try: + if os.path.exists(d_file): + os.remove(d_file) + except Exception as excp: + errors.append( + "An error occured attempting to remove the file: %s, logged: %s\n" + % (filename.split(".")[0], excp) + ) + + err_str = "Errors occurred deleting: " + for blah in errors: + err_str += "{},".format(blah) + return errors + + def serverclone_helper(self, filename=None, line=None): + """ + Helper function to modify and remove properties from a serverclone file + + :param filename: filename of the clone file + :type filename: str + """ + errors = [] + delete_dict = [] + data = {} + try: + with open(filename, "r") as cf: + if "--encryption" in line: + entries_list = [(pos.start(), pos.end()) for pos in list(re.finditer(ending, path))] + encryption_key = None + data = json.loads(Encryption().decrypt_file(cf.read(), encryption_key)) + else: + data = json.loads(cf.read()) + except Exception as excp: + errors.append("An error occurred opening the clone file '%s': %s" % (filename, excp)) + + try: + for type in data: + if "AccountService" in type: + for path in list(data[type].keys()): + if "MinPasswordLength" in data[type][path]: + data[type][path]["MinPasswordLength"] = random.randint(8, 16) + if "AuthFailureDelayTimeSeconds" in data[type][path]: + data[type][path]["AuthFailureDelayTimeSeconds"] = random.randint(12, 40) + if "ComputerSystem." in type: + for path in list(data[type].keys()): + if "IndicatorLED" in data[type][path]: + data[type][path]["IndicatorLED"] = "Blinking" + if "AssetTag" in data[type][path]: + data[type][path]["AssetTag"] = "AutomaticTestAsset".join( + random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(6) + ) + if "EthernetInterface." in type: + for path in list(data[type].keys()): + if "SpeedMbps" in data[type][path]: + if data[type][path]["FullDuplex"]: + data[type][path]["FullDuplex"] = False + else: + data[type][path]["FullDuplex"] = True + if "AutoNeg" in data[type][path]: + if data[type][path]["AutoNeg"]: + data[type][path]["AutoNeg"] = False + else: + data[type][path]["AutoNeg"] = True + if "SpeedMbps" in data[type][path]: + if data[type][path]["SpeedMbps"] == 1000: + data[type][path]["SpeedMbps"] = 100 + else: + data[type][path]["SpeedMbps"] = 1000 + if "ManagerAccount." in type: + for path in list(data[type].keys()): + if "Password" in data[type][path]: + data[type][path]["Password"] = "password" + if "iLOLicense" in type: + delete_dict.append(type) + if "SecureBoot" in type: + for path in list(data[type].keys()): + if "SecureBootEnable" in data[type][path]: + data[type][path]["SecureBootEnable"] = False + except (KeyError, ValueError): + pass + + for item in delete_dict: + try: + del data[item] + except KeyError: + pass + + try: + filename2 = filename.split(".")[0] + "_edited" + ".json" + with open(filename2, "wb") as cf: + if "--encryption" in line: + [(pos.start(), pos.end()) for pos in list(re.finditer(ending, path))] + encryption_key = None + cf.write(Encryption().decrypt_file(json.dumps(data, indent=2), encryption_key)) + else: + cf.write(json.dumps(data, indent=2)) + except Exception as excp: + errors.append("An error occurred writing the clone file '%s': %s" % (filename2, excp)) + + if errors: + raise + else: + return filename2 + + def automatictesting_helper_fb(self, url, components=False): + """ + Helper function for browsing and creating file dictionary from a + file server index. Designed around the output display of Node.js + v10.10.0 which places files into an html table. + + :param url: path to the file server. + :type url: string + :param components: flag if file components will be needed + (multiple associated files) + :type components: boolean + """ + + # list of ignored files and paths + ignore_list = ["..", ".", "README"] + + table_row_list = [] + prev_tr = 7 + block = False + try: + source_url = urlopen(url) + read_url = source_url.read() + read_url = read_url[read_url.find("") : read_url.find("
    ") + read_url.find("
    ")] + while read_url.find("") > 0: + current_str = read_url[prev_tr : prev_tr + read_url.find("")] + current_str = current_str[ + current_str.find("
    ") + ] + current_str = current_str[ + current_str.find('="') + 2 : current_str.find('="') + 2 + current_str.find('">') + ] + current_str = current_str[: current_str.find(">") - 1] + if current_str.split("/")[-1] in ignore_list or current_str.split("/")[-2] in ignore_list: + self.rdmc.ui.printer("Ignoring url: %s\n" % current_str) + else: + # data[current_str.split('/')[-1]] = [table_row_list.append(current_str) + table_row_list.append(current_str.split("/")[-1]) + + read_url = read_url[read_url.find("") + 1 :] + prev_tr = 0 + + source_url.close() + + if components: + components_dict = {} + + while len(table_row_list) > 0: + for url in table_row_list: + split_url = re.split("/", url) + last_element = split_url[-1] + if last_element.count(".") > 2: + sys.stderr.write("Invalid Filetype...skipping\n") + table_row_list.remove(url) + break + else: + (compname, ext) = last_element.split(".") + if "compsig" in last_element: + if components_dict.get(compname) is not None and compname in last_element: + components_dict[compname].append(url) + table_row_list.remove(url) + continue + if "part" in last_element and "_" in last_element: + (split_compname, _) = compname.split("_") + if split_compname in components_dict and url not in components_dict[split_compname]: + components_dict[split_compname].append(url) + table_row_list.remove(url) + else: + components_dict.setdefault(compname.split("_")[0], []) + continue + else: + components_dict.setdefault(compname, []).append(url) + table_row_list.remove(url) + + return components_dict + + else: + return table_row_list + + except ValueError or TypeError: + self.rdmc.ui.printer("The web server may not be available") + block = True + except Exception as excp: + self.rdmc.ui.printer("A General Error Occured: %s" % excp) + block = True + + def archive_handler(self, archive_file): + """ + Handles archiving of data for bug tracking and reporting + """ + + packlist = [__error_logfile__, __pass_fail__] + + if self.rdmc.opts.debug: + for handle in self.rdmc.app.logger.parent.handlers: + if isinstance(handle, FileHandler): + ilorestlog = handle.baseFilename + + if ilorestlog: + packlist.append(ilorestlog) + + with ZipFile(archive_file, "w") as zip_arch: + for _file in packlist: + try: + zip_arch.write(_file) + os.remove(_file) + except: + pass + + self.rdmc.ui.printer("Logifles archived in '%s'.\n" % archive_file) + zip_arch.printdir() + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--latestschema", + dest="latestschema", + action="store_true", + help="Optionally use the latest schema instead of the one " + "requested by the file. Note: May cause errors in some data " + "retrieval due to difference in schema versions.", + default=None, + ) + customparser.add_argument( + "--complete", + dest="complete", + action="store_true", + help="Run all available tests.", + default=False, + ) + customparser.add_argument( + "--sumtest", + dest="sumtest", + action="store_true", + help="Optionally use run only the sum command tests.", + default=False, + ) + customparser.add_argument( + "--local", + dest="local", + action="store_true", + help="""Use to perform a local login for every operation.""", + default=None, + ) + customparser.add_argument( + "--ahsdiagtest", + dest="ahsdiagtest", + action="store_true", + help="Optionally use run only the sum command tests.", + default=False, + ) + customparser.add_argument( + "--archive", + dest="archive", + help="Optionally archive the logfiles", + action="append", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/ExportAllConfigCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/ExportAllConfigCommand.py new file mode 100644 index 0000000..8f6bb17 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/ExportAllConfigCommand.py @@ -0,0 +1,106 @@ +### +# Copyright 2016 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""ExportAllConfig Command for rdmc""" + +import json + +try: + from rdmc_helper import InvalidCommandLineErrorOPTS, ReturnCodes +except ImportError: + from ilorest.rdmc_helper import InvalidCommandLineErrorOPTS, ReturnCodes +from redfish.ris import UndefinedClientError + + +class ExportAllConfigCommand: + """exportallconfig class command""" + + def __init__(self): + self.ident = { + "name": "exportallconfig", + "usage": None, + "description": "Saves all the config on to json file", + "summary": "Saves all the config on to json file. Usage: exportallconfig -f filename.json", + "aliases": ["allconfig"], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main exportallconfig worker function + + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if hasattr(self.rdmc.app, "config") and self.rdmc.app.config._ac__format.lower() == "json": + options.json = True + if not options.excludeurl: + options.excludeurl = "nothing to exclude" + + if self.rdmc.app.current_client: + results = self.rdmc.app.monolith.captureallconfig(exclueurl=options.excludeurl[0]) + else: + raise UndefinedClientError() + + filepath = options.filename[0] if options.filename else "AllConfig.json" + + with open(filepath, "w") as allconfig: + json.dump(results, allconfig, indent=2) + self.rdmc.ui.printer("File is loaded successfully.\n") + + # Return code + return ReturnCodes.SUCCESS + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + customparser.add_argument( + "-f", + "--filename", + dest="filename", + help="Use this flag if you wish to save the content to a file, " + "if no file given it will get saved to AllConfig.json", + action="append", + default=None, + ) + customparser.add_argument( + "-e", + "--excludeurl", + dest="excludeurl", + action="append", + help="Use this flag is given with a url that url will be skipped", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/GetInventoryCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/GetInventoryCommand.py new file mode 100644 index 0000000..3f57efe --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/GetInventoryCommand.py @@ -0,0 +1,315 @@ +# ## +# Copyright 2016 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# BMN +# ## + +# -*- coding: utf-8 -*- +"""Get Inventory Command for rdmc""" + + +try: + from rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + +from redfish.ris.resp_handler import ResponseHandler + + +class GetInventoryCommand: + """GetInventory command class""" + + def __init__(self): + self.ident = { + "name": "getinventory", + "usage": None, + "description": "Get complete inventory" + "data from the iLO, including iLO Repo and install set." + "\n\texample: getinventory all", + "summary": "Get complete inventory data from the iLO.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + self.response_handler = None + + def run(self, line, help_disp=False): + """Main GetInventory worker function + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.getinventoryvalidation(options) + self.response_handler = ResponseHandler( + self.rdmc.app.validationmanager, + self.rdmc.app.typepath.defs.messageregistrytype, + ) + if self.rdmc.app.typepath.defs.isgen9: + raise IncompatibleiLOVersionError("GetInventory command is " "available only on iLO 5 node.") + + alldata = {} + results = {} + + # If both are not set, then we will get both inventory and repo data + if not options.inventory and not options.repo_data and not options.sut: + options.inventory = True + options.repo_data = True + options.sut = True + + if options.inventory: + try: + collectiondata = self.rdmc.app.get_handler( + "/redfish/v1/updateservice/firmwareinventory", service=False, silent=True + ).dict + members = self.rdmc.app.getcollectionmembers(collectiondata.get("@odata.id")) + collectiondata.update({"Members": members}) + alldata.update({"firmwareInventory": collectiondata}) + except: + alldata.update({"firmwareInventory": {}}) + try: + collectiondata = self.rdmc.app.get_handler( + "/redfish/v1/updateservice/softwareinventory", service=False, silent=True + ).dict + members = self.rdmc.app.getcollectionmembers(collectiondata.get("@odata.id")) + collectiondata.update({"Members": members}) + alldata.update({"softwareInventory": collectiondata}) + except: + alldata.update({"softwareInventory": {}}) + + try: + members = self.rdmc.app.get_handler("/redfish/v1/systems/", service=False, silent=True).dict["Members"] + systemdata = {} + rootsystem = {} + for id in members: + for mem_id in id.values(): + results = self.rdmc.app.get_handler(mem_id, service=True, silent=True).dict + id = results["Id"] + if id != "1": + rootsystem.update({"systems%s" % id: results}) + systemdata.update({"systems": rootsystem}) + alldata.update(systemdata) + if id == "1": + alldata.update({"systems1": results}) + except: + alldata.update({"systems": {}}) + + try: + sutlocation = alldata.get("systems1").get("Oem").get("Hpe").get("Links") + except: + if results: + sutlocation = next(iter(results)).dict.get("Links") + for key, value in list(sutlocation.items()): + if key == "SUT": + result2 = self.rdmc.app.get_handler(value.get("@odata.id"), service=False, silent=True) + + if result2.status == 200: + alldata["SUT"] = result2.dict + elif result2.status == 204: + pass + else: + return self.printlastfailedresult(result2) + break + try: + collectiondata = self.rdmc.app.get_handler( + "/redfish/v1/Managers/1/EthernetInterfaces/", service=False, silent=True + ).dict + members = self.rdmc.app.getcollectionmembers(collectiondata.get("@odata.id")) + collectiondata.update({"Members": members}) + alldata.update({"EthernetInterfaces": collectiondata}) + except: + alldata.update({"EthernetInterfaces": {}}) + + try: + results = self.rdmc.app.select(selector="HpeiLODateTime.", path_refresh=True) + alldata["DateTime"] = next(iter(results)).resp.dict + except: + alldata.update({"DateTime": {}}) + + try: + collectiondata = self.rdmc.app.get_handler( + "/redfish/v1/UpdateService/", service=False, silent=True + ).dict + alldata.update({"DowngradePolicy": collectiondata}) + except: + alldata.update({"DowngradePolicy": {}}) + + if options.sut: + if "system1" not in alldata: + try: + results = self.rdmc.app.get_handler("/redfish/v1/systems/", service=False, silent=True).dict + members = results["Members"] + for id in members: + for mem_id in id.values(): + results = self.rdmc.app.get_handler(mem_id, service=True, silent=True).dict + id = results["Id"] + if id == "1": + alldata.update({"systems1": results}) + except: + alldata.update({"systems1": {}}) + else: + _ = alldata["systems1"] + + if alldata.get("systems1"): + try: + sutlocation = alldata.get("systems1").get("Oem").get("Hpe").get("Links") + except: + if results: + sutlocation = next(iter(results)).dict.get("Links") + for key, value in list(sutlocation.items()): + if key == "SUT": + result2 = self.rdmc.app.get_handler(value.get("@odata.id"), service=False, silent=True) + + if result2.status == 200: + alldata["SUT"] = result2.dict + elif result2.status == 204: + pass + else: + return self.printlastfailedresult(result2) + break + + if options.repo_data: + try: + collectiondata = self.rdmc.app.get_handler( + "/redfish/v1/UpdateService/installsets", service=False, silent=True + ).dict + members = self.rdmc.app.getcollectionmembers(collectiondata.get("@odata.id")) + if len(members) == 0: + members = [] + collectiondata.update({"Members": members}) + alldata.update({"installsets": collectiondata}) + except: + alldata.update({"installsets": []}) + + try: + collectiondata = self.rdmc.app.get_handler( + "/redfish/v1/UpdateService/updatetaskqueue", service=False, silent=True + ).dict + members = self.rdmc.app.getcollectionmembers(collectiondata.get("@odata.id")) + if len(members) == 0: + members = [] + collectiondata.update({"Members": members}) + alldata.update({"updatetaskqueue": collectiondata}) + except: + alldata.update({"updatetaskqueue": []}) + + if self.rdmc.app.getiloversion(skipschemas=True) >= 5.130: + try: + collectiondata = self.rdmc.app.get_handler( + "/redfish/v1/UpdateService/maintenancewindows", service=False, silent=True + ).dict + members = self.rdmc.app.getcollectionmembers(collectiondata.get("@odata.id")) + if len(members) == 0: + members = [] + collectiondata.update({"Members": members}) + alldata.update({"maintenancewindows": collectiondata}) + except: + alldata.update({"maintenancewindows": []}) + + comp_repo_url = "/redfish/v1/UpdateService/ComponentRepository/" + "?$expand=." + try: + members = self.rdmc.app.get_handler(comp_repo_url, silent=True, service=True).dict + alldata.update({"ComponentRepository": members}) + except: + alldata.update({"ComponentRepository": {}}) + + self.rdmc.ui.print_out_json(alldata) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def combineinstances(self, data, alldata, name, coll=None): + """combine the data into one json dictionary""" + if coll: + coll = coll.resp.dict + finaldata = [] + if "Members" in coll: + for member in data: + finaldata.append(member.resp.dict) + coll["Members"] = finaldata + alldata[name] = coll + elif len(data) > 1: + alldata.update({name: {"Members": []}}) + for item in data: + alldata[name]["Members"].append(item.resp.dict) + else: + alldata.update({name: {"Members": next(iter(data)).resp.dict}}) + + def printlastfailedresult(self, results): + """print last failed result function""" + self.response_handler.output_resp(results) + + return ReturnCodes.NO_CONTENTS_FOUND_FOR_OPERATION + + def getinventoryvalidation(self, options): + """get inventory validation function + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-i", + "--inventory", + dest="inventory", + action="store_true", + help="""Use this option to get only the inventory data.""", + default=False, + ) + customparser.add_argument( + "-s", + "--sut", + dest="sut", + action="store_true", + help="""Use this option to get only SUT data from iLO.""", + default=False, + ) + customparser.add_argument( + "-r", + "--repo_data", + dest="repo_data", + action="store_true", + help="""Use this option to get only iLO repository, install set """ """and Task queue details.""", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/HpGooeyCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/HpGooeyCommand.py new file mode 100644 index 0000000..0b214dc --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/HpGooeyCommand.py @@ -0,0 +1,1071 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Hp Gooey Command for rdmc""" + +import ctypes +import gzip +import itertools +import os +import platform +import string +import struct +import subprocess +import sys +import tempfile +import time +import logging +import xml.etree.ElementTree as et + +from six import BytesIO, StringIO + +import redfish.hpilo.risblobstore2 as risblobstore2 + +try: + from rdmc_helper import ( + BirthcertParseError, + CommandNotEnabledError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + PartitionMoutingError, + ReturnCodes, + StandardBlobErrorHandler, + ) +except ImportError: + from ilorest.rdmc_helper import ( + BirthcertParseError, + CommandNotEnabledError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + PartitionMoutingError, + ReturnCodes, + StandardBlobErrorHandler, + ) + +if os.name == "nt": + import win32api +elif sys.platform != "darwin" and "VMkernel" not in platform.uname(): + import pyudev + +LOGGER = logging.getLogger(__name__) + + +class HpGooeyCommand: + """Hp Gooey class command""" + + def __init__(self): + self.ident = { + "name": "hpgooey", + "usage": None, + "description": "Directly writes/reads from blobstore" + "\n\tBlobstore read example:\n\thpgooey --read " + "--key keyexample --namespace perm -f " + "\n\n\tBlobstore write example:\n\thpgooey --write" + " --key keyexample --namespace perm -f \n\n\tBlobstore delete example:\n\thpgooey " + "--delete --key keyexample --namespace perm\n\n\t" + "Blobstore list example:\n\thpgooey --list " + "--namespace perm\n\n\tNAMESPACES:\n\tperm, " + "tmp, dropbox, sfw, ris, volatile", + "summary": "directly writes/reads from blobstore", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + try: + self.lib = risblobstore2.BlobStore2.gethprestchifhandle() + except: + self.lib = None + + def run(self, line, help_disp=False): + """Access blobstore directly and perform desired function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + if sys.platform == "darwin": + raise CommandNotEnabledError("'%s' command is not supported on MacOS" % str(self.name)) + elif "VMkernel" in platform.uname(): + raise CommandNotEnabledError("'%s' command is not supported on VMWare" % str(self.name)) + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.hpgooeyvalidation(options) + + if options.key == "hpmbirthcert": + self.remote_run(options) + else: + if self.rdmc.app.current_client.base_url.startswith("blobstore"): + self.local_run(options) + else: + self.remote_run(options) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def remote_run(self, options): + path = "/blob" + if options.namespace: + path += "/%s" % options.namespace + if options.key: + path += "/%s" % options.key + + if options.write: + if not (options.key and options.namespace): + raise InvalidCommandLineError("Key and namespace are required for hpblob operations.") + if not options.filename or not os.path.isfile(options.filename[0]): + raise InvalidFileInputError("Please provide a file with input data or given file does not exist") + + blobfiledata = None + if options.binfile: + _read_mode = "rb" + else: + _read_mode = "r" + + with open(options.filename[0], _read_mode) as bfh: + blobfiledata = bfh.read() + + if options.key == "birthcert" or options.key == "hpmbirthcert": + try: + filedatastr = bytes(self.remote_read(path)) + except (StandardBlobErrorHandler, risblobstore2.BlobNotFoundError) as e: + filedatastr = "" + if not isinstance(filedatastr, bytes): + blobdata = filedatastr.encode("utf-8", "ignore") + else: + blobdata = filedatastr + + blobfiledata = self.writebirthcert(blobfiledata=blobfiledata, blobdata=blobdata, key=options.key) + self.remote_write(path, blobfiledata) + + elif "SMARTSTART" in options.key: + # compressed_data = self.writesmartstart(blobfiledata) + # self.remote_write(path, compressed_data) + self.remote_write(path, blobfiledata) + + elif options.read: + if not (options.key and options.namespace): + raise InvalidCommandLineError("Key and namespace are required for hpblob operations.") + + filedata = BytesIO() + + filedatastr = bytes(self.remote_read(path)) + + if options.key == "birthcert" or options.key == "hpmbirthcert": + filedatastr = self.readbirthcert(filedatastr, options.key) + # elif "SMARTSTART" in options.key: + # uncompressed_data = self.readsmartstart(filedatastr) + # filedatastr = uncompressed_data + + if not isinstance(filedatastr, bytes): + filedatastr = filedatastr.encode("utf-8", "ignore") + filedata.write(filedatastr) + if options.filename: + self.rdmc.ui.printer("Writing data to %s..." % options.filename[0]) + + with open(options.filename[0], "wb") as outfile: + outfile.write(filedata.getvalue()) + + self.rdmc.ui.printer("Done\n") + else: + filedata_value = filedata.getvalue() + if isinstance(filedata_value, bytes): + filedata_value = filedata_value.decode("utf-8") + if options.key == "hpmbirthcert" and filedata_value == "": + self.rdmc.ui.printer("HPM Birth Certificate does not exist!!\n") + elif "SMARTSTART" in options.key and filedata_value == "": + self.rdmc.ui.printer("SMARTSTART data does not exist!!\n") + else: + self.rdmc.ui.printer("%s\n" % filedata_value) + + elif options.delete: + if not (options.key and options.namespace): + raise InvalidCommandLineError("Key and namespace are required" " for hpblob operations.") + self.remote_delete(path) + + elif options.list: + if not options.namespace: + raise InvalidCommandLineError("Namespace is required for hpblob operations.") + bs2 = risblobstore2.BlobStore2() + recvpacket = bs2.list(options.namespace) + errorcode = struct.unpack(" 3: + found, path = self.manualmount(label) + if found: + return True, path + + count = count + 1 + time.sleep(1) + + raise PartitionMoutingError("Partition with label %s not found on the NAND, so not able to mount" % label) + + def check_flat_path(self): + """Check flat path directory.""" + context = pyudev.Context() + count = 0 + + while count < 20: + for dev in context.list_devices(subsystem="block"): + if str(dev.get("ID_SERIAL")).startswith("HP_iLO_LUN"): + path = dev.get("DEVNAME") + return True, path + + count = count + 1 + time.sleep(1) + + raise PartitionMoutingError("iLO not responding to request for mounting partition") + + def manualmount(self, label): + """Manually mount after fixed time.""" + context = pyudev.Context() + + for device in context.list_devices(subsystem="block"): + if device.get("ID_FS_LABEL") == label: + dirpath = os.path.join(tempfile.gettempdir(), label) + + if not os.path.exists(dirpath): + try: + os.makedirs(dirpath) + except Exception as excp: + raise excp + + pmount = subprocess.Popen( + ["mount", device.device_node, dirpath], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + _, _ = pmount.communicate() + return True, dirpath + + return False, None + + def get_available_drives(self): + """Obtain all drives""" + if "Windows" not in platform.system(): + return [] + + drive_bitmask = ctypes.cdll.kernel32.GetLogicalDrives() + return list( + itertools.compress( + string.ascii_uppercase, + [ord(drive) - ord("0") for drive in bin(drive_bitmask)[:1:-1]], + ) + ) + + def detecttype(self, readdata): + """Function to detect a packets encryption + + :param readdata: data read from the call + :type readdata: str. + """ + magic_dict = { + "\x1f\x8b\x08": "gz", + "\x42\x5a\x68": "bz2", + "\x50\x4b\x03\x04": "zip", + } + max_len = max(len(x) for x in magic_dict) + file_start = readdata[:max_len] + + for magic, filetype in list(magic_dict.items()): + if file_start.startswith(magic): + return filetype + + return "no match" + + def osunmount(self, labels=None): + """Function to unmount media using labels + + :param labels: list of labels to unmount + :type labels: list. + """ + if labels: + for label in labels: + try: + (_, path) = self.check_mount_path(label) + except PartitionMoutingError: + if self.rdmc.opts.verbose: + self.rdmc.ui.printer("Unable to find {0} partition.".format(label)) + continue + pumount = subprocess.Popen(["umount", path], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + _, _ = pumount.communicate() + + def readbirthcert(self, blobdata, key): + """Function to read the birth certificate + + :param blobdata: data read from birth certificate call + :type blobdata: str. + """ + if key != "hpmbirthcert": + if "blobstore" in self.rdmc.app.redfishinst.base_url: + blobio = BytesIO(blobdata) + filehand = gzip.GzipFile(mode="rb", fileobj=blobio) + + data = filehand.read() + filehand.close() + else: + data = blobdata + else: + blobio = BytesIO(blobdata) + filehand = gzip.GzipFile(mode="rb", fileobj=blobio) + + data = filehand.read() + filehand.close() + return data + + def readsmartstart(self, blobdata): + blobio = BytesIO(blobdata) + filehand = gzip.GzipFile(mode="rb", fileobj=blobio) + + data = filehand.read() + filehand.close() + return data + + def writebirthcert(self, blobdata, blobfiledata, key): + """Function to read the birth certificate + + :param blobdata: data to be written to birth certificate call + :type blobdata: str. + :param blobfiledata: data read from birth certificate call + :type blobfiledata: str. + """ + filetype = self.detecttype(blobfiledata) + if filetype != "no match": + raise StandardBlobErrorHandler + + blobdataunpacked = self.readbirthcert(blobdata, key) + + totdata = self.parsebirthcert(blobdataunpacked, blobfiledata) + + databuf = BytesIO() + + filehand = gzip.GzipFile(mode="wb", fileobj=databuf) + filehand.write(totdata) + filehand.close() + + compresseddata = databuf.getvalue() + return compresseddata + + def writesmartstart(self, blobfiledata): + """Compresses the given data using gzip and returns compressed data.""" + try: + if not isinstance(blobfiledata, bytes): + blobfiledata = blobfiledata.encode("utf-8") # Convert to bytes if not already + + with BytesIO() as databuf: + with gzip.GzipFile(mode="wb", fileobj=databuf) as filehand: + filehand.write(blobfiledata) + + compressed_data = databuf.getvalue() + + LOGGER.info( + f"Successfully compressed data. Original size: {len(blobfiledata)}, " + f"Compressed size: {len(compressed_data)}" + ) + return compressed_data + + except Exception as e: + LOGGER.error(f"Failed to compress data: {str(e)}", exc_info=True) + raise # Re-raise the exception + + def parsebirthcert(self, blobdataunpacked=None, blobfiledata=None): + """Parse birth certificate function.""" + filedata = StringIO(blobfiledata) + if blobdataunpacked: + if isinstance(blobdataunpacked, bytes) or isinstance(blobdataunpacked, bytearray): + blobdataunpacked = blobdataunpacked.decode("utf-8") + readdata = StringIO(blobdataunpacked) + + try: + readtree = et.parse(readdata) + readroot = readtree.getroot() + readstr = b"" + + if readroot.tag == "BC": + for child in readroot: + readstr += et.tostring(child) + + if isinstance(readstr, bytes): + readstr = readstr.decode("utf-8") + totstr = readstr + blobfiledata + totstrdata = StringIO(totstr) + iterdata = itertools.chain("", totstrdata, "") + readroot = et.fromstringlist(iterdata) + totdata = et.tostring(readroot) + else: + raise + except Exception as excp: + self.rdmc.ui.error("Error while parsing birthcert.\n", excp) + raise BirthcertParseError(excp) + else: + iterdata = itertools.chain("", filedata, "") + newroot = et.fromstringlist(iterdata) + totdata = et.tostring(newroot) + + return totdata + + def birthcertdelete(self, options=None, compdata=None): + """Delete birth certificate function.""" + totdata = "" + databuf = StringIO() + filehand = gzip.GzipFile(mode="wb", fileobj=databuf) + + filehand.write(totdata) + filehand.close() + compresseddata = databuf.getvalue() + + if compdata: + compresseddata = compdata + + bs2 = risblobstore2.BlobStore2() + risblobstore2.BlobStore2.initializecreds(options.user, options.password) + + errorcode = bs2.write(options.key, options.namespace, compresseddata) + + if not ( + errorcode == risblobstore2.BlobReturnCodes.SUCCESS or errorcode == risblobstore2.BlobReturnCodes.NOTMODIFIED + ): + raise StandardBlobErrorHandler(errorcode) + + return errorcode + + def hpgooeyvalidation(self, options): + """Download command method validation function + + :param options: command options + :type options: options. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-f", + "--filename", + dest="filename", + help="""Use the provided filename to perform operations.""", + action="append", + default=None, + ) + customparser.add_argument( + "-r", + "--read", + dest="read", + action="store_true", + help="""read data into the provided filename""", + default=None, + ) + customparser.add_argument( + "-w", + "--write", + dest="write", + action="store_true", + help="""use the provided filename to output data""", + default=None, + ) + customparser.add_argument( + "-d", + "--delete", + dest="delete", + action="store_true", + help="""delete the file from the provided namespace""", + default=None, + ) + customparser.add_argument( + "-l", + "--list", + dest="list", + action="store_true", + help="""list the files from the provided namespace""", + default=None, + ) + customparser.add_argument( + "-k", + "--key", + dest="key", + help="""blobstore key name to use for opetations with no """ """spaces and 32 character limit""", + default=None, + ) + customparser.add_argument( + "-n", + "--namespace", + dest="namespace", + help="""namespace where operation is to be performed""", + default=None, + ) + customparser.add_argument( + "--mountabsr", + dest="mountabsr", + action="store_true", + help="""use this flag to mount absaroka repo""", + default=None, + ) + customparser.add_argument( + "--mountgaius", + dest="mountgaius", + action="store_true", + help="""use this flag to mount gaius""", + default=None, + ) + customparser.add_argument( + "--mountvid", + dest="mountvid", + action="store_true", + help="""use this flag to mount vid""", + default=None, + ) + customparser.add_argument( + "--mountflat", + dest="mountflat", + action="store_true", + help="""use this flag to mount flat mode""", + default=None, + ) + customparser.add_argument( + "--unmountabsr", + dest="unmountabsr", + action="store_true", + help="""use this flag to unmount absaroka media""", + default=None, + ) + customparser.add_argument( + "--unmountvid", + dest="unmountvid", + action="store_true", + help="""use this flag to vid media""", + default=None, + ) + customparser.add_argument( + "--unmountgaius", + dest="unmountgaius", + action="store_true", + help="""use this flag to unmount gaius media""", + default=None, + ) + customparser.add_argument( + "--unmountmedia", + dest="unmountmedia", + action="store_true", + help="""use this flag to unmount all NAND partitions""", + default=None, + ) + customparser.add_argument( + "--binfile", + dest="binfile", + action="store_true", + help="""use this flag to write and read binary files""", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/ISToolCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/ISToolCommand.py new file mode 100644 index 0000000..1d75c73 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/ISToolCommand.py @@ -0,0 +1,186 @@ +### +# Copyright 2016 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""ISTool Command for rmdc""" + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class ISToolCommand: + """ISTool class command""" + + def __init__(self): + self.ident = { + "name": "istool", + "usage": None, + "description": "Displays ilo data useful in debugging", + "summary": "displays ilo data useful in debugging", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Debug helper for iLO + + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + ilodata = "" + reglist = [] + foundreg = False + + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if args: + raise InvalidCommandLineError("Istool command does not take any arguments.") + + self.istoolvalidation(options) + + if self.rdmc.app.monolith.is_redfish: + regstr = "/redfish/v1/Registries/" + ilostr = "/redfish/v1/Managers/1/" + else: + regstr = "/rest/v1/Registries" + ilostr = "/rest/v1/Managers/1" + + try: + biosresults = self.rdmc.app.get_handler(self.rdmc.app.typepath.defs.biospath, service=True, silent=True) + regresults = self.rdmc.app.get_handler(regstr, service=True, silent=True) + romresults = self.rdmc.app.get_handler(self.rdmc.app.typepath.defs.systempath, service=True, silent=True) + iloresults = self.rdmc.app.get_handler(ilostr, silent=True, service=True) + except: + raise + + if biosresults.dict: + try: + biosreg = biosresults.dict["AttributeRegistry"] + self.rdmc.ui.printer("System has attribute registry: %s\n" % biosreg) + except Exception as excp: + biosreg = None + self.rdmc.ui.error("Attribute registry not found in BIOS.\n", excp) + + if regresults.dict: + items = regresults.dict[self.rdmc.app.typepath.defs.collectionstring] + + for item in items: + try: + schema = item["Schema"] + except: + item = self.rdmc.app.get_handler( + item[self.rdmc.app.typepath.defs.hrefstring], + service=True, + silent=True, + ) + + item = item.dict + if "Schema" in item: + schema = item["Schema"] + else: + schema = item["Registry"] + + if schema: + available = True + + locationdict = ( + self.rdmc.app.validationmanager.geturidict(item["Location"][0]) + if self.rdmc.app.validationmanager + else None + ) + extref = ( + self.rdmc.app.get_handler(locationdict, service=True, silent=True) if locationdict else None + ) + + if not extref: + available = False + + if available: + val = schema + " : Available" + reglist.append(val) + else: + val = schema + " : Not Available" + reglist.append(val) + + if schema == biosreg: + foundreg = True + + self.rdmc.ui.printer( + "The following attribute registries are in the registry \ + repository:\n" + ) + for item in reglist: + self.rdmc.ui.printer("%s\n" % item) + + if foundreg: + self.rdmc.ui.printer("The system attribute registry was found in the " "registry repository.\n") + else: + self.rdmc.ui.error("The system attribute registry was not found in " "the registry repository.\n") + + if iloresults.dict: + try: + ilodata = iloresults.dict["FirmwareVersion"] + self.rdmc.ui.printer("iLO Version: %s\n" % ilodata) + except Exception as excp: + self.rdmc.ui.error("Unable to find iLO firmware data.\n", excp) + + if romresults.dict: + try: + biosversion = romresults.dict["BiosVersion"] + self.rdmc.ui.printer("BIOS Version: %s\n" % biosversion) + except Exception as excp: + self.rdmc.ui.error("Unable to find ROM data.\n", excp) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def istoolvalidation(self, options): + """ISTool validation function""" + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/MonolithCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/MonolithCommand.py new file mode 100644 index 0000000..916b730 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/MonolithCommand.py @@ -0,0 +1,120 @@ +### +# Copyright 2016 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Monolith Command for rdmc""" + +import json + +try: + from rdmc_helper import UI, InvalidCommandLineErrorOPTS, ReturnCodes +except ImportError: + from ilorest.rdmc_helper import UI, InvalidCommandLineErrorOPTS, ReturnCodes +from redfish.rest.containers import JSONEncoder +from redfish.ris import UndefinedClientError + + +class MonolithCommand: + """Monolith class command""" + + def __init__(self): + self.ident = { + "name": "monolith", + "usage": None, + "description": "Displays entire cached data structure available", + "summary": "displays entire cached data structure available", + "aliases": ["mono"], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main monolith worker function + + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if hasattr(self.rdmc.app, "config") and self.rdmc.app.config._ac__format.lower() == "json": + options.json = True + + if self.rdmc.app.current_client: + results = self.rdmc.app.monolith.capture(redmono=options.redmono) + else: + raise UndefinedClientError() + + if options.filename: + with open(options.filename[0], "w") as monolith: + if options.json: + json.dump(results, monolith, indent=2, cls=JSONEncoder) + else: + monolith.write(str(results)) + + elif options.json: + UI().print_out_json(results) # .reduce()) + else: + UI().print_out_human_readable(results) # .reduce()) + + # Return code + return ReturnCodes.SUCCESS + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + customparser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + customparser.add_argument( + "-f", + "--filename", + dest="filename", + help="Use this flag if you wish to save the monolith" " into a file with the given filename.", + action="append", + default=None, + ) + customparser.add_argument( + "-r", + "--reduced", + dest="redmono", + action="store_true", + help="Use this flag if you wish to save the reduced monolith" " into a file with the given filename.", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/SMBiosCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/SMBiosCommand.py new file mode 100644 index 0000000..87c9b2d --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/SMBiosCommand.py @@ -0,0 +1,221 @@ +### +# Copyright 2016 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + + +# -*- coding: utf-8 -*- +"""New Command for RDMC""" + +import json +import struct + +import redfish.ris + +try: + from rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + +__filename__ = "smbios.json" + + +class SMBiosCommand: + """Main smbios command class""" + + def __init__(self): + self.ident = { + "name": "smbios", + "usage": None, + "description": "Run to get the smbios for the system." "\n\texample write smbios data to file: smbios", + "summary": "Gets the smbios for the currently logged in server and " + "write results to a file in json format.", + "aliases": [], + "auxcommands": [], + } + self.rdmc = None + self.filename = None + + def smbiosfunction(self, options): + """Main smbios command worker function + + :param options: command options + :type options: options. + """ + + sysresp = self.rdmc.app.get_handler(self.rdmc.app.typepath.defs.systempath, silent=True, service=True) + + try: + path = sysresp.dict["Oem"][self.rdmc.app.typepath.defs.oemhp]["SMBIOS"]["extref"] + except: + raise NoContentsFoundForOperationError("Unable to find ComputerSystems") + + resp = self.rdmc.app.get_handler(path, silent=True, service=True) + + if resp and resp.status == 200: + data = self.unpackdata(resp.ori) + data = {"smbios data": data} + + outfile = open(self.filename, "w") + outfile.write(json.dumps(data, indent=2, cls=redfish.ris.JSONEncoder, sort_keys=True)) + outfile.close() + + self.rdmc.ui.printer("Smbios saved to: %s\n" % self.filename) + else: + raise NoContentsFoundForOperationError("Unable to find smbios.") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def unpackdata(self, data): + """Unpacks and returns json formatted data + + :param data: data to unpack + :type data: string. + """ + + dataptr = 0 + fulldata = [] + if not isinstance(data, (bytes, bytearray)): + data = data.encode() + + try: + while True: + record_header = struct.unpack_from("BBH", data[dataptr : dataptr + 4]) + + record_type = record_header[0] + record_length = record_header[1] + record_handle = record_header[2] + + # skip to the strings + dataptr += record_length + + # read strings from end of record + record_strings = [] + + while True: + tempstr = "" + + while data[dataptr] != 0: + tempstr += chr(data[dataptr]) + dataptr += 1 + + dataptr += 1 + + if len(tempstr) == 0: + break + + record_strings.append(str(tempstr)) + + while data[dataptr] == 0: + dataptr += 1 + + fulldata.append( + { + "Type": str(record_type), + "Length": str(record_length), + "Handle": str(record_handle), + } + ) + + if len(record_strings): + fulldata[-1]["Strings"] = str(record_strings) + except IndexError: + pass + return fulldata + + def run(self, line, help_disp=False): + """Wrapper function for smbios command main function + + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if self.rdmc.app.typepath.url: + if "http" not in self.rdmc.app.typepath.url: + options.logout = True + self.cmdbase.logout_routine(self, options) + else: + options.logout = True + self.cmdbase.logout_routine(self, options) + self.smbiosvalidation(options) + + if not self.rdmc.app.typepath.flagiften: + raise IncompatibleiLOVersionError("smbios command is RedFish only.") + + self.smbiosfunction(options) + # Return code + return ReturnCodes.SUCCESS + + def smbiosvalidation(self, options): + """smbios command method validation function + + :param options: command options + :type options: options. + """ + self.cmdbase.login_select_validation(self, options) + + # filename validations and checks + self.filename = None + + if options.filename: + self.filename = options.filename[0] + + if not self.filename: + self.filename = __filename__ + + def definearguments(self, customparser): + """Wrapper function for smbios command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-f", + "--filename", + dest="filename", + help="Use this flag if you wish to use a different" + " filename than the default one. The default filename is" + " %s." % __filename__, + action="append", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/SecurityStatusCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/SecurityStatusCommand.py new file mode 100644 index 0000000..96a32a4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/SecurityStatusCommand.py @@ -0,0 +1,179 @@ +### +# Copyright 2016 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### +# -*- coding: utf-8 -*- +"""Security Status Command for rdmc""" + +import struct +from argparse import SUPPRESS +from ctypes import POINTER, c_char_p, c_ubyte, create_string_buffer + +try: + from rdmc_base_classes import RdmcCommandBase + from rdmc_helper import Encryption, InvalidCommandLineErrorOPTS, ReturnCodes +except ImportError: + from ilorest.rdmc_base_classes import RdmcCommandBase + from ilorest.rdmc_helper import Encryption, InvalidCommandLineErrorOPTS, ReturnCodes +from redfish.hpilo.risblobstore2 import BlobStore2 +from redfish.hpilo.rishpilo import BlobReturnCodes, HpIloChifAccessDeniedError + + +class SecurityStatusCommand(RdmcCommandBase): + """Security Status class command""" + + def __init__(self): + self.ident = { + "name": "securitystatus", + "usage": None, + "description": "Security status example:\n\tsecuritystatus", + "summary": "command to retrieve the current system security status and validate " "credentials via chif.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Access blobstore directly and perform desired function + + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if bool(options.user) ^ bool(options.password): + self.rdmc.ui.error("Credentials: Missing\n") + + elif options.user and options.password: + if options.encode: + options.user = Encryption.decode_credentials(options.user) + if isinstance(options.user, bytes): + options.user = options.user.decode("utf-8") + options.password = Encryption.decode_credentials(options.password) + if isinstance(options.password, bytes): + options.password = options.password.decode("utf-8") + + result = self.validate_creds(options.user, options.password) + # self.rdmc.ui.printer("Validate Creds is {}...\n".format(result)) + if result: + secstate = BlobStore2().get_security_state() + if isinstance(secstate, bytes): + if secstate == b"\x00": + state = struct.unpack("B", secstate) + state = str(state).strip(",( )") + self.rdmc.ui.printer("Security State is {}\n".format(state)) + else: + secstate = secstate.decode("utf-8") + self.rdmc.ui.printer("Security State is {}\n".format(secstate)) + else: + self.rdmc.ui.printer("Security State is {}\n".format(secstate)) + self.rdmc.ui.printer("Credentials: Valid\n") + else: + self.rdmc.ui.error("Credentials: Invalid\n") + + else: + secstate = BlobStore2().get_security_state() + if isinstance(secstate, bytes): + if secstate == b"\x00": + state = struct.unpack("B", secstate) + state = str(state).strip(",( )") + self.rdmc.ui.printer("Security State is {}\n".format(state)) + else: + secstate = secstate.decode("utf-8") + self.rdmc.ui.printer("Security State is {}\n".format(secstate)) + else: + self.rdmc.ui.printer("Security State is {}\n".format(secstate)) + + return ReturnCodes.SUCCESS + + def validate_creds(self, user, passwrd): + """Validates credentials via CHIF + + :param user: username to validate + :type user: str. + :param passwrd: password to validate + :type passwrd: str. + """ + + valid = False + dll = BlobStore2.gethprestchifhandle() + dll.ChifInitialize(None) + sec_support = dll.ChifGetSecuritySupport() + if sec_support <= 1: + dll.ChifEnableSecurity() + dll.initiate_credentials.argtypes = [c_char_p, c_char_p] + dll.initiate_credentials.restype = POINTER(c_ubyte) + + usernew = create_string_buffer(user.encode("utf-8")) + passnew = create_string_buffer(passwrd.encode("utf-8")) + + dll.initiate_credentials(usernew, passnew) + credreturn = dll.ChifVerifyCredentials() + if credreturn == 0: + valid = True + else: + valid = False + if not credreturn == BlobReturnCodes.CHIFERR_AccessDenied: + raise HpIloChifAccessDeniedError( + "Error %s - Chif Access Denied occurred while trying " "to open a channel to iLO." % credreturn + ) + + BlobStore2.unloadchifhandle(dll) + return valid + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + customparser.add_argument( + "-u", + "--user", + dest="user", + help="If you are not logged in yet, including this flag along" + " with the password and URL flags can be used to login to a" + " server in the same command." + "", + default=None, + ) + customparser.add_argument( + "-p", + "--password", + dest="password", + help="""Use the provided iLO password to log in.""", + default=None, + ) + customparser.add_argument( + "-e", + "--enc", + dest="encode", + action="store_true", + help=SUPPRESS, + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/AHSdiagCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/AHSdiagCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..58a27e5a0da835a7304e7e80926a0dfc22c17170 GIT binary patch literal 11851 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 Yn5k{R#@CRRj15@KrGkZs*HZ4k0sIaj_W%F@ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/AutomaticTestingCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/AutomaticTestingCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2d17907ca163cb4f570e2418b3fbe93d10adc017 GIT binary patch literal 68293 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/ExportAllConfigCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/ExportAllConfigCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..38b222f845a01bc8d5ecdd72d79e5750d713c5e4 GIT binary patch literal 2810 zcma)8-;dn35hf+Aw5#1apU)R3abZ*m3?Gw5B6jKCBF74kA19Lw4I@L@2=MxCQJNkU`81gY2St`e zISZzR2n5UGAHWiF*thhLKF*J#G+}Fn-zGV~FGL|e{oQ9{-TebsmBVl#``-;jyJd}A@4w3x@*(BrZWSl!h( zuUNgdslLsPH&L3#jW=-`Ng2eAPcemkHU--r)B~t;2m+3Z;Kt0E(HR`opWGD*;SxZ? z2uMrWXZUs)0VCW)eeKF_^__8a#AN{62Wrk?TXUjC9;hN%NO(_^l-Hm9KU%}!p^RpH zKe)0-FqoQE@+jj&TvK<>z3sc&!G7JUaIWscWyB&WRRU_Btl(nBQhRWTk>pZ$qv~XR zGP2*&t%Si%X)n&$V;I*C-oAEN5-R~%C2*~dmA=ix#)IJu26 z$wUpOD0vQqud-5GRiZuP1{eLd*hNhTFH3jOt&kmP5rF7&z7w{B6_+Ov9=8T+T(+WEWN zs&Bo7%dl*WXSgZYMkX5;{}LK2Dji10@LsH=Jf;?i`QB3(P>;QB)`5fr%z)k=_M(1& ztN!kD0e5f-#U?lA{CJaBf()VmQjEuyR7KWcWB+^(9wwl>tkgM<_YJ`RQ@xpXf%QWG z`?U54gUz)GOrCZ2P;$sQfX-VTX$clC!=8aDn)(9YZ}gG9=d?-bI1;D)vDDm3t9m$R-m#`c{M3 z-sQ8r3dL*9AIfHq{5>or?|^VzhdS#-0?7ng?%$kFlUN$*zo_rN1c+A_J?zs5eGfAg zQY;L$ABI`MsubJ3F#KZ`rRxzd3|RpL7q6gOKS%LC3QV?_1ky;fK-`8Z@prOK9H5TB z)w^T*`@Z-HbxdgJnplIk1Hl4G(FCOK#~J?hncp&f19CQI;o&7+-4&co0X{>KNE0Z` l+L!DwW*JVm-)lVj0HdnJP~lt$DqDMyeD|pJub#DQ{~NcK8#Mp` literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/GetInventoryCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/GetInventoryCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..26d672f02955557733663235eafec84a6d35a21d GIT binary patch literal 6824 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 OId@9czANXe`u_lGK39kU literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/HpGooeyCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/HpGooeyCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3ff40cdd2441c828fdabaadd1d1f1f12e296cd86 GIT binary patch literal 23687 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 z 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/MonolithCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/MonolithCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..608c3e4170ddc1cb7f5955772aee6aca93f89f1b GIT binary patch literal 3050 zcmb7G&u<&Y6`t8$4yh$&$&w?>cF}GFv?&` ze|2V7GFkc(`52>@9($0E{R{fP%(bW7i=q&cwD0YblA@wTx{ICNnKy6ty?O8Z-sG#R zK7s4)<{#p}t`YJ#>|DND(76YXK7>Y)ArVwK2_4c|2fp0IN!_8FdP6U53>%buLb6Sd zNH+ZeC3shJn%|uBjAZl(C0^1>SB5LqtVZIe?O~geUlYMZ^EDC8V`tbA&VY1Vvs)kL zS)RmZ9PH(3$}c<(fBi)lMuoJEl8ksjC+i4PZ0Pm+qbQBv2(Nj{a6dB2#Nai0Bb=k8DXIySOb@aP51 zsAemvO<%q=GSgtD?uX-8fFa@1vi>qyi|FkXQ`-u|IEzgfejlTA0~*J1DBd1CtuxkQ zv_ogxS5=p44C2 z`^p2v-S&uKra5w^{Uz$=^pNNu3J2fnUDRge8Ki_^!ab&+0sc%2*P5&d@7PiI>+gv_ zX`ggXA+cV-m|$}^TwO@6sV9rCwaNP2om>~qH}q8_bIryv`HaHIruvh)fp5{eMa0Un z^T&5y!3vXARhZSuTl2=83Eymq_8X6qY<adx3%riHxF*f|%>oZfiGdcCns3QH`D z@@y0zSZ|{9>O8dhA>eTn3@t98;pmU3^!|l_S<9zuxW7K!HD07&z0n!_E-SNL< z9p@kZ*Q~Stch+HN9m*P=ub4aAyozR6Jwlh37k=XoRXE;?+PY4=sA$28TpCJ755WH4|M= zy$AnLzrdTPEXBNdOaYEGLoXg-R#qEXU0P3g7?0SIlxREE(CH&#d%$)Mq=l3 zLRgeBs<@)E)c+8{TqC8eb(q;ej{JLD$Ej#mCm;3(N?0Z+ic4hVbE`8W- zVj;#23`6UOVVa9F!S7BO{=VeNLedOFkpsV}o4BFBz~&w{c!;>vAY&*j#ovWT-=>R0RXDl}gu?**=%Xy5iUB_m@nqEUy@@^?vR2udskr2NCZ&5Sz0N$B%95{Hx=1 H=!W}mBXwA* literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/SMBiosCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/SMBiosCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1f3026f088e3a7f67ea9b3180f268e2f38915fa4 GIT binary patch literal 4768 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 dx%D4V<|J28*vmRCfI6?5b?2(d9@*Zq^!EM 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/_hidden_commands/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..108217ae6c4a343281499da3fc70a05dfbc07976 GIT binary patch literal 207 zcmYk0O$x#=5QS4IC_*pc&P6-^tOOBH;Kl=l+6;DTlL<*I7Ek1r+Etg P)vT^9?uK9dC?XXfFA+A; literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/AppAccountCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/AppAccountCommand.py new file mode 100644 index 0000000..4f84adb --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/AppAccountCommand.py @@ -0,0 +1,693 @@ +### +# Copyright 2016-2024 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +""" AppAccount command for rdmc """ +import ctypes +import os +from argparse import RawDescriptionHelpFormatter +from redfish.hpilo.vnichpilo import AppAccount +from redfish.rest.connections import ChifDriverMissingOrNotFound, VnicNotEnabledError +import redfish + +from redfish.ris.rmc_helper import UserNotAdminError + +try: + from rdmc_helper import ( + LOGGER, + GenerateAndSaveAccountError, + AppAccountExistsError, + ReactivateAppAccountTokenError, + ReturnCodes, + InvalidCommandLineErrorOPTS, + IncompatibleiLOVersionError, + InvalidCommandLineError, + UsernamePasswordRequiredError, + NoAppAccountError, + VnicExistsError, + SavinginTPMError, + SavinginiLOError, + GenBeforeLoginError, + AppIdListError, + UI, + ) +except ImportError: + from ilorest.rdmc_helper import ( + LOGGER, + GenerateAndSaveAccountError, + AppAccountExistsError, + ReactivateAppAccountTokenError, + ReturnCodes, + InvalidCommandLineErrorOPTS, + IncompatibleiLOVersionError, + InvalidCommandLineError, + UsernamePasswordRequiredError, + NoAppAccountError, + VnicExistsError, + SavinginTPMError, + SavinginiLOError, + GenBeforeLoginError, + AppIdListError, + UI, + ) + + +class AppAccountCommand: + """Main command template""" + + def __init__(self): + self.ident = { + "name": "appaccount", + "usage": "appaccount\n\n", + "description": "Manages application accounts in iLO and TPM, allowing creation," + "deletion, and verification with appaccount create, appaccount delete, " + "and appaccount exists." + "Retrieves details of all application accounts using appaccount details.\n" + "Supported only on VNIC-enabled iLO7 servers.\n" + "For help on specific subcommands, run: appaccount -h.\n\n", + "summary": "Creates/Deletes application account, Checks the existence of an" + " application account, Provides details on all app accounts present in the server.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + # Check for admin privileges + if "blobstore" in self.rdmc.app.current_client.base_url or "16.1.15." in self.rdmc.app.current_client.base_url: + if os.name == "nt": + if not ctypes.windll.shell32.IsUserAnAdmin() != 0: + self.rdmc.app.typepath.adminpriv = False + elif not os.getuid() == 0: + self.rdmc.app.typepath.adminpriv = False + + if self.rdmc.app.typepath.adminpriv is False: + raise UserNotAdminError("") + + client = self.appaccountvalidation(options) + if client: + if "16.1.15.1" not in client.base_url: + raise VnicExistsError( + "Appaccount command can only be executed " "from the host OS of a VNIC-enabled iLO7 based server.\n" + ) + + # To populate the correct host app information + if "self_register" in options: + if options.self_register: + if ( + ("hostappname" in options and options.hostappname) + or ("hostappid" in options and options.hostappid) + or ("salt" in options and options.salt) + ): + raise InvalidCommandLineError( + "The parameters provided in the command are invalid." + " You may include either the --self tag " + "or the combination of --hostappid, --hostappname, and --salt tags," + " but not both.\n" + ) + else: + if options.command: + if options.command.lower() == "create": + if not (options.hostappname and options.hostappid and options.salt): + raise InvalidCommandLineError( + "Please provide all the required host application" + " information.\nTo proceed without entering host " + "application details, include " + "--self in the command.\n" + ) + elif options.command.lower() == "delete": + # Validate hostappid is provided + if not options.hostappid: + raise InvalidCommandLineError( + "--hostappid is a required parameter for the appaccount delete command.\n" + ) + + # Check if hostappid is 00b5 (self-registered) - treat as --self + is_self_registered_id = options.hostappid and "00b5" in options.hostappid.lower() + + # For self-registered accounts (--self or 00b5), no credentials required + if not options.self_register and not is_self_registered_id: + # For delete, require either credentials OR host app info (but not both are mandatory) + has_credentials = all([options.user, options.password]) + has_app_info = all([options.hostappname, options.salt]) + + # If hostappid is provided, user must provide EITHER credentials OR app info + if not has_credentials and not has_app_info: + raise InvalidCommandLineError( + "For deleting application accounts, please provide either:\n" + " 1. Username and password (using -u and -p flags), OR\n" + " 2. Host application information (using --hostappname and --salt flags)\n" + ) + + # If partial credentials or partial app info, validate completeness + if (options.user or options.password) and not has_credentials: + raise InvalidCommandLineError("Please provide both username and password\n") + if (options.hostappname or options.salt) and not has_app_info: + raise InvalidCommandLineError( + "Please provide all the required host application" + " information.\nTo proceed without entering host " + "application details, include " + "--self in the command.\n" + ) + elif options.command.lower() == "exists": + if not options.hostappid: + raise InvalidCommandLineError( + "Please provide hostappid." + " To proceed without entering the ID," + " include --self in the command.\n" + ) + elif options.command.lower() == "details": + if not options.hostappid and not options.self_register: + raise InvalidCommandLineError( + "Please provide hostappid using --hostappid or --hostappid all." + " To view self-registered account, use --self.\n" + ) + elif options.command.lower() == "reactivate": + if not (options.user and options.password): + LOGGER.error("Please provide both username and password.\n") + raise InvalidCommandLineError("Please provide both username and password.\n") + + if not (options.hostappname and options.hostappid and options.salt): + LOGGER.error( + "Please provide all the required host application" + " information.\nTo proceed without entering host " + "application details, include " + "--self in the command.\n" + ) + raise InvalidCommandLineError( + "Please provide all the required host application" + " information.\nTo proceed without entering host " + "application details, include " + "--self in the command.\n" + ) + else: + raise InvalidCommandLineError("The command you have entered is invalid.\n") + + try: + # For details command, no credentials needed (read-only operation) + # Only delete command for non-00b5 accounts needs credentials + if options.command and options.command.lower() == "details": + # Handle hostappid="all" - don't pass to AppAccount as it's not a real app ID + hostappid_value = getattr(options, "hostappid", None) if "hostappid" in options else None + if hostappid_value and hostappid_value.lower() == "all": + hostappid_value = None + + app_obj = AppAccount( + appname=getattr(options, "hostappname", None) if "hostappname" in options else "self_register", + appid="self_register", + salt=getattr(options, "salt", None) if "salt" in options else "self_register", + username=None, + password=None, + log_dir=self.rdmc.log_dir, + ) + else: + # Handle hostappid="all" for non-details commands too (though it shouldn't be used) + hostappid_value = options.hostappid if "hostappid" in options else None + if hostappid_value and hostappid_value.lower() == "all": + hostappid_value = None + + app_obj = AppAccount( + appname=options.hostappname if "hostappname" in options else "self_register", + appid=options.hostappid if "hostappid" in options else "self_register", + salt=options.salt if "salt" in options else "self_register", + username=options.user, + password=options.password, + log_dir=self.rdmc.log_dir, + ) + except Exception as excp: + raise NoAppAccountError( + "Error occured while locating application" " account. Please recheck the entered inputs.\n" + ) + + # Function to find out the iLO Generation + self.get_ilover_beforelogin(app_obj) + + # Check if app account exists - skip for details command + already_exists = False + command_lower = options.command.lower() if options.command else "" + hostappid_option = getattr(options, "hostappid", None) + skip_token_check = ( + command_lower == "details" + ) + + if not skip_token_check: + try: + # For short app IDs (4 chars), check using ListAppIds + if ( + command_lower in ["delete", "exists"] + and getattr(options, "hostappid", None) + and len(options.hostappid) == 4 + ): + try: + list_of_appids = self.rdmc.app.ListAppIds(app_obj) + for app_id in list_of_appids: + if app_id["ApplicationID"][-4:].lower() == options.hostappid.lower(): + already_exists = True + break + except Exception: + already_exists = self.rdmc.app.token_exists(app_obj) + else: + already_exists = self.rdmc.app.token_exists(app_obj) + except Exception as excp: + if command_lower != "details": + raise AppAccountExistsError("Error occurred while checking if application account exists.\n") + + if options.command: + if options.command.lower() == "create": + if not options.user or not options.password: # Check if this is the correct variable + raise UsernamePasswordRequiredError("Please enter Username and Password.\n") + + try: + errorcode = self.rdmc.app.generate_save_token(app_obj) + if errorcode == 0: + self.rdmc.ui.printer("Application account has been generated and saved successfully.\n") + return ReturnCodes.SUCCESS + except redfish.hpilo.vnichpilo.AppAccountExistsError: + self.rdmc.ui.printer("Application account already exists for the specified host application.\n") + return ReturnCodes.SUCCESS + except redfish.hpilo.vnichpilo.SavinginTPMError: # Check for specific error messages + raise SavinginTPMError( + "Failed to save the app account in TPM. " + "Please execute the appaccount delete command" + " with the same host application information and " + "attempt to create the app account again.\n" + "Alternatively, you can use the --no_app_account " + "option in the Login Command to log in using your iLO user account credentials.\n" + ) + except redfish.hpilo.vnichpilo.SavinginiLOError: + raise SavinginiLOError( + "Failed to save app account in iLO. " + "Please execute the appaccount delete command" + " with the same host application information and " + "attempt to create the app account again.\n" + "Alternatively, you can use the --no_app_account " + "option in the Login Command to log in using your iLO user account credentials.\n" + ) + except redfish.rest.v1.InvalidCredentialsError: + raise redfish.rest.v1.InvalidCredentialsError(0) + except redfish.hpilo.vnichpilo.GenerateAndSaveAccountError: + raise GenerateAndSaveAccountError( + "Error occurred while generating and saving app account. " + "Please retry after sometime.\n" + "Alternatively, you can use the --no_app_account " + "option in the Login Command to log in using your iLO user account credentials.\n" + ) + + elif options.command.lower() == "delete": + is_self = getattr(options, "self_register", False) + has_credentials = options.user and options.password + has_app_info = options.hostappname and options.salt + + # Try to delete from both TPM and iLO + deleted_from_tpm = False + deleted_from_ilo = False + app_id_to_delete = None + + # Step 1: Try to delete from TPM (may not exist after TPM reset) + try: + errorcode = self.rdmc.app.delete_token(app_obj) + if errorcode == 0: + deleted_from_tpm = True + LOGGER.debug("Successfully deleted app account from TPM") + except Exception as tpm_error: + # TPM deletion failed (token may not exist in TPM), continue to try iLO deletion + LOGGER.debug("TPM deletion failed: %s", str(tpm_error)) + pass + + # Step 2: Try to delete from iLO - requires credentials or authenticated session + if has_credentials or is_self or has_app_info: + try: + # Get the app ID to delete + list_of_appids = self.rdmc.app.ListAppIds(app_obj) + + if is_self: + for app_account in list_of_appids: + if "00b5" in app_account.get("ApplicationID", "").lower(): + app_id_to_delete = app_account["ApplicationID"] + break + elif options.hostappid: + for app_account in list_of_appids: + full_id = app_account["ApplicationID"] + # Match full ID or last 4 chars (short ID) + if full_id == options.hostappid or ( + len(options.hostappid) == 4 and full_id[-4:].lower() == options.hostappid.lower() + ): + app_id_to_delete = full_id + break + + # Delete from iLO via REST API + if app_id_to_delete: + delete_url = ( + f"/redfish/v1/AccountService/Accounts/{app_id_to_delete}" + ) + try: + self.rdmc.app.delete_handler(delete_url) + deleted_from_ilo = True + LOGGER.debug("Successfully deleted app account from iLO") + except Exception as ilo_error: + LOGGER.debug("iLO deletion failed: %s", str(ilo_error)) + except Exception as e: + LOGGER.debug("Error during iLO deletion: %s", str(e)) + + # Report success if deleted from either TPM or iLO + if deleted_from_tpm or deleted_from_ilo: + self.rdmc.ui.printer("Application account has been deleted successfully.\n") + return ReturnCodes.SUCCESS + else: + raise NoAppAccountError( + "The application account you are trying to delete does not exist.\n" + ) + + # Command to check if apptoken exists + elif options.command.lower() == "exists": + if already_exists: + self.rdmc.ui.printer("Application account exists for this host application.\n") + return ReturnCodes.SUCCESS + else: + self.rdmc.ui.printer("Application account does not exist for this hostapp.\n") + return ReturnCodes.ACCOUNT_DOES_NOT_EXIST_ERROR + + # Command to list appids and if they are present in iLO and TPM + elif options.command.lower() == "details": + try: + list_of_appids = self.rdmc.app.ListAppIds(app_obj) + except Exception: + raise AppIdListError("Error occured while retrieving list of App Ids.\n") + + selfdict = list() + if "self_register" in options and options.self_register: + for app_id in list_of_appids: + app_id_value = app_id["ApplicationID"] + # Check only for 00b5 identifier for true self-registered iLORest accounts + # (00b5 is the reserved ID prefix for iLORest self-registration) + if "00b5" in app_id_value.lower(): + selfdict = [app_id] + break + + # If no self-registered app account found, inform user + if not selfdict: + self.rdmc.ui.printer("No self-registered iLORest app account found.\n") + self.rdmc.ui.printer("Use 'appaccount details --hostappid all' to see all app accounts.\n") + return ReturnCodes.SUCCESS + + elif options.hostappid: + if options.hostappid.lower() == "all": + selfdict = list_of_appids + if ( + "onlytoken" in options + and options.onlytoken + or "onlyaccount" in options + and options.onlyaccount + ): + for i in range(len(list_of_appids)): + if "onlytoken" in options and options.onlytoken: + del selfdict[i]["ExistsIniLO"] + elif "onlyaccount" in options and options.onlyaccount: + del selfdict[i]["ExistsInTPM"] + else: + # Expand short app ID (4 chars) to full ID like master code does + target_appid = options.hostappid + if len(options.hostappid) == 4: + try: + target_appid = self.rdmc.app.ExpandAppId(app_obj, options.hostappid) + except Exception: + # If expansion fails, try matching with last 4 chars + pass + + # Handle both full and short (4 char) app IDs + for i in range(len(list_of_appids)): + full_id = list_of_appids[i]["ApplicationID"] + # Match full ID or last 4 chars for short ID + if full_id == target_appid or ( + len(options.hostappid) == 4 + and full_id[-4:].lower() == options.hostappid.lower() + ): + selfdict = [list_of_appids[i]] + if "onlytoken" in options and options.onlytoken: + del selfdict[0]["ExistsIniLO"] + elif "onlyaccount" in options and options.onlyaccount: + del selfdict[0]["ExistsInTPM"] + break + if not selfdict: + raise AppAccountExistsError( + "There is no application account exists for the given hostappid. " + "Please recheck the entered value.\n" + ) + else: + # No --hostappid provided - list all app accounts (master behavior) + selfdict = list_of_appids + if ( + "onlytoken" in options and options.onlytoken + or "onlyaccount" in options and options.onlyaccount + ): + for i in range(len(list_of_appids)): + if "onlytoken" in options and options.onlytoken: + del selfdict[i]["ExistsIniLO"] + elif "onlyaccount" in options and options.onlyaccount: + del selfdict[i]["ExistsInTPM"] + + if options.json: + tempdict = self.print_json_app_details(selfdict) + UI().print_out_json(tempdict) + else: + self.print_app_details(selfdict) + + return ReturnCodes.SUCCESS + elif options.command.lower() == "reactivate": + if not already_exists: + LOGGER.error("The application account you are trying to reactivate does not exist.") + raise NoAppAccountError("The application account you are trying to reactivate does not exist.\n") + try: + return_code = self.rdmc.app.reactivate_token(app_obj) + if return_code == 0: + self.rdmc.ui.printer("Application account has been reactivated successfully.\n") + return ReturnCodes.SUCCESS + except redfish.rest.v1.InvalidCredentialsError: + LOGGER.error("Please enter valid credentials.") + raise redfish.rest.v1.InvalidCredentialsError(0) + except Exception as excp: + LOGGER.error("Error occurred while reactivating application account.") + raise ReactivateAppAccountTokenError("Error occurred while reactivating application account.\n") + else: + raise InvalidCommandLineError("The command you have entered is invalid.\n") + + else: + raise InvalidCommandLineError("The command you have entered is invalid.\n") + + def appaccountvalidation(self, options): + """appaccount validation function + + :param options: command line options + :type options: list. + """ + return self.rdmc.login_select_validation(self, options) + + def print_json_app_details(self, selfdict): + for i in range(len(selfdict)): + selfdict[i]["ApplicationID"] = "**" + selfdict[i]["ApplicationID"][-4:] + return selfdict + + def print_app_details(self, printdict): + final_output = "" + for i in range(len(printdict)): + final_output += "Application Name: " + final_output += printdict[i]["ApplicationName"] + final_output += "\n" + final_output += "Application Id: **" + final_output += printdict[i]["ApplicationID"][-4:] + final_output += "\n" + if "ExistsInTPM" in printdict[i]: + final_output += "App account exists in TPM: " + if printdict[i]["ExistsInTPM"]: + final_output += "yes\n" + else: + final_output += "no\n" + if "ExistsIniLO" in printdict[i]: + final_output += "App account exists in iLO: " + if printdict[i]["ExistsIniLO"]: + final_output += "yes\n" + else: + final_output += "no\n" + final_output += "\n" + + self.rdmc.ui.printer(final_output) + + def get_ilover_beforelogin(self, app_obj): + try: + ilo_ver, sec_state = self.rdmc.app.getilover_beforelogin(app_obj) + if ilo_ver < 7: + raise ChifDriverMissingOrNotFound() + except ChifDriverMissingOrNotFound: + raise IncompatibleiLOVersionError("This feature is only available for iLO 7 or higher.\n") + except VnicNotEnabledError: + raise VnicExistsError( + "Unable to access iLO using virtual NIC. " + "Please ensure virtual NIC is enabled in iLO. " + "Ensure that virtual NIC in the host OS is " + "configured properly. Refer to documentation for more information.\n" + ) + except redfish.hpilo.vnichpilo.InvalidCommandLineError: + raise InvalidCommandLineError( + "There is no app account present for the given hostappid." " Please recheck the entered value.\n" + ) + except Exception: + raise GenBeforeLoginError( + "An error occurred while retrieving the iLO generation. " + "Please ensure that the virtual NIC is enabled for iLO7 based " + "servers, or that the CHIF driver is installed for iLO5 and iLO6 " + "based servers.\n " + "Note: appaccount command can only be executed from the host OS of a VNIC-enabled iLO7 server.\n" + ) + + def definearguments(self, customparser): + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + subcommand_parser = customparser.add_subparsers(dest="command") + + # Create apptoken command arguments + help_text = "To generate and save Application account" + create_parser = subcommand_parser.add_parser( + "create", + help=help_text, + description="appaccount create --username temp_user --password " + "pasxx --hostappname xxx --hostappid xxx --salt xxx", + formatter_class=RawDescriptionHelpFormatter, + ) + + create_parser.add_argument("--hostappid", dest="hostappid", help="Parameter to specify hostappid", default=None) + create_parser.add_argument( + "--hostappname", dest="hostappname", help="Parameter to specify hostappname", default=None + ) + create_parser.add_argument( + "--salt", dest="salt", help="Parameter to specify application owned salt", default=None + ) + help_text = "Self tag for customers with no access to host information." + create_parser.add_argument("--self", dest="self_register", help=help_text, action="store_true", default=False) + self.cmdbase.add_login_arguments_group(create_parser) + + # Delete apptoken command arguments + help_text = "To delete Application account" + delete_parser = subcommand_parser.add_parser( + "delete", + help=help_text, + description="appaccount delete --hostappname xxx -u user123 -p passxx", + formatter_class=RawDescriptionHelpFormatter, + ) + delete_parser.add_argument("--hostappid", dest="hostappid", help="Parameter to specify hostappid", default=None) + delete_parser.add_argument( + "--hostappname", dest="hostappname", help="Parameter to specify hostappname", default=None + ) + delete_parser.add_argument( + "--salt", dest="salt", help="Parameter to specify application owned salt", default=None + ) + help_text = "Self tag for customers with no access to host information." + delete_parser.add_argument("--self", dest="self_register", help=help_text, action="store_true", default=False) + self.cmdbase.add_login_arguments_group(delete_parser) + + # token exists command arguments + help_text = "To check if Application account exists" + exists_parser = subcommand_parser.add_parser( + "exists", + help=help_text, + description="appaccount exists --hostappid xxx", + formatter_class=RawDescriptionHelpFormatter, + ) + exists_parser.add_argument("--hostappid", dest="hostappid", help="Parameter to specify hostappid", default=None) + + help_text = "Self tag for customers with no access to host information." + exists_parser.add_argument("--self", dest="self_register", help=help_text, action="store_true", default=False) + self.cmdbase.add_login_arguments_group(exists_parser) + + # Details command arguments + help_text = "To list details of app accounts present in TPM and iLO." + details_parser = subcommand_parser.add_parser( + "details", + help=help_text, + description="appaccount details --hostappid xxx", + formatter_class=RawDescriptionHelpFormatter, + ) + details_parser.add_argument( + "--hostappid", dest="hostappid", help="Parameter to specify hostappid", default=None + ) + details_parser.add_argument( + "--only_token", + dest="onlytoken", + help="Parameter provides details of app account in TPM", + action="store_true", + default=False, + ) + details_parser.add_argument( + "--only_account", + dest="onlyaccount", + help="Parameter provides details of app account in iLO.", + action="store_true", + default=False, + ) + help_text = "Self tag for customers with no access to host information." + details_parser.add_argument("--self", dest="self_register", help=help_text, action="store_true", default=False) + details_parser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + self.cmdbase.add_login_arguments_group(details_parser) + + # Reactivate apptoken command arguments + help_text = "To reactivate Application account" + reactivate_parser = subcommand_parser.add_parser( + "reactivate", + help=help_text, + description="appaccount reactivate --username temp_user --password pasxx", + formatter_class=RawDescriptionHelpFormatter, + ) + + reactivate_parser.add_argument( + "--hostappid", dest="hostappid", help="Parameter to specify hostappid", default=None + ) + reactivate_parser.add_argument( + "--hostappname", dest="hostappname", help="Parameter to specify hostappname", default=None + ) + reactivate_parser.add_argument( + "--salt", dest="salt", help="Parameter to specify application owned salt", default=None + ) + help_text = "Self tag for customers with no access to host information." + reactivate_parser.add_argument( + "--self", dest="self_register", help=help_text, action="store_true", default=False + ) + self.cmdbase.add_login_arguments_group(reactivate_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/CertificateCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/CertificateCommand.py new file mode 100644 index 0000000..969268d --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/CertificateCommand.py @@ -0,0 +1,1481 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Certificates Command for rdmc""" + +import time +from argparse import RawDescriptionHelpFormatter + +try: + from rdmc_helper import ( + IloLicenseError, + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + NoContentsFoundForOperationError, + ReturnCodes, + ScepenabledError, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IloLicenseError, + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + NoContentsFoundForOperationError, + ReturnCodes, + ScepenabledError, + ) + +__filename__ = "certificate.txt" + +from redfish.ris import IdTokenError + + +class CertificateCommand: + """Commands Certificates actions to the server""" + + def __init__(self): + self.ident = { + "name": "certificate", + "usage": None, + "description": "Generate a certificate signing request (CSR) or import an X509 formatted" + " TLS or CA certificate.\nImport Scep Certificate.\nInvoke Auto Enroll of certificate generation\n\n" + "NOTE: Use quotes to include parameters which contain whitespace when " + 'generating a CSR.\nexample: certificate gen_csr "Hewlett Packard Enterprise"' + '"iLORest Group" "CName"\n"United States" "Texas" "Houston" "False or True"\n\n' + "NOTE: unifiedcertificate command which was augmenting certificate command is merged" + " into single command certificate", + "summary": "Command for importing both iLO and login authorization " + "certificates as well as generating iLO certificate signing requests (CSR)\n", + "aliases": ["unifiedcertificate"], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + self.view = None + self.importcert = None + self.exportcert = None + self.delete = None + self.gencsr = None + self.autoenroll = None + + def run(self, line, help_disp=False): + """Main Certificates Command function + + :param options: list of options + :type options: list. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.certificatesvalidation(options) + + returnCode = None + + if options.command == "csr": + self.rdmc.ui.printer( + "This command has been deprecated. Please use the following command: " + 'certificate gen_csr "Hewlet Packard Enterprice" "ILORestGroup" ...\n' + "It performs the same function.\n" + "Check --help for more information.\n" + ) + self.cmdbase.logout_routine(self, options) + # Return code + return returnCode + elif options.command == "ca": + self.rdmc.ui.printer( + "This command has been deprecated. Please use the following " + "command: certificate import --ca_cert \n" + "It performs the same function.\n" + "Check --help for more information.\n" + ) + self.cmdbase.logout_routine(self, options) + # Return code + return returnCode + elif options.command == "getcsr": + returnCode = self.get_csr_helper(options) + elif options.command == "crl": + self.rdmc.ui.printer( + "This command has been deprecated. Please use the following command: " + "certificate import --crl_cert \n" + "It performs the same function.\n" + "Check --help for more information.\n" + ) + self.cmdbase.logout_routine(self, options) + # Return code + return returnCode + elif options.command == "tls": + self.rdmc.ui.printer( + "This command has been deprecated. Please use the following command: " + "certificate import --tls_cert \n" + "It performs the same function.\n" + "Check --help for more information.\n" + ) + self.cmdbase.logout_routine(self, options) + # Return code + return returnCode + if "view" in options.command.lower(): + self.view = True + self.importcert = False + self.delete = False + self.gencsr = False + self.autoenroll = False + self.exportcert = False + elif "import" in options.command.lower(): + self.view = False + self.importcert = True + self.delete = False + self.gencsr = False + self.autoenroll = False + self.exportcert = False + elif "export" in options.command.lower(): + self.view = False + self.importcert = False + self.delete = False + self.gencsr = False + self.autoenroll = False + self.exportcert = True + elif "delete" in options.command.lower(): + self.view = False + self.importcert = False + self.delete = True + self.gencsr = False + self.autoenroll = False + self.exportcert = False + elif "gen_csr" in options.command.lower(): + self.view = False + self.importcert = False + self.delete = False + self.gencsr = True + self.autoenroll = False + self.exportcert = False + elif "auto_enroll" in options.command.lower(): + self.view = False + self.importcert = False + self.delete = False + self.gencsr = False + self.autoenroll = True + self.exportcert = False + + if self.view: + returnCode = self.viewfunction(options) + elif self.importcert: + returnCode = self.importfunction(options) + elif self.exportcert: + returnCode = self.exportfunction(options) + elif self.delete: + returnCode = self.deletefunction(options) + elif self.gencsr: + returnCode = self.gencsrfunction(options) + elif self.autoenroll: + if self.rdmc.app.typepath.defs.isgen10: + returnCode = self.autoenrollfunction(options) + else: + self.rdmc.ui.printer("Gen 9 doesnt support this feature\n") + returnCode = ReturnCodes.SUCCESS + + self.cmdbase.logout_routine(self, options) + # Return code + return returnCode + + def autoenrollfunction(self, options): + """Automatic Scep cert enrollement process + + :param options: list of options + :type options: list. + """ + select = self.rdmc.app.typepath.defs.securityservice + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + bodydict = results.resp.dict + + try: + for item in bodydict["Links"]: + if "AutomaticCertificateEnrollment" in item: + path = bodydict["Links"]["AutomaticCertificateEnrollment"]["@odata.id"] + break + except: + path = path + "AutomaticCertificateEnrollment" + + body = { + "AutomaticCertificateEnrollmentSettings": { + "ServiceEnabled": eval(options.autoenroll_ScepService.strip('"')), + "ServerUrl": options.autoenroll_scep_enrollAddress.strip('"'), + "ChallengePassword": options.autoenroll_challengepassword.strip('"'), + }, + "HttpsCertCSRSubjectValue": { + "OrgName": options.autoenroll_orgname.strip('"'), + "OrgUnit": options.autoenroll_orgunit.strip('"'), + "CommonName": options.autoenroll_commonname.strip('"'), + "Country": options.autoenroll_country.strip('"'), + "State": options.autoenroll_state.strip('"'), + "City": options.autoenroll_city.strip('"'), + "IncludeIP": eval(options.autoenroll_includeIP.strip('"')), + }, + } + + try: + results = self.rdmc.app.patch_handler(path, body, silent=True) + + i = 0 + results1 = self.rdmc.app.get_handler(path, silent=True) + while i < 9 and ( + results1.dict["AutomaticCertificateEnrollmentSettings"]["CertificateEnrollmentStatus"] == "InProgress" + ): + results1 = self.rdmc.app.get_handler(path, silent=True) + time.sleep(1) + i = i + 1 + + if results.status == 200 and ( + not (results1.dict["AutomaticCertificateEnrollmentSettings"]["CertificateEnrollmentStatus"] == "Failed") + ): + self.rdmc.ui.printer("Auto enrolment Enable/Disable operation successful \n") + return ReturnCodes.SUCCESS + elif results.status == 400: + self.rdmc.ui.error( + "There was a problem with auto enroll, Please check whether Scep CA cert is imported \t\n" + ) + + return ReturnCodes.SCEP_ENABLED_ERROR + else: + self.rdmc.ui.error( + "There was a problem with auto enroll, Plese Check the Url/Password whether it is correct\n" + ) + return ReturnCodes.SCEP_ENABLED_ERROR + except IloLicenseError: + self.rdmc.ui.error("License Error Occured while auto enroll\n") + return ReturnCodes.ILO_LICENSE_ERROR + except IdTokenError: + self.rdmc.ui.printer("Insufficient Privilege to auto enroll scep certificate process\n") + return ReturnCodes.RIS_MISSING_ID_TOKEN + + def gencsrfunction(self, options): + """Main Certificates Command function + + :param options: list of options + :type options: list. + """ + try: + select = self.rdmc.app.typepath.defs.hphttpscerttype + results = self.rdmc.app.select(selector=select) + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + bodydict = results.resp.dict + + try: + for item in bodydict["Actions"]: + if "GenerateCSR" in item: + if self.rdmc.app.typepath.defs.isgen10: + action = item.split("#")[-1] + else: + action = "GenerateCSR" + + path = bodydict["Actions"][item]["target"] + break + except: + action = "GenerateCSR" + except: + path = "redfish/v1/Managers/1/SecurityService/HttpsCert" + action = "GenerateCSR" + + body = { + "Action": action, + "OrgName": options.gencsr_orgname.strip('"'), + "OrgUnit": options.gencsr_orgunit.strip('"'), + "CommonName": options.gencsr_commonname.strip('"'), + "Country": options.gencsr_country.strip('"'), + "State": options.gencsr_state.strip('"'), + "City": options.gencsr_city.strip('"'), + "IncludeIP": eval(options.gencsr_parser_includeIP.strip('"')), + } + + try: + results = self.rdmc.app.post_handler(path, body) + if results.status == 200: + return ReturnCodes.SUCCESS + except ScepenabledError: + self.rdmc.ui.printer("SCEP is enabled , CSR cant be generated \n") + return ReturnCodes.SCEP_ENABLED_ERROR + except IloLicenseError: + self.rdmc.ui.error("License Error Occured while generating CSR") + return ReturnCodes.ILO_LICENSE_ERROR + except IdTokenError: + self.rdmc.ui.printer("Insufficient Privilege to generate CSR\n") + return ReturnCodes.RIS_MISSING_ID_TOKEN + + def deletefunction(self, options): + """Certificate Delete Function + + :param options: list of options + :type options: list. + """ + + select = self.rdmc.app.typepath.defs.hphttpscerttype + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + try: + results = self.rdmc.app.delete_handler(path, silent=True) + if results.status == 200: + self.rdmc.ui.printer("Deleted the https certifcate successfully\n") + return ReturnCodes.SUCCESS + if results.status == 403: + self.rdmc.ui.error("Insufficient Privilege to delete certificate\n") + return ReturnCodes.RIS_MISSING_ID_TOKEN + if results.status == 400: + self.rdmc.ui.error("SCEP is enabled , Cant delete the certificate\n") + return ReturnCodes.SCEP_ENABLED_ERROR + except IloLicenseError: + self.rdmc.ui.error("License Error Occured while delete") + return ReturnCodes.ILO_LICENSE_ERROR + except IncompatibleiLOVersionError: + self.rdmc.ui.error("iLO FW version on this server doesnt support this operation") + return ReturnCodes.INCOMPATIBLE_ILO_VERSION_ERROR + + def viewfunction(self, options): + """View scep certifcates or https certificates + + :param options: list of options + :type options: list. + """ + + if options.scep_cert: + if self.rdmc.app.typepath.defs.isgen10: + self.view_scepcertificate() # View scep certificates + else: + self.rdmc.ui.printer("Feature not supported on Gen 9\n") + return ReturnCodes.SUCCESS + if options.https_cert: + self.view_httpscertificate() # View https certificates + + def view_scepcertificate(self): + """ + View Scep certificate + """ + select = self.rdmc.app.typepath.defs.securityservice + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + bodydict = results.resp.dict + + try: + for item in bodydict["Links"]: + if "AutomaticCertificateEnrollment" in item: + path = bodydict["Links"]["AutomaticCertificateEnrollment"]["@odata.id"] + break + except: + path = path + "AutomaticCertificateEnrollment" + + try: + results = self.rdmc.app.get_handler(path, silent=True) + if results.status == 200: + self.rdmc.ui.printer("Scep Certificate details ...\n") + results = results.dict + self.print_cert_info(results) + return ReturnCodes.SUCCESS + + except IloLicenseError: + self.rdmc.ui.error("Error Occured while Uninstall") + return ReturnCodes.ILO_LICENSE_ERROR + + def print_cert_info(self, results): + """ + Prints the cert info + """ + for key, value in results.items(): + if "@odata" not in key: + if type(value) is dict: + self.print_cert_info(value) + else: + self.rdmc.ui.printer(key + ":" + str(value) + "\n") + + def view_httpscertificate(self): + """ + View Https certificate + """ + try: + select = self.rdmc.app.typepath.defs.hphttpscerttype + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + except: + path = "redfish/v1/Managers/1/SecurityService/HttpsCert" + + try: + results = self.rdmc.app.get_handler(path, silent=True) + if results.status == 200: + self.rdmc.ui.printer("Https Certificate details ...\n") + results = results.dict + self.print_cert_info(results) + return ReturnCodes.SUCESS + except IloLicenseError: + self.rdmc.ui.error("Error Occured while Uninstall") + return ReturnCodes.ILO_LICENSE_ERROR + + def exportfunction(self, options): + result = self.exportplatformhelper(options) + + if result: + if options.filename: + self.file_handler(next(iter(options.filename)), result, options, "wb") + self.rdmc.ui.printer("The certificate was saved to: %s\n" % next(iter(options.filename))) + return ReturnCodes.SUCCESS + else: + self.rdmc.ui.printer("The certificate retrieved is as follows:\n%s\n" % result) + return ReturnCodes.SUCCESS + else: + raise NoContentsFoundForOperationError("An error occurred retrieving the requested certificate.\n") + + def exportplatformhelper(self, options): + """Helper function for exporting a platform certificate + :param options: list of options + :type options: list. + """ + + str_type = "PlatformCert" + ss_instance = next(iter(self.rdmc.app.select("SecurityService." + ".", path_refresh=True))) + if options.ldevid_cert: + str_type = "iLOLDevID" + elif options.idevid_cert: + str_type = "iLOIDevID" + elif options.systemiak_cert: + str_type = "SystemIAK" + elif options.systemidevid_cert: + str_type = "SystemIDevID" + instance_path_uri = ( + (ss_instance.dict[str_type]["Certificates"][self.rdmc.app.typepath.defs.hrefstring]) + if ss_instance.dict.get("SystemIAK") + else None + ) + instance_data = self.rdmc.app.get_handler(instance_path_uri, silent=True) + cert = None + if instance_data.dict.get("Members"): + cert = self.rdmc.app.get_handler( + instance_data.dict["Members"][getattr(options, "id", 0) - 1].get( + self.rdmc.app.typepath.defs.hrefstring + ), + silent=True, + ).dict + return cert.get("CertificateString") + else: + raise NoContentsFoundForOperationError( + "Unable to find specified certificate at " "position %s." % getattr(options, "id", 0) + ) + + def file_handler(self, filename, data, options, operation="rb"): + """ + Wrapper function to read or write data to a respective file + :param data: data to be written to output file + :type data: container (list of dictionaries, dictionary, etc.) + :param file: filename to be written + :type file: string (generally this should be self.clone_file or tmp_clone_file + :param operation: file operation to be performed + :type operation: string ('w+', 'a+', 'r+') + :param options: command line options + :type options: attribute + :returns: json file data + """ + writeable_ops = ["wb", "w", "w+", "a", "a+"] + + if operation in writeable_ops: + with open(filename, operation) as fh: + try: + data = data.encode("UTF-8") + except IOError: + raise InvalidFileInputError("Unable to write to file '%s'" % filename) + except UnicodeEncodeError: + pass + finally: + fh.write(data) + else: + with open(filename, operation) as fh: + fdata = fh.read() + try: + return fdata.decode("UTF-8") + except UnicodeDecodeError: + return fdata + except IOError: + raise InvalidFileInputError("Unable to read from file '%s'" % filename) + + def importfunction(self, options): + if self.rdmc.app.typepath.defs.isgen10: + return self.importfunctionhelper(options) + else: + self.rdmc.ui.printer("Gen 9 doesnt support this feature\n") + return ReturnCodes.SUCCESS + + def importscephelper(self, options): + """ + Import Scep certificate + """ + select = self.rdmc.app.typepath.defs.securityservice + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + bodydict = results.resp.dict + + try: + for item in bodydict["Links"]: + if "AutomaticCertificateEnrollment" in item: + path = bodydict["Links"]["AutomaticCertificateEnrollment"]["@odata.id"] + break + except: + path = path + "AutomaticCertificateEnrollment" + + path = path + "Actions/HpeAutomaticCertEnrollment.ImportCACertificate" + + action = "HpeAutomaticCertEnrollment.ImportCACertificate" + + certdata = None + scep_CACert = options.certfile + + try: + with open(scep_CACert) as certfile: + certdata = certfile.read() + certfile.close() + except: + pass + + body = {"Action": action, "Certificate": certdata} + + try: + result = self.rdmc.app.post_handler(path, body) + if result.status == 200: + self.rdmc.ui.printer("Imported the scep certificate successfully\n") + return ReturnCodes.SUCCESS + except IdTokenError: + self.rdmc.ui.printer("Insufficient Privilege to import scep CA certificate\n") + return ReturnCodes.RIS_MISSING_ID_TOKEN + except IloLicenseError: + self.rdmc.ui.error("Error Occured while importing scep certificate") + return ReturnCodes.ILO_LICENSE_ERROR + except IncompatibleiLOVersionError: + self.rdmc.ui.error("iLO FW version on this server doesnt support this operation") + return ReturnCodes.INCOMPATIBLE_ILO_VERSION_ERROR + + def importfunctionhelper(self, options): + result = None + if getattr(options, "scep_cert"): + result = self.importscephelper(options) + elif getattr(options, "ca_cert"): + result = self.importcahelper(options) + elif getattr(options, "crl_cert"): + result = self.importcrlhelper(options) + elif getattr(options, "tls_cert"): + result = self.importtlshelper(options) + elif ( + getattr(options, "ldevid_cert") + or getattr(options, "idevid_cert") + or getattr(options, "systemiak_cert") + or getattr(options, "systemidevid_cert") + or getattr(options, "platform_cert") + ): + result = self.importplatformhelper(options) + + return result + + def generatecerthelper(self, options): + """Main Certificates Command function + + :param options: list of options + :type options: list. + """ + self.rdmc.ui.printer( + "Warning:Command CSR has been replaced with Gen_csr comamnd and " + "CSR command will be deprecated in next release of our tool. Please plan to use gen_csr command instead \n" + ) + select = self.rdmc.app.typepath.defs.hphttpscerttype + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + bodydict = results.resp.dict + + try: + for item in bodydict["Actions"]: + if "GenerateCSR" in item: + if self.rdmc.app.typepath.defs.isgen10: + action = item.split("#")[-1] + else: + action = "GenerateCSR" + + path = bodydict["Actions"][item]["target"] + break + except: + action = "GenerateCSR" + + body = { + "Action": action, + "OrgName": options.csr_orgname.strip('"'), + "OrgUnit": options.csr_orgunit.strip('"'), + "CommonName": options.csr_commonname.strip('"'), + "Country": options.csr_country.strip('"'), + "State": options.csr_state.strip('"'), + "City": options.csr_city.strip('"'), + } + + self.rdmc.ui.printer( + "iLO is creating a new certificate signing request. " "This process can take up to 10 minutes.\n" + ) + + try: + self.rdmc.app.post_handler(path, body) + return ReturnCodes.SUCCESS + except ScepenabledError: + self.rdmc.ui.printer("SCEP is enabled , operation not allowed \n") + return ReturnCodes.SCEP_ENABLED_ERROR + + def getcerthelper(self, options): + """Helper function for importing CRL certificate + + :param options: list of options + :type options: list. + """ + + select = self.rdmc.app.typepath.defs.hphttpscerttype + results = self.rdmc.app.select(selector=select, path_refresh=True) + + try: + results = results[0] + except: + pass + + if results: + try: + csr = results.resp.dict["CertificateSigningRequest"] + if not csr: + raise ValueError + except (KeyError, ValueError): + raise NoContentsFoundForOperationError( + "Unable to find a valid certificate. If " + "you just generated a new certificate " + "signing request the process may take " + "up to 10 minutes." + ) + + if not options.filename: + filename = __filename__ + else: + filename = options.filename[0] + + outfile = open(filename, "w") + outfile.write(csr) + outfile.close() + + self.rdmc.ui.printer("Certificate saved to: %s\n" % filename) + return ReturnCodes.SUCCESS + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + def get_csr_helper(self, options): + result = None + if options.TLSCERT: + instance = next(iter(self.rdmc.app.select("HttpsCert.", path_refresh=True))) + result = instance.dict.get("CertificateSigningRequest") + elif options.PLATFORM: + tmp = self.gen_csr_helper(options) + if tmp: + result = tmp.dict.get("CSRString") + + if result: + if not options.filename: + filename = __filename__ + else: + filename = options.filename[0] + + outfile = open(filename, "w") + outfile.write(result) + outfile.close() + self.rdmc.ui.printer("Certificate saved to: %s\n" % filename) + return ReturnCodes.SUCCESS + else: + self.rdmc.ui.error( + "An error occurred retrieving a CSR. Check whether CSR is requested , " + "if not kindly run gen_csr command and generate CSR" + ) + + def gen_csr_helper(self, options): + """ + :param options: list of options + :type options: attributes. + """ + body = None + path = None + action = "GenerateCSR" + if options.TLSCERT: + instance = next(iter(self.rdmc.app.select("HttpsCert.", path_refresh=True))) + body = { + "Action": action, + "OrgName": options.csr_orgname.strip('"'), + "OrgUnit": options.csr_orgunit.strip('"'), + "CommonName": options.csr_commonname.strip('"'), + "Country": options.csr_country.strip('"'), + "State": options.csr_state.strip('"'), + "City": options.csr_city.strip('"'), + } + + elif options.PLATFORM: + # There is seemingly no way to update the Certificate subject data which + # appears problematic. + _ = next(iter(self.rdmc.app.select("CertificateService.", path_refresh=True))) + ss_instance = next(iter(self.rdmc.app.select("SecurityService.", path_refresh=True))) + cert_obtain_path = ss_instance.dict.get("iLOLDevID")[next(iter(ss_instance.dict.get("iLOLDevID")))].get( + self.rdmc.app.typepath.defs.hrefstring + ) + if not cert_obtain_path: + raise NoContentsFoundForOperationError("Unable to find specified certificate path" " for CSR request") + instance = next(iter(self.rdmc.app.select("CertificateService.", path_refresh=True))) + body = {"CertificateCollection": {self.rdmc.app.typepath.defs.hrefstring: cert_obtain_path}} + + try: + for act in instance.dict.get("Actions"): + if "GenerateCSR" in act: + if self.rdmc.app.typepath.defs.isgen10: + action = act.split("#")[-1] + else: + action = "GenerateCSR" + path = instance.dict["Actions"][act]["target"] + break + except: + raise NoContentsFoundForOperationError("Unable to find specified certificate action" "path for CSR request") + + self.rdmc.ui.printer( + "iLO is creating a new certificate signing request. " "This request may take up to 10 minutes.\n" + ) + return self.rdmc.app.post_handler(path, body) + + def importtlshelper(self, options): + """Helper function for importing TLS certificate + + :param options: list of options + :type options: list. + """ + tlsfile = options.certfile + + try: + with open(tlsfile) as certfile: + certdata = certfile.read() + certfile.close() + except: + raise InvalidFileInputError("Error loading the specified file.") + + select = self.rdmc.app.typepath.defs.hphttpscerttype + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + bodydict = results.resp.dict + try: + for item in bodydict["Actions"]: + if "ImportCertificate" in item: + if self.rdmc.app.typepath.defs.isgen10: + action = item.split("#")[-1] + else: + action = "ImportCertificate" + path = bodydict["Actions"][item]["target"] + break + except: + action = "ImportCertificate" + + body = {"Action": action, "Certificate": certdata} + + try: + result = self.rdmc.app.post_handler(path, body) + if result.status == 200: + self.rdmc.ui.printer("Imported the TLS certificate successfully\n") + return ReturnCodes.SUCCESS + except IdTokenError: + self.rdmc.ui.printer("Insufficient Privilege to import TLS certificate\n") + return ReturnCodes.RIS_MISSING_ID_TOKEN + except ScepenabledError: + self.rdmc.ui.printer("SCEP is enabled , operation not allowed \n") + return ReturnCodes.SCEP_ENABLED_ERROR + except IloLicenseError: + self.rdmc.ui.error("Error occurred while importing TLS certificate") + return ReturnCodes.ILO_LICENSE_ERROR + except IncompatibleiLOVersionError: + self.rdmc.ui.error("iLO FW version on this server doesnt support this operation") + return ReturnCodes.INCOMPATIBLE_ILO_VERSION_ERROR + + def importcrlhelper(self, options): + """Helper function for importing CRL certificate + + :param options: list of options + :type options: list. + """ + if not self.rdmc.app.typepath.flagiften: + raise IncompatibleiLOVersionError("This certificate is not available on this system.") + + select = "HpeCertAuth." + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + bodydict = results.resp.dict + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + for item in bodydict["Actions"]: + if "ImportCRL" in item: + action = item.split("#")[-1] + path = bodydict["Actions"][item]["target"] + break + + body = {"Action": action, "ImportUri": options.certfile} + # self.rdmc.app.post_handler(path, body) + try: + result = self.rdmc.app.post_handler(path, body) + if result.status == 200: + self.rdmc.ui.printer("Imported the CRL certificate successfully\n") + return ReturnCodes.SUCCESS + except IdTokenError: + self.rdmc.ui.printer("Insufficient Privilege to import CRL certificate\n") + return ReturnCodes.RIS_MISSING_ID_TOKEN + except IloLicenseError: + self.rdmc.ui.error("Error Occured while importing CRL certificate") + return ReturnCodes.ILO_LICENSE_ERROR + except IncompatibleiLOVersionError: + self.rdmc.ui.error("iLO FW version on this server doesnt support this operation") + return ReturnCodes.INCOMPATIBLE_ILO_VERSION_ERROR + + def importcahelper(self, options): + """Helper function for importing CA certificate + + :param options: list of options + :type options: list. + """ + if not self.rdmc.app.typepath.flagiften: + raise IncompatibleiLOVersionError("This certificate is not available on this system.") + + tlsfile = options.certfile + + try: + with open(tlsfile) as certfile: + certdata = certfile.read() + certfile.close() + except: + raise InvalidFileInputError("Error loading the specified file.") + + select = "HpeCertAuth." + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + bodydict = results.resp.dict + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + for item in bodydict["Actions"]: + if "ImportCACertificate" in item: + action = item.split("#")[-1] + path = bodydict["Actions"][item]["target"] + break + + body = {"Action": action, "Certificate": certdata} + + try: + result = self.rdmc.app.post_handler(path, body) + if result.status == 200: + self.rdmc.ui.printer("Imported the CA certificate successfully\n") + return ReturnCodes.SUCCESS + except IdTokenError: + self.rdmc.ui.printer("Insufficient Privilege to import CA certificate\n") + return ReturnCodes.RIS_MISSING_ID_TOKEN + except IloLicenseError: + self.rdmc.ui.error("Error occurred while importing CA certificate") + return ReturnCodes.ILO_LICENSE_ERROR + except IncompatibleiLOVersionError: + self.rdmc.ui.error("iLO FW version on this server doesnt support this operation") + return ReturnCodes.INCOMPATIBLE_ILO_VERSION_ERROR + + def importplatformhelper(self, options): + """Helper function for importing a platform certificate + :param options: options attributes + :type options: attributes + """ + + # ss_instance = next( + # iter(self.rdmc.app.select("SecurityService.", path_refresh=True)) + # ) + if getattr(options, "ldevid_cert"): + instance_path_uri = "/redfish/v1/Managers/1/Diagnostics/Actions/HpeiLODiagnostics.ImportiLOLDevID" + else: + ss_instance = self.rdmc.app.get_handler("/redfish/v1/Managers/1/Diagnostics/", service=True, silent=True) + instance_path_uri = None + + if getattr(options, "ldevid_cert"): + type = "iLOLDevID" + elif getattr(options, "idevid_cert"): + type = "iLOIDevID" + elif getattr(options, "systemiak_cert"): + type = "SystemIAK" + elif getattr(options, "systemidevid_cert"): + type = "SystemIDevID" + elif getattr(options, "platform_cert"): + type = "PlatformCert" + else: + raise InvalidCommandLineErrorOPTS( + "An invalid set of options were selected...verify " " options were selected correctly and re-try." + ) + type_totarget = "#HpeiLODiagnostics.Import" + type + + if not instance_path_uri: + instance_path_uri = ss_instance.dict["Actions"][type_totarget]["target"] + + # instance_path_uri = ( + # ( + # ss_instance.dict[type]["Certificates"][ + # self.rdmc.app.typepath.defs.hrefstring + # ] + # ) + # if ss_instance.dict.get("SystemIAK") + # else None + # ) + if instance_path_uri: + certdata = None + try: + with open(options.certfile) as cf: + certdata = cf.read() + except: + raise InvalidFileInputError("Error loading the specified file.") + + payload = {"Certificate": certdata} + + if certdata: + try: + result = self.rdmc.app.post_handler(instance_path_uri, payload) + if result.status == 200: + self.rdmc.ui.printer("Imported the %s certificate successfully\n" % type) + return ReturnCodes.SUCCESS + except IdTokenError: + self.rdmc.ui.printer("Insufficient Privilege to import %s certificate\n" % type) + return ReturnCodes.RIS_MISSING_ID_TOKEN + except IloLicenseError: + self.rdmc.ui.error("Error Occured while importing %s certificate\n" % type) + return ReturnCodes.ILO_LICENSE_ERROR + except IncompatibleiLOVersionError: + self.rdmc.ui.error("iLO FW version on this server doesnt support this operation") + return ReturnCodes.INCOMPATIBLE_ILO_VERSION_ERROR + + def certificatesvalidation(self, options): + """certificates validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for certificates command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + subcommand_parser = customparser.add_subparsers(dest="command") + + # gen csr sub-parser + gen_csr_help = "Please use the below example command to execute the same function." + gen_csr_parser = subcommand_parser.add_parser( + "csr", + help=gen_csr_help, + description=gen_csr_help + "\nexample: certificate gen_csr [ORG_NAME] [ORG_UNIT]" + " [COMMON_NAME] [COUNTRY] [STATE] [CITY]\n\nNOTE: please make " + "certain the order of arguments is correct.", + formatter_class=RawDescriptionHelpFormatter, + ) + gen_csr_parser.add_argument( + "csr_orgname", + help="Organization name. i.e. Hewlett Packard Enterprise.", + metavar="ORGNAME", + ) + gen_csr_parser.add_argument( + "csr_orgunit", + help="Organization unit. i.e. Intelligent Provisioning.", + metavar="ORGUNIT", + ) + gen_csr_parser.add_argument( + "csr_commonname", + help="Organization common name. i.e. Common Organization Name.", + metavar="ORGCNAME", + ) + gen_csr_parser.add_argument( + "csr_country", + help="Organization country. i.e. United States.", + metavar="ORGCOUNTRY", + ) + gen_csr_parser.add_argument("csr_state", help="Organization state. i.e. Texas.", metavar="ORGSTATE") + gen_csr_parser.add_argument("csr_city", help="Organization city. i.e. Houston.", metavar="ORGCITY") + self.cmdbase.add_login_arguments_group(gen_csr_parser) + + # get csr + get_csr_help = ( + "Retrieve the generated certificate signing request (CSR) printed to the " "console or to a json file." + ) + get_csr_parser = subcommand_parser.add_parser( + "getcsr", + help=get_csr_help, + description=get_csr_help + + "\nexample: certificate getcsr\nexample: certificate getcsr --TLS_CERT/--PLATFORM_CERT" + "-f mycsrfile.json", + formatter_class=RawDescriptionHelpFormatter, + ) + get_csr_parser.add_argument( + "--TLS_CERT", + dest="TLSCERT", + help="specify to retrieve a TLS/SSL certificate signing request.", + action="store_true", + default=None, + ) + get_csr_parser.add_argument( + "--PLATFORM_CERT", + dest="PLATFORM", + help="specify to retrieve a platform certificate signing request.", + action="store_true", + default=None, + ) + get_csr_parser.add_argument( + "-f", + "--filename", + dest="filename", + help="Use this flag if you wish to use a different" + " filename for the certificate signing request. The default" + " filename is %s." % __filename__, + action="append", + default=None, + ) + self.cmdbase.add_login_arguments_group(get_csr_parser) + + # ca certificate + ca_help = "This command has been deprecated. Please use the below example command to execute the same function." + ca_parser = subcommand_parser.add_parser( + "ca", + help=ca_help, + description=ca_help + "\nexample: certificate import --ca_cert mycertfile.txt\nNote: The " + "certificate must be in X.509 format", + formatter_class=RawDescriptionHelpFormatter, + ) + ca_parser.add_argument("certfile", help="X.509 formatted CA certificate", metavar="CACERTFILE") + self.cmdbase.add_login_arguments_group(ca_parser) + + # crl certificate + crl_help = ( + "This command has been deprecated. Please use the below example command to execute the same function." + ) + crl_parser = subcommand_parser.add_parser( + "crl", + help=crl_help, + description=crl_help + "\nexample: certificate import --crl_cert https://mycertfileurl/mycertfile.txt" + "\nNote: The certificate must be in X.509 format", + formatter_class=RawDescriptionHelpFormatter, + ) + crl_parser.add_argument( + "certfile_url", + help="URL pointing to the location of the X.509 CA certificate", + metavar="CERTFILEURL", + ) + self.cmdbase.add_login_arguments_group(crl_parser) + + # tls certificate + tls_help = ( + "This command has been deprecated. Please use the below example command to execute the same function." + ) + tls_parser = subcommand_parser.add_parser( + "tls", + help=tls_help, + description=tls_help + "\nexample: certificate import --tls_cert mycertfile.txt\nNote: The " + "certificate must be in TLS X.509 format", + formatter_class=RawDescriptionHelpFormatter, + ) + tls_parser.add_argument("certfile", help="X.509 formatted TLS certificate", metavar="TLSCERTFILE") + self.cmdbase.add_login_arguments_group(tls_parser) + + # view certificate + view_help = "View Certificates (https or scep)" + view_parser = subcommand_parser.add_parser( + "view", + help=view_help, + description=view_help + + "\nexample: certificate view --https_cert \n or \n certificate view --scep_cert \n" + + "Webserver certificate whether self-signed or manually imported or issued by SCEP server can be viewed", + formatter_class=RawDescriptionHelpFormatter, + ) + view_parser.add_argument( + "--scep_cert", + dest="scep_cert", + help="Gets the information of SCEP settings for iLO such as SCEP enable status, URL of the SCEP server," + + " ChallengePassword, SCEP CA certificate name, webserver CSR subject contents, SCEP enrollment status", + action="store_true", + ) + view_parser.add_argument( + "--https_cert", + dest="https_cert", + help="Gets the https certificate whether self-signed or manually imported or issued by SCEP server", + action="store_true", + ) + self.cmdbase.add_login_arguments_group(view_parser) + + # import certificate + import_help = "Imports the Certificates." + import_parser = subcommand_parser.add_parser( + "import", + help=import_help, + description=import_help + + "\nexample: certificate import --scep_cert certificate.txt \n" + + " make sure you are providing a .txt file input.\n", + formatter_class=RawDescriptionHelpFormatter, + ) + import_parser.add_argument( + "--scep_cert", + dest="scep_cert", + help="Gets the https certificate whether self-signed or manually imported or issued by SCEP server", + action="store_true", + ) + import_parser.add_argument( + "--ca_cert", + dest="ca_cert", + help="Upload a X.509 formatted CA certificate to iLO.", + action="store_true", + ) + import_parser.add_argument( + "--crl_cert", + dest="crl_cert", + help="Provide iLO with a URL to retrieve the X.509 formatted CA certificate.", + action="store_true", + ) + import_parser.add_argument( + "--tls_cert", + dest="tls_cert", + help="Upload a X.509 TLS certificate to iLO.", + action="store_true", + ) + import_parser.add_argument( + "--idevid_cert", + dest="idevid_cert", + help="Upload an IDEVID certificate.", + action="store_true", + ) + import_parser.add_argument( + "--ldevid_cert", + dest="ldevid_cert", + help="Upload an LDEVID certificate.", + action="store_true", + ) + import_parser.add_argument( + "--systemiak_cert", + dest="systemiak_cert", + help="Upload an System IAK certificate.", + action="store_true", + ) + import_parser.add_argument( + "--systemidevid_cert", + dest="systemidevid_cert", + help="Upload an system IDEVID certificate.", + action="store_true", + ) + import_parser.add_argument( + "--platform_cert", + dest="platform_cert", + help="Upload a platform certificate.", + action="store_true", + ) + import_parser.add_argument( + "--from_url", + dest="from_url", + help="Use this flag to specify a URL for certificate import", + action="append", + default=None, + ) + import_parser.add_argument( + "certfile", + help="Certificate can be imported via POST action", + metavar="certfile", + ) + self.cmdbase.add_login_arguments_group(import_parser) + + # export cert + export_help = "Pull an X.509 formatted platform certificate from iLO." + export_parser = subcommand_parser.add_parser( + "export", + help=export_help, + description=export_help + "\nExample: certificate export --IDEVID -f " "myidevidfile\n", + formatter_class=RawDescriptionHelpFormatter, + ) + + export_parser.add_argument( + "--idevid_cert", + dest="idevid_cert", + help="Specify for an IDEVID certificate. ", + action="store_true", + default=None, + ) + export_parser.add_argument( + "--ldevid_cert", + dest="ldevid_cert", + help="Specify for an LDEVID certificate. ", + action="store_true", + default=None, + ) + export_parser.add_argument( + "--systemiak_cert", + dest="systemiak_cert", + help="Specify for a system IAK certificate.", + action="store_true", + default=None, + ) + export_parser.add_argument( + "--systemidevid_cert", + dest="systemidevid_cert", + help="Specify for a system IDEVID certificate.", + action="store_true", + default=None, + ) + export_parser.add_argument( + "--platform_cert", + dest="platform_cert", + help="Specify for a platform certificate.", + action="store_true", + default=None, + ) + export_parser.add_argument( + "--id", + dest="id", + help="Optionally specify the certificate instance, if multiples are available. If" + "the instance specified is not available, then the next is retrieved. Default is" + "the first instance", + default=1, + ) + export_parser.add_argument( + "-f", + "--filename", + dest="filename", + help="Use this flag to import a certificate from or export a certificate to a file.", + action="append", + default=None, + ) + + self.cmdbase.add_login_arguments_group(export_parser) + + # delete certificate + delete_help = "Deletes the https Certificate" + delete_parser = subcommand_parser.add_parser( + "delete", + help=delete_help, + description=delete_help + "\nexample: certificate delete \n delete the https_cert certificate ", + formatter_class=RawDescriptionHelpFormatter, + ) + + self.cmdbase.add_login_arguments_group(delete_parser) + + # gen csr sub-parser + gencsr_help = ( + "Generate a certificate signing request (CSR) for iLO SSL certificate " + "authentication.\nNote: iLO will create a Base64 encoded CSR in PKCS " + "#10 Format." + ) + gencsr_parser = subcommand_parser.add_parser( + "gen_csr", + help=gencsr_help, + description=gen_csr_help + "\nexample: certificate gen_csr [ORG_NAME] [ORG_UNIT]" + " [COMMON_NAME] [COUNTRY] [STATE] [CITY] [INCLUDEIP] \n\nNOTE: please make " + "certain the order of arguments is correct.", + formatter_class=RawDescriptionHelpFormatter, + ) + gencsr_parser.add_argument( + "gencsr_orgname", + help="Organization name. i.e. Hewlett Packard Enterprise.", + metavar="ORGNAME", + ) + gencsr_parser.add_argument( + "gencsr_orgunit", + help="Organization unit. i.e. Intelligent Provisioning.", + metavar="ORGUNIT", + ) + gencsr_parser.add_argument( + "gencsr_commonname", + help="Organization common name. i.e. Common Organization Name.", + metavar="ORGCNAME", + ) + gencsr_parser.add_argument( + "gencsr_country", + help="Organization country. i.e. United States.", + metavar="ORGCOUNTRY", + ) + gencsr_parser.add_argument("gencsr_state", help="Organization state. i.e. Texas.", metavar="ORGSTATE") + gencsr_parser.add_argument("gencsr_city", help="Organization city. i.e. Houston.", metavar="ORGCITY") + gencsr_parser.add_argument( + "gencsr_parser_includeIP", + help="Include IP. i.e. True or False.", + metavar="INCLUDEIP", + ) + self.cmdbase.add_login_arguments_group(gencsr_parser) + + # automatic enrollment sub-parser + autoenroll_help = ( + "Use this command for invoking the auto enroll the certificate enrollment process" + "\nMake sure you have imported the scep CA certificate " + "before head using certificate import --scep certifcate.txt" + ) + autoenroll_parser = subcommand_parser.add_parser( + "auto_enroll", + help=autoenroll_help, + description=autoenroll_help + "\nexample: certificate auto_enroll [ORG_NAME] [ORG_UNIT]" + " [COMMON_NAME] [COUNTRY] [STATE] [CITY] [SCEP_ADDRESS] [CHALLENGEPASSWORD] " + "[SERVICEENABLED] [INCLUDEIP]]\n\nNOTE: please make " + "certain the order of arguments is correct.", + formatter_class=RawDescriptionHelpFormatter, + ) + autoenroll_parser.add_argument( + "autoenroll_orgname", + help="Organization name. i.e. Hewlett Packard Enterprise.", + metavar="ORGNAME", + ) + autoenroll_parser.add_argument( + "autoenroll_orgunit", + help="Organization unit. i.e. Intelligent Provisioning.", + metavar="ORGUNIT", + ) + autoenroll_parser.add_argument( + "autoenroll_commonname", + help="Organization common name. i.e. Common Organization Name.", + metavar="ORGCNAME", + ) + autoenroll_parser.add_argument( + "autoenroll_country", + help="Organization country. i.e. United States.", + metavar="ORGCOUNTRY", + ) + autoenroll_parser.add_argument("autoenroll_state", help="Organization state. i.e. Texas.", metavar="ORGSTATE") + autoenroll_parser.add_argument("autoenroll_city", help="Organization city. i.e. Houston.", metavar="ORGCITY") + autoenroll_parser.add_argument( + "autoenroll_scep_enrollAddress", + help="Scep-enroll dll address", + metavar="AEADDRESS", + ) + autoenroll_parser.add_argument( + "autoenroll_challengepassword", + help="challenge password", + metavar="AECHALLPASS", + ) + autoenroll_parser.add_argument( + "autoenroll_ScepService", + help="Scep service enable or disable", + metavar="AESCEPSERVICE", + ) + autoenroll_parser.add_argument( + "autoenroll_includeIP", + help="Include IP. i.e. True or False.", + metavar="INCLUDEIP", + ) + self.cmdbase.add_login_arguments_group(autoenroll_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ChannelInterfaceCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ChannelInterfaceCommand.py new file mode 100644 index 0000000..7014f53 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ChannelInterfaceCommand.py @@ -0,0 +1,130 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""iLO CHIF Reset Command for rdmc""" +import sys +from argparse import RawDescriptionHelpFormatter + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class ChannelInterfaceCommand: + """Reset iLO on the server that is currently logged in""" + + def __init__(self): + self.ident = { + "name": "channelinterface", + "usage": None, + "description": "Reset CHIF on the current logged in" " server.\n\tExample: channelinterface reset", + "summary": "Reset CHIF on the current logged in server.", + "aliases": [], + "auxcommands": [], + } + + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main iLO reset worker function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.iloresetvalidation(options) + if "blobstore" not in self.rdmc.app.current_client.base_url: + raise InvalidCommandLineError("CHIF reset is not supported in remote mode.\n") + + if line[0].lower() == "reset": + + ret = self.chif_reset() + if ret: + sys.stdout.write("Successfully reset the CHIF interface.\n") + return ReturnCodes.SUCCESS + else: + sys.stdout.write("Failed to reset the CHIF interface.\n") + return ReturnCodes.RIS_ILO_CHIF_PACKET_EXCHANGE_ERROR + else: + raise InvalidCommandLineError("Invalid parameter, please provide channelinterface reset command.\n") + + def chif_reset(self): + """Function for handling chif packet exchange + + :param data: data to be sent for packet exchange + :type data: str + + """ + try: + libhandle = self.rdmc.app.current_client.connection._conn.channel.dll + libhandle.ChifTerminate() + libhandle.ChifInitialize(None) + return True + except: + return False + + def iloresetvalidation(self, options): + """reboot method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + subcommand_parser = customparser.add_subparsers(dest="command") + + reset_help = "To disconnect from ComputeOpsManagement\n" + reset_parser = subcommand_parser.add_parser( + "reset", + help=reset_help, + description=reset_help + "\n\tExample:\n\tchannelinterface reset", + formatter_class=RawDescriptionHelpFormatter, + ) + self.cmdbase.add_login_arguments_group(reset_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ClearRestApiStateCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ClearRestApiStateCommand.py new file mode 100644 index 0000000..33cd997 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ClearRestApiStateCommand.py @@ -0,0 +1,130 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Clear Rest API State Command for rdmc""" + + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + + +class ClearRestApiStateCommand: + """Clear the rest api state of the server""" + + def __init__(self): + self.ident = { + "name": "clearrestapistate", + "usage": None, + "description": "Clears the persistent rest api state.\n\texample: " + "clearrestapistate\n\n\tNote: Some types such as Bios, " + "Iscsi, and SmartStorageConfig will be unavailable until " + "a system reboot occurs after running this command.", + "summary": "Clears the persistent state of the REST API. Some " + "portions of the API may not be available until after the server reboots.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main clearrestapistate function. + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if args: + raise InvalidCommandLineError("clearrestapistate command takes no arguments.") + + self.clearrestapistatevalidation(options) + + select = "Manager." + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Manager. not found.") + + bodydict = results.resp.dict["Oem"][self.rdmc.app.typepath.defs.oemhp] + try: + for item in bodydict["Actions"]: + if "ClearRestApiState" in item: + if self.rdmc.app.typepath.defs.isgen10: + action = item.split("#")[-1] + else: + action = "ClearRestApiState" + path = bodydict["Actions"][item]["target"] + body = {"Action": action} + break + except: + body = {"Action": "ClearRestApiState", "Target": "/Oem/Hp"} + self.rdmc.app.post_handler(path, body) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def clearrestapistatevalidation(self, options): + """clearrestapistate method validation function. + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ComputeOpsManagementCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ComputeOpsManagementCommand.py new file mode 100644 index 0000000..c9d53ad --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ComputeOpsManagementCommand.py @@ -0,0 +1,3092 @@ +### +# Copyright 2021-2025 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### +# -*- coding: utf-8 -*- +"""computeopsmanagement Command for rdmc""" + + +import json +import time +import os +from argparse import RawDescriptionHelpFormatter +from datetime import datetime +from ipaddress import ip_address +from typing import Dict, Any + +import requests +import urllib3 +from requests.exceptions import ConnectionError, Timeout, RequestException +from urllib3.util.retry import Retry + + +try: + from rdmc_helper import ( + CloudConnectFailedError, + CloudConnectTimeoutError, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoCurrentSessionEstablished, + ProxyConfigFailedError, + ReturnCodes, + LOGGER, + ) +except ImportError: + from ilorest.rdmc_helper import ( + CloudConnectFailedError, + CloudConnectTimeoutError, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoCurrentSessionEstablished, + ProxyConfigFailedError, + ReturnCodes, + LOGGER, + ) + +from redfish.ris.ris import SessionExpired +from .data.InputTemplate import template + +ErrorMapping = { + "ProxySettingsInvalid_RDA": "Could not connect to HPE using the provided web proxy. " + "Ensure that the proxy details are correct. Additionally," + " you can set proxy using the --proxy parameter in the computeopsmanagement command.\n", + "ProxyOrFirewallError_RDA": "The proxy or firewall in not configured properly." + " Please check the respective values. Additionally, " + "you can set proxy using the --proxy parameter in the computeopsmanagement command.\n", + "iLOTimeError_RDA": "Could not obtain an identity for this server " + "to connect to Compute Ops Management due to a " + "incorrect iLO system time. Please update time on RBSU.\n", + "iLOTimeError_COM": "Could not verify the identity of Compute Ops Management. " + "This could be due to an incorrect iLO system time. " + "Contact HPE support if the problem persists.\n", + "ProxyOrFirewallError_COM": "Could not connect to Compute Ops Management due to proxy issue.\n", + "ProxySettingsInvalid_COM": "Could not connect to HPE using the " + "provided web proxy. Ensure that the proxy details are correct.\n", + "ActivationKeyRequired": "An activation key is required in order " + "to connect to HPE Compute Ops Management. Please enter an activation key.\n", + "InvalidActivationKey": "The activation key entered is invalid. " + "Please check the value entered. If the problem persists, contact HPE Support.\n", + "ExpiredActivationKey": "The activation key entered is expired. " + "Please enter a valid activation key. " + "If the problem persists, contact HPE Support.\n ", + "WrongiLOVersion": ( + "Unsupported iLO version. Upgrade to the latest iLO version " "to use HPE Compute Ops Management.\n" + ), + "DeviceAssignFailed": "Device assignment has failed. Visit HPE GreenLake, select Device tab and ensure" + " this device is not already added to another Compute Ops Management instance.\n", + "DeviceClaimUnauthorized": "Device claim is unauthorized. Contact your HPE GreenLake administrator to " + "verify that you have the right permissions to add " + "a device to HPE GreenLake device inventory.\n", + "DeviceNotFound": "Device not found. Contact HPE Support to resolve this issue.\n", + "InternalError_RDA": "Unknown error. Reset iLO and re-try connecting." + " Contact HPE support if the problem persists.\n", + "InternalError_COM": "Unknown error. Reset iLO and re-try connecting. " + "Contact HPE support if the problem persists.\n", + "ExternalError_RDA": "External error. Retry after some time. Contact HPE support if the problem persists.\n", + "ExternalError_COM": "External error. Retry after some time. Contact HPE support if the problem persists.\n", + "DisabledByCOM": "Disabled by Compute Ops Management.\n", +} + +Cloudconnectstatus = { + # Network Status Config + "Initializing": "Cloud connection setup is in progress. Please wait a moment.", + "IPAddressNotConfigured": "iLO doesn't have an IP address configured. Please check network settings.", + "DNSResolutionError": "Unable to resolve DNS. Please verify your DNS configuration.", + "Configured": "Configured.", + "NotTested": "Not tested yet.", + "InternalError": "iLO ran into an internal issue while trying " + "to connect to the cloud. Please try again or contact support.", + # Web Connectivity + "iLOTimeError": "The iLO time settings are incorrect. Please synchronize time to proceed.", + "ProxyOrFirewallError": "iLO couldn't reach the endpoint. Check your proxy or firewall settings.", + "Connected": "Connected.", + "ProxySettingsInvalid": "Proxy settings appear to be invalid. Please review and update them.", + "ExternalError": "There was an issue with the external cloud service. Please try again later.", + # iLO Configuration for Cloud Connect + "ActivationKeyRequired": "An activation key is needed to enable cloud connectivity. Please provide a valid key.", + "WrongiLOVersion": "This iLO version doesn't support the requested operation. Please update iLO firmware.", + "InvalidActivationKey": "The activation key provided is invalid. Please check and enter a valid one.", + "DeviceAssignFailed": "iLO was unable to register the device with the cloud. Please try again later.", + "DeviceClaimUnauthorized": "Device claim failed due to insufficient authorization. Please check credentials.", + "DeviceNotFound": "The device couldn't be found in the cloud service. Ensure the activation key is correct.", + "DisabledByCOM": "Cloud connectivity has been disabled by COM settings.", +} + +DEFAULT_TEMPLATE_FILE_NAME = "multiconnect_input_template.json" +DNS_SERVER_EXCLUSION_LIST = ["0.0.0.0", "::"] + + +class ComputeOpsManagementCommand: + """Main new command template class""" + + def __init__(self): + self.ident = { + "name": "computeopsmanagement", + "usage": "computeopsmanagement\n\n", + "description": ( + "Run to enable your servers to be discovered, monitored and managed through ComputeOpsManagement\n\t" + "Example:\n\t" + "computeopsmanagement connect\n\t" + "computeopsmanagement connect --activationkey \n\t" + "computeopsmanagement connect --activationkey --proxy http://proxy.abc.com:8080\n\t" + "computeopsmanagement disconnect\n\t" + "computeopsmanagement multiconnect --input_file_json_template\n\t" + "computeopsmanagement multiconnect --input_file servers.json\n\t" + "computeopsmanagement multiconnect --input_file servers.json --allow_ilo_reset\n\t" + "computeopsmanagement multiconnect --input_file servers.json --output report.json\n\t" + "computeopsmanagement multiconnect --input_file servers.json --output report.json --allow_ilo_reset\n\t" + "computeopsmanagement status\n\t" + "computeopsmanagement status -j\n\n" + ), + "summary": ( + "Enables the server to be discovered, monitored and managed " + "through ComputeOpsManagement, Also gives bulk onboarding of iLOs to COM." + ), + "aliases": [], + "auxcommands": ["EthernetCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def resolve_ilo_config(self, config_json_path: str) -> Dict[str, Dict[str, Any]]: + """Load config from a JSON file and resolve iLO configuration as a dict keyed by IP.""" + with open(config_json_path, "r") as f: + config_json = json.load(f) + + common = config_json.get("commonSettings", {}) + common_dns = common.get("network", {}).get("dns", []) + common_ntp = common.get("network", {}).get("ntp", []) + common_proxy = common.get("proxy", {}) + common_auth = { + "username": common.get("iloAuthentication", {}).get("iloUser"), + "password": common.get("iloAuthentication", {}).get("iloPassword"), + } + + resolved = {} + + def build_config( + ip_str: str, + entry: Dict[str, Any], + default_dns, + default_ntp, + skip_dns=False, + skip_ntp=False, + skip_proxy=False, + ): + network = entry.get("network", {}) + dns = [] if skip_dns else network.get("dns", default_dns) + ntp = [] if skip_ntp else network.get("ntp", default_ntp) + return { + "ip": ip_str, + "dns": dns, + "ntp": ntp, + "skipDns": skip_dns, + "skipNtp": skip_ntp, + "skipProxy": skip_proxy, # Consistent naming without underscore + "proxy": common_proxy, + "auth": common_auth, + } + + individual_entries = config_json.get("targets", {}).get("ilos", {}).get("individual", []) + for entry in individual_entries: + ip = entry["ip"] + skip_dns = entry.get("skipDns", False) + skip_ntp = entry.get("skipNtp", False) + skip_proxy = entry.get("skipProxy", False) # Read from input as "skipProxy" (user-facing) + config = build_config(ip, entry, common_dns, common_ntp, skip_dns, skip_ntp, skip_proxy) + resolved[ip] = config + + range_entries = config_json.get("targets", {}).get("ilos", {}).get("ranges", []) + for range_entry in range_entries: + start_ip = ip_address(range_entry["start"]) + end_ip = ip_address(range_entry["end"]) + skip_dns = range_entry.get("skipDns", False) + skip_ntp = range_entry.get("skipNtp", False) + skip_proxy = range_entry.get("skipProxy", False) # Read from input as "skipProxy" (user-facing) + network = range_entry.get("network", {}) + range_dns = [] if skip_dns else network.get("dns", common_dns) + range_ntp = [] if skip_ntp else network.get("ntp", common_ntp) + + # Optimize: Convert to int once, iterate directly, convert back to string once per IP + start_int = int(start_ip) + end_int = int(end_ip) + for ip_int in range(start_int, end_int + 1): + ip_str = str(ip_address(ip_int)) + config = build_config(ip_str, {}, range_dns, range_ntp, skip_dns, skip_ntp, skip_proxy) + resolved[ip_str] = config + + return resolved + + def _get_progress_bar_implementation(self): + """Get tqdm progress bar implementation or fallback to simple progress bar + + :returns: tqdm function or SimplePbar fallback + :rtype: function + """ + # Try to import tqdm, fall back to simple progress if not available + try: + from tqdm import tqdm + return tqdm + except ImportError: + # Create a simple progress bar fallback that displays to stdout + class SimplePbar: + def __init__(self, total, desc="", unit=""): + self.total = total + self.desc = desc + self.unit = unit + self.current = 0 + # Display initial progress bar to stdout + initial_bar = self._get_progress_bar() + print(f"{desc}: 0/{total} {initial_bar}", end="", flush=True) + + def _get_progress_bar(self, width=40): + """Generate visual progress bar with # symbols""" + progress_pct = (self.current / self.total * 100) if self.total > 0 else 0 + filled_length = int(width * self.current // self.total) if self.total > 0 else 0 + bar = "#" * filled_length + "-" * (width - filled_length) + return f"[{bar}] {progress_pct:.1f}%" + + def set_description(self, desc): + self.desc = desc + + def set_postfix(self, **kwargs): + postfix_str = ", ".join([f"{k}={v}" for k, v in kwargs.items()]) + # Update stdout display with visual progress bar + progress_bar = self._get_progress_bar() + status_info = f" [{postfix_str}]" if postfix_str else "" + print( + f"\r{self.desc}: {self.current}/{self.total} " f"{progress_bar}{status_info}", + end="", + flush=True, + ) + + def update(self, n): + self.current += n + # Display visual progress bar + progress_bar = self._get_progress_bar() + print(f"\r{self.desc}: {self.current}/{self.total} {progress_bar}", end="", flush=True) + + def __enter__(self): + return self + + def __exit__(self, *args): + print() # New line after progress bar completion + + def tqdm(total, desc="", unit="", file=None): + return SimplePbar(total, desc, unit) + + return tqdm + + def proxy_config(self, proxy_server): + """Main cloudconnect worker function + + :param proxy_server: proxy + :type proxy_server: str. + """ + if proxy_server != "None": + try: + body = dict() + body["Oem"] = {} + body["Oem"]["Hpe"] = {} + body["Oem"]["Hpe"]["WebProxyConfiguration"] = {} + proxy_body = body["Oem"]["Hpe"]["WebProxyConfiguration"] + proxy_body["ProxyServer"] = None + proxy_body["ProxyUserName"] = None + proxy_body["ProxyPassword"] = None + if "https" in proxy_server: + proxy_body["ProxyPort"] = 443 + else: + proxy_body["ProxyPort"] = 80 + if "@" in proxy_server: + proxy = proxy_server.split("@") + proxy_usr_pass = proxy[0] + proxy_srv_port = proxy[1] + if "//" in proxy_usr_pass: + proxy_usr_pass = proxy_usr_pass.split("//")[1] + if ":" in proxy_srv_port: + proxy = proxy_srv_port.split(":") + proxy_body["ProxyServer"] = proxy[0] + proxy_body["ProxyPort"] = int(proxy[1]) + else: + proxy_body["ProxyServer"] = proxy_srv_port + if ":" in proxy_usr_pass: + proxy = proxy_usr_pass.split(":") + proxy_body["ProxyPassword"] = proxy[1] + proxy_body["ProxyUserName"] = proxy[0] + else: + proxy_body["ProxyUserName"] = proxy_usr_pass + else: + proxy_srv_port = proxy_server + if "//" in proxy_srv_port: + proxy_srv_port = proxy_srv_port.split("//")[1] + if ":" in proxy_srv_port: + proxy = proxy_srv_port.split(":") + proxy_body["ProxyServer"] = proxy[0] + proxy_body["ProxyPort"] = int(proxy[1]) + else: + proxy_body["ProxyServer"] = proxy_srv_port + + path = self.rdmc.app.getidbytype("NetworkProtocol.") + + if path and body: + self.rdmc.ui.printer("Setting Proxy configuration...\n", verbose_override=True) + self.rdmc.app.patch_handler(path[0], body, service=False, silent=True) + except Exception as e: + raise ProxyConfigFailedError(f"Setting Proxy Server Configuration Failed: {str(e)}\n") + else: + try: + body = dict() + body["Oem"] = {} + body["Oem"]["Hpe"] = {} + body["Oem"]["Hpe"]["WebProxyConfiguration"] = {} + proxy_body = body["Oem"]["Hpe"]["WebProxyConfiguration"] + proxy_body["ProxyServer"] = "" + proxy_body["ProxyPort"] = None + proxy_body["ProxyUserName"] = "" + proxy_body["ProxyPassword"] = None + path = self.rdmc.app.getidbytype("NetworkProtocol.") + + if path and body: + self.rdmc.ui.printer("Clearing Proxy configuration...\n", verbose_override=True) + self.rdmc.app.patch_handler(path[0], body, service=False, silent=True) + except Exception as e: + raise ProxyConfigFailedError(f"Clearing Proxy Server Configuration Failed: {str(e)}\n") + + def get_cloud_status(self, need_reason=None): + path = self.rdmc.app.typepath.defs.managerpath + resp = self.rdmc.app.get_handler(path, service=False, silent=True) + if resp.status != 200: + raise SessionExpired("Invalid session. Please logout and log back in or include credentials.") + status = resp.dict["Oem"]["Hpe"]["CloudConnect"]["CloudConnectStatus"] + if need_reason: + reason = resp.dict["Oem"]["Hpe"]["CloudConnect"].get("FailReason", "") + return status, reason + return status + + def connect_cloud(self, activationkey=None): + """cloud connect function + + :param activationkey: activation key + :type activationkey: str. + """ + status = self.get_cloud_status() + if status == "Connected": + self.rdmc.ui.printer("Warning: ComputeOpsManagement is already connected.\n") + return ReturnCodes.SUCCESS + body = dict() + + if activationkey: + body["ActivationKey"] = activationkey + else: + body = {} + path = self.rdmc.app.typepath.defs.managerpath + "Actions" + self.rdmc.app.typepath.defs.oempath + path = path + "/HpeiLO.EnableCloudConnect" + try: + if path: + self.rdmc.ui.printer("Connecting to ComputeOpsManagement...", verbose_override=True) + self.rdmc.app.post_handler(path, body, service=False, silent=True) + except Exception as e: + raise CloudConnectFailedError(f"ComputeOpsManagement connection Failed: {str(e)}\n") + start_time = time.time() + allowed_seconds = 120 + time_increment = 5 + i = 1 + while True: + # time.sleep(time_increment * i) + time.sleep(time_increment) + current_time = time.time() + elapsed_time = current_time - start_time + if elapsed_time > allowed_seconds: + self.rdmc.ui.printer("\n") + status, reason = self.get_cloud_status(need_reason=True) + if status == "NotEnabled": + raise CloudConnectFailedError(ErrorMapping[reason]) + raise CloudConnectTimeoutError( + "ComputeOpsManagement connection timed out, Please check the " + "activation key and network or proxy settings and try again.\n" + ) + else: + status, reason = self.get_cloud_status(need_reason=True) + # self.rdmc.ui.printer("ComputeOpsManagement connection status is %s.\n" % status) + if status == "Connected": + # Check again after 10 seconds before breaking the loop + time.sleep(10) + status, reason = self.get_cloud_status(need_reason=True) + if status == "Connected": + self.rdmc.ui.printer("\n") + self.rdmc.ui.printer("ComputeOpsManagement connection is successful.\n") + break + # If connection has failed while checking waiting for success message + if status == "ConnectionFailed" or status == "NotConnected": + self.rdmc.ui.printer("\n") + if reason: + raise CloudConnectFailedError(ErrorMapping[reason]) + raise CloudConnectFailedError( + "ComputeOpsManagement connection Failed. Please check the " + "activation key and network or proxy settings and try again.\n" + ) + else: + self.rdmc.ui.printer("..") + i = i + 1 + + def disconnect_cloud(self): + """cloud disconnect function""" + cloud_status = self.get_cloud_status() + if cloud_status == "Connected" or cloud_status == "ConnectionFailed": + path = self.rdmc.app.typepath.defs.managerpath + "Actions" + self.rdmc.app.typepath.defs.oempath + path = path + "/HpeiLO.DisableCloudConnect" + body = dict() + try: + if path: + self.rdmc.ui.printer("Disconnecting ComputeOpsManagement...\n", verbose_override=True) + self.rdmc.app.post_handler(path, body) + time.sleep(10) + cloud_status = self.get_cloud_status() + if cloud_status == "NotEnabled": + self.rdmc.ui.printer("The operation completed successfully.\n") + except Exception as e: + raise CloudConnectFailedError(f"ComputeOpsManagement is not disconnected: {str(e)}\n") + else: + self.rdmc.ui.printer( + "Warning: ComputeOpsManagement is not at all connected.\n", + verbose_override=True, + ) + + def cloud_status(self, json=False): + """cloud connect function + + :param json: json + :type json: bool + """ + path = self.rdmc.app.typepath.defs.managerpath + resp = self.rdmc.app.get_handler(path, service=False, silent=True) + if resp.status != 200: + raise SessionExpired("Invalid session. Please logout and log back in or include credentials.") + cloud_info = resp.dict["Oem"]["Hpe"]["CloudConnect"] + output = "------------------------------------------------\n" + output += "ComputeOpsManagement connection status\n" + output += "------------------------------------------------\n" + output += "ComputeOpsManagement Status : %s\n" % (cloud_info["CloudConnectStatus"]) + if cloud_info["CloudConnectStatus"] != "NotEnabled": + if "CloudActivateURL" in cloud_info: + output += "CloudActivateURL : %s\n" % (cloud_info["CloudActivateURL"]) + if "ActivationKey" in cloud_info: + output += "ActivationKey : %s\n" % (cloud_info["ActivationKey"]) + if "ExtendedStatusInfo" in cloud_info: + output += "\n" + output += "Extended Cloud connect status is as follows:\n\n" + output += "Network Configuration : %s\n" % ( + Cloudconnectstatus[cloud_info["ExtendedStatusInfo"]["NetworkConfig"]] + ) + output += "Web Connectivity : %s\n" % ( + Cloudconnectstatus[cloud_info["ExtendedStatusInfo"]["WebConnectivity"]] + ) + output += "iLO Configuration for Cloud Connect : %s\n" % ( + Cloudconnectstatus[cloud_info["ExtendedStatusInfo"]["iLOConfigForCloudConnect"]] + ) + if not json: + self.rdmc.ui.printer(output, verbose_override=True) + else: + self.rdmc.ui.print_out_json(cloud_info) + + def generate_template_file(self, template_input_file=DEFAULT_TEMPLATE_FILE_NAME): + """Generate template JSON input file for multiconnect""" + + template_str = json.dumps(template, indent=4) + + try: + with open(template_input_file, "w") as outfile: + outfile.write(template_str) + self.rdmc.ui.printer(f"Template written to: {template_input_file}\n", verbose_override=True) + except Exception as e: + LOGGER.error(f"Exception writing template file: {e}") + raise InvalidCommandLineError(f"Failed to write template JSON file: {e}\n") + + def bulk_connect_precheck(self, config_file, output_file=None): + """Perform precheck validation for bulk connect operations + + :param config_file: path to JSON configuration file + :type config_file: str + :param output_file: optional output file for report + :type output_file: str or None + :param allow_ilo_reset: allow iLO reset during operations + :type allow_ilo_reset: bool + """ + # Suppress urllib3 warnings (connection retry warnings, InsecureRequestWarning, etc.) + urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + urllib3.disable_warnings(urllib3.exceptions.ConnectionError) + urllib3.disable_warnings() + + current_time = datetime.now() + LOGGER.info(f"Starting bulk_connect precheck: config={config_file}, output={output_file}") + + # Load and validate configuration (do once, not in loop) + try: + config = self._validate_input_file(config_file) + except (Exception) as e: + raise e + + # Generate default output filename if not provided + if not output_file: + output_file = f"onboard_precheck_{current_time.strftime('%m%d%Y_%H%M%S')}.json" + + LOGGER.info(f"Report will be saved to: {output_file}") + + # Initialize report with new format + report = { + "iloPrecheck": [], + "resultCount": {"ilos": "0", "preCheckPassed": "0", "preCheckFailed": "0"} + } + + # Counters for result tracking + counters = {"total": 0, "preCheckPassed": 0, "preCheckFailed": 0} + + # Progressive update for pbar implementation + # This gets updated in every iteration of the for loop below + pbar_postfix = {} + + # Extract common settings + common_settings = config.get("commonSettings", {}) + ilo_auth = ( + common_settings.get("iloAuthentication", {}) + if isinstance(common_settings.get("iloAuthentication"), dict) + else {} + ) + com_settings = ( + common_settings.get("computeOpsManagement", {}) + if isinstance(common_settings.get("computeOpsManagement"), dict) + else {} + ) + network_settings = ( + common_settings.get("network", {}) if isinstance(common_settings.get("network"), dict) else {} + ) + proxy_settings = common_settings.get("proxy", {}) if isinstance(common_settings.get("proxy"), dict) else {} + + # Get target IPs + try: + target_ips = self._get_all_target_ips(config.get("targets", {})) + counters["total_targets"] = len(target_ips) + LOGGER.info(f"Precheck for {len(target_ips)} target iLO(s)") + except Exception as e: + error_msg = f"Error processing target IPs: {str(e)}" + LOGGER.error(error_msg) + raise InvalidCommandLineError(error_msg) + + # Get progress bar implementation + tqdm = self._get_progress_bar_implementation() + + # Process each target IP with progress bar for precheck validation + with tqdm(total=len(target_ips), desc="Validating iLOs", unit="iLO") as pbar: + for ip_info in target_ips: + ip = ip_info["ip"] + individual_settings = ip_info.get("settings", {}) if isinstance(ip_info.get("settings"), dict) else {} + + pbar.set_description(f"Validating {ip}") + LOGGER.info(f"Starting precheck validation for iLO: {ip}") + + # Initialize precheck result + precheck_result = { + "ip": ip, + "managementProcessorModel": "", + "iloVersion": "", + "preCheckResult": "FAILED", + "details": "", + "recommendation": "", + } + + # Initialize status tracking variables + postfix_type = "FAILED" + + # Validate single iLO + validation_result = self._validate_single_ilo_for_precheck( + ip, ilo_auth, com_settings, network_settings, individual_settings + ) + + status = validation_result["status"] + error = validation_result["error"] + recommendation = validation_result["recommendation"] + precheck_result["managementProcessorModel"] = validation_result["managementProcessorModel"] + precheck_result["iloVersion"] = validation_result["iloVersion"] + + # Set postfix type for progress bar + if error == "Authentication or connectivity failed with iLO": + postfix_type = "ERROR" + + # Update precheck result with final values + precheck_result["preCheckResult"] = status + precheck_result["details"] = error + precheck_result["recommendation"] = recommendation + + # Update counters and progress bar + if status == "PASSED": + counters["preCheckPassed"] += 1 + pbar_postfix["status"] = "PASSED" + pbar_postfix["preCheckPassed"] = counters["preCheckPassed"] + pbar.set_postfix(**pbar_postfix) + else: + counters["preCheckFailed"] += 1 + pbar_postfix["status"] = postfix_type + pbar_postfix["preCheckFailed"] = counters["preCheckFailed"] + pbar.set_postfix(**pbar_postfix) + + # Add to report + report["iloPrecheck"].append(precheck_result) + counters["total"] += 1 + pbar.update(1) + + # Finalize report + report["resultCount"] = { + "ilos": str(counters["total"]), + "preCheckPassed": str(counters["preCheckPassed"]), + "preCheckFailed": str(counters["preCheckFailed"]), + } + + # Write report to JSON file + try: + self._save_json_report(report, output_file) + LOGGER.info(f"Precheck report saved to: {output_file}") + self.rdmc.ui.printer(f"Precheck completed. Report saved to: {output_file}\n", verbose_override=True) + self.rdmc.ui.printer(f"Precheck passed for {counters['preCheckPassed']} iLO(s).\n", verbose_override=True) + self.rdmc.ui.printer(f"Precheck failed for {counters['preCheckFailed']} iLO(s).\n", verbose_override=True) + except Exception as e: + LOGGER.error(f"Failed to save precheck report: {str(e)}") + raise InvalidCommandLineError(f"Failed to save precheck report: {str(e)}") + + return ReturnCodes.SUCCESS + + def _get_ilo_credentials(self, ilo_auth, individual_settings): + """Extract iLO credentials, prioritizing individual settings over common settings + + :param ilo_auth: Common iLO authentication settings + :type ilo_auth: dict + :param individual_settings: Individual iLO settings that may contain authentication + :type individual_settings: dict + :returns: tuple of (username, password) + :rtype: tuple + """ + # Check if individual settings contain iLO authentication + individual_auth = individual_settings.get("iloAuthentication", {}) + if isinstance(individual_auth, dict) and individual_auth.get("iloUser") and individual_auth.get("iloPassword"): + username = individual_auth.get("iloUser") + password = individual_auth.get("iloPassword") + return username, password + + # Fall back to common authentication settings + username = ilo_auth.get("iloUser", "administrator") + password = ilo_auth.get("iloPassword", "") + return username, password + + def _validate_single_ilo_for_precheck(self, ip, ilo_auth, com_settings, network_settings, individual_settings): + """Validate a single iLO for precheck operations + + :param ip: iLO IP address + :type ip: str + :param ilo_auth: iLO authentication settings + :type ilo_auth: dict + :param com_settings: COM settings + :type com_settings: dict + :param network_settings: network settings + :type network_settings: dict + :param proxy_settings: proxy settings + :type proxy_settings: dict + :param individual_settings: individual iLO settings + :type individual_settings: dict + :returns: dict with validation results + :rtype: dict + """ + # Initialize results + validation_data = { + "status": "FAILED", + "error": "", + "recommendation": "", + "managementProcessorModel": "", + "iloVersion": "", + } + + try: + # Perform basic connectivity and version checks + base_url = f"https://{ip}" + username, password = self._get_ilo_credentials(ilo_auth, individual_settings) + + if not password: + validation_data["error"] = "No password provided" + validation_data["recommendation"] = "Provide valid iLO credentials" + return validation_data + # Basic connectivity test + from requests.auth import HTTPBasicAuth + + response = requests.get( + f"{base_url}/redfish/v1/", + auth=HTTPBasicAuth(username, password), + verify=False, + timeout=30 + ) + + if response.status_code == 200: + # Get iLO version information + model, ilo_version = self._get_ilo_version_from_response(response.json(), base_url, username, password) + + # Set model and version info + validation_data["managementProcessorModel"] = f"iLO{model}" if model else "" + validation_data["iloVersion"] = str(ilo_version) if ilo_version else "" + + # Check version compatibility + is_compatible, err_msg, rec_msg = self._check_ilo_version_compatibility(model, ilo_version, ip) + if is_compatible: + # Check if iLO is already connected to COM + # Create HTTP session + session = requests.Session() + session.auth = HTTPBasicAuth(username, password) + session.verify = False + + is_connected = self._check_com_connection_status(session, base_url) + # if iLO is connected, set validation_data results as PASSED + if is_connected: + validation_data["status"] = "PASSED" + else: + # Check activationKey/workspace_id based on iLO version capabilities + is_pin_supported = self._is_pin_onboarding_supported(ilo_version, model) + + if not is_pin_supported: + workspace_id = com_settings.get("workspace_id", "") + if not workspace_id: + validation_data["error"] = "The version of iLO requires a valid workspace_id" + validation_data["recommendation"] = ( + "Provide a valid workspace_id in the configuration for onboarding" + ) + return validation_data + else: + activation_key = com_settings.get("activationKey", "") + if not activation_key: + validation_data["error"] = "The version of iLO requires a valid activation Key" + validation_data["recommendation"] = ( + "Provide a valid activation Key in the configuration for onboarding" + ) + return validation_data + + merged_network = network_settings.copy() if isinstance(network_settings, dict) else {} + individual_network = individual_settings.get("network", {}) + if individual_network and isinstance(individual_network, dict): + merged_network.update(individual_network) + + session = self._create_session_with_retries(username, password) + + dns_precheck_result, validation_data = self._precheck_validate_dns_settings( + session, + base_url, + merged_network, + individual_settings, + validation_data, + ) + if not dns_precheck_result: + return validation_data + + ntp_precheck_result, validation_data = self._precheck_validate_ntp_settings( + session, + base_url, + merged_network, + individual_settings, + validation_data, + ) + if not ntp_precheck_result: + return validation_data + + # All checks have passed, mark as ready for onboarding + validation_data["status"] = "PASSED" + else: + validation_data["error"] = err_msg + validation_data["recommendation"] = rec_msg + else: + validation_data["error"] = f"HTTP {response.status_code} - Authentication or connectivity failed" + validation_data["recommendation"] = "Verify iLO credentials and network connectivity" + + except Exception as e: + validation_data["error"] = "Authentication or connectivity failed with iLO" + validation_data["recommendation"] = "Review the input file for credentials and re-run the command" + + return validation_data + + def _precheck_validate_dns_settings(self, session, base_url, merged_network, individual_settings, validation_data): + """Validate a DNS setting in iLO for precheck + + :param session: session object to iLO + :type session: object + :param base_url: base URL for iLO REST API + :type base_url: str + :param merged_network: merged network settings + :type merged_network: dict + :param individual_settings: individual settings + :type individual_settings: dict + :param validation_data: validation data dictionary + :type validation_data: dict + :returns: tuple of (DNS precheck status, updated validation data) + :rtype: tuple + """ + dns_precheck_status = False + current_dns_servers, dhcp_dns_enabled, dhcp_check_attempted = self._get_current_dns_servers(session, base_url) + if not dhcp_check_attempted: + LOGGER.error("Unable to retrieve DNS settings from iLO during precheck") + validation_data["error"] = "Unable to retrieve DNS settings from iLO" + validation_data["recommendation"] = "Check iLO connectivity and retry the operation" + return dns_precheck_status, validation_data + + if individual_settings.get("skipDns", False): + if not current_dns_servers and not dhcp_dns_enabled: + if merged_network.get("dns", []): + LOGGER.info("skipDNS flag is set, no DNS configured in iLO") + validation_data["recommendation"] = ( + "Remove skipDns or Configure DNS in iLO before attempting" + " to Onboard to HPE Compute Ops Management" + ) + else: + LOGGER.info("skipDNS flag is set, no DNS settings in input. Also no DNS configured in iLO") + validation_data["recommendation"] = ( + "Configure DNS in iLO before attempting to Onboard to HPE Compute Ops Management" + ) + validation_data["error"] = "No DNS configuration found in iLO" + return dns_precheck_status, validation_data + elif not merged_network.get("dns", []): + if not current_dns_servers and not dhcp_dns_enabled: + LOGGER.info("No DNS settings in input and no DNS configured in iLO") + validation_data["error"] = "No DNS configuration found in iLO" + validation_data["recommendation"] = ( + "Configure DNS in iLO before attempting to Onboard to HPE Compute Ops Management" + ) + return dns_precheck_status, validation_data + + dns_precheck_status = True + LOGGER.info("DNS precheck passed") + return dns_precheck_status, validation_data + + def _precheck_validate_ntp_settings(self, session, base_url, merged_network, individual_settings, validation_data): + """Validate NTP settings in iLO for precheck + + :param session: session object to iLO + :type session: object + :param base_url: base URL for iLO REST API + :type base_url: str + :param merged_network: merged network settings + :type merged_network: dict + :param individual_settings: individual settings + :type individual_settings: dict + :param validation_data: validation data dictionary + :type validation_data: dict + :returns: tuple of (NTP precheck status, updated validation data) + :rtype: tuple + """ + ntp_precheck_status = True + eth_interfaces_url = f"{base_url}/redfish/v1/Managers/1/EthernetInterfaces" + dhcp_ntp_is_enabled, _, dhcp_check_attempted = self._check_dhcp_ntp_config_on_interfaces( + session, + base_url, + eth_interfaces_url, + ) + ntp_servers = self._get_current_ntp_servers(session, base_url) + if not dhcp_check_attempted or ntp_servers is None: + LOGGER.error("Unable to retrieve NTP settings from iLO during precheck") + ntp_precheck_status = False + validation_data["error"] = "Unable to retrieve NTP settings from iLO" + validation_data["recommendation"] = "Check iLO connectivity and retry the operation" + return ntp_precheck_status, validation_data + + if individual_settings.get("skipNtp", False): + if not dhcp_ntp_is_enabled and not ntp_servers: + if merged_network.get("ntp", []): + LOGGER.info("skipNTP flag is set and no NTP configured in iLO") + validation_data["recommendation"] = ( + "Remove skipNtp or Configure NTP in iLO before attempting" + " to Onboard to HPE Compute Ops Management" + ) + else: + LOGGER.info("skipNTP flag is set, no NTP settings in input. Also no NTP configured in iLO") + validation_data["recommendation"] = ( + "Configure NTP in iLO before attempting to Onboard to HPE Compute Ops Management" + ) + validation_data["error"] = "No NTP configuration found in iLO" + return ntp_precheck_status, validation_data + elif not merged_network.get("ntp", []): + if not dhcp_ntp_is_enabled and not ntp_servers: + LOGGER.info("No NTP settings in input and no NTP configured in iLO") + validation_data["error"] = "No NTP configuration found in iLO" + validation_data["recommendation"] = ( + "Configure NTP in iLO before attempting to Onboard to HPE Compute Ops Management" + ) + return ntp_precheck_status, validation_data + + LOGGER.info("NTP precheck passed") + return ntp_precheck_status, validation_data + + def _validate_bulk_connect_input(self, config): + """ + Validate the input JSON from file for below: + - key named "commonSettings" must be present + - commonSettings must have computeOpsManagement key with atleast either of activationKey or workspace_id + - commonSettings must have iloAuthentication key that contains iloUser and iloPassword attributes. + - key named "targets" must be present + - key named "ilos" must be present + - atleast one iLO ip should be present either in individual or ranges section. + """ + if not isinstance(config, dict): + raise InvalidCommandLineError("Invalid configuration format: expected a JSON object at the top level") + + if "commonSettings" not in config: + raise InvalidCommandLineError("Missing 'commonSettings' section in configuration") + + common_settings = config["commonSettings"] + if not isinstance(common_settings, dict): + raise InvalidCommandLineError("'commonSettings' must be a JSON object") + + com_settings = common_settings.get("computeOpsManagement", {}) + if not isinstance(com_settings, dict): + raise InvalidCommandLineError("'computeOpsManagement' in 'commonSettings' must be a JSON object") + + activation_key = com_settings.get("activationKey") + workspace_id = com_settings.get("workspace_id") + if not activation_key and not workspace_id: + raise InvalidCommandLineError( + "In 'commonSettings.computeOpsManagement', either 'activationKey' or 'workspace_id' must be provided" + ) + + if "targets" not in config: + raise InvalidCommandLineError("Missing 'targets' section in configuration") + + targets = config["targets"] + if not isinstance(targets, dict): + raise InvalidCommandLineError("'targets' must be a JSON object") + + if "ilos" not in targets: + raise InvalidCommandLineError("Missing 'ilos' section in 'targets'") + + ilos = targets["ilos"] + if not isinstance(ilos, dict): + raise InvalidCommandLineError("'ilos' in 'targets' must be a JSON object") + + individual_ilos = ilos.get("individual", []) + ranges = ilos.get("ranges", []) + + if not isinstance(individual_ilos, list): + raise InvalidCommandLineError("'individual' in 'ilos' must be an array") + + # Check if common iLO authentication is provided + common_auth_provided = False + if "iloAuthentication" in common_settings: + ilo_auth = common_settings["iloAuthentication"] + if isinstance(ilo_auth, dict) and ilo_auth.get("iloUser") and ilo_auth.get("iloPassword"): + common_auth_provided = True + + # If common authentication is not provided, verify all targets have individual authentication + if not common_auth_provided: + # Check that all individual iLOs have authentication + for ilo in individual_ilos: + individual_auth = ilo.get("iloAuthentication", {}) + if not (isinstance(individual_auth, dict) and + individual_auth.get("iloUser") and + individual_auth.get("iloPassword")): + raise InvalidCommandLineError( + "The operation failed as iLO credential is not provided in the input json" + ) + + # Check that all ranges have authentication + for range_config in ranges: + range_auth = range_config.get("iloAuthentication", {}) + if not (isinstance(range_auth, dict) and + range_auth.get("iloUser") and + range_auth.get("iloPassword")): + raise InvalidCommandLineError( + "The operation failed as iLO credential is not provided in the input json" + ) + else: + # Common authentication is provided, ensure it's properly formatted + ilo_auth = common_settings["iloAuthentication"] + if not isinstance(ilo_auth, dict): + raise InvalidCommandLineError("'iloAuthentication' in 'commonSettings' must be a JSON object") + + if "iloUser" not in ilo_auth or "iloPassword" not in ilo_auth: + raise InvalidCommandLineError("Missing 'iloUser' or 'iloPassword' in 'iloAuthentication'") + + if not isinstance(ranges, list): + raise InvalidCommandLineError("'ranges' in 'ilos' must be an array") + + total_individual_ilos = len(individual_ilos) + total_range_objects = len(ranges) + for ilo in individual_ilos: + if not isinstance(ilo, dict) or "ip" not in ilo: + raise InvalidCommandLineError("Each entry in 'individual' must be an object with an 'ip' field") + + for range_config in ranges: + if not isinstance(range_config, dict) or "start" not in range_config or "end" not in range_config: + raise InvalidCommandLineError("Each entry in 'ranges' must be an object with 'start' and 'end' fields") + + if total_individual_ilos == 0 and total_range_objects == 0: + raise InvalidCommandLineError("At least one iLO IP must be specified in 'individual' or 'ranges'") + + def _validate_input_file(self, config_file) -> Dict[str, Any]: + # Load and validate configuration (do once, not in loop) + try: + if not os.path.exists(config_file): + error_msg = f"Configuration file not found: {config_file}" + LOGGER.error(error_msg) + raise InvalidCommandLineError(error_msg) + + with open(config_file, "r") as f: + config = json.load(f) + LOGGER.info(f"Loaded configuration from: {config_file}") + + # Validate configuration + self._validate_bulk_connect_input(config) + LOGGER.info("Configuration validation passed") + return config + except (json.JSONDecodeError, InvalidCommandLineError) as e: + error_msg = f"Error in configuration file '{config_file}': {str(e)}" + LOGGER.error(error_msg) + raise InvalidCommandLineError(error_msg) + + def bulk_connect(self, config_file, output_file=None, allow_ilo_reset=False): + """Perform bulk connect operations for multiple iLOs + + :param config_file: path to JSON configuration file + :type config_file: str + :param output_file: optional output file for report + :type output_file: str or None + :param allow_ilo_reset: allow iLO reset during operations + :type allow_ilo_reset: bool + """ + + # Suppress urllib3 warnings (connection retry warnings, InsecureRequestWarning, etc.) + urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + urllib3.disable_warnings(urllib3.exceptions.ConnectionError) + urllib3.disable_warnings() + + # Get progress bar implementation + tqdm = self._get_progress_bar_implementation() + + # Setup logging + current_time = datetime.now() + LOGGER.info(f"Starting bulk_connect: config={config_file}, output={output_file}, allow_reset={allow_ilo_reset}") + + # Load and validate configuration (do once, not in loop) + try: + config = self._validate_input_file(config_file) + except (Exception) as e: + raise e + + # Generate default output filename if not provided + if not output_file: + output_file = f"onboard_{current_time.strftime('%m%d%Y_%H%M%S')}.json" + + LOGGER.info(f"Report will be saved to: {output_file}") + + # Initialize report with new format + report = { + "iloOnboard": [], + "resultCount": {"ilos": "0", "connected": "0", "failed": "0", "notAttempted": "0", "pendingiloReset": "0"}, + } + + # Counters for result tracking + counters = {"total": 0, "connected": 0, "failed": 0, "notAttempted": 0, "pendingiloReset": 0} + + # Progressive update for pbar implementation + # This gets updated in every iteration of the for loop below + pbar_postfix = {} + + # Extract common settings once (not per iLO) + common_settings = config.get("commonSettings", {}) + ilo_auth = ( + common_settings.get("iloAuthentication", {}) + if isinstance(common_settings.get("iloAuthentication"), dict) + else {} + ) + com_settings = ( + common_settings.get("computeOpsManagement", {}) + if isinstance(common_settings.get("computeOpsManagement"), dict) + else {} + ) + network_settings = ( + common_settings.get("network", {}) if isinstance(common_settings.get("network"), dict) else {} + ) + proxy_settings = common_settings.get("proxy", {}) if isinstance(common_settings.get("proxy"), dict) else {} + + # Get target IPs + try: + target_ips = self._get_all_target_ips(config.get("targets", {})) + counters["total_targets"] = len(target_ips) + LOGGER.info(f"Processing {len(target_ips)} target iLO(s)") + except Exception as e: + error_msg = f"Error processing target IPs: {str(e)}" + LOGGER.error(error_msg) + raise InvalidCommandLineError(error_msg) + + # Process each target IP sequentially with progress bar + with tqdm(total=len(target_ips), desc="Connecting iLOs", unit="iLO") as pbar: + for ip_info in target_ips: + ip = ip_info["ip"] + individual_settings = ip_info.get("settings", {}) if isinstance(ip_info.get("settings"), dict) else {} + + pbar.set_description(f"Processing {ip}") + LOGGER.info(f"Starting connection for iLO: {ip}") + + result = { + "ip": ip, + "status": "pending", + "message": "", + "timestamp": datetime.now().isoformat(), + "details": {}, + } + + # add precheck validation here + validation_result = self._validate_single_ilo_for_precheck( + ip, ilo_auth, com_settings, network_settings, individual_settings + ) + + if validation_result["status"] == "PASSED": + try: + # Connect to individual iLO and perform COM connection + success, ilo_was_reset, needs_manual_reset, ilo_result = self._connect_single_ilo_to_com( + ip=ip, + ilo_auth=ilo_auth, + com_settings=com_settings, + network_settings=network_settings, + proxy_settings=proxy_settings, + individual_settings=individual_settings, + allow_ilo_reset=allow_ilo_reset, + validation_result=validation_result, + ) + except Exception as e: + # Handle unexpected exceptions + report["iloOnboard"].append( + { + "ip": ip, + "managementProcessorModel": "", + "iloVersion": "", + "onboardStatus": "not attempted", + "onboardError": f"{str(e)}", + "recommendation": "Review error details and verify iLO configuration", + } + ) + counters["total"] += 1 + counters["failed"] += 1 + LOGGER.error(f"ERROR {ip}: Error - {str(e)}") + pbar_postfix["status"] = "ERROR" + pbar_postfix["failed"] = counters["failed"] + pbar.set_postfix(**pbar_postfix) + else: + # Add to report + report["iloOnboard"].append( + { + "ip": ilo_result["ip"], + "managementProcessorModel": ilo_result["managementProcessorModel"], + "iloVersion": ilo_result["iloVersion"], + "onboardStatus": ilo_result["onboardStatus"], + "onboardError": ilo_result["onboardError"], + "recommendation": ilo_result["recommendation"], + "preCheckResult": validation_result["status"], + "preCheckError": validation_result["error"], + } + ) + + # Update counters + counters["total"] += 1 + if ilo_result["onboardStatus"] == "connected": + counters["connected"] += 1 + + if success: + result["status"] = "success" + result["message"] = "Successfully connected to COM" + result["details"] = { + "authentication": "successful", + "com_connection": "established", + "activation_method": "pin" if com_settings.get("activationKey") else "workspace_id", + "ilo_was_reset": ilo_was_reset, + } + LOGGER.info(f"SUCCESS {ip}: Connected successfully") + pbar_postfix["status"] = "SUCCESS" + pbar_postfix["connected"] = counters["connected"] + pbar.set_postfix(**pbar_postfix) + elif ilo_result["onboardStatus"] == "not attempted": + counters["notAttempted"] += 1 + LOGGER.warning(f"NOT ATTEMPTED {ip}: {ilo_result['onboardError']}") + pbar_postfix["status"] = "NOT ATTEMPTED" + pbar_postfix["notAttempted"] = counters["notAttempted"] + pbar.set_postfix(**pbar_postfix) + elif ( + "reset" in ilo_result.get("onboardError", "").lower() + or "waiting" in ilo_result.get("onboardError", "").lower() + ): + counters["pendingiloReset"] += 1 + LOGGER.warning(f"PENDING RESET {ip}") + pbar_postfix["status"] = "PENDING RESET" + pbar_postfix["pendingiloReset"] = counters["pendingiloReset"] + pbar.set_postfix(**pbar_postfix) + else: + counters["failed"] += 1 + LOGGER.warning(f"FAILED {ip}: {ilo_result['onboardError']}") + pbar_postfix["status"] = "FAILED" + pbar_postfix["failed"] = counters["failed"] + pbar.set_postfix(**pbar_postfix) + result["status"] = "failed" + if needs_manual_reset: + result["message"] = "NTP configured but requires manual iLO reset" + result["details"] = { + "error": "NTP configured but manual reset required", + "ilo_was_reset": ilo_was_reset, + "needs_manual_reset": True, + } + else: + result["message"] = "Failed to connect to COM" + result["details"] = { + "error": "Connection failed during COM setup", + "ilo_was_reset": ilo_was_reset, + } + else: + # Precheck failed, do not attempt connection + report["iloOnboard"].append( + { + "ip": ip, + "managementProcessorModel": validation_result["managementProcessorModel"], + "iloVersion": validation_result["iloVersion"], + "onboardStatus": "not attempted", + "onboardError": "", + "recommendation": validation_result["recommendation"], + "preCheckResult": validation_result["status"], + "preCheckError": validation_result["error"], + } + ) + counters["total"] += 1 + counters["notAttempted"] += 1 + LOGGER.warning(f"NOT ATTEMPTED {ip}: Precheck failed - {validation_result['error']}") + pbar_postfix["status"] = "NOT ATTEMPTED" + pbar_postfix["notAttempted"] = counters["notAttempted"] + pbar.set_postfix(**pbar_postfix) + pbar.update(1) + + # Finalize report + report["resultCount"] = { + "ilos": str(counters["total"]), + "connected": str(counters["connected"]), + "failed": str(counters["failed"]), + "notAttempted": str(counters["notAttempted"]), + "pendingiloReset": str(counters["pendingiloReset"]), + } + + end_time = datetime.now() + duration_seconds = (end_time - current_time).total_seconds() + LOGGER.info( + f"Bulk connect completed in {duration_seconds:.2f}s: " + f"{counters['connected']} connected, {counters['failed']} failed, " + f"{counters['notAttempted']} not attempted, {counters['pendingiloReset']} pending reset" + ) + + # Write report to JSON file + try: + self._save_json_report(report, output_file) + except Exception as e: + LOGGER.error(f"Failed to save report: {str(e)}") + print(f"ERROR: Could not save report to {output_file}: {str(e)}") + + # Display summary both to stdout and log file + print(f"ComputeOpsManagement connection successful for {counters['connected']} server(s).") + print(f"ComputeOpsManagement connection failed for {counters['failed']} server(s).") + print(f"The operation completed. Details available in the output {output_file} file") + + LOGGER.info(f"Report saved to: {output_file}") + return ReturnCodes.SUCCESS + + def _get_all_target_ips(self, targets): + """Extract all target IPs from the configuration + + :param targets: targets section from config + :type targets: dict + :returns: list of IP information dictionaries + :rtype: list + """ + import ipaddress + + target_ips = [] + ilos = targets.get("ilos", {}) + + # Process individual IPs + individual_ilos = ilos.get("individual", []) + for ilo in individual_ilos: + ip_info = {"ip": ilo["ip"], "settings": ilo} + target_ips.append(ip_info) + + # Process IP ranges + ranges = ilos.get("ranges", []) + for range_config in ranges: + start_ip = ipaddress.IPv4Address(range_config["start"]) + end_ip = ipaddress.IPv4Address(range_config["end"]) + + # Validate range size to prevent memory issues + range_size = int(end_ip) - int(start_ip) + 1 + if range_size > 1000: + raise InvalidCommandLineError( + f"IP range {range_config['start']} to {range_config['end']} contains {range_size} IPs. " + f"Maximum allowed range size is 1000 IPs to prevent memory issues." + ) + + current_ip = start_ip + while current_ip <= end_ip: + ip_info = {"ip": str(current_ip), "settings": range_config} + target_ips.append(ip_info) + current_ip += 1 + + return target_ips + + def _get_all_target_ips_optimized(self, targets): + """Optimized generator to extract all target IPs from the configuration + + :param targets: targets section from config + :type targets: dict + :yields: IP information dictionaries + :rtype: iterator + """ + import ipaddress + + ilos = targets.get("ilos", {}) + + # Process individual IPs + individual_ilos = ilos.get("individual", []) + for ilo in individual_ilos: + yield {"ip": ilo["ip"], "settings": ilo} + + # Process IP ranges + ranges = ilos.get("ranges", []) + for range_config in ranges: + start_ip = ipaddress.IPv4Address(range_config["start"]) + end_ip = ipaddress.IPv4Address(range_config["end"]) + + # Validate range size to prevent memory issues + range_size = int(end_ip) - int(start_ip) + 1 + if range_size > 1000: + raise InvalidCommandLineError( + f"IP range {range_config['start']} to {range_config['end']} contains {range_size} IPs. " + f"Maximum allowed range size is 1000 IPs to prevent memory issues." + ) + + current_ip = start_ip + while current_ip <= end_ip: + yield {"ip": str(current_ip), "settings": range_config} + current_ip += 1 + + def _connect_single_ilo_to_com( + self, + ip, + ilo_auth, + com_settings, + network_settings, + proxy_settings, + individual_settings, + allow_ilo_reset=False, + validation_result=None, + ): + """Connect a single iLO to COM using HTTP-only connection + + :returns: tuple (success, ilo_was_reset, needs_manual_reset, result_dict) + :rtype: tuple + """ + import requests + from requests.auth import HTTPBasicAuth + + # Initialize return structure + result = { + "ip": ip, + "managementProcessorModel": "", + "iloVersion": "", + "onboardStatus": "not attempted", + "onboardError": "", + "recommendation": "", + } + + ilo_was_reset = False + + try: + # Create base URL and validate credentials + base_url = f"https://{ip}" + username, password = self._get_ilo_credentials(ilo_auth, individual_settings) + + if not password: + result["onboardError"] = "No password provided" + result["recommendation"] = "Provide valid iLO credentials" + LOGGER.warning(f"{ip}: No password provided") + return False, ilo_was_reset, False, result + + # Test connection with simple HTTP GET using requests + response = requests.get( + f"{base_url}/redfish/v1/", auth=HTTPBasicAuth(username, password), verify=False, timeout=30 + ) + + if response.status_code != 200: + result["onboardError"] = f"HTTP {response.status_code} - Authentication failed" + result["recommendation"] = "Verify iLO credentials and network connectivity" + LOGGER.error(f"{ip}: Authentication failed - HTTP {response.status_code}") + return False, ilo_was_reset, False, result + + LOGGER.info(f"{ip}: Authenticated successfully") + + # Get iLO version information + model = "" + model_version = "" + ilo_version = "" + if validation_result: + model = validation_result.get("managementProcessorModel", "iLO0") + model_version = int((model.strip()).split("iLO")[-1]) + ilo_version = float(validation_result.get("iloVersion", "0.0")) + else: + model_version, ilo_version = self._get_ilo_version_from_response( + response.json(), + base_url, + username, + password + ) + model = f"iLO{str(model_version)}" if model_version else "" + + result["managementProcessorModel"] = model + result["iloVersion"] = ilo_version + + session = self._create_session_with_retries(username, password) + + # Configure proxy if needed - stop and move to next iLO on failure + try: + self._configure_proxy_for_ilo_requests(session, base_url, proxy_settings, individual_settings) + except Exception as proxy_err: + result["onboardStatus"] = "not attempted" + result["onboardError"] = f"Proxy configuration failed: {str(proxy_err)}" + result["recommendation"] = "Verify proxy settings and network connectivity, then retry" + LOGGER.error(f"{ip}: Proxy configuration failed - {str(proxy_err)}") + return False, ilo_was_reset, False, result + + # Configure network settings if needed and capture reset status - stop and move to next iLO on failure + try: + ilo_was_reset, ntp_configured_needs_reset = self._configure_network_settings_requests( + session, base_url, network_settings, individual_settings, allow_ilo_reset + ) + except Exception as network_err: + result["onboardStatus"] = "not attempted" + result["onboardError"] = f"Network configuration failed: {str(network_err)}" + result["recommendation"] = "Verify DNS/NTP settings and network connectivity, then retry" + LOGGER.error(f"{ip}: Network configuration failed - {str(network_err)}") + return False, ilo_was_reset, False, result + + # If NTP was configured but reset is not allowed, stop onboarding + if ntp_configured_needs_reset: + result["onboardStatus"] = "pending reset" + result["onboardError"] = "NTP configuration requires manual iLO reset" + result["recommendation"] = ( + "Manually reset the iLO for NTP settings to take effect, " + "then re-run the onboarding command. " + "Alternatively, use --allow_ilo_reset flag to automatically reset iLO." + ) + LOGGER.warning(f"{ip}: NTP configured but requires manual iLO reset") + return False, ilo_was_reset, True, result + + # If iLO was reset and reset is allowed, wait for it to come back online + if ilo_was_reset and allow_ilo_reset: + LOGGER.info(f"{ip}: iLO was reset, waiting for it to come back online...") + if self._wait_for_ilo_after_reset(ip, username, password): + LOGGER.info(f"{ip}: iLO is back online") + # Create new session after reset + session = requests.Session() + session.auth = HTTPBasicAuth(username, password) + session.verify = False + else: + LOGGER.error(f"{ip}: iLO did not come back online within timeout") + return False, ilo_was_reset, False, result + elif ilo_was_reset and not allow_ilo_reset: + LOGGER.warning(f"{ip}: iLO was reset but --allow_ilo_reset not specified") + return False, ilo_was_reset, True, result + + # Determine if PIN-based onboarding is supported + workspace_id = com_settings.get("workspace_id") + activation_key = com_settings.get("activationKey") + pin_supported = self._is_pin_onboarding_supported(ilo_version, model_version) + + credential = activation_key if pin_supported and activation_key else workspace_id + if credential: + success, fail_reason = self._enable_com_connection_requests(session, base_url, credential) + if success: + result["onboardStatus"] = "connected" + LOGGER.info(f"{ip}: Successfully connected to COM") + if not ilo_was_reset and "Configure NTP in iLO" in validation_result["recommendation"]: + result["recommendation"] = ( + "Though iLO is onboarded to HPE Compute Ops Management, " + "it is recommended to configure NTP in iLO" + ) + return True, ilo_was_reset, False, result + else: + result["onboardStatus"] = "not connected" + if fail_reason == "InvalidActivationKey": + result["onboardError"] = "The activation key entered is invalid" + result["recommendation"] = ( + "Please check the activation key value. " "If the problem persists, contact HPE Support" + ) + elif fail_reason == "ExpiredActivationKey": + result["onboardError"] = "The activation key entered is expired" + result["recommendation"] = ( + "Please enter a valid activation key. " "If the problem persists, contact HPE Support" + ) + elif fail_reason == "ActivationKeyRequired": + result["onboardError"] = "An activation key is required" + result["recommendation"] = "Please provide a valid activation key" + else: + result["onboardError"] = ( + f"Failed to enable COM connection: {fail_reason}" + if fail_reason + else "Failed to enable COM connection" + ) + result["recommendation"] = "Verify activation key/workspace_id and network settings, then retry" + LOGGER.warning(f"{ip}: Failed to enable COM - {result['onboardError']}") + return False, ilo_was_reset, False, result + + except requests.exceptions.ConnectionError: + result["onboardError"] = "iLO is not reachable" + result["recommendation"] = "Verify network connectivity to iLO" + LOGGER.error(f"{ip}: Connection error - iLO not reachable") + return False, ilo_was_reset, False, result + except requests.exceptions.Timeout: + result["onboardError"] = "Connection timeout" + result["recommendation"] = "Verify network connectivity and iLO responsiveness" + LOGGER.error(f"{ip}: Connection timeout") + return False, ilo_was_reset, False, result + except Exception as e: + result["onboardError"] = str(e) + result["recommendation"] = "Review error details and verify iLO configuration" + LOGGER.error(f"{ip}: Unexpected error - {str(e)}") + return False, ilo_was_reset, False, result + + def _create_session_with_retries(self, username, password): + """Create a requests session with retry strategy + + :param username: iLO username + :type username: str + :param password: iLO password + :type password: str + :returns: configured requests session + :rtype: requests.Session + """ + from requests.auth import HTTPBasicAuth + from requests.adapters import HTTPAdapter + + # Create a session object with proper connection settings + session = requests.Session() + session.auth = HTTPBasicAuth(username, password) + session.verify = False + + # Define retry strategy for connection errors + retry_strategy = Retry( + total=3, # Total number of retries + backoff_factor=1, # Wait 1, 2, 4 seconds between retries + status_forcelist=[500, 502, 503, 504], # Retry on these HTTP status codes + allowed_methods=["GET", "POST", "PATCH"], # Retry these methods + raise_on_status=False, # Don't raise exceptions on retry exhaustion + ) + + # Create adapter with retry strategy + adapter = HTTPAdapter( + max_retries=retry_strategy, + pool_connections=1, # Single connection pool + pool_maxsize=1, # Single connection in pool to avoid conflicts + ) + + # Mount adapter for both http and https + session.mount("http://", adapter) + session.mount("https://", adapter) + + return session + + def _wait_for_ilo_after_reset(self, ip, username, password, timeout_minutes=3): + """Wait for iLO to come back online after reset + + :param ip: iLO IP address + :type ip: str + :param username: iLO username + :type username: str + :param password: iLO password + :type password: str + :param timeout_minutes: timeout in minutes to wait for iLO + :type timeout_minutes: int + :returns: True if iLO is back online, False if timeout + :rtype: bool + """ + import requests + from requests.auth import HTTPBasicAuth + import time + + base_url = f"https://{ip}" + timeout_seconds = timeout_minutes * 60 + check_interval = 10 # Check every 10 seconds as requested + max_attempts = int(timeout_seconds / check_interval) + start_time = time.time() + + LOGGER.info("Continuing to wait ...") + + for attempt in range(max_attempts): + try: + response = requests.get( + f"{base_url}/redfish/v1/", auth=HTTPBasicAuth(username, password), verify=False, timeout=30 + ) + + if response.status_code == 200: + elapsed_time = time.time() - start_time + LOGGER.info(f"{ip}: iLO back online after {elapsed_time:.1f}s") + return True + + except (requests.exceptions.ConnectionError, requests.exceptions.Timeout): + # Expected during reset - iLO is still rebooting + pass + except Exception as e: + LOGGER.warning(f"{ip}: Unexpected error while waiting - {str(e)}") + + # Wait before next check (skip on last attempt) + if attempt < max_attempts - 1: + time.sleep(check_interval) + + elapsed_time = time.time() - start_time + LOGGER.error(f"{ip}: Timeout - iLO did not come back online within {timeout_minutes}m ({elapsed_time:.1f}s)") + return False + + def _get_ilo_version_from_response(self, redfish_data, base_url=None, username=None, password=None): + """Get iLO version from Redfish response data.""" + model_version, ilo_version = 0, 0.0 + + try: + if all([redfish_data.get("Managers"), base_url, username, password]): + model, firmware_version = self._get_ilo_model_and_version(base_url, username, password) + + if model and "iLO" in model: + model_version = int(model.replace("iLO", "")) + + if firmware_version: + parts = firmware_version.split() + if len(parts) >= 3: + # Handle old format: "iLO 6 v1.66" -> parts[2] = "v1.66" + if parts[0].lower() == "ilo" and parts[2].startswith('v'): + version_str = parts[2].lstrip('v') # Remove 'v' prefix from old format + # Handle new format: "iLO 7 1.19.00 Nov 24 2025" -> parts[2] = "1.19.00" + elif parts[0].lower() == "ilo" and not parts[2].startswith('v'): + version_str = parts[2] # Use version number as-is from new format + # Handle direct version format: "1.19.00 Nov 24 2025" -> parts[0] = "1.19.00" + else: + version_str = parts[0] # Use first part for direct version format + + version_parts = version_str.split(".") + ilo_version = float(".".join(version_parts[:2])) if len(version_parts) >= 2 else 0.0 + else: + LOGGER.warning("Managers section not found in Redfish response or invalid credentials") + except Exception as e: + LOGGER.warning(f"Could not determine iLO version from response: {str(e)}") + raise e + + return model_version, ilo_version + + def _is_pin_onboarding_supported(self, ilo_version, major_version): + """Determine if PIN-based onboarding is supported + + :param ilo_version: iLO firmware version + :type ilo_version: float + :param major_version: iLO major version + :type major_version: int + :returns: True if PIN onboarding is supported + :rtype: bool + """ + # PIN-based onboarding support: + # - iLO 6: available from version 1.64 onwards + # - iLO 5: available from version 3.09 onwards + # - iLO 7: available from version 1.12 onwards + if major_version == 6 and ilo_version >= 1.64: + return True + elif major_version == 5 and ilo_version >= 3.09: + return True + elif major_version == 7 and ilo_version >= 1.12: + return True + return False + + def _check_ilo_version_compatibility(self, model, ilo_version, ip): + """Check if iLO version is compatible with COM requirements + + :param model: iLO major version number + :type model: int + :param ilo_version: iLO firmware version + :type ilo_version: float + :param ip: iLO IP address for logging + :type ip: str + :returns: tuple of (is_compatible, error_message, recommendation) + :rtype: tuple + """ + # Define minimum supported versions + ILO5_MIN_SUPPORTED = 2.47 + ILO6_MIN_SUPPORTED = 1.64 + ILO7_MIN_SUPPORTED = 1.12 + + if model == 5 and ilo_version < ILO5_MIN_SUPPORTED: + error_msg = f"iLO version should be greater than {ILO5_MIN_SUPPORTED}" + recommendation = "Upgrade to the latest iLO version to use HPE Compute Ops Management" + LOGGER.warning(f"{ip}: iLO version {ilo_version} incompatible - requires 2.47 or higher") + return False, error_msg, recommendation + elif model == 6 and ilo_version < ILO6_MIN_SUPPORTED: + error_msg = f"iLO version should be greater than {ILO6_MIN_SUPPORTED}" + recommendation = "Upgrade to the latest iLO version to use HPE Compute Ops Management" + LOGGER.warning(f"{ip}: iLO version {ilo_version} incompatible - requires 1.64 or higher") + return False, error_msg, recommendation + elif model == 7 and ilo_version < ILO7_MIN_SUPPORTED: + error_msg = f"iLO version should be greater than {ILO7_MIN_SUPPORTED}" + recommendation = "Upgrade to the latest iLO version to use HPE Compute Ops Management" + LOGGER.warning(f"{ip}: iLO version {ilo_version} incompatible - requires 1.12 or higher") + return False, error_msg, recommendation + + # Compatible version + return True, "", "" + + def _get_ilo_info(self, base_url, username, password): + """Get iLO model and version information""" + import requests + from requests.auth import HTTPBasicAuth + + try: + response = requests.get( + f"{base_url}/redfish/v1/Managers/1/", auth=HTTPBasicAuth(username, password), verify=False, timeout=30 + ) + + if response.status_code == 200: + data = response.json() + model = data.get("Model", "iLO5") + firmware_version = data.get("FirmwareVersion", "3.09") + + try: + version_parts = firmware_version.split(".") + major_version = int(model.replace("iLO", "")) if "iLO" in model else 5 + + if len(version_parts) >= 2: + version_float = float(f"{version_parts[0]}.{version_parts[1]}") + else: + version_float = float(version_parts[0]) + except: + version_float = 3.09 + major_version = 5 + + return model, firmware_version, version_float, major_version + except Exception as e: + LOGGER.warning(f"Failed to get iLO info: {str(e)}") + + return "iLO5", "3.09", 3.09, 5 + + def _get_ilo_model_and_version(self, base_url, username, password): + """Get iLO model and version information from the Redfish API + + :param base_url: base URL for iLO + :type base_url: str + :param username: iLO username + :type username: str + :param password: iLO password + :type password: str + :returns: tuple of (model, firmware_version) + :rtype: tuple + """ + from requests.auth import HTTPBasicAuth + + try: + mgr_response = requests.get( + f"{base_url}/redfish/v1/Managers/1/", + auth=HTTPBasicAuth(username, password), + verify=False, + timeout=30, + ) + if mgr_response.status_code == 200: + mgr_data = mgr_response.json() + model = mgr_data.get("Model", "") + firmware_version = mgr_data.get("FirmwareVersion", "") + return model, firmware_version + elif mgr_response.status_code == 401: + LOGGER.warning("Authentication failed while retrieving iLO model and version") + raise Exception("Authentication failed") + else: + return "", "" + except Exception as e: + LOGGER.warning(f"Failed to get iLO model and version: {str(e)}") + raise e + + def _check_dns_configuration(self, session, base_url, network_settings, individual_settings): + """Check if DNS is configured in iLO""" + try: + if individual_settings.get("skipDns", False): + return True + + response = session.get(f"{base_url}/redfish/v1/Managers/1/EthernetInterfaces/1", timeout=30) + if response.status_code == 200: + data = response.json() + oem_hpe = data.get("Oem", {}).get("Hpe", {}) + + ipv4_dns = oem_hpe.get("IPv4", {}).get("DNSServers", []) + ipv6_dns = oem_hpe.get("IPv6", {}).get("DNSServers", []) + + dns_servers = [dns for dns in (ipv4_dns + ipv6_dns) if dns and dns.strip() and dns != "0.0.0.0"] + + return len(dns_servers) > 0 + except Exception as e: + LOGGER.warning(f"Failed to check DNS configuration: {str(e)}") + + return False + + def _check_ntp_configuration(self, session, base_url, network_settings, individual_settings): + """Check if NTP is configured in iLO""" + try: + if individual_settings.get("skipNtp", False): + return True + + response = session.get(f"{base_url}/redfish/v1/Managers/1/DateTime/", timeout=30) + if response.status_code == 200: + data = response.json() + ntp_servers = data.get("NTPServers", []) + static_ntp = data.get("StaticNTPServers", []) + + all_ntp = [ntp for ntp in (ntp_servers + static_ntp) if ntp and ntp.strip()] + + return len(all_ntp) > 0 + except Exception as e: + LOGGER.warning(f"Failed to check NTP configuration: {str(e)}") + + return False + + def _check_com_connection_status(self, session, base_url): + """Check if COM is already connected + + :param session: requests Session object + :type session: requests.Session + :param base_url: base URL for iLO + :type base_url: str + :returns: True if COM is connected or connection is unstable, False if not connected, + None if status check failed for other reasons + :rtype: bool or None + """ + try: + response = session.get(f"{base_url}/redfish/v1/Managers/1/", timeout=30) + if response.status_code != 200: + LOGGER.warning(f"Failed to get manager resource, status: {response.status_code}") + return False + + manager_data = response.json() + cloud_connect = manager_data.get("Oem", {}).get("Hpe", {}).get("CloudConnect", {}) + current_status = cloud_connect.get("CloudConnectStatus", "") + + if current_status == "Connected": + LOGGER.info(f"COM is already connected for {base_url.split('//')[1]}") + return True + return False + except (ConnectionError, Timeout, RequestException) as e: + # Connection errors indicate unstable connection - treat as "already connected" to be safe + LOGGER.warning(f"Connection error while checking COM status: {str(e)}") + LOGGER.info( + "Treating as COM connected due to connection instability. Skipping configuration to avoid disruption." + ) + return True # Assume connected to avoid disruption during unstable connection + except Exception as e: + LOGGER.warning(f"Error checking COM connection status: {str(e)}") + return None # Cannot determine status + + def _configure_network_settings_requests( + self, session, base_url, network_settings, individual_settings, allow_ilo_reset + ): + """Configure network settings using requests session + + :param session: requests Session object + :type session: requests.Session + :param base_url: base URL for iLO + :type base_url: str + :param network_settings: common network settings + :type network_settings: dict + :param individual_settings: individual iLO settings + :type individual_settings: dict + :param allow_ilo_reset: allow iLO reset if needed + :type allow_ilo_reset: bool + :returns: tuple of (ilo_was_reset flag, ntp_configured_needs_reset flag) + :rtype: tuple(bool, bool) + """ + ilo_was_reset = False + ntp_configured_needs_reset = False + all_configs_successful = True # Track if all configurations succeed + + try: + # Skip if both DNS and NTP are explicitly skipped + if individual_settings.get("skipDns", False) and individual_settings.get("skipNtp", False): + return ilo_was_reset, ntp_configured_needs_reset + + # Check COM connection status before doing any patch operation + if self._check_com_connection_status(session, base_url): + LOGGER.info("COM is already connected. Skipping network configuration to avoid disruption.") + return ilo_was_reset, ntp_configured_needs_reset + + # Merge network settings (individual overrides common) + merged_network = network_settings.copy() if isinstance(network_settings, dict) else {} + individual_network = individual_settings.get("network", {}) + if individual_network and isinstance(individual_network, dict): + merged_network.update(individual_network) + + # Configure DNS - if this fails, mark configs as unsuccessful + if not individual_settings.get("skipDns", False) and merged_network.get("dns"): + dns_servers = merged_network["dns"] + try: + self._configure_dns(session, base_url, dns_servers) + except Exception as dns_err: + all_configs_successful = False + LOGGER.error(f"DNS configuration failed, will not reset iLO: {str(dns_err)}") + raise # Re-raise to stop processing + + # Configure NTP and capture if iLO was reset + # Only allow iLO reset if all previous configurations succeeded + if not individual_settings.get("skipNtp", False) and merged_network.get("ntp"): + ntp_servers = merged_network["ntp"] + # Pass allow_ilo_reset only if all configs successful so far + effective_allow_reset = allow_ilo_reset and all_configs_successful + if not effective_allow_reset and allow_ilo_reset: + LOGGER.warning("iLO reset disabled due to configuration errors, even though allow_ilo_reset=True") + + try: + ilo_was_reset, is_ntp_config_matching = self._configure_ntp( + session, base_url, ntp_servers, effective_allow_reset + ) + except Exception as ntp_err: + all_configs_successful = False + LOGGER.error(f"NTP configuration failed, will not reset iLO: {str(ntp_err)}") + raise # Re-raise to stop processing + + LOGGER.info(f"is_ntp_config_matching {is_ntp_config_matching}") + if is_ntp_config_matching: + return ilo_was_reset, ntp_configured_needs_reset + + # If allow_ilo_reset is False and NTP was configured, user must manually reset iLO + if not allow_ilo_reset and not ilo_was_reset: + ntp_configured_needs_reset = True + LOGGER.warning("=" * 80) + LOGGER.warning("NTP CONFIGURATION REQUIRES MANUAL iLO RESET") + LOGGER.warning("=" * 80) + LOGGER.warning("NTP configuration has been applied, but --allow_ilo_reset was not specified.") + LOGGER.warning("Please manually reset the iLO for NTP changes to take effect,") + LOGGER.warning("then retry the onboarding command.") + LOGGER.warning("=" * 80) + + except Exception as e: + error_msg = f"Failed to configure network settings: {str(e)}" + LOGGER.error(error_msg) + raise + + return ilo_was_reset, ntp_configured_needs_reset + + def _configure_dns(self, session, base_url, dns_servers): + """Configure DNS settings for the iLO with IPv4 and IPv6 support. + + :param session: requests Session object + :type session: requests.Session + :param base_url: base URL for iLO + :type base_url: str + :param dns_servers: list of DNS servers (IPv4 and/or IPv6) + :type dns_servers: list + """ + try: + # First, check if DNS servers are already configured as desired + current_dns_servers, _, _ = self._get_current_dns_servers(session, base_url) + + if current_dns_servers is not None: + # Normalize both lists for comparison (remove empty strings, sort) + desired_dns = sorted([srv.strip() for srv in dns_servers if srv and srv.strip()]) + current_dns = sorted([srv.strip() for srv in current_dns_servers if srv and srv.strip()]) + + if desired_dns == current_dns: + LOGGER.info(f"DNS already configured: {desired_dns}") + return + else: + LOGGER.info(f"Updating DNS from {current_dns} to {desired_dns}") + else: + LOGGER.info("Unable to retrieve current DNS configuration. Proceeding with DNS configuration.") + + # Separate IPv4 and IPv6 DNS servers + ipv4_dns_servers = [] + ipv6_dns_servers = [] + + # Optimize: Strip once and reuse the cleaned value + for dns_server in dns_servers: + if dns_server: + dns_clean = dns_server.strip() + if dns_clean: + if self._is_ipv6_address(dns_clean): + ipv6_dns_servers.append(dns_clean) + else: + ipv4_dns_servers.append(dns_clean) + + # Use EthernetInterfaces endpoint to configure DNS properly + dns_config_url = f"{base_url}/redfish/v1/Managers/1/EthernetInterfaces/1" + + # Build payload to disable DHCP for DNS servers and set static DNS for both IPv4 and IPv6 + payload = { + "DHCPv4": {"UseDNSServers": False}, + "DHCPv6": {"UseDNSServers": False}, + "Oem": {"Hpe": {"DHCPv4": {"UseDNSServers": False}, "DHCPv6": {"UseDNSServers": False}}}, + } + + # Add IPv4 DNS servers if present + if ipv4_dns_servers: + payload["Oem"]["Hpe"]["IPv4"] = {"DNSServers": ipv4_dns_servers} + + # Add IPv6 DNS servers if present + if ipv6_dns_servers: + payload["Oem"]["Hpe"]["IPv6"] = {"DNSServers": ipv6_dns_servers} + + # Create fresh session for DNS configuration to avoid connection reuse issues + dns_session = requests.Session() + dns_session.auth = session.auth + dns_session.verify = False + + LOGGER.info(f"Configuring DNS - IPv4: {ipv4_dns_servers}, IPv6: {ipv6_dns_servers}") + + response = dns_session.patch(dns_config_url, json=payload, timeout=30) + + if response.status_code not in [200, 204]: + raise Exception(f"Failed to configure DNS. HTTP {response.status_code}: {response.text}") + + LOGGER.info("DNS configuration successful") + except (ConnectionError, Timeout, RequestException) as e: + error_msg = f"Connection error while configuring DNS: {str(e)}" + LOGGER.error(error_msg) + raise Exception(error_msg) + except Exception as e: + error_msg = f"Error configuring DNS: {str(e)}" + LOGGER.error(error_msg) + raise + + def _is_ipv6_address(self, address): + """Check if the given address is an IPv6 address. + + :param address: IP address string + :type address: str + :returns: True if IPv6, False otherwise + :rtype: bool + """ + try: + from ipaddress import IPv6Address + + IPv6Address(address) + return True + except (ValueError, Exception): + return False + + def _get_current_dns_servers(self, session, base_url): + """Get current DNS server configuration from iLO (both IPv4 and IPv6). + + :param session: requests Session object + :type session: requests.Session + :param base_url: base URL for iLO + :type base_url: str + :returns: list of currently configured DNS servers (IPv4 and IPv6), or None if unable to retrieve + :rtype: list or None + """ + dhcp_dns_enabled = False + dhcp_check_attempted = False + try: + dns_config_url = f"{base_url}/redfish/v1/Managers/1/EthernetInterfaces/1" + + # Reuse existing session instead of creating a new one + response = session.get(dns_config_url, timeout=30) + if response.status_code == 200: + data = response.json() + + dhcp_check_attempted = True + dhcpv4_dns_enabled = data.get("DHCPv4", {}).get("UseDNSServers", False) + dhcpv6_dns_enabled = data.get("DHCPv6", {}).get("UseDNSServers", False) + + oem_hpe = data.get("Oem", {}).get("Hpe", {}) + + oem_dhcpv4_dns_enabled = oem_hpe.get("DHCPv4", {}).get("UseDNSServers", False) + oem_dhcpv6_dns_enabled = oem_hpe.get("DHCPv6", {}).get("UseDNSServers", False) + if any([dhcpv4_dns_enabled, dhcpv6_dns_enabled, oem_dhcpv4_dns_enabled, oem_dhcpv6_dns_enabled]): + LOGGER.info("DHCP DNS is enabled; static DNS servers may not be in use.") + dhcp_dns_enabled = True + + # Get both IPv4 and IPv6 DNS servers + ipv4_dns_servers = oem_hpe.get("IPv4", {}).get("DNSServers", []) + ipv6_dns_servers = oem_hpe.get("IPv6", {}).get("DNSServers", []) + + # Combine and filter using list comprehension (more efficient) + current_dns_servers = [srv for srv in ipv4_dns_servers + ipv6_dns_servers if srv] + + formatted_dns_servers = [ + srv.strip() for srv in current_dns_servers if srv and srv.strip() not in DNS_SERVER_EXCLUSION_LIST + ] + + return formatted_dns_servers, dhcp_dns_enabled, dhcp_check_attempted + else: + LOGGER.warning(f"Failed to get current DNS configuration. HTTP {response.status_code}") + return None, dhcp_dns_enabled, dhcp_check_attempted + except (ConnectionError, Timeout, RequestException) as e: + LOGGER.warning(f"Connection error while reading DNS configuration: {str(e)}") + return None, dhcp_dns_enabled, dhcp_check_attempted + except Exception as e: + LOGGER.warning(f"Error reading DNS configuration: {str(e)}") + return None, dhcp_dns_enabled, dhcp_check_attempted + + def _configure_ntp(self, session, base_url, ntp_servers, allow_ilo_reset): + """Configure NTP settings for the iLO. + + :param session: requests Session object + :type session: requests.Session + :param base_url: base URL for iLO + :type base_url: str + :param ntp_servers: list of NTP servers + :type ntp_servers: list + :param allow_ilo_reset: allow iLO reset if needed + :type allow_ilo_reset: bool + :returns: tuple of (ilo_was_reset flag, is_config_matching flag) + :rtype: tuple(bool, bool) + """ + ilo_was_reset = False + is_ntp_config_matching = False + dhcp_disabled_successfully = False + + LOGGER.info(f"Starting NTP configuration for {base_url.split('//')[1]}") + + try: + # First, check if DHCP NTP is enabled - if it is, static NTP list is irrelevant + dhcp_ntp_is_enabled = False + dhcp_check_attempted = False + + eth_interfaces_url = f"{base_url}/redfish/v1/Managers/1/EthernetInterfaces" + + dhcp_ntp_is_enabled, dhcp_disabled_successfully, dhcp_check_attempted = self._check_dhcp_ntp_config_on_interfaces( + session, + base_url, + eth_interfaces_url, + ) + + if dhcp_check_attempted and not dhcp_ntp_is_enabled: + LOGGER.info("DHCP NTP is already disabled on all ethernet interfaces") + current_ntp_servers = self._get_current_ntp_servers(session, base_url) + ntp_ips = [ntp_ip.strip() for ntp_ip in ntp_servers if ntp_ip and ntp_ip.strip()] + if sorted(current_ntp_servers) == sorted(ntp_ips): + LOGGER.info("NTP servers are already configured as desired") + is_ntp_config_matching = True + return ilo_was_reset, is_ntp_config_matching + + # If we couldn't check any interface due to errors + if not dhcp_check_attempted: + LOGGER.warning("Could not check DHCP NTP status - will attempt to disable") + + # Always apply NTP configuration regardless of current state + is_ntp_config_matching = False + + # Disable DHCP NTP if it's enabled + if dhcp_ntp_is_enabled: + LOGGER.info("Disabling DHCP NTP on ethernet interfaces") + + # Try to disable DHCP on ethernet interfaces + try: + eth_response = session.get(eth_interfaces_url, timeout=30) + if eth_response.status_code == 200: + eth_data = eth_response.json() + members = eth_data.get("Members", []) + + for member in members: + interface_url = base_url + member.get("@odata.id", "") + try: + interface_response = session.get(interface_url, timeout=30) + if interface_response.status_code == 200: + interface_data = interface_response.json() + if interface_data.get("Status", {}).get("State") == "Enabled": + dhcp_ntp_payload = { + "DHCPv4": {"UseNTPServers": False}, + "DHCPv6": {"UseNTPServers": False}, + "Oem": { + "Hpe": { + "DHCPv4": {"UseNTPServers": False}, + "DHCPv6": {"UseNTPServers": False}, + } + }, + } + + dhcp_response = session.patch(interface_url, json=dhcp_ntp_payload, timeout=30) + if dhcp_response.status_code in [200, 204]: + LOGGER.info("Successfully disabled DHCP NTP") + dhcp_disabled_successfully = True + time.sleep(3) + break + except Exception: + continue + + if not dhcp_disabled_successfully: + LOGGER.warning("Could not disable DHCP NTP via ethernet interfaces") + except Exception: + pass + else: + dhcp_disabled_successfully = True + + # Configure static NTP servers + if not is_ntp_config_matching: + # If DHCP wasn't disabled via ethernet interfaces, try NetworkProtocol + if not dhcp_disabled_successfully: + try: + network_protocol_url = f"{base_url}/redfish/v1/Managers/1/NetworkProtocol" + network_payload = { + "NTP": {"ProtocolEnabled": True}, + "Oem": {"Hpe": {"ConfigurationSettings": "Current"}}, + } + + network_response = session.patch(network_protocol_url, json=network_payload, timeout=30) + + if network_response.status_code in [200, 204]: + LOGGER.info("Successfully configured NetworkProtocol for static NTP") + dhcp_disabled_successfully = True + time.sleep(3) + except Exception: + pass + + # If still not successful after all attempts, raise error and stop + if not dhcp_disabled_successfully: + error_msg = ( + "Failed to disable DHCP NTP. Cannot apply static NTP configuration while DHCP NTP is enabled." + ) + LOGGER.error(error_msg) + raise Exception(error_msg) + + # Apply static NTP servers + ntp_datetime_url = f"{base_url}/redfish/v1/Managers/1/DateTime" + ntp_server_list = list(ntp_servers) + + if len(ntp_server_list) == 1: + ntp_server_list.append("") + + payload = {"StaticNTPServers": ntp_server_list} + LOGGER.info(f"Configuring static NTP servers: {ntp_servers}") + + try: + response = session.patch(ntp_datetime_url, json=payload, timeout=30) + + if response.status_code not in [200, 204]: + error_msg = f"Failed to configure NTP. HTTP {response.status_code}: {response.text}" + LOGGER.error(error_msg) + raise Exception(error_msg) + except (ConnectionError, Timeout, RequestException) as conn_err: + LOGGER.warning(f"Connection error during NTP configuration: {str(conn_err)}") + LOGGER.info("NTP configuration may have been applied despite connection error") + is_ntp_config_matching = False + + # NTP configuration may require iLO reset to take effect + # Only reset if allow_ilo_reset is True + if allow_ilo_reset: + LOGGER.info("Initiating iLO reset for NTP configuration") + reset_url = f"{base_url}/redfish/v1/Managers/1/Actions/Manager.Reset" + reset_payload = {"ResetType": "GracefulRestart"} + + try: + reset_response = session.post(reset_url, json=reset_payload, timeout=30) + + if reset_response.status_code in [200, 202, 204]: + LOGGER.info("iLO reset initiated successfully") + ilo_was_reset = True + time.sleep(30) + else: + LOGGER.warning(f"Failed to reset iLO - HTTP {reset_response.status_code}") + except (ConnectionError, Timeout, RequestException): + LOGGER.info("iLO appears to be resetting (connection closed)") + ilo_was_reset = True + time.sleep(30) + else: + LOGGER.info("NTP configured but iLO reset not allowed - manual reset may be required") + + except (ConnectionError, Timeout, RequestException) as e: + LOGGER.error(f"Connection error during NTP configuration: {str(e)}") + except Exception as e: + LOGGER.error(f"Error configuring NTP: {str(e)}") + + LOGGER.info(f"NTP configuration completed - reset={ilo_was_reset}, matching={is_ntp_config_matching}") + return ilo_was_reset, is_ntp_config_matching + + def _check_dhcp_ntp_config_on_interfaces(self, session, base_url, eth_interfaces_url): + """Check NTP configuration status on ethernet interfaces. + + :param session: requests Session object + :type session: requests.Session + :param base_url: base URL for iLO + :type base_url: str + :param members: list of ethernet interface members + :type members: list + :returns: tuple of (dhcp_ntp_is_enabled, dhcp_disabled_successfully, dhcp_check_attempted) + :rtype: tuple(bool, bool, bool) + """ + dhcp_ntp_is_enabled = False + dhcp_disabled_successfully = False + dhcp_check_attempted = False + + members = [] + try: + eth_response = session.get(eth_interfaces_url, timeout=30) + + if eth_response.status_code == 200: + eth_data = eth_response.json() + members = eth_data.get("Members", []) + except (ConnectionError, Timeout, RequestException) as eth_err: + LOGGER.warning(f"Error accessing ethernet interfaces: {str(eth_err)}") + return dhcp_ntp_is_enabled, dhcp_disabled_successfully, dhcp_check_attempted + + # Find the first enabled interface to check/disable DHCP NTP + for idx, member in enumerate(members): + interface_url = base_url + member.get("@odata.id", "") + + try: + interface_response = session.get(interface_url, timeout=30) + + if interface_response.status_code == 200: + interface_data = interface_response.json() + interface_state = interface_data.get("Status", {}).get("State") + + if interface_state == "Enabled": + dhcp_check_attempted = True + + dhcpv4_ntp_enabled = interface_data.get("DHCPv4", {}).get("UseNTPServers", False) + dhcpv6_ntp_enabled = interface_data.get("DHCPv6", {}).get("UseNTPServers", False) + oem_dhcpv4_ntp = ( + interface_data.get("Oem", {}) + .get("Hpe", {}) + .get("DHCPv4", {}) + .get("UseNTPServers", False) + ) + oem_dhcpv6_ntp = ( + interface_data.get("Oem", {}) + .get("Hpe", {}) + .get("DHCPv6", {}) + .get("UseNTPServers", False) + ) + + if any([dhcpv4_ntp_enabled, dhcpv6_ntp_enabled, oem_dhcpv4_ntp, oem_dhcpv6_ntp]): + # DHCP NTP is enabled + dhcp_ntp_is_enabled = True + LOGGER.info("DHCP NTP is enabled, will disable and configure static NTP") + else: + LOGGER.info("DHCP NTP already disabled") + dhcp_disabled_successfully = True + break + except (ConnectionError, Timeout, RequestException) as iface_err: + # Connection errors during interface access - implement retry with new session + LOGGER.warning(f"Connection error accessing interface: {type(iface_err).__name__}") + + # For RemoteDisconnected errors, retry once with a fresh session + if "RemoteDisconnected" in str(type(iface_err)) or "Connection aborted" in str(iface_err): + retry_session = None + try: + time.sleep(2) + retry_session = requests.Session() + retry_session.auth = session.auth + retry_session.verify = False + retry_response = retry_session.get(interface_url, timeout=30) + if retry_response.status_code == 200: + interface_data = retry_response.json() + interface_state = interface_data.get("Status", {}).get("State") + + if interface_state == "Enabled": + dhcp_check_attempted = True + dhcpv4_ntp_enabled = interface_data.get("DHCPv4", {}).get( + "UseNTPServers", False + ) + dhcpv6_ntp_enabled = interface_data.get("DHCPv6", {}).get( + "UseNTPServers", False + ) + oem_dhcpv4_ntp = ( + interface_data.get("Oem", {}) + .get("Hpe", {}) + .get("DHCPv4", {}) + .get("UseNTPServers", False) + ) + oem_dhcpv6_ntp = ( + interface_data.get("Oem", {}) + .get("Hpe", {}) + .get("DHCPv6", {}) + .get("UseNTPServers", False) + ) + + if any( + [dhcpv4_ntp_enabled, dhcpv6_ntp_enabled, oem_dhcpv4_ntp, oem_dhcpv6_ntp] + ): + dhcp_ntp_is_enabled = True + LOGGER.info("DHCP NTP enabled (retry check)") + else: + dhcp_disabled_successfully = True + break + except Exception: + pass + finally: + if retry_session: + retry_session.close() + continue + + return dhcp_ntp_is_enabled, dhcp_disabled_successfully, dhcp_check_attempted + + def _get_current_ntp_servers(self, session, base_url): + """Get current NTP server configuration from iLO. + + :param session: requests Session object + :type session: requests.Session + :param base_url: base URL for iLO + :type base_url: str + :returns: list of currently configured NTP servers, or None if unable to retrieve + :rtype: list or None + """ + try: + ntp_datetime_url = f"{base_url}/redfish/v1/Managers/1/DateTime" + response = session.get(ntp_datetime_url, timeout=30) + + if response.status_code == 200: + data = response.json() + current_ntp_servers = data.get("StaticNTPServers", []) + # Filter out empty strings and None values using list comprehension + current_ntp_servers = [srv for srv in current_ntp_servers if srv] + return current_ntp_servers + else: + LOGGER.warning(f"Failed to get NTP configuration - HTTP {response.status_code}") + return None + except (ConnectionError, Timeout, RequestException) as e: + LOGGER.warning(f"Connection error reading NTP configuration: {str(e)}") + return None + except Exception as e: + LOGGER.warning(f"Error reading NTP configuration: {str(e)}") + return None + + def _get_current_proxy_settings(self, session, base_url): + """Get current proxy configuration from iLO. + + :param session: requests Session object + :type session: requests.Session + :param base_url: base URL for iLO + :type base_url: str + :returns: dict with current proxy settings, or None if unable to retrieve + :rtype: dict or None + """ + try: + proxy_config_url = f"{base_url}/redfish/v1/Managers/1/NetworkProtocol/" + + # Reuse existing session instead of creating a new one + response = session.get(proxy_config_url, timeout=30) + if response.status_code == 200: + data = response.json() + web_proxy = data.get("Oem", {}).get("Hpe", {}).get("WebProxyConfiguration", {}) + + # Get raw values + raw_server = web_proxy.get("ProxyServer", "") + raw_port = web_proxy.get("ProxyPort") + raw_username = web_proxy.get("ProxyUserName", "") + + # Normalize all values: treat empty strings and None as "no proxy" + # Use 'is not None' check for port to correctly handle port 0 + current_proxy = { + "server": raw_server.strip() if raw_server else "", + "port": raw_port if raw_port is not None else None, + "username": raw_username.strip() if raw_username else "", + } + + return current_proxy + else: + LOGGER.warning(f"Failed to get current proxy configuration. HTTP {response.status_code}") + return None + except (ConnectionError, Timeout, RequestException) as e: + LOGGER.warning(f"Connection error while reading proxy configuration: {str(e)}") + return None + except Exception as e: + LOGGER.warning(f"Error reading proxy configuration: {str(e)}") + return None + + def _configure_proxy_for_ilo_requests(self, session, base_url, proxy_settings, individual_settings=None): + """Configure proxy settings using requests session + + :param session: requests Session object + :type session: requests.Session + :param base_url: base URL for iLO + :type base_url: str + :param proxy_settings: proxy settings + :type proxy_settings: dict + :param individual_settings: individual iLO settings + :type individual_settings: dict or None + """ + try: + # Check if proxy configuration should be skipped + if individual_settings and individual_settings.get("skipProxy", False): + LOGGER.info("Proxy configuration skipped per individual settings.") + return + + # Check COM connection status before doing any patch operation + if self._check_com_connection_status(session, base_url): + LOGGER.info("COM is already connected. Skipping proxy configuration to avoid disruption.") + return + + individual_proxy = individual_settings.get("proxy", {}) + # Only configure if proxy_settings exists and has meaningful content + # Check if there's actually a proxy server to configure + if not proxy_settings and not individual_proxy: + LOGGER.info("No proxy settings provided. Skipping proxy configuration.") + return + + # Apply proxy from individual or range in if present over common + # Else proxy from common settings + proxy_to_configure = individual_proxy if individual_proxy else proxy_settings + + # Check if server is provided and not empty + proxy_server = proxy_to_configure.get("server", "").strip() if proxy_to_configure.get("server") else "" + if not proxy_server: + LOGGER.info("No proxy server specified. Skipping proxy configuration.") + return + + # At this point, we have valid proxy settings to configure + self._configure_proxy(session, base_url, proxy_to_configure) + # Give iLO time to process proxy changes + time.sleep(2) + except Exception as e: + error_msg = f"Failed to configure proxy settings: {str(e)}" + LOGGER.error(error_msg) + raise + + def _configure_proxy(self, session, base_url, proxy_settings): + """Configure proxy settings for the iLO. + + :param session: requests Session object + :type session: requests.Session + :param base_url: base URL for iLO + :type base_url: str + :param proxy_settings: proxy settings + :type proxy_settings: dict + """ + try: + # First, check if proxy settings are already configured as desired + current_proxy = self._get_current_proxy_settings(session, base_url) + + if current_proxy is not None: + # Normalize desired proxy settings for comparison + # Treat empty strings and None as "no proxy configured" + desired_server = proxy_settings.get("server", "").strip() if proxy_settings.get("server") else "" + desired_port = proxy_settings.get("port") if proxy_settings.get("port") else None + desired_credentials = proxy_settings.get("credentials", {}) + # Normalize port to int for comparison if not None + if desired_port is not None: + try: + desired_port = int(desired_port) + except (ValueError, TypeError): + desired_port = None + desired_username = desired_credentials.get("username", "").strip() if desired_credentials else "" + + # Normalize current proxy settings (already normalized in _get_current_proxy_settings) + current_server = current_proxy.get("server", "") + current_port = current_proxy.get("port") + # Ensure current port is also int or None for consistent comparison + if current_port is not None: + try: + current_port = int(current_port) + except (ValueError, TypeError): + current_port = None + current_username = current_proxy.get("username", "") + + # Detect "no proxy" scenarios: + # iLO has no proxy if: server is empty string AND port is None + current_has_no_proxy = not current_server and current_port is None + desired_has_no_proxy = not desired_server and desired_port is None + + if current_has_no_proxy and desired_has_no_proxy: + LOGGER.info("Proxy not configured - skipping") + return + elif ( + desired_server == current_server + and desired_port == current_port + and desired_username == current_username + ): + LOGGER.info(f"Proxy already configured: {desired_server}:{desired_port}") + return + else: + LOGGER.info(f"Updating proxy configuration to {desired_server}:{desired_port}") + else: + LOGGER.info("Unable to retrieve current proxy configuration. Proceeding with proxy configuration.") + + proxy_config_url = f"{base_url}/redfish/v1/Managers/1/NetworkProtocol/" + + # Build proxy configuration payload + web_proxy_config = { + "ProxyServer": proxy_settings.get("server", ""), + "ProxyPort": proxy_settings.get("port"), + "ProxyUserName": "", + "ProxyPassword": "", + } + + # Only add username and password if they are provided (not None and not empty) + username = desired_credentials.get("username", "").strip() if desired_credentials else "" + password = desired_credentials.get("password", "").strip() if desired_credentials else "" + + if username: + web_proxy_config["ProxyUserName"] = username + if password: + web_proxy_config["ProxyPassword"] = password + + payload = {"Oem": {"Hpe": {"WebProxyConfiguration": web_proxy_config}}} + + response = session.patch(proxy_config_url, json=payload, timeout=30) + + if response.status_code not in [200, 204]: + raise Exception(f"Failed to configure proxy. HTTP {response.status_code}: {response.text}") + + LOGGER.info("Proxy configured successfully") + except Exception as e: + error_msg = f"Error configuring proxy: {str(e)}" + LOGGER.error(error_msg) + raise + + def _enable_com_connection_requests(self, session, base_url, activation_key): + """Enable COM connection using requests session + + :param session: requests Session object + :type session: requests.Session + :param base_url: base URL for iLO + :type base_url: str + :param activation_key: COM activation key or PIN + :type activation_key: str + :returns: tuple of (success, fail_reason) where success is True/False and fail_reason is string or None + :rtype: tuple + """ + + try: + # Get manager resource to check COM capabilities with timeout + response = session.get(f"{base_url}/redfish/v1/Managers/1/", timeout=30) + if response.status_code != 200: + LOGGER.warning(f"Failed to get manager resource - HTTP {response.status_code}") + return False, f"Failed to get manager resource: HTTP {response.status_code}" + + manager_data = response.json() + + # Check if COM is already connected + cloud_connect = manager_data.get("Oem", {}).get("Hpe", {}).get("CloudConnect", {}) + current_status = cloud_connect.get("CloudConnectStatus", "") + + if current_status == "Connected": + LOGGER.info("iLO is already connected") + return True, None + + # Check if COM connect actions are available + oem_actions = manager_data.get("Oem", {}).get("Hpe", {}).get("Actions", {}) + if "#HpeiLO.EnableCloudConnect" not in oem_actions: + LOGGER.warning("COM feature not available on this iLO") + return False, "COM feature not available" + + # Enable cloud connect with proper error handling and retry logic + action_uri = f"{base_url}/redfish/v1/Managers/1/Actions/Oem/Hpe/HpeiLO.EnableCloudConnect/" + body = {"ActivationKey": activation_key} if activation_key else {} + + LOGGER.info("Enabling COM connection") + + # Create a new session for the POST request to avoid connection reuse issues + post_session = requests.Session() + post_session.auth = session.auth + post_session.verify = False + + success = False + retry_count = 0 + max_retries = 3 + + while retry_count <= max_retries and not success: + try: + timeout_value = 90 + (retry_count * 30) # Increase timeout with retries + response = post_session.post(action_uri, json=body, timeout=timeout_value) + + if response.status_code in [200, 202]: + success = True + LOGGER.info("COM enable request successful") + else: + LOGGER.warning(f"COM enable failed - HTTP {response.status_code}") + if retry_count < max_retries: + retry_count += 1 + time.sleep(5) + else: + return False, "COM enable request failed" + + except (ConnectionError, Timeout, RequestException) as conn_err: + LOGGER.warning(f"Connection issue during COM enable: {str(conn_err)}") + + # Give iLO time to process the request + time.sleep(10) + + # Try to check if the request was actually accepted by querying status + try: + status_response = session.get(f"{base_url}/redfish/v1/Managers/1/", timeout=30) + if status_response.status_code == 200: + mgr_data = status_response.json() + cc_status = ( + mgr_data.get("Oem", {}) + .get("Hpe", {}) + .get("CloudConnect", {}) + .get("CloudConnectStatus", "") + ) + if cc_status in ["Initializing", "ConnectionInProgress", "Connected"]: + LOGGER.info(f"COM enable appears successful (status: {cc_status})") + success = True + break + except Exception: + pass + + if retry_count < max_retries: + retry_count += 1 + time.sleep(15) + else: + LOGGER.warning("Connection errors occurred, will check status to confirm") + success = True # Proceed to status checking + break + + if not success: + return False, "COM enable request failed" + + # Wait for connection to complete with improved status checking + max_wait = 480 # Increased from 180s (3 min) to 480s (8 min) + wait_interval = 12 + waited = 0 + + while waited < max_wait: + time.sleep(wait_interval) + waited += wait_interval + + try: + status_response = session.get(f"{base_url}/redfish/v1/Managers/1/", timeout=30) + if status_response.status_code == 200: + manager_data = status_response.json() + cloud_connect = manager_data.get("Oem", {}).get("Hpe", {}).get("CloudConnect", {}) + current_status = cloud_connect.get("CloudConnectStatus", "") + + if current_status == "Connected": + LOGGER.info("COM connection successful") + return True, None + elif current_status == "Initializing": + LOGGER.info("COM connection is initializing, waiting...") + continue # Keep waiting + elif current_status == "ConnectionFailed": + LOGGER.warning(f"COM connect terminal Status: {current_status}") + break + elif current_status in ["NotConnected", "NotEnabled"]: + fail_reason = cloud_connect.get("FailReason", "Unknown error") + + LOGGER.warning(f"COM Current Status: {current_status}") + LOGGER.warning("Continuing to wait ...") + continue # Keep waiting + # Add other terminal states if needed + else: + LOGGER.warning( + f"Failed to get manager resource during status check - HTTP {status_response.status_code}" + ) + except (ConnectionError, Timeout, RequestException): + LOGGER.warning("Connection error during COM status polling, will retry...") + continue + except Exception as check_err: + LOGGER.warning(f"Error during COM status polling: {str(check_err)}") + continue + + status_response = session.get(f"{base_url}/redfish/v1/Managers/1/", timeout=30) + if status_response.status_code == 200: + manager_data = status_response.json() + cloud_connect = manager_data.get("Oem", {}).get("Hpe", {}).get("CloudConnect", {}) + current_status = cloud_connect.get("CloudConnectStatus", "") + if current_status == "Connected": + LOGGER.info("COM connection successful") + return True, None + else: + fail_reason = cloud_connect.get("FailReason", "Unknown error") + LOGGER.warning(f"COM connection failed - final status: {current_status}") + return False, f"COM connection failed: {fail_reason}" + + except (ConnectionError, Timeout, RequestException) as e: + LOGGER.warning(f"Connection error during COM enable: {str(e)}") + # Try to verify if the connection actually succeeded + try: + verify_session = requests.Session() + verify_session.auth = session.auth + verify_session.verify = False + time.sleep(5) + + response = verify_session.get(f"{base_url}/redfish/v1/Managers/1/", timeout=30) + if response.status_code == 200: + mgr_data = response.json() + cc_status = ( + mgr_data.get("Oem", {}).get("Hpe", {}).get("CloudConnect", {}).get("CloudConnectStatus", "") + ) + if cc_status in ["Initializing", "ConnectionInProgress", "Connected"]: + LOGGER.info(f"COM enable appears successful despite connection error (status: {cc_status})") + success = True + else: + return False, "Connection error" + else: + return False, "Connection error" + except Exception: + return False, "Connection error" + + if not success: + return False, "Connection error" + + except Exception as e: + LOGGER.error(f"Unexpected error enabling COM: {str(e)}") + return False, str(e) + + def _save_json_report(self, report, output_file): + """Save report to JSON file with proper formatting + + :param report: report data to save + :type report: dict + :param output_file: output filename + :type output_file: str + :returns: True if successful, False otherwise + :rtype: bool + """ + try: + with open(output_file, "w") as f: + json.dump(report, f, indent=2, sort_keys=True) + + LOGGER.info(f"Report successfully saved to {output_file}") + + except Exception as e: + error_msg = f"Failed to save report to {output_file}: {str(e)}" + LOGGER.error(error_msg) + raise Exception(error_msg) + + def run(self, line, help_disp=False): + """Wrapper function for cloudconnect main function + + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except Exception: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + # Skip validations for multiconnect as it handles multiple connections differently + if not (options.command and options.command.lower() == "multiconnect"): + self.cmdbase.login_select_validation(self, options) + if not self.rdmc.app.redfishinst: + raise NoCurrentSessionEstablished("Please login to iLO and retry the command") + + ilo_ver = self.rdmc.app.getiloversion() + if ilo_ver < 5.247: + raise IncompatibleiLOVersionError( + "ComputeOpsManagement Feature is only available with iLO 5 version 2.47 or higher.\n" + ) + + # validation checks + self.cloudconnectvalidation(options) + if options.command: + if options.command.lower() == "connect": + if options.proxy: + self.proxy_config(options.proxy) + if options.activationkey: + self.connect_cloud(activationkey=options.activationkey) + elif not options.activationkey: + self.connect_cloud() + else: + raise InvalidCommandLineError( + "Activation Key %s is not alphanumeric or not of length 32." % str(options.activationkey) + ) + elif options.command.lower() == "disconnect": + self.disconnect_cloud() + elif options.command.lower() == "status": + if options.json: + self.cloud_status(json=True) + else: + self.cloud_status() + elif options.command.lower() == "multiconnect": + # Handle template generation + if options.template_input_file is not None: + self.generate_template_file(options.template_input_file) + # Handle bulk operations + elif options.file: + if getattr(options, "precheck", False): + result = self.bulk_connect_precheck(options.file, options.output_file) + if result != ReturnCodes.SUCCESS: + return result + else: + result = self.bulk_connect(options.file, options.output_file, options.allow_ilo_reset) + if result != ReturnCodes.SUCCESS: + return result + else: + raise InvalidCommandLineError( + "For multiconnect command, either --input_file_json_template" + " or --input_file must be specified. " + "Use -h for help." + ) + else: + raise InvalidCommandLineError("%s is not a valid option for this command." % str(options.command)) + else: + raise InvalidCommandLineError( + "Please provide either connect, disconnect, status, or multiconnect as additional subcommand." + " For help or usage related information, use -h or --help" + ) + # logout routine + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def cloudconnectvalidation(self, options): + """new command method validation function""" + # Check if Cloud Connect feature is enabled in iLO. + path = self.rdmc.app.typepath.defs.managerpath + resp = self.rdmc.app.get_handler(path, service=True, silent=True) + if resp.status == 200: + oem_actions = resp.dict["Oem"]["Hpe"]["Actions"] + # print(oem_actions) + if "#HpeiLO.EnableCloudConnect" not in oem_actions or "#HpeiLO.DisableCloudConnect" not in oem_actions: + raise CloudConnectFailedError("ComputeOpsManagement is disabled in this iLO.\n") + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + subcommand_parser = customparser.add_subparsers(dest="command") + connect_help = "To connect to ComputeOpsManagement\n" + # connect sub-parser + connect_parser = subcommand_parser.add_parser( + "connect", + help=connect_help, + description=connect_help + "\n\tExample:\n\tcomputeopsmanagement connect or" + "\n\tcomputeopsmanagement connect --proxy http://proxy.abc.com:8080 or " + "\n\tcomputeopsmanagement connect --proxy None or " + "\n\tcomputeopsmanagement connect --activationkey 123456789EFGA or " + "\n\tcomputeopsmanagement connect --activationkey 123456789EFGA --proxy http://proxy.abc.com:8080 or " + "\n\tcomputeopsmanagement connect --activationkey 123456789EFGA --proxy None", + formatter_class=RawDescriptionHelpFormatter, + ) + connect_parser.add_argument( + "--activationkey", + dest="activationkey", + help="activation key is optional for connecting", + required=False, + type=str, + default=None, + ) + connect_parser.add_argument( + "--proxy", + dest="proxy", + help="to set or clear proxy while connecting", + type=str, + default=None, + ) + self.cmdbase.add_login_arguments_group(connect_parser) + status_help = "To check the ComputeOpsManagement connection status\n" + status_parser = subcommand_parser.add_parser( + "status", + help=status_help, + description=status_help + "\n\tExample:\n\tcomputeopsmanagement status or " + "\n\tcomputeopsmanagement status -j", + formatter_class=RawDescriptionHelpFormatter, + ) + status_parser.add_argument( + "-j", + "--json", + dest="json", + help="to print in json format", + action="store_true", + default=False, + ) + self.cmdbase.add_login_arguments_group(status_parser) + disconnect_help = "To disconnect from ComputeOpsManagement\n" + disconnect_parser = subcommand_parser.add_parser( + "disconnect", + help=disconnect_help, + description=disconnect_help + "\n\tExample:\n\tcomputeopsmanagement disconnect", + ) + self.cmdbase.add_login_arguments_group(disconnect_parser) + + # Multiconnect subcommand + multiconnect_help = "Bulk connect multiple iLOs using JSON configuration" + multiconnect_parser = subcommand_parser.add_parser( + "multiconnect", + help=multiconnect_help, + description=multiconnect_help + + """ + EXAMPLES: + # Generate template JSON file + computeopsmanagement multiconnect --input_file_json_template + # Generate precheck report without making applying changes + computeopsmanagement multiconnect --input_file servers.json --precheck + computeopsmanagement multiconnect --input_file servers.json --precheck --output report.json + # Onboard multiple servers from JSON file to COM + computeopsmanagement multiconnect --input_file servers.json + computeopsmanagement multiconnect --input_file servers.json --allow_ilo_reset + computeopsmanagement multiconnect --input_file servers.json --allow_ilo_reset --output report.json + """, + formatter_class=RawDescriptionHelpFormatter, + ) + + multiconnect_parser.add_argument( + "--input_file", + "-i", + dest="file", + help="Path to JSON file containing bulk server configuration", + required=False, + type=str, + default=None, + ) + + multiconnect_parser.add_argument( + "--input_file_json_template", + "-t", + dest="template_input_file", + help=f"Generate template JSON input file (writes {DEFAULT_TEMPLATE_FILE_NAME})", + action="store_const", + const=DEFAULT_TEMPLATE_FILE_NAME, + default=None, + ) + + # Create mutually exclusive group for precheck and allow_ilo_reset + exclusive_group = multiconnect_parser.add_mutually_exclusive_group() + + exclusive_group.add_argument( + "--allow_ilo_reset", + "-r", + dest="allow_ilo_reset", + help="If needed, allow iLO reset during bulk operations", + required=False, + action="store_true", + default=False, + ) + + multiconnect_parser.add_argument( + "--output", + "-of", + dest="output_file", + help="Output file for reports", + required=False, + type=str, + default=None, + ) + + exclusive_group.add_argument( + "--precheck", + "-c", + dest="precheck", + help="Perform precheck validation only (no onboarding or configuration)", + required=False, + action="store_true", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/DirectoryCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/DirectoryCommand.py new file mode 100644 index 0000000..a11018a --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/DirectoryCommand.py @@ -0,0 +1,876 @@ +### +# Copyright 2017 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Directory Command for rdmc""" + +import re +import sys +from argparse import Action, RawDescriptionHelpFormatter + +from redfish.ris.rmc_helper import IdTokenError, IloResponseError + +try: + from rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ResourceExists, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ResourceExists, + ReturnCodes, + ) + +__subparsers__ = ["ldap", "kerberos", "test"] + +PRIVKEY = { + 1: ("Login", "AssignedPrivileges"), + 2: ("RemoteConsolePriv", "OemPrivileges"), + 3: ("ConfigureUsers", "AssignedPrivileges"), + 4: ("ConfigureManager", "AssignedPrivileges"), + 5: ("VirtualMediaPriv", "OemPrivileges"), + 6: ("VirtualPowerAndResetPriv", "OemPrivileges"), + 7: ("HostNICConfigPriv", "OemPrivileges"), + 8: ("HostBIOSConfigPriv", "OemPrivileges"), + 9: ("HostStorageConfigPriv", "OemPrivileges"), + 10: ("SystemRecoveryConfigPriv", "OemPrivileges"), + 11: ("ConfigureSelf", "AssignedPrivileges"), + 12: ("ConfigureComponents", "AssignedPrivileges"), +} + + +class _DirectoryParse(Action): + def __init__(self, option_strings, dest, nargs, **kwargs): + super(_DirectoryParse, self).__init__(option_strings, dest, nargs, **kwargs) + + def __call__(self, parser, namespace, values, option_strings): + """Helper for parsing options""" + if option_strings.endswith("disable"): + setattr(namespace, self.dest, False) + elif option_strings.endswith("enable"): + setattr(namespace, self.dest, True) + elif option_strings.endswith("enablelocalauth"): + setattr(namespace, self.dest, False) + elif option_strings.endswith("disablelocalauth"): + setattr(namespace, self.dest, True) + elif option_strings == "--removerolemap": + setattr(namespace, self.dest, {"remove": []}) + for role in next(iter(values)).split("#"): + role = role.replace('"', "") + if role: + namespace.roles["remove"].append(role) + elif option_strings == "--addrolemap": + setattr(namespace, self.dest, {"add": []}) + for role in next(iter(values)).split("#"): + role = role.replace('"', "") + if role and re.match(".*:.*", role): + privs = role.split(":")[0].split(";") + if len(privs) > 1: + for priv in privs: + try: + if priv and int(priv) > 12: + try: + parser.error("Invalid privilege number added %s." % priv) + except SystemExit: + raise InvalidCommandLineErrorOPTS("") + except ValueError: + try: + parser.error("Privileges must be added as numbers.") + except SystemExit: + raise InvalidCommandLineErrorOPTS("") + namespace.roles["add"].append(role) + else: + try: + parser.error("Supply roles to add in form :") + except SystemExit: + raise InvalidCommandLineErrorOPTS("") + elif option_strings == "--addsearch": + setattr(namespace, self.dest, {"add": []}) + for search in next(iter(values)).split(";"): + if search: + namespace.search["add"].append(search) + + elif option_strings == "--removesearch": + setattr(namespace, self.dest, {"remove": []}) + for search in next(iter(values)).split(";"): + if search: + namespace.search["remove"].append(search) + + +class DirectoryCommand: + """Update directory settings on the server""" + + def __init__(self): + self.ident = { + "name": "directory", + "usage": None, + "description": "\tAdd credentials, service address, two search strings, and enable" + "\n\tLDAP directory service, remote role groups (mapping), local custom role\n\t" + "IDs with privileges.\n\n\tTo view help on specific sub-commands" + " run: directory -h\n\n\tExample: directory ldap -h\n", + "summary": "Update directory settings, add/delete directory roles, and test directory " + "settings on the currently logged in server.", + "aliases": ["ad", "activedirectory"], + "auxcommands": ["IloAccountsCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main directory Function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + ident_subparser = False + for cmnd in __subparsers__: + if cmnd in line: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + ident_subparser = True + break + if not ident_subparser: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line, default=True) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.directoryvalidation(options) + + if self.rdmc.app.getiloversion() < 5.140: + raise IncompatibleiLOVersionError("Directory settings are only available on " "iLO 5 1.40 or greater.") + results = None + if options.command.lower() == "ldap" or ( + (True if options.ldap_kerberos == "ldap" else False) if hasattr(options, "ldap_kerberos") else False + ): + try: + results = self.rdmc.app.select(selector="AccountService.", path_refresh=True)[0].dict + path = results[self.rdmc.app.typepath.defs.hrefstring] + oem = results["Oem"][self.rdmc.app.typepath.defs.oemhp] + local_auth = results["LocalAccountAuth"] + results = results["LDAP"] + if "RemoteRoleMapping" not in results: + rolemap = {"RemoteRoleMapping": {}} + results.update(rolemap) + name = "LDAP" + except (KeyError, IndexError): + raise NoContentsFoundForOperationError("Unable to gather LDAP settings.") + + elif options.command.lower() == "kerberos" or ( + (True if options.ldap_kerberos == "kerberos" else False) if hasattr(options, "ldap_kerberos") else False + ): + try: + results = self.rdmc.app.select(selector="AccountService.", path_refresh=True)[0].dict + path = results[self.rdmc.app.typepath.defs.hrefstring] + oem = results["Oem"][self.rdmc.app.typepath.defs.oemhp] + local_auth = results["LocalAccountAuth"] + results = results["ActiveDirectory"] + if "RemoteRoleMapping" not in results: + rolemap = {"RemoteRoleMapping": {}} + results.update(rolemap) + name = "ActiveDirectory" + except (KeyError, IndexError): + raise NoContentsFoundForOperationError("Unable to gather Kerberos settings.") + + if results: + keytab = None + payload = {} + if hasattr(options, "keytab"): + keytab = options.keytab + try: + directory_settings = self.directory_helper(results, options) + if "ldap" in line and options.roles and "add" in options.roles: + role_val = options.roles["add"] + for r in role_val: + if ";" in r.split(":")[0]: + name = "ActiveDirectory" + break + except IndexError: + directory_settings = self.directory_helper(results, options) + + if directory_settings: + payload[name] = directory_settings + + if hasattr(options, "authmode"): + if options.authmode: + payload.update( + {"Oem": {"Hpe": {"DirectorySettings": {"LdapAuthenticationMode": options.authmode}}}} + ) + + if not payload and not keytab: + if getattr(options, "json", False): + # self.rdmc.ui.print_out_json({name: results, 'LocalAccountAuth': local_auth, + # "Oem": {"Hpe": oem}}) + text_content = self.print_s(results, oem, local_auth, name) + self.rdmc.ui.print_out_json(text_content) + else: + self.print_settings(results, oem, local_auth, name) + + if payload: + priv_patches = {} + try: + if hasattr(options, "localauth"): + if options.localauth: + payload["LocalAccountAuth"] = "Enabled" if options.localauth else "Disabled" + elif local_auth: + payload["LocalAccountAuth"] = "Enabled" if local_auth else "Disabled" + except (NameError, AttributeError): + payload["LocalAccountAuth"] = "Disabled" + try: + maps = {} + if payload.get("LDAP"): + maps = payload["LDAP"].get("RemoteRoleMapping", {}) + elif payload.get("ActiveDirectory"): + maps = payload["ActiveDirectory"].get("RemoteRoleMapping", {}) + # Check if we need to modify roles after creating + for mapping in maps: + privs = mapping["LocalRole"].split(";") + if len(privs) > 1: + privs = [int(priv) for priv in privs if priv] + + if 10 in privs: + user_privs = self.auxcommands["iloaccounts"].getsesprivs() + if "SystemRecoveryConfigPriv" not in list(user_privs.keys()): + raise IdTokenError( + "The currently logged in account " + "must have the System Recovery Config privilege to " + "add the System Recovery Config privilege to a local " + "role group." + ) + + priv_patches[mapping["RemoteGroup"]] = privs + mapping["LocalRole"] = "ReadOnly" + except Exception as excp: + self.rdmc.ui.error(excp) + self.rdmc.ui.printer("Changing settings...\n") + try: + self.rdmc.app.patch_handler(path, payload) + except IloResponseError as excp: + if not results["ServiceEnabled"]: + self.rdmc.ui.error( + "You must enable this directory service before or " + "during assignment of username and password. Try adding the flag " + "--enable.\n", + excp, + ) + else: + raise IloResponseError + if priv_patches: + self.update_mapping_privs(priv_patches) + if keytab: + path = oem["Actions"][next(iter(oem["Actions"]))]["target"] + self.rdmc.ui.printer("Adding keytab...\n") + self.rdmc.app.post_handler(path, {"ImportUri": keytab}) + elif options.command.lower() == "test": + self.test_directory(options, json=getattr(options, "json", False)) + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def update_mapping_privs(self, roles_to_update): + """Helper function to update created role mappings to match user privileges. + + :param roles_to_update: Dictionary of privileges to update. + :type roles_to_update: dict + """ + self.rdmc.ui.printer("Updating privileges of created role maps...\n") + try: + results = self.rdmc.app.select(selector="AccountService.", path_refresh=True)[0].dict + roles = self.rdmc.app.getcollectionmembers(self.rdmc.app.getidbytype("RoleCollection.")[0]) + except (KeyError, IndexError): + raise NoContentsFoundForOperationError( + "Unable to gather Role settings. Roles may not " "be updated to match privileges requested." + ) + for rolemap in results["LDAP"]["RemoteRoleMapping"]: + for role in roles: + if role["RoleId"] == rolemap["LocalRole"]: + role["RemoteGroup"] = rolemap["RemoteGroup"] + break + for role in roles: + privs = {"AssignedPrivileges": [], "OemPrivileges": []} + + for update_role in list(roles_to_update.keys()): + if role.get("RemoteGroup", None) == update_role: + for priv in roles_to_update[update_role]: + privs[PRIVKEY[priv][1]].append(PRIVKEY[priv][0]) + try: + self.rdmc.app.patch_handler(role["@odata.id"], privs) + self.rdmc.ui.printer("Updated privileges for %s\n" % update_role) + except IloResponseError as excp: + self.rdmc.ui.error("Unable to update privileges for %s\n" % update_role, excp) + break + + def directory_helper(self, settings, options): + """Helper function to set the payload based on options and arguments + + :param settings: dictionary to change + :type settings: dict. + :param options: list of options + :type options: list. + """ + + payload = {} + serviceaddress = None + + if hasattr(options, "serviceaddress"): + if isinstance(options.serviceaddress, str): + serviceaddress = options.serviceaddress + if serviceaddress == '""' or serviceaddress == "''": + serviceaddress = "" + if hasattr(options, "port"): + if isinstance(options.port, str): + if serviceaddress is None: + serviceaddress = settings["ServiceAddresses"][0] + serviceaddress = serviceaddress + ":" + options.port + if hasattr(options, "realm"): + if isinstance(options.realm, str): + if serviceaddress is None: + serviceaddress = settings["ServiceAddresses"][0] + if options.realm == '""' or options.realm == "''": + options.realm = "" + serviceaddress = serviceaddress + "@" + options.realm + if serviceaddress is not None: + payload["ServiceAddresses"] = [serviceaddress] + + if hasattr(options, "enable"): + if options.enable is not None: + payload["ServiceEnabled"] = options.enable + + if hasattr(options, "ldap_username") and hasattr(options, "ldap_password"): + if options.ldap_username and options.ldap_password: + payload.update( + { + "Authentication": { + "Username": options.ldap_username, + "Password": options.ldap_password, + } + } + ) + + if hasattr(options, "roles"): + if options.roles: + payload["RemoteRoleMapping"] = self.role_helper(options.roles, settings["RemoteRoleMapping"]) + + if hasattr(options, "search"): + if options.search: + payload.update( + { + "LDAPService": { + "SearchSettings": self.search_helper( + options.search, + settings["LDAPService"]["SearchSettings"], + ) + } + } + ) + return payload + + def test_directory(self, options, json=False): + """Function to perform directory testing + + :param options: namespace of custom parser attributes which contain the original command + arguments for 'start/stop/viewresults' + :type options: namespace + :param json: Bool to print in json format or not. + :type json: bool. + """ + results = self.rdmc.app.select(selector="HpeDirectoryTest.", path_refresh=True)[0].dict + if options.start_stop_view.lower() == "start": + path = None + for item in results["Actions"]: + if "StartTest" in item: + path = results["Actions"][item]["target"] + break + if not path: + raise NoContentsFoundForOperationError("Unable to start directory test.") + self.rdmc.ui.printer( + "Starting the directory test. Monitor results with " 'command: "directory test viewresults".\n' + ) + self.rdmc.app.post_handler(path, {}) + elif options.start_stop_view.lower() == "stop": + path = None + for item in results["Actions"]: + if "StopTest" in item: + path = results["Actions"][item]["target"] + break + if not path: + raise NoContentsFoundForOperationError("Unable to stop directory test.") + self.rdmc.ui.printer("Stopping the directory test.\n") + self.rdmc.app.post_handler(path, {}) + elif options.start_stop_view.lower() == "viewresults": + if getattr(options, "json", False): + self.rdmc.ui.print_out_json(results["TestResults"]) + else: + for test in results["TestResults"]: + self.rdmc.ui.printer("Test: %s\n" % test["TestName"]) + self.rdmc.ui.printer("------------------------\n") + self.rdmc.ui.printer("Status: %s\n" % test["Status"]) + self.rdmc.ui.printer("Notes: %s\n\n" % test["Notes"]) + + def print_s(self, settings, oem_settings, local_auth_setting, name): + setting = "Kerberos" if name == "ActiveDirectory" else name + enable = str(settings["ServiceEnabled"]) + serviceaddress = settings["ServiceAddresses"][0] + address = serviceaddress if serviceaddress else "Not Set" + username = settings["Authentication"]["Username"] + dis_name = username if username else "Not Set" + auth = local_auth_setting + content = { + "Settings": setting, + "Enabled": enable, + "Service Address": address, + "Distinguished Name": dis_name, + "Local Account Authorization": auth, + } + if name.lower() == "activedirectory": + address_settings = oem_settings["KerberosSettings"] + port = address_settings["KDCServerPort"] + realm = address_settings["KerberosRealm"] if address_settings["KerberosRealm"] else "Not Set" + content.update({"Port": port, "Realm": realm}) + + else: + address_settings = oem_settings["DirectorySettings"] + port = address_settings["LdapServerPort"] + authmode = address_settings["LdapAuthenticationMode"] + content.update({"Port": port, "Authentication Mode": authmode}) + addsearch = [] + try: + count = 1 + for search in settings["LDAPService"]["SearchSettings"]["BaseDistinguishedNames"]: + # search = (count, search) + search = "Search %s: %s" % (count, search) + addsearch.append(search) + count += 1 + content.update({"Search Settings": addsearch}) + except KeyError: + search = "No Search Settings" + content.update({"Search Settings": {search}}) + addval = [] + if "RemoteRoleMapping" in settings: + if len(settings["RemoteRoleMapping"]) > 0: + for role in settings["RemoteRoleMapping"]: + roleadd = { + "Local Role": role["LocalRole"], + "Remote Group": role["RemoteGroup"], + } + addval.append(roleadd) + content.update({"Remote Role Mapping(s)": addval}) + else: + addval = {"No Remote Role Mappings"} + content.update({"Remote Role Mapping(s)": addval}) + else: + content.update({"No Remote Role Mappings"}) + return content + + def print_settings(self, settings, oem_settings, local_auth_setting, name): + """Pretty print settings of LDAP or Kerberos + + :param settings: settings to print + :type settings: dict. + :param oem_settings: oem_settings to print + :type oem_settings: dict. + :param local_auth_settings: local authorization setting + :type local_auth_settings: str. + :param name: type of setting (activedirectory or ldap) + :type name: str. + """ + + self.rdmc.ui.printer("%s settings:\n" % ("Kerberos" if name == "ActiveDirectory" else name)) + self.rdmc.ui.printer("--------------------------------\n") + self.rdmc.ui.printer("Enabled: %s\n" % str(settings["ServiceEnabled"])) + + serviceaddress = settings["ServiceAddresses"][0] + + self.rdmc.ui.printer("Service Address: %s\n" % (serviceaddress if serviceaddress else "Not Set")) + username = settings["Authentication"]["Username"] + self.rdmc.ui.printer("Distinguished Name: %s\n" % (username if username else "Not Set")) + + self.rdmc.ui.printer("Local Account Authorization: %s\n" % local_auth_setting) + + if name.lower() == "activedirectory": + address_settings = oem_settings["KerberosSettings"] + self.rdmc.ui.printer("Port: %s\n" % address_settings["KDCServerPort"]) + + self.rdmc.ui.printer( + "Realm: %s\n" % (address_settings["KerberosRealm"] if address_settings["KerberosRealm"] else "Not Set") + ) + else: + address_settings = oem_settings["DirectorySettings"] + self.rdmc.ui.printer("Port: %s\n" % address_settings["LdapServerPort"]) + self.rdmc.ui.printer("Authentication Mode: %s\n" % address_settings["LdapAuthenticationMode"]) + + try: + self.rdmc.ui.printer("Search Settings:\n") + count = 1 + for search in settings["LDAPService"]["SearchSettings"]["BaseDistinguishedNames"]: + self.rdmc.ui.printer("\tSearch %s: %s\n" % (count, search)) + count += 1 + except KeyError: + self.rdmc.ui.printer("\tNo Search Settings\n") + + if "RemoteRoleMapping" in settings: + self.rdmc.ui.printer("Remote Role Mapping(s):\n") + if len(settings["RemoteRoleMapping"]) > 0: + for role in settings["RemoteRoleMapping"]: + self.rdmc.ui.printer("\tLocal Role: %s\n" % role["LocalRole"]) + self.rdmc.ui.printer("\tRemote Group: %s\n" % role["RemoteGroup"]) + else: + self.rdmc.ui.printer("\tNo Remote Role Mappings.\n") + else: + self.rdmc.ui.printer("No Remote Role Mappings.\n") + + def role_helper(self, new_roles, curr_roles): + """Helper to prepare adding and removing roles for patching + + :param new_roles: dictionary of new roles to add or remove + :type new_roles: dict. + :param curr_roles: list of current roles on the system + :type curr_roles: list. + """ + final_roles = curr_roles + if "add" in new_roles: + for role in new_roles["add"]: + role = role.split(":", 1) + if not self.duplicate_group(role[1], curr_roles): + if len(curr_roles) > 0: + final_roles.append({"LocalRole": role[0], "RemoteGroup": role[1]}) + else: + final_roles = [{"LocalRole": role[0], "RemoteGroup": role[1]}] + curr_roles = final_roles + + else: + raise ResourceExists('Group DN "%s" already exists.' % role[1].split(":")[0]) + if "remove" in new_roles: + removed = False + for role in new_roles["remove"]: + removed = False + for item in reversed(final_roles): + if item["LocalRole"] == role: + if len(curr_roles) > 1: + del final_roles[final_roles.index(item)] + removed = True + break + elif len(curr_roles) == 1: + del final_roles[final_roles.index(item)] + final_roles = [{}] + removed = True + break + if not removed: + raise InvalidCommandLineError("Unable to find local role %s to delete" % role) + return final_roles + + def duplicate_group(self, group_dn, curr_roles): + """Checks if new role is a duplicate + + :param group_dn: group domain name from user + :type group_dn: str. + :param curr_roles: list of current roles + :type curr_roles: list. + """ + group_dn = group_dn.split(":")[0] + for item in curr_roles: + comp_dn = item["RemoteGroup"].split(":")[0] + if comp_dn == group_dn: + return True + return False + + def search_helper(self, new_searches, curr_searches): + """Helper to prepare search strings for patching + + :param new_serches: dictionary of new searches to add + :type new_searches: dict. + :param curr_searches: list of current searches + :type curr_searches: dict. + """ + final_searches = curr_searches + + if "add" in new_searches: + if "BaseDistinguishedNames" in final_searches: + for search in new_searches["add"]: + for key, value in final_searches.items(): + for v in value: + if search.lower() == v.lower(): + raise ResourceExists('Search Setting "%s" already exists.\n' % search) + + final_searches["BaseDistinguishedNames"].append(search) + else: + final_searches["BaseDistinguishedNames"] = new_searches["add"] + elif "remove" in new_searches: + to_remove = [] + + if "BaseDistinguishedNames" not in curr_searches: + raise NoContentsFoundForOperationError("No search strings to remove") + + for search in new_searches["remove"]: + if search in curr_searches["BaseDistinguishedNames"]: + to_remove.append(search) + else: + raise InvalidCommandLineError("Unable to find search %s to delete" % search) + for item in to_remove: + final_searches["BaseDistinguishedNames"].remove(item) + + if not final_searches["BaseDistinguishedNames"]: + sys.stdout.write("Attempting to delete all searches.\n") + final_searches["BaseDistinguishedNames"].append("") + + return final_searches + + def directoryvalidation(self, options): + """directory validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def options_argument_group(self, parser): + """Additional argument + + :param parser: The parser to add the removeprivs option group to + :type parser: ArgumentParser/OptionParser + """ + + parser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + subcommand_parser = customparser.add_subparsers(dest="command") + default_parser = subcommand_parser.add_parser("default") + + default_parser.add_argument( + "ldap_kerberos", + help="Specify LDAP or Kerberos configuration settings", + metavar="LDAP_KERBEROS", + nargs="?", + type=str, + default=None, + ) + self.cmdbase.add_login_arguments_group(default_parser) + + privilege_help = ( + "\n\nPRIVILEGES:\n\t1: Login\n\t2: Remote Console\n\t" + "3: User Config\n\t4: iLO (Manager) Config\n\t5: Virtual Media\n\t" + "6: Virtual Power and Reset\n\t7: Host NIC Config\n\t8: Host Bios Config\n\t9: " + "Host Storage Config\n\t10: System Recovery Config\n\t11: Self Password Change\n\t" + "12: Configure Components\n\n\tLOCAL ROLES:\n\tReadOnly\n\tOperator\n\tAdministrator" + "\n\n\tNOTE: The Self Password Change privilege is automatically added to roles with " + "the Login privilege." + ) + ldap_help = "Show, add or modify properties pertaining to iLO LDAP Configuration." + ldap_parser = subcommand_parser.add_parser( + __subparsers__[0], + help=ldap_help, + description=ldap_help + "\n\n\tSimply show LDAP configuration:\n\t\tdirectory ldap\n\n" + "To modify the LDAP username, password, service address, search strings or " + "enable/disable LDAP.\n\t\tdirectory ldap " + '--serviceaddress x.x.y.z --addsearch "string1;string2" --enable.\n\n\tTo add role ' + 'mapping.\n\t\tdirectory ldap --addrolemap "LocalRole1:' + 'RemoteGroup3#LocalRole2:RemoteGroup4:SID".\n\n\tTo remove role mapping.\n\t\t' + "directory ldap --removerolemap LocalRole1#LocalRole2." + privilege_help, + formatter_class=RawDescriptionHelpFormatter, + ) + ldap_parser.add_argument( + "ldap_username", + help="The LDAP username used in verifying AD (optional outside of '--enable' and" "'--disable')", + metavar="USERNAME", + nargs="?", + type=str, + default=None, + ) + ldap_parser.add_argument( + "ldap_password", + help="The LDAP password used in verifying AD (optional outside of '--enable' and" "'--disable')", + metavar="PASSWORD", + nargs="?", + type=str, + default=None, + ) + ldap_parser.add_argument( + "--enable", + "--disable", + dest="enable", + type=str, + nargs="*", + action=_DirectoryParse, + help="Optionally add this flag to enable LDAP services.", + default=None, + ) + ldap_parser.add_argument( + "--addsearch", + "--removesearch", + dest="search", + nargs="*", + action=_DirectoryParse, + help="Optionally add this flag to add or remove search strings for " "generic LDAP services.", + type=str, + default={}, + ) + ldap_parser.add_argument( + "--serviceaddress", + dest="serviceaddress", + help="Optionally include this flag to set the service address of the LDAP Services.", + default=None, + ) + ldap_parser.add_argument( + "--port", + dest="port", + help="Optionally include this flag to set the port of the LDAP services.", + default=None, + ) + ldap_parser.add_argument( + "--addrolemap", + "--removerolemap", + dest="roles", + nargs="*", + action=_DirectoryParse, + help="Optionally add this flag to add or remove Role Mapping(s) for the LDAP." + " Remove EX: --removerolemap LocalRole1#LocalRole2 " + 'Add EX: --addrolemap "LocalRole1:RemoteGroup3#LocalRole2:RemoteGroup4\n\n"' + 'SID EX: --addrolemap "LocalRole1:RemoteGroup2:SID#LocalRole2:RemoteGroup5:SID"' + "\n\nNOTE 1: Create a custom local role group (and subsequently assign to a role map)" + "by adding the numbers associated with privilege(s) desired separated by a semicolon" + "(;)\n\nNOTE 2: SID is optional", + type=str, + default={}, + ) + ldap_parser.add_argument( + "--enablelocalauth", + "--disablelocalauth", + dest="localauth", + nargs="*", + type=str, + action=_DirectoryParse, + help="Optionally include this flag if you wish to enable or disable authentication " "for local accounts.", + default=None, + ) + ldap_parser.add_argument( + "--authentication", + dest="authmode", + choices=["DefaultSchema", "ExtendedSchema"], + help="Optionally include this flag if you would like to choose a LDAP authentication " + "mode Valid choices are: DefaultSchema (Directory Default Schema or Schema-free) or " + "ExtendedSchema (HPE Extended Schema).", + default=None, + ) + self.cmdbase.add_login_arguments_group(ldap_parser) + + self.options_argument_group(ldap_parser) + + kerberos_help = "Show, add or modify properties pertaining to AD Kerberos Configuration." + kerberos_parser = subcommand_parser.add_parser( + __subparsers__[1], + help=kerberos_help, + description=kerberos_help + "\n\nExamples:\n\nShow Kerberos specific AD/LDAP configuration " + "settings.\n\tdirectory kerberos\n\nShow current AD Kerberos configuration." + "\n\tdirectory kerberos\n\nAlter kerberos service address, AD realm and Port.\n\t" + "directory kerberos --serviceaddress x.x.y.z --port 8888 --realm adrealm1", + formatter_class=RawDescriptionHelpFormatter, + ) + kerberos_parser.add_argument( + "--serviceaddress", + dest="serviceaddress", + help="Optionally include this flag to set the Kerberos serviceaddress.", + default=None, + ) + kerberos_parser.add_argument( + "--port", + dest="port", + help="Optionally include this flag to set the Kerberos port.", + default=None, + ) + kerberos_parser.add_argument( + "--realm", + dest="realm", + help="Optionally include this flag to set the Kerberos realm.", + default=None, + ) + kerberos_parser.add_argument( + "--keytab", + dest="keytab", + help="Optionally include this flag to import a Kerberos Keytab by it's URI location.", + default="", + ) + kerberos_parser.add_argument( + "--enable", + "--disable", + dest="enable", + type=str, + nargs="*", + action=_DirectoryParse, + help="Optionally add this flag to enable or disable Kerberos services.", + default=None, + ) + self.cmdbase.add_login_arguments_group(kerberos_parser) + + self.options_argument_group(kerberos_parser) + + directory_test_help = ( + "Start, stop or view results of an AD/LDAP test which include: ICMP, " + "Domain Resolution, Connectivity, Authentication, Bindings, LOM Object and User " + "Context tests." + ) + directory_test_parser = subcommand_parser.add_parser( + __subparsers__[2], + help=directory_test_help, + description=directory_test_help + "\n\nExamples:\n\nStart a directory test:\n\tdirectory test " + "start\n\nStop a directory test:\n\tdirectory test stop\n\nView results of the last " + "directory test:\n\tdirectory test viewresults", + formatter_class=RawDescriptionHelpFormatter, + ) + directory_test_parser.add_argument( + "start_stop_view", + help="Start, stop, or view results on an AD/LDAP test.", + metavar="START, STOP, VIEWRESULTS", + default="viewresults", + ) + self.cmdbase.add_login_arguments_group(directory_test_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/DisableIloFunctionalityCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/DisableIloFunctionalityCommand.py new file mode 100644 index 0000000..ace8fbb --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/DisableIloFunctionalityCommand.py @@ -0,0 +1,204 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""iLO Functionality Command for rdmc""" + +import json + +try: + from rdmc_helper import ( + IncompatableServerTypeError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IncompatableServerTypeError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + + +class DisableIloFunctionalityCommand: + """Disables iLO functionality to the server""" + + def __init__(self): + self.ident = { + "name": "disableilofunctionality", + "usage": None, + "description": "Disable iLO functionality on the current logged in server." + "\n\texample: disableilofunctionality\n\n\tWARNING: this will" + " render iLO unable to respond to network operations.\n\n\t" + "Add the --force flag to ignore critical task checking.", + "summary": "disables iLO's accessibility via the network and resets " + "iLO. WARNING: This should be used with caution as it will " + "render iLO unable to respond to further network operations " + "(including REST operations) until iLO is re-enabled using the" + " RBSU menu.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main DisableIloFunctionalityCommand function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if args: + raise InvalidCommandLineError("disableilofunctionality command takes no arguments.") + + self.ilofunctionalityvalidation(options) + + select = "Manager." + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Manager. not found.") + + bodydict = results.resp.dict["Oem"][self.rdmc.app.typepath.defs.oemhp] + if bodydict["iLOFunctionalityRequired"]: + raise IncompatableServerTypeError( + "disableilofunctionality" + " command is not available. iLO functionality is required" + " and can not be disabled on this platform." + ) + + try: + for item in bodydict["Actions"]: + if "iLOFunctionality" in item: + if self.rdmc.app.typepath.defs.isgen10: + action = item.split("#")[-1] + else: + action = "iLOFunctionality" + + path = bodydict["Actions"][item]["target"] + body = {"Action": action} + break + except: + body = {"Action": "iLOFunctionality", "Target": "/Oem/Hp"} + + if self.ilodisablechecks(options): + self.rdmc.ui.warn( + "Disabling iLO functionality. iLO will be unavailable on the logged " + " in server until it is re-enabled manually.\n" + ) + + results = self.rdmc.app.post_handler(path, body, silent=True, service=True) + + if results.status == 200: + self.rdmc.ui.printer("[%d] The operation completed successfully.\n" % results.status) + else: + self.rdmc.ui.printer("[%d] iLO responded with the following info: \n" % results.status) + json_payload = json.loads(results._http_response.data) + try: + self.rdmc.ui.error("%s" % json_payload["error"]["@Message.ExtendedInfo"][0]["MessageId"]) + except: + self.rdmc.ui.error("An invalid or incomplete response was received: %s\n" % json_payload) + + else: + self.rdmc.ui.error( + "iLO is currently performing a critical task and " + "can not be safely disabled at this time. Please try again later.\n" + ) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def ilodisablechecks(self, options): + """Verify it is safe to actually disable iLO + + :param options: command line options + :type options: values, attributes of class obj + """ + + if options.force: + self.rdmc.ui.warn("Force Enabled: Ignoring critical operation/mode checking.\n") + return True + + else: + keyword_list = "idle", "complete" + + try: + results = self.rdmc.app.select(selector="UpdateService.")[0] + except: + raise NoContentsFoundForOperationError("UpdateService. not found.") + + try: + state = results.resp.dict["Oem"]["Hpe"]["State"].lower() + for val in keyword_list: + if val in state: + return True + return False + + except: + raise NoContentsFoundForOperationError("iLO state not identified") + + def ilofunctionalityvalidation(self, options): + """ilofunctionalityvalidation method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--force", + dest="force", + help="Ignore any critical task checking and force disable iLO.", + action="store_true", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ESKMCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ESKMCommand.py new file mode 100644 index 0000000..70e5d09 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ESKMCommand.py @@ -0,0 +1,134 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""ESKM Command for rdmc""" + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + + +class ESKMCommand: + """Commands ESKM available actions""" + + def __init__(self): + self.ident = { + "name": "eskm", + "usage": None, + "description": "Clear the ESKM logs.\n\texample: eskm" + " clearlog\n\n\tTest the ESKM connections.\n\texample: eskm testconnections", + "summary": "Command for all ESKM available actions.", + "aliases": [], + "auxcommands": [], + } + + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main ESKMCommand function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if not len(args) == 1: + raise InvalidCommandLineError("eskm command only takes one parameter.") + + self.eskmvalidation(options) + + select = self.rdmc.app.typepath.defs.hpeskmtype + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("ESKM not found.") + + if args[0].lower() == "clearlog": + actionitem = "ClearESKMLog" + elif args[0].lower() == "testconnections": + actionitem = "TestESKMConnections" + else: + raise InvalidCommandLineError("Invalid command.") + + bodydict = results.resp.dict + try: + for item in bodydict["Actions"]: + if actionitem in item: + if self.rdmc.app.typepath.defs.isgen10: + actionitem = item.split("#")[-1] + + path = bodydict["Actions"][item]["target"] + break + except: + pass + + body = {"Action": actionitem} + self.rdmc.app.post_handler(path, body) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def eskmvalidation(self, options): + """eskmvalidation method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/EthernetCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/EthernetCommand.py new file mode 100644 index 0000000..3faec34 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/EthernetCommand.py @@ -0,0 +1,1242 @@ +### +# Copyright 2019 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Certificates Command for rdmc""" + +import copy +import json +import re +from argparse import RawDescriptionHelpFormatter +from collections import OrderedDict + +import redfish.ris +from redfish.ris.ris import RisInstanceNotFoundError +from redfish.ris.rmc_helper import ( + IloResponseError, + IncompatibleiLOVersionError, + InvalidPathError, +) +from redfish.ris.utils import diffdict, json_traversal, json_traversal_delete_empty + +try: + from rdmc_helper import ( + UI, + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + InvalidPropertyError, + NoDifferencesFoundError, + RdmcError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + UI, + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + InvalidPropertyError, + NoDifferencesFoundError, + RdmcError, + ReturnCodes, + ) + +__eth_file__ = "eth.json" +__subparsers__ = ["save", "load"] + + +class EthernetCommand: + """ Commands for Ethernet Management Controller and RDE supported NIC card \ + configuration on server """ + + def __init__(self): + self.ident = { + "name": "ethernet", + "usage": None, + "description": "Save or load from a JSON formatted file containing " + "properties pertaining to a system's iLO ethernet management controller. " + "Additionally enable/disable individual management controller NICs (including VNIC), " + "IPv4 and IPv6 addressing configuration and domain name servers." + "\n\tBy default the JSON file will be named 'eth.json'.\n\t" + "\n\t***Credentials for an iLO administrator level account must be provided as" + " well as the iLO base URL.***" + "\n\n\tSave ethernet management controller data.\n\texample: ethernet save " + "\n\n\tLoad ethernet management controller data.\n\texample: ethernet load" + "\n\n\tSave ethernet management controller data to a different file, silently\n\t" + "ethernet save -f --silent" + "\n\n\tLoad etherent management controller data from a different file, silently\n\t" + "ethernet load -f --silent" + "\n\n\tEnable network interfaces by listing each interface to be enabled. **Note**: " + "Non-existent interfaces will be omitted from configuration.\n\t " + "ethernet --enable_nic 1,2,3" + "\n\n\tDisable network interfaces by listing each interface to be disabled. **Note**: " + "Non-existent interfaces will be omitted from configuration.\n\t " + "ethernet --disable_nic 1,2,3" + "\n\n\tEnable virtual network interface of management network.\n\t" + "ethernet --enable_vnic" + "\n\n\tDisable virtual network interface of management network.\n\t " + "ethernet --disable_vnic" + "\n\n\tEnable Enhanced Download Performance.\n\t" + "ethernet --enable_enhanced_downloads" + "\n\n\tDisable Enhanced Download Performance.\n\t " + "ethernet --disable_enhanced_downloads" + "\n\n\tConfigure Domain Name Servers (DNS) in a list: \n\t" + "ethernet --nameservers 8.8.8.8,1.1.1.1,2.2.2.2 OR ethernet --nameservers " + "dns_resolver1.aws.com,dns_resolver2.aws.com" + "\n\n\tConfigure Static IPv4 Settings. Provide a list of network settings\n\t" + "ethernet --network_ipv4 ,," + "\n\n\tConfigure Proxy Settings. Provide a proxy server and port\n\t" + "ethernet --proxy http://proxy.company.net:8080" + "\n\n\tClear Proxy Settings. \n\t" + "ethernet --proxy None" + "\n\n\tConfigure Static IPv6 Settings. Provide a list of network settings\n\t" + "ethernet --network_ipv6 ,,", + "summary": "Command for configuring Ethernet Management Controller Interfaces and " "associated properties", + "aliases": [], + "auxcommands": ["IloResetCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + self.save = None + self.load = None + self.eth_file = None # set in validation + self.eth_args = None + self.saved_inputline = None # set in validation + + def run(self, line, help_disp=False): + """Main Ethernet Management Controller Interfaces Run + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + ident_subparser = False + for cmnd in __subparsers__: + if cmnd in line: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + ident_subparser = True + break + if not ident_subparser: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line, default=True) + except: + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.ethernetvalidation(options) + + if "default" in options.command.lower(): + # flags are used to showing data with respect to enhance download + flag = True + return_flag = True + if options.enable_enhanced_downloads or options.disable_enhanced_downloads: + ilo_ver = self.rdmc.app.getiloversion() + self.rdmc.ui.printer("iLO Version is " + str(ilo_ver) + "\n") + if ilo_ver < 5.263: + raise IncompatibleiLOVersionError("Enhance download required minimum " "iLO Version iLO5.263") + # net_path = self.rdmc.app.getidbytype('NetworkProtocol.') + net_path = self.rdmc.app.typepath.defs.managerpath + "NetworkProtocol" + results = self.rdmc.app.get_handler(net_path, silent=True, service=True).dict + body = dict() + body["Oem"] = {} + body["Oem"]["Hpe"] = {} + if options.enable_enhanced_downloads: + if results["Oem"]["Hpe"]["EnhancedDownloadPerformanceEnabled"]: + self.rdmc.ui.printer( + "Enhanced Download Performance " "already enabled!! \n", + verbose_override=True, + ) + return_flag = False + else: + self.rdmc.ui.printer("Enabling enhanced " "downloads...\n", verbose_override=True) + body["Oem"]["Hpe"]["EnhancedDownloadPerformanceEnabled"] = True + flag = False + else: + if not results["Oem"]["Hpe"]["EnhancedDownloadPerformanceEnabled"]: + self.rdmc.ui.printer( + "Enhanced Download Performance " "already disabled!!\n\n", + verbose_override=True, + ) + return_flag = False + else: + self.rdmc.ui.printer("Disabling enhanced " "downloads...\n", verbose_override=True) + body["Oem"]["Hpe"]["EnhancedDownloadPerformanceEnabled"] = False + flag = False + if options.enable_vnic or options.disable_vnic: + self.rdmc.app.patch_handler(net_path, body, service=False, silent=True) + elif return_flag: + self.rdmc.app.patch_handler(net_path, body, service=False, silent=False) + if options.enable_vnic or options.disable_vnic: + results = self.rdmc.app.get_handler( + self.rdmc.app.typepath.defs.managerpath, service=True, silent=True + ).dict + body = dict() + body["Oem"] = {} + body["Oem"]["Hpe"] = {} + if options.enable_vnic: + if results["Oem"]["Hpe"]["VirtualNICEnabled"]: + self.rdmc.ui.printer("Virtual NIC already enabled!!\n", verbose_override=True) + return ReturnCodes.SUCCESS + self.rdmc.ui.printer("Enabling Virtual NIC...\n", verbose_override=True) + body["Oem"]["Hpe"]["VirtualNICEnabled"] = True + else: + if not results["Oem"]["Hpe"]["VirtualNICEnabled"]: + self.rdmc.ui.printer("Virtual NIC already disabled!!\n", verbose_override=True) + return ReturnCodes.SUCCESS + self.rdmc.ui.printer("Disabling Virtual NIC...\n", verbose_override=True) + body["Oem"]["Hpe"]["VirtualNICEnabled"] = False + self.rdmc.app.patch_handler( + self.rdmc.app.typepath.defs.managerpath, + body, + service=False, + silent=False, + ) + self.rdmc.ui.printer("Warning: Resetting iLO...\n") + self.auxcommands["iloreset"].run("") + self.rdmc.ui.printer("You will need to re-login to access this system...\n") + elif flag and return_flag: + data = self.get_data(options) + get_data = True + for inst in data: + if "ethernetinterface" in inst.lower() or "ethernetnetworkinterface" in inst.lower(): + for path in data[inst]: + if ( + "managers/1/ethernetinterfaces/1" in path.lower() + or "managers/1/ethernetnetworkinterfaces/1" in path.lower() + ): # only process managers interfaces + if options.enable_nic or options.disable_nic: + get_data = False + self.enable_disable_nics(data[inst][path], options) + + if ( + options.network_ipv4 or options.network_ipv6 or options.nameservers or options.proxy + ) and "virtual" not in data[inst][path]["Name"].lower(): + get_data = False + self.configure_static_settings(data[inst][path], options) + if options.proxy: + return ReturnCodes.SUCCESS + if "networkprotocol" in inst.lower(): + for path in data[inst]: + if "managers/1/networkprotocol" in path.lower(): + if options.enable_enhanced_downloads or options.disable_enhanced_downloads: + get_data = False + if get_data: + self.output_data(data, options, get_data) + else: + self.load_main_function(options, data) + + if "save" in options.command.lower(): + self.save = True + self.load = False + if "save" in options.command.lower() and not options.ethfilename: + self.rdmc.ui.printer("Saving configurations to default file '%s'.\n" % self.eth_file) + self.output_data(self.get_data(options), options, False) + + elif "load" in options.command.lower(): + self.save = False + self.load = True + if options.force_network_config: + self.load_main_function(options) + else: + self.rdmc.ui.printer("Skipping network configurations as " "--force_network_config is not included.\n") + + return ReturnCodes.SUCCESS + + def get_data(self, options): + """Obtain data for Ethernet Management Interfaces, Ethernet System Interfaces, \ + Manager Network Services and iLO Date Time Types and subsequently save to a dictionary \ + :param options: command line options + :type options: attribute + """ + + network_data_collection = eth_iface = manager_network_services = ilo_date_time = OrderedDict() + + if self.rdmc.app.redfishinst.is_redfish: + try: + iface_results = self.rdmc.app.select(selector="ethernetinterface.") + except RisInstanceNotFoundError: + self.rdmc.ui.printer("Type 'EthernetInterface.' not available.\n") + else: + try: + iface_results = self.rdmc.app.select(selector="ethernetnetworkinterface.") + except RisInstanceNotFoundError: + self.rdmc.ui.printer("Type 'EthernetNetworkInterface.' not available.\n") + + for inst in iface_results: + try: + eth_iface[inst.type].update({inst.path: inst.dict}) + except KeyError: + eth_iface[inst.type] = {inst.path: inst.dict} + continue + except AttributeError: + self.rdmc.ui.printer("Missing instance data for type '%s' : '%s'" % (inst.type, inst.path)) + if self.rdmc.app.typepath.defs.isgen9: + selector_content = self.rdmc.app.select(selector="ManagerNetworkService.0.11.1.networkprotocol") + else: + selector_content = self.rdmc.app.select(selector="networkprotocol.") + for inst in selector_content: + try: + manager_network_services[inst.type].update({inst.path: inst.dict}) + except KeyError: + manager_network_services[inst.type] = {inst.path: inst.dict} + continue + except AttributeError: + self.rdmc.ui.printer("Missing instance data for type '%s' : '%s'" % (inst.type, inst.path)) + + for inst in self.rdmc.app.select(selector="datetime."): + try: + ilo_date_time[inst.type].update({inst.path: inst.dict}) + except KeyError: + ilo_date_time[inst.type] = {inst.path: inst.dict} + continue + except AttributeError: + self.rdmc.ui.printer("Missing instance data for type '%s' : '%s'" % (inst.type, inst.path)) + + network_data_collection.update(eth_iface) + network_data_collection.update(manager_network_services) + network_data_collection.update(ilo_date_time) + + return network_data_collection + + def output_data(self, data, options, get_only=False): + """ Output data in requested json file or on console + :param data: dictionary containing ethernet configuration data: + :type data: dictionary + :param options: command line options + :type options: attribute + :param get_only: parameter to only output to console (do not save data to file). \ + Essentially a targeted \'get\' command. + :type: boolean + """ + + outdata = list() + + outdata.append(self.rdmc.app.create_save_header()) + + for _type in data: + for path in data.get(_type): + temp = dict() + try: + temp[_type.split("#")[-1]].update({path: self.rdmc.app.removereadonlyprops(data[_type][path])}) + outdata.append(temp) + except KeyError: + temp[_type.split("#")[-1]] = {path: self.rdmc.app.removereadonlyprops(data[_type][path])} + outdata.append(temp) + except Exception: + pass + + if self.eth_file and not get_only: + if options.encryption: + with open(self.eth_file, "wb") as outfile: + outfile.write( + Encryption().encrypt_file( + json.dumps(outdata, indent=2, cls=redfish.ris.JSONEncoder), + options.encryption, + ) + ) + else: + with open(self.eth_file, "w") as outfile: + outfile.write(json.dumps(outdata, indent=2, cls=redfish.ris.JSONEncoder)) + else: + if options.json: + self.rdmc.ui.print_out_json_ordered(outdata) + else: + UI().print_out_human_readable(outdata) + + def enable_disable_nics(self, data, options): + if options.disable_nic: + for ident in re.split("[, ]", options.disable_nic): + try: + if int(data.get("Id")) == int(ident): + data.update({"InterfaceEnabled": False}) + break + except ValueError: + if data.get("Name") == ident: + data.update({"InterfaceEnabled": False}) + break + + if options.enable_nic: + for ident in re.split("[, ]", options.enable_nic): + try: + if int(data.get("Id")) == int(ident): + data.update({"InterfaceEnabled": True}) + break + except ValueError: + if data.get("Name") == ident: + data.update({"InterfaceEnabled": True}) + break + + def configure_static_settings(self, data, options): + if options.network_ipv4: + usr_data = re.split("[, ]", options.network_ipv4) + if len(usr_data) > 2: + data["IPv4Addresses"][0] = { + "Address": usr_data[0], + "Gateway": usr_data[1], + "SubnetMask": usr_data[2], + } + data["DHCPv4"].update({"DHCPEnabled": False}) + data["Oem"][self.rdmc.app.typepath.defs.oemhp]["DHCPv4"].update({"Enabled": False}) + else: + raise InvalidCommandLineErrorOPTS( + "An invalid number of arguments provided to " + " quick networking configuration. Check '--network_ipv4' entry." + ) + else: + del data["IPv4Addresses"] + + if options.network_ipv6: + usr_data = re.split("[, ]", options.network_ipv6) + if len(usr_data) > 2: + next(iter(data["IPv6Addresses"])).update({"Address": usr_data[0], "PrefixLength": usr_data[2]}) + data["IPv6DefaultGateway"] = options.network_ipv6[1] + data["DHCPv6"].update({"DHCPEnabled": False}) + data["Oem"][self.rdmc.app.typepath.defs.oemhp]["DHCPv6"].update({"Enabled": False}) + else: + raise InvalidCommandLineErrorOPTS( + "An invalid number of arguments provided to " + " quick networking configuration. Check '--network_ipv6' entry." + ) + else: + del data["IPv6Addresses"] + + if options.nameservers: + usr_data = re.split("[, ]", options.nameservers) + if len(usr_data) <= 3: + ipv6_list = list() + ipv4_list = list() + static_list = list() + for elem in usr_data: + oem_ipv4 = data["Oem"][self.rdmc.app.typepath.defs.oemhp]["IPv4"] + oem_ipv6 = data["Oem"][self.rdmc.app.typepath.defs.oemhp]["IPv6"] + if "::" in elem: + ipv6_list.append(elem) + elif "." in elem: + ipv4_list.append(elem) + static_list.append(elem) + oem_ipv6["DNSServers"] = ipv6_list + oem_ipv4["DNSServers"] = ipv4_list + data["StaticNameServers"] = static_list + else: + raise InvalidCommandLineErrorOPTS("Name Servers argument has to be less than or equal to 2") + else: + del data["StaticNameServers"] + del data["Oem"][self.rdmc.app.typepath.defs.oemhp]["IPv4"]["DNSServers"] + del data["Oem"][self.rdmc.app.typepath.defs.oemhp]["IPv6"]["DNSServers"] + + if options.proxy and options.proxy != "None": + body = dict() + body["Oem"] = {} + body["Oem"]["Hpe"] = {} + body["Oem"]["Hpe"]["WebProxyConfiguration"] = {} + proxy_body = body["Oem"]["Hpe"]["WebProxyConfiguration"] + proxy_body["ProxyServer"] = None + proxy_body["ProxyUserName"] = None + proxy_body["ProxyPassword"] = None + if "https" in options.proxy: + proxy_body["ProxyPort"] = 443 + else: + proxy_body["ProxyPort"] = 80 + if "@" in options.proxy: + proxy = options.proxy.split("@") + proxy_usr_pass = proxy[0] + proxy_srv_port = proxy[1] + if "//" in proxy_usr_pass: + proxy_usr_pass = proxy_usr_pass.split("//")[1] + if ":" in proxy_srv_port: + proxy = proxy_srv_port.split(":") + proxy_body["ProxyServer"] = proxy[0] + proxy_body["ProxyPort"] = int(proxy[1]) + else: + proxy_body["ProxyServer"] = proxy_srv_port + if ":" in proxy_usr_pass: + proxy = proxy_usr_pass.split(":") + proxy_body["ProxyPassword"] = proxy[1] + proxy_body["ProxyUserName"] = proxy[0] + else: + proxy_body["ProxyUserName"] = proxy_usr_pass + else: + proxy_srv_port = options.proxy + if "//" in proxy_srv_port: + proxy_srv_port = proxy_srv_port.split("//")[1] + if ":" in proxy_srv_port: + proxy = proxy_srv_port.split(":") + proxy_body["ProxyServer"] = proxy[0] + proxy_body["ProxyPort"] = int(proxy[1]) + else: + proxy_body["ProxyServer"] = proxy_srv_port + path = self.rdmc.app.getidbytype("NetworkProtocol.") + + if path and body: + self.rdmc.ui.printer("Enabling Proxy configuration...\n", verbose_override=True) + self.rdmc.app.patch_handler(path[0], body, service=False, silent=False) + elif options.proxy and options.proxy == "None": + body = dict() + body["Oem"] = {} + body["Oem"]["Hpe"] = {} + body["Oem"]["Hpe"]["WebProxyConfiguration"] = {} + proxy_body = body["Oem"]["Hpe"]["WebProxyConfiguration"] + proxy_body["ProxyServer"] = "" + proxy_body["ProxyPort"] = None + proxy_body["ProxyUserName"] = "" + proxy_body["ProxyPassword"] = None + path = self.rdmc.app.getidbytype("NetworkProtocol.") + + if path and body: + self.rdmc.ui.printer("Clearing Proxy configuration...\n", verbose_override=True) + self.rdmc.app.patch_handler(path[0], body, service=False, silent=False) + + json_traversal_delete_empty(data, None, None) + + def load_main_function(self, options, data=None): + """ + Load main function. Handles SSO and SSL/TLS Certificates, kickoff load + helper, load of patch file, get server status and issues system reboot + and iLO reset after completion of all post and patch commands. + :param options: command line options + :type options: attribute + :param data: data + :type data: optional + """ + + if self.rdmc.app.redfishinst.is_redfish: + _ = "ethernetinterface." + else: + _ = "ethernetnetworkinterface." + + if not data: + data = {} + try: + if options.encryption: + with open(self.eth_file, "rb") as file_handle: + data = json.loads(Encryption().decrypt_file(file_handle.read(), options.encryption)) + else: + with open(self.eth_file, "rb") as file_handle: + data = json.loads(file_handle.read()) + except: + raise InvalidFileInputError( + "Invalid file formatting found. Verify the file has a " "valid JSON format." + ) + if "load" in options.command.lower(): + for d in data: + for ilotype, subsect in d.items(): + _type = ilotype.split(".")[0] + for _path in subsect: + if not subsect[_path]: + continue + elif "ethernetinterface" in _type.lower() or "ethernetnetworkinterface" in _type.lower(): + if "managers" in _path.lower(): + self.load_ethernet_aux(_type, _path, d[ilotype][_path]) + elif "systems" in _path.lower(): + self.rdmc.ui.warn("Systems Ethernet Interfaces '%s' " "cannot be modified." % _path) + continue + elif "datetime" in _type.lower(): + if "StaticNTPServers" in list(subsect.get(_path).keys()): + # must set NTP Servers to static in OEM then reset iLO for StaticNTPServers + # property to appear in iLODateTime + if self.rdmc.app.redfishinst.is_redfish: + eth_config_type = "ethernetinterface" + else: + eth_config_type = "ethernetnetworkinterface" + for key in list(data.keys()): + if key.split(".")[0].lower() == eth_config_type: + eth_config_type = key + for _path in data[eth_config_type]: + if "managers" in _path.lower(): + try: + oemhp = self.rdmc.app.typepath.defs.oemhp + data[eth_config_type][_path]["DHCPv4"]["UseNTPServers"] = True + data[eth_config_type][_path]["DHCPv6"]["UseNTPServers"] = True + data[eth_config_type][_path]["Oem"][oemhp]["DHCPv4"][ + "UseNTPServers" + ] = True + data[eth_config_type][_path]["Oem"][oemhp]["DHCPv6"][ + "UseNTPServers" + ] = True + self.load_ethernet_aux( + eth_config_type, + _path, + data[eth_config_type][_path], + ) + except KeyError: + self.rdmc.ui.printer( + "Unable to configure " "'UseNTPServers' for '%s'.\n" % _path + ) + self.rdmc.ui.printer( + "iLO must be reset in order for " + "changes to static network time protocol servers to " + "take effect.\n" + ) + elif "default" in options.command.lower(): + for ilotype, subsect in data.items(): + _type = ilotype.split(".")[0] + for _path in subsect: + if not subsect[_path]: + continue + elif "ethernetinterface" in _type.lower() or "ethernetnetworkinterface" in _type.lower(): + if "managers" in _path.lower(): + self.load_ethernet_aux(_type, _path, data[ilotype][_path]) + elif "systems" in _path.lower(): + self.rdmc.ui.warn("Systems Ethernet Interfaces '%s' " "cannot be modified." % _path) + continue + elif "datetime" in _type.lower(): + if "StaticNTPServers" in list(subsect.get(_path).keys()): + # must set NTP Servers to static in OEM then reset iLO for StaticNTPServers + # property to appear in iLODateTime + if self.rdmc.app.redfishinst.is_redfish: + eth_config_type = "ethernetinterface" + else: + eth_config_type = "ethernetnetworkinterface" + for key in list(data.keys()): + if key.split(".")[0].lower() == eth_config_type: + eth_config_type = key + for _path in data[eth_config_type]: + if "managers" in _path.lower(): + try: + oemhp = self.rdmc.app.typepath.defs.oemhp + data[eth_config_type][_path]["DHCPv4"]["UseNTPServers"] = True + data[eth_config_type][_path]["DHCPv6"]["UseNTPServers"] = True + data[eth_config_type][_path]["Oem"][oemhp]["DHCPv4"][ + "UseNTPServers" + ] = True + data[eth_config_type][_path]["Oem"][oemhp]["DHCPv6"][ + "UseNTPServers" + ] = True + self.load_ethernet_aux( + eth_config_type, + _path, + data[eth_config_type][_path], + ) + except KeyError: + self.rdmc.ui.printer( + "Unable to configure " "'UseNTPServers' for '%s'.\n" % _path + ) + self.rdmc.ui.printer( + "iLO must be reset in order for " + "changes to static network time protocol servers to " + "take effect.\n" + ) + + def load_ethernet_aux(self, _type, _path, ethernet_data): + """helper function for parsing and bucketting ethernet properties. + :param _type: Redfish type used for querying the current server data + :type _type: string + :param _path: URI path to be patched. + :type _path: string + :param ethernet_data: JSON containing the ethernet instance (and valid, associated + properties) to be patched. + :type ethernet_data: JSON + + """ + + support_ipv6 = True + dhcpv4curr = dhcpv4conf = oem_dhcpv4conf = dict() + _ = dhcpv6conf = oem_dhcpv6conf = dict() + errors = [] + + ident_eth = False + if "EthernetInterface" in _type: + for curr_sel in self.rdmc.app.select( + _type.split(".")[0] + ".", + ( + self.rdmc.app.typepath.defs.hrefstring, + self.rdmc.app.typepath.defs.managerpath + "*", + ), + path_refresh=True, + ): + if curr_sel.path == _path: + ident_eth = True + break + # 'links/self/href' required when using iLO 4 (rest). + elif "EthernetNetworkInterface" in _type: + for curr_sel in self.rdmc.app.select( + _type.split(".")[0] + ".", + ( + "links/self/" + self.rdmc.app.typepath.defs.hrefstring, + self.rdmc.app.typepath.defs.managerpath + "*", + ), + path_refresh=True, + ): + if curr_sel.path == _path: + ident_eth = True + break + else: + raise Exception("Invalid type in management NIC load operation: '%s'" % _type) + + if not ident_eth: + raise InvalidPathError("Path: '%s' is invalid/not identified on this server.\n" % _path) + + ident_name = curr_sel.dict.get("Name") + ident_id = curr_sel.dict.get("Id") + # ENABLING ETHERNET INTERFACE SECTION + try: + # Enable the Interface if called for and not already enabled + if ethernet_data.get("InterfaceEnabled") and not curr_sel.dict.get("InterfaceEnabled"): + self.rdmc.app.patch_handler(_path, {"InterfaceEnabled": True}, silent=True) + self.rdmc.ui.printer("NIC Interface Enabled.\n") + # Disable the Interface if called for and not disabled already + # No need to do anything else, just return + elif not ethernet_data.get("InterfaceEnabled") and not curr_sel.dict.get("InterfaceEnabled"): + self.rdmc.app.patch_handler(_path, {"InterfaceEnabled": False}, silent=True) + self.rdmc.ui.warn("NIC Interface Disabled. All additional configurations " "omitted.") + return + except (KeyError, NameError, TypeError, AttributeError): + # check OEM for NICEnabled instead + if ( + not curr_sel.dict["Oem"][self.rdmc.app.typepath.defs.oemhp]["NICEnabled"] + and ethernet_data["Oem"][self.rdmc.app.typepath.defs.oemhp]["NICEnabled"] + ): + self.rdmc.app.patch_handler( + _path, + {"Oem": {self.rdmc.app.typepath.defs.oemhp: {"NICEnabled": True}}}, + silent=True, + ) + self.rdmc.ui.printer("NIC Interface Enabled.\n") + elif ( + not curr_sel.dict["Oem"][self.rdmc.app.typepath.defs.oemhp]["NICEnabled"] + and not ethernet_data["Oem"][self.rdmc.app.typepath.defs.oemhp]["NICEnabled"] + ): + self.rdmc.app.patch_handler( + _path, + {"Oem": {self.rdmc.app.typepath.defs.oemhp: {"NICEnabled": False}}}, + silent=True, + ) + self.rdmc.ui.printer("NIC Interface Disabled.\n") + return + # except IloResponseError should just be raised and captured by decorator. No point in + # performing any other operations if the interface can not be set. + + # END ENABLING ETHERNET INTEFACE SECTION + # --------------------------------------- + # DETERMINE DHCPv4 and DHCPv6 States and associated flags + + if "NICSupportsIPv6" in list(curr_sel.dict["Oem"][self.rdmc.app.typepath.defs.oemhp].keys()): + support_ipv6 = curr_sel.dict["Oem"][self.rdmc.app.typepath.defs.oemhp]["NICSupportsIPv6"] + + # obtain DHCPv4 Config and OEM + try: + if "DHCPv4" in list(curr_sel.dict.keys()) and "DHCPv4" in list(ethernet_data.keys()): + dhcpv4curr = copy.deepcopy(curr_sel.dict["DHCPv4"]) + dhcpv4conf = copy.deepcopy(ethernet_data["DHCPv4"]) + except (KeyError, NameError, TypeError, AttributeError): + errors.append("Unable to find Redfish DHCPv4 Settings.\n") + finally: + try: + oem_dhcpv4conf = copy.deepcopy(ethernet_data["Oem"][self.rdmc.app.typepath.defs.oemhp]["DHCPv4"]) + + except (KeyError, NameError): + errors.append("Unable to find OEM Keys for DHCPv4 or IPv4") + + try: + if support_ipv6: + if "DHCPv6" in list(curr_sel.dict.keys()) and "DHCPv6" in list(ethernet_data.keys()): + dhcpv6conf = copy.deepcopy(ethernet_data["DHCPv6"]) + else: + self.rdmc.ui.warn("NIC Does not support IPv6.") + except (KeyError, NameError, TypeError, AttributeError): + errors.append("Unable to find Redfish DHCPv6 Settings.\n") + finally: + try: + oem_dhcpv6conf = copy.deepcopy(ethernet_data["Oem"][self.rdmc.app.typepath.defs.oemhp]["DHCPv6"]) + except (KeyError, NameError): + errors.append("Unable to find OEM Keys for DHCPv6 or IPv6") + + try: + # if DHCP Enable request but not currently enabled + if dhcpv4conf.get("DHCPEnabled") and not curr_sel.dict["DHCPv4"]["DHCPEnabled"]: + self.rdmc.app.patch_handler(_path, {"DHCPv4": {"DHCPEnabled": True}}, silent=True) + self.rdmc.ui.printer("DHCP Enabled.\n") + # if DHCP Disable request but currently enabled + elif not dhcpv4conf["DHCPEnabled"] and curr_sel.dict["DHCPv4"]["DHCPEnabled"]: + self.rdmc.app.patch_handler(_path, {"DHCPv4": {"DHCPEnabled": False}}, silent=True) + dhcpv4conf["UseDNSServers"] = False + dhcpv4conf["UseNTPServers"] = False + dhcpv4conf["UseGateway"] = False + dhcpv4conf["UseDomainName"] = False + self.rdmc.ui.printer("DHCP Disabled.\n") + except (KeyError, NameError, TypeError, AttributeError): + # try with OEM + try: + if ( + oem_dhcpv4conf.get("Enabled") + and not curr_sel.dict["Oem"][self.rdmc.app.typepath.defs.oemhp]["DHCPv4"]["Enabled"] + ): + self.rdmc.app.patch_handler( + _path, + {"Oem": {self.rdmc.app.typepath.defs.oemhp: {"DHCPv4": {"DHCPEnabled": True}}}}, + silent=True, + ) + self.rdmc.ui.printer("DHCP Enabled.\n") + if "IPv4Addresses" in ethernet_data: + del ethernet_data["IPv4Addresses"] + elif ( + not oem_dhcpv4conf.get("Enabled") + and curr_sel.dict["Oem"][self.rdmc.app.typepath.defs.oemhp]["DHCPv4"]["Enabled"] + ): + oem_dhcpv4conf["UseDNSServers"] = False + oem_dhcpv4conf["UseNTPServers"] = False + oem_dhcpv4conf["UseGateway"] = False + oem_dhcpv4conf["UseDomainName"] = False + self.rdmc.ui.printer("DHCP Disabled.\n") + except (KeyError, NameError) as exp: + errors.append("Failure in parsing or removing data in OEM DHCPv4: %s.\n" % exp) + + try: + # if the ClientIDType is custom and we are missing the ClientID then this property can + # not be set. + if "ClientIdType" in list(dhcpv4conf.keys()): + if dhcpv4conf["ClientIdType"] == "Custom" and "ClientID" not in list(dhcpv4conf.keys()): + del ethernet_data["DHCPv4"]["ClientIdType"] + elif "ClientIdType" in list(oem_dhcpv4conf.keys()): + if oem_dhcpv4conf["ClientIdType"] == "Custom" and "ClientID" not in list(oem_dhcpv4conf.keys()): + del ethernet_data["Oem"][self.rdmc.app.typepath.defs.oemhp]["DHCPv4"]["ClientIdType"] + except (KeyError, NameError, TypeError, AttributeError): + try: + if "ClientIdType" in list(oem_dhcpv4conf.keys()): + if oem_dhcpv4conf["ClientIdType"] == "Custom" and "ClientID" not in list(oem_dhcpv4conf.keys()): + del ethernet_data["Oem"][self.rdmc.app.typepath.defs.oemhp]["DHCPv4"]["ClientIdType"] + except (KeyError, NameError) as exp: + errors.append("Unable to remove property %s.\n" % exp) + + # special considerations go here for things that need to stay despite diffdict + # EX: IPv4 addresses (aka bug). Changing only one property within the + # IPv4StaticAddresses or IPv4Addresses causes an issue during load. Must include IP, + # subnet mask and gateway (they can not be patched individually). + # spec_dict = {'Oem': {self.rdmc.app.typepath.defs.oemhp: {}}} + spec_dict = dict() + if "IPv4Addresses" in ethernet_data: + spec_dict["IPv4Addresses"] = copy.deepcopy(ethernet_data["IPv4Addresses"]) + try: + if "IPv4Addresses" in ethernet_data["Oem"][self.rdmc.app.typepath.defs.oemhp]: + spec_dict["Oem"][self.rdmc.app.typepath.defs.oemhp]["IPv4Addresses"] = copy.deepcopy( + ethernet_data["Oem"][self.rdmc.app.typepath.defs.oemhp]["IPv4StaticAddresses"] + ) + except (KeyError, NameError, TypeError, AttributeError): + pass + + # diff and overwrite the original payload + ethernet_data = diffdict(ethernet_data, curr_sel.dict) + ethernet_data.update(spec_dict) + + # verify dependencies on those flags which are to be applied are eliminated + try: + # delete Domain name and FQDN if UseDomainName for DHCPv4 or DHCPv6 + # is present. can wait to apply at the end + if dhcpv4conf.get("UseDomainName"): # or dhcpv6conf['UseDomainName']: + if "DomainName" in ethernet_data["Oem"][self.rdmc.app.typepath.defs.oemhp]: + del ethernet_data["Oem"][self.rdmc.app.typepath.defs.oemhp]["DomainName"] + if "FQDN" in ethernet_data: + del ethernet_data["FQDN"] + except (KeyError, NameError, TypeError, AttributeError): + # try again with OEM + try: + if oem_dhcpv4conf.get("UseDomainName") or oem_dhcpv6conf.get("UseDomainName"): + if ( + "Oem" in ethernet_data + and "DomainName" in ethernet_data["Oem"][self.rdmc.app.typepath.defs.oemhp] + ): + del ethernet_data["Oem"][self.rdmc.app.typepath.defs.oemhp]["DomainName"] + if "FQDN" in ethernet_data: + del ethernet_data["FQDN"] + except (KeyError, NameError) as exp: + errors.append("Unable to remove property %s.\n" % exp) + + try: + # delete DHCP4 DNSServers from IPV4 dict if UseDNSServers Enabled + # can wait to apply at the end + if dhcpv4conf.get("UseDNSServers"): # and ethernet_data.get('NameServers'): + json_traversal_delete_empty(data=ethernet_data, remove_list=["NameServers"]) + except (KeyError, NameError, TypeError, AttributeError): + pass + finally: + try: + if oem_dhcpv4conf.get("UseDNSServers"): + # del_sections('DNSServers', ethernet_data) + json_traversal_delete_empty(data=ethernet_data, remove_list=["DNSServers"]) + except (KeyError, NameError) as exp: + errors.append("Unable to remove property %s.\n" % exp) + try: + if dhcpv4conf.get("UseWINSServers"): + json_traversal_delete_empty(data=ethernet_data, remove_list=["WINServers"]) + except (KeyError, NameError, TypeError, AttributeError): + pass + finally: + try: + if oem_dhcpv4conf.get("UseWINSServers"): + json_traversal_delete_empty( + data=ethernet_data, + remove_list=["WINServers", "WINSRegistration"], + ) + except (KeyError, NameError) as exp: + errors.append("Unable to remove property %s.\n" % exp) + + try: + if dhcpv4conf.get("UseStaticRoutes"): + json_traversal_delete_empty(data=ethernet_data, remove_list=["StaticRoutes"]) + except (KeyError, NameError, TypeError, AttributeError): + pass + finally: + try: + if oem_dhcpv4conf.get("UseStaticRoutes"): + json_traversal_delete_empty(data=ethernet_data, remove_list=["StaticRoutes"]) + except (KeyError, NameError) as exp: + errors.append("Unable to remove property %s.\n" % exp) + + try: + # if using DHCPv4, remove static addresses + if dhcpv4conf.get("DHCPEnabled"): + json_traversal_delete_empty( + data=ethernet_data, + remove_list=["IPv4Addresses", "IPv4StaticAddresses"], + ) + except (KeyError, NameError, TypeError, AttributeError): + pass + finally: + try: + if oem_dhcpv4conf.get("Enabled"): + json_traversal_delete_empty( + data=ethernet_data, + remove_list=["IPv4Addresses", "IPv4StaticAddresses"], + ) + except (KeyError, NameError) as exp: + errors.append("Unable to remove property %s.\n" % exp) + + try: + # if not using DHCPv6, remove static addresses from payload + if dhcpv6conf.get("OperatingMode") == "Disabled": + json_traversal_delete_empty( + data=ethernet_data, + remove_list=["IPv6Addresses", "IPv6StaticAddresses"], + ) + except (KeyError, NameError, TypeError, AttributeError): + pass + finally: + try: + if not oem_dhcpv6conf.get("StatefulModeEnabled"): + json_traversal_delete_empty( + data=ethernet_data, + remove_list=["IPv6Addresses", "IPv6StaticAddresses"], + ) + except (KeyError, NameError) as exp: + errors.append("Unable to remove property %s.\n" % exp) + + flags = ethernet_data + if "StaticNameServers" in flags: + if dhcpv4curr["UseDNSServers"]: + flags["DHCPv4"] = {"UseDNSServers": False} + + # verify dependencies on those flags which are to be applied are eliminated + if ( + "IPv4Addresses" in flags + and "Address" in flags["IPv4Addresses"][0] + and "Address" in curr_sel.dict["IPv4Addresses"][0] + and flags["IPv4Addresses"][0]["Address"] == curr_sel.dict["IPv4Addresses"][0]["Address"] + and "Gateway" in flags["IPv4Addresses"][0] + and "Gateway" in curr_sel.dict["IPv4Addresses"][0] + and flags["IPv4Addresses"][0]["Gateway"] == curr_sel.dict["IPv4Addresses"][0]["Gateway"] + and "SubnetMask" in flags["IPv4Addresses"][0] + and "SubnetMask" in curr_sel.dict["IPv4Addresses"][0] + and flags["IPv4Addresses"][0]["SubnetMask"] == curr_sel.dict["IPv4Addresses"][0]["SubnetMask"] + ): + del flags["IPv4Addresses"] + try: + if not flags: + self.rdmc.ui.warn("No change in configurations in " + _path) + else: + self.rdmc.app.patch_handler(_path, flags, silent=True) + except IloResponseError as excp: + errors.append("iLO Responded with the following errors setting DHCP: %s.\n" % excp) + + try: + if "AutoNeg" not in list(ethernet_data.keys()): + json_traversal_delete_empty(data=ethernet_data, remove_list=["FullDuplex", "SpeedMbps"]) + + # if Full Duplex exists, check if FullDuplexing enabled. If so, + # remove Speed setting. + elif "FullDuplex" in list(ethernet_data.keys()): + json_traversal_delete_empty(data=ethernet_data, remove_list=["FullDuplex", "SpeedMbps"]) + except (KeyError, NameError) as exp: + errors.append("Unable to remove property %s.\n" % exp) + + try: + if "FrameSize" in list(ethernet_data.keys()): + json_traversal_delete_empty(data=ethernet_data, remove_list=["FrameSize"]) + except (KeyError, NameError) as exp: + errors.append("Unable to remove property %s.\n" % exp) + + if ethernet_data: + self.patch_eth(_path, ethernet_data, errors) + + if errors and "Virtual" not in ident_name: + raise RdmcError( + "Ethernet configuration errors were found collectively on adapter: " + "'%s, %s'\ntype: %s\nerrors: %s" % (ident_name, ident_id, _type, errors) + ) + + def patch_eth(self, _path, eth_data, errors=[]): + """helper function for patching ethernet properties. Retry functionality with the ability + to remove the offending property. + :param _path: URI path to be patched. + :type _path: string + :param eth_data: JSON containing the ethernet instance (and valid, associated + properties) to be patched. + :type eth_data: JSON + :param errors: list of errors catalogued between attempts + :type errors: list + + """ + + try: + if eth_data: + # eth_data = json.dumps(eth_data) + # import ast + # eth_data = ast.literal_eval(eth_data) + tmp = self.rdmc.app.patch_handler(_path, eth_data, silent=False, service=False) + if tmp.status == 400: + raise InvalidPropertyError(tmp.dict["error"][next(iter(tmp.dict["error"]))]) + else: + raise NoDifferencesFoundError( + "No differences between existing iLO ethernet " + "configuration and new ethernet configuration.\nPath: %s\n" % _path + ) + + except InvalidPropertyError as excp: + errors.append("iLO Responded with the following error: %s.\n" % excp) + + def drill_to_data(data, list_o_keys): + if len(list_o_keys) > 1: + k = list_o_keys.pop(0) + else: + del data[k] + if isinstance(data, dict): + drill_to_data(data[k], list_o_keys) + + if hasattr(excp, "message"): + for key in excp.message[0]["MessageArgs"]: + try: + eth_data.pop(key) + except (AttributeError, KeyError, StopIteration): + try: + drill_to_data( + eth_data, + list_o_keys=json_traversal(eth_data, key, ret_key_path=True), + ) + except: + errors.append("Unable to find '%s'" % key) + return + self.patch_eth(_path, eth_data) + + except NoDifferencesFoundError as excp: + errors.append("%s" % excp) + + def ethernetvalidation(self, options): + """ethernet validation function + :param options: command line options + :type options: list. + """ + + self.cmdbase.login_select_validation(self, options) + + if options.ethfilename: + if len(options.ethfilename) < 2: + self.eth_file = options.ethfilename[0] + else: + raise InvalidCommandLineError("Only a single ethernet file may be specified.") + else: + self.eth_file = __eth_file__ + + @staticmethod + def options_argument_group(parser): + """Define option arguments group + :param parser: The parser to add the login option group to + :type parser: ArgumentParser/OptionParser + """ + + parser.add_argument( + "--encryption", + dest="encryption", + help="Optionally include this flag to encrypt/decrypt a file" " using the key provided.", + default=None, + ) + parser.add_argument( + "-f", + "--ethfile", + dest="ethfilename", + help="""Optionally specify a JSON file to store or load ethernet configuration data.""", + action="append", + default=None, + ) + + def definearguments(self, customparser): + """Wrapper function for certificates command main function + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + self.options_argument_group(customparser) + subcommand_parser = customparser.add_subparsers(dest="command") + default_parser = subcommand_parser.add_parser( + "default", + help="Obtain iLO management networking interface details and configure basic " + "properties such as enablement/disablement, domain name servers, ipv4 and ipv6 " + "networking configuration.", + formatter_class=RawDescriptionHelpFormatter, + ) + default_parser.add_argument( + "--enable_nic", + dest="enable_nic", + help="Enable network interfaces. List each interface to be enabled by ID: " + "Ex: ethernet --enable_nic 1,2,3. **Note**: Non-existent interfaces will be omitted from " + "configuration.", + type=str, + default=None, + ) + default_parser.add_argument( + "--disable_nic", + dest="disable_nic", + help="Disable network interfaces. List each interface to be disabled by ID: " + "Ex: ethernet --disable_nic 1,2,3. **Note**: Non-existent interfaces will be omitted from " + "configuration.", + type=str, + default=None, + ) + default_parser.add_argument( + "--enable_vnic", + dest="enable_vnic", + help="""Enable virtual network interfaces of management network. + Ex: ethernet --enable_vnic""", + action="store_true", + default=False, + ) + default_parser.add_argument( + "--disable_vnic", + dest="disable_vnic", + help="""Disable virtual network interfaces of management network. + Ex: ethernet --disable_vnic""", + action="store_true", + default=False, + ) + default_parser.add_argument( + "--disable_enhanced_downloads", + dest="disable_enhanced_downloads", + help="""Disable enhanced download for virtual media and firmware update. + Ex: ethernet --disable_enhanced_downloads""", + action="store_true", + default=False, + ) + default_parser.add_argument( + "--enable_enhanced_downloads", + dest="enable_enhanced_downloads", + help="""Enable enhanced download for virtual media and firmware update. + Ex: ethernet --enable_enhanced_downloads""", + action="store_true", + default=False, + ) + default_parser.add_argument( + "--nameservers", + dest="nameservers", + help="Configure physical and shared management network interface domain name " + "servers (DNS) in a list as follows: " + "Ex: ethernet --nameservers 8.8.8.8,1.1.1.1,2.2.2.2 ethernet --nameservers dns_resolver1.aws.com, " + "dns_resolver2.aws.com", + default=None, + ) + default_parser.add_argument( + "--proxy", + dest="proxy", + type=str, + help="Configure or clear proxy server for the network " + "Ex:\nTo set proxy\nethernet --proxy http://proxy.abc.net:8080 or \n" + "To clear proxy settings\n" + "ethernet --proxy None", + default=None, + ) + default_parser.add_argument( + "--network_ipv4", + dest="network_ipv4", + help="Configure physical and shared management network interface static IPv4 " + "settings. Settings provided in a list as follows: " + ", , . Ex: ethernet --network_ipv4 " + "192.168.1.10, 192.168.1.1, 255.255.0.0", + default=None, + ) + default_parser.add_argument( + "--network_ipv6", + dest="network_ipv6", + help="Configure physical and shared management network interface static IPv6 " + "settings. Settings provided in a list as follows: " + ", , . Ex: ethernet --network_ipv6 " + "0:0:0:0:ffff:c0a8:10e, 0:0:0:0:0:ffff:c0a8:101, 64. **Note**: IPv6 network mask" + "is restricted to '64' bits.", + default=None, + ) + default_parser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the " "displayed output to JSON format.", + default=False, + ) + self.cmdbase.add_login_arguments_group(default_parser) + save_help = "Save a Network Configuration." + save_parser = subcommand_parser.add_parser( + __subparsers__[0], + help=save_help, + description="{0}\n\texample: ethernet save\n\n\tSave iLO ethernet network management interface " + "settings to a non-default file name.\n\tEx: ethernet save -f networking.json\n\n\tSave " + "an encrypted iLO networking configuration file\n\texample: ethernet save --encryption " + "".format(save_help), + formatter_class=RawDescriptionHelpFormatter, + ) + self.cmdbase.add_login_arguments_group(save_parser) + self.options_argument_group(save_parser) + load_help = "Load a Network Configuration." + load_parser = subcommand_parser.add_parser( + __subparsers__[1], + help=load_help, + description="{0}\n\texample: ethernet load\n\n\tLoad iLO ethernet networking management interface " + "settings from a non-default file name.\n\tEx: ethernet load -f " + "networking.json\n\n\tLoad an encrypted iLO networking configuration file\n\texample: " + "ethernet load --encryption ".format(load_help), + formatter_class=RawDescriptionHelpFormatter, + ) + load_parser.add_argument( + "--force_network_config", + dest="force_network_config", + help="Use this flag to force set network configuration." + "Network settings will be skipped if the flag is not included.", + action="store_true", + default=None, + ) + self.cmdbase.add_login_arguments_group(load_parser) + self.options_argument_group(load_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/FactoryDefaultsCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/FactoryDefaultsCommand.py new file mode 100644 index 0000000..ff98397 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/FactoryDefaultsCommand.py @@ -0,0 +1,135 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Factory Defaults Command for rdmc""" + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + + +class FactoryDefaultsCommand: + """Reset server to factory default settings""" + + def __init__(self): + self.ident = { + "name": "factorydefaults", + "usage": None, + "description": "Reset iLO to factory defaults in the current logged in " + "server.\n\texample: factorydefaults", + "summary": "Resets iLO to factory defaults. WARNING: user data will " "be removed use with caution.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main factorydefaults function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if args: + raise InvalidCommandLineError("factorydefaults command takes no arguments.") + + self.factorydefaultsvalidation(options) + + self.rdmc.ui.warn("Resetting iLO to factory default settings.\n" "Current session will be terminated.\n") + + select = "Manager." + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Manager. not found.") + + bodydict = results.resp.dict["Oem"][self.rdmc.app.typepath.defs.oemhp] + + try: + for item in bodydict["Actions"]: + if "ResetToFactoryDefaults" in item: + if self.rdmc.app.typepath.defs.isgen10: + action = item.split("#")[-1] + else: + action = "ResetToFactoryDefaults" + + path = bodydict["Actions"][item]["target"] + body = {"Action": action, "ResetType": "Default"} + break + except: + body = { + "Action": "ResetToFactoryDefaults", + "Target": "/Oem/Hp", + "ResetType": "Default", + } + + self.rdmc.app.post_handler(path, body, service=True) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def factorydefaultsvalidation(self, options): + """factory defaults validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/FirmwareIntegrityCheckCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/FirmwareIntegrityCheckCommand.py new file mode 100644 index 0000000..0148ca5 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/FirmwareIntegrityCheckCommand.py @@ -0,0 +1,170 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Firmware Update Command for rdmc""" + +import time + +try: + from rdmc_helper import ( + IloLicenseError, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + TimeOutError, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IloLicenseError, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + TimeOutError, + ) + + +class FirmwareIntegrityCheckCommand: + """Reboot server that is currently logged in""" + + def __init__(self): + self.ident = { + "name": "fwintegritycheck", + "usage": None, + "description": "Perform a firmware " + "integrity check on the current logged in server.\n\t" + "example: fwintegritycheck\n\n\tPerform a firmware integrity check and " + "return results of the check.\n\texmaple: fwintegritycheck --results", + "summary": "Perform a firmware integrity check on the currently logged in server.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main firmware update worker function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if args: + raise InvalidCommandLineError("fwintegritycheck command takes no arguments") + + self.firmwareintegritycheckvalidation(options) + if self.rdmc.app.typepath.defs.isgen9: + raise IncompatibleiLOVersionError("fwintegritycheck command is " "only available on iLO 5.") + + licenseres = self.rdmc.app.select(selector="HpeiLOLicense.") + try: + licenseres = licenseres[0] + except: + pass + if not licenseres.dict["LicenseFeatures"]["FWScan"]: + raise IloLicenseError("This command is not available with this iLO license.\n") + + select = self.rdmc.app.typepath.defs.hpilofirmwareupdatetype + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + bodydict = results.resp.dict + if "#HpeiLOUpdateServiceExt.StartFirmwareIntegrityCheck" in bodydict["Oem"]["Hpe"]["Actions"]: + path = bodydict["Oem"]["Hpe"]["Actions"]["#HpeiLOUpdateServiceExt.StartFirmwareIntegrityCheck"]["target"] + else: + raise InvalidCommandLineError("Firmware integrity check action not found.") + + self.rdmc.app.post_handler(path, {}) + + if options.results: + results_string = "Awaiting results of firmware integrity check..." + self.rdmc.ui.printer(results_string) + polling = 50 + found = False + while polling > 0: + if not polling % 5: + self.rdmc.ui.printer(".") + get_results = self.rdmc.app.get_handler(bodydict["@odata.id"], service=True, silent=True) + if get_results: + curr_time = time.strptime(bodydict["Oem"]["Hpe"]["CurrentTime"], "%Y-%m-%dT%H:%M:%SZ") + scan_time = time.strptime( + get_results.dict["Oem"]["Hpe"]["FirmwareIntegrity"]["LastScanTime"], + "%Y-%m-%dT%H:%M:%SZ", + ) + + if scan_time > curr_time: + self.rdmc.ui.printer( + "\nScan Result: %s\n" + % get_results.dict["Oem"]["Hpe"]["FirmwareIntegrity"]["LastScanResult"] + ) + found = True + break + + polling -= 1 + time.sleep(1) + if not found: + self.rdmc.ui.error("\nPolling timed out before scan completed.\n") + TimeOutError("") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def firmwareintegritycheckvalidation(self, options): + """Firmware update method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--results", + dest="results", + help="Optionally include this flag to show results of firmware integrity check.", + default=False, + action="store_true", + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/FirmwareUpdateCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/FirmwareUpdateCommand.py new file mode 100644 index 0000000..f363acd --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/FirmwareUpdateCommand.py @@ -0,0 +1,325 @@ +### +# Copyright 2016-2023 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Firmware Update Command for rdmc""" + +import time + +from redfish.ris.resp_handler import ResponseHandler + +try: + from rdmc_helper import ( + FirmwareUpdateError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + FirmwareUpdateError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + + +class FirmwareUpdateCommand: + """Reboot server that is currently logged in""" + + def __init__(self): + self.ident = { + "name": "firmwareupdate", + "usage": None, + "description": "Apply a firmware " + "update to the current logged in server.\n\texample: " + "firmwareupdate /images/image.bin\n\t" + "update based on targets GPU .\n\texample: " + "firmwareupdate --targets ", + "summary": "Perform a firmware update on the currently logged in server.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main firmware update worker function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + # Third Party FW + + file_name = args[0].lower() + if args and (".pup" in file_name or ".fup" in file_name or ".hpb" in file_name or ".HPb" in file_name): + raise InvalidCommandLineErrorOPTS("For flashing 3rd party firmwares, please use flashfwpkg command") + + # Supports only .bin/fwpkg/full/vme Firmware files. + if ( + args + and (".bin" in file_name or ".fwpkg" in file_name or ".full" in file_name or ".vme" in file_name) + or ".lpk" in file_name + ): + if args[0].startswith('"') and args[0].endswith('"'): + args[0] = args[0][1:-1] + else: + raise InvalidCommandLineErrorOPTS("Please input URL pointing to a .bin or .fwpkg or .full or .vme firmware") + + self.firmwareupdatevalidation(options) + + action = None + uri = "FirmwareURI" + + select = self.rdmc.app.typepath.defs.hpilofirmwareupdatetype + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + update_path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + bodydict = results.resp.dict + + try: + if options.targets: + for item in bodydict["Oem"]["Hpe"]["Actions"]: + if "AddFromUri" in item: + action = item.split("#")[-1] + uri = "ImageURI" + if action: + put_path = bodydict["Oem"]["Hpe"]["Actions"][item]["target"] + break + else: + for item in bodydict["Actions"]: + if self.rdmc.app.typepath.defs.isgen10: + if "SimpleUpdate" in item: + action = item.split("#")[-1] + + uri = "ImageURI" + # options.tpmenabled = False + elif "InstallFromURI" in item: + action = "InstallFromURI" + + if action: + put_path = bodydict["Actions"][item]["target"] + break + except: + put_path = update_path + action = "Reset" + + if "AddFromUri" in action: + body = { + "Action": action, + uri: args[0], + "TPMOverrideFlag": options.tpmenabled, + } + elif "SimpleUpdate" in action: + body = {"Action": action, uri: args[0]} + if options.targets: + targets = [] + target_list = options.targets.split(",") + for target in target_list: + target_url = "/redfish/v1/UpdateService/FirmwareInventory/" + str(target) + "/" + targets.append(target_url) + verified = self.verify_targets(options.targets) + if not verified: + self.rdmc.ui.error("Provided target was not available, Please provide valid target id\n") + return ReturnCodes.INVALID_TARGET_ERROR + body["UpdateTarget"] = options.updatetarget + body["UpdateRepository"] = options.updaterepository + body["Targets"] = targets + self.rdmc.ui.printer('payload: "%s"\n' % body) + self.rdmc.app.post_handler(put_path, body, silent=True, service=True) + + self.rdmc.ui.printer("\nStarting upgrade process...\n\n") + + self.showupdateprogress(update_path) + # logoutobj.run("") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def verify_targets(self, target): + target_list = target.split(",") + for target in target_list: + try: + target_url = "/redfish/v1/UpdateService/FirmwareInventory/" + target + dd = self.rdmc.app.get_handler(target_url, service=True, silent=True) + if dd.status == 404: + return False + except: + return False + return True + + def showupdateprogress(self, path): + """handler function for updating the progress + + :param path: path to update service. + :tyep path: str + """ + counter = 0 + written = False + uploadingpost = False + spinner = ["|", "/", "-", "\\"] + position = 0 + + while True: + if counter == 100: + raise FirmwareUpdateError( + "Error occurred while updating the firmware. Check if TPM is enabled. " + "And if TPM enabled provide --tpmenabled flag" + ) + else: + counter += 1 + + results = self.rdmc.app.get_handler(path, silent=True) + results = results.dict + try: + results = results["Oem"]["Hpe"] + except: + pass + + if not results: + raise FirmwareUpdateError("Unable to contact Update Service. " "Please re-login and try again.") + + if results["State"].lower().startswith("idle"): + time.sleep(2) + elif results["State"].lower().startswith("uploading"): + counter = 0 + + if not uploadingpost: + uploadingpost = True + else: + if not written: + written = True + self.rdmc.ui.printer("\n iLO is uploading the necessary files. Please wait...\n") + + time.sleep(0.5) + elif results["State"].lower().startswith(("progressing", "updating", "verifying", "writing", "backingup")): + counter = 0 + + for _ in range(2): + if position < 4: + self.rdmc.ui.printer("Updating: " + spinner[position] + "\r") + position += 1 + time.sleep(0.1) + else: + position = 0 + self.rdmc.ui.printer("Updating: " + spinner[position] + "\r") + position += 1 + time.sleep(0.1) + elif results["State"].lower().startswith("complete"): + self.rdmc.ui.printer( + "\n\nFirmware update has completed and iLO" + " may reset. \nIf iLO resets the" + " session will be terminated.\nPlease wait" + " for iLO to initialize completely before" + " logging in again.\nA reboot may be required" + " for firmware changes to take effect.\n" + ) + break + elif results["State"].lower().startswith("error"): + error = self.rdmc.app.get_handler(path, silent=True) + self.printerrmsg(error) + + def printerrmsg(self, error): + """raises and prints the detailed error message if possible""" + output = "Error occurred while updating the firmware." + + try: + error = error.dict["Oem"]["Hpe"]["Result"]["MessageId"].split(".") + # TODO: Update to new ResponseHandler Method 'return_reg' + errmessages = ResponseHandler( + self.rdmc.app.validation_manager, + self.rdmc.app.typepath.defs.messageregistrytype, + ).get_error_messages() + for messagetype in list(errmessages.keys()): + if error[0] == messagetype: + if errmessages[messagetype][error[-1]]["NumberOfArgs"] == 0: + output = "Firmware update error. %s" % errmessages[messagetype][error[-1]]["Message"] + else: + output = "Firmware update error. %s" % errmessages[messagetype][error[-1]]["Description"] + break + except: + pass + + raise FirmwareUpdateError(output) + + def firmwareupdatevalidation(self, options): + """Firmware update method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--tpmenabled", + dest="tpmenabled", + action="store_true", + help="Use this flag if the server you are currently logged into" " has a TPM chip installed.", + default=False, + ) + customparser.add_argument( + "--updatetarget", + dest="updatetarget", + action="store_true", + help="UpdateTarget set as true/false" "if true firmware updates", + default=True, + ) + customparser.add_argument( + "--updaterepository", + dest="updaterepository", + action="store_false", + help="UpdateRepository set as true or false" " if true it will add repository.", + default=True, + ) + customparser.add_argument( + "--targets", + help="If targets value specify a comma separated\t" "firmwareinventory id only", + metavar="targets_indices", + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IPProfilesCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IPProfilesCommand.py new file mode 100644 index 0000000..eb7a482 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IPProfilesCommand.py @@ -0,0 +1,701 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""RawGet Command for rdmc""" + +import base64 +import gzip +import json +import os +import re +import time +from ctypes import create_string_buffer +from datetime import datetime +import six +from six import BytesIO + +if six.PY3: + from datetime import timezone + + +import redfish +from redfish.hpilo.risblobstore2 import BlobStore2 + +try: + from rdmc_helper import ( + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + InvalidFileInputError, + NoContentsFoundForOperationError, + PathUnavailableError, + ReturnCodes, + UnableToDecodeError, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + InvalidFileInputError, + NoContentsFoundForOperationError, + PathUnavailableError, + ReturnCodes, + UnableToDecodeError, + ) + + +class IPProfilesCommand: + """Raw form of the get command""" + + def __init__(self): + self.ident = { + "name": "ipprofiles", + "usage": None, + "description": "Decodes and lists " + "ipprofiles. This is default option. No argument required" + "\n\tExample: ipprofiles" + "\n\n\tAdds a new ipprofile from the provided json file." + "\n\tNOTE: Path can be absolute or from the " + "same path you launch iLOrest." + "\n\tipprofiles " + "\n\n\tDelete an ipprofile or list of profiles.\n\t" + "Provide the unique key that corresponds to the ipprofile" + " data you want to delete.\n\tSeveral IDs can be comma-separated" + " with no space in between to delete more than one profile. " + "\n\tipprofiles --delete ID1,ID2,ID3..." + "\n\n\tCopies ip profile with the specified ID into the ip job queue." + "and starts it.\n\texample: ipprofiles --start=", + "summary": "This is used to manage hpeipprofile data store.", + "aliases": [], + "auxcommands": ["BootOrderCommand", "RebootCommand"], + } + self.path = "" + self.ipjobs = "" + self.running_jobs = "" + self.hvt_output = "" + self.ipjobtype = ["langsel", "hvt", "ssa", "install", "rbsu"] + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main raw get worker function + + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.getpaths() + + self.validation(options) + + self.ipprofileworkerfunction(options, args) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def ipprofileworkerfunction(self, options, args): + """ + Ipprofile manager worker function. It calls appropriate function. + :param options: command line options + :type options: list. + :param args: command line args + :type args: string. + """ + + if options.running_jobs: + self.get_running_job() + return ReturnCodes.SUCCESS + if options.get_hvt: + if options.filename: + self.rdmc.ui.warn("iprprofiles -D option does not support -f, please remove -f and rerun\n") + return ReturnCodes.SUCCESS + self.get_hvt_output() + return ReturnCodes.SUCCESS + if options.del_key: + self.deletekeyfromipprofiledata(options) + return ReturnCodes.SUCCESS + + if options.start_ip: + self.addprofileandstartjob(options) + return ReturnCodes.SUCCESS + + if len(args) == 1: + self.encodeandpatchipprofiledata(args) + return ReturnCodes.SUCCESS + + self.getipprofiledataanddecode(options) + + def getipprofiledataanddecode(self, options): + """ + Retrieves and decodes, if encoded, data from hpeprofile data store + :param options: command line options + :type options: list. + :return returncode: int + """ + + results = self.rdmc.app.get_handler(self.path, silent=True) + if results.status == 404: + raise PathUnavailableError( + "The Intelligent Provisioning resource " + "is not available on this system. You may need" + " to run IP at least once to add the resource." + ) + + if results and results.status == 200: + j2python = json.loads(results.read) + for _, val in enumerate(j2python.keys()): + if isinstance(val, six.string_types): + result = self.decode_base64_string(str(j2python[val])) + if result is not None: + j2python[val] = result + + results.read = json.dumps(j2python, ensure_ascii=False, sort_keys=True) + if results.dict: + if options.filename: + output = json.dumps( + results.dict, + indent=2, + cls=redfish.ris.JSONEncoder, + sort_keys=True, + ) + + filehndl = open(options.filename[0], "w") + filehndl.write(output) + filehndl.close() + + self.rdmc.ui.printer("Results written out to '%s'.\n" % options.filename[0]) + else: + self.rdmc.ui.print_out_json(results.dict) + else: + self.rdmc.ui.warn("No IP profiles found\n") + + def get_running_job(self): + """ + Retrieves and decodes, running job + :return returncode: int + """ + + results = self.rdmc.app.get_handler(self.running_jobs, silent=True) + if results.status == 404: + raise PathUnavailableError( + "The Intelligent Provisioning resource " + "is not available on this system. You may need" + " to run IP at least once to add the resource." + ) + + if results and results.status == 200: + j2python = json.loads(results.read) + for _, val in enumerate(list(j2python.keys())): + if isinstance(val, six.string_types): + result = self.decode_base64_string(str(j2python[val])) + if result is not None: + j2python[val] = result + + results.read = json.dumps(j2python, ensure_ascii=False) + if results.dict: + self.rdmc.ui.print_out_json(results.dict) + else: + self.rdmc.ui.warn("No IP profiles found\n") + + def get_hvt_output(self): + """ + Retrieves and decodes, running job + :return returncode: int + """ + return_value = {} + results = self.rdmc.app.get_handler(self.hvt_output, silent=True) + if results.status == 404: + raise PathUnavailableError( + "The Intelligent Provisioning resource " + "is not available on this system. You may need" + " to run IP at least once to add the resource." + ) + + if results and results.status == 200: + j2python = json.loads(results.read) + for _, val in enumerate(list(j2python.keys())): + if isinstance(val, six.string_types) and "@" not in val: + return_value = json.loads(self.decode_base64_string(str(j2python[val]))) + self.rdmc.ui.print_out_json(return_value) + else: + self.rdmc.ui.error("No IP profiles found\n") + + def encodeandpatchipprofiledata(self, args): + """ + Reads file in the given path, encode it, + and apply it on iLO hpeipprofiles data store. + :param args: command line args + :type args: string. + :retirn returncode: int + """ + + contentsholder = self.encode_base64_string(args) + + if "path" in contentsholder and "body" in contentsholder: + self.rdmc.app.patch_handler(contentsholder["path"], contentsholder["body"]) + + return ReturnCodes.SUCCESS + + def deletekeyfromipprofiledata(self, options): + """ + Provide a string which represents a valid key in + hpeipprofiles data store. + :param options: command line options + :type options: list. + :return returncode: int + """ + + get_results = self.rdmc.app.get_handler(self.path, silent=True) + + j2python = json.loads(get_results.read) + all_keys = options.del_key[0].split(",") + for key in all_keys: + if isinstance(key, six.string_types) and j2python.get(key.strip(), False): + del j2python[key.strip()] + else: + raise InvalidFileFormattingError("%s was not found .\n" % key) + + payload = {"path": self.path, "body": j2python} + + self.rdmc.app.put_handler(payload["path"], payload["body"]) + + return ReturnCodes.SUCCESS + + def addprofileandstartjob(self, options): + """ + Adds ip profile into the job queue and start it. + :return returncode: int + """ + + ipprovider = self.hasipprovider() + if ipprovider is None: + raise PathUnavailableError("System does not support this feature of IP.\n") + + ipjob = self.hasipjobs() + if not ipjob: + raise InvalidFileFormattingError("System does not have any IP" " profile to copy to the job queue.\n") + + current_state = self.inipstate(ipprovider) + if current_state is None: + raise PathUnavailableError("System does not support this feature of IP.\n") + + later_state = False + ipstate = current_state["InIP"] + if isinstance(ipstate, bool) and ipstate: + # make sure we are in IP state. Reset and monitor + self.resetinipstate(ipprovider, current_state) + # if we are in ip, monitor should be fast, use 15 seconds + later_status = self.monitorinipstate(ipprovider, 3) + if later_status: + self.rdmc.ui.printer("Server is in IP state. Powering on...\n") + self.copyjobtoipqueue(ipjob, options.start_ip) + self.rdmc.ui.printer("Copy operation was successful...\n") + return ReturnCodes.SUCCESS + + if not isinstance(ipstate, bool): + # inip is in an unknown state, so ... + # patch to false, reboot, then monitor...if it turns true later... + # then we are in IP state otherwise, manually check system... + self.resetinipstate(ipprovider, current_state) + later_status = self.monitorinipstate(ipprovider, 3) + if later_status: + self.copyjobtoipqueue(ipjob, options.start_ip) + self.rdmc.ui.printer("Copy operation was successful...\n") + return ReturnCodes.SUCCESS + + # Check if the server is On or Off, If it is Off, make it on + path = self.rdmc.app.typepath.defs.systempath + get_results = self.rdmc.app.get_handler(path, silent=True) + result = json.loads(get_results.read) + if result and result.get("PowerState") == "Off": + self.rdmc.ui.printer("Server is in OFF state. Powering on...\n") + self.auxcommands["bootorder"].run("--onetimeboot=Utilities " "--reboot=On --commit") + elif result and result.get("Oem").get("Hpe").get("PostState") != "FinishedPost": + self.rdmc.ui.printer("Server is in POST state. Restarting...\n") + # Forcefully switch off as it is stuck in POST + self.auxcommands["reboot"].run("ForceOff") + time.sleep(5) + # Switch on with bootorder set + self.auxcommands["bootorder"].run("--onetimeboot=Utilities " "--reboot=On --commit") + # Check to find out if server in POST + # count = 0 + # in_post = True + # path = self.rdmc.app.typepath.defs.systempath + # while (count < 5): + # count = count + 1 + # get_results = self.rdmc.app.get_handler(path, silent=True) + # result = json.loads(get_results.read) + # if result and result.get("Oem").get("Hpe").get("PostState") == "FinishedPost": + # in_post = False + # break + # else: + # # Sleep for 1 minutes for 5 times. + # self.rdmc.ui.printer("System in POST...waiting for 1 min...\n") + # time.sleep(60) + + # if in_post: + # raise NoContentsFoundForOperationError( + # "Server still in POST even after 5 minutes - Please check" + # ) + else: + self.rdmc.ui.printer("Server is in OS state. ColdBooting...\n") + try: + self.auxcommands["bootorder"].run("--onetimeboot=Utilities " "--reboot=ColdBoot --commit") + except: + raise InvalidFileFormattingError("System failed to reboot") + + # After reboot, login again + time.sleep(options.sleep_time) # Sleep until reboot + self.validation(options) + + later_state = self.monitorinipstate(ipprovider) + if later_state: + self.copyjobtoipqueue(ipjob, options.start_ip) + self.rdmc.ui.printer("Copy operation was successful...\n") + else: + raise InvalidFileFormattingError( + "\nSystem reboot took longer than 4 minutes." + "something is wrong. You need to physically check this system.\n" + ) + + return ReturnCodes.SUCCESS + + def resetinipstate(self, ipprovider, current_state): + """ + Regardless of previous value, sets InIP value to False + :param ipprovider: url path of heip. + :type ipprovider: string. + :param current_state: the value of InIP. + :type current_state: dict + """ + + current_state["InIP"] = False + + payload = {"path": ipprovider, "body": current_state} + + self.rdmc.app.put_handler(payload["path"], payload["body"], silent=True) + + def monitorinipstate(self, ipprovider, timer=48): + """ + Monitor InIP value every 5 seconds until it turns true or time expires. + :param ipprovider: url path of heip. + :type ipprovider: string. + :param timer: time it takes iLO to boot into F10 assuming we are in boot state. + :type timer: int + :return ipstate: boolean + """ + + retry = timer # 48 * 5 = 4 minutes + ipstate = False + progress = self.progressbar() + self.rdmc.ui.printer("\n") + while retry > 0: + time.sleep(5) + next(progress) + status = self.inipstate(ipprovider) + if isinstance(status["InIP"], bool) and status["InIP"]: + ipstate = True + break + retry = retry - 1 + self.rdmc.ui.printer("\n") + + return ipstate + + def progressbar(self): + """ + An on demand function use to output the progress while iLO is booting into F10. + """ + while True: + yield self.rdmc.ui.printer(">>>") + + def copyjobtoipqueue(self, ipjobs, jobkey): + """ + Copies HpeIpJob to Job queue. Function assumes there is a job to copy. + A check was already done to make sure we have a job to copy in hasipjobs() + :param ipjobs: url path of heip. + :type ipjobs: list of dictionary. + :param jobkey: key of job to copy. + :type jokbey: str. + """ + + get_results = self.rdmc.app.get_handler(self.path, silent=True) + + j2python = json.loads(get_results.read) + copy_job = {} + for ipj in j2python: + if jobkey == ipj: + _decode = self.decode_base64_string(j2python[ipj]) + if _decode is not None: + _critical_props = { + "log": '[{"msg": "WAITINGTOBEPROCESSED", "percent": 0}]', + "status": "waiting", + } + copy_job.update( + { + k: v.update(_critical_props) or v + for k, v in json.loads(_decode).items() + if k in self.ipjobtype + } + ) + else: + raise NoContentsFoundForOperationError("Not supported profile content") + break + if not copy_job: + raise NoContentsFoundForOperationError("The ID %s does not match any ipprofile" % jobkey) + payload = {"path": self.ipjobs, "body": copy_job} + + self.rdmc.app.put_handler(payload["path"], payload["body"]) + + def inipstate(self, ipprovider): + """ + A check is done to determine if this version of iLO has InIP profile. + :param ipprovider: url path of heip. + :type ipprovider: string. + :return is_inip: None or dict + """ + + if ipprovider.startswith("/redfish/"): + get_results = self.rdmc.app.get_handler(ipprovider, silent=True) + result = json.loads(get_results.read) + + is_inip = None + try: + if "InIP" in list(result.keys()): + is_inip = result + except KeyError: + pass + + return is_inip + + def hasipjobs(self): + """ + A check is done to determine if there is a job in HpeIpJobs we can + copy to IP job queue + :param options: command line options + :type options: list. + :return list_dict: list of dicts + """ + + results = self.rdmc.app.get_handler(self.path, silent=True) + + j2python = json.loads(results.read) + for _, val in enumerate(j2python.keys()): + if isinstance(val, six.string_types): + result = self.decode_base64_string(str(j2python[val])) + if result is not None: + j2python[val] = result + + list_dict = [] + + for key, value in j2python.items(): + if not re.match("@odata", key): + if len(key) >= 13 and key.isdigit(): + list_dict.append({key: value}) # list of dict with valid key/value + + return list_dict + + def hasipprovider(self): + """ + A check is done here to determine if this version of iLO has IP provider + profile path using the "Oem.Hpe.Links.HpeIpProvider" + + :return is_provider: None or string. + """ + path = self.rdmc.app.typepath.defs.systempath + get_results = self.rdmc.app.get_handler(path, silent=True) + + result = json.loads(get_results.read) + + is_ipprovider = None + try: + is_ipprovider = list(result["Oem"]["Hpe"]["Links"]["HpeIpProvider"].values())[0] + except KeyError: + pass + + return is_ipprovider + + def validation(self, options): + """IPProfiles validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def decode_base64_string(self, str_b64): + """ + Decodes a given string that was encoded with base64 and gzipped. + :param str_b64: a string that was base64 encoded and the gzipped + :type str_b64: string. + """ + + read_data = None + if isinstance(str_b64, six.string_types) and str_b64: + try: + decoded_str = base64.decodebytes(str_b64.encode("utf-8")) + inbuffer = BytesIO(decoded_str) + gzffile = gzip.GzipFile(mode="rb", fileobj=inbuffer) + read_data = "" + for line in gzffile.readlines(): + read_data = read_data + line.decode("utf-8") + except: + pass + + return read_data + + def encode_base64_string(self, args): + """ + Encode a given string with base64 and gzip it. + :param args: command line args + :type args: string. + """ + + payload = {} + filename = args[0] + if filename: + if not os.path.isfile(filename): + raise InvalidFileInputError( + "File '%s' doesn't exist. " "Please create file by running 'save' command." % filename + ) + + try: + with open(filename, "r") as fh: + contentsholder = json.loads(fh.read()) + except: + raise InvalidFileFormattingError("Input file '%s' was not " "format properly." % filename) + + try: + text = json.dumps(contentsholder).encode("utf-8") + buf = BytesIO() + gzfile = gzip.GzipFile(mode="wb", fileobj=buf) + gzfile.write(text) + gzfile.close() + + en_text = base64.encodebytes(buf.getvalue()).decode("utf-8") + + if six.PY3: + epoch = datetime.fromtimestamp(0, tz=timezone.utc) + now = datetime.now(tz=timezone.utc) + elif six.PY2: + epoch = datetime.utcfromtimestamp(0) + now = datetime.utcnow() + delta = now - epoch + time_stamp = delta.total_seconds() * 1000 + time_stamp = repr(time_stamp).split(".")[0] + + body_text = {time_stamp: en_text.strip()} + + payload["body"] = body_text + if isinstance(self.path, bytes): + self.path = self.path.decode("utf-8") + payload["path"] = self.path + except Exception as excp: + raise UnableToDecodeError("Error while encoding string %s." % excp) + + return payload + + def getpaths(self): + """Get paths for ipprofiles command""" + if not all(iter([self.path, self.ipjobs, self.running_jobs, self.hvt_output])): + dll = BlobStore2.gethprestchifhandle() + + profiles_path = create_string_buffer(50) + jobs_path = create_string_buffer(50) + running_jobs_path = create_string_buffer(50) + hvt_output_path = create_string_buffer(50) + + dll.get_ip_profiles(profiles_path) + dll.get_ip_jobs(jobs_path) + dll.get_running_jobs(running_jobs_path) + dll.get_hvt_output(hvt_output_path) + + self.path = profiles_path.value + self.ipjobs = jobs_path.value + self.running_jobs = running_jobs_path.value + self.hvt_output = hvt_output_path.value + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-r", + "--running", + dest="running_jobs", + default=False, + action="store_true", + help="""Show status of the currently running or last job executed""", + ) + customparser.add_argument( + "-D", + "--diags", + help="""Get result of last HVT (diagnostics) run as part of an ipprofile job""", + default=False, + action="store_true", + dest="get_hvt", + ) + customparser.add_argument( + "-f", + "--filename", + dest="filename", + help="""Write results to the specified file.""", + action="append", + default=None, + ) + customparser.add_argument( + "--delete", + dest="del_key", + action="append", + help="Look for the key or keys in the ipprofile manager and delete", + default=None, + ) + customparser.add_argument( + "-s", + "--start", + dest="start_ip", + help="Copies the specified ip profile into the job queue and starts it", + default=None, + ) + customparser.add_argument( + "-t", + "--sleeptime", + dest="sleep_time", + type=int, + help="Sleep time in seconds when server in OS mode and rebooted", + default=320, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloAccountsCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloAccountsCommand.py new file mode 100644 index 0000000..27e1f4c --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloAccountsCommand.py @@ -0,0 +1,780 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Add Account Command for rdmc""" + +import getpass +import os +from argparse import Action, RawDescriptionHelpFormatter + +from redfish.ris.ris import SessionExpired +from redfish.ris.rmc_helper import IdTokenError + +try: + from rdmc_helper import ( + Encryption, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + NoContentsFoundForOperationError, + ResourceExists, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + Encryption, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + NoContentsFoundForOperationError, + ResourceExists, + ReturnCodes, + ) + +__subparsers__ = ["add", "modify", "changepass", "delete", "addcert", "deletecert"] + + +class _AccountParse(Action): + def __init__(self, option_strings, dest, nargs, **kwargs): + super(_AccountParse, self).__init__(option_strings, dest, nargs, **kwargs) + + def __call__(self, parser, namespace, values, option_strings): + """Account privileges option helper""" + + privkey = { + 1: "LoginPriv", + 2: "RemoteConsolePriv", + 3: "UserConfigPriv", + 4: "iLOConfigPriv", + 5: "VirtualMediaPriv", + 6: "VirtualPowerAndResetPriv", + 7: "HostNICConfigPriv", + 8: "HostBIOSConfigPriv", + 9: "HostStorageConfigPriv", + 10: "SystemRecoveryConfigPriv", + } + + for priv in next(iter(values)).split(","): + try: + priv = int(priv) + except ValueError: + try: + parser.error("Invalid privilege entered: %s. Privileges must " "be numbers." % priv) + except: + raise InvalidCommandLineErrorOPTS("") + try: + if not isinstance(namespace.optprivs, list): + namespace.optprivs = list() + if option_strings.startswith("--add"): + namespace.optprivs.append({privkey[priv]: True}) + elif option_strings.startswith("--remove"): + namespace.optprivs.append({privkey[priv]: False}) + except KeyError: + try: + parser.error( + "Invalid privilege entered: %s. Number does not " "match an available privilege." % priv + ) + except: + raise InvalidCommandLineErrorOPTS("") + + # account_parse.counter = 0 + + +class IloAccountsCommand: + """command to manipulate/add ilo user accounts""" + + def __init__(self): + self.ident = { + "name": "iloaccounts", + "usage": None, + "description": "\tView, Add, Remove, and Modify iLO accounts based on the " + "sub-command used.\n\n\tTo view help on specific sub-commands run: " + "iloaccounts -h\n\t" + "Example: iloaccounts add -h\n\tNote: \n\t\t1. UserName and LoginName are reversed " + "in the iLO GUI for Redfish compatibility.\n\t\t" + "2. While executing the command: iloaccounts add in a Linux machine, " + "an escape character needs to be added before a special character in the password.\n\t\t\t" + "Example: iloaccount add rest rest 12iso*help\n", + "summary": "Views/Adds/deletes/modifies an iLO account on the currently logged in server.", + "aliases": ["iloaccount"], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main iloaccounts function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + acct = mod_acct = None + try: + ident_subparser = False + for cmnd in __subparsers__: + if cmnd in line: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + ident_subparser = True + break + if not ident_subparser: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line, default=True) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.iloaccountsvalidation(options) + + redfish = self.rdmc.app.monolith.is_redfish + path = self.rdmc.app.typepath.defs.accountspath + results = self.rdmc.app.get_handler(path, service=True, silent=True).dict + + if redfish: + results = results["Members"] + else: + if "Member" in results["links"]: + results = results["links"]["Member"] + else: + results = list() + + for indx, acct in enumerate(results): + acct = self.rdmc.app.get_handler( + acct[self.rdmc.app.typepath.defs.hrefstring], service=True, silent=True + ).dict + try: + if hasattr(options, "identifier"): + if acct["Id"] == options.identifier or acct["UserName"] == options.identifier: + if redfish: + path = acct["@odata.id"] + else: + path = acct["links"]["self"]["href"] + mod_acct = acct + elif options.command == "default": + results[indx] = acct + else: + raise KeyError + except KeyError: + continue + else: + if mod_acct: + acct = mod_acct + break + else: + acct = None + + if not results: + raise NoContentsFoundForOperationError("No iLO Management Accounts were found.") + + outdict = dict() + if options.command.lower() == "default": + if not options.json: + self.rdmc.ui.printer( + "\niLO Account info:\n\n[Id] UserName (LoginName): " "\nPrivileges\n-----------------\n\n", + verbose_override=True, + ) + for acct in sorted(results, key=lambda k: int(k["Id"])): + privstr = "" + privs = acct["Oem"][self.rdmc.app.typepath.defs.oemhp]["Privileges"] + + if ( + "ServiceAccount" in list(acct["Oem"][self.rdmc.app.typepath.defs.oemhp].keys()) + and acct["Oem"][self.rdmc.app.typepath.defs.oemhp]["ServiceAccount"] + ): + service = "ServiceAccount=True" + else: + service = "ServiceAccount=False" + if not options.json: + for priv in privs: + privstr += priv + "=" + str(privs[priv]) + "\n" + self.rdmc.ui.printer( + "[%s] %s (%s):\n%s\n%s\n" + % ( + acct["Id"], + acct["UserName"], + acct["Oem"][self.rdmc.app.typepath.defs.oemhp]["LoginName"], + service, + privstr, + ), + verbose_override=True, + ) + keyval = "[" + str(acct["Id"]) + "] " + acct["UserName"] + outdict[keyval] = privs + outdict[keyval]["ServiceAccount"] = service.split("=")[-1].lower() + if options.json: + self.rdmc.ui.print_out_json_ordered(outdict) + elif options.command.lower() == "changepass": + if not acct: + raise InvalidCommandLineError("Unable to find the specified account.") + if not options.acct_password: + self.rdmc.ui.printer("Please input the new password.\n", verbose_override=True) + tempinput = getpass.getpass() + self.credentialsvalidation("", "", tempinput, "", True, options) + options.acct_password = tempinput + + self.credentialsvalidation("", "", options.acct_password.split("\r")[0], "", True) + body = {"Password": options.acct_password.split("\r")[0]} + + if path and body: + self.rdmc.app.patch_handler(path, body) + else: + raise NoContentsFoundForOperationError("Unable to find the specified account.") + + elif options.command.lower() == "add": + if options.encode: + args[2] = Encryption.decode_credentials(args[2]) + if isinstance(args[2], bytes): + args[2] = args[2].decode("utf-8") + + privs = self.getprivs(options) + path = self.rdmc.app.typepath.defs.accountspath + + body = { + "UserName": options.identifier, + "Password": options.acct_password, + "Oem": {self.rdmc.app.typepath.defs.oemhp: {"LoginName": options.loginname}}, + } + if privs: + body["Oem"][self.rdmc.app.typepath.defs.oemhp].update({"Privileges": privs}) + self.credentialsvalidation(options.identifier, options.loginname, options.acct_password, acct, True) + if options.serviceacc: + body["Oem"][self.rdmc.app.typepath.defs.oemhp].update({"ServiceAccount": True}) + if options.role: + if self.rdmc.app.getiloversion() >= 5.140: + body["RoleId"] = options.role + else: + raise IncompatibleiLOVersionError("Roles can only be set in iLO 5" " 1.40 or greater.") + if path and body: + self.rdmc.app.post_handler(path, body) + self.rdmc.ui.printer("New iLO account %s is added successfully\n" % options.identifier) + elif options.command.lower() == "modify": + if not mod_acct: + raise InvalidCommandLineError("Unable to find the specified account.") + body = {} + + if options.optprivs: + body.update({"Oem": {self.rdmc.app.typepath.defs.oemhp: {"Privileges": {}}}}) + if any( + priv for priv in options.optprivs if "SystemRecoveryConfigPriv" in priv + ) and "SystemRecoveryConfigPriv" not in list(self.getsesprivs().keys()): + excp = IdTokenError() + note_msg = "" + if self.rdmc.app.getiloversion(skipschemas=True) >= 7: + note_msg = ( + "Note: If you have logged into iLO using appaccount, " + "this is an expected behaviour. Please log in through " + "--no_app_account with a privileged user credentials to proceed.\n" + ) + error_msg = ( + "The currently logged in account must have The System " + "Recovery Config privilege to add the System Recovery " + "Config privilege.\n" + note_msg + ) + excp.message = error_msg + raise excp + privs = self.getprivs(options) + body["Oem"][self.rdmc.app.typepath.defs.oemhp]["Privileges"] = privs + + if options.role and self.rdmc.app.getiloversion() >= 5.140: + body["RoleId"] = options.role + + if not body: + raise InvalidCommandLineError( + "Valid Privileges/RoleID have not been provided; " + " no changes have been made to this account: %s\n" % options.identifier + ) + self.rdmc.app.patch_handler(path, body) + + elif options.command.lower() == "delete": + if not acct: + raise InvalidCommandLineError("Unable to find the specified account.") + self.rdmc.app.delete_handler(path) + + elif "cert" in options.command.lower(): + certpath = "/redfish/v1/AccountService/UserCertificateMapping/" + privs = self.getsesprivs() + if self.rdmc.app.typepath.defs.isgen9: + IncompatibleiLOVersionError("This operation is only available on gen 10 " "and newer machines.") + elif not privs["UserConfigPriv"]: + excp = IdTokenError() + note_msg = "" + if self.rdmc.app.getiloversion(skipschemas=True) >= 7: + note_msg = ( + "Note: If you have logged into iLO using appaccount, " + "this is an expected behaviour. Please log in through " + "--no_app_account with a privileged user credentials to proceed.\n" + ) + error_msg = ( + "The currently logged in account must have The User " + "Config privilege to manage certificates for users.\n" + note_msg + ) + excp.message = error_msg + raise excp + else: + if options.command.lower() == "addcert": + if not acct: + raise InvalidCommandLineError("Unable to find the specified account.") + body = {} + username = acct["UserName"] + + fingerprintfile = options.certificate + if os.path.exists(fingerprintfile): + with open(fingerprintfile, "r") as fingerfile: + fingerprint = fingerfile.read() + else: + raise InvalidFileInputError("%s cannot be read." % fingerprintfile) + body = {"Fingerprint": fingerprint, "UserName": username} + self.rdmc.app.post_handler(certpath, body) + + elif options.command.lower() == "deletecert": + if not acct: + raise InvalidCommandLineError("Unable to find the specified account.") + certpath += acct["Id"] + self.rdmc.app.delete_handler(certpath) + + else: + raise InvalidCommandLineError("Invalid command.") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def getprivs(self, options): + """find and return the privileges to set + + :param options: command line options + :type options: list. + """ + sesprivs = self.getsesprivs() + setprivs = {} + availableprivs = self.getsesprivs(availableprivsopts=True) + + if "UserConfigPriv" not in list(sesprivs.keys()): + excp = IdTokenError() + note_msg = "" + if self.rdmc.app.getiloversion(skipschemas=True) >= 7: + note_msg = ( + "Note: If you have logged into iLO using appaccount, " + "this is an expected behaviour. Please log in through " + "--no_app_account with a privileged user credentials to proceed.\n" + ) + error_msg = ( + "The currently logged in account does not have the User Config " + "privilege and cannot add or modify user accounts.\n" + note_msg + ) + excp.message = error_msg + raise excp + + if options.optprivs: + for priv in options.optprivs: + priv = next(iter(list(priv.keys()))) + if priv not in availableprivs: + raise IncompatibleiLOVersionError("Privilege %s is not available on this " "iLO version." % priv) + + if all(priv.values() for priv in options.optprivs): + if ( + any(priv for priv in options.optprivs if "SystemRecoveryConfigPriv" in priv) + and "SystemRecoveryConfigPriv" not in sesprivs.keys() + ): + excp = IdTokenError() + note_msg = "" + if self.rdmc.app.getiloversion(skipschemas=True) >= 7: + note_msg = ( + "Note: If you have logged into iLO using appaccount, " + "this is an expected behaviour. Please log in through " + "--no_app_account with a privileged user credentials to proceed.\n" + ) + error_msg = ( + "The currently logged in account must have The System " + "Recovery Config privilege to add the System Recovery " + "Config privilege.\n" + note_msg + ) + excp.message = error_msg + raise excp + else: + setprivs = {} + for priv in options.optprivs: + setprivs.update(priv) + + return setprivs + + def getsesprivs(self, availableprivsopts=False): + """Finds and returns the curent session's privileges + + :param availableprivsopts: return available privileges + :type availableprivsopts: boolean. + """ + if self.rdmc.app.current_client: + sespath = self.rdmc.app.current_client.session_location + sespath = ( + self.rdmc.app.current_client.default_prefix + + sespath.split(self.rdmc.app.current_client.default_prefix)[-1] + ) + + ses = self.rdmc.app.get_handler(sespath, service=False, silent=True) + + if not ses: + raise SessionExpired("Invalid session. Please logout and " "log back in or include credentials.") + + sesprivs = { + "HostBIOSConfigPriv": True, + "HostNICConfigPriv": True, + "HostStorageConfigPriv": True, + "LoginPriv": True, + "RemoteConsolePriv": True, + "SystemRecoveryConfigPriv": True, + "UserConfigPriv": True, + "VirtualMediaPriv": True, + "VirtualPowerAndResetPriv": True, + "iLOConfigPriv": True, + } + if "Oem" in ses.dict: + sesoemhp = ses.dict["Oem"][self.rdmc.app.typepath.defs.oemhp] + if "Privileges" in list(sesoemhp.keys()): + sesprivs = sesoemhp["Privileges"] + availableprivs = list(sesprivs.keys()) + updated_privs = dict() + for priv, val in sesprivs.items(): + if val: + updated_privs[priv] = sesprivs[priv] + sesprivs = updated_privs + del updated_privs + else: + sesprivs = None + if availableprivsopts: + return availableprivs + else: + return sesprivs + + def credentialsvalidation( + self, + username="", + loginname="", + password="", + acct=None, + check_password=False, + options=None, + ): + """sanity validation of credentials + :param username: username to be added + :type username: str. + :param loginname: loginname to be added + :type loginname: str. + :param password: password to be added + :type password: str. + :param accounts: target federation account + :type accounts: dict. + :param check_password: flag to check password + :type check_password: bool. + """ + username_max_chars = 39 # 60 + loginname_max_chars = 39 # 60 + password_max_chars = 39 # PASSWORD MAX CHARS + password_min_chars = 8 # PASSWORD MIN CHARS + + password_min_chars = next(iter(self.rdmc.app.select("AccountService."))).dict["Oem"][ + self.rdmc.app.typepath.defs.oemhp + ]["MinPasswordLength"] + + if username != "" and loginname != "": + if len(username) > username_max_chars: + raise InvalidCommandLineError( + "Username exceeds maximum length" ". Use at most %s characters." % username_max_chars + ) + + if len(loginname) > loginname_max_chars: + raise InvalidCommandLineError( + "Login name exceeds maximum " "length. Use at most %s characters." % loginname_max_chars + ) + + try: + if acct: + if ( + acct["UserName"] == username + or acct["Oem"][self.rdmc.app.typepath.defs.oemhp]["LoginName"] == loginname + ): + raise ResourceExists("Username or login name is already in use.") + except KeyError: + pass + + if check_password: + if password == "" or password == "/r": + raise InvalidCommandLineError("An invalid password was entered.") + else: + if len(password) > password_max_chars: + raise InvalidCommandLineError( + "Password length is invalid." " Use at most %s characters." % password_max_chars + ) + if len(password) < password_min_chars: + raise InvalidCommandLineError( + "Password length is invalid." " Use at least %s characters." % password_min_chars + ) + + def iloaccountsvalidation(self, options): + """add account validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + @staticmethod + def options_argument_group(parser): + """Define optional arguments group + + :param parser: The parser to add the --addprivs option group to + :type parser: ArgumentParser/OptionParser + """ + group = parser.add_argument_group( + "GLOBAL OPTIONS", + "Options are available for all " "arguments within the scope of this command.", + ) + + group.add_argument( + "--addprivs", + dest="optprivs", + nargs="*", + action=_AccountParse, + type=str, + help="Optionally include this flag if you wish to specify " + "which privileges you want added to the iLO account. Pick " + "privileges from the privilege list in above help text. EX: --addprivs=1,2,4", + default=None, + metavar="Priv,", + ) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + subcommand_parser = customparser.add_subparsers(dest="command") + privilege_help = ( + "\n\n\tPRIVILEGES:\n\t1: Login\n\t2: Remote Console\n\t3: User Config\n\t4:" + " iLO Config\n\t5: Virtual Media\n\t6: Virtual Power and Reset\n\n\tiLO 5 added " + "privileges:\n\t7: Host NIC Config\n\t8: Host Bios Config\n\t9: Host Storage Config" + "\n\t10: System Recovery Config" + ) + # default sub-parser + default_parser = subcommand_parser.add_parser( + "default", + help="Running without any sub-command will return all account information on the\n" + "currently logged in server.", + ) + default_parser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + self.cmdbase.add_login_arguments_group(default_parser) + # add sub-parser + add_help = ( + "Adds an iLO user account to the currently logged in server with privileges\n" "specified in --addprivs." + ) + add_parser = subcommand_parser.add_parser( + __subparsers__[0], + help=add_help, + description=add_help + "\n\t*Note*:By default only the login privilege is added to the" + ' newly created account\n\twith role "ReadOnly"in iLO 5 and no privileges in iLO 4.' + + privilege_help + + "\n\n\tExamples:\n\n\tAdd an account with specific privileges:\n\t\tiloaccounts add " + "username accountname password --addprivs 1,2,4\n\n\tAdd an account and specify " + "privileges by role:\n\t\tiloaccounts add username accountname password --role " + "ReadOnly", + formatter_class=RawDescriptionHelpFormatter, + ) + # addprivs + add_parser.add_argument( + "identifier", + help="The username or ID of the iLO account to modify.", + metavar="USERNAMEorID#", + ) + add_parser.add_argument( + "loginname", + help="The loginname of the iLO account to add. This is NOT used to login to the newly " "created account.", + metavar="LOGINNAME", + ) + add_parser.add_argument( + "acct_password", + help="The password of the iLO account to add. If you do not include a password, you " + "will be prompted to enter one before an account is created. This is used to login to " + "the newly created account.", + metavar="PASSWORD", + nargs="?", + default="", + ) + add_parser.add_argument( + "--role", + dest="role", + choices=["Administrator", "ReadOnly", "Operator"], + help="Optionally include this option if you would like to specify Privileges by role." + " Roles are a set of privileges created based on the role of the account.", + default=None, + ) + add_parser.add_argument( + "--serviceaccount", + dest="serviceacc", + action="store_true", + help="Optionally include this flag if you wish to created account " "to be a service account.", + default=False, + ) + self.cmdbase.add_login_arguments_group(add_parser) + + self.options_argument_group(add_parser) + # modify sub-parser + modify_help = ( + "Modifies the provided iLO user account on the currently logged in server" + '\nadding privileges using "--addprivs" to include privileges and using\n' + '"--removeprivs" for removing privileges.' + ) + modify_parser = subcommand_parser.add_parser( + __subparsers__[1], + help=modify_help, + description=modify_help + privilege_help + "\n\n\tExamples:\n\n\tModify an iLO account's " + "privileges by adding:\n\tiloaccounts modify username --addprivs 3,5\n\n\t" + "Modify an iLO account's privileges by removal:\n\tiloaccounts modify username " + "--removeprivs 10\n\n\tOr modify an iLO account's privileges by both simultaneously " + "adding and removing privleges:\n\n\tiloaccounts modify username --addprivs 3,7 " + "--removeprivs 9,10", + formatter_class=RawDescriptionHelpFormatter, + ) + modify_parser.add_argument( + "identifier", + help="The username or ID of the iLO account to modify.", + metavar="USERNAMEorID#", + ) + self.cmdbase.add_login_arguments_group(modify_parser) + + self.options_argument_group(modify_parser) # addprivs + modify_parser.add_argument( + "--role", + dest="role", + choices=["Administrator", "ReadOnly", "Operator"], + help="Optionally include this option if you would like to specify Privileges by role." + " Roles are a set of privileges created based on the role of the account.", + default=None, + ) + modify_parser.add_argument( + "--removeprivs", + dest="optprivs", + nargs="*", + action=_AccountParse, + type=str, + help="Include this flag if you wish to specify " + "which privileges you want removed from the iLO account. Pick " + "privileges from the privilege list in the above help text. EX: --removeprivs=1,2,4", + default=None, + metavar="PRIV,", + ) + # changepass sub-parser + changepass_help = "Changes the password of the provided iLO user account on the currently " "logged in server." + changepass_parser = subcommand_parser.add_parser( + __subparsers__[2], + help=changepass_help, + description=changepass_help + "\n\nExamples:\n\nChange the password of an account:\n\t" + "iloaccounts changepass 2 newpassword", + formatter_class=RawDescriptionHelpFormatter, + ) + changepass_parser.add_argument( + "identifier", + help="The username or ID of the iLO account to change the password for.", + metavar="USERNAMEorID#", + ) + changepass_parser.add_argument( + "acct_password", + help="The password to change the selected iLO account to. If you do not include a " + "password, you will be prompted to enter one before an account is created. This is " + "used to login to the newly created account.", + metavar="PASSWORD", + nargs="?", + default="", + ) + self.cmdbase.add_login_arguments_group(changepass_parser) + + # delete sub-parser + delete_help = "Deletes the provided iLO user account on the currently logged in server." + delete_parser = subcommand_parser.add_parser( + __subparsers__[3], + help=delete_help, + description=delete_help + "\n\nExamples:\n\nDelete an iLO account:\n\t" "iloaccounts delete username", + formatter_class=RawDescriptionHelpFormatter, + ) + delete_parser.add_argument( + "identifier", + help="The username or ID of the iLO account to delete.", + metavar="USERNAMEorID#", + ) + self.cmdbase.add_login_arguments_group(delete_parser) + + # addcert sub-parser + addcert_help = "Adds a certificate to the provided iLO user account on the currently logged" " in server." + addcert_parser = subcommand_parser.add_parser( + __subparsers__[4], + help=addcert_help, + description=addcert_help + r"\n\nExamples:\n\nAdd a user certificate to the provided " + r"iLO account.\n\tiloaccounts addcert accountUserName C:\Users\user\cert.txt", + formatter_class=RawDescriptionHelpFormatter, + ) + addcert_parser.add_argument( + "identifier", + help="The username or ID of the iLO account to add a certificate to.", + metavar="USERNAMEorID#", + ) + addcert_parser.add_argument( + "certificate", + help="The certificate to add to the provided iLO account.", + metavar="X.509CERTIFICATE", + ) + self.cmdbase.add_login_arguments_group(addcert_parser) + + # deletecert sub-parser + deletecert_help = "Deletes a certificate to the provided iLO user account on the currently " "logged in server." + deletecert_parser = subcommand_parser.add_parser( + __subparsers__[5], + help=deletecert_help, + description=deletecert_help + "\n\nExamples:\n\nDelete a user certificate from the " + "provided iLO account.\n\tiloaccounts deletecert username", + formatter_class=RawDescriptionHelpFormatter, + ) + deletecert_parser.add_argument( + "identifier", + help="The username or ID of the iLO account to delete the certificate from.", + metavar="USERNAMEorID#", + ) + self.cmdbase.add_login_arguments_group(deletecert_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloBackupRestoreCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloBackupRestoreCommand.py new file mode 100644 index 0000000..badf63c --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloBackupRestoreCommand.py @@ -0,0 +1,310 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Factory Defaults Command for rdmc""" +import os +from argparse import RawDescriptionHelpFormatter + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + InvalidPasswordLengthError, + NoContentsFoundForOperationError, + ReturnCodes, + UploadError, + ) +except ImportError: + from ilorest.rdmc_helper import ( + ReturnCodes, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + InvalidFileInputError, + InvalidPasswordLengthError, + UploadError, + ) + +from redfish.ris.ris import SessionExpired + + +class IloBackupRestoreCommand: + """Backup and restore server using iLO's .bak file""" + + def __init__(self): + self.ident = { + "name": "backuprestore", + "usage": None, + "description": "Create a .bak file. \n\tExample: backuprestore backup\n\n\t" + "Restore a server using a .bak file. \n\texample: backuprestore " + "restore\n\n\tNOTE: This command is designed to only restore\n\tthe " + "machine from which the backup file was created against.\n\tIf you would like to " + "take one configuration and apply it\n\tto multiple systems see the " + "serverclone command.\n\tThis command is only available in remote mode.", + "summary": "Backup and restore iLO to a server using a .bak file.", + "aliases": ["br"], + "auxcommands": ["LogoutCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main factorydefaults function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + # if not len(args) == 1: + # raise InvalidCommandLineError("backuprestore command takes one argument.") + + self.ilobackuprestorevalidation(options) + + if "blobstore" in self.rdmc.app.current_client.base_url: + raise InvalidCommandLineError("This command is only available remotely.") + + sessionkey = self.rdmc.app.current_client.session_key + # sessionkey = (sessionkey).encode('ascii', 'ignore') + + if options.command == "backup": + self.backupserver(options, sessionkey) + elif options.command == "restore": + self.restoreserver(options, sessionkey) + else: + raise InvalidCommandLineError("Only options are backup or restore\n") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def backupserver(self, options, skey): + """Create .bak file for a server + + :param options: command options + :type options: list. + :param skey: sessionkey of the currently logged in server + :type skey: str. + """ + select = "HpeiLOBackupRestoreService." + backupfile = None + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + service = results.resp.dict + else: + raise NoContentsFoundForOperationError("%s not found.It may not " "be available on this system.\n" % select) + + backuplocation = service["BackupFileLocation"] + backupname = backuplocation.split("/")[-1] + + postdata = [] + postdata.append(("sessionKey", skey)) + + if options.fpass: + if len(options.fpass) > 32: + raise InvalidPasswordLengthError("Length of password cannot be greater than 32 characters.") + postdata.append(("password", options.fpass)) + self.rdmc.ui.printer("Downloading backup file %s...\n" % backupname) + backupfile = self.rdmc.app.post_handler(backuplocation, postdata, service=True, silent=True) + + if backupfile: + if (backupfile.status != 200) and backupfile.read != "": + if "Invalid Session" in backupfile.read: + raise SessionExpired("Invalid session. Please logout and log back in or include credentials.") + self.rdmc.ui.printer("Download complete.\n") + outfile = open(backupname, "wb") + outfile.write(backupfile.ori) + outfile.close() + else: + raise NoContentsFoundForOperationError("Unable to download file.\n") + + def restoreserver(self, options, skey): + """Use a .bak file to restore a server + + :param options: command options + :type options: list. + :param skey: sessionkey of the currently logged in server + :type skey: str. + """ + + select = "HpeiLOBackupRestoreService." + + if options.filename: + filename = options.filename[0] + else: + files = [] + files = [f for f in os.listdir(".") if os.path.isfile(f) and f.endswith(".bak")] + if files and len(files) > 1: + raise InvalidFileInputError( + "More than one .bak file found in " + "the current directory. Please specify " + "a file using the -f option." + ) + elif not files: + raise InvalidFileInputError( + "No .bak file found in current " "directory. Please specify a file using the -f option." + ) + else: + filename = files[0] + + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + service = results.resp.dict + else: + raise NoContentsFoundForOperationError("%s not found.It may not " "be available on this system." % select) + restorelocation = service["HttpPushUri"] + postdata = [] + + with open(filename, "rb") as fle: + bakfile = fle.read() + postdata.append(("sessionKey", skey)) + if options.fpass: + postdata.append(("password", options.fpass)) + postdata.append(("file", (filename, bakfile, "application/octet-stream"))) + if isinstance(skey, bytes): + skey = skey.decode("utf-8") + resp = self.rdmc.app.post_handler( + restorelocation, + postdata, + service=False, + silent=True, + headers={"Cookie": "sessionKey=" + skey}, + ) + + if not resp.status == 200: + resp_ori = resp.ori + if isinstance(resp_ori, bytes): + resp_ori = resp_ori.decode("utf-8") + if resp_ori == "invalid_restore_password": + raise UploadError( + "Invalid or no password supplied during restore. Please " + "supply the password used during creation of the backup file." + ) + else: + raise UploadError("Error while uploading the backup file.") + else: + self.rdmc.ui.printer( + "Restore in progress. iLO will be unresponsive while the " + "restore completes.\nYour session will be terminated.\n" + ) + self.auxcommands["logout"].run("") + + def ilobackuprestorevalidation(self, options): + """factory defaults validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + subcommand_parser = customparser.add_subparsers(dest="command") + subcommand_parser.required = True + backup_help = "Create a backup of a server. This option is iLO5 Onwards" + # backup sub-parser + backup_parser = subcommand_parser.add_parser( + "backup", + help=backup_help, + description=backup_help + "\n\texample: backuprestore backup " "--f --filepass ", + formatter_class=RawDescriptionHelpFormatter, + ) + self.cmdbase.add_login_arguments_group(backup_parser) + + backup_parser.add_argument( + "-f", + "--filename", + dest="filename", + help="Use this flag to specify which backup file to restore. By " + "default the commmand will try to find a .bak file in the current " + "working directory.", + action="append", + default=None, + ) + backup_parser.add_argument( + "--filepass", + dest="fpass", + help="Optionally use the provided password when creating the " + "backup file. The same password must be used for restoring.", + default=None, + ) + + restore_help = "Restore a server with backup file. This option is for iLO5 Onwards" + # backup sub-parser + restore_parser = subcommand_parser.add_parser( + "restore", + help=restore_help, + description=restore_help + "\n\texample: backuprestore restore " "--f --filepass ", + formatter_class=RawDescriptionHelpFormatter, + ) + self.cmdbase.add_login_arguments_group(restore_parser) + + restore_parser.add_argument( + "-f", + "--filename", + dest="filename", + help="Use this flag to specify which backup file to restore. By " + "default the commmand will try to find a .bak file in the current " + "working directory.", + action="append", + default=None, + ) + restore_parser.add_argument( + "--filepass", + dest="fpass", + help="Optionally use the provided password when creating the " + "backup file. The same password must be used for restoring.", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloFederationCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloFederationCommand.py new file mode 100644 index 0000000..b545c50 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloFederationCommand.py @@ -0,0 +1,537 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Add Federation Command for rdmc""" + + +from argparse import Action, RawDescriptionHelpFormatter + +from redfish.ris.ris import SessionExpired +from redfish.ris.rmc_helper import IdTokenError + +try: + from rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ResourceExists, + ReturnCodes, + UsernamePasswordRequiredError, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ResourceExists, + ReturnCodes, + UsernamePasswordRequiredError, + ) + +__subparsers__ = ["add", "modify", "changekey", "delete"] + + +class _FederationParse(Action): + def __init__(self, option_strings, dest, nargs, **kwargs): + super(_FederationParse, self).__init__(option_strings, dest, nargs, **kwargs) + + def __call__(self, parser, namespace, values, option_strings): + """Federation privileges option helper""" + + privkey = { + 1: "LoginPriv", + 2: "RemoteConsolePriv", + 3: "UserConfigPriv", + 4: "iLOConfigPriv", + 5: "VirtualMediaPriv", + 6: "VirtualPowerAndResetPriv", + 7: "HostNICConfigPriv", + 8: "HostBIOSConfigPriv", + 9: "HostStorageConfigPriv", + 10: "SystemRecoveryConfigPriv", + } + + for priv in next(iter(values)).split(","): + try: + priv = int(priv) + except ValueError: + try: + parser.error("Invalid privilege entered: %s. Privileges must " "be numbers." % priv) + except: + raise InvalidCommandLineErrorOPTS("") + + try: + if not isinstance(namespace.optprivs, list): + namespace.optprivs = list() + if option_strings.startswith("--add"): + namespace.optprivs.append({privkey[priv]: True}) + elif option_strings.startswith("--remove"): + namespace.optprivs.append({privkey[priv]: False}) + except KeyError: + try: + parser.error( + "Invalid privilege entered: %s. Number does not " "match an available privlege." % priv + ) + except: + raise InvalidCommandLineErrorOPTS("") + + +class IloFederationCommand: + """Add a new ilo federation to the server""" + + def __init__(self): + self.ident = { + "name": "ilofederation", + "usage": None, + "description": "View, Add, Remove and Modify iLO Federation accoutns based on the " + "sub-command used.\nTo view help on specific sub-commands run: ilofederation " + " -h\n\nExample: ilofederation add -h\n" + "NOTE 1: By default only the login privilege is added to the newly created\n\t\t" + 'federation group with role "ReadOnly" in iLO 5 and no privileges in iLO 4.\n\t' + "NOTE 2: Federation credentials are case-sensitive.", + "summary": "Adds / deletes an iLO federation group on the currently logged in server.", + "aliases": [], + "auxcommands": [], + } + + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main addfederation function + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + body = dict() + try: + ident_subparser = False + for cmnd in __subparsers__: + if cmnd in line: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + ident_subparser = True + break + if not ident_subparser: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line, default=True) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.ilofederationvalidation(options) + + redfish = self.rdmc.app.monolith.is_redfish + path = self.rdmc.app.typepath.defs.federationpath + results = self.rdmc.app.get_handler(path, service=True, silent=True).dict + + if redfish: + if "Members" in results: + results = results["Members"] + else: + results = list() + else: + if "Member" in results["links"]: + results = results["links"]["Member"] + else: + results = list() + + mod_fed = None + path = None + for indx, acct in enumerate(results): + fed = self.rdmc.app.get_handler( + acct[self.rdmc.app.typepath.defs.hrefstring], service=True, silent=True + ).dict + try: + if hasattr(options, "fedname"): + if fed["Name"].lower() == options.fedname.lower(): + if redfish: + path = acct["@odata.id"] + else: + path = acct["href"] + mod_fed = fed + elif options.command == "default": + results[indx] = fed + else: + raise KeyError + except KeyError: + continue + else: + if mod_fed: + break + + if mod_fed: + if options.command.lower() == "add": + raise ResourceExists("Federation name %s is already in use." % options.fedname) + else: + if options.command.lower() != "add" and options.command.lower() != "default": + raise InvalidCommandLineError("Unable to find the specified federation %s." % options.fedname) + + if options.command.lower() == "add": + privs = self.getprivs(options) + path = self.rdmc.app.typepath.defs.federationpath + + body = {"Name": options.fedname, "Key": options.fedkey} + if privs: + body.update({"Privileges": privs}) + self.addvalidation(options.fedname, options.fedkey, results) + + if path and body: + resp = self.rdmc.app.post_handler(path, body, silent=False, service=False) + + if resp and resp.dict: + if "resourcealreadyexist" in str(resp.dict).lower(): + raise ResourceExists("") + + elif options.command.lower() == "changekey": + try: + newkey = options.fedkey + except: + raise InvalidCommandLineError("Invalid number of parameters.") + + body = {"Key": newkey} + + if path and body: + self.rdmc.app.patch_handler(path, body, service=True) + else: + raise NoContentsFoundForOperationError("Unable to find " "the specified federation.") + elif options.command.lower() == "modify": + if options.optprivs: + body.update({"Privileges": {}}) + if any( + priv for priv in options.optprivs if "SystemRecoveryConfigPriv" in priv + ) and "SystemRecoveryConfigPriv" not in list(self.getsesprivs().keys()): + raise IdTokenError( + "The currently logged in federation must have The System " + "Recovery Config privilege to add the System Recovery " + "Config privilege." + ) + privs = self.getprivs(options) + body["Privileges"] = privs + + self.rdmc.app.patch_handler(path, body) + + elif options.command.lower() == "delete": + if path: + self.rdmc.app.delete_handler(path) + else: + if len(results) == 0: + self.rdmc.ui.printer("No iLO Federation accounts found.\n") + else: + self.rdmc.ui.printer("iLO Federation Id list with Privileges:\n") + if options.json: + outdict = dict() + for fed in sorted(results, key=lambda k: k["Name"]): + outdict[fed["Name"]] = fed["Privileges"] + self.rdmc.ui.print_out_json_ordered(outdict) + else: + for fed in sorted(results, key=lambda k: k["Name"]): + privstr = "" + privs = fed["Privileges"] + for priv in privs: + privstr += priv + "=" + str(privs[priv]) + "\n" + self.rdmc.ui.printer("\nName=%s:\n%s" % (fed["Name"], privstr)) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def getprivs(self, options): + """find and return the privileges to set + :param options: command line options + :type options: list. + """ + sesprivs = self.getsesprivs() + setprivs = {} + availableprivs = self.getsesprivs(availableprivsopts=True) + + if "UserConfigPriv" not in list(sesprivs.keys()): + raise IdTokenError( + "The currently logged in federation does not have the Config" + "Privilege and cannot add or modify federations." + ) + + if options.optprivs: + for priv in options.optprivs: + priv = next(iter(list(priv.keys()))) + if not options.user or not options.password: + if priv == "SystemRecoveryConfigPriv" and self.rdmc.app.current_client.base_url == "blobstore://.": + raise UsernamePasswordRequiredError( + "Privilege %s need username and password to be specified." % priv + ) + if priv not in availableprivs: + raise IncompatibleiLOVersionError("Privilege %s is not available on this " "iLO version." % priv) + + if all(priv.values() for priv in options.optprivs): + if ( + any(priv for priv in options.optprivs if "SystemRecoveryConfigPriv" in priv) + and "SystemRecoveryConfigPriv" not in sesprivs.keys() + ): + raise IdTokenError( + "The currently logged in account must have The System " + "Recovery Config privilege to add the System Recovery " + "Config privilege." + ) + else: + setprivs = {} + for priv in options.optprivs: + setprivs.update(priv) + + return setprivs + + def getsesprivs(self, availableprivsopts=False): + """Finds and returns the current session's privileges + :param availableprivsopts: return available privileges + :type availableprivsopts: boolean. + """ + if self.rdmc.app.current_client: + sespath = self.rdmc.app.current_client.session_location + sespath = ( + self.rdmc.app.current_client.default_prefix + + sespath.split(self.rdmc.app.current_client.default_prefix)[-1] + ) + + ses = self.rdmc.app.get_handler(sespath, service=False, silent=True) + + if ses.status != 200: + raise SessionExpired("Invalid session. Please logout and " "log back in or include credentials.") + + sesprivs = { + "HostBIOSConfigPriv": True, + "HostNICConfigPriv": True, + "HostStorageConfigPriv": True, + "LoginPriv": True, + "RemoteConsolePriv": True, + "SystemRecoveryConfigPriv": True, + "UserConfigPriv": True, + "VirtualMediaPriv": True, + "VirtualPowerAndResetPriv": True, + "iLOConfigPriv": True, + } + if "Oem" in ses.dict: + sesoemhp = ses.dict["Oem"][self.rdmc.app.typepath.defs.oemhp] + if "Privileges" in list(sesoemhp.keys()): + sesprivs = sesoemhp["Privileges"] + availableprivs = list(sesprivs.keys()) + keepprivs = dict() + for priv, val in sesprivs.items(): + if val: + keepprivs[priv] = sesprivs[priv] + sesprivs = keepprivs + else: + sesprivs = None + + if availableprivsopts: + return availableprivs + else: + return sesprivs + + def addvalidation(self, username, key, feds): + """add validation function + :param username: username to be added + :type username: str. + :param key: key to be added + :type key: str. + :param feds: list of federation accounts + :type feds: list. + """ + + if len(username) >= 32: + raise InvalidCommandLineError("User name exceeds maximum length.") + elif len(key) >= 32 or len(key) <= 7: + raise InvalidCommandLineError("Password is invalid length.") + + def ilofederationvalidation(self, options): + """addfederation validation function + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + @staticmethod + def options_addprivs_argument_group(parser): + """Define optional arguments group + :param parser: The parser to add the addprivs option group to + :type parser: ArgumentParser/OptionParser + """ + parser.add_argument( + "--addprivs", + dest="optprivs", + nargs="*", + action=_FederationParse, + type=str, + help="Optionally include this flag if you wish to specify " + "which privileges you want added to the iLO federation. This overrides the default of " + "duplicating privileges of the currently logged in federation on the new federation. " + "Pick privileges from the privilege list in the above help text. EX: --addprivs=1,2,4", + default=None, + ) + + @staticmethod + def options_removeprivs_argument_group(parser): + """Additional argument + :param parser: The parser to add the removeprivs option group to + :type parser: ArgumentParser/OptionParser + """ + + parser.add_argument( + "--removeprivs", + dest="optprivs", + nargs="*", + action=_FederationParse, + type=str, + help="Optionally include this flag if you wish to specify " + "which privileges you want removed from the iLO federation. This overrides the default" + " of duplicating privileges of the currently logged in federation on the new " + "federation. Pick privileges from the privilege list in the above help text. " + "EX: --removeprivs=1,2,4", + default=None, + ) + + def definearguments(self, customparser): + """Wrapper function for new command main function + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + subcommand_parser = customparser.add_subparsers(dest="command") + privilege_help = ( + "\n\nPRIVILEGES:\n\t1: Login\n\t2: Remote Console\n\t3: User Config\n\t4:" + " iLO Config\n\t5: Virtual Media\n\t6: Virtual Power and Reset\n\n\tiLO 5 added " + "privileges:\n\t7: Host NIC Config\n\t8: Host Bios Config\n\t9: Host Storage Config" + "\n\t10: System Recovery Config" + ) + # default sub-parser + default_parser = subcommand_parser.add_parser( + "default", + help="Running without any sub-command will return all federation group information " + " on the currently logged in server.", + ) + default_parser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + self.cmdbase.add_login_arguments_group(default_parser) # add sub-parser + add_help = ( + "Adds an iLO federation group to the currently logged in server. Federation " + 'group privileges may be specified with\n"--addprivs". If a federation key ' + "is not " + "provided, the user will be prompted to provide one prior to account creation." + ) + add_parser = subcommand_parser.add_parser( + __subparsers__[0], + help=add_help, + description=add_help + + "\n\tilofederation add [FEDERATIONNAME] [FEDERATIONKEY] " + + privilege_help + + "\n\tilofederation add newilofedname thisfedkey --addprivs 1,3,4", + formatter_class=RawDescriptionHelpFormatter, + ) + add_parser.add_argument( + "fedname", + help="Federation name of the federation group to add.", + type=str, + metavar="FEDERATION NAME", + ) + add_parser.add_argument( + "fedkey", + help="Federation key of the federation group to add.", + type=str, + metavar="FEDERATION KEY", + ) + self.options_addprivs_argument_group(add_parser) + self.cmdbase.add_login_arguments_group(add_parser) + + modify_help = "Modify the privileges on an existing federation group." + modify_parser = subcommand_parser.add_parser( + __subparsers__[1], + help=modify_help, + description=modify_help + "\n\nTo add privileges:\n\tilofederation modify " + "[FEDNAME] --addprivs \n\nTo remove privileges:\n\t" + "ilofederation modify [FEDNAME] --removeprivs \n\n" + privilege_help, + formatter_class=RawDescriptionHelpFormatter, + ) + modify_parser.add_argument( + "fedname", + help="The federation name of the iLO account to modify.", + metavar="FEDERATION NAME", + type=str, + ) + self.options_addprivs_argument_group(modify_parser) + self.options_removeprivs_argument_group(modify_parser) + self.cmdbase.add_login_arguments_group(modify_parser) + + # changepass sub-parser + changekey_help = "Change the key of an iLO federation group on the currently logged in " "server." + changekey_parser = subcommand_parser.add_parser( + __subparsers__[2], + help=changekey_help, + description=changekey_help + "\n\nexample:ilofederation changekey [FEDNAME] [NEWFEDKEY]", + formatter_class=RawDescriptionHelpFormatter, + ) + changekey_parser.add_argument( + "fedname", + help="The iLO federation account to be updated with a new federation key (password).", + metavar="FEDERATION NAME", + type=str, + ) + changekey_parser.add_argument( + "fedkey", + help="The federation key (password) to be altered for the selected iLO federation " + " account. If you do not include a federation key, you will be prompted to enter one.", + metavar="FEDERATION KEY", + type=str, + nargs="?", + default="", + ) + self.cmdbase.add_login_arguments_group(changekey_parser) + + # delete sub-parser + delete_help = "Deletes the provided iLO user account on the currently logged in server." + delete_parser = subcommand_parser.add_parser( + __subparsers__[3], + help=delete_help, + description=delete_help + "\n\nexample: ilofederation delete fedname", + formatter_class=RawDescriptionHelpFormatter, + ) + delete_parser.add_argument( + "fedname", + help="The iLO federation account to delete.", + metavar="FEDERATION NAME", + type=str, + ) + self.cmdbase.add_login_arguments_group(delete_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloLicenseCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloLicenseCommand.py new file mode 100644 index 0000000..c1c6526 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloLicenseCommand.py @@ -0,0 +1,317 @@ +### +# Copyright 2016-2022 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Add License Command for rdmc""" + +try: + from rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + PathUnavailableError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + ReturnCodes, + InvalidCommandLineErrorOPTS, + PathUnavailableError, + IncompatibleiLOVersionError, + ) + +from redfish.ris import rmc_helper + + +class IloLicenseCommand: + """Add an iLO license to the server""" + + def __init__(self): + self.ident = { + "name": "ilolicense", + "usage": None, + "description": "Set an iLO license on the current logged in server.\n\t", + "summary": "Adds an iLO license key to the currently logged in server.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main ilolicense Function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("Provide required argument") + + self.addlicensevalidation(options) + + code = self.ilolicenseworkerfunction(options, args) + + self.cmdbase.logout_routine(self, options) + # Return code + return code + + def ilolicenseworkerfunction(self, options, args): + """ + Ilolicense worker function. It calls appropriate function. + :param options: command line options + :type options: list. + :param args: command line args + :type args: string. + """ + path = self.rdmc.app.typepath.defs.addlicensepath + if options.check_license: + self.check_license(options, path) + return ReturnCodes.SUCCESS + if options.confirm: + res = self.confirm_license(options, path) + if res: + return ReturnCodes.SUCCESS + else: + return ReturnCodes.ILO_LICENSE_ERROR + if options.check_state: + if self.rdmc.app.typepath.defs.isgen10: + result = self.get_license(options, path) + state = result.dict["ConfirmationRequest"]["EON"]["State"] + self.rdmc.ui.print_out_json("State: " + state) + if state == "confirmed": + self.rdmc.ui.printer("License is confirmed\n") + if state == "unconfirmed": + self.rdmc.ui.printer("License is not confirmed\n") + if state == "unlicensed": + self.rdmc.ui.printer("Server is unlicensed\n") + if state == "evaluation": + self.rdmc.ui.printer("Server is in evaluation mode\n") + return ReturnCodes.SUCCESS + else: + self.rdmc.ui.printer("Feature supported only for Gen 10 and above\n") + return ReturnCodes.SUCCESS + if options.license_key: + return_code = self.license_key(options, path, args) + return return_code + if options.uninstall_license: + return_code = self.uninstall_license(options, path) + return return_code + if ( + len(args) == 0 + and options.license_key is None + and options.check_license is None + and options.check_state is False + and options.uninstall_license is False + ): + result = self.get_license(options, path) + self.print_license_info(result.dict) + return ReturnCodes.SUCCESS + if ( + len(args) == 1 + and options.license_key is None + and options.check_license is None + and options.check_state is False + and options.uninstall_license is False + ): + return_code = self.license_key(options, path, args) + return return_code + + def print_license_info(self, results): + """ + Prints the license info + """ + for key, value in results.items(): + if "@odata" not in key: + if type(value) is dict: + self.print_license_info(value) + else: + self.rdmc.ui.printer(key + ":" + str(value) + "\n") + + def uninstall_license(self, options, path): + """ + Deletes the license + """ + if self.rdmc.app.typepath.defs.isgen10: + path = path + "1/" + else: + path = path + "/1" + try: + results = self.rdmc.app.delete_handler(path, silent=True) + if results.status == 404: + raise PathUnavailableError("License is not installed") + # return ReturnCodes.SUCCESS + if results.status == 403: + self.rdmc.ui.error("Insufficient Privilege to uninstall license") + return ReturnCodes.RIS_MISSING_ID_TOKEN + if results.status == 400: + self.rdmc.ui.printer("There is no license available to uninstall\n") + return ReturnCodes.SUCCESS + if results.status == 200: + self.rdmc.ui.printer("Uninstalled license successfully\n") + return ReturnCodes.SUCCESS + except rmc_helper.IloLicenseError: + self.rdmc.ui.error("Error Occured while Uninstall") + return ReturnCodes.ILO_LICENSE_ERROR + except IncompatibleiLOVersionError: + self.rdmc.ui.error("iLO FW version on this server doesnt support this operation") + return ReturnCodes.INCOMPATIBLE_ILO_VERSION_ERROR + + def license_key(self, options, path, args): + """ + Installs the license + """ + if options.license_key is not None: + if options.license_key[0] is not None: + body = {"LicenseKey": "%s" % options.license_key[0]} + else: + self.rdmc.ui.printer("Provide license key to install\n") + if len(args) == 1 and options.license_key is None: + body = {"LicenseKey": "%s" % args[0]} + try: + results = self.rdmc.app.post_handler(path, body) + if results.status == 201: + return ReturnCodes.SUCCESS + except rmc_helper.IloLicenseError: + self.rdmc.ui.error("Error Occured while install") + return ReturnCodes.ILO_LICENSE_ERROR + except rmc_helper.IdTokenError: + self.rdmc.ui.error("Insufficient Privilege to update license") + return ReturnCodes.RIS_MISSING_ID_TOKEN + + def check_license(self, options, path): + """ + Checks and Displays the license + """ + if self.rdmc.app.typepath.defs.isgen10: + if options.check_license[0] is not None: + result = self.get_license(options, path) + + if result.dict["ConfirmationRequest"]["EON"]["LicenseKey"] == options.check_license[0]: + self.rdmc.ui.printer("Matched. Provided key is installed on this server\n") + else: + self.rdmc.ui.printer("Provided key is not installed on this server\n") + else: + self.rdmc.ui.printer("Provide license key to check\n") + else: + self.rdmc.ui.printer("Feature supported only on gen 10 and above\n") + + def confirm_license(self, options, path): + """ + Confirm and Displays the license + """ + uri = path + "1" + "/Actions/HpeiLOLicense.ConfirmLicense" + contentsholder = {} + if options.issueto: + contentsholder["IssuedTo"] = options.issueto + try: + if self.rdmc.opts.verbose: + self.rdmc.ui.printer("HpeiLOLicense path and payload: %s, %s\n" % (uri, contentsholder)) + results = self.rdmc.app.post_handler(uri, contentsholder) + if results.status == 200: + self.rdmc.ui.printer("iLO License successfully confirmed.\n") + return True + else: + self.rdmc.ui.printer( + "iLO License confirmation failed. " + "Kindly check if the iLO is in factory mode or the license is advanced.\n" + ) + return False + except: + self.rdmc.ui.printer( + "iLO License confirmation failed. " + "Kindly check if the iLO is in factory mode or the license is advanced.\n" + ) + return False + + def get_license(self, options, path): + """ + Gets the license + """ + if self.rdmc.app.typepath.defs.isgen10: + path = path + "1/" + else: + path = path + "/1" + results = self.rdmc.app.get_handler(path, silent=True) + if results.status == 200: + return results + + def addlicensevalidation(self, options): + """ilolicense validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--install", + dest="license_key", + action="append", + help="""Installs the given normal or premium license""", + default=None, + ) + customparser.add_argument( + "--uninstall", + help="""Deletes the installed license""", + action="store_true", + dest="uninstall_license", + ) + customparser.add_argument( + "--check", + dest="check_license", + help="""Lists the specified license""", + action="append", + default=None, + ) + customparser.add_argument( + "--check_confirm", + dest="check_state", + action="store_true", + help="Checks the confirmed state and displays it", + ) + customparser.add_argument( + "--confirm", + dest="confirm", + action="store_true", + help="Confirms the license", + ) + customparser.add_argument( + "--issueto", + dest="issueto", + help="Confirms the license for issuer", + default=None, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloResetCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloResetCommand.py new file mode 100644 index 0000000..63db9db --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/IloResetCommand.py @@ -0,0 +1,137 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""iLO Reset Command for rdmc""" + +from redfish.ris.rmc_helper import IloResponseError + +try: + from rdmc_helper import ( + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + + +class IloResetCommand: + """Reset iLO on the server that is currently logged in""" + + def __init__(self): + self.ident = { + "name": "iloreset", + "usage": None, + "description": "Reset iLO on the current logged in" " server.\n\tExample: iloreset", + "summary": "Reset iLO on the current logged in server.", + "aliases": [], + "auxcommands": [], + } + + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main iLO reset worker function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.iloresetvalidation(options) + + self.rdmc.ui.warn( + "\nAfter iLO resets, the session will be terminated." + "\nPlease wait for iLO to initialize completely before logging " + "in again.\nThis process may take up to 3 minutes to complete.\n\n" + ) + + select = "/redfish/v1/Managers/1/" + results = self.rdmc.app.get_handler(select, silent=True, service=True).dict + try: + results = results + except: + pass + + if results: + post_path = results["Actions"]["#Manager.Reset"]["target"] + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + bodydict = results + + try: + for item in bodydict["Actions"]: + if "Reset" in item: + if self.rdmc.app.typepath.defs.isgen10: + action = item.split("#")[-1] + else: + action = "Reset" + + post_path = bodydict["Actions"][item]["target"] + break + except: + action = "Reset" + + body = {"Action": action} + + postres = self.rdmc.app.post_handler(post_path, body, silent=True, service=True) + if postres.status == 200: + self.rdmc.ui.printer("A management processor reset is in progress.\n") + else: + self.rdmc.ui.error("An error occured during iLO reset.\n") + raise IloResponseError("") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def iloresetvalidation(self, options): + """reboot method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/LogconfigCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/LogconfigCommand.py new file mode 100644 index 0000000..4d7689d --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/LogconfigCommand.py @@ -0,0 +1,809 @@ +### +# Copyright 2025 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Command for configuring logging options""" +import json +import logging +import logging.config +import os + +try: + # Try top-level imports first (VMware packaging, flattened installs) + from rdmc_helper import LOGGER, InvalidCommandLineError, ReturnCodes + from logging_config_path import get_logging_config_path + from debug_utils import ( + set_file_handlers_level, + set_named_handler_level_if_exists, + update_config_handlers_levels, + update_config_loggers_levels, + set_runtime_logger_levels, + update_config_file_rotation_settings, + get_config_file_rotation_settings, + validate_rotation_parameters, + ) +except ImportError: + # Fallback to package-qualified imports (standard pip/development installs) + from ilorest.rdmc_helper import LOGGER, InvalidCommandLineError, ReturnCodes + from ilorest.logging_config_path import get_logging_config_path + from ilorest.debug_utils import ( + set_file_handlers_level, + set_named_handler_level_if_exists, + update_config_handlers_levels, + update_config_loggers_levels, + set_runtime_logger_levels, + update_config_file_rotation_settings, + get_config_file_rotation_settings, + validate_rotation_parameters, + ) + + +class LogconfigCommand: + """Command to configure logging options""" + + def __init__(self): + self.ident = { + "name": "logconfig", + "usage": None, + "description": ( + "Configure logging options for iLOREST\n\n\t" + "Example:\n\tilorest logconfig --enable-debug --logdir=/custom/path\n\t" + 'ilorest logconfig --logdir="C:\\path with spaces"\n\t' + "ilorest logconfig --enable-debug\n\t" + "ilorest logconfig --disable-debug\n\t" + "ilorest logconfig --log_file_size=5MB --log_retention_count=5\n\t" + "ilorest logconfig --log_file_size=10MB --log_retention_count=3\n\t" + "ilorest logconfig --show" + ), + "summary": "Configure logging options such as debug mode, log directory, and file rotation.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + self.logging_config_path = get_logging_config_path() + + def parse_file_size(self, size_str): + """Parse file size string in MB format only + + :param size_str: size string (e.g., "5MB", "10mb", "1.5MB") + :type size_str: str + :returns: size in bytes + :rtype: int + :raises InvalidCommandLineError: if the size format is invalid + """ + if not isinstance(size_str, str): + size_str = str(size_str) + size_str = size_str.strip().upper() + + # Check if it ends with MB + if size_str.endswith("MB"): + try: + mb_value = float(size_str[:-2]) + if mb_value <= 0: + raise InvalidCommandLineError("File size must be a positive number") + return int(mb_value * 1024 * 1024) # Convert MB to bytes + except ValueError: + raise InvalidCommandLineError("Invalid MB format. Use format like '5MB' or '1.5MB'") + else: + # Only MB format is supported + raise InvalidCommandLineError("Invalid file size format. Use MB format only (e.g., 5MB, 10MB, 1.5MB)") + + def load_logging_config(self): + """Load logging configuration from JSON file + + :returns: dict containing logging configuration + """ + try: + if os.path.exists(self.logging_config_path): + with open(self.logging_config_path, "r") as config_file: + return json.load(config_file) + else: + # Return default configuration if file doesn't exist + return {"debug": False, "logdir": None} + except (json.JSONDecodeError, IOError) as ex: + LOGGER.warning(f"Failed to load logging config: {str(ex)}. Using defaults.") + return {"debug": False, "logdir": None} + + def save_logging_config(self, config_data): + """Save logging configuration to JSON file + + :param config_data: dictionary containing configuration to save + :type config_data: dict + """ + try: + # Ensure directory exists + config_dir = os.path.dirname(self.logging_config_path) + if not os.path.exists(config_dir): + os.makedirs(config_dir) + + with open(self.logging_config_path, "w") as config_file: + json.dump(config_data, config_file, indent=2) + + LOGGER.info(f"Logging configuration saved to: {self.logging_config_path}") + except IOError as ex: + raise InvalidCommandLineError(f"Failed to save logging config: {str(ex)}") + + def update_logging_config_value(self, key, value): + """Update a specific value in the logging configuration file + + :param key: configuration key to update + :type key: str + :param value: new value for the configuration key + :type value: any + :raises InvalidCommandLineError: if the key is not present in logging configuration + """ + # Load current configuration + logging_config = self.load_logging_config() + + # Check if the key exists in the configuration + if key not in logging_config: + raise InvalidCommandLineError( + f"Configuration parameter '{key}' not found in logging configuration file. " + f"Please ensure the parameter is defined in {self.logging_config_path}" + ) + + # Update the specific key + logging_config[key] = value + + # Save updated configuration + self.save_logging_config(logging_config) + + LOGGER.info(f"Updated logging config: {key} = {value}") + + def update_logging_config_logdir(self, logdir_path): + """Update log directory in the logging configuration file and apply to handlers + + :param logdir_path: new log directory path + :type logdir_path: str + """ + # Use the load/save helpers so behavior is consistent with other updates + try: + config_data = self.load_logging_config() + + # Ensure config_data is a dict + if not isinstance(config_data, dict): + raise InvalidCommandLineError("Loaded logging config is not a JSON object") + + # Store the logdir exactly as provided by the user + config_data["logdir"] = logdir_path + + # Update file handler paths if they exist. + # Preserve template-style filenames that use '%(logdir)s' so runtime + # substitution still works. For handlers with hardcoded absolute + # paths, move only the basename into the new directory. + handlers = config_data.get("handlers", {}) + for handler_name, handler_config in handlers.items(): + if not isinstance(handler_config, dict): + continue + + # Only consider handlers that have a 'filename' key or are FileHandlers + original_filename = handler_config.get("filename") + if original_filename: + try: + if "%(logdir)s" in original_filename: + # Leave template intact; runtime will substitute using config['logdir'] + pass + else: + # Replace directory part, keep basename + filename_only = os.path.basename(original_filename) + handler_config["filename"] = os.path.join(logdir_path, filename_only) + except Exception: + # skip modifying the handler if something goes wrong + continue + + # Persist using the command's save helper (handles directories and errors) + self.save_logging_config(config_data) + + # Try to apply to current session (best-effort) + # First ensure the log directory exists and resolve template variables + try: + # Create the directory if it doesn't exist (for immediate session application) + resolved_logdir = os.path.abspath(logdir_path) if not os.path.isabs(logdir_path) else logdir_path + if not os.path.exists(resolved_logdir): + os.makedirs(resolved_logdir, exist_ok=True) + # Create a copy of config for immediate application with resolved template variables + session_config = json.loads(json.dumps(config_data)) # Deep copy + # Replace %(logdir)s template with actual path in all handlers + for handler_name, handler_config in session_config.get("handlers", {}).items(): + if isinstance(handler_config, dict) and "filename" in handler_config: + filename = handler_config["filename"] + if "%(logdir)s" in filename: + # Replace template with actual resolved path + handler_config["filename"] = filename.replace("%(logdir)s", resolved_logdir) + logging.config.dictConfig(session_config) + LOGGER.info(f"Applied new log directory configuration: {logdir_path}") + except Exception as ex: + LOGGER.warning(f"Failed to apply logging config to current session: {str(ex)}") + + LOGGER.info(f"Updated log directory in configuration: {logdir_path}") + + except InvalidCommandLineError: + # Re-raise known command errors + raise + except Exception as ex: + raise InvalidCommandLineError(f"Failed to update log directory in config: {str(ex)}") + + def update_logging_config_levels(self, debug_enabled): + """Update logging levels in the logging configuration file + + :param debug_enabled: whether debug logging should be enabled + :type debug_enabled: bool + """ + try: + log_level = "DEBUG" if debug_enabled else "INFO" + + # Update persistent configuration for handlers and loggers. + # Track update success and return False to caller if any write/update failed. + success = True + + try: + if debug_enabled: + # Set file handler to DEBUG to capture both debug and info logs + success = success and bool( + update_config_handlers_levels(self.logging_config_path, "DEBUG", handler_names=["file"]) + ) + # Set stdout to WARNING to keep console clean + success = success and bool( + update_config_handlers_levels(self.logging_config_path, "CRITICAL", handler_names=["stdout"]) + ) + success = success and bool(update_config_loggers_levels(self.logging_config_path, "DEBUG")) + + if not success: + # caller displays warning + return False + + # Apply runtime levels: root logger at DEBUG but ensure stdout handler remains WARNING + root_logger = logging.getLogger() + # Set module/root loggers to DEBUG + set_runtime_logger_levels(root_logger, logging.DEBUG, set_module_logger=LOGGER) + # Ensure stdout handler (if present) is left at CRITICAL + set_named_handler_level_if_exists(root_logger, "logconfig_stdout", logging.CRITICAL) + # Ensure file handlers accept DEBUG + set_file_handlers_level(root_logger, logging.DEBUG) + else: + # Turning debug off: set file handler to INFO, stdout to WARNING + success = success and bool( + update_config_handlers_levels(self.logging_config_path, "INFO", handler_names=["file"]) + ) + success = success and bool( + update_config_handlers_levels(self.logging_config_path, "CRITICAL", handler_names=["stdout"]) + ) + success = success and bool( + update_config_handlers_levels(self.logging_config_path, "ERROR", handler_names=["stderr"]) + ) + success = success and bool(update_config_loggers_levels(self.logging_config_path, "INFO")) + + if not success: + # caller displays warning + return False + + root_logger = logging.getLogger() + set_runtime_logger_levels(root_logger, logging.INFO, set_module_logger=LOGGER) + # Ensure stdout handler stays at CRITICAL + set_named_handler_level_if_exists(root_logger, "logconfig_stdout", logging.CRITICAL) + # Set file handlers to INFO + set_file_handlers_level(root_logger, logging.INFO) + + LOGGER.info(f"Updated logging configuration: levels set to {log_level}") + except Exception: + # Runtime application failed, but config file updates may have succeeded. + LOGGER.debug("Failed to update runtime handler levels after saving config") + # We consider runtime application failures non-fatal for persistence; return True + return True + + return True + except (json.JSONDecodeError, IOError) as ex: + # JSON IO exceptions are considered as failures to persist configuration + LOGGER.debug(f"Failed to update logging config due to JSON/IO error: {str(ex)}") + return False + + def update_logging_config_file_rotation(self, max_bytes=None, backup_count=None): + """Update file rotation settings in the logging configuration file + + :param max_bytes: maximum size of log file in bytes before rotation + :type max_bytes: int + :param backup_count: number of log files to retain during rotation (log retention count) + :type backup_count: int + """ + try: + # Use the utility function to update rotation settings + success = update_config_file_rotation_settings(self.logging_config_path, max_bytes, backup_count) + + if not success: + warning_msg = ( + "Failed to update file rotation settings." + "No changes were applied." + ) + print(warning_msg) + return False + + # Log the changes + if max_bytes is not None: + LOGGER.info(f"Updated maxBytes: {max_bytes}") + + if backup_count is not None: + LOGGER.info(f"Updated log retention count: {backup_count}") + + # Try to apply to current session (best-effort) + try: + config_data = self.load_logging_config() + + # Create a copy of config for immediate application + session_config = json.loads(json.dumps(config_data)) # Deep copy + + # Resolve %(logdir)s template if present + logdir = config_data.get("logdir", "./ilorest_logs") + resolved_logdir = os.path.abspath(logdir) if not os.path.isabs(logdir) else logdir + + for handler_name, handler_config in session_config.get("handlers", {}).items(): + if isinstance(handler_config, dict) and "filename" in handler_config: + filename = handler_config["filename"] + if "%(logdir)s" in filename: + handler_config["filename"] = filename.replace("%(logdir)s", resolved_logdir) + + logging.config.dictConfig(session_config) + LOGGER.info("Applied new file rotation configuration to current session") + except Exception as ex: + LOGGER.warning(f"Failed to apply logging config to current session: {str(ex)}") + + except InvalidCommandLineError: + # Re-raise known command errors + raise + except Exception as ex: + raise InvalidCommandLineError(f"Failed to update file rotation settings in config: {str(ex)}") + + def apply_global_logging_config(self): + """Apply logging configuration from logging config file to current session + + This method reads the logging configuration and applies the current + log levels to the session loggers. + """ + try: + with open(self.logging_config_path, "r") as config_file: + config_data = json.load(config_file) + + # Determine the desired runtime level from persistent config and apply via helper + log_level = config_data.get("loggers", {}).get("", {}).get("level", "INFO") + runtime_level = logging.DEBUG if log_level == "DEBUG" else logging.INFO + root_logger = logging.getLogger() + + # Apply runtime logger and handler levels consistently + try: + set_runtime_logger_levels(root_logger, runtime_level, set_module_logger=LOGGER) + except Exception: + # Fallback in the unlikely event helpers fail + LOGGER.setLevel(runtime_level) + root_logger.setLevel(runtime_level) + + except (json.JSONDecodeError, IOError, FileNotFoundError) as ex: + LOGGER.warning(f"Failed to apply logging config: {str(ex)}") + + def run(self, line, help_disp=False): + """Main logconfig worker function + + :param line: command line string + :type line: str. + """ + if help_disp: + print("logconfig: Configure persistent logging options.") + print("Usage: logconfig [--enable-debug | --disable-debug] [--logdir=PATH]") + print(" [--log_file_size=SIZE] [--log_retention_count=COUNT] [--show]") + print(" --enable-debug Enable debug logging globally for all commands") + print(" --disable-debug Disable debug logging globally for all commands") + print(" --logdir=PATH Set the directory for log files (use quotes for path)") + print(" --log_file_size=SIZE Set the maximum size of log files before rotation") + print(" Specify in MB format only (e.g., 1MB, 5MB, 10MB)") + print(" --log_retention_count=COUNT Set the number of log files to retain") + print(" --show Show current logging configuration") + print("") + print("Note: Use --enable-debug to enable or --disable-debug to disable persistent debug mode.") + print(" Without any flags, shows current status.") + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + + # Check for old debug syntax patterns + line_str = " ".join(line) if isinstance(line, list) else str(line) + if "--debug" in line_str.lower(): + if len(args) > 0 and args[0].lower() in ["true", "false"]: + raise InvalidCommandLineError( + f"Invalid argument '{args[0]}'. The --debug true/false syntax is no longer supported. " + "Use --enable-debug to enable or --disable-debug to disable debug logging." + ) + else: + raise InvalidCommandLineError( + "The --debug flag is no longer supported. " + "Use --enable-debug to enable or --disable-debug to disable debug logging." + ) + + # Check for unexpected positional arguments that might be from old syntax + if len(args) > 0 and args[0].lower() in ["true", "false"]: + raise InvalidCommandLineError( + f"Invalid argument '{args[0]}'. " + "Use --enable-debug to enable or --disable-debug to disable debug logging." + ) + + # Handle global --logdir flag + if hasattr(self.rdmc, "opts") and hasattr(self.rdmc.opts, "logdir") and self.rdmc.opts.logdir: + options.logdir = self.rdmc.opts.logdir + self.rdmc.opts.logdir = None + + # Handle equals format for logdir: --logdir=path + if "=" in line_str: + parts = line_str.split() + for part in parts: + if part.startswith("--logdir="): + options.logdir = part.split("=", 1)[1] + elif part.startswith("--log_file_size="): + try: + size_str = part.split("=", 1)[1] + options.log_file_size = self.parse_file_size(size_str) + except (ValueError, InvalidCommandLineError) as e: + raise InvalidCommandLineError(f"log_file_size error: {str(e)}") + elif part.startswith("--log_retention_count="): + try: + options.backup_count = int(part.split("=", 1)[1]) + except ValueError: + raise InvalidCommandLineError("log retention count must be a valid integer") + + # Workaround for logdir: if logdir is None but we have args that look like paths + if options.logdir is None and len(args) > 0: + for arg in args: + if os.path.isabs(arg) or "/" in arg or "\\" in arg: + options.logdir = arg + break + + except Exception as ex: + LOGGER.error(f"Failed to parse command arguments: {str(ex)}") + return ReturnCodes.GENERAL_ERROR + + logOutput = [] + + # Check if show flag was provided - only short-circuit when no action flags are given. + # If --show is combined with other flags (enable/disable/logdir/etc.) + # we should process the actions first, then display the configuration + if hasattr(options, "show") and options.show and not any( + [ + hasattr(options, "enable_debug") and options.enable_debug, + hasattr(options, "disable_debug") and options.disable_debug, + hasattr(options, "logdir") and options.logdir, + hasattr(options, "log_file_size") and options.log_file_size, + hasattr(options, "backup_count") and options.backup_count, + ] + ): + try: + with open(self.logging_config_path, "r") as config_file: + config_data = json.load(config_file) + + # Show key logging information + if "loggers" in config_data and "" in config_data["loggers"]: + log_level = config_data["loggers"][""]["level"] + debug_enabled = log_level == "DEBUG" + + if "logdir" in config_data: + print(f"Log Directory: {config_data['logdir']}") + + # Show file rotation settings for RotatingFileHandler + rotation_settings = get_config_file_rotation_settings(self.logging_config_path) + if rotation_settings: + for handler_name, settings in rotation_settings.items(): + max_bytes = settings.get("maxBytes", "Not set") + backup_count = settings.get("backupCount", "Not set") + print(f"Log File Rotation ({handler_name}):") + + # Display file size in MB format + if max_bytes != "Not set" and isinstance(max_bytes, (int, float)): + mb_size = max_bytes / (1024 * 1024) + if mb_size == int(mb_size): + size_display = f"{int(mb_size)} MB" + else: + size_display = f"{mb_size:.1f} MB" + print(f" Maximum file size: {size_display}") + else: + print(f" Maximum file size: {max_bytes}") + + print(f" Log retention count: {backup_count}") + + # Show handlers information + if "handlers" in config_data: + print("Active Levels:") + for handler_name, handler_config in config_data["handlers"].items(): + handler_level = handler_config.get("level", "INFO") + print(f" - {handler_name}: {handler_level}") + + except Exception as ex: + # ex prints cwd/logging_config.json if configuration file not found + LOGGER.debug(f"Error reading configuration: {str(ex)}") + print("JSON configuration file not found") + return ReturnCodes.SUCCESS + + # Check if enable-debug flag was provided + if hasattr(options, "enable_debug") and options.enable_debug: + debug_enabled = True + + # Update current session logging + LOGGER.setLevel(logging.DEBUG) + + # Also set the root logger to DEBUG to ensure all debug messages are captured + root_logger = logging.getLogger() + root_logger.setLevel(logging.DEBUG) + + LOGGER.debug("Debug logging is enabled for current session") + + # Update logging configuration file with new logging levels + try: + success = self.update_logging_config_levels(debug_enabled) + if success: + LOGGER.info("Debug logging has been enabled globally.") + LOGGER.info("Debug mode will persist for all future iLORest sessions.") + LOGGER.info("To disable debug mode, use: logconfig --disable-debug") + logOutput.append("Debug logging has been enabled globally.") + logOutput.append("Debug mode will persist for all future iLORest sessions.") + logOutput.append("To disable debug mode, use: logconfig --disable-debug") + else: + warning_msg = ( + "Failed to enable debug mode." + "No changes were applied." + ) + print(warning_msg) + except Exception as ex: + LOGGER.error(f"Failed to update logging config: {str(ex)}") + + # Check if disable-debug flag was provided + elif hasattr(options, "disable_debug") and options.disable_debug: + debug_enabled = False + + # Set loggers back to INFO level when debug is disabled + LOGGER.setLevel(logging.INFO) + + # Reset root logger to INFO + root_logger = logging.getLogger() + root_logger.setLevel(logging.INFO) + + LOGGER.info("Debug logging is disabled for current session") + + # Update logging configuration file with new logging levels + try: + success = self.update_logging_config_levels(debug_enabled) + if success: + LOGGER.info("Debug logging has been disabled globally.") + LOGGER.info("Debug mode is now turned off for all future iLORest sessions.") + LOGGER.info("To enable debug mode, use: logconfig --enable-debug") + logOutput.append("Debug logging has been disabled globally.") + logOutput.append("Debug mode is now turned off for all future iLORest sessions.") + logOutput.append("To enable debug mode, use: logconfig --enable-debug") + else: + warning_msg = ( + "Failed to disable debug mode." + "No changes were applied." + ) + print(warning_msg) + except Exception as ex: + LOGGER.error(f"Failed to update logging config: {str(ex)}") + return ReturnCodes.GENERAL_ERROR + + # If no specific action flags were provided and --show was not used, show current status + if not any( + [ + hasattr(options, "enable_debug") and options.enable_debug, + hasattr(options, "disable_debug") and options.disable_debug, + hasattr(options, "logdir") and options.logdir, + hasattr(options, "log_file_size") and options.log_file_size, + hasattr(options, "backup_count") and options.backup_count, + hasattr(options, "show") and options.show, + ] + ): + try: + with open(self.logging_config_path, "r") as config_file: + config_data = json.load(config_file) + + debug_enabled = False + if "loggers" in config_data and "" in config_data["loggers"]: + log_level = config_data["loggers"][""]["level"] + debug_enabled = log_level == "DEBUG" + + if debug_enabled: + logOutput.append("Debug logging currently enabled globally.") + logOutput.append("To disable persistent debug mode, use: logconfig --disable-debug") + else: + logOutput.append("Debug logging currently disabled globally.") + logOutput.append("To enable persistent debug mode, use: logconfig --enable-debug") + except Exception as ex: + LOGGER.warning(f"Failed to read logging config: {str(ex)}") + logOutput.append("Debug logging status unknown.") + logOutput.append("To enable persistent debug mode, use: logconfig --enable-debug") + + # Configure log directory + if hasattr(options, "logdir") and options.logdir: + # For directory creation and writability checks, resolve to absolute path + resolved_path = os.path.abspath(options.logdir) if not os.path.isabs(options.logdir) else options.logdir + + if not os.path.exists(resolved_path): + try: + os.makedirs(resolved_path, exist_ok=True) + LOGGER.info(f"Created log directory: {resolved_path}") + except OSError as ex: + raise InvalidCommandLineError(f"Failed to create log directory '{resolved_path}': {str(ex)}") + + # Verify directory is writable + if not os.access(resolved_path, os.W_OK): + raise InvalidCommandLineError(f"Log directory '{resolved_path}' is not writable") + + # Update current session logging configuration + if hasattr(self.rdmc, "config"): + self.rdmc.config.logdir = options.logdir + + # Update logging configuration file and apply to handlers + try: + self.update_logging_config_logdir(options.logdir) + logOutput.append(f"Log directory updated to: {options.logdir}") + logOutput.append("New log files will be written to the specified directory.") + except Exception as ex: + LOGGER.error(f"Failed to update log directory configuration: {str(ex)}") + return ReturnCodes.GENERAL_ERROR + + # Configure log file rotation settings + if (hasattr(options, "log_file_size") and options.log_file_size is not None) or ( + hasattr(options, "backup_count") and options.backup_count is not None + ): + + max_bytes = getattr(options, "log_file_size", None) + backup_count = getattr(options, "backup_count", None) + + # Parse file size if it's a string (from argparse) + if max_bytes is not None and isinstance(max_bytes, str): + try: + max_bytes = self.parse_file_size(max_bytes) + except InvalidCommandLineError: + raise + + # Validate input values using utility function + is_valid, error_message = validate_rotation_parameters(max_bytes, backup_count) + if not is_valid: + raise InvalidCommandLineError(error_message) + + try: + success = self.update_logging_config_file_rotation(max_bytes, backup_count) + + if success: + if max_bytes is not None: + # Display the size in MB format + mb_size = max_bytes / (1024 * 1024) + if mb_size == int(mb_size): + size_display = f"{int(mb_size)} MB" + else: + size_display = f"{mb_size:.1f} MB" + logOutput.append(f"Log file maximum size updated to: {size_display}") + + if backup_count is not None: + logOutput.append(f"Log retention count updated to: {backup_count}") + + logOutput.append("Log rotation settings have been updated.") + except Exception as ex: + LOGGER.error(f"Failed to update log rotation configuration: {str(ex)}") + return ReturnCodes.GENERAL_ERROR + + # Print summary + for msg in logOutput: + print(msg) + + # If the user requested --show along with action flags, display the + # current configuration now that we've processed the actions. + if hasattr(options, "show") and options.show: + try: + with open(self.logging_config_path, "r") as config_file: + config_data = json.load(config_file) + + # Show key logging information + if "loggers" in config_data and "" in config_data["loggers"]: + log_level = config_data["loggers"][""].get("level", "INFO") + debug_enabled = log_level == "DEBUG" + + if "logdir" in config_data: + print(f"Log Directory: {config_data['logdir']}") + + # Show file rotation settings for RotatingFileHandler + rotation_settings = get_config_file_rotation_settings(self.logging_config_path) + if rotation_settings: + for handler_name, settings in rotation_settings.items(): + max_bytes = settings.get("maxBytes", "Not set") + backup_count = settings.get("backupCount", "Not set") + print(f"Log File Rotation ({handler_name}):") + + if max_bytes != "Not set" and isinstance(max_bytes, (int, float)): + mb_size = max_bytes / (1024 * 1024) + if mb_size == int(mb_size): + size_display = f"{int(mb_size)} MB" + else: + size_display = f"{mb_size:.1f} MB" + print(f" Maximum file size: {size_display}") + else: + print(f" Maximum file size: {max_bytes}") + + print(f" Log retention count: {backup_count}") + + # Show handlers information + if "handlers" in config_data: + print("Active Levels:") + for handler_name, handler_config in config_data["handlers"].items(): + handler_level = handler_config.get("level", "INFO") + print(f" - {handler_name}: {handler_level}") + + except Exception as ex: + LOGGER.debug(f"Error reading configuration for --show after actions: {str(ex)}") + print("JSON configuration file not found") + return ReturnCodes.SUCCESS + + def definearguments(self, customparser): + """arguments for the logconfig command""" + if not customparser: + return + + # Debug control arguments + customparser.add_argument( + "--enable-debug", + dest="enable_debug", + action="store_true", + help=( + "Enable persistent debug logging for all commands. " + "If not provided, debug logging state remains unchanged." + ), + ) + + customparser.add_argument( + "--disable-debug", + dest="disable_debug", + action="store_true", + help=("Disable persistent debug logging for all commands."), + ) + + # Log directory argument + customparser.add_argument( + "--logdir", + dest="logdir", + help="Set the directory for log files and update logging configuration.", + metavar="PATH", + ) + + # Log file rotation argument + customparser.add_argument( + "--log_file_size", + dest="log_file_size", + type=str, + help="Set the maximum size of log files before rotation. " + "Specify in MB format only (e.g., 1MB, 5MB, 10MB).", + metavar="SIZE", + ) + + # Log retention count argument + customparser.add_argument( + "--log_retention_count", + dest="backup_count", + type=int, + help="Set the number of log files to retain during rotation.", + metavar="COUNT", + ) + + # Show current configuration + customparser.add_argument( + "--show", + dest="show", + action="store_true", + help="Show current logging configuration.", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/OneButtonEraseCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/OneButtonEraseCommand.py new file mode 100644 index 0000000..cfa5059 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/OneButtonEraseCommand.py @@ -0,0 +1,298 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Factory Defaults Command for rdmc""" +import time +from collections import OrderedDict + +import colorama +from six.moves import input + +try: + from rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + +CURSOR_UP_ONE = "\x1b[1A" +ERASE_LINE = "\x1b[2K" + + +class OneButtonEraseCommand: + """Backup and restore server using iLO's .bak file""" + + def __init__(self): + self.ident = { + "name": "onebuttonerase", + "usage": None, + "description": "Erase all iLO settings, Bios settings, User Data, and iLO Repository data." + "\n\tExample: onebuttonerase\n\n\tSkip the confirmation before" + " erasing system data.\n\texample: onebuttonerase --confirm\n\nWARNING: This " + "command will erase user data! Use with extreme caution! Complete erase can take" + " up to 24 hours to complete.", + "summary": "Performs One Button Erase on a system.", + "aliases": [], + "auxcommands": ["RebootCommand"], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main onebuttonerase function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if args: + raise InvalidCommandLineError("onebuttonerase command takes no arguments.") + + self.onebuttonerasevalidation(options) + + select = "ComputerSystem." + results = self.rdmc.app.select(selector=select) + + if self.rdmc.app.getiloversion() < 5.140: + raise IncompatibleiLOVersionError("One Button Erase is only available on iLO 5 1.40 " "and greater.") + try: + results = results[0].dict + except: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + if ( + results["Oem"]["Hpe"]["SystemROMAndiLOEraseStatus"] == "Idle" + and results["Oem"]["Hpe"]["UserDataEraseStatus"] == "Idle" + ): + post_path = None + body_dict = {"SystemROMAndiLOErase": True, "UserDataErase": True} + for item in results["Oem"]["Hpe"]["Actions"]: + if "SecureSystemErase" in item: + post_path = results["Oem"]["Hpe"]["Actions"][item]["target"] + break + + if options.confirm: + userresp = "erase" + else: + userresp = input( + 'Please type "erase" to begin erase process. Any other input will' + " cancel the operation. If you wish to skip this prompt add the --confirm flag: " + ) + + if userresp == "erase": + if post_path and body_dict: + self.rdmc.app.post_handler(post_path, body_dict) + self.rdmc.app.post_handler( + results["Actions"]["#ComputerSystem.Reset"]["target"], + {"ResetType": "ForceRestart"}, + ) + if not options.nomonitor: + self.monitor_erase(results["@odata.id"]) + return ReturnCodes.SUCCESS + else: + NoContentsFoundForOperationError("Unable to start One Button Erase.") + else: + self.rdmc.ui.printer("Canceling One Button Erase.\n") + return ReturnCodes.SUCCESS + else: + self.rdmc.ui.warn("System is already undergoing a One Button Erase process...\n") + if not options.nomonitor: + self.monitor_erase(results["@odata.id"]) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def monitor_erase(self, path): + """Monitor the One Button Erase progress + + :param path: Path to the one button monitor path + :type path: str. + """ + print_dict = { + "BIOSSettingsEraseStatus": "Bios Settings Erase:", + "iLOSettingsEraseStatus": "iLO Settings Erase:", + "ElapsedEraseTimeInMinutes": "Elapsed Time in Minutes:", + "EstimatedEraseTimeInMinutes": "Estimated Remaining Time in Minutes:", + "NVDIMMEraseStatus": "NVDIMM Erase:", + "NVMeDrivesEraseStatus": "NVMe Drive Erase:", + "SATADrivesEraseStatus": "SATA Drive Erase:", + "TPMEraseStatus": "TPM Erase:", + "SmartStorageEraseStatus": "Smart Storage Erase:", + "SystemROMAndiLOEraseStatus": "Bios and iLO Erase:", + "UserDataEraseStatus": "User Data Erase:", + } + colorama.init() + + self.rdmc.ui.printer("\tOne Button Erase Status\n") + self.rdmc.ui.printer("==========================================================\n") + results = self.rdmc.app.get_handler(path, service=True, silent=True) + counter = 0 + eraselines = 0 + while True: + if not (counter + 1) % 8: + results = self.rdmc.app.get_handler(path, service=True, silent=True) + print_data = self.gather_data(results.dict["Oem"]["Hpe"]) + + self.reset_output(eraselines) + + for key in list(print_data.keys()): + self.print_line(print_dict[key], print_data[key], counter) + if counter == 7: + counter = 0 + else: + counter += 1 + if all( + [ + print_data[key].lower() in ["completedwithsuccess", "completedwitherrors", "failed"] + for key in list(print_data.keys()) + if not key.lower() in ["elapsederasetimeinminutes", "estimatederasetimeinminutes"] + ] + ): + break + eraselines = len(list(print_data.keys())) + time.sleep(0.5) + colorama.deinit() + options = {} + self.cmdbase.logout_routine(self, options) + + def gather_data(self, resdict): + """Gather information on current progress from response + + :param resdict: response dictionary to parse + :type resdict: dict. + """ + retdata = OrderedDict() + data = [ + ("ElapsedEraseTimeInMinutes", None), + ("EstimatedEraseTimeInMinutes", None), + ( + "SystemROMAndiLOEraseComponentStatus", + ["BIOSSettingsEraseStatus", "iLOSettingsEraseStatus"], + ), + ( + "UserDataEraseComponentStatus", + [ + "NVDIMMEraseStatus", + "NVMeDrivesEraseStatus", + "SATADrivesEraseStatus", + "SmartStorageEraseStatus", + "TPMEraseStatus", + ], + ), + ] + for key, val in data: + if val: + if key == "SystemROMAndiLOEraseComponentStatus": + try: + resdict[key] + except KeyError: + retdata["SystemROMAndiLOEraseStatus"] = resdict["SystemROMAndiLOEraseStatus"] + elif key == "UserDataEraseComponentStatus": + try: + if not resdict[key]: + raise KeyError() + except KeyError: + retdata["UserDataEraseStatus"] = resdict["UserDataEraseStatus"] + for item in val: + try: + retdata[item] = resdict[key][item] + except KeyError: + pass + else: + try: + retdata[key] = resdict[key] + except KeyError: + pass + + return retdata + + def reset_output(self, numlines=0): + """reset the output for the next print""" + for _ in range(numlines): + self.rdmc.ui.printer(CURSOR_UP_ONE) + self.rdmc.ui.printer(ERASE_LINE) + + def print_line(self, pstring, value, ctr): + """print the line from system monitoring""" + pline = "%s %s" % (pstring, value) + + spinner = ["|", "/", "-", "\\"] + if str(value).lower() in ["initiated", "inprogress"]: + pline += "\t%s" % spinner[ctr % 4] + pline += "\n" + + self.rdmc.ui.printer(pline) + + def onebuttonerasevalidation(self, options): + """one button erase validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--nomonitor", + dest="nomonitor", + help="Optionally include this flag to skip monitoring of the one button erase process " + "and simply trigger the operation.", + action="store_true", + default=False, + ) + customparser.add_argument( + "--confirm", + dest="confirm", + help="Optionally include this flag to skip the confirmation prompt before starting One" + " Button Erase and begin the operation.", + action="store_true", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/RebootCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/RebootCommand.py new file mode 100644 index 0000000..662268d --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/RebootCommand.py @@ -0,0 +1,271 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Reboot Command for rdmc""" + +import time + +from six.moves import input + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + + +class RebootCommand: + """Reboot server that is currently logged in""" + + def __init__(self): + self.ident = { + "name": "reboot", + "usage": None, + "description": "Remotely control system power state commands such as, " + "\n\t1. Turning the system on.\n\t2. Turning the system off.\n\t3. Power " + "cycling/rebooting.\n\t4. Issuing a Non-Maskable Interrupt (NMI).\n\t5. Any " + "number of pre-defined operations through virtual power-button presses." + "\n\n\tNote: By default a force " + "restart will occur, if the system is in an applicable power state.\n\texample: " + "reboot On\n\n\tOPTIONAL PARAMETERS AND DESCRIPTIONS:" + "\n\tOn \t\t(Turns the system on.)\n\tForceOff " + "\t(Performs an immediate non-graceful shutdown.)" + "\n\tForceRestart \t(DEFAULT) (Performs" + " an immediate non-graceful shutdown,\n\t\t\t" + " followed by a restart of the system.)\n\tNmi " + "\t\t(Generates a Non-Maskable Interrupt to cause" + " an\n\t\t\t immediate system halt.)\n\tPushPowerButton " + "(Simulates the pressing of the physical power " + "button\n\t\t\t on this system.)\n\n\tOEM PARAMETERS AND" + " DESCRIPTIONS:\n\tPress\t\t(Simulates the pressing of the" + " physical power button\n\t\t\t on this system.)\n\t" + "PressAndHold\t(Simulates pressing and holding of the power" + " button\n\t\t\t on this systems.)\n\tColdBoot\t(Immidiately" + " Removes power from the server,\n\t\t\tfollowed by a restart" + " of the system)", + "summary": "Reboot operations for the current logged in server.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main reboot worker function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if len(args) < 2: + self.rebootvalidation(options) + else: + raise InvalidCommandLineError("Invalid number of parameters." " Reboot takes a maximum of 1 parameter.") + + if not args: + self.rdmc.ui.warn( + "\nAfter the server is rebooted the session will be terminated." + "\nPlease wait for the server to boot completely before logging in " + "again.\nRebooting server in 3 seconds...\n" + ) + time.sleep(3) + else: + self.printreboothelp(args[0]) + time.sleep(3) + + select = "ComputerSystem." + results = self.rdmc.app.select(selector=select) + oemlist = ["press", "pressandhold", "coldboot"] + + try: + results = results[0] + except: + pass + + if results: + put_path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("Unable to find %s" % select) + + if args and args[0].lower() in oemlist: + bodydict = results.resp.dict["Oem"][self.rdmc.app.typepath.defs.oemhp] + + if args[0].lower() == "coldboot": + resettype = "SystemReset" + else: + resettype = "PowerButton" + else: + bodydict = results.resp.dict + resettype = "Reset" + + try: + for item in bodydict["Actions"]: + if resettype in item: + if self.rdmc.app.typepath.defs.isgen10: + action = item.split("#")[-1] + else: + action = resettype + + put_path = bodydict["Actions"][item]["target"] + break + except: + action = resettype + + if args and not args[0].lower() == "forcerestart": + if args[0].lower() == "on": + body = {"Action": action, "ResetType": "On"} + elif args[0].lower() == "forceoff": + body = {"Action": action, "ResetType": "ForceOff"} + elif args[0].lower() == "nmi": + body = {"Action": action, "ResetType": "Nmi"} + elif args[0].lower() == "pushpowerbutton": + body = {"Action": action, "ResetType": "PushPowerButton"} + elif args[0].lower() == "press": + body = {"Action": action, "PushType": "Press"} + elif args[0].lower() == "pressandhold": + body = {"Action": action, "PushType": "PressAndHold"} + elif args[0].lower() == "coldboot": + body = {"Action": action, "ResetType": "ColdBoot"} + else: + body = {"Action": action, "ResetType": "ForceRestart"} + + if options.confirm is True: + count = 0 + while True: + count = count + 1 + confirmation = input("Rebooting system, type yes to confirm or no to abort:") + if confirmation.lower() in ("no", "n") or count > 3: + self.rdmc.ui.printer("Aborting reboot.\n") + return ReturnCodes.SUCCESS + elif confirmation.lower() in ("yes", "y"): + break + + self.rdmc.app.post_handler(put_path, body) + + if not options.nologout: + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def printreboothelp(self, flag): + """helper print function for reboot function + + :param flag: command line option + :type flag: str + """ + if flag.upper() == "ON": + self.rdmc.ui.warn( + "\nThe server is powering on. Note, the current session will be " + "terminated.\nPlease wait for the server to boot completely before logging in " + "again.\nTurning on the server in 3 seconds...\n" + ) + elif flag.upper() == "FORCEOFF": + self.rdmc.ui.warn( + "\nThe server is powering off. Note, the current session will be " + "terminated.\nPlease wait for the server to power off completely before logging " + "in again.\nPowering off the server in 3 seconds...\n" + ) + elif flag.upper() == "FORCERESTART": + self.rdmc.ui.warn( + "\nForcing a server restart. Note, the current session will be " + "terminated.\nPlease wait for the server to boot completely before logging in " + "again.\nRebooting the server in 3 seconds...\n" + ) + elif flag.upper() == "NMI": + self.rdmc.ui.warn( + "\nA non-maskable interrupt will be issued to this server. Note, the " + "current session will be terminated.\nIssuing interrupt in 3 seconds...\n" + ) + elif flag.upper() == "PUSHPOWERBUTTON" or flag.upper() == "PRESS": + self.rdmc.ui.warn( + "\nThe server power button will be virtually pushed; the reaction " + "will be dependent on the current system power and boot state. Note the current " + "session will be terminated.\nVirtual push in 3 seconds...\n" + ) + elif flag.upper() == "COLDBOOT": + self.rdmc.ui.warn( + "\nThe server will be cold boot, power cycled. Note, the current " + "session will be terminated.\nPlease wait for the server to boot completely " + "before logging in again.\nCold Booting server in 3 seconds...\n" + ) + elif flag.upper() == "PRESSANDHOLD": + self.rdmc.ui.warn( + "\nThe server will be forcefully powered off. Note, the current " + "session will be terminated.\nPlease wait for the server to power off " + "completely before logging in again.\nPressing and holding the power button in " + "3 seconds...\n" + ) + else: + raise InvalidCommandLineError("Invalid parameter: '%s'. Please run" " 'help reboot' for parameters." % flag) + + def rebootvalidation(self, options): + """reboot method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--confirm", + dest="confirm", + action="store_true", + help="Optionally include to request user confirmation for reboot.", + default=False, + ) + customparser.add_argument( + "--nologout", + dest="nologout", + action="store_true", + help="Optionally include to not to logout of iLO connection.", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SendTestCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SendTestCommand.py new file mode 100644 index 0000000..caef9a1 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SendTestCommand.py @@ -0,0 +1,155 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""SendTest Command for rdmc""" + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + + +class SendTestCommand: + """Send syslog test to the logged in server""" + + def __init__(self): + self.ident = { + "name": "sendtest", + "usage": None, + "description": "Send syslog test to the " + "current logged in server.\n\tExample: sendtest syslog\n\n" + "\tSend alert mail test to the current logged in server.\n\t" + "sendtest alertmail\n\n\tSend SNMP test alert " + "to the current logged in server.\n\texample: sendtest snmpalert", + "summary": "Command for sending various tests to iLO.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main SentTestCommand function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if not len(args) == 1: + raise InvalidCommandLineError("sendtest command takes only one argument.") + + body = None + path = None + actionitem = None + + self.sendtestvalidation(options) + + if args[0].lower() == "snmpalert": + select = self.rdmc.app.typepath.defs.snmpservice + actionitem = "SendSNMPTestAlert" + elif args[0].lower() == "alertmail": + select = self.rdmc.app.typepath.defs.managernetworkservicetype + actionitem = "SendTestAlertMail" + elif args[0].lower() == "syslog": + select = self.rdmc.app.typepath.defs.managernetworkservicetype + actionitem = "SendTestSyslog" + else: + raise InvalidCommandLineError("sendtest command does not have " "parameter %s." % args[0]) + + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("%s not found.It may not " "be available on this system." % select) + + bodydict = results.resp.dict + + try: + if "Actions" in bodydict: + for item in bodydict["Actions"]: + if actionitem in item: + if self.rdmc.app.typepath.defs.isgen10: + actionitem = item.split("#")[-1] + + path = bodydict["Actions"][item]["target"] + break + else: + for item in bodydict["Oem"][self.rdmc.app.typepath.defs.oemhp]["Actions"]: + if actionitem in item: + if self.rdmc.app.typepath.defs.isgen10: + actionitem = item.split("#")[-1] + + path = bodydict["Oem"][self.rdmc.app.typepath.defs.oemhp]["Actions"][item]["target"] + break + + body = {"Action": actionitem} + except: + body = {"Action": actionitem, "Target": "/Oem/Hp"} + + self.rdmc.app.post_handler(path, body) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def sendtestvalidation(self, options): + """sendtestvalidation method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerCloneCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerCloneCommand.py new file mode 100644 index 0000000..bd2bf61 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerCloneCommand.py @@ -0,0 +1,2696 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Server Clone Command for rdmc""" + +import getpass +import json +import os +import os.path +import re +import sys +import time +import traceback +from argparse import RawDescriptionHelpFormatter +from collections import OrderedDict + +import jsonpath_rw +from six.moves import input + +import redfish.ris +from redfish.ris.rmc_helper import IdTokenError, IloResponseError, InstanceNotFoundError +from redfish.ris.utils import iterateandclear, json_traversal_delete_empty +from redfish.ris import SessionExpired + +try: + from rdmc_helper import ( + LOGGER, + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + InvalidKeyError, + NoChangesFoundOrMadeError, + NoContentsFoundForOperationError, + NoDifferencesFoundError, + ResourceExists, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + LOGGER, + Encryption, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + InvalidKeyError, + NoChangesFoundOrMadeError, + NoContentsFoundForOperationError, + NoDifferencesFoundError, + ResourceExists, + ReturnCodes, + ) + +# default file name +__DEFAULT__ = "

    " +__MINENCRYPTIONLEN__ = 16 +__clone_file__ = "ilorest_clone.json" +__tmp_clone_file__ = "_ilorest_clone_tmp" +__tmp_sel_file__ = "_ilorest_sel_tmp" +__error_log_file__ = "clone_error_logfile.log" +__changelog_file__ = "changelog.log" +__tempfoldername__ = "serverclone_data" + + +def log_decor(func): + """ + Log Decorator function + :param func: function to be decorated + :type func: class method + """ + + def func_wrap(*args, **kwargs): + """ + Log Decorator function wrapper + :param args: function to be decorated + :type args: * + :param kwargs: keyword arguments + :type kwargs: * + """ + try: + return func(*args, **kwargs) + except IdTokenError as excp: + sys.stderr.write( + "You have logged into iLO with an account which has insufficient " + " user access privileges to modify properties in this type:\n %s\n" % (excp) + ) + if args[0].rdmc.opts.debug: + logging( + func.func_name if hasattr(func, "func_name") else str(func), + traceback.format_exc(), + excp, + args, + ) + except NoDifferencesFoundError as excp: + sys.stderr.write("No differences identified from current configuration.\n") + if args[0].rdmc.opts.debug: + logging( + func.func_name if hasattr(func, "func_name") else str(func), + traceback.format_exc(), + excp, + args, + ) + except ExitHandler: + sys.stderr.write("Exiting Serverclone command...no further changes have been implemented.\n") + raise NoChangesFoundOrMadeError("Exiting Serverclone command...no further changes have been implemented.\n") + + except Exception as excp: + sys.stderr.write("Unhandled exception(s) occurred: %s\n" % str(excp)) + if not args[0].rdmc.opts.debug: + args[0].rdmc.ui.error( + "Check the ServerClone Error logfile for further info: %s\n" % __error_log_file__, + excp, + ) + logging( + func.func_name if hasattr(func, "func_name") else str(func), + traceback.format_exc(), + excp, + args, + ) + + return func_wrap + + +def logging(command, _trace, error, _args): + """ + Handler for error logging + :param command: command in error + :type command: method identifier + :param _trace: traceback data + :type _trace: object + :param error: error logged (simplified version) + :type error: string + :param _agrs: array of methods arguments + :type _args: array + """ + + sys.stderr.write( + "An error occurred: %s. Check the ServerClone Error logfile " + "for further info: %s\n" % (error, __error_log_file__) + ) + sys.stderr.write("Logging error to '%s'.\n" % __error_log_file__) + with open(__error_log_file__, "a+") as efh: + efh.write(command + ":\n") + efh.write("Simplified Error: " + str(error) + "\n") + efh.write("Traceback:\n") + efh.write(str(_trace) + "\n") + efh.write("Args State in: '%s'.\n" % command) + i = 0 + for _arg in _args: + efh.write("Arg %s: %s\n" % (str(i), _arg)) + i += 1 + efh.write("\n") + + +class ExitHandler(Exception): + pass + + +class ServerCloneCommand: + """Constructor""" + + def __init__(self): + self.ident = { + "name": "serverclone", + "usage": None, + "description": "Clone from a server or restore to a server a JSON formatted file " + "containing the configuration settings of a system's iLO and Bios configuration.\n" + "SSA controller settings and logical configurations can be optionally be included for " + "save.\nTo view help on specific sub-commands run: serverclone -h\n\n" + "Example: serverclone

    ": + user_counter = user_counter + 1 + else: + self.c_log_write( + "Kindly modify the password from

    to valid pass in the clone file for the user :" + + user["UserName"] + + "\n" + ) + if fed_data: + for fedkey in fed_data.items(): + fedacct = fedkey[1] + if not fedacct["FederationKey"] == "

    ": + fed_counter = fed_counter + 1 + else: + self.c_log_write( + "Kindly modify the password from

    to valid pass in the clone file for the user :" + + fedacct["FederationName"] + + "\n" + ) + else: + self.rdmc.ui.printer("No federation accounts available\n") + if user_counter == len(data.items()) or fed_counter == len(fed_data.items()): + self.loadfunction(options) + self.load_storageclone(options) + else: + self.rdmc.ui.error( + "Please modify the default password

    to a valid password " + "in the clone json file and rerun the load command" + ) + + elif not options.iLOSSA: + for useracct in data.items(): + user = useracct[1] + if not user["Password"] == "

    ": + user_counter = user_counter + 1 + else: + self.c_log_write( + "Kindly modify the password from

    to valid pass in the clone file for the user :" + + user["UserName"] + + "\n" + ) + if fed_data: + for fedkey in fed_data.items(): + fedacct = fedkey[1] + if not fedacct["FederationKey"] == "

    ": + fed_counter = fed_counter + 1 + else: + self.c_log_write( + "Kindly modify the password from

    to valid pass in the clone file for the user :" + + fedacct["FederationName"] + + "\n" + ) + else: + self.rdmc.ui.printer("No federation accounts available\n") + if user_counter == len(data.items()) or fed_counter == len(fed_data.items()): + self.loadfunction(options) + else: + self.rdmc.ui.error( + "Please modify the default password

    to a valid password " + "in the clone json file and rerun the load command" + ) + else: + self.load_storageclone(options) + + self.cleanup() + # self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + @log_decor + def file_handler(self, filename, operation, options, data=None, sk=None): + """ + Wrapper function to read or write data to a respective file + :param data: data to be written to output file + :type data: container (list of dictionaries, dictionary, etc.) + :param file: filename to be written + :type file: string (generally this should be self.clone_file or tmp_clone_file + :param operation: file operation to be performed + :type operation: string ('w+', 'a+', 'r+') + :param sk: sort keys flag + :type sk: boolean + :param options: command line options + :type options: attribute + :returns: json file data + """ + writeable_ops = ["w", "w+", "a", "a+"] + + fdata = None + + try: + if operation in writeable_ops: + if options.encryption: + with open(filename, operation + "b") as outfile: + outfile.write( + Encryption().encrypt_file( + json.dumps( + data, + indent=2, + cls=redfish.ris.JSONEncoder, + sort_keys=sk, + ), + options.encryption, + ) + ) + else: + with open(filename, operation) as outfile: + outfile.write( + json.dumps( + data, + indent=2, + cls=redfish.ris.JSONEncoder, + sort_keys=sk, + ) + ) + else: + if options.encryption: + with open(filename, operation + "b") as file_handle: + fdata = json.loads(Encryption().decrypt_file(file_handle.read(), options.encryption)) + else: + with open(filename, operation) as file_handle: + fdata = json.loads(file_handle.read()) + except Exception as excp: + self.cleanup() + raise InvalidFileInputError( + "Unable to open file: %s.\nVerify the file location " "and the file has a valid JSON format.\n" % excp + ) + else: + return fdata + + @log_decor + def controller_id(self, options): + """ + Get iLO types from server and save storageclone URL get Controller + :parm options: command line options + :type options: attribute + :returns: returns list + """ + self.auxcommands["select"].selectfunction("StorageControllerCollection.") + ctr_content = self.rdmc.app.getprops() + ctrl_data = [] + all_ctrl = dict() + + for ct_controller in ctr_content: + path = ct_controller["Members"] + for i in path: + res = i["@odata.id"] + if self.rdmc.opts.verbose and not self.load: + sys.stdout.write("Saving properties of type %s \t\n" % res) + ctrl_data.append(res) + ctrl_id_url = res + "?$expand=." + get_ctr = self.rdmc.app.get_handler(ctrl_id_url, silent=True, service=True).dict + ctrl_id = get_ctr["@odata.id"].split("/") + ctrl_id = ctrl_id[8] + get_ctr = self.rdmc.app.removereadonlyprops(get_ctr, False, True) + all_ctrl[get_ctr["Name"]] = get_ctr + return all_ctrl + + @log_decor + def get_volume(self, options): + """ + Get iLO types from server and save storageclone URL get volumes + :parm options: command line options + :type options: attribute + :returns: returns list + """ + self.auxcommands["select"].selectfunction("VolumeCollection.") + vol_content = self.rdmc.app.getprops() + vol_data = [] + all_vol = dict() + for st_volume in vol_content: + path = st_volume["Members"] + for i in path: + res = i["@odata.id"] + if self.rdmc.opts.verbose: + sys.stdout.write("Saving properties of type %s \t\n" % res) + vol_data.append(res) + vol_id_url = res + "?$expand=." + get_vol = self.rdmc.app.get_handler(vol_id_url, silent=True, service=True).dict + # print("Assigned drive", get_vol["Links"]["Drives"]) + get_vol = self.rdmc.app.removereadonlyprops(get_vol, False, True) + all_vol[get_vol["Name"]] = get_vol + return all_vol + + @log_decor + def save_storageclone(self, options): + """ + Get iLO types from server and save storageclone URL + :parm options: command line options + :type options: attribute + :returns: returns dict and save json format + """ + + self.auxcommands["select"].selectfunction("StorageCollection.") + st_content = self.rdmc.app.getprops() + st_flag = False + all_stgcntrl = {} + de_url = [] + if options.storageclonefilename: + outfilename = options.storageclonefilename[0] + else: + outfilename = "ilorest_storage_clone.json" + out_file = open(outfilename, "w") + self.rdmc.ui.printer("Saving of storage clone file to '%s'...... \n" % out_file.name) + for st_controller in st_content: + path = st_controller["Members"] + for i in path: + res = i["@odata.id"] + if "DE" in res: + de_url.append(res) + if self.rdmc.opts.verbose: + sys.stdout.write("Saving properties of type %s \t\n" % res) + st_flag = True + storage_id_url = res + "?$expand=." + get_storage = self.rdmc.app.get_handler(storage_id_url, silent=True, service=True).dict + vol = self.get_volume(options) + ctr = self.controller_id(options) + get_storage = self.rdmc.app.removereadonlyprops(get_storage, False, True) + # print("controller id", ctr["SATA Storage Controller"]["Id"]) + # Controller and volume update abve method called + get_storage["Controllers"]["Members"].append(ctr) + del get_storage["Controllers"]["Members"][0] + get_storage["Volumes"]["Members"].append(vol) + del get_storage["Volumes"]["Members"][0] + all_stgcntrl[get_storage["Id"]] = get_storage + else: + continue + if st_flag: + json.dump(all_stgcntrl, out_file, indent=6) + out_file.close() + self.rdmc.ui.printer("Saving of storage clone file to '%s' is complete.\n" % out_file.name) + else: + sys.stdout.write("\nNo Storage controllers found which is redfish enabled \n") + + @log_decor + def get_drives_capacityt(self, options): + self.auxcommands["select"].selectfunction("Drive.") + drive_content = self.rdmc.app.getprops() + drive_list = [] + loc_list = [] + for st_drive in drive_content: + drive_cap = st_drive["CapacityBytes"] + drive_list.append(drive_cap) + drive_loc = st_drive["PhysicalLocation"]["PartLocation"]["ServiceLabel"] + loc = drive_loc.split(":") + drv_loc = str(loc[1].split("=")[1] + ":" + loc[2].split("=")[1] + ":" + loc[3].split("=")[1]) + loc_list.append(drv_loc) + return drive_list, loc_list + + @log_decor + def controller_get_id(self, options): + self.auxcommands["select"].selectfunction("StorageController.") + ctr_content = self.rdmc.app.getprops() + for ct_data in ctr_content: + ct_id = ct_data["Id"] + return ct_id + + @log_decor + def get_storage_de_id(self, options): + self.auxcommands["select"].selectfunction("StorageCollection.") + st_content = self.rdmc.app.getprops() + try: + for st_controller in st_content: + path = st_controller["Members"] + for i in path: + res = i["@odata.id"].split("/") + res = res[6] + if "DE" in res: + res + return res + except: + self.rdmc.ui.printer("Storage id not available") + + @log_decor + def load_storageclone(self, options): + """ + Load iLO Server storage URL. + :parm ilovoldata: iLO Server Volume(logical drive) payload to be loaded + :type ilovoldata: dict of values + """ + if options.storageclonefilename: + filename = options.storageclonefilename[0] + else: + filename = "ilorest_storage_clone.json" + while True: + ans = input( + "A configuration file %s containing configuration changes will be " + "applied to this iLO server resulting in system setting changes for " + "Storage urls like controllers, volume, deletion and " + "rearrangement of logical disks...etc. Please confirm you acknowledge " + "and would like to perform this operation now? (y/n)\n" % filename + ) + if ans.lower() == "y": + self.rdmc.ui.printer("Proceeding with Storage Clone Load Operation...\n") + break + elif ans.lower() == "n": + self.rdmc.ui.warn("Aborting load operation. No changes made to the server.\n") + return ReturnCodes.NO_CHANGES_MADE_OR_FOUND + else: + self.rdmc.ui.warn("Invalid input...\n") + + ctr_id = self.controller_get_id(options) + print("Controller id", ctr_id) + st_id_de = self.get_storage_de_id(options) + print("Storage ID only DE", st_id_de) + with open(filename, "r+b") as file_handle: + if options.encryption: + data = json.load(Encryption().decrypt_file(file_handle.read(), options.encryption)) + else: + data = json.load(file_handle) + for k, v in data.items(): + while True: + ans = input("Do you want to delete current %s controller? (y/n)\n" % k) + if ans.lower() == "y": + self.rdmc.ui.printer("Proceeding with Deletion DE storage...\n") + break + elif ans.lower() == "n": + self.rdmc.ui.warn("Aborting load operation. No changes made to the server.\n") + return ReturnCodes.NO_CHANGES_MADE_OR_FOUND + else: + self.rdmc.ui.warn("Invalid input...\n") + self.auxcommands["factoryresetcontroller"].run("--reset_type resetall --storageid " + k) + if self.rdmc.opts.verbose: + self.rdmc.ui.printer("Deleted Volume using factoryresetcontroller %s command.\n" % k) + v_data = v["Volumes"]["Members"][0] + for i, j in v_data.items(): + # print("Key", i) + writecachepolicy = j["WriteCachePolicy"] + readcachepolicy = j["ReadCachePolicy"] + displayname = j["DisplayName"] + raidtype = j["RAIDType"] + capacitybytes = j["CapacityBytes"] + dr, loc = self.get_drives_capacityt(options) + # print("------", dr, loc) + i = 0 + for d in dr: + print("drives list", d) + if int(d) > int(capacitybytes): + create_val = ( + raidtype + + " " + + str(loc[i]) + + " " + + "DisplayName " + + displayname + + " --iOPerfModeEnabled False" + + " --ReadCachePolicy " + + readcachepolicy + + " --WriteCachePolicy " + + writecachepolicy + + " --controller=" + + ctr_id + + " --capacitybytes " + + str(capacitybytes) + ) + print("createvolume properties", create_val) + self.auxcommands["createvolume"].run("volume " + create_val) + break + elif int(d) < int(capacitybytes): + print("Implementation logic", d) + break + else: + sys.stdout.write("Drive capacity is lesser than present drives") + i = i + 1 + + @log_decor + def getilotypes(self, options): + """ + Get iLO types from server and return a list of types + :parm options: command line options + :type options: attribute + :returns: returns list of types + """ + supported_types_dict = { + "ManagerAccount": ["4", "5", "6", "7"], + "AccountService": ["4", "5", "6", "7"], + "Bios": ["4", "5", "6", "7"], + "Manager": ["4", "5", "6", "7"], + "SNMP": ["4", "5", "6", "7"], + "iLOLicense": ["4", "5", "6", "7"], + "ManagerNetworkService": ["4", "5", "6", "7"], + "EthernetNetworkInterface": ["4", "5", "6", "7"], + "iLODateTime": ["4", "5", "6", "7"], + "iLOFederationGroup": ["4", "5", "6", "7"], + "iLOSSO": ["4", "5", "6", "7"], + "ESKM": ["4", "5", "6", "7"], + "ComputerSystem": ["4", "5", "6", "7"], + # "EthernetInterface": ["4", "5", "6"], + "ServerBootSettings": ["4", "5", "6", "7"], + "SecureBoot": ["4", "5", "6", "7"], + "SmartStorageConfig": ["5"], + "HpSmartStorage": ["4"], + "HpeSmartStorage": ["5"], + } + types_accepted = set() + if self.save: + if options.noBIOS: + self.rdmc.ui.warn("Bios configuration will be excluded.\n") + del supported_types_dict["Bios"] + if options.all: + self.rdmc.ui.printer("Note: Smart storage configuration and Storage included all.\n") + self.save_storageclone(options) + if not options.iLOSSA and not options.all: + self.rdmc.ui.printer("Note: Smart storage configuration will not be included.\n") + self.rdmc.ui.warn("Smart storage configuration will not be included.") + del supported_types_dict["SmartStorageConfig"] + del supported_types_dict["HpSmartStorage"] + del supported_types_dict["HpeSmartStorage"] + unsupported_types_list = [ + "Collection", + "PowerMeter", + "BiosMapping", + "Controller", + ] + + # supported types comparison + # types_accepted = set() + for _type in sorted(set(self.rdmc.app.types("--fulltypes"))): + if _type[:1].split(".")[0] == "#": + _type_mod = _type[1:].split(".")[0] + else: + _type_mod = _type.split(".")[0] + for stype in supported_types_dict: + if stype.lower() in _type_mod.lower(): + found = False + for ustype in unsupported_types_list: + if ustype.lower() in _type_mod.lower(): + found = True + break + if not found: + if self.curr_iloversion in supported_types_dict[stype]: + types_accepted.add(_type) + + return sorted(types_accepted) + + def loadfunction(self, options): + """ + Main load function. Handles SSO and SSL/TLS Certificates, kickoff load + helper, load of patch file, get server status and issues system reboot + and iLO reset after completion of all post and patch commands. + :param options: command line options + :type options: attribute + """ + + reset_confirm = True + + if not options.autocopy: + while True: + ans = input( + "A configuration file '%s' containing configuration changes will be " + "applied to this iLO server resulting in system setting changes for " + "BIOS, ethernet controllers, disk controllers, deletion and " + "rearrangement of logical disks...etc. Please confirm you acknowledge " + "and would like to perform this operation now? (y/n)\n" % self.clone_file + ) + if ans.lower() == "y": + self.rdmc.ui.printer("Proceeding with ServerClone Load Operation...\n") + break + elif ans.lower() == "n": + self.rdmc.ui.warn("Aborting load operation. No changes made to the server.\n") + return ReturnCodes.NO_CHANGES_MADE_OR_FOUND + else: + self.rdmc.ui.warn("Invalid input...\n") + + self._fdata = self.file_handler(self.clone_file, operation="r+", options=options) + self.loadhelper(options) + if self.rdmc.app.getiloversion() < 7: + self.load_idleconnectiontime(options) + # data = self._fdata["#ManagerAccount.v1_3_0.ManagerAccount"] + # if "#HpeiLOFederationGroup.v2_0_0.HpeiLOFederationGroup" in self._fdata: + # fed_data = self._fdata["#HpeiLOFederationGroup.v2_0_0.HpeiLOFederationGroup"] + # for fedkey in fed_data.items(): + # self.load_federation( + # fedkey[1], + # "#HpeiLOFederationGroup.v2_0_0.HpeiLOFederationGroup", + # "/redfish/v1/Managers/1/FederationGroups", + # options, + # ) + # else: + # self.rdmc.ui.printer("No federation accounts to load\n") + # pass + fed_data = dict() + federation_key = None + data = dict() + manager_key = None + for key in self._fdata: + if "ManagerAccount" in key: + data = self._fdata[key] + manager_key = key + if "HpeiLOFederationGroup" in key: + fed_data = self._fdata[key] + federation_key = key + if fed_data: + for fedkey in fed_data.items(): + self.load_federation( + fedkey[1], + federation_key, + "/redfish/v1/Managers/1/FederationGroups", + options, + ) + else: + self.rdmc.ui.printer("No federation accounts to load\n") + pass + for useracct in data.items(): + self.load_accounts(useracct[1], manager_key, "/redfish/v1/AccountService/Accounts", options) + + self.loadpatch(options) + self.getsystemstatus(options) + + if not options.autocopy: + while True: + ans = input("The system is ready to be reset. Perform a reset now? (y/n)\n") + if ans.lower() == "n": + reset_confirm = False + self.rdmc.ui.printer("Aborting Server Reboot and iLO reset...\n") + break + elif ans.lower() == "y": + break + else: + self.rdmc.ui.warn("Invalid input...\n") + else: + if options.noautorestart: + reset_confirm = False + + if reset_confirm: + if self.rdmc.app.current_client.base_url: # reset process in remote mode + self.rdmc.ui.printer("Resetting the server...\n") + sys_url = "/redfish/v1/Systems/1/" + sysresults = self.rdmc.app.get_handler(sys_url, service=True, silent=True).dict + power_state = sysresults["PowerState"] + if power_state == "On": + self.auxcommands["reboot"].run("ColdBoot") # force restart, cold boot + elif power_state == "Off": + self.rdmc.ui.printer("System is on power off state, powering ON\n") + self.auxcommands["reboot"].run("On") + self.rdmc.ui.printer("Waiting 3 minutes for reboot to complete...\n") + time.sleep(180) + self.rdmc.ui.printer("Resetting iLO...\n") + self.auxcommands["iloreset"].run("") + self.rdmc.ui.printer("You will need to re-login to access this system...\n") + else: # reset process in local mode + self.rdmc.ui.printer("Resetting local iLO...\n") + self.auxcommands["iloreset"].run("") + self.rdmc.ui.printer("Your system may require a reboot...use at your discretion\n") + + else: + self.rdmc.ui.printer("Your system may require a reboot...use at your discretion\n") + + self.rdmc.ui.printer( + "Loading of clonefile '%s' to server is complete. Review the " + "changelog file '%s'.\n" % (self.clone_file, self.change_log_file) + ) + + def loadhelper(self, options): + """ + Helper function for loading which calls additional helper functions for + Server BIOS and Firmware compatibility, type compatibility, patch or + postability (special functions). Data deemed for exclusive patching + (through load) is written into a temporary file, which is deleted unless + archived for later use. + :param options: command line options + :type options: attribute + """ + data = list() + + server_avail_types = self.getilotypes(options) + if not server_avail_types: + raise NoContentsFoundForOperationError("Unable to Obtain iLO Types from server.") + + if "Comments" in list(self._fdata.keys()): + self.system_compatibility_check(self._fdata["Comments"], options) + del self._fdata["Comments"] + else: + raise InvalidFileInputError("Clone File '%s' does not include a valid 'Comments' " "dictionary.") + if options.ssocert: + self.load_ssocertificate() # check and load sso certificates + if options.tlscert: + self.load_tlscertificate() # check and load tls certificates + + typelist = [] + for _x in self._fdata: + for _y in server_avail_types: + _x1 = re.split("#|.", _x) + _y1 = re.split("#|.", _y) + if _x1[0] == "": + _x1.pop(0) + if _y1[0] == "": + _y1.pop(0) + if _x1[0] == _y1[0]: + _comp_tuple = self.type_compare(_x, _y) + if _comp_tuple[0] and _comp_tuple[1]: + self.rdmc.ui.printer("Type '%s' is compatible with this system.\n" % _x) + typelist.append(_x) + else: + self.rdmc.ui.warn( + "The type: '%s' isn't compatible with the type: '%s'" + "found on this system. Associated properties can not " + "be applied...Skipping\n" % (_x, _y) + ) + + for _type in typelist: + # Skipping cloning of Datetime temporarily. This is an iLO issue. + if _type == "#HpeiLODateTime.v2_0_0.HpeiLODateTime": + continue + singlet = True + thispath = next(iter(self._fdata[_type].keys())) + try: + root_path_comps = self.get_rootpath(thispath) + + multi_sel = self.rdmc.app.select( + _type.split(".")[0] + ".", + (self.rdmc.app.typepath.defs.hrefstring, root_path_comps[0] + "*"), + path_refresh=True, + ) + + curr_sel = self.rdmc.app.select( + _type.split(".")[0] + ".", + (self.rdmc.app.typepath.defs.hrefstring, thispath), + path_refresh=True, + ) + + except InstanceNotFoundError: + if "iLOFederationGroup" in _type: + pass + else: + curr_sel = self.rdmc.app.select(_type.split(".")[0] + ".") + + except Exception as excp: + self.rdmc.ui.error( + "Unable to find the correct path based on system " "type and clone file type: %s\n" % _type, + excp, + ) + continue + finally: + try: + if "multi_sel" in locals() and "curr_sel" in locals(): + if ( + len(multi_sel) > 1 + and len(curr_sel) == 1 + and ( + root_path_comps[1].isdigit() + or "iLOFederationGroup" in _type + or "ManagerAccount" in _type + or "Manager" in _type + ) + ): + singlet = False + curr_sel = multi_sel + except (ValueError, KeyError): + pass + + scanned_dict = dict() + for thing in curr_sel: + scanned_dict[thing.path] = { + "Origin": "Server", + "Scanned": False, + "Data": thing.dict, + } + for thing in self._fdata[_type]: + # if we only have a single path, the base path is in the path and only a single + # instance was retrieved from the server + if "ManagerAccount" in _type or "iLOFederationGroup" in _type: + scanned_dict[thing] = { + "Origin": "File", + "Scanned": False, + "Data": self._fdata[_type][thing], + } + elif singlet and root_path_comps[0] in thing and len(scanned_dict) == 1: + scanned_dict[next(iter(scanned_dict))] = { + "Origin": "File", + "Scanned": False, + "Data": self._fdata[_type][thing], + } + else: + scanned_dict[thing] = { + "Origin": "File", + "Scanned": False, + "Data": self._fdata[_type][thing], + } + for path in scanned_dict.keys(): + try: + if scanned_dict[path]["Origin"] == "Server": + raise KeyError(path) + else: + sys.stdout.write( + "---Check special loading for entry---\ntype: %s\npath: " "%s\n" % (_type, path) + ) + tmp = self.subhelper(scanned_dict[path]["Data"], _type, path, options) + if tmp: + sys.stdout.write("Special entry not applicable...reserving for " "patch loading stage.\n") + data.append(tmp) + else: + sys.stdout.write("---Special loading complete for entry---.\n") + except KeyError as excp: + if path in str(excp) and self._fdata.get(_type) and "iLOFederationGroup" not in _type: + if self.delete( + scanned_dict[path]["Data"], + _type, + path, + self._fdata[_type], + options, + ): + # ok so this thing does not have a valid path, is not considered a + # deletable item so....idk what to do with you. You go to load. + # Goodluck + tmp = self.altsubhelper(scanned_dict[path]["Data"], _type, path) + if tmp: + data.append(tmp) + else: + # if the instance item was not replaced with an entry in the clone file then + # it will be deleted + self.rdmc.ui.warn("Entry at '%s' removed from this server.\n" % path) + + except Exception as excp: + self.rdmc.ui.error("An error occurred: '%s'" % excp) + continue + finally: + scanned_dict[path]["Scanned"] = True + + self.file_handler(self.tmp_clone_file, "w+", options, data, True) + + def subhelper(self, data, _type, path, options): + """ + Reusable code section for load helper + :param data: dict data (from file or server) + :type: dictionary + :param _type: cross compatible iLO type + :type: string + :param path: iLO schema path determined from system query + :type: string + :param prev + :parm options: command line options + :type options: attribute + """ + + # due to EthernetInterfaces OEM/HPE/DHCPv4 also having a key with 'Name' + # this is required, removing readonly types after POST commands have + # completed. Would be great if that was resolved... + prop_list = [ + "Modified", + "Type", + "Description", + "Status", + "Name", + "AttributeRegistry", + "links", + "SettingsResult", + "@odata.context", + "@odata.type", + "@odata.id", + "@odata.etag", + "Links", + "Actions", + "AvailableActions", + "MACAddress", + "BiosVersion", + ] + + tmp = dict() + tmp[_type] = {path: data} + tmp[_type][path] = self.rdmc.app.removereadonlyprops(tmp[_type][path], False, True, prop_list) + val_emp = tmp["#Bios.v1_0_4.Bios"]["/redfish/v1/systems/1/bios/settings/"]["Attributes"] + if val_emp["AdminName"] == "" and val_emp["AdminPhone"] == "" and val_emp["AdminEmail"] == "": + pass + else: + json_traversal_delete_empty(tmp, None, None) + # if not self.ilo_special_functions(tmp, _type, path, options): + return tmp + + @log_decor + def altsubhelper(self, file_data, _type, curr_path): + """ + Just for manipulating the file_data in the clone file and handing it off to load. + :param file_data: clone file data + :type: dictionary + :param _type: cross compatible iLO type + :type: string + :param curr_path: iLO schema path determined from system query + :type: string + :param file_path: iLO schema path as observed in the clone file + :type: string + :returns: a dictionary containing the data which will be passed off to load. + """ + + tmp = dict() + try: + tmp[_type] = {curr_path: file_data[_type][next(iter(file_data[_type]))]} + except KeyError: + tmp[_type] = {curr_path: file_data} + json_traversal_delete_empty(tmp, None, None) + return tmp + + def loadpatch(self, options): + """ + Load temporary patch file to server + :parm options: command line options + :type options: attribute + """ + self.rdmc.ui.printer("Patching remaining data.\n") + fdata = self.file_handler(self.tmp_clone_file, operation="r+", options=options) + for _sect in fdata: + _tmp_sel = {} + _key = next(iter(_sect)) + _tmp_sel[_key.split(".")[0] + "."] = _sect[_key] + self.file_handler(self.tmp_sel_file, "w", options, [_tmp_sel], True) + self.loadpatch_helper(_key, _sect, options) + + @log_decor + def loadpatch_helper(self, type, dict, options): + """ + Load temporary patch file to server + :parm options: command line options + :type options: attribute + """ + options_str = "" + if options.encryption: + options_str += " --encryption " + options.encryption + + if options.uniqueoverride: + options_str += " --uniqueoverride" + + self.rdmc.ui.printer("Patching '%s'.\n" % type) + try: + self.auxcommands["load"].run("-f " + self.tmp_sel_file + options_str) + except: + # placeholder for any exception + pass + + def gatherandsavefunction(self, typelist, options): + """ + Write parsed JSON save data to file + :param typelist: list of available types on iLO + :type typelist: list + :param options: command line options + :type options: attribute + """ + if options.iLOSSA: + self.save_storageclone(options) + else: + data = OrderedDict() + data.update(self.rdmc.app.create_save_header()) + self.rdmc.ui.printer("Saving of clone file to '%s'.......\n" % self.clone_file) + for _type in typelist: + self.gatherandsavehelper(_type, data, options) + self.file_handler(self.clone_file, "w+", options, data, False) + self.rdmc.ui.printer("Saving of clone file to '%s' is complete.\n" % self.clone_file) + + def gatherandsavehelper(self, _type, data, options): + """ + Collect data on types and parse properties (delete unnecessary/readonly/ + empty properties. + :param type: type for subsequent select and save + :type type: string + :param data: JSON data (to be written to file) + :type data: JSON + :param options: command line options + :type options: attribute + """ + _typep = _type.split(".")[0] + _spec_list = ["SmartStorageConfig", "iLOLicense", "Bios"] + + try: + if "EthernetInterface" in _type: + instances = self.rdmc.app.select( + _typep + ".", + ( + self.rdmc.app.typepath.defs.hrefstring, + self.rdmc.app.typepath.defs.managerpath + "*", + ), + path_refresh=True, + ) + elif "EthernetNetworkInterface" in _type: + instances = self.rdmc.app.select( + _typep + ".", + ( + "links/self/" + self.rdmc.app.typepath.defs.hrefstring, + self.rdmc.app.typepath.defs.managerpath + "*", + ), + path_refresh=True, + ) + else: + instances = self.rdmc.app.select(_typep + ".", path_refresh=True) + + for j, instance in enumerate(self.rdmc.app.getprops(insts=instances)): + if "#" in _typep: + _typep = _typep.split("#")[1] + if self.rdmc.app.typepath.defs.flagforrest: + try: + path = instance["links"]["self"][self.rdmc.app.typepath.defs.hrefstring] + except: + path = instance["links"][next(iter(instance["links"]))][self.rdmc.app.typepath.defs.hrefstring] + else: + path = instance[self.rdmc.app.typepath.defs.hrefstring] + + instance = self.ilo_special_functions(instance, _type, path, options) + + _itc_pass = True + for _itm in _spec_list: + if _itm.lower() in _type.lower(): + templist = [ + "Modified", + "Type", + "Description", + "Status", + "links", + "SettingsResult", + "@odata.context", + "@odata.type", + "@odata.id", + "@odata.etag", + "Links", + "Actions", + "AvailableActions", + "BiosVersion", + ] + instance = iterateandclear(instance, templist) + _itc_pass = False + break + if _itc_pass: + instance = self.rdmc.app.removereadonlyprops(instance, False, True) + + if instance and not options.iLOSSA: + if _typep != "SmartStorageConfig": + if self.rdmc.opts.verbose: + self.rdmc.ui.printer("Saving properties of type: %s, path: %s\n" % (_typep, path)) + elif _typep in options.iLOSSA: + sys.stdout.write("ILO SSA calling") + if _type not in data: + data[_type] = OrderedDict(sorted({path: instance}.items())) + else: + data[_type][path] = instance + else: + self.rdmc.ui.warn( + "Type: %s, path: %s does not contain any modifiable " + "properties on this system." % (_typep, path) + ) + + except Exception as excp: + self.rdmc.ui.printer('An error occurred saving type: %s\nError: "%s"' % (_typep, excp)) + + @log_decor + def getsystemstatus(self, options): + """ + Retrieve system status information and save to a changelog file. This + file will be added to an archive if the archive selection is made. + :parm options: command line options + :type options: attribute + """ + status_list = [] + + for item in self.rdmc.app.status(): + status_list.append(item) + + if status_list: + self.file_handler(self.change_log_file, "w", options, status_list, True) + with open(self.change_log_file, "rb") as myfile: + data = myfile.read() + if options.encryption: + data = Encryption().decrypt_file(data, options.encryption) + with open(self.change_log_file, "wb") as outfile: + outfile.write(data) + else: + self.rdmc.ui.printer("No changes pending.\n") + + def ilo_special_functions(self, data, _type, path, options): + """ + Function used by both load and save for Restful commands requing a + POST or PUT. + :param data: JSON payload for saved or loaded properties + :type data: json + :param _type: selected type + :type _type: string + :param path: path of the selected type + :type path: string + :parm options: command line options + :type options: attribute + :returns: returns boolean indicating if the type/path was found. + """ + identified = False + _typep = _type.split(".")[0] + if "#" in _typep: + _typep = _typep.split("#")[1] + + if "EthernetInterface" in _typep or "EthernetNetworkInterface" in _typep: + identified = True + # save function not needed + if self.load: + self.load_ethernet(data[_type][path], _type, path) + + elif "DateTime" in _typep: + # do not use identified=True. Kind of a hack to have additional items patched. + # save function not needed + if self.load: + self.load_datetime(data[_type][path], path) + + elif "LicenseService" in path and "License" in _typep: + identified = True + if self.save: + data = self.save_license(data, _type, options) + elif self.load: + self.load_license(data[_type][path]) + + elif "AccountService/Accounts" in path and "AccountService" not in _typep: + identified = True + if self.save: + data = self.save_accounts(data, _type, options) + elif self.load: + self.load_accounts(data[_type][path], _type, path, options) + + elif "FederationGroup" in _typep: + identified = True + if self.save: + data = self.save_federation(data, _type, options) + elif self.load: + self.load_federation(data[_type][path], _type, path, options) + + elif "StorageCollection" in _typep: + identified = True + # if self.save: + # data = self.save_smartstorage(data, _type, options) + # elif self.load: + # self.load_smartstorage(data[_type][path], _type, path) + + if self.save: + return data + + return identified + + def c_log_write(self, c_str): + with open(self.change_log_file, "a") as c_log: + c_log.write(c_str + "\n") + + @log_decor + def delete(self, data, _type, path, fdata, options): + """ + Delete operations to remove things on server + :param data: Data to be deleted from the server + :type data: dictionary + :parm _type: iLO type to be queried + :type _type: string + :param path: iLO schema path + :type path: string + :returns: boolean indicating if the delete option occurred. + """ + user_confirm = False + + if not options.autocopy and not options.iLOSSA and not options.all: + while True: + ans = input( + "\n%s\nAre you sure you would like to delete the entry?:\n" + % json.dumps(data, indent=1, sort_keys=True) + ) + if ans.lower() == "y": + self.rdmc.ui.printer("Proceeding with Deletion...\n") + user_confirm = True + break + elif ans.lower() == "n": + self.rdmc.ui.warn("Aborting deletion. No changes have been made made to " "the server.\n") + return False + else: + self.rdmc.ui.warn("Invalid input...\n") + + # if "StorageCollection" in _type "Storage" in _type or : + # sys.stdout.write("Storage related delete lun on particular controller") + + if "ManagerAccount" in _type: + user_name = data["UserName"] + + # obtaining account information on the current server as a check to verify the user + # provided a decent path to use. This can be re-factored. + try: + for curr_sel in self.rdmc.app.select(_type.split(".")[0] + "."): + try: + if "UserName" in list(curr_sel.dict.keys()): + _ = curr_sel.dict["UserName"] + # check file to make sure this is not to be added later? + for fpath in fdata: + try: + if fdata[fpath]["UserName"] == data["UserName"]: + self.rdmc.ui.warn( + "Account '%s' exists in '%s', not " + "deleting.\n" % (data["UserName"], self.clone_file) + ) + return False + except: + continue + + if data["UserName"] != "Administrator": + self.rdmc.ui.warn( + "Manager Account, '%s' was not found in the " + "clone file. Deleting entry from server.\n" % data["UserName"] + ) + if not options.autocopy and not options.iLOSSA and not options.all: + ans = user_confirm + else: + ans = True + if ans: + self.auxcommands["iloaccounts"].run("delete " + data["UserName"]) + self.c_log_write("[CHANGE]: Deleting user " + data["UserName"]) + time.sleep(2) + del fdata[fpath] + return False + else: + self.rdmc.ui.error( + "Deletion of the Default System Administrator " "account is not allowed.\n" + ) + except (KeyError, NameError): + self.rdmc.ui.error( + "Unable to obtain the account information " "for: '%s''s' account.\n" % user_name + ) + continue + except InstanceNotFoundError: + return True + return False + + if "FederationGroup" in _type: + fed_identifier = None + if "FederationName" in data: + fed_identifier = "FederationName" + elif "Name" in data: + fed_identifier = "Name" + else: + raise InvalidKeyError("An invalid key was provided for the Federation Group Name.") + if data[fed_identifier] != "DEFAULT": + self.rdmc.ui.warn( + "Federation Account, '%s' was not found in the clone file." + " Deleting entry from server.\n" % data[fed_identifier] + ) + for fpath in fdata: + if fdata[next(iter(fdata))].get("FederationName") == data[fed_identifier]: + self.rdmc.ui.warn("Account '%s' exists in file, not deleting." "\n" % data[fed_identifier]) + return False + if not options.autocopy and not options.iLOSSA and not options.all: + ans = user_confirm + else: + ans = True + if ans: + self.auxcommands["ilofederation"].run("delete " + data[fed_identifier]) + self.c_log_write("[CHANGE]: Deleting ilo federation user " + data[fed_identifier]) + else: + self.rdmc.ui.warn("Deletion of the Default iLO Federation Group is not allowed.\n") + return False + return True + + @log_decor + def load_ssocertificate(self): + """ + Load the SSO Certificate specified in the user defined options. + """ + self.rdmc.ui.printer("Uploading SSO Certificate...\n") + self.auxcommands["singlesignon"].run("importcert " + self.sso_cert_file) + + @log_decor + def load_tlscertificate(self): + """ + Load the SSO Certificate specified in the user defined options. + """ + self.rdmc.ui.printer("Uploading TLS Certificate...\n") + self.auxcommands["certificate"].run("tls " + self.https_cert_file) + + @log_decor + def load_ethernet(self, ethernet_data, _type, path): + """ + Load iLO Ethernet Adapters settings Payload. + :parm datetime_data: iLO Ethernet Adapters payload to be loaded + :type datetime_data: dict + :param _type: iLO schema type + :type _type: string + :param path: iLO schema path + :type path: string + """ + self.auxcommands["ethernet"].load_ethernet_aux(_type, path, ethernet_data) + + @log_decor + def load_idleconnectiontime(self, options): + """ + Load iLO IdleConnectionTimeoutMinutes. + :parm iloidlecondata: IdleConnectionTimeoutMinutes payload to be loaded + :type iloidlecondata: dict + :param path: iLO schema path + """ + filename = self.clone_file + idle_val = [] + cli_val = [] + + with open(filename, "r+b") as file_handle: + if options.encryption: + data = json.loads(Encryption().decrypt_file(file_handle.read(), options.encryption)) + else: + data = json.load(file_handle) + # data = json.load(file_handle, encoding='cp1252') + # idle_con = data["#Manager.v1_5_1.Manager"]["/redfish/v1/Managers/1/"]["Oem"]["Hpe"][ + # "IdleConnectionTimeoutMinutes" + # ] + # serialclispeed = data["#Manager.v1_5_1.Manager"] + # ["/redfish/v1/Managers/1/"]["Oem"]["Hpe"]["SerialCLISpeed"] + idle_con = None + serialclispeed = None + for key in data: + if "Manager.v" in key: + idle_con = data[key]["/redfish/v1/Managers/1/"]["Oem"]["Hpe"]["IdleConnectionTimeoutMinutes"] + serialclispeed = data[key]["/redfish/v1/Managers/1/"]["Oem"]["Hpe"]["SerialCLISpeed"] + idle_val.append(idle_con) + cli_val.append(serialclispeed) + for _t in self._fdata: + try: + if "Manager" in _t: + _t_path = next(iter(list(self._fdata.get(_t).keys()))) + pass_dict = {"Oem": {self.rdmc.app.typepath.defs.oemhp: {"IdleConnectionTimeoutMinutes": idle_con}}} + cli_dict = {"Oem": {self.rdmc.app.typepath.defs.oemhp: {"SerialCLISpeed": serialclispeed}}} + sys.stdout.write("IdleConnectionTimeoutMinutes data %s\n" % pass_dict) + sys.stdout.write("SerialCLISpeed data %s\n" % cli_dict) + sys.stdout.write("Manager data %s\n" % _t_path) + self.rdmc.app.patch_handler(_t_path, pass_dict) + self.c_log_write("[CHANGE]: " + _t_path + ":" + str(pass_dict)) + self.rdmc.app.patch_handler(_t_path, cli_dict) + self.c_log_write("[CHANGE]: " + _t_path + ":" + str(cli_dict)) + break + except KeyError: + pass + + @log_decor + def load_datetime(self, datetime_data, path): + """ + Load iLO NTP Servers, DateTime Locale Payload. + :parm datetime_data: iLO NTP Server and Datetime payload to be loaded + :type datetime_data: dict + :param path: iLO schema path + :type path: string + """ + errors = [] + + if "StaticNTPServers" in datetime_data: + self.rdmc.ui.printer( + "Attempting to modify 'UseNTPServers' in each iLO Management " + "Network Interface regarding the StaticNTPServers list in " + "section 'iLODateTime (DateTime)'\n" + ) + oem_str = self.rdmc.app.typepath.defs.oempath + prop_str = (oem_str + "/DHCPv4/UseNTPServers")[1:] + path_str = self.rdmc.app.typepath.defs.managerpath + "*" + _instances = self.rdmc.app.select("EthernetInterface", (self.rdmc.app.typepath.defs.hrefstring, path_str)) + _content = self.rdmc.app.getprops("EthernetInterface", [prop_str], None, True, True, _instances) + + for item in _content: + try: + if next(iter(jsonpath_rw.parse("$..UseNTPServers").find(item))).value: + self.rdmc.app.patch_handler( + path, + {oem_str: {"DHCPv4": {"UseNTPServers": True}}}, + ) + self.c_log_write( + "[CHANGE]: " + path + ":" + str({oem_str: {"DHCPv4": {"UseNTPServers": True}}}) + ) + else: + self.rdmc.app.patch_handler( + path, + {oem_str: {"DHCPv4": {"UseNTPServers": False}}}, + ) + self.c_log_write( + "[CHANGE]: " + path + ":" + str({oem_str: {"DHCPv4": {"UseNTPServers": False}}}) + ) + except IloResponseError as excp: + errors.append("iLO Responded with the following error: %s.\n" % excp) + + if errors: + self.rdmc.ui.error( + "iLO responded with an error while attempting to set values " + "for 'UseNTPServers'. An attempt to patch DateTime " + "properties will be performed, but may be unsuccessful.\n" + ) + raise IloResponseError("The following errors in, 'DateTime' were found " "collectively: %s" % errors) + + @log_decor + def save_license(self, license_data, _type, options): + """ + Save iLO Server License. + :parm license_data: iLO Server License payload to be saved + :type license_data: dict + :param _type: iLO schema type + :type _type: string + :param options: command line options + :type options: attribute + """ + key_found = False + valid_key = False + license_keys = [] + try: + if "LicenseKey" in list(license_data["ConfirmationRequest"]["EON"].keys()): + license_keys.append(license_data["ConfirmationRequest"]["EON"]["LicenseKey"]) + except: + pass + finally: + license_keys.append(license_data.get("LicenseKey")) + for lic in reversed(license_keys): + if lic != "" and lic is not None: + license_key = lic + key_found = True + if self.rdmc.opts.verbose: + self.rdmc.ui.printer("License Key Found ending in: %s\n" % license_key.split("-")[-1]) + segpass = [] + for seg in lic.split("-"): + if "XXXXX" in seg.upper(): + segpass.append(True) + + if True not in segpass: + valid_key = True + break + + if not key_found: + self.rdmc.ui.printer("A License Key was not found on this system.\n") + license_key = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" + + if not options.autocopy and not valid_key and not options.iLOSSA and not options.all: + while True: + segpass = [] + license_key = input("Provide your license key: (press enter to skip)\n") + + if license_key.count("X") == 25 or license_key.count("-") == 0: + break + + for seg in license_key[0].split("-"): + if len(seg) == 5: + segpass.append(True) + + if len(segpass) == 5: + break + else: + segpass = False + self.rdmc.ui.warn("An Invalid License Key was Provided: %s" % license_key) + else: + self.rdmc.ui.warn("Remember to verify your License Key...") + + # clear everything, we do not need and just keep license key + license_data = {"LicenseKey": license_key.upper()} + return license_data + + @log_decor + def load_license(self, ilolicdata): + """ + Load iLO Server License. + :parm ilolicdata: iLO Server License payload to be loaded + :type ilolicdata: dict + """ + license_error_list = "InvalidLicenseKey" + license_str = "" + try: + license_str = ilolicdata["LicenseKey"] + segpass = [] + for seg in license_str.split("-"): + if len(seg) == 5: + segpass.append(True) + + if len(segpass) == 5: + self.rdmc.ui.printer("Attempting to load a license key to the server.") + self.auxcommands["ilolicense"].run("" + license_str) + else: + raise ValueError + except IloResponseError as excp: + if str(excp) in license_error_list: + self.rdmc.ui.error("iLO is not accepting your license key ending in '%s'." % license_str.split("-")[-1]) + except ValueError: + self.rdmc.ui.error("An Invalid License Key ending in '%s' was provided." % license_str.split("-")[-1]) + + @log_decor + def save_accounts(self, accounts, _type, options): + """ + Load iLO User Account Data. + :parm accounts: iLO User Account payload to be saved + :type accounts: dict + :param _type: iLO schema type + :type _type: string + :param options: command line options + :type options: attribute + """ + try: + account_type = next(iter(jsonpath_rw.parse("$..Name").find(accounts))).value + except StopIteration: + account_type = None + + try: + account_un = next(iter(jsonpath_rw.parse("$..UserName").find(accounts))).value + except StopIteration: + account_un = None + + try: + account_ln = next(iter(jsonpath_rw.parse("$..LoginName").find(accounts))).value + except StopIteration: + account_ln = None + + try: + privileges = next(iter(jsonpath_rw.parse("$..Privileges").find(accounts))).value + except StopIteration: + privileges = None + + try: + role_id = next(iter(jsonpath_rw.parse("$..RoleId").find(accounts))).value + except StopIteration: + role_id = None + + password = [__DEFAULT__, __DEFAULT__] + if not options.autocopy and not options.iLOSSA and not options.all: + while True: + for i in range(2): + if i < 1: + self.rdmc.ui.printer("Please input the desired password for user: %s\n" % account_un) + else: + self.rdmc.ui.printer("Please re-enter the desired password for user: %s\n" % account_un) + + password[i] = getpass.getpass() + try: + [password[i], _] = password[i].split("\r") + except ValueError: + pass + + if password[0] == password[1] and (password[0] is not None or password[0] != ""): + break + else: + ans = input("You have entered two different passwords...Retry?(y/n)\n") + if ans.lower() != "y": + self.rdmc.ui.printer("Skipping Account Migration for: %s\n" % account_un) + return None + else: + if self.rdmc.opts.verbose: + self.rdmc.ui.printer( + "Remember to edit password for user: '%s', login name: '%s'" "." % (account_un, account_ln) + ) + + if not password[0]: + password[0] = __DEFAULT__ + self.rdmc.ui.printer("Using a placeholder password of '%s' in %s file.\n" % (password[0], self.clone_file)) + accounts = { + "AccountType": account_type, + "UserName": account_un, + "LoginName": account_ln, + "Password": password[0], + "RoleId": role_id, + "Privileges": privileges, + } + + return accounts + + def getsesprivs(self, availableprivsopts=False): + """Finds and returns the curent session's privileges + + :param availableprivsopts: return available privileges + :type availableprivsopts: boolean. + """ + if self.rdmc.app.current_client: + sespath = self.rdmc.app.current_client.session_location + sespath = ( + self.rdmc.app.current_client.default_prefix + + sespath.split(self.rdmc.app.current_client.default_prefix)[-1] + ) + + ses = self.rdmc.app.get_handler(sespath, service=False, silent=True) + + if not ses: + raise SessionExpired("Invalid session. Please logout and " "log back in or include credentials.") + + sesprivs = { + "HostBIOSConfigPriv": True, + "HostNICConfigPriv": True, + "HostStorageConfigPriv": True, + "LoginPriv": True, + "RemoteConsolePriv": True, + "SystemRecoveryConfigPriv": True, + "UserConfigPriv": True, + "VirtualMediaPriv": True, + "VirtualPowerAndResetPriv": True, + "iLOConfigPriv": True, + } + if "Oem" in ses.dict: + sesoemhp = ses.dict["Oem"][self.rdmc.app.typepath.defs.oemhp] + if "Privileges" in list(sesoemhp.keys()): + sesprivs = sesoemhp["Privileges"] + availableprivs = list(sesprivs.keys()) + updated_privs = dict() + for priv, val in sesprivs.items(): + if val: + updated_privs[priv] = sesprivs[priv] + sesprivs = updated_privs + del updated_privs + else: + sesprivs = None + if availableprivsopts: + return availableprivs + else: + return sesprivs + + @log_decor + def load_accounts(self, user_accounts, _type, path, options): + """ + Load iLO User Account Data. + :parm user_accounts: iLO User Account payload to be loaded + :type user_accounts: dict + :param _type: iLO schema type + :type _type: string + :param path: iLO schema path + :type path: string + """ + found_user = False + if "UserName" in user_accounts: + user_name = user_accounts["UserName"] + else: + user_name = user_accounts["User_Name"] + if "LoginName" in user_accounts: + login_name = user_accounts["LoginName"] + else: + login_name = user_accounts["Login_Name"] + + # set minimum password length: + for _t in self._fdata: + try: + if "AccountService" in _t: + _t_path = next(iter(list(self._fdata.get(_t).keys()))) + pass_dict = {"Oem": {self.rdmc.app.typepath.defs.oemhp: {}}} + pass_dict["Oem"][self.rdmc.app.typepath.defs.oemhp]["MinPasswordLength"] = self._fdata[_t][_t_path][ + "Oem" + ][self.rdmc.app.typepath.defs.oemhp]["MinPasswordLength"] + del self._fdata[_t][_t_path]["Oem"][self.rdmc.app.typepath.defs.oemhp]["MinPasswordLength"] + self.rdmc.app.patch_handler(_t_path, pass_dict) + self.c_log_write("[CHANGE]: " + _t_path + ":" + str(pass_dict)) + break + except KeyError: + pass + except Exception as excp: + self.rdmc.ui.error( + "Unable to set minimum password length for manager accounts.\n", + excp, + ) + + # set the current privileges to those in the clone file + curr_privs = user_accounts["Privileges"] + + # set the current role to that in the clone file + curr_role_id = role_id = None + role_id = user_accounts.get("RoleId") + + if self.rdmc.app.typepath.defs.flagforrest: + _ = "links/self/" + self.rdmc.app.typepath.defs.hrefstring + else: + _ = self.rdmc.app.typepath.defs.hrefstring + + # obtaining account information on the current server as a check to verify the user + # provided a decent path to use. This can be re-factored. + try: + for curr_sel in self.rdmc.app.select(_type.split(".")[0] + "."): + try: + curr_privs = curr_sel.dict["Oem"][self.rdmc.app.typepath.defs.oemhp]["Privileges"] + curr_role_id = curr_sel.dict.get("RoleId") + if "UserName" in list(curr_sel.dict.keys()): + curr_un = curr_sel.dict["UserName"] + else: + curr_un = curr_sel.dict["Oem"][self.rdmc.app.typepath.defs.oemhp]["LoginName"] + if curr_un != user_name: + continue + else: + found_user = True + break + except (KeyError, NameError): + self.rdmc.ui.error("Unable to obtain the account information for: '%s''s'" "account.\n" % user_name) + continue + except InstanceNotFoundError: + pass + + if not found_user: + self.rdmc.ui.printer("Account '%s' was not found on this system.\n" % user_name) + + user_pass = user_accounts["Password"] + + (add_privs_str, remove_privs_str) = self.priv_helper(user_accounts, curr_privs) + + if curr_role_id == role_id: + role_id = None + + # Don't think we need to rely on ResourceExists. Should be able to easily tell which + # operation should be performed before this point. + if user_pass: + if user_pass == __DEFAULT__: + self.rdmc.ui.warn("The default password will be attempted.") + try: + if found_user: + raise ResourceExists("") + + # issue here then we just let it happen and perform a modify on the account. + elif role_id: + self.auxcommands["iloaccounts"].run( + "add " + user_name + " " + login_name + " " + user_pass + " " + " --role " + role_id + ) + self.c_log_write("[CHANGE]: Added " + user_name + " with role id " + role_id) + time.sleep(2) + elif add_privs_str: + self.auxcommands["iloaccounts"].run( + "add " + user_name + " " + login_name + " " + user_pass + " " + " --addprivs " + add_privs_str + ) + self.c_log_write("[CHANGE]: Added " + user_name + " with privs string " + str(add_privs_str)) + time.sleep(2) + else: + self.auxcommands["iloaccounts"].run("add " + user_name + " " + login_name + " " + user_pass) + self.c_log_write("[CHANGE]: Added " + user_name) + time.sleep(2) + except ResourceExists: + self.rdmc.ui.warn( + "The account name '%s' exists on this system. " "Checking for account modifications.\n" % user_name + ) + self.rdmc.ui.printer("Changing account password for '%s'.\n" % user_name) + self.auxcommands["iloaccounts"].run("changepass " + user_name + " " + user_pass) + self.c_log_write("[CHANGE]: Changing password for " + user_name) + time.sleep(2) + # if the user includes both role_id and privileges then privileges are applied + # first skipping role, if they exist. Extra steps, yes, in certain cases + # but not necessarily. + if role_id: + self.rdmc.ui.printer("Changing roles for user: '%s'.\n" % user_name) + self.auxcommands["iloaccounts"].run("modify " + user_name + " --role " + role_id) + self.c_log_write("[CHANGE]: Modify role for " + user_name) + time.sleep(2) + else: + if "blobstore" in self.rdmc.app.current_client.base_url: + url = "/redfish/v1/Managers/1/SecurityService/" + get_security = self.rdmc.app.get_handler(url, silent=True, service=True).dict + security_mode = get_security["SecurityState"] + + if ( + "10" in add_privs_str + and "Production" in security_mode + and (options.user is None and options.password is None) + ): + self.c_log_write( + "Warning: For the users In local mode privileges might not get " + "updated in Production mode , Kindly rerun the serverclone load " + "with passing credentials which has recovery privilege" + ) + self.rdmc.ui.error( + "Warning: For the users In local mode privileges might not get " + "updated in Production mode , Kindly rerun the serverclone load " + "with passing credentials which has recovery privilege" + ) + elif not (options.user is None and options.password is None): + LOGGER.info("Logging out of the session without user and password") + self.rdmc.app.current_client.logout() + LOGGER.info("Logging in with user and password for deleting system recovery set") + self.rdmc.app.current_client._user_pass = (options.user, options.password) + self.rdmc.app.current_client.login(self.rdmc.app.current_client.auth_type) + if add_privs_str: + self.rdmc.ui.printer("Adding privileges for user: '%s'.\n" % user_name) + self.auxcommands["iloaccounts"].run( + "modify " + user_name + " --addprivs " + add_privs_str + ) + self.c_log_write("[CHANGE]: Adding privs for " + user_name) + time.sleep(2) + if remove_privs_str: + self.rdmc.ui.printer("Removing privileges for user: '%s'.\n" % user_name) + self.auxcommands["iloaccounts"].run( + "modify " + user_name + " --removeprivs " + remove_privs_str + ) + self.c_log_write("[CHANGE]: Removing privs for " + user_name) + time.sleep(2) + elif role_id: + self.auxcommands["iloaccounts"].run("modify " + user_name + " --role " + role_id) + self.c_log_write("[CHANGE]: Modify role id for " + user_name) + time.sleep(2) + else: + if add_privs_str: + self.rdmc.ui.printer("Adding privileges for user: '%s'.\n" % user_name) + self.auxcommands["iloaccounts"].run("modify " + user_name + " --addprivs " + add_privs_str) + self.c_log_write("[CHANGE]: Adding privs for " + user_name) + time.sleep(2) + if remove_privs_str: + self.rdmc.ui.printer("Removing privileges for user: '%s'.\n" % user_name) + self.auxcommands["iloaccounts"].run( + "modify " + user_name + " --removeprivs " + remove_privs_str + ) + self.c_log_write("[CHANGE]: Removing privs for " + user_name) + time.sleep(2) + elif role_id: + self.auxcommands["iloaccounts"].run("modify " + user_name + " --role " + role_id) + self.c_log_write("[CHANGE]: Modify role id for " + user_name) + time.sleep(2) + else: + raise Exception( + "A password was not provided for account: '%s', path: '%s'. " + "iLO accounts will not be altered without a valid password.\n" % (user_name, path) + ) + + @log_decor + def save_federation(self, fedaccts, _type, options): + """ + Save of Federation Account Data. + :parm fedaccts: Federation account payload to be saved + :type fedaccts: dict + :param _type: iLO schema type + :type _type: string + :param options: command line options + :type options: attribute + """ + + try: + fed_name = next(iter(jsonpath_rw.parse("$..Name").find(fedaccts))).value + except StopIteration: + privileges = None + + try: + fed_id = next(iter(jsonpath_rw.parse("$..Id").find(fedaccts))).value + except StopIteration: + privileges = None + + try: + privileges = next(iter(jsonpath_rw.parse("$..Privileges").find(fedaccts))).value + except StopIteration: + privileges = None + + fedkey = [__DEFAULT__, __DEFAULT__] + # if options.iLOSSA: + # sys.stdout.write("Smart Storage Array functionality") + + if not options.autocopy and not options.iLOSSA and not options.all: + while True: + for i in range(2): + if i < 1: + self.rdmc.ui.printer("Please input the federation key for Federation " "user: %s\n" % fed_name) + else: + self.rdmc.ui.printer( + "Please re-enter the federation key for Federation " "user: %s\n" % fed_name + ) + + fedkey[i] = getpass.getpass() + try: + [fedkey[i], _] = fedkey[i].split("\r") + except ValueError: + pass + + if fedkey[0] == fedkey[1] and (fedkey[0] is not None or fedkey[0] != ""): + break + else: + ans = input("You have entered two different federation keys...Retry?(y/n)\n") + if ans.lower() != "y": + self.rdmc.ui.printer("Skipping Federation Account Migration for: " "%s\n" % fed_name) + return None + else: + self.rdmc.ui.warn("Remember to edit the Federation key for acct: '%s'." % fed_name) + + if not fedkey[0]: + fedkey[0] = __DEFAULT__ + self.rdmc.ui.warn("Using a placeholder federation key '%s' in %s file.\n" % (fedkey[0], self.clone_file)) + fedaccts = { + "AccountID": fed_id, + "FederationName": fed_name, + "FederationKey": fedkey[0], + "Privileges": privileges, + } + return fedaccts + + @log_decor + def load_federation(self, fed_accounts, _type, path, options): + """ + Load of Federation Account Data. + :parm fed_accounts: Federation account payload to be loaded + :type fed_accounts: dict + """ + + found_user = False + fed_name = fed_accounts["FederationName"] + fed_key = fed_accounts["FederationKey"] + + # set the current privileges to those in the clone file + curr_privs = fed_accounts["Privileges"] + + # obtaining account information on the current server as a check to verify the user + # provided a decent path to use. This can be re-factored. + try: + for curr_sel in self.rdmc.app.select(_type.split(".")[0] + "."): + try: + curr_privs = curr_sel.dict.get("Privileges") + curr_fed = curr_sel.dict.get("Name") + if curr_fed != fed_name: + continue + else: + found_user = True + break + except (KeyError, NameError): + self.rdmc.ui.error("Unable to obtain the account information for: '%s''s'" "account.\n" % fed_name) + continue + except InstanceNotFoundError: + pass + + if not found_user: + self.rdmc.ui.warn("Fed Account '%s' was not found on this system.\n" % fed_name) + + if fed_key: + if fed_key == __DEFAULT__: + self.rdmc.ui.warn("The default federation key will be attempted.") + (add_privs_str, remove_privs_str) = self.priv_helper(fed_accounts, curr_privs) + try: + if found_user: + raise ResourceExists("") + else: + self.rdmc.ui.printer("Adding '%s' to iLO Federation.\n" % fed_name) + self.auxcommands["ilofederation"].run("add " + fed_name + " " + fed_key + " " + add_privs_str) + time.sleep(2) + except ResourceExists: + self.rdmc.ui.warn("This account already exists on this system: '%s'\n" % fed_name) + self.rdmc.ui.printer("Changing Federation account: '%s's key\n" % fed_name) + self.auxcommands["ilofederation"].run("changekey " + fed_name + " " + fed_key) + except ValueError: + self.rdmc.ui.error("Some other error occured while attempting to create this " "account: %s" % fed_name) + finally: + if "blobstore" in self.rdmc.app.current_client.base_url: + url = "/redfish/v1/Managers/1/SecurityService/" + get_security = self.rdmc.app.get_handler(url, silent=True, service=True).dict + security_mode = get_security["SecurityState"] + + if ( + "10" in add_privs_str + and (options.user is None and options.password is None) + and "Production" in security_mode + ): + self.c_log_write( + "Warning: For the users In local mode privileges might not get updated in " + "Production mode , Kindly rerun the serverclone load with " + "passing credentials which has recovery privilege" + ) + self.rdmc.ui.error( + "Warning: For the users In local mode privileges might not get updated in " + "Production mode , Kindly rerun the serverclone load with " + "passing credentials which has recovery privilege" + ) + elif not (options.user is None and options.password is None): + LOGGER.info("Logging out of the session without user and password") + self.rdmc.app.current_client.logout() + LOGGER.info("Logging in with user and password for deleting system recovery set") + self.rdmc.app.current_client._user_pass = (options.user, options.password) + self.rdmc.app.current_client.login(self.rdmc.app.current_client.auth_type) + + if add_privs_str: + self.rdmc.ui.printer("Adding privs to Federation account: '%s'\n" % fed_name) + self.auxcommands["ilofederation"].run( + "modify " + + fed_name + + " " + + fed_key + + " --addprivs " + + add_privs_str + + " -u " + + options.user + + " -p " + + options.password + ) + time.sleep(2) + if remove_privs_str: + self.rdmc.ui.printer("Removing privs from Federation account: '%s'\n" % fed_name) + self.auxcommands["ilofederation"].run( + "modify " + + fed_name + + " " + + fed_key + + " --removeprivs " + + remove_privs_str + + " -u " + + options.user + + " -p " + + options.password + ) + time.sleep(2) + + else: + if add_privs_str: + self.rdmc.ui.printer("Adding privs to Federation account: '%s'\n" % fed_name) + self.auxcommands["ilofederation"].run( + "modify " + fed_name + " " + fed_key + " --addprivs " + add_privs_str + ) + time.sleep(2) + if remove_privs_str: + self.rdmc.ui.printer("Removing privs from Federation account: '%s'\n" % fed_name) + self.auxcommands["ilofederation"].run( + "modify " + fed_name + " " + fed_key + " --removeprivs " + remove_privs_str + ) + time.sleep(2) + + else: + self.rdmc.ui.warn( + "A valid Federation key was not provided...skipping account " + "creation or modification for Fed. Acct '%s'" % fed_name + ) + + @log_decor + def save_smartstorage(self, drive_data, _type): + """ + Smart Storage Disk and Array Controller Configuration save. + :parm drive_data: Smart Storage Configuration payload to be saved + :type drive_data: dict + :param _type: iLO schema type + :type _type: string + """ + + @log_decor + def load_smartstorage(self, controller_data, _type, path): + """ + Smart Storage Disk and Array Controller Configuration load. + :parm controller_data: Smart Storage Configuration payload to be loaded + :type controller_data: dict + :param _type: iLO schema type + :type _type: string + :param path: iLO schema path + :type path: string + """ + self.smartarrayobj.load(controller_data) + + # Helper Functions + @log_decor + def system_compatibility_check(self, sys_info, options): + """ + Check if files needed for serverclone are available + :param sys_info: dictionary of comments for iLO firmware and BIOS ROM + versions + :type sys_info: dict + :param options: command line options + :type options: attribute + """ + + checks = [] + try: + curr_sys_info = self.rdmc.app.create_save_header()["Comments"] + curr_ilorev = format(float(self.curr_ilorev[0] + "." + self.curr_ilorev[1:]), ".2f") + if self.rdmc.app.getiloversion() >= 7: + file_ilorev, file_iloversion, _, _ = sys_info["iLOVersion"].split(" ") + file_iloversion = self.curr_iloversion + else: + _, file_iloversion, file_ilorev = sys_info["iLOVersion"].split(" ") + file_ilorev = file_ilorev.split("v")[-1] + self.rdmc.ui.printer("This system has iLO Version %s. \n" % curr_sys_info["iLOVersion"]) + self.rdmc.ui.printer("This system has BIOS Version %s.\n" % curr_sys_info["BIOSFamily"]) + if curr_sys_info["BIOSFamily"] == sys_info["BIOSFamily"]: + self.rdmc.ui.printer("BIOS Versions are compatible.\n") + checks.append(True) + else: + self.rdmc.ui.warn( + "BIOS Versions are different. Suggest to have" + " '%s' in place before upgrading.\n" % sys_info["BIOSFamily"] + ) + checks.append(False) + # Commenting out this line as same inforation is being printed twice. + # self.rdmc.ui.printer( + # "This system has iLO %s with firmware revision %s.\n" + # % (self.curr_iloversion, curr_ilorev) + # ) + if self.curr_iloversion == file_iloversion and curr_ilorev == file_ilorev: + self.rdmc.ui.printer("iLO Versions are fully compatible.\n") + checks.append(True) + elif self.curr_iloversion == file_iloversion and curr_ilorev != file_ilorev: + self.rdmc.ui.warn( + "The iLO Versions are compatible; however, the revisions " + "differ (system version: iLO %s %s, file version: iLO %s %s). Some " + "differences in properties, schemas and incompatible dependencies may " + "exist. Proceed with caution.\n" % (self.curr_iloversion, curr_ilorev, file_iloversion, file_ilorev) + ) + checks.append(False) + else: + self.rdmc.ui.warn( + "The iLO Versions are different. Compatibility issues may exist " + "attempting to commit changes to this system.\n(System version: iLO %s %s, " + "file version: iLO %s %s)\n" % (self.curr_iloversion, curr_ilorev, file_iloversion, file_ilorev) + ) + checks.append(False) + except KeyError as exp: + if "iLOVersion" in str(exp): + self.rdmc.ui.warn("iLOVersion not found in clone file 'Comments' dictionary.\n") + elif "BIOSFamily" in str(exp): + self.rdmc.ui.warn("BIOS Family not found in clone file 'Comments' dictionary.\n") + else: + raise Exception("%s" % exp) + + if (len(checks) == 0 or False in checks) and not options.autocopy and not options.iLOSSA and not options.all: + while True: + ans = input( + "Would you like to continue with migration of iLO configuration from " + "'%s' to '%s'? (y/n)\n" % (sys_info["Model"], curr_sys_info["Model"]) + ) + if ans.lower() == "n": + raise ExitHandler("Aborting load operation. No changes made to the server.") + elif ans.lower() == "y": + break + else: + self.rdmc.ui.warn("Invalid input...\n") + + self.rdmc.ui.printer( + "Attempting system clone from a '%s' to a '%s'.\n" % (sys_info["Model"], curr_sys_info["Model"]) + ) + + def priv_helper(self, desired_priv, curr_privs): + """ + Privilege helper. Assigns privileges to a string for addition or removal when loading + iLO management account or iLO Federation data + :param desired_priv: dictionary of desired privileges + :type desired_priv: dict + :param curr_priv: dictionary of current system privileges + :type curr_priv: dict + """ + + add_privs_str = "" + remove_privs_str = "" + + if desired_priv.get("Privileges").get("HostBIOSConfigPriv"): + add_privs_str += "8," + else: + remove_privs_str += "8," + + if desired_priv.get("Privileges").get("HostNICConfigPriv"): + add_privs_str += "7," + else: + remove_privs_str += "7," + + if desired_priv.get("Privileges").get("HostStorageConfigPriv"): + add_privs_str += "9," + else: + remove_privs_str += "9," + if desired_priv.get("Privileges").get("LoginPriv"): + add_privs_str += "1," + else: + remove_privs_str += "1," + + if desired_priv.get("Privileges").get("RemoteConsolePriv"): + add_privs_str += "2," + else: + remove_privs_str += "2," + + if desired_priv.get("Privileges").get("SystemRecoveryConfigPriv"): + add_privs_str += "10," + else: + remove_privs_str += "10," + + if desired_priv.get("Privileges").get("UserConfigPriv"): + add_privs_str += "3," + else: + remove_privs_str += "3," + if desired_priv.get("Privileges").get("VirtualMediaPriv"): + add_privs_str += "5," + else: + remove_privs_str += "5," + + if desired_priv.get("Privileges").get("VirtualPowerAndResetPriv"): + add_privs_str += "6," + else: + remove_privs_str += "6," + + if desired_priv.get("Privileges").get("iLOConfigPriv"): + add_privs_str += "4," + else: + remove_privs_str += "4," + + return (add_privs_str[:-1], remove_privs_str[:-1]) + + def get_rootpath(self, path): + """ + Obtain the root path of the current path (multiple instances within a path) + :param path: current type path + :returns: a tuple including either the root_path and the ending or the original path and + ending + """ + + root_path = "" + + if path[-1] == "/": + ending = path.split("/")[-2] + else: + ending = path.split("/")[-1] + + entries_list = [(pos.start(), pos.end()) for pos in list(re.finditer(ending, path))] + root_path, ident_ending = ( + path[: entries_list[-1][0]], + path[entries_list[-1][0] :], + ) + + # check to verify the root path + ending match the original path. + _ = "" + if len(root_path + ident_ending) == len(path): + return (root_path, _.join(ident_ending.split("/"))) + return (path, ident_ending) + + def get_filenames(self): + """ + Obtain a dictionary of filenames for clonefile, and cert files + :returns: returns dictionary of filenames + """ + return { + "clone_file": self.clone_file, + "https_cert_file": self.https_cert_file, + "sso_cert_file": self.sso_cert_file, + } + + def check_files(self, options): + """ + Check if files needed for serverclone are available + :param options: command line options + :type options: attribute + """ + if options.encryption: + if self.save: + self.rdmc.ui.printer("Serverclone JSON, '%s' will be encrypted.\n" % self.clone_file) + if self.load: + self.rdmc.ui.printer("Loading the encrypted JSON clone file: %s.\n" % self.clone_file) + self.rdmc.ui.printer("Note: Make sure %s is encrypted.\n" % self.clone_file) + + # delete anything in the change log file + with open(self.change_log_file, "w+") as clf: + clf.write("") + # delete anything in the error log file + with open(self.error_log_file, "w+") as elf: + elf.write("") + + # check the clone file exists (otherwise create) + try: + if options.encryption: + file_handle = open(self.clone_file, "r+b") + else: + file_handle = open(self.clone_file, "r+") + file_handle.close() + except: + if self.save: + if options.encryption: + file_handle = open(self.clone_file, "w+b") + else: + file_handle = open(self.clone_file, "w+") + file_handle.close() + else: + self.rdmc.ui.error("The clone file '%s', selected for loading," " was not found.\n" % self.clone_file) + raise IOError + + @log_decor + def type_compare(self, type1, type2): + """ + iLO schema type compatibility verification + :param type1 + :type string + :param type2 + :type string + :returns: return tuple with booleans of comparison checks + """ + _type1 = type1 + _type2 = type2 + checklist = ["Major"] # , 'Minor'] #No minor checking for now + + found_type = False + compatible = list() + + _type1 = self.type_break(_type1) + _type2 = self.type_break(_type2) + + if _type1[type1]["Type"].lower() == _type2[type2]["Type"].lower(): + found_type = True + + for item in checklist: + if _type1[type1]["Version"][item] == _type2[type2]["Version"][item]: + compatible.append("True") + else: + compatible.append("False") + + if "False" in compatible: + return (found_type, False) + return (found_type, True) + + @log_decor + def type_break(self, _type): + """ + Breakdown of each iLO schema type for version comparison + :param _type: iLO schema type + :type _type: string + """ + + _type2 = dict() + _type_breakdown = _type.split("#")[-1].split(".") + _type2[_type] = dict([("Type", _type_breakdown[0]), ("Version", {})]) + versioning = list() + if len(_type_breakdown) == 3 and "_" in _type_breakdown[1]: + rev = _type_breakdown[1].split("_") + _type2[_type]["Version"] = { + "Major": int(rev[0][-1]), + "Minor": int(rev[1]), + "Errata": int(rev[2]), + } + elif len(_type_breakdown) > 3 and "_" not in _type: + for value in _type_breakdown: + if value.isdigit(): + versioning.append(int(value)) + _type2[_type]["Version"] = { + "Major": versioning[0], + "Minor": versioning[1], + "Errata": versioning[2], + } + + return _type2 + + def serverclonevalidation(self, options): + """ + Serverclone validation function. Validates command line options and + initiates a login to the iLO Server. + :param options: command line options + :type options: list. + """ + + self._cache_dir = os.path.join(self.rdmc.app.cachedir, __tempfoldername__) + if not os.path.exists(self._cache_dir): + os.makedirs(self._cache_dir) + self.tmp_clone_file = os.path.join(self._cache_dir, __tmp_clone_file__) + self.tmp_sel_file = os.path.join(self._cache_dir, __tmp_sel_file__) + # self.change_log_file = os.path.join(self._cache_dir, __changelog_file__) + # self.error_log_file = os.path.join(self._cache_dir, __error_log_file__) + + self.cmdbase.login_select_validation(self, options) + + if options.clonefilename: + if len(options.clonefilename) < 2: + self.clone_file = options.clonefilename[0] + else: + raise InvalidCommandLineError("Only a single clone file may be specified.") + else: + self.clone_file = __clone_file__ + + if options.encryption: + if len(options.encryption.encode("utf8")) not in [16, 24, 32]: + raise InvalidKeyError( + "An invalid encryption key has been used with a length of: " + "%s chars....ensure the encryption key length is 16, 24 or " + "32 characters long." % len((options.encryption).encode("utf8")) + ) + # filenames + if self.load: + if options.ssocert: + if len(options.ssocert) < 2 and self.load: + self.sso_cert_file = options.ssocert[0] + else: + raise InvalidCommandLineError("Ensure you are loading a single SSO certificate" ".\n") + if options.tlscert: + if len(options.tlscert) < 2 and self.load: + self.https_cert_file = options.tlscert[0] + else: + raise InvalidCommandLineError("Ensure you are loading a single TLS certificate" ".\n") + if self.rdmc.opts.debug: + self.rdmc.ui.warn( + "Debug selected...all exceptions will be handled in an external log " + "file (check error log for automatic testing).\n" + ) + with open(self.error_log_file, "w+") as efh: + efh.write("") + + @staticmethod + def options_argument_group(parser): + """Define option arguments group + :param parser: The parser to add the login option group to + :type parser: ArgumentParser/OptionParser + """ + + parser.add_argument( + "--encryption", + dest="encryption", + help="Optionally include this flag to encrypt/decrypt a file" " using the key provided.", + default=None, + ) + parser.add_argument( + "-f", + "--clonefile", + dest="clonefilename", + help="Optionally rename the default clone file 'ilorest_clone.json'", + action="append", + default=None, + ) + parser.add_argument( + "-sf", + "--storageclonefile", + dest="storageclonefilename", + help="Optionally rename the default clone file 'ilorest_storage_clone.json'", + action="append", + default=None, + ) + parser.add_argument( + "--uniqueoverride", + dest="uniqueoverride", + action="store_true", + help="Override the measures stopping the tool from writing." "over items that are system unique.", + default=None, + ) + parser.add_argument( + "--auto", + dest="autocopy", + help="Optionally include this flag to ignore user prompts for save or load processes.", + action="store_true", + default=None, + ) + + def definearguments(self, customparser): + """Wrapper function for new command main function + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + # self.options_argument_group(customparser) + subcommand_parser = customparser.add_subparsers(dest="command") + subcommand_parser.required = True + save_help = "Save an iLO, Bios and SSA config." + # save sub-parser + save_parser = subcommand_parser.add_parser( + "save", + help=save_help, + description=save_help + "\n\texample: serverclone save" + "\n\n\tSave iLO config omitting BIOS attributes to a non-default file name.\n\t" + "example: serverclone save -f serv_clone.json --nobios" + "\n\n\tSave an encrypted iLO configuration file (to the default file name)\n\t" + "example: serverclone save --encryption ", + formatter_class=RawDescriptionHelpFormatter, + ) + save_parser.add_argument( + "--ilossa", + dest="iLOSSA", + help="Optionally include this flag to include configuration of" " iLO Smart Array Devices during save.", + action="store_true", + default=None, + ) + + save_parser.add_argument( + "--all", + dest="all", + help="Optionally include this flag to include all" " iLO Smart Array Devices and All during save.", + action="store_true", + default=None, + ) + + save_parser.add_argument( + "--nobios", + dest="noBIOS", + help="Optionally include this flag to omit save of Bios configuration.", + action="store_true", + default=None, + ) + self.cmdbase.add_login_arguments_group(save_parser) + self.options_argument_group(save_parser) + + load_help = "Load an iLO, Bios and/or SSA config." + # load sub-parser + load_parser = subcommand_parser.add_parser( + "load", + help=load_help, + description=load_help + "SSO and TLS certificates may be" + "added on load.\n\n\tLoad a clone file from a non-default file name.\n\t" + "example: serverclone load -f serv_clone.json" + "\n\n\tLoad a clone file with SSO and TLS certificates.\n\t" + "example: serverclone load -ssocert sso.txt --tlscert tls.txt" + "\n\n\tLoad a clone file which has been encrypted.\n\t" + "example: serverclone load --encryption abc12abc12abc123\n\n\t", + formatter_class=RawDescriptionHelpFormatter, + ) + load_parser.add_argument( + "--ssocert", + dest="ssocert", + help="Use this flag during 'load' to include an SSO certificate." + " This should be properly formatted in a simple text file.", + action="append", + default=None, + ) + load_parser.add_argument( + "--tlscert", + dest="tlscert", + help="Use this flag during 'load' to include a TLS certificate." + " This should be properly formatted in a simple text file.", + action="append", + default=None, + ) + load_parser.add_argument( + "--all", + dest="all", + help="Optionally include this flag to include all" " iLO Smart Array Devices and All during save.", + action="store_true", + default=None, + ) + load_parser.add_argument( + "--ilossa", + dest="iLOSSA", + help="Optionally include this flag to include all" " iLO Smart Array Devices and All during loadn.", + action="store_true", + default=None, + ) + load_parser.add_argument( + "--noautorestart", + dest="noautorestart", + help="Optionally noautorestart after loading", + action="store_true", + default=False, + ) + self.cmdbase.add_login_arguments_group(load_parser) + self.options_argument_group(load_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerConfigurationLockCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerConfigurationLockCommand.py new file mode 100644 index 0000000..b3b40d9 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerConfigurationLockCommand.py @@ -0,0 +1,279 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### +# -*- coding: utf-8 -*- +"""BiosDefaultsCommand for rdmc""" + +from argparse import RawDescriptionHelpFormatter + +try: + from rdmc_helper import ( + LOGGER, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidPasswordLengthError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + LOGGER, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidPasswordLengthError, + ReturnCodes, + ) + + +class ServerConfigurationLockCommand: + """Set BIOS settings back to default for the server that is currently + logged in""" + + def __init__(self): + self.ident = { + "name": "serverconfiglock", + "usage": None, + "description": "To to perform validation checks on raw JSON data " + "server.\n\texample: serverconfiglock\n\t" + "example: serverconfiglock enable --serverconfiglockpassword=AWS@123456789 " + "--serverconfiglockexcludefwrevs=True\t serverconfiglockexcludefwrevs set True or False\n\t" + "example: serverconfiglock disable --serverconfiglockpassword=AWS@1234 " + "--serverconfiglockdisable=True\t serverconfiglockdisable set True or False\n\t" + "example: serverconfiglock display", + "summary": "The BIOS feature “Server Configuration Lock” supports certain parameters," + "including a password. This password has a 16 to 31 character limit. " + "“Server Configuration Lock” is not one of the special commands in iLO REST.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main BIOS defaults worker function""" + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + bios_path = self.rdmc.app.typepath.defs.biospath + resp = self.rdmc.app.get_handler(bios_path, silent=True, service=True).dict + match_url = resp["Oem"]["Hpe"]["Links"]["ServerConfigLock"]["@odata.id"] + if "oem" in match_url: + scs_path = bios_path + "oem/hpe/serverconfiglock/settings/" + else: + scs_path = bios_path + "serverconfiglock/settings/" + self.serverconfiglockvalidation(options) + if options.command: + if options.command.lower() == "enable": + self.enable_scs(options, scs_path) + elif options.command.lower() == "disable": + self.disable_scs(options, scs_path) + elif options.command == "display": + self.display_scs(scs_path) + else: + raise InvalidCommandLineError("%s is not a valid option for this " "command." % str(options.command)) + else: + raise InvalidCommandLineError( + "Please provide either enable, disable and display subcommand. " + "For help or usage related information, use -h or --help" + ) + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def enable_scs(self, options, scs_path): + """ + Enable/Disable the SCL config function + """ + if options.serverconfiglockpassword: + ser_cf_password = options.serverconfiglockpassword + self.serverconfiglockpassword_validation(options) + if options.serverconfiglockexcludefwrevs.lower() == "true": + serverconfrevs = "True" + elif options.serverconfiglockexcludefwrevs.lower() == "false": + serverconfrevs = "False" + else: + raise InvalidCommandLineError("ServerConfigLockExcludeFwRevs value invalid set only true or false") + body = {"ServerConfigLockPassword": ser_cf_password, "ServerConfigLockExcludeFwRevs": serverconfrevs} + try: + self.rdmc.ui.printer("payload: %s \n" % body) + LOGGER.info("payload", body) + resp = self.rdmc.app.patch_handler(scs_path, body) + if resp.status == 200: + self.rdmc.ui.printer("SCS enabled successfully\n") + LOGGER.info("SCS enabled successfully") + self.rdmc.ui.printer("Help: System Reboot is required after changing the serverconfiglock settings \n") + return ReturnCodes.SUCCESS + except IncompatibleiLOVersionError: + self.rdmc.ui.error("iLO FW version on this server doesnt support SCS") + LOGGER.error("iLO FW version on this server doesnt support SCS") + return ReturnCodes.INCOMPATIBLE_ILO_VERSION_ERROR + + def disable_scs(self, options, scs_path): + """ + Disable the SCL config function + """ + if options.serverconfiglockpassword: + ser_cf_password = options.serverconfiglockpassword + self.serverconfiglockpassword_validation(options) + if options.serverconfiglockdisable.lower() == "true": + sclockdisable = "True" + elif options.serverconfiglockdisable.lower() == "false": + sclockdisable = "False" + else: + raise InvalidCommandLineError("ServerConfigLockDisable value invalid set only true or false") + body = {"ServerConfigLockPassword": ser_cf_password, "ServerConfigLockDisable": sclockdisable} + try: + self.rdmc.ui.printer("payload: %s \n" % body) + LOGGER.info("payload", body) + resp = self.rdmc.app.patch_handler(scs_path, body) + if resp.status == 200: + self.rdmc.ui.printer("SCS Disabled successfully\n") + LOGGER.info("SCS Disabled successfully") + self.rdmc.ui.printer("Help: System Reboot is required after changing the serverconfiglock settings \n") + return ReturnCodes.SUCCESS + except IncompatibleiLOVersionError: + self.rdmc.ui.error("iLO FW version on this server doesnt support SCS") + LOGGER.error("iLO FW version on this server doesnt support SCS") + return ReturnCodes.INCOMPATIBLE_ILO_VERSION_ERROR + + def display_scs(self, scs_path): + """ + Display SCS details + """ + ilo_ver = self.rdmc.app.getiloversion() + if ilo_ver >= 5.290 or ilo_ver < 6.000: + results = self.rdmc.app.get_handler(scs_path, silent=True) + if results.status == 200: + self.rdmc.ui.printer("Server Configuration Lock setting details ...\n") + LOGGER.info("Server Configuration Lock setting details ...") + results = results.dict + self.print_scs_info(results) + else: + self.rdmc.ui.printer("For iLO6, this command is not yet supported.\n") + LOGGER.error("For iLO6, this command is not yet supported.") + + def print_scs_info(self, results): + """ + Prints the SCL: info + """ + for key, value in results.items(): + if "@odata" not in key: + if type(value) is dict: + self.print_cert_info(value) + else: + self.rdmc.ui.printer(key + ":" + str(value) + "\n") + + def serverconfiglockpassword_validation(self, options): + """ + Password validation for ServerConfigLockPassword method + """ + import re + + if options.serverconfiglockpassword: + password = options.serverconfiglockpassword + if len(password) < 16 or len(password) > 31: + LOGGER.info("Length of password requires min of 16 and max of 31 character " "excluding '/' character.\n") + raise InvalidPasswordLengthError( + "Length of password requires min of 16 and max of 31 character " "excluding '/' character.\n" + ) + elif re.search("[0-9]", password) is None: + print("Make sure your password has a number in it\n") + elif re.search("[A-Z]", password) is None: + print("Make sure your password has a capital letter in it\n") + + def serverconfiglockvalidation(self, options): + """new command method validation function""" + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + subcommand_parser = customparser.add_subparsers(dest="command") + enable_help = "To enable ServerConfigurationLock \n" + + enable_parser = subcommand_parser.add_parser( + "enable", + help=enable_help, + description=enable_help + "\n\tExample:\n\tserverconfiglock enable ", + formatter_class=RawDescriptionHelpFormatter, + ) + enable_parser.add_argument( + "--serverconfiglockpassword", + dest="serverconfiglockpassword", + help="Set a serverconfiglockpassword", + required=True, + type=str, + default=None, + ) + enable_parser.add_argument( + "--serverconfiglockexcludefwrevs", + dest="serverconfiglockexcludefwrevs", + help="to set/enable serverconfiglockexcludefwrevs", + default=False, + required=True, + ) + self.cmdbase.add_login_arguments_group(enable_parser) + + status_help = "To check the ServerConfigurationLock display\n" + status_parser = subcommand_parser.add_parser( + "display", + help=status_help, + description=status_help + "\n\tExample:\n\tserverconfiglock display or " "\n\tserverconfiglock status -j", + formatter_class=RawDescriptionHelpFormatter, + ) + + self.cmdbase.add_login_arguments_group(status_parser) + + disable_help = "To disable the ServerConfigurationLock\n" + disable_parser = subcommand_parser.add_parser( + "disable", + help=disable_help, + description=disable_help + "\n\tExample:\n\tserverconfiglock disable", + formatter_class=RawDescriptionHelpFormatter, + ) + disable_parser.add_argument( + "--serverconfiglockpassword", + dest="serverconfiglockpassword", + help="Server Configuration Lock password and to digitally fingerprint the system to enable Server " + "Configuration Lock.", + required=True, + type=str, + default=None, + ) + disable_parser.add_argument( + "--serverconfiglockdisable", + dest="serverconfiglockdisable", + help="Select this option to disable Server Configuration Lock.", + required=True, + default=False, + ) + self.cmdbase.add_login_arguments_group(disable_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerInfoCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerInfoCommand.py new file mode 100644 index 0000000..8f810c0 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerInfoCommand.py @@ -0,0 +1,1158 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### +# -*- coding: utf-8 -*- +"""Server Info Command for rdmc""" +import re +import sys +from collections import OrderedDict + +import jsonpath_rw + +try: + from rdmc_helper import ( + UI, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + UI, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class ServerInfoCommand: + """Show details of a server""" + + def __init__(self): + self.ident = { + "name": "serverinfo", + "usage": None, + "description": "Shows all information.\n\tExample: serverinfo\n\t\t" + "serverinfo --all\n\n\t" + "Show enabled fan, processor, and thermal information.\n\texample: " + "serverinfo --fans --processors --thermals --proxy\n\n\tShow all memory " + "and fan information, including absent locations in json format.\n\t" + "example: serverinfo --proxy --firmware --software --memory --fans --showabsent -j\n", + "summary": "Shows aggregate health status and details of the currently logged in server.", + "aliases": ["health", "serverstatus", "systeminfo"], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main serverinfo function. + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if args: + raise InvalidCommandLineError("serverinfo command takes no " "arguments.") + + self.serverinfovalidation(options) + + self.optionsvalidation(options) + + info = self.gatherinfo(options) + + if not info: + raise InvalidCommandLineError("Please verify the commands entered " "and try again.") + if "proxy" in info and info["proxy"]: + if "WebProxyConfiguration" in info["proxy"]["Oem"]["Hpe"]: + info["proxy"] = info["proxy"]["Oem"]["Hpe"]["WebProxyConfiguration"] + + if options.json: + # if options.processors and options.json and self.rdmc.app.typepath.defs.isgen9: + # pass + # elif options.memory and self.rdmc.app.typepath.defs.isgen9: + # pass + # else: + self.build_json_out(info, options.showabsent) + else: + self.prettyprintinfo(info, options.showabsent) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def gatherinfo(self, options): + """Gather info to printout based on options + + :param options: command line options + :type options: list. + """ + info = {} + path = self.rdmc.app.typepath.defs.systempath + if path == "/rest/v1/Systems/1" or "/redfish/v1/Systems/1/": + path = "/redfish/v1/Systems/" + else: + pass + if options.system: + info["system"] = OrderedDict() + csysresults = self.rdmc.app.get_handler(path, service=True, silent=True).dict + # csysresults = self.rdmc.app.select(selector="ComputerSystemCollection") + # csysresults = csysresults[0].dict + members = csysresults["Members"] + for id in members: + for mem_id in id.values(): + if path in mem_id: + csysresults = self.rdmc.app.get_handler(mem_id, service=True, silent=True).dict + try: + csysresults = csysresults[0].dict + except: + pass + if csysresults: + text = "%s %s" % ( + csysresults["Manufacturer"], + csysresults["Model"], + ) + info["system"]["Model"] = re.sub(r"^(HPE)\s+\1\s+", r"\1 ", text) + info["system"]["Bios Version"] = csysresults["BiosVersion"] + + biosresults = self.rdmc.app.select(selector=self.rdmc.app.typepath.defs.biostype) + + try: + biosresults = biosresults[0].dict + except: + pass + + if biosresults: + try: + info["system"]["Serial Number"] = biosresults["Attributes"]["SerialNumber"] + except: + if "SerialNumber" in biosresults: + info["system"]["Serial Number"] = biosresults["SerialNumber"] + ethresults = None + getloc = self.rdmc.app.getidbytype("EthernetInterfaceCollection.") + if getloc: + for loc in getloc: + if "/systems/1/" in loc.lower(): + ethresults = self.rdmc.app.getcollectionmembers(loc) + break + if ethresults: + niccount = 0 + info["system"]["ethernet"] = OrderedDict() + for eth in ethresults: + niccount += 1 + if eth["Name"] == "": + if "MACAddress" in eth: + info["system"]["ethernet"][niccount] = eth["MACAddress"] + else: + info["system"]["ethernet"][niccount] = eth["PermanentMACAddress"] + elif eth["Name"] != "": + if "MACAddress" in eth: + info["system"]["ethernet"][eth["Name"]] = eth["MACAddress"] + else: + info["system"]["ethernet"][eth["Name"]] = eth["PermanentMACAddress"] + info["system"]["NICCount"] = niccount + if options.thermals or options.fans: + data = None + if not self.rdmc.app.typepath.defs.isgen9: + getloc = self.rdmc.app.getidbytype("Thermal.") + else: + getloc = self.rdmc.app.getidbytype("ThermalMetrics.") + if getloc: + data = self.rdmc.app.get_handler(getloc[0], silent=True, service=True) + if options.thermals: + if not getloc: + info["thermals"] = None + else: + info["thermals"] = data.dict["Temperatures"] + if options.fans: + if not getloc: + info["fans"] = None + else: + info["fans"] = data.dict["Fans"] + if options.memory: + data = None + if self.rdmc.app.typepath.defs.isgen9: + mem_path = "/redfish/v1/Systems/1/Memory/" + "?$expand=." + getloc = self.rdmc.app.get_handler(mem_path, silent=True, service=True).dict + collectiondata = getloc["Oem"][self.rdmc.app.typepath.defs.oemhp] + if collectiondata and not options.json: + sys.stdout.write("---------------------------------\n") + sys.stdout.write("Memory/DIMM Board Information:\n") + sys.stdout.write("---------------------------------\n") + memory_status = "Advanced Memory Protection Status: %s \n" % collectiondata["AmpModeStatus"] + sys.stdout.write(memory_status) + sys.stdout.write("AmpModeActive: %s \n" % collectiondata["AmpModeActive"]) + sys.stdout.write("AmpModeSupported: %s \n" % collectiondata["AmpModeSupported"]) + sys.stdout.write("Type: %s \n" % collectiondata["Type"]) + if collectiondata and options.json: + tmp = dict() + tmp["Memory"] = dict() + tmp["Memory"]["Advanced Memory Protection Status"] = collectiondata["AmpModeStatus"] + tmp["Memory"]["AmpModeActive"] = collectiondata["AmpModeActive"] + tmp["Memory"]["AmpModeSupported"] = collectiondata["AmpModeSupported"] + tmp["Memory"]["Type"] = collectiondata["Type"] + UI().print_out_json(tmp) + getloc = self.rdmc.app.getidbytype("MemoryCollection.") + if getloc: + data = self.rdmc.app.getcollectionmembers(getloc[0], fullresp=True)[0] + info["memory"] = data + else: + info["memory"] = None + if options.proxy: + data = None + getloc = self.rdmc.app.getidbytype("NetworkProtocol.") + if getloc: + data = self.rdmc.app.getcollectionmembers(getloc[0], fullresp=True)[0] + info["proxy"] = data + else: + info["proxy"] = None + if options.processors: + data = None + if not self.rdmc.app.typepath.defs.isgen9: + getloc = self.rdmc.app.getidbytype("ProcessorCollection.") + else: + # getloc = self.rdmc.app.getidbytype("ProcessorCollection.") + getloc = self.rdmc.app.getidbytype("Processor.") + tot_proc = [] + if getloc == "/rest/v1/Systems/1/Processors/1" or "/rest/v1/Systems/1/Processors/2": + getloc = "/redfish/v1/Systems/1/Processors/" + get_p = self.rdmc.app.get_handler(getloc, service=True, silent=True).dict["Members"] + output = "" + if get_p and not options.json: + sys.stdout.write("------------------------------------------------\n") + sys.stdout.write("Processor:\n") + sys.stdout.write("------------------------------------------------\n") + for pp in get_p: + dd = pp["@odata.id"] + data = self.rdmc.app.get_handler(dd, service=True, silent=True).dict + output += "Processor %s:\n" % data["Id"] + output += "\tModel: %s\n" % data["Model"] + output += "\tStep: %s\n" % data.get("ProcessorId", {}).get("Step", "NA") + output += "\tSocket: %s\n" % data["Socket"] + output += "\tMax Speed: %s MHz\n" % data["MaxSpeedMHz"] + try: + output += ( + "\tSpeed: %s MHz\n" + % data["Oem"][self.rdmc.app.typepath.defs.oemhp]["RatedSpeedMHz"] + ) + except KeyError: + pass + output += "\tCores: %s\n" % data["TotalCores"] + output += "\tThreads: %s\n" % data["TotalThreads"] + try: + for cache in data["Oem"][self.rdmc.app.typepath.defs.oemhp]["Cache"]: + output += "\t%s: %s KB\n" % ( + cache["Name"], + cache["InstalledSizeKB"], + ) + except KeyError: + pass + try: + output += "\tHealth: %s\n" % data["Status"]["Health"] + except KeyError: + pass + self.rdmc.ui.printer(output, verbose_override=True) + if get_p and options.json: + for pp in get_p: + dd = pp["@odata.id"] + data = self.rdmc.app.get_handler(dd, service=True, silent=True).dict + process = "Processor %s" % data["Id"] + tmp = dict() + tmp[process] = dict() + tmp[process]["Processor"] = data["Id"] + tmp[process]["Model"] = data["Model"] + tmp[process]["Step"] = data.get("ProcessorId", {}).get("Step", "NA") + tmp[process]["Socket"] = data["Socket"] + tmp[process]["Max Speed"] = data["MaxSpeedMHz"] + try: + tmp[process].update( + { + "Speed": "%s MHz" + % data["Oem"][self.rdmc.app.typepath.defs.oemhp]["RatedSpeedMHz"] + } + ) + except KeyError: + pass + tmp[process].update({"Cores": data["TotalCores"]}) + tmp[process].update({"Threads": data["TotalThreads"]}) + UI().print_out_json(tmp) + else: + pass + if getloc and not self.rdmc.app.typepath.defs.isgen9: + data = self.rdmc.app.getcollectionmembers(getloc[0]) + + info["processor"] = data + else: + info["processor"] = None + if options.power: + data = None + if not self.rdmc.app.typepath.defs.isgen9: + getloc = self.rdmc.app.getidbytype("Power.") + else: + getloc = self.rdmc.app.getidbytype("PowerMetrics.") + if getloc: + data = self.rdmc.app.get_handler(getloc[0], silent=True, service=True) + info["power"] = data.dict + else: + info["power"] = None + if options.firmware: + data = None + if not self.rdmc.app.typepath.defs.isgen10: + getloc = self.rdmc.app.getidbytype("FwSwVersionInventory") + else: + getloc = self.rdmc.app.getidbytype("SoftwareInventoryCollection.") + + for gloc in getloc: + if "FirmwareInventory" in gloc: + data = self.rdmc.app.getcollectionmembers(gloc) + # if not self.rdmc.app.typepath.defs.isgen10: + # data1 = list(data) + info["firmware"] = data + if options.software: + data = None + if not self.rdmc.app.typepath.defs.isgen10: + getloc = self.rdmc.app.getidbytype("SoftwareInventory") + else: + getloc = self.rdmc.app.getidbytype("SoftwareInventoryCollection.") + data_list = list() + for gloc in getloc: + if "SoftwareInventory" in gloc: + if not self.rdmc.app.typepath.defs.isgen10: + data = self.rdmc.app.getcollectionmembers(gloc) + data_list.append(data.dict) + else: + data = self.rdmc.app.getcollectionmembers(gloc) + if not self.rdmc.app.typepath.defs.isgen10: + info["software"] = data_list + else: + info["software"] = data + if not options.showabsent: + jsonpath_expr = jsonpath_rw.parse("$..State") + matches = jsonpath_expr.find(info) + matches.reverse() + + for match in matches: + if match.value.lower() == "absent": + arr = None + statepath = "/" + str(match.full_path).replace(".", "/") + arr = re.split(r"[\[\]]", statepath) + if arr: + removedict = None + start = arr[0].split("/") + for key in start: + if key: + if not removedict: + removedict = info[key] + else: + removedict = removedict[key] + del removedict[int(arr[1])] + return info + + def build_json_out(self, info, absent): + headers = list(info.keys()) + content = dict() + if "power" in headers and info["power"]: + data = info["power"] + if data is not None: + for control in data["PowerControl"]: + if "PowerCapacityWatts" in control: + power_cap = {"Total Power Capacity": "%s W" % control["PowerCapacityWatts"]} + if "PowerConsumedWatts" in control: + power_cap.update({"Total Power Consumed": "%s W" % control["PowerConsumedWatts"]}) + if "PowerMetrics" in control: + if "AverageConsumedWatts" in control["PowerMetrics"]: + power_mertic = {"Average Power": "%s W" % control["PowerMetrics"]["AverageConsumedWatts"]} + if "MaxConsumedWatts" in control["PowerMetrics"]: + power_mertic.update( + {"Max Consumed Power": "%s W" % control["PowerMetrics"]["MaxConsumedWatts"]} + ) + if "MinConsumedWatts" in control["PowerMetrics"]: + power_mertic.update( + {"Minimum Consumed Power": "%s W" % control["PowerMetrics"]["MinConsumedWatts"]} + ) + if "IntervalInMin" in control["PowerMetrics"]: + powercontent = ( + "Power Metrics on %s min. Intervals" % control["PowerMetrics"]["IntervalInMin"] + ) + test = {powercontent: power_mertic} + content = {"power": power_cap} + content["power"].update(test) + try: + powersuplies = [] + for supply in data["PowerSupplies"]: + power_supply = "Power Supply %s" % supply["Oem"][self.rdmc.app.typepath.defs.oemhp]["BayNumber"] + powersupply = {} + if "PowerCapacityWatts" in supply: + powersupply = {"Power Capacity": "%s W" % supply["PowerCapacityWatts"]} + if "LastPowerOutputWatts" in supply: + powersupply.update({"Last Power Output": "%s W" % supply["LastPowerOutputWatts"]}) + if "LineInputVoltage" in supply: + powersupply.update({"Input Voltage": "%s V" % supply["LineInputVoltage"]}) + if "LineInputVoltageType" in supply: + powersupply.update({"Input Voltage Type": supply["LineInputVoltageType"]}) + if "HotplugCapable" in supply["Oem"][self.rdmc.app.typepath.defs.oemhp]: + powersupply.update( + {"Hotplug Capable": supply["Oem"][self.rdmc.app.typepath.defs.oemhp]["HotplugCapable"]} + ) + if "iPDUCapable" in supply["Oem"][self.rdmc.app.typepath.defs.oemhp]: + powersupply.update( + {"iPDU Capable": supply["Oem"][self.rdmc.app.typepath.defs.oemhp]["iPDUCapable"]} + ) + try: + if "Health" in supply["Status"]: + powersupply.update({"Health": supply["Status"]["Health"]}) + except KeyError: + pass + # if absent: + try: + if "State" in supply["Status"]: + powersupply.update({"State": supply["Status"]["State"]}) + except KeyError: + pass + # powerdetails = {power_supply: powersupply} + powersuplies.append(powersupply) + content["power"].update({"PowerSupplies": powersuplies}) + for redundancy in data["Redundancy"]: + redund_name = redundancy["Name"] + redundancy_dict = {"Redundancy Mode": redundancy["Mode"]} + try: + redundancy_dict.update({"Redundancy Health": redundancy["Status"]["Health"]}) + redundancy_dict.update({"Redundancy State": redundancy["Status"]["State"]}) + content.update({redund_name: redundancy_dict}) + except KeyError: + pass + except KeyError: + pass + + if "firmware" in headers and info["firmware"]: + firmware_info = [] + data = info["firmware"] + if data is not None: + if not self.rdmc.app.typepath.defs.isgen10: + for key, fw in data.items(): + for fw_gen9 in fw: + fw_str = fw_gen9["Name"] + ": " + fw_gen9["VersionString"] + firmware_info.append(fw_str) + else: + for fw in data: + fw_str = fw["Name"] + ": " + fw["Version"] + firmware_info.append(fw_str) + content.update({"firmware": firmware_info}) + + if "software" in headers and info["software"]: + output = "" + software_info = {} + data = info["software"] + if data is not None: + if isinstance(data, dict) or isinstance(data, list): + for sw in data: + software_info.update({sw["Name"]: sw.get("Version", "NA")}) + else: + # if not options.json: + software_info = "No information available for the server\n" + self.rdmc.ui.printer(software_info, verbose_override=True) + content.update({"software": software_info}) + + if "memory" in headers and info["memory"]: + data = info["memory"] + count = 1 + if data is not None: + collectiondata = data["Oem"][self.rdmc.app.typepath.defs.oemhp] + output = "Memory/DIMM Board Information" + + memory_status = "Advanced Memory Protection Status: %s" % collectiondata["AmpModeStatus"] + memorylist = {} + for board in collectiondata["MemoryList"]: + board_detail = "Board CPU: %s" % board["BoardCpuNumber"] + memory_info = {"Total Memory Size": "%s MiB" % board["BoardTotalMemorySize"]} + memory_info.update({"Board Memory Frequency": "%s MHz" % board["BoardOperationalFrequency"]}) + memory_info.update({"Board Memory Voltage": "%s MiB" % board["BoardOperationalVoltage"]}) + memorylist.update({board_detail: memory_info}) + memorystatus = {memory_status: memorylist} + memoryinfo = {output: memorystatus} + + for dimm in data[self.rdmc.app.typepath.defs.collectionstring]: + memoryconfig = {"Location": dimm["DeviceLocator"]} + try: + memoryconfig.update( + { + "Memory Type": "%s %s" + % ( + dimm["MemoryType"], + dimm["MemoryDeviceType"], + ) + } + ) + except KeyError: + memoryconfig.update({"Memory Type": dimm["MemoryType"]}) + memoryconfig.update({"Capacity": "%s MiB" % dimm["CapacityMiB"]}) + try: + memoryconfig.update({"Speed": "%s MHz" % dimm["OperatingSpeedMhz"]}) + memoryconfig.update({"Status": dimm["Oem"][self.rdmc.app.typepath.defs.oemhp]["DIMMStatus"]}) + memoryconfig.update({"Health": dimm["Status"]["Health"]}) + except KeyError: + pass + + if absent: + try: + memoryconfig.update({"State": dimm["Status"]["State"]}) + except KeyError: + pass + + memory_config = "Memory/DIMM Configuration" + " " + str(count) + memoryinfo.update({memory_config: memoryconfig}) + content.update({"memory": memoryinfo}) + count = count + 1 + + if "fans" in headers and info["fans"]: + fan_output = {} + fan_details = {} + if info["fans"] is not None: + for fan in info["fans"]: + fan_name = "" + if not self.rdmc.app.typepath.defs.isgen9: + fan_name = "%s" % fan["Name"] + else: + fan_name = "%s" % fan["FanName"] + fan_output = {} + fan_output.update({"Location": fan["Oem"][self.rdmc.app.typepath.defs.oemhp]["Location"]}) + if "Reading" in fan: + fan_output.update({"Reading": "%s%%" % fan["Reading"]}) + fan_output.update({"Redundant": fan["Oem"][self.rdmc.app.typepath.defs.oemhp]["Redundant"]}) + fan_output.update( + {"Hot Pluggable": fan["Oem"][self.rdmc.app.typepath.defs.oemhp]["HotPluggable"]} + ) + try: + if "Health" in fan["Status"]: + fan_output.update({"Health": fan["Status"]["Health"]}) + except KeyError: + pass + + # if absent: + try: + fan_output.update({"State": fan["Status"]["State"]}) + except KeyError: + pass + fan_details.update({fan_name: fan_output}) + content.update({"fans": fan_details}) + + if "thermals" in headers and info["thermals"]: + if info["thermals"] is not None: + sensor = "" + thermal_detail = {} + for temp in info["thermals"]: + if "SensorNumber" in temp: + sensor = "Sensor #%s:" % temp["SensorNumber"] + if "PhysicalContext" in temp: + thermal_info = {"Location": temp["PhysicalContext"]} + thermal_info.update({"Current Temp": "%s C" % temp["ReadingCelsius"]}) + if "UpperThresholdCritical" in temp: + thermal_info.update({"Critical Threshold": "%s C" % temp["UpperThresholdCritical"]}) + else: + thermal_info.update({"Critical Threshold": "-"}) + if "UpperThresholdFatal" in temp: + thermal_info.update({"Fatal Threshold": "%s C" % temp["UpperThresholdFatal"]}) + else: + thermal_info.update({"Fatal Threshold": "-"}) + try: + if "Health" in temp["Status"]: + thermal_info.update({"Health": temp["Status"]["Health"]}) + except KeyError: + pass + if absent: + try: + thermal_info.update({"State": temp["Status"]["State"]}) + except KeyError: + pass + thermal_detail.update({sensor: thermal_info}) + content.update({"thermals": thermal_detail}) + + if "processor" in headers and info["processor"]: + data = info["processor"] + processor_info = {} + if data is not None: + if not self.rdmc.app.typepath.defs.isgen9: + for processor in data: + process = "Processor %s" % processor["Id"] + processor_date = {"Model": processor["Model"]} + processor_date.update({"Step": processor.get("ProcessorId", {}).get("Step", "NA")}) + processor_date.update({"Socket": processor["Socket"]}) + processor_date.update({"Max Speed": "%s MHz" % processor["MaxSpeedMHz"]}) + try: + processor_date.update( + { + "Speed": "%s MHz" + % processor["Oem"][self.rdmc.app.typepath.defs.oemhp]["RatedSpeedMHz"] + } + ) + except KeyError: + pass + processor_date.update({"Cores": processor["TotalCores"]}) + processor_date.update({"Threads": processor["TotalThreads"]}) + try: + for cache in processor["Oem"][self.rdmc.app.typepath.defs.oemhp]["Cache"]: + processor_date.update({cache["Name"]: "%s KB" % cache["InstalledSizeKB"]}) + except KeyError: + pass + try: + processor_date.update({"Health": processor["Status"]["Health"]}) + except KeyError: + pass + if absent: + try: + processor_date.update({"State": processor["Status"]["State"]}) + except KeyError: + pass + processor_info.update({process: processor_date}) + else: + data = data.dict + # for processor in data: + process = "Processor %s" % data["Id"] + processor_date = {"Model": data["Model"]} + processor_date.update({"Step": data.get("ProcessorId", {}).get("Step", "NA")}) + processor_date.update({"Socket": data["Socket"]}) + processor_date.update({"Max Speed": "%s MHz" % data["MaxSpeedMHz"]}) + try: + processor_date.update( + {"Speed": "%s MHz" % data["Oem"][self.rdmc.app.typepath.defs.oemhp]["RatedSpeedMHz"]} + ) + except KeyError: + pass + processor_date.update({"Cores": data["TotalCores"]}) + processor_date.update({"Threads": data["TotalThreads"]}) + try: + for cache in data["Oem"][self.rdmc.app.typepath.defs.oemhp]["Cache"]: + processor_date.update({cache["Name"]: "%s KB" % cache["InstalledSizeKB"]}) + except KeyError: + pass + try: + processor_date.update({"Health": data["Status"]["Health"]}) + except KeyError: + pass + if absent: + try: + processor_date.update({"State": data["Status"]["State"]}) + except KeyError: + pass + processor_info.update({process: processor_date}) + content.update({"processor": processor_info}) + + if "proxy" in headers and info["proxy"]: + proxy_info = {} + data = info["proxy"] + try: + if data is not None: + for k, v in data.items(): + proxy_info.update({k: v}) + except KeyError: + pass + content.update({"proxy": proxy_info}) + + if "system" in headers: + data = info["system"] + system = {} + if data is not None: + for key, val in list(data.items()): + if key == "ethernet": + embedded_nic = {"Embedded NIC Count": data["NICCount"]} + system.update(embedded_nic) + for name in sorted(data["ethernet"]): + mac_name = str(name) + " " + "MAC" + mac = {mac_name: data["ethernet"][name]} + system.update(mac) + elif not key == "NICCount": + nic = {key: val} + system.update(nic) + content.update({"system": system}) + + UI().print_out_json(content) + + def prettyprintinfo(self, info, absent): + """Print info in human readable form from json + + :param info: info data collected + :type info: dict. + :param absent: flag to show or hide absent components + :type absent: bool. + """ + output = "" + headers = list(info.keys()) + if "system" in headers: + data = info["system"] + output = "------------------------------------------------\n" + output += "System:\n" + output += "------------------------------------------------\n" + if data is not None: + for key, val in list(data.items()): + if key == "ethernet": + output += "Embedded NIC Count: %s\n" % data["NICCount"] + for name in sorted(data["ethernet"]): + output += "%s MAC: %s\n" % (name, data["ethernet"][name]) + elif not key == "NICCount": + output += "%s: %s\n" % (key, val) + self.rdmc.ui.printer(output, verbose_override=True) + + if "firmware" in headers and info["firmware"]: + data = info["firmware"] + output = "------------------------------------------------\n" + output += "Firmware: \n" + output += "------------------------------------------------\n" + if data is not None: + if not self.rdmc.app.typepath.defs.isgen10: + for key, fw in data.items(): + for fw_gen9 in fw: + output += "%s : %s\n" % ( + fw_gen9["Name"], + fw_gen9["VersionString"], + ) + else: + for fw in data: + output += "%s : %s\n" % (fw["Name"], fw["Version"]) + self.rdmc.ui.printer(output, verbose_override=True) + + if "software" in headers and info["software"]: + output = "" + data = info["software"] + if not isinstance(data, dict) and not isinstance(data, list): + data = data.dict + output = "------------------------------------------------\n" + output += "Software: \n" + output += "------------------------------------------------\n" + if data is not None: + if isinstance(data, dict) or isinstance(data, list): + for sw in data: + output += "%s : %s\n" % (sw["Name"], sw.get("Version", "NA")) + else: + output = "No information available for the server\n" + self.rdmc.ui.printer(output, verbose_override=True) + + if "proxy" in headers and info["proxy"]: + output = "" + data = info["proxy"] + output = "------------------------------------------------\n" + output += "Proxy: \n" + output += "------------------------------------------------\n" + try: + if data is not None: + for k, v in data.items(): + output += "%s : %s\n" % (k, v) + except KeyError: + pass + self.rdmc.ui.printer(output, verbose_override=True) + + if "processor" in headers and info["processor"]: + + output = "" + data = info["processor"] + output = "------------------------------------------------\n" + output += "Processor:\n" + output += "------------------------------------------------\n" + if data is not None: + if not self.rdmc.app.typepath.defs.isgen9: + for processor in data: + output += "Processor %s:\n" % processor["Id"] + output += "\tModel: %s\n" % processor["Model"] + output += "\tStep: %s\n" % processor.get("ProcessorId", {}).get("Step", "NA") + output += "\tSocket: %s\n" % processor.get("Socket", "NA") + output += "\tMax Speed: %s MHz\n" % processor.get("MaxSpeedMHz", "NA") + try: + output += ( + "\tSpeed: %s MHz\n" + % processor["Oem"][self.rdmc.app.typepath.defs.oemhp]["RatedSpeedMHz"] + ) + except KeyError: + pass + output += "\tCores: %s\n" % processor.get("TotalCores", "NA") + output += "\tThreads: %s\n" % processor.get("TotalThreads", "NA") + try: + for cache in processor["Oem"][self.rdmc.app.typepath.defs.oemhp]["Cache"]: + output += "\t%s: %s KB\n" % ( + cache["Name"], + cache["InstalledSizeKB"], + ) + except KeyError: + pass + try: + output += "\tHealth: %s\n" % processor["Status"]["Health"] + except KeyError: + pass + if absent: + try: + output += "\tState: %s\n" % processor["Status"]["State"] + except KeyError: + pass + self.rdmc.ui.printer(output, verbose_override=True) + else: + data = data.dict + output += "Processor %s:\n" % data["Id"] + output += "\tModel: %s\n" % data["Model"] + output += "\tStep: %s\n" % data.get("ProcessorId", {}).get("Step", "NA") + output += "\tSocket: %s\n" % data["Socket"] + output += "\tMax Speed: %s MHz\n" % data["MaxSpeedMHz"] + try: + output += "\tSpeed: %s MHz\n" % data["Oem"][self.rdmc.app.typepath.defs.oemhp]["RatedSpeedMHz"] + except KeyError: + pass + output += "\tCores: %s\n" % data.get("TotalCores", "NA") + output += "\tThreads: %s\n" % data.get("TotalThreads", "NA") + try: + for cache in data["Oem"][self.rdmc.app.typepath.defs.oemhp]["Cache"]: + output += "\t%s: %s KB\n" % ( + cache["Name"], + cache["InstalledSizeKB"], + ) + except KeyError: + pass + try: + output += "\tHealth: %s\n" % data["Status"]["Health"] + except KeyError: + pass + if absent: + try: + output += "\tState: %s\n" % data["Status"]["State"] + except KeyError: + pass + self.rdmc.ui.printer(output, verbose_override=True) + + if "memory" in headers and info["memory"]: + data = info["memory"] + if data is not None: + collectiondata = data["Oem"][self.rdmc.app.typepath.defs.oemhp] + output = "------------------------------------------------\n" + output += "Memory/DIMM Board Information:\n" + output += "------------------------------------------------\n" + output += "Advanced Memory Protection Status: %s\n" % collectiondata["AmpModeStatus"] + for board in collectiondata["MemoryList"]: + output += "Board CPU: %s \n" % board["BoardCpuNumber"] + output += "\tTotal Memory Size: %s MiB\n" % board["BoardTotalMemorySize"] + output += "\tBoard Memory Frequency: %s MHz\n" % board["BoardOperationalFrequency"] + output += "\tBoard Memory Voltage: %s MiB\n" % board["BoardOperationalVoltage"] + output += "------------------------------------------------\n" + output += "Memory/DIMM Configuration:\n" + output += "------------------------------------------------\n" + for dimm in data[self.rdmc.app.typepath.defs.collectionstring]: + output += "Location: %s\n" % dimm["DeviceLocator"] + try: + output += "Memory Type: %s %s\n" % ( + dimm["MemoryType"], + dimm["MemoryDeviceType"], + ) + except KeyError: + output += "Memory Type: %s\n" % dimm["MemoryType"] + output += "Capacity: %s MiB\n" % dimm["CapacityMiB"] + try: + output += "Speed: %s MHz\n" % dimm["OperatingSpeedMhz"] + + output += "Status: %s\n" % dimm["Oem"][self.rdmc.app.typepath.defs.oemhp]["DIMMStatus"] + output += "Health: %s\n" % dimm["Status"]["Health"] + except KeyError: + pass + if absent: + try: + output += "State: %s\n" % dimm["Status"]["State"] + except KeyError: + pass + output += "\n" + self.rdmc.ui.printer(output, verbose_override=True) + + if "power" in headers and info["power"]: + data = info["power"] + output = "------------------------------------------------\n" + output += "Power:\n" + output += "------------------------------------------------\n" + if data is not None: + for control in data["PowerControl"]: + output += "Total Power Capacity: %s W\n" % control["PowerCapacityWatts"] + output += "Total Power Consumed: %s W\n" % control["PowerConsumedWatts"] + output += "\n" + output += "Power Metrics on %s min. Intervals:\n" % control["PowerMetrics"]["IntervalInMin"] + output += "\tAverage Power: %s W\n" % control["PowerMetrics"]["AverageConsumedWatts"] + output += "\tMax Consumed Power: %s W\n" % control["PowerMetrics"]["MaxConsumedWatts"] + output += "\tMinimum Consumed Power: %s W\n" % control["PowerMetrics"]["MinConsumedWatts"] + try: + for supply in data["PowerSupplies"]: + output += "------------------------------------------------\n" + output += "Power Supply %s:\n" % supply["Oem"][self.rdmc.app.typepath.defs.oemhp]["BayNumber"] + output += "------------------------------------------------\n" + if "PowerCapacityWatts" in supply: + output += "Power Capacity: %s W\n" % supply["PowerCapacityWatts"] + if "LastPowerOutputWatts" in supply: + output += "Last Power Output: %s W\n" % supply["LastPowerOutputWatts"] + if "LineInputVoltage" in supply: + output += "Input Voltage: %s V\n" % supply["LineInputVoltage"] + if "LineInputVoltageType" in supply: + output += "Input Voltage Type: %s\n" % supply["LineInputVoltageType"] + if "HotplugCapable" in supply["Oem"][self.rdmc.app.typepath.defs.oemhp]: + output += ( + "Hotplug Capable: %s\n" + % supply["Oem"][self.rdmc.app.typepath.defs.oemhp]["HotplugCapable"] + ) + if "iPDUCapable" in supply["Oem"][self.rdmc.app.typepath.defs.oemhp]: + output += ( + "iPDU Capable: %s\n" % supply["Oem"][self.rdmc.app.typepath.defs.oemhp]["iPDUCapable"] + ) + try: + if "Health" in supply["Status"]: + output += "Health: %s\n" % supply["Status"]["Health"] + except KeyError: + pass + + try: + if "State" in supply["Status"]: + output += "State: %s\n" % supply["Status"]["State"] + except KeyError: + pass + for redundancy in data["Redundancy"]: + output += "------------------------------------------------\n" + output += "%s\n" % redundancy["Name"] + output += "------------------------------------------------\n" + output += "Redundancy Mode: %s\n" % redundancy["Mode"] + try: + output += "Redundancy Health: %s\n" % redundancy["Status"]["Health"] + output += "Redundancy State: %s\n" % redundancy["Status"]["State"] + except KeyError: + pass + except KeyError: + pass + self.rdmc.ui.printer(output, verbose_override=True) + + if "fans" in headers and info["fans"]: + output = "------------------------------------------------\n" + output += "Fan(s):\n" + output += "------------------------------------------------\n" + if info["fans"] is not None: + for fan in info["fans"]: + if not self.rdmc.app.typepath.defs.isgen9: + output += "%s:\n" % fan["Name"] + else: + output += "%s:\n" % fan["FanName"] + output += "\tLocation: %s\n" % fan["Oem"][self.rdmc.app.typepath.defs.oemhp]["Location"] + if "Reading" in fan: + output += "\tReading: %s%%\n" % fan["Reading"] + output += "\tRedundant: %s\n" % fan["Oem"][self.rdmc.app.typepath.defs.oemhp]["Redundant"] + output += ( + "\tHot Pluggable: %s\n" % fan["Oem"][self.rdmc.app.typepath.defs.oemhp]["HotPluggable"] + ) + try: + if "Health" in fan["Status"]: + output += "\tHealth: %s\n" % fan["Status"]["Health"] + except KeyError: + pass + + try: + output += "\tState: %s\n" % fan["Status"]["State"] + except KeyError: + pass + self.rdmc.ui.printer(output, verbose_override=True) + + if "thermals" in headers and info["thermals"]: + output = "------------------------------------------------\n" + output += "Thermal:\n" + output += "------------------------------------------------\n" + if info["thermals"] is not None: + for temp in info["thermals"]: + if "SensorNumber" in temp: + output += "Sensor #%s:\n" % temp["SensorNumber"] + if "PhysicalContext" in temp: + output += "\tLocation: %s\n" % temp["PhysicalContext"] + output += "\tCurrent Temp: %s C\n" % temp["ReadingCelsius"] + if "UpperThresholdCritical" in temp: + output += "\tCritical Threshold: %s C\n" % temp["UpperThresholdCritical"] + else: + output += "\tCritical Threshold: -\n" + if "UpperThresholdFatal" in temp: + output += "\tFatal Threshold: %s C\n" % temp["UpperThresholdFatal"] + else: + output += "\tFatal Threshold: -\n" + try: + if "Health" in temp["Status"]: + output += "\tHealth: %s\n" % temp["Status"]["Health"] + except KeyError: + pass + if absent: + try: + output += "\tState: %s\n" % temp["Status"]["State"] + except KeyError: + pass + self.rdmc.ui.printer(output, verbose_override=True) + + def serverinfovalidation(self, options): + """serverinfo method validation function. + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def optionsvalidation(self, options): + """Checks/updates options. + :param options: command line options + :type options: list + """ + optlist = [ + options.proxy, + options.firmware, + options.software, + options.memory, + options.thermals, + options.fans, + options.power, + options.processors, + options.system, + ] + + if not any(optlist): + self.setalloptionstrue(options) + if options.all: + self.setalloptionstrue(options) + return options + + def setalloptionstrue(self, options): + """Updates all selector options values to be True. + :param options: command line options + :type options: list + """ + options.memory = True + options.thermals = True + options.firmware = True + options.software = True + options.fans = True + options.processors = True + options.power = True + options.system = True + options.proxy = True + options.showabsent = True + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-all", + "--all", + dest="all", + action="store_true", + help="Add information for all types.", + default=False, + ) + customparser.add_argument( + "-fw", + "--firmware", + dest="firmware", + action="store_true", + help="Add firmware information to the output.", + default=False, + ) + customparser.add_argument( + "-sw", + "--software", + dest="software", + action="store_true", + help="Add software information to the output.", + default=False, + ) + customparser.add_argument( + "-memory", + "--memory", + dest="memory", + action="store_true", + help="Add memory DIMM information to the output.", + default=False, + ) + customparser.add_argument( + "-fans", + "--fans", + dest="fans", + action="store_true", + help="Add fans information to the output.", + default=False, + ) + customparser.add_argument( + "-processors", + "--processors", + dest="processors", + action="store_true", + help="Add processor(s) information to the output.", + default=False, + ) + customparser.add_argument( + "-thermals", + "--thermals", + dest="thermals", + action="store_true", + help="Add thermal information to the output.", + default=False, + ) + customparser.add_argument( + "-power", + "--power", + dest="power", + action="store_true", + help="Add power information to the output.", + default=False, + ) + customparser.add_argument( + "-system", + "--system", + dest="system", + action="store_true", + help="Add basic system information to the output.", + default=False, + ) + customparser.add_argument( + "--showabsent", + dest="showabsent", + action="store_true", + help="Include information on absent components in the output.", + default=False, + ) + customparser.add_argument( + "-proxy", + "--proxy", + dest="proxy", + action="store_true", + help="Add proxy information to the output", + default=False, + ) + customparser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerStateCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerStateCommand.py new file mode 100644 index 0000000..ea40b7a --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerStateCommand.py @@ -0,0 +1,106 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Server State Command for rdmc""" + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + + +class ServerStateCommand: + """Returns the current state of the server that is currently logged in""" + + def __init__(self): + self.ident = { + "name": "serverstate", + "usage": None, + "description": "Returns the current state of the" " server\n\n\tExample: serverstate", + "summary": "Returns the current state of the server.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main serverstate function + + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if args: + raise InvalidCommandLineError( + "Invalid number of parameters, " "serverstate command does not take any parameters." + ) + + self.serverstatevalidation(options) + + path = self.rdmc.app.typepath.defs.systempath + results = self.rdmc.app.get_handler(path, silent=True, uncache=True).dict + + if results: + results = results["Oem"][self.rdmc.app.typepath.defs.oemhp]["PostState"] + self.rdmc.ui.printer("The server is currently in state: " + results + "\n") + else: + raise NoContentsFoundForOperationError("Unable to retrieve server state") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def serverstatevalidation(self, options): + """Server state method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerlogsCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerlogsCommand.py new file mode 100644 index 0000000..0b10d42 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/ServerlogsCommand.py @@ -0,0 +1,1480 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Log Operations Command for rdmc""" + +import ctypes +import datetime +import itertools +import json +import os +import platform +import shlex +import string +import subprocess +import sys +import tempfile +import time + +from six.moves import queue + +import redfish.hpilo.risblobstore2 as risblobstore2 +from redfish.rest.connections import SecurityStateError +from redfish.ris.utils import filter_output + +try: + from rdmc_helper import ( + LOGGER, + UI, + IncompatibleiLOVersionError, + InvalidCListFileError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + InvalidKeyError, + InvalidMSCfileInputError, + MultipleServerConfigError, + NoContentsFoundForOperationError, + PartitionMoutingError, + ReturnCodes, + UnabletoFindDriveError, + ) +except ImportError: + from ilorest.rdmc_helper import ( + LOGGER, + UI, + IncompatibleiLOVersionError, + InvalidCListFileError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + InvalidKeyError, + InvalidMSCfileInputError, + MultipleServerConfigError, + NoContentsFoundForOperationError, + PartitionMoutingError, + ReturnCodes, + UnabletoFindDriveError, + ) + +if os.name == "nt": + import win32api +elif sys.platform != "darwin" and "VMkernel" not in platform.uname(): + import pyudev + + +class ServerlogsCommand: + """Download logs from the server that is currently logged in""" + + def __init__(self): + self.ident = { + "name": "serverlogs", + "usage": None, + "description": "Download the AHS" + " logs from the logged in server.\n\texample: serverlogs " + "--selectlog=AHS \n\n\tClear the AHS logs " + "from the logged in server.\n\texample: serverlogs " + "--selectlog=AHS --clearlog\n\n\tDownload the IEL" + " logs from the logged in server.\n\texample: serverlogs " + "--selectlog=IEL -f IELlog.txt\n\n\tClear the IEL logs " + "from the logged in server.\n\texample: serverlogs " + "--selectlog=IEL --clearlog\n\n\tDownload the IML" + " logs from the logged in server.\n\texample: serverlogs " + "--selectlog=IML -f IMLlog.txt\n\n\tClear the IML logs " + "from the logged in server.\n\texample: serverlogs " + "--selectlog=IML --clearlog\n\n\t(IML LOGS ONLY FEATURE)" + "\n\tInsert entry in the IML logs from the logged in " + 'server.\n\texample: serverlogs --selectlog=IML -m "Text' + ' message for maintenance"\n\n\tDownload the iLO Security' + " logs from the logged in server.\n\texample: serverlogs " + "--selectlog=SL -f SLlog.txt\n\n\tClear the iLO Security logs " + "from the logged in server.\n\texample: serverlogs " + "--selectlog=SL --clearlog\n\n\t" + "Download logs from multiple servers\n\t" + "example: serverlogs --mpfile mpfilename.txt -o output" + "directorypath --mplog=IEL,IML\n\t" + "Note: multiple server file(mpfilename.txt) " + "format (1 server per new line)\n\t" + "--url -u admin -p password\n\t" + "--url -u admin -p password\n\t" + "--url -u admin -p password\n\n\t" + "Insert customised string " + "if required for AHS\n\texample: serverlogs --selectlog=" + 'AHS --customiseAHS "from=2014-03-01&&to=2014' + '-03-30"\n\n\t(AHS LOGS ONLY FEATURE)\n\tInsert the location/' + "path of directory where AHS log needs to be saved." + " \n\texample: serverlogs --selectlog=AHS " + "--directorypath=C:\\Python38\\DataFiles\n\n\tRepair IML log." + "\n\texample: serverlogs --selectlog=IML --repair IMLlogID", + "summary": "Download and perform log operations.", + "aliases": ["logservices"], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + self.dontunmount = None + self.queue = queue.Queue() + self.abspath = None + self.lib = None + + def run(self, line, help_disp=False): + """Main serverlogs function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if not getattr(options, "sessionid", False): + self.serverlogsvalidation(options) + + if options.mpfilename: + self.rdmc.ui.printer("Downloading logs for multiple servers...\n") + return self.gotompfunc(options) + + self.serverlogsworkerfunction(options) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def serverlogsworkerfunction(self, options): + """ "Main worker function outlining the process + + :param options: command line options + :type options: list. + """ + ilover = self.rdmc.app.getiloversion() + if not options.service: + raise InvalidCommandLineError("Please select a log type using the --selectlog option.") + + if options.service.lower() == "iml": + path = self.returnimlpath(options=options) + elif options.service.lower() == "iel": + path = self.returnielpath(options=options) + elif options.service.lower() == "sl": + path = self.returnslpath(options=options) + elif options.service.lower() == "ahs" and options.filter: + raise InvalidCommandLineError("Cannot filter AHS logs.") + elif ( + options.service.lower() == "ahs" + and (not self.rdmc.app.typepath.url or self.rdmc.app.typepath.url.startswith("blobstore")) + and not options.clearlog + and ilover < 7 + ): + if options.customiseAHS is not None: + current_date = str(datetime.datetime.now()).split()[0] + date_check = options.customiseAHS + from_date = date_check.split("&")[0].split("=")[1] + to_date = date_check.split("to")[-1].split("=")[-1] + if to_date < from_date or from_date > current_date: + raise InvalidCommandLineError("Please provide valid date to customiseAHS") + self.downloadahslocally(options=options) + return + elif options.service.lower() == "ahs": + if ilover >= 7 and self.rdmc.app.typepath.url.startswith("blobstore"): + raise InvalidCommandLineError( + "Download of AHS is not supported via chif in iLO7.\n" "Kindly re-login with VNIC and re execute.\n" + ) + else: + path = self.returnahspath(options) + else: + raise InvalidCommandLineError("Log opted does not exist!") + + data = None + + if options.clearlog: + self.clearlog(path) + elif options.mainmes: + self.addmaintenancelogentry(options, path=path) + elif options.repiml: + self.repairlogentry(options, path=path) + else: + data = self.downloaddata(path=path, options=options) + + self.savedata(options=options, data=data) + + def gotompfunc(self, options): + """ "Function to download logs from multiple servers concurrently + + :param options: command line options + :type options: list. + """ + if options.mpfilename: + mfile = options.mpfilename + outputdir = None + + if options.outdirectory: + outputdir = options.outdirectory + + if self.runmpfunc(mpfile=mfile, outputdir=outputdir, options=options): + return ReturnCodes.SUCCESS + else: + raise MultipleServerConfigError("One or more servers failed to download logs.") + + def runmpfunc(self, mpfile=None, outputdir=None, options=None): + """Main worker function for multi file command + + :param mpfile: configuration file + :type mpfile: string. + :param outputdir: custom output directory + :type outputdir: string. + """ + # self.logoutobj.run("") + LOGGER.info("Validating input server collection file.") + data = self.validatempfile(mpfile=mpfile, options=options) + + if not data: + return False + + processes = [] + finalreturncode = True + outputform = "%Y-%m-%d-%H-%M-%S" + + if outputdir: + if outputdir.endswith(('"', "'")) and outputdir.startswith(('"', "'")): + outputdir = outputdir[1:-1] + + if not os.path.isdir(outputdir): + raise InvalidCommandLineError("The given output folder path does not exist.") + + dirpath = outputdir + else: + dirpath = os.getcwd() + + dirname = "%s_%s" % ( + datetime.datetime.now().strftime(outputform), + "MSClogs", + ) + createdir = os.path.join(dirpath, dirname) + os.mkdir(createdir) + + oofile = open(os.path.join(createdir, "CompleteOutputfile.txt"), "w+") + self.rdmc.ui.printer("Creating multiple processes to load configuration " "concurrently to all servers...\n") + + while True: + if not self.queue.empty(): + line = self.queue.get() + else: + break + + finput = "\n" + "Output for " + line[line.index("--url") + 1] + ": \n\n" + urlvar = line[line.index("--url") + 1] + urlfilename = urlvar.split("//")[-1] + line[line.index("-f") + 1] = str(line[line.index("-f") + 1]) + urlfilename + + if "python" in os.path.basename(sys.executable.lower()): + # If we are running from source + # we have to add the python file to the command + listargforsubprocess = [sys.executable, sys.argv[0]] + line + else: + listargforsubprocess = [sys.executable] + line + + if os.name != "nt": + listargforsubprocess = " ".join(listargforsubprocess) + + logfile = open(os.path.join(createdir, urlfilename + ".txt"), "w+") + pinput = subprocess.Popen( + listargforsubprocess, + shell=True, + stdout=logfile, + stderr=logfile, + ) + + processes.append((pinput, finput, urlvar, logfile)) + + for pinput, finput, urlvar, logfile in processes: + pinput.wait() + returncode = pinput.returncode + finalreturncode = finalreturncode and not returncode + + logfile.close() + logfile = open(os.path.join(createdir, urlvar + ".txt"), "r+") + oofile.write(finput + str(logfile.read())) + oofile.write("-x+x-" * 16) + logfile.close() + + if returncode == 0: + self.rdmc.ui.printer("Loading Configuration for {} : SUCCESS\n".format(urlvar)) + else: + self.rdmc.ui.error("Loading Configuration for {} : FAILED\n".format(urlvar)) + self.rdmc.ui.error( + "ILOREST return code : {}.\n" + "For more details please check {}" + ".txt under {} directory.\n".format(returncode, urlvar, createdir) + ) + + oofile.close() + + if finalreturncode: + self.rdmc.ui.printer("All servers have been successfully configured.\n") + + return finalreturncode + + def validatempfile(self, mpfile=None, options=None): + """Validate temporary file + + :param mpfile: configuration file + :type mpfile: string. + :param lfile: custom file name + :type lfile: string. + """ + self.rdmc.ui.printer("Checking given server information...\n") + + if not mpfile: + return False + elif mpfile.startswith(('"', "'")) and mpfile[0] == mpfile[-1]: + mpfile = mpfile[1:-1] + + if not os.path.isfile(mpfile) or not options.mplog: + raise InvalidFileInputError( + "File '%s' doesn't exist, please " "create file by running save command." % mpfile + ) + + logs = self.checkmplog(options) + + try: + with open(mpfile, "r") as myfile: + data = list() + cmdtorun = ["serverlogs"] + globalargs = ["-v", "--nocache"] + + while True: + line = myfile.readline() + if not line: + break + + for logval in logs: + cmdargs = [ + "--selectlog=" + str(logval), + "-f", + str(logval), + ] + if line.endswith(os.linesep): + line.rstrip(os.linesep) + + args = shlex.split(line, posix=False) + + if len(args) < 6: + self.rdmc.ui.printer( + "\nInput file format should be " + "1 server per new line \n" + "For Example: " + "--url -u -p \n\n" + ) + self.rdmc.ui.error("Incomplete data in input file: {}".format(line)) + raise InvalidMSCfileInputError("Please verify the " "contents of the %s file" % mpfile) + else: + linelist = globalargs + cmdtorun + args + cmdargs + line = str(line).replace("\n", "") + self.queue.put(linelist) + data.append(linelist) + except Exception as excp: + LOGGER.info("%s", str(excp)) + raise excp + + if data: + return data + + return False + + def checkmplog(self, options): + """Function to validate mplogs options + + :param options: command line options + :type options: list. + """ + if options.mplog: + logs = str(options.mplog) + if "," in logs: + logs = logs.split(",") + return logs + if logs in ("all", "IEL", "IML", "AHS"): + if logs == "all": + logs = ["IEL", "IML", "AHS"] + else: + logs = [logs] + return logs + raise InvalidCommandLineError("Error in mplogs options") + + def addmaintenancelogentry(self, options, path=None): + """Worker function to add maintenance log + + :param options: command line options + :type options: list. + :param path: path to post maintenance log + :type path: str + """ + LOGGER.info("Adding maintenance logs") + if options.mainmes is None: + raise InvalidCommandLineError("") + + if options.service != "IML": + raise InvalidCommandLineError("Log opted cannot make maintenance entries!") + + message = options.mainmes + + if message.endswith(('"', "'")) and message.startswith(('"', "'")): + message = message[1:-1] + + if path: + bodydict = dict() + bodydict["path"] = path + bodydict["body"] = {"EntryCode": "Maintenance", "Message": message} + + LOGGER.info( + "Writing maintenance post to %s with %s", + str(path), + str(bodydict["body"]), + ) + + self.rdmc.app.post_handler(path, bodydict["body"]) + + def repairlogentry(self, options, path=None): + """Worker function to repair maintenance log + + :param options: command line options + :type options: list. + :param path: path of IML log Entries + :type path: str + """ + if options.repiml is None or (options.clearlog and options.repiml): + raise InvalidCommandLineError("") + + if options.service != "IML": + raise InvalidCommandLineError("Log opted cannot repair maintenance entries.") + + imlid = options.repiml + + if imlid.endswith(('"', "'")) and imlid.startswith(('"', "'")): + imlid = imlid[1:-1] + + if path: + imlidpath = [path if path[-1] == "/" else path + "/"][0] + str(imlid) + "/" + bodydict = dict() + bodydict["path"] = imlidpath + if self.rdmc.app.typepath.defs.isgen9: + bodydict["body"] = {"Oem": {"Hp": {"Repaired": True}}} + else: + bodydict["body"] = {"Oem": {"Hpe": {"Repaired": True}}} + LOGGER.info( + "Repairing maintenance log at %s with %s", + str(imlidpath), + str(bodydict["body"]), + ) + + self.rdmc.app.patch_handler(imlidpath, bodydict["body"]) + + def clearlog(self, path): + """Worker function to clear logs. + + :param path: path to post clear log action + :type path: str + """ + LOGGER.info("Clearing logs.") + if path and self.rdmc.app.typepath.defs.isgen9: + if path.endswith("/Entries"): + path = path[: -len("/Entries")] + elif path.endswith("Entries/"): + path = path[: -len("Entries/")] + + bodydict = dict() + bodydict["path"] = path + bodydict["body"] = {"Action": "ClearLog"} + self.rdmc.app.post_handler(path, bodydict["body"]) + elif path: + action = path.split("/")[-2] + bodydict = dict() + bodydict["path"] = path + bodydict["body"] = {"Action": action} + self.rdmc.app.post_handler(path, bodydict["body"]) + + def downloaddata(self, path=None, options=None): + """Worker function to download the log files + + :param options: command line options + :type options: list. + :param path: path to download logs + :type path: str + """ + if path: + LOGGER.info("Getting data from %s", str(path)) + if options.service == "AHS": + data = self.rdmc.app.get_handler(path, silent=True, uncache=True) + if data: + return data.ori + else: + raise NoContentsFoundForOperationError("Unable to retrieve AHS logs.") + else: + data = self.rdmc.app.get_handler(path, silent=True) + + datadict = data.dict + + try: + completedatadictlist = datadict["Items"] if "Items" in datadict else datadict["Members"] + except Exception: + self.rdmc.ui.error("No data available within log.\n") + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + + if self.rdmc.app.typepath.defs.flagforrest: + morepages = True + + while morepages: + if "links" in datadict and "NextPage" in datadict["links"]: + next_link_uri = path + "?page=" + str(datadict["links"]["NextPage"]["page"]) + + href = "%s" % next_link_uri + data = self.rdmc.app.get_handler(href, silent=True) + datadict = data.dict + + try: + completedatadictlist = completedatadictlist + datadict["Items"] + except Exception: + self.rdmc.ui.error("No data available within log.\n") + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + else: + morepages = False + else: + datadict = list() + + for members in completedatadictlist: + if len(list(members.keys())) == 1: + memberpath = members[self.rdmc.app.typepath.defs.hrefstring] + data = self.rdmc.app.get_handler(memberpath, silent=True) + datadict = datadict + [data.dict] + else: + datadict = datadict + [members] + completedatadictlist = datadict + + if completedatadictlist: + try: + return completedatadictlist + except Exception: + self.rdmc.ui.error("Could not get the data from server.\n") + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + else: + self.rdmc.ui.error("No log data present.\n") + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + else: + self.rdmc.ui.error("Path not found for input log.\n") + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + + def returnimlpath(self, options=None): + """Return the requested path of the IML logs + + :param options: command line options + :type options: list. + """ + LOGGER.info("Obtaining IML path for download.") + path = "" + val = "/redfish/v1/Systems/1/LogServices/IML/" + filtereddatainstance = self.rdmc.app.get_handler(val, silent=True).dict + + try: + filtereddictslists = filtereddatainstance + if not filtereddictslists: + raise NoContentsFoundForOperationError("Unable to retrieve instance.") + # for filtereddict in filtereddictslists: + if filtereddictslists["Name"] == "Integrated Management Log": + if options.clearlog: + if self.rdmc.app.typepath.defs.flagforrest: + linkpath = filtereddictslists["links"] + selfpath = linkpath["self"] + path = selfpath["href"] + elif self.rdmc.app.typepath.defs.isgen9: + path = filtereddictslists[self.rdmc.app.typepath.defs.hrefstring] + else: + actiondict = filtereddictslists["Actions"] + clearkey = [x for x in actiondict if x.endswith("ClearLog")] + path = actiondict[clearkey[0]]["target"] + else: + linkpath = filtereddictslists["links"] if "links" in filtereddictslists else filtereddictslists + dictpath = linkpath["Entries"] + dictpath = dictpath[0] if isinstance(dictpath, list) else dictpath + path = dictpath[self.rdmc.app.typepath.defs.hrefstring] + if not path: + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + except NoContentsFoundForOperationError as excp: + raise excp + except Exception: + self.rdmc.ui.error("No path found for the entry.\n") + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + + if self.rdmc.opts.verbose: + self.rdmc.ui.printer(str(path) + "\n") + + return path + + def returnielpath(self, options=None): + """Return the requested path of the IEL logs + + :param options: command line options + :type options: list. + """ + LOGGER.info("Obtaining IEL path for download.") + path = "" + val = "/redfish/v1/Managers/1/LogServices/IEL/" + filtereddatainstance = self.rdmc.app.get_handler(val, silent=True).dict + + try: + filtereddictslists = filtereddatainstance + if not filtereddictslists: + raise NoContentsFoundForOperationError("Unable to retrieve instance.") + # for filtereddict in filtereddictslists: + if filtereddictslists["Name"] == "iLO Event Log": + if options.clearlog: + if self.rdmc.app.typepath.defs.flagforrest: + linkpath = filtereddictslists["links"] + selfpath = linkpath["self"] + path = selfpath["href"] + elif self.rdmc.app.typepath.defs.isgen9: + path = filtereddictslists[self.rdmc.app.typepath.defs.hrefstring] + else: + actiondict = filtereddictslists["Actions"] + clearkey = [x for x in actiondict if x.endswith("ClearLog")] + path = actiondict[clearkey[0]]["target"] + else: + linkpath = filtereddictslists["links"] if "links" in filtereddictslists else filtereddictslists + dictpath = linkpath["Entries"] + dictpath = dictpath[0] if isinstance(dictpath, list) else dictpath + path = dictpath[self.rdmc.app.typepath.defs.hrefstring] + + if not path: + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + except NoContentsFoundForOperationError as excp: + raise excp + except Exception: + self.rdmc.ui.error("No path found for the entry.\n") + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + + if self.rdmc.opts.verbose: + self.rdmc.ui.printer(str(path) + "\n") + + return path + + def returnslpath(self, options=None): + """Return the requested path of the SL logs + + :param options: command line options + :type options: list. + """ + + if not self.rdmc.app.typepath.defs.isgen10 or not self.rdmc.app.getiloversion() >= 5.210: + raise IncompatibleiLOVersionError("Security logs are only available on iLO 5 2.10 or" " greater.") + LOGGER.info("Obtaining SL path for download.") + path = "" + val = "/redfish/v1/Systems/1/LogServices/SL/" + filtereddatainstance = self.rdmc.app.get_handler(val, silent=True).dict + + try: + filtereddictslists = filtereddatainstance + if not filtereddictslists: + raise NoContentsFoundForOperationError("Unable to retrieve instance.") + # for filtereddict in filtereddictslists: + if filtereddictslists["Id"] == "SL": + if options.clearlog: + actiondict = filtereddictslists["Actions"] + clearkey = [x for x in actiondict if x.endswith("ClearLog")] + path = actiondict[clearkey[0]]["target"] + else: + dictpath = filtereddictslists["Entries"] + dictpath = dictpath[0] if isinstance(dictpath, list) else dictpath + path = dictpath[self.rdmc.app.typepath.defs.hrefstring] + + if not path: + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + except NoContentsFoundForOperationError as excp: + raise excp + except Exception: + self.rdmc.ui.error("No path found for the entry.\n") + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + + if self.rdmc.opts.verbose: + self.rdmc.ui.printer(str(path) + "\n") + + return path + + def returnahspath(self, options): + """Return the requested path of the AHS logs + + :param options: command line options + :type options: list. + """ + LOGGER.info("Obtaining AHS path for download.") + path = "" + + if options.filename: + raise InvalidCommandLineError( + "AHS logs must be downloaded with " "default name. Please re-run command without filename option." + ) + + val = "/redfish/v1/Managers/1/ActiveHealthSystem/" + filtereddatainstance = self.rdmc.app.get_handler(val, silent=True).dict + + try: + filtereddictslists = filtereddatainstance + + if not filtereddictslists: + raise NoContentsFoundForOperationError("Unable to retrieve log instance.") + + # for filtereddict in filtereddictslists: + if options.clearlog: + if self.rdmc.app.typepath.defs.flagforrest: + linkpath = filtereddictslists["links"] + selfpath = linkpath["self"] + path = selfpath["href"] + elif self.rdmc.app.typepath.defs.isgen9: + path = filtereddictslists[self.rdmc.app.typepath.defs.hrefstring] + else: + actiondict = filtereddictslists["Actions"] + clearkey = [x for x in actiondict if x.endswith("ClearLog")] + path = actiondict[clearkey[0]]["target"] + else: + linkpath = filtereddictslists["links"] if "links" in filtereddictslists else filtereddictslists["Links"] + + ahslocpath = linkpath["AHSLocation"] + path = ahslocpath["extref"] + weekpath = None + + if options.downloadallahs: + path = path + elif options.customiseAHS: + custr = options.customiseAHS + if custr.startswith(("'", '"')) and custr.endswith(("'", '"')): + custr = custr[1:-1] + + if custr.startswith("from="): + path = path.split("downloadAll=1")[0] + + path = path + custr + else: + if "RecentWeek" in list(linkpath.keys()): + weekpath = linkpath["RecentWeek"]["extref"] + elif "AHSFileStart" in list(filtereddictslists.keys()): + enddate = filtereddictslists["AHSFileEnd"].split("T")[0] + startdate = filtereddictslists["AHSFileStart"].split("T")[0] + + enddat = list(map(int, enddate.split("-"))) + startdat = list(map(int, startdate.split("-"))) + + weekago = datetime.datetime.now() - datetime.timedelta(days=6) + weekagostr = list(map(int, (str(weekago).split()[0]).split("-"))) + + strdate = min( + max( + datetime.date(weekagostr[0], weekagostr[1], weekagostr[2]), + datetime.date(startdat[0], startdat[1], startdat[2]), + ), + datetime.date(enddat[0], enddat[1], enddat[2]), + ) + + aweekstr = "from=" + str(strdate) + "&&to=" + enddate + else: + week_ago = datetime.datetime.now() - datetime.timedelta(days=6) + aweekstr = ( + "from=" + str(week_ago).split()[0] + "&&to=" + str(datetime.datetime.now()).split()[0] + ) + + path = path.split("downloadAll=1")[0] + path = weekpath if weekpath else path + aweekstr + + if not path: + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + except NoContentsFoundForOperationError as excp: + raise excp + except Exception: + self.rdmc.ui.error("No path found for the entry.\n") + raise NoContentsFoundForOperationError("Unable to retrieve logs.") + + if self.rdmc.opts.verbose: + self.rdmc.ui.printer(str(path) + "\n") + + return path + + def savedata(self, options=None, data=None): + """Save logs into the specified filename + + :param options: command line options + :type options: list. + :param data: log data + :type data: dict + """ + LOGGER.info("Saving/Writing data...") + if data: + data = self.filterdata(data=data, tofilter=options.filter) + if options.service == "AHS": + filename = self.getahsfilename(options) + + with open(filename, "wb") as foutput: + foutput.write(data) + elif options.filename: + with open(options.filename[0], "w") as foutput: + if options.json: + foutput.write(str(json.dumps(data, indent=2, sort_keys=True))) + else: + foutput.write(str(json.dumps(data))) + else: + if options.json: + UI().print_out_json(data) + else: + UI().print_out_human_readable(data) + + def downloadahslocally(self, options=None): + """Download AHS logs locally + + :param options: command line options + :type options: list. + """ + try: + self.downloadahslocalworker(options) + except Exception: + self.unmountbb() + raise + return + + def downloadahslocalworker(self, options): + """Worker function to download AHS logs locally + + :param options: command line options + :type options: list. + """ + LOGGER.info("Entering AHS local download functions...") + self.dontunmount = True + + if self.rdmc.app.typepath.ilogen and self.rdmc.app.typepath.ilogen < 4: + raise IncompatibleiLOVersionError("Need at least iLO 4 for this program to run!\n") + + if sys.platform == "darwin": + raise InvalidCommandLineError("AHS loacal download is not supported on MacOS") + elif "VMkernel" in platform.uname(): + raise InvalidCommandLineError("AHS loacal download is not supported on VMWare") + + if options.filename: + raise InvalidCommandLineError( + "AHS logs must be downloaded with default name! " "Re-run command without filename!" + ) + + secstate = risblobstore2.BlobStore2().get_security_state() + # self.rdmc.ui.printer('Security State is {}...\n'.format(secstate)) + + if isinstance(secstate, bytes): + secstate = secstate.decode("utf-8") + if isinstance(secstate, str): + secstate = secstate.replace("\x00", "").strip() + if secstate == "": + secstate = 0 + self.rdmc.ui.printer("Security State is {}...\n".format(secstate)) + if int(secstate) > 3: + raise SecurityStateError("AHS logs cannot be downloaded locally " "in high security state.\n") + + self.lib = risblobstore2.BlobStore2.gethprestchifhandle() + + self.rdmc.ui.printer("Mounting AHS partition...\n") + + try: + (manual_ovr, abspath) = self.getbbabspath() + except (PartitionMoutingError, IOError): + self.mountbb() + (manual_ovr, abspath) = self.getbbabspath() + self.dontunmount = False + + LOGGER.info("Blackbox folder path:%s", ",".join(next(os.walk(abspath))[2])) + if "data" not in abspath: + self.abspath = os.path.join(abspath, "data") + LOGGER.info("Blackbox data files path:%s", self.abspath) + + if self.rdmc.app.typepath.ilogen: + self.updateiloversion() + try: + cfilelist = self.getclistfilelisting() + allfiles = self.getfilenames(options=options, cfilelist=cfilelist) + self.getdatfilelisting(cfilelist=cfilelist, allfile=allfiles) + self.createahsfile(ahsfile=self.getahsfilename(options)) + except Exception as excp: + raise PartitionMoutingError( + "An exception occurred obtaining Blackbox data files. " "The directory may be empty: %s.\n" % excp + ) + + if not manual_ovr: + self.unmountbb() + else: + self.unmountbb() + self.manualunmountbb(abspath) + + def updateiloversion(self): + """Update iloversion to create appropriate headers.""" + LOGGER.info("Updating iloversion to format data appropriately") + self.lib.updateiloversion.argtypes = [ctypes.c_float] + self.lib.updateiloversion(float("2." + str(self.rdmc.app.typepath.ilogen))) + + def createahsfile(self, ahsfile=None): + """Create the AHS file + + :param ahsfile: ahsfilename + :type ahsfile: str + """ + LOGGER.info("Creating AHS file from the formatted data.") + self.clearahsfile(ahsfile=ahsfile) + self.lib.setAHSFilepath.argtypes = [ctypes.c_char_p] + self.lib.setAHSFilepath(os.path.abspath(ahsfile).encode("utf-8", "ignore")) + self.lib.setBBdatapath.argtypes = [ctypes.c_char_p] + self.lib.setBBdatapath(self.abspath.encode("utf-8", "ignore")) + self.lib.createAHSLogFile_G9() + + def clearahsfile(self, ahsfile=None): + """Clear the ahslog file if already present in filesystem + + :param ahsfile: ahsfilename + :type ahsfile: str + """ + LOGGER.info("Clear redundant AHS file in current folder.") + try: + os.remove(ahsfile) + except Exception: + pass + + def getdatfilelisting(self, cfilelist=None, allfile=None): + """Create headers based on the AHS log files within blackbox + + :param cfilelist: configuration files in blackbox + :type cfilelist: list of strings + :param allfile: all files within blackbox + :type allfile: list + """ + LOGGER.info("Reading Blackbox to determine data files.") + allfile = list(set(allfile) | set(cfilelist)) + LOGGER.info("Final filelist %s", str(allfile)) + for files in allfile: + if files.startswith((".", "..")): + continue + + bisrequiredfile = False + + if files.split(".")[0] in [x.split(".")[0] for x in cfilelist]: + if files.endswith("bb"): + bisrequiredfile = True + self.lib.updatenfileoptions() + + self.lib.gendatlisting.argtypes = [ + ctypes.c_char_p, + ctypes.c_bool, + ctypes.c_uint, + ] + + filesize = os.stat(os.path.join(self.abspath, files)).st_size + self.lib.gendatlisting(files.encode("ascii", "ignore"), bisrequiredfile, filesize) + + def getfilenames(self, options=None, cfilelist=None): + """Get all file names from the blackbox directory.""" + LOGGER.info("Obtaining all relevant file names from Blackbox.") + datelist = list() + allfiles = list() + + filenames = next(os.walk(self.abspath))[2] + timenow = (str(datetime.datetime.now()).split()[0]).split("-") + strdate = enddate = datetime.date(int(timenow[0]), int(timenow[1]), int(timenow[2])) + + if not options.downloadallahs and not options.customiseAHS: + weekago = datetime.datetime.now() - datetime.timedelta(days=6) + weekagostr = (str(weekago).split()[0]).split("-") + strdate = datetime.date(int(weekagostr[0]), int(weekagostr[1]), int(weekagostr[2])) + + if options.customiseAHS: + instring = options.customiseAHS + if instring.startswith(("'", '"')) and instring.endswith(("'", '"')): + instring = instring[1:-1] + try: + (strdatestr, enddatestr) = [e.split("-") for e in instring.split("from=")[-1].split("&&to=")] + strdate = datetime.date(int(strdatestr[0]), int(strdatestr[1]), int(strdatestr[2])) + enddate = datetime.date(int(enddatestr[0]), int(enddatestr[1]), int(enddatestr[2])) + except Exception as excp: + LOGGER.warning(excp) + raise InvalidCommandLineError("Cannot parse customised AHSinput.") + + atleastonefile = False + for files in list(filenames): + if not files.endswith("bb"): + # Check the logic for the non bb files + allfiles.append(files) + continue + + if options.downloadallahs: + atleastonefile = True + if files in ("ilo_boot_support.zbb", "sys_boot_support.zbb"): + allfiles.append(files) + filenames.append(files) + LOGGER.info("%s, number of files%s", files, len(filenames)) + continue + filenoext = files.rsplit(".", 1)[0] + filesplit = filenoext.split("-") + + try: + newdate = datetime.date(int(filesplit[1]), int(filesplit[2]), int(filesplit[3])) + datelist.append(newdate) + + if (strdate <= newdate) and (newdate <= enddate) and not options.downloadallahs: + allfiles.append(files) + atleastonefile = True + except Exception: + pass + + _ = [cfilelist.remove(fil) for fil in list(cfilelist) if fil not in filenames] + + if options.customiseAHS: + for files in reversed(cfilelist): + try: + filenoext = files.rsplit(".", 1)[0] + filesplit = filenoext.split("-") + newdate = datetime.date(int(filesplit[1]), int(filesplit[2]), int(filesplit[3])) + if not ((strdate <= newdate) and (newdate <= enddate)): + cfilelist.remove(files) + except Exception: + pass + + if options.downloadallahs: + strdate = min(datelist) if datelist else strdate + enddate = max(datelist) if datelist else enddate + else: + strdate = max(min(datelist), strdate) if datelist else strdate + enddate = min(max(datelist), enddate) if datelist else enddate + + LOGGER.info( + "All filenames: %s; Download files: %s", + str(filenames), + str(allfiles), + ) + + if atleastonefile: + self.updateminmaxdate(strdate=strdate, enddate=enddate) + return filenames if options.downloadallahs else allfiles + else: + raise NoContentsFoundForOperationError("No AHS log files found.") + + def updateminmaxdate(self, strdate=None, enddate=None): + """Get the minimum and maximum date of files into header + + :param strdate: starting date of ahs logs + :type strdate: dateime obj + :param enddate: ending date of ahs logs + :type enddate: datetime obj + """ + LOGGER.info("Updating min and max dates for download.") + self.lib.updateMinDate.argtypes = [ + ctypes.c_int, + ctypes.c_int, + ctypes.c_int, + ] + self.lib.updateMinDate(strdate.year, strdate.month, strdate.day) + self.lib.updateMaxDate.argtypes = [ + ctypes.c_int, + ctypes.c_int, + ctypes.c_int, + ] + self.lib.updateMaxDate(enddate.year, enddate.month, enddate.day) + + def getclistfilelisting(self): + """Get files present within clist.pkg .""" + LOGGER.info("Getting all config files that are required.") + sclistpath = os.path.join(self.abspath, "clist.pkg") + cfilelist = [] + if os.path.isfile(sclistpath): + cfile = open(sclistpath, "rb") + data = cfile.read() + + if data == "": + raise InvalidCListFileError("Could not read Cfile\n") + + sizeofcfile = len(str(data)) + sizeofrecord = self.lib.sizeofchifbbfilecfgrecord() + count = sizeofcfile / sizeofrecord + revcount = 0 + + while count >= 1: + dat = data[revcount * sizeofrecord : (revcount + 1) * sizeofrecord] + dat = ctypes.create_string_buffer(dat) + self.lib.getbbfilecfgrecordname.argtypes = [ctypes.c_char_p] + self.lib.getbbfilecfgrecordname.restype = ctypes.c_char_p + ptrname = self.lib.getbbfilecfgrecordname(dat) + name = str(bytearray(ptrname[:32][:])) + + if name not in cfilelist: + cfilelist.append(name) + + count = count - 1 + revcount = revcount + 1 + else: + cfilelist = [f for f in os.listdir(self.abspath) if f.endswith(".zbb")] + + LOGGER.info("CLIST files %s", str(cfilelist)) + return cfilelist + + def getbbabspath(self): + """Get blackbox folder path.""" + LOGGER.info("Obtaining the absolute path of blackbox.") + count = 0 + + while count < 20: + if os.name == "nt": + drives = self.get_available_drives() + + for i in drives: + try: + label = win32api.GetVolumeInformation(i + ":")[0] + + if label == "BLACKBOX": + abspathbb = i + ":\\data\\" + self.abspath = abspathbb + cfilelist = self.getclistfilelisting() + if not cfilelist: + self.unmountbb() + self.manualmountbb() + else: + return False, abspathbb + except Exception: + pass + else: + with open("/proc/mounts", "r") as fmount: + while True: + lin = fmount.readline() + + if len(lin.strip()) == 0: + break + + if r"/BLACKBOX" in lin: + abspathbb = lin.split()[1] + self.abspath = abspathbb + cfilelist = self.getclistfilelisting() + if not cfilelist: + self.unmountbb() + self.manualmountbb() + else: + return False, abspathbb + + if count > 5: + found, path = self.manualmountbb() + if found: + return True, path + + count = count + 1 + time.sleep(5) + + raise PartitionMoutingError("iLO not responding to request " "for mounting AHS partition") + + def manualmountbb(self): + """Manually mount blackbox when after fixed time.""" + LOGGER.info("Manually mounting the blackbox.") + + try: + context = pyudev.Context() + for device in context.list_devices(subsystem="block"): + if device.get("ID_FS_LABEL") == "BLACKBOX": + dirpath = os.path.join(tempfile.gettempdir(), "BLACKBOX") + + if not os.path.exists(dirpath): + try: + os.makedirs(dirpath) + except Exception as excp: + raise excp + + pmount = subprocess.Popen( + ["mount", device.device_node, dirpath], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + _, _ = pmount.communicate() + + return True, dirpath + except UnicodeDecodeError as excp: + self.unmountbb() + raise UnabletoFindDriveError(excp) + + return False, None + + def manualunmountbb(self, dirpath): + """Manually unmount blackbox when after fixed time + + :param dirpath: mounted directory path + :type dirpath: str + """ + LOGGER.info("Manually unmounting the blackbox.") + pmount = subprocess.Popen(["umount", dirpath], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + _, _ = pmount.communicate() + + def mountbb(self): + """Mount blackbox.""" + LOGGER.info("Mounting blackbox...") + bs2 = risblobstore2.BlobStore2() + bs2.mount_blackbox() + bs2.channel.close() + + def unmountbb(self): + """Unmount blacbox.""" + if not self.dontunmount: + bs2 = risblobstore2.BlobStore2() + bs2.bb_media_unmount() + bs2.channel.close() + + def get_available_drives(self): + """Obtain all drives""" + LOGGER.info("Unmounting blackbox...") + if "Windows" not in platform.system(): + return [] + + drive_bitmask = ctypes.cdll.kernel32.GetLogicalDrives() + + return list( + itertools.compress( + string.ascii_uppercase, + [ord(drive) - ord("0") for drive in bin(drive_bitmask)[:1:-1]], + ) + ) + + def filterdata(self, data=None, tofilter=None): + """Filter the logs + + :param data: log data + :type data: dict + :param tofilter: command line filter option + :type tofilter: str + """ + LOGGER.info("Filtering logs based on requsted options.") + if tofilter and data: + try: + if (str(tofilter)[0] == str(tofilter)[-1]) and str(tofilter).startswith(("'", '"')): + tofilter = tofilter[1:-1] + + (sel, val) = tofilter.split("=") + sel = sel.strip() + val = val.strip() + + if val.lower() == "true" or val.lower() == "false": + val = val.lower() in ("yes", "true", "t", "1") + except Exception: + raise InvalidCommandLineError("Invalid filter" " parameter format [filter_attribute]=[filter_value]") + + # Severity inside Oem/Hpe should be filtered + if sel == "Severity": + if not self.rdmc.app.typepath.defs.isgen9: + sel = "Oem/Hpe/" + sel + else: + sel = "/" + sel + data = filter_output(data, sel, val) + if not data: + raise NoContentsFoundForOperationError("Filter returned no matches.") + + return data + + def getahsfilename(self, options): + """Create a default name if no ahsfilename is passed + + :param options: command line options + :type options: list. + """ + LOGGER.info("Obtaining Serialnumber from iLO for AHS filename.") + + if not options.sessionid: + val = "ComputerSystem." + filtereddatainstance = self.rdmc.app.select(selector=val) + snum = None + + try: + filtereddictslists = [x.resp.dict for x in filtereddatainstance] + + if not filtereddictslists: + raise NoContentsFoundForOperationError("") + except Exception: + try: + resp = self.rdmc.app.get_handler( + self.rdmc.app.typepath.defs.systempath, + silent=True, + service=True, + uncache=True, + ) + snum = resp.dict["SerialNumber"] if resp else snum + except KeyError: + raise InvalidKeyError( + "Unable to find key SerialNumber, please check path %s" % self.rdmc.app.typepath.defs.systempath + ) + except Exception: + raise NoContentsFoundForOperationError("Unable to retrieve log instance.") + + snum = filtereddictslists[0]["SerialNumber"] if not snum else snum + else: + resp = self.rdmc.app.get_handler( + "/redfish/v1/systems/1", + sessionid=options.sessionid, + silent=True, + service=True, + uncache=True, + ) + if "SerialNumber" in resp.dict: + snum = resp.dict["SerialNumber"] if resp else snum + snum = "UNKNOWN" if snum.isspace() else snum + timenow = (str(datetime.datetime.now()).split()[0]).split("-") + todaysdate = "".join(timenow) + + resp = self.rdmc.app.get_handler( + "/redfish/v1", + sessionid=options.sessionid, + silent=True, + service=True, + uncache=True, + ) + ahsdefaultfilename = "HPE_" + snum + "_" + todaysdate + ".ahs" + if "Vendor" in resp.dict: + ahsdefaultfilename = ahsdefaultfilename.replace("HPE", resp.dict["Vendor"]) + + if options.directorypath: + dir_name = options.directorypath + dir_name = dir_name.encode("utf-8").decode("utf-8") + if not os.path.exists(dir_name): + os.makedirs(dir_name) + ahsdefaultfilename = os.path.join(dir_name, ahsdefaultfilename) + + return ahsdefaultfilename + + def serverlogsvalidation(self, options): + """Serverlogs method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-f", + "--filename", + dest="filename", + help="Use this flag if you wish to use a different" + " filename than the default one. The default filename is" + " ilorest.json.", + action="append", + default=None, + ) + customparser.add_argument( + "--filter", + dest="filter", + help="Optionally set a filter value for a filter attribute." + " This uses the provided filter for the currently selected" + " type. Note: Use this flag to narrow down your results. For" + " example, selecting a common type might return multiple" + " objects that are all of that type. If you want to modify" + " the properties of only one of those objects, use the filter" + " flag to narrow down results based on properties." + "\t\t\t\t\t Usage: --filter [ATTRIBUTE]=[VALUE]", + default=None, + ) + customparser.add_argument( + "--selectlog", + dest="service", + help="""Read log from the given log service. Options: IML, """ """IEL or AHS.""", + default=None, + ) + customparser.add_argument( + "--clearlog", + "-c", + dest="clearlog", + action="store_true", + help="""Clears the logs for a the selected option.""", + default=None, + ) + customparser.add_argument( + "--maintenancemessage", + "-m", + dest="mainmes", + help="""Maintenance message to be inserted into the log. """ """(IML LOGS ONLY FEATURE)""", + default=None, + ) + customparser.add_argument( + "--customiseAHS", + dest="customiseAHS", + help="""Allows customised AHS log data to be downloaded.""", + default=None, + ) + customparser.add_argument( + "--downloadallahs", + dest="downloadallahs", + action="store_true", + help="""Allows complete AHS log data to be downloaded.""", + default=None, + ) + customparser.add_argument( + "--directorypath", + dest="directorypath", + help="""Directory path for the ahs file.""", + default=None, + ) + customparser.add_argument( + "--mpfile", + dest="mpfilename", + help="""use the provided filename to obtain server information.""", + default=None, + ) + customparser.add_argument( + "--outputdirectory", + dest="outdirectory", + help="""use the provided directory to """ """output data for multiple server downloads.""", + default=None, + ) + customparser.add_argument( + "--mplog", + dest="mplog", + help="""used to indicate the logs to be downloaded """ + """on multiple servers. Allowable values: IEL, IML,""" + """ AHS, all or combination of any two.""", + default=None, + ) + customparser.add_argument( + "--repair", + "-r", + dest="repiml", + help="""Repair the IML logs with the given ID.""", + default=None, + ) + customparser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SetTwoFactorAuthenticationCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SetTwoFactorAuthenticationCommand.py new file mode 100644 index 0000000..d4e6aec --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SetTwoFactorAuthenticationCommand.py @@ -0,0 +1,378 @@ +### +# Copyright 2021-2023 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### +# -*- coding: utf-8 -*- +"""TwoFactorAuthentication Command for rdmc""" + +from argparse import RawDescriptionHelpFormatter + +from redfish.ris import IdTokenError +from redfish.ris.rmc_helper import IloResponseError + +try: + from rdmc_helper import ( + IloLicenseError, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoCurrentSessionEstablished, + ReturnCodes, + TfaEnablePreRequisiteError, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IloLicenseError, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoCurrentSessionEstablished, + ReturnCodes, + TfaEnablePreRequisiteError, + ) + +from redfish.ris.ris import SessionExpired + + +class SetTwoFactorAuthenticationCommand: + """Main new command template class""" + + def __init__(self): + self.ident = { + "name": "settwofactorauthentication", + "usage": "settwofactorauthentication\n\n", + "description": "Run to enable ,disable ,get status or setup smtp settings for Two factor " + "authentication\n\t" + "Example:\n\tsettwofactorauthentication enable or \n\t" + "settwofactorauthentication disable \n\t" + "settwofactorauthentication status or \n\t" + "settwofactorauthentication status -j\n" + "settwofactorauthentication smtp --smtpfortfaenabled true --alertmailsenderdomain 'test@hpe.com' " + "--alertmailsmtpserver 'smtp3.hpe.com' --alertmailsmtpport 587\n", + "summary": "Enables the server to use Two factor authentication, monitored", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def twofactorauth(self, options): + """two authentication function + + :param enable or disable + """ + + # pre requisite checks + + path = self.rdmc.app.typepath.defs.managerpath + "NetworkProtocol" + resp = self.rdmc.app.get_handler(path, service=False, silent=True) + + status = resp.dict["Oem"]["Hpe"]["SMTPForTFAEnabled"] + if not status: + self.rdmc.ui.error("SMTP for TFA is not enabled\n") + raise TfaEnablePreRequisiteError( + "\nTo be able to enable or disable TFA\nKindly enable and set the SMTP details prior to enabling TFA " + "for the server . You can use our command as given below for enabling smtp for tfa \n\n" + "SetTwoFactorAuthentication smtp --smtpfortfaenabled true --alertmailsenderdomain 'testuser@test.com' " + "--alertmailsmtpserver 'smtp.server.com' \n" + ) + + results = self.rdmc.app.select(selector="AccountService.", path_refresh=True)[0].dict + path = results[self.rdmc.app.typepath.defs.hrefstring] + + # check whether default schema is selected authentication tyep + resp = self.rdmc.app.get_handler(path, service=False, silent=True) + if not resp.dict["LDAP"]["ServiceEnabled"]: + self.rdmc.ui.error("Ldap service is not enabled\n") + raise TfaEnablePreRequisiteError( + "\nTo be able to enable or disable TFA\nKindly enable LDAP Directory Authentication to use Directory " + "Default Schema. Same can be set using below command\n\ndirectory ldap enable " + "--authentication=DefaultSchema\n" + ) + + body = dict() + if options.command.lower() == "enable": + serviceEnabled = "Enabled" + else: + serviceEnabled = "Disabled" + body.update({"Oem": {"Hpe": {"TwoFactorAuth": serviceEnabled}}}) + + try: + self.rdmc.app.patch_handler(path, body) + return ReturnCodes.SUCCESS + except IloLicenseError: + self.rdmc.ui.error("Error Occured while enable or disable operation for TFA") + return ReturnCodes.ILO_LICENSE_ERROR + except IdTokenError: + self.rdmc.ui.error("Insufficient Privilege to enable or disable TFA ") + return ReturnCodes.RIS_MISSING_ID_TOKEN + except IloResponseError: + self.rdmc.ui.error("Provided values are invalid , iLO threw error") + return ReturnCodes.RIS_ILO_RESPONSE_ERROR + + def twofactorauth_smtp(self, options): + """two authentication smtp setup function + + :param smtpfortfaenabled : true\false + :type smtpfortfaenabled: str. + """ + path = self.rdmc.app.typepath.defs.managerpath + "NetworkProtocol" + resp_get = self.rdmc.app.get_handler(path, service=False, silent=True) + body = dict() + range1 = range(1, 65536, 1) + if options.SMTPPort is not None: + if options.SMTPPort in range1: + SMTPPort = options.SMTPPort + else: + raise InvalidCommandLineError("Enter correct server port value in the range 1 to 65535") + else: + SMTPPort = 25 + + if options.SMTPForTFA[0].lower() == "true": + SMTPForTFAEnabled = True + else: + SMTPForTFAEnabled = False + + if options.SenderDomain is None: + if resp_get.dict["Oem"]["Hpe"]["AlertMailSenderDomain"] is not None: + SenderDomain = resp_get.dict["Oem"]["Hpe"]["AlertMailSenderDomain"] + else: + SenderDomain = "" + else: + SenderDomain = options.SenderDomain[0] + + if options.SMTPServer is None: + if resp_get.dict["Oem"]["Hpe"]["AlertMailSMTPServer"] is not None: + SMTPServer = resp_get.dict["Oem"]["Hpe"]["AlertMailSMTPServer"] + else: + SMTPServer = "" + else: + SMTPServer = options.SMTPServer[0] + + body.update( + { + "Oem": { + "Hpe": { + "SMTPForTFAEnabled": SMTPForTFAEnabled, + "AlertMailSenderDomain": SenderDomain, + "AlertMailSMTPServer": SMTPServer, + "AlertMailSMTPPort": SMTPPort, + } + } + } + ) + try: + self.rdmc.app.patch_handler(path, body) + return ReturnCodes.SUCCESS + + except IloResponseError: + self.rdmc.ui.error("Provided values are invalid , iLO threw error") + return ReturnCodes.RIS_ILO_RESPONSE_ERROR + except IloLicenseError: + self.rdmc.ui.error("Error Occured while setting smtp settings of TFA ") + return ReturnCodes.ILO_LICENSE_ERROR + except IdTokenError: + self.rdmc.ui.error("Insufficient Privilege to setting smtp settings of TFA ") + return ReturnCodes.RIS_MISSING_ID_TOKEN + + def twofactorauth_status(self, json=False): + """two authentication status function + + :param json: json + :type json: bool + """ + results = self.rdmc.app.select(selector="AccountService.", path_refresh=True)[0].dict + path = results[self.rdmc.app.typepath.defs.hrefstring] + resp = self.rdmc.app.get_handler(path, service=False, silent=True) + if resp.status != 200: + self.rdmc.ui.error("session seems to be expired\n") + raise SessionExpired("Invalid session. Please logout and log back in or include credentials.") + tfa_info = resp.dict["Oem"]["Hpe"] + output = "------------------------------------------------\n" + output += "TFA Status : %s\n" % (tfa_info["TwoFactorAuth"]) + if not json: + self.rdmc.ui.printer(output, verbose_override=True) + else: + self.rdmc.ui.printer("\n--- TFA status ---\n") + self.rdmc.ui.print_out_json(tfa_info) + + path = self.rdmc.app.typepath.defs.managerpath + "NetworkProtocol" + resp = self.rdmc.app.get_handler(path, service=False, silent=True) + if resp.status != 200: + raise SessionExpired("Invalid session. Please logout and log back in or include credentials.") + smtp_info = resp.dict["Oem"]["Hpe"] + output = "\n------------------------------------------------\n" + output += "SMTP for TFA Status : %s\n" % (smtp_info["SMTPForTFAEnabled"]) + if not json: + self.rdmc.ui.printer(output, verbose_override=True) + else: + self.rdmc.ui.printer("\n--- SMTP for TFA status ---\n") + self.rdmc.ui.print_out_json(smtp_info) + + return ReturnCodes.SUCCESS + + def run(self, line, help_disp=False): + """Wrapper function for two factor authentication main function + + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.cmdbase.login_select_validation(self, options) + if not self.rdmc.app.redfishinst: + raise NoCurrentSessionEstablished("Please login to iLO and retry the command") + + ilo_ver = self.rdmc.app.getiloversion() + if ilo_ver < 5.290 or (ilo_ver < 6.150 and ilo_ver > 5.999): + raise IncompatibleiLOVersionError( + "TFA Feature is only available with iLO 5 version 2.90 or higher and iLO 6 version 1.50 or higher.\n" + ) + + # validation checks + self.twofactorauthenticationvalidation(options) + if options.command: + if options.command.lower() == "enable": + returncode = self.twofactorauth(options) + elif options.command.lower() == "disable": + returncode = self.twofactorauth(options) + elif options.command.lower() == "smtp": + returncode = self.twofactorauth_smtp(options) + elif options.command.lower() == "status": + if options.json: + returncode = self.twofactorauth_status(json=True) + else: + returncode = self.twofactorauth_status() + else: + raise InvalidCommandLineError("%s is not a valid option for this " "command." % str(options.command)) + else: + raise InvalidCommandLineError( + "Please provide either enable, disable , status or smtp as additional subcommand. " + "For help or usage related information, use -h or --help" + ) + # logout routine + self.cmdbase.logout_routine(self, options) + # Return code + return returncode + + def twofactorauthenticationvalidation(self, options): + """new command method validation function""" + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + subcommand_parser = customparser.add_subparsers(dest="command") + enable_help = "To enable two factor authentication\n" + # connect sub-parser + enable_parser = subcommand_parser.add_parser( + "enable", + help=enable_help, + description=enable_help + "\n\tExample:\n\tsettwofactorauthentication enable ", + formatter_class=RawDescriptionHelpFormatter, + ) + + self.cmdbase.add_login_arguments_group(enable_parser) + + status_help = "To check the settwofactorauthentication status\n" + status_parser = subcommand_parser.add_parser( + "status", + help=status_help, + description=status_help + "\n\tExample:\n\tsettwofactorauthentication status or " + "\n\tsettwofactorauthentication status -j", + formatter_class=RawDescriptionHelpFormatter, + ) + status_parser.add_argument( + "-j", + "--json", + dest="json", + help="to print in json format", + action="store_true", + default=False, + ) + self.cmdbase.add_login_arguments_group(status_parser) + + disable_help = "To disable the two factor authentication\n" + disable_parser = subcommand_parser.add_parser( + "disable", + help=disable_help, + description=disable_help + "\n\tExample:\n\tsettwofactorauthentication disable", + formatter_class=RawDescriptionHelpFormatter, + ) + self.cmdbase.add_login_arguments_group(disable_parser) + + emailconfig_help = "To set the smtp setting for settwofactorauthentication\n" + emailconfig_parser = subcommand_parser.add_parser( + "smtp", + help=emailconfig_help, + description=emailconfig_help + + "\n\tExample:\n\tsettwofactorauthentication smtp --smtpfortfaenabled true --alertmailsenderdomain " + "'test@hpe.com' --alertmailsmtpserver 'smtp3.hpe.com' --alertmailsmtpport 587 ", + formatter_class=RawDescriptionHelpFormatter, + ) + emailconfig_parser.add_argument( + "--smtpfortfaenabled", + dest="SMTPForTFA", + help="smtp service enable , supply either true or false as input. " + "If true then remaining inputs cant be null or empty", + action="append", + default=None, + ) + emailconfig_parser.add_argument( + "--alertmailsenderdomain", + dest="SenderDomain", + action="append", + help="smtp user name , supply a valid aduser for this field", + default=None, + ) + emailconfig_parser.add_argument( + "--alertmailsmtpserver", + dest="SMTPServer", + action="append", + help="smtp server , supply a valid smtp server for this parameter", + default=None, + ) + + emailconfig_parser.add_argument( + "--alertmailsmtpport", + dest="SMTPPort", + type=int, + help="smtp port , supply a valid smtp port for this parameter, default is 25", + default=25, + ) + + self.cmdbase.add_login_arguments_group(emailconfig_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SigRecomputeCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SigRecomputeCommand.py new file mode 100644 index 0000000..e7b5e0d --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SigRecomputeCommand.py @@ -0,0 +1,107 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""SigRecompute Command for rdmc""" + +try: + from rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class SigRecomputeCommand: + """Recalculate the signature of the servers configuration""" + + def __init__(self): + self.ident = { + "name": "sigrecompute", + "usage": None, + "description": "Recalculate the signature on " + "the computers configuration.\n\texample: sigrecompute\n\n" + "\tNote: sigrecompute command is not available on Redfish systems.", + "summary": "Command to recalculate the signature of the computer's " "configuration.", + "aliases": [], + "auxcommands": [], + } + + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main sigrecompute function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if args: + raise InvalidCommandLineError("Sigrecompute command takes no arguments.\n") + + self.sigrecomputevalidation(options) + path = self.rdmc.app.typepath.defs.systempath + + if self.rdmc.app.typepath.defs.flagforrest: + body = {"Action": "ServerSigRecompute", "Target": "/Oem/Hp"} + self.rdmc.app.post_handler(path, body) + else: + raise IncompatibleiLOVersionError("Sigrecompute action not available on redfish.\n") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def sigrecomputevalidation(self, options): + """sigrecomputevalidation method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SingleSignOnCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SingleSignOnCommand.py new file mode 100644 index 0000000..9ffa932 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/SingleSignOnCommand.py @@ -0,0 +1,210 @@ +### +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Single Sign On Command for rdmc""" +from argparse import RawDescriptionHelpFormatter + +try: + from rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + + +class SingleSignOnCommand: + """Commands Single Sign On actions to the server""" + + def __init__(self): + self.ident = { + "name": "singlesignon", + "usage": None, + "description": "Add or remove single sign on (SSO) records.\nTo view help on specific " + "sub-commands run: singlesignon -h\n\nExample: singlesignon " + "importcert -h\n\n", + "summary": "Command for all single sign on available actions. ", + "aliases": ["sso"], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main SingleSignOnCommand function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.singlesignonvalidation(options) + + actionitem = None + select = self.rdmc.app.typepath.defs.hpilossotype + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + path = results.resp.request.path + else: + raise NoContentsFoundForOperationError("%s not found." % select) + + bodydict = results.resp.dict + + if not options.command: + return ReturnCodes.SUCCESS + + if options.command.lower() == "importdns": + actionitem = "ImportDNSName" + body = {"Action": actionitem, "DNSName": options.dnsname} + elif options.command.lower() == "importcert": + cert = None + certtype = None + actionitem = "ImportCertificate" + + try: + cert = open(options.cert, "r") + + if cert: + certtext = cert.read() + cert.close() + + if certtext: + certtype = "DirectImportCert" + except: + pass + + if not certtype: + certtype = "ImportCertUri" + certtext = options.cert + + body = {"Action": actionitem, "CertType": certtype, "CertInput": certtext} + + elif options.command.lower() == "deleterecord": + if options.record.lower() == "all": + actionitem = "DeleteAllSSORecords" + body = {"Action": actionitem} + else: + actionitem = "DeleteSSORecordbyNumber" + + try: + body = {"Action": actionitem, "RecordNumber": int(options.record)} + except: + raise InvalidCommandLineError("Record to delete must be a number") + + try: + for item in bodydict["Actions"]: + if actionitem in item: + if self.rdmc.app.typepath.defs.isgen10: + actionitem = item.split("#")[-1] + body["Action"] = actionitem + + path = bodydict["Actions"][item]["target"] + break + except: + pass + + self.rdmc.app.post_handler(path, body) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def singlesignonvalidation(self, options): + """single sign on validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + subcommand_parser = customparser.add_subparsers(dest="command") + save_import_dns_help = "Import a DNS name." + # importdns sub-parser + import_dns_parser = subcommand_parser.add_parser( + "importdns", + help=save_import_dns_help, + description=save_import_dns_help + "\n\texample singlesignon importdns dnsname", + formatter_class=RawDescriptionHelpFormatter, + ) + import_dns_parser.add_argument("dnsname", help="DNS Name to be imported", metavar="DNSNAME") + save_import_cert_help = "Import certificate from URI or file." + # importcert sub-parser + import_cert_parser = subcommand_parser.add_parser( + "importcert", + help=save_import_cert_help, + description=save_import_cert_help + "\n\texample singlesignon importcert cert.txt", + formatter_class=RawDescriptionHelpFormatter, + ) + import_cert_parser.add_argument( + "cert", + help="Certificate URI or Certificate File to be imported.", + metavar="CERTIFICATE", + ) + # delete sub-parser + delete_sso_help = "Delete a single or all SSO records." + delete_sso_parser = subcommand_parser.add_parser( + "deleterecord", + help=delete_sso_help, + description=delete_sso_help + "\nDelete a single record:\nexample deleterecord 2\n" + "Delete all records:\nexample singlesignon deleterecord all", + formatter_class=RawDescriptionHelpFormatter, + ) + delete_sso_parser.add_argument( + "record", + help="Record to be deleted (or use keyword 'all' to delete all records)", + metavar="RECORD", + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/VirtualMediaCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/VirtualMediaCommand.py new file mode 100644 index 0000000..ea95fac --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/VirtualMediaCommand.py @@ -0,0 +1,450 @@ +### +# Copyright 2016-2023 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Virtual Media Command for rdmc""" + +try: + from rdmc_helper import ( + UI, + IloLicenseError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + ReturnCodes, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + UI, + IloLicenseError, + ) + +from redfish.ris import rmc_helper + + +class VirtualMediaCommand: + """ Changes the iscsi configuration for the server that is currently """ """ logged in """ + + def __init__(self): + self.ident = { + "name": "virtualmedia", + "usage": None, + "description": "Run without" + " arguments to view the available virtual media sources." + "\n\tExample: virtualmedia\n\n\tInsert virtual media and " + "set to boot on next restart.\n\texample: virtualmedia 2 " + "http://xx.xx.xx.xx/vm.iso --bootnextreset\n\n\tRemove " + "current inserted media.\n\texample: virtualmedia 2 --remove", + "summary": "Command for inserting and removing virtual media.", + "aliases": [], + "auxcommands": [ + "GetCommand", + "SetCommand", + "SelectCommand", + "RebootCommand", + ], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main iscsi configuration worker function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + if len(args) > 2: + raise InvalidCommandLineError( + "Invalid number of parameters. " "virtualmedia command takes a maximum of 2 parameters." + ) + else: + self.virtualmediavalidation(options) + + resp = self.rdmc.app.get_handler("/rest/v1/Managers/1/VirtualMedia/1", silent=True) + + if not resp.status == 200: + raise IloLicenseError("") + + self.auxcommands["select"].run("VirtualMedia.") + ilover = self.rdmc.app.getiloversion() + + if self.rdmc.app.monolith.is_redfish: + isredfish = True + paths = self.auxcommands["get"].getworkerfunction("@odata.id", options, results=True, uselist=False) + ids = self.auxcommands["get"].getworkerfunction("Id", options, results=True, uselist=False) + paths = {ind: path for ind, path in enumerate(paths)} + ids = {ind: id for ind, id in enumerate(ids)} + for path in paths: + paths[path] = paths[path]["@odata.id"] + # paths = self.uniquevalmaker(paths) + else: + isredfish = False + paths = self.auxcommands["get"].getworkerfunction("links/self/href", options, results=True, uselist=False) + ids = self.auxcommands["get"].getworkerfunction("Id", options, results=True, uselist=False) + paths = {ind: path for ind, path in enumerate(paths)} + ids = {ind: id for ind, id in enumerate(ids)} + for path in paths: + paths[path] = paths[path]["links"]["self"]["href"] + # To keep indexes consistent between versions + if not list(ids.keys())[0] == list(list(ids.values())[0].values())[0]: + finalpaths = {} + for path in paths: + finalpaths.update({int(list(ids[path].values())[0]): paths[path]}) + paths = finalpaths + if options.removevm: + self.vmremovehelper(args, options, paths, isredfish, ilover) + elif len(args) == 2: + self.vminserthelper(args, options, paths, isredfish, ilover) + elif options.bootnextreset: + self.vmbootnextreset(args, paths) + elif not args: + self.vmdefaulthelper(options, paths) + else: + raise InvalidCommandLineError("Invalid parameter(s). Please run" " 'help virtualmedia' for parameters.") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def uniquevalmaker(self, paths): + unique_values = set(paths.values()) + + res = {} + i = 0 + for val in unique_values: + if val.endswith("/"): + val = val[:-1] + res[i] = val + i = i + 1 + else: + res[i] = val + i = i + 1 + i = 0 + res1 = dict() + for val in set(res.values()): + res1[i] = val + i = i + 1 + return res1 + + def vmremovehelper(self, args, options, paths, isredfish, ilover): + """Worker function to remove virtual media + + :param args: arguments passed from command line + :type args: list + :param paths: virtual media paths + :type paths: list + :param isredfish: redfish flag + :type isredfish: bool + :param ilover: iloversion + :type ilover: int + :param options: command line options + :type options: list. + """ + path = None + + if isredfish: + path, body = self.vmredfishhelper("remove", args[0]) + else: + if ilover <= 4.230: + body = {"Image": None} + else: + body = {"Action": "EjectVirtualMedia", "Target": "/Oem/Hp"} + + try: + path = paths[int(args[0])] if not path else path + except: + raise InvalidCommandLineError( + "Invalid input value for virtual " + "media please run the command with no " + "arguments for possible values." + ) + + if ilover <= 4.230: + self.rdmc.app.patch_handler(path, body) + else: + self.rdmc.app.post_handler(path, body) + + if options.reboot: + self.auxcommands["reboot"].run(options.reboot) + + def vminserthelper(self, args, options, paths, isredfish, ilover): + """Worker function to insert virtual media + + :param args: arguments passed from command line + :type args: list + :param paths: virtual media paths + :type paths: list + :param isredfish: redfish flag + :type isredfish: bool + :param ilover: iloversion + :type ilover: int + :param options: command line options + :type options: list. + """ + path = None + if not args[1].startswith("http://") and not args[1].startswith("https://"): + raise InvalidCommandLineError("Virtual media path must be a URL.") + if args[0] in "1": + if not args[1].endswith(".img"): + raise InvalidCommandLineError("Only .img files are allowed") + if args[0] in "2": + if not args[1].endswith(".iso"): + raise InvalidCommandLineError("Only .iso files are allowed") + if isredfish: + path, body = self.vmredfishhelper("insert", args[0], args[1]) + else: + if ilover <= 4.230: + body = {"Image": args[1]} + else: + body = { + "Action": "InsertVirtualMedia", + "Target": "/Oem/Hp", + "Image": args[1], + } + + try: + path = paths[int(args[0])] if not path else path + except: + raise InvalidCommandLineError( + "Invalid input value for virtual " + "media please run the command with " + "no arguments for possible values." + ) + + if ilover <= 4.230: + self.rdmc.app.patch_handler(path, body) + else: + try: + results = self.rdmc.app.post_handler(path, body) + if results.status == 200: + if options.bootnextreset: + self.vmbootnextreset(args, paths) + if options.reboot: + self.auxcommands["reboot"].run(options.reboot) + return ReturnCodes.SUCCESS + except rmc_helper.IloLicenseError: + raise IloLicenseError("Error:License Key Required\n") + # except Exception: + # self.rdmc.ui.printer("Please unmount/Eject virtual media and try it again\n") + + def vmdefaulthelper(self, options, paths): + """Worker function to reset virtual media config to default + + :param paths: virtual media paths + :type paths: list + :param options: command line options + :type options: list. + """ + images = {} + count = 0 + mediatypes = self.auxcommands["get"].getworkerfunction("MediaTypes", options, results=True, uselist=False) + ids = self.auxcommands["get"].getworkerfunction("Id", options, results=True, uselist=False) + ids = {ind: id for ind, id in enumerate(ids)} + mediatypes = {ind: med for ind, med in enumerate(mediatypes)} + # To keep indexes consistent between versions + if not list(ids.keys())[0] == list(list(ids.values())[0].values())[0]: + finalmet = {} + for mount in mediatypes: + finalmet.update({int(list(ids[mount].values())[0]): mediatypes[mount]}) + mediatypes = finalmet + + for path in paths: + count += 1 + image = self.rdmc.app.get_handler(paths[path], service=True, silent=True) + image = image.dict["Image"] + images.update({path: image}) + + self.rdmc.ui.printer("Available Virtual Media Options:\n") + if getattr(options, "json", False): + json_str = dict() + json_str["MediaTypes"] = dict() + # else: + # self.rdmc.ui.printer("Available Virtual Media Options:\n") + + for image in images: + media = "" + + if images[image]: + imagestr = images[image] + else: + imagestr = "None" + + for medtypes in mediatypes[image]["MediaTypes"]: + media += medtypes + " " + + if getattr(options, "json", False): + json_str["MediaTypes"][str(media)] = imagestr + else: + self.rdmc.ui.printer( + "[%s] Media Types Available: %s Image Inserted:" " %s\n" % (str(image), str(media), imagestr) + ) + if getattr(options, "json", False): + UI().print_out_json(json_str) + + def vmbootnextreset(self, args, paths): + """Worker function to boot virtual media on next serverreset + + :param args: arguments passed from command line + :type args: list + :param paths: all virtual media paths + :type paths: list + """ + try: + path = paths[int(args[0])] + except: + raise InvalidCommandLineError( + "Invalid input value for virtual media" + " please run the command with no " + "arguments for possible values." + ) + + self.rdmc.app.patch_handler( + path, + {"Oem": {self.rdmc.app.typepath.defs.oemhp: {"BootOnNextServerReset": True}}}, + service=True, + silent=True, + ) + + def vmredfishhelper(self, action, number, image=None): + """Redfish version of the worker function + + :param action: action item + :type action: str + :param number: virtual media ID + :type number: int + """ + + results = self.rdmc.app.select(selector="VirtualMedia.") + bodydict = None + + try: + for result in results: + if result.resp.dict["Id"] == number: + bodydict = result.resp.dict + break + except: + pass + + if not bodydict: + raise InvalidCommandLineError( + "Invalid input value for virtual media" + " please run the command with no " + "arguments for possible values." + ) + if action == "remove" and not bodydict["Inserted"]: + raise InvalidCommandLineError( + "Invalid input value for virtual media." + " No media present in this drive to unmount. Please recheck " + "arguments for possible values." + ) + + if action == "insert" and image: + for item in bodydict["Oem"][self.rdmc.app.typepath.defs.oemhp]["Actions"]: + if "InsertVirtualMedia" in item: + if self.rdmc.app.typepath.defs.isgen10: + action = item.split("#")[-1] + else: + action = "InsertVirtualMedia" + + path = bodydict["Oem"][self.rdmc.app.typepath.defs.oemhp]["Actions"][item]["target"] + body = {"Action": action, "Image": image} + break + elif action == "remove": + for item in bodydict["Oem"][self.rdmc.app.typepath.defs.oemhp]["Actions"]: + if "EjectVirtualMedia" in item: + if self.rdmc.app.typepath.defs.isgen10: + action = item.split("#")[-1] + else: + action = "EjectVirtualMedia" + + path = bodydict["Oem"][self.rdmc.app.typepath.defs.oemhp]["Actions"][item]["target"] + body = {"Action": action} + break + else: + return None, None + + return path, body + + def virtualmediavalidation(self, options): + """sigrecomputevalidation method validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "--reboot", + dest="reboot", + help="Use this flag to perform a reboot command function after" + " completion of operations. For help with parameters and" + " descriptions regarding the reboot flag, run help reboot.", + default=None, + ) + customparser.add_argument( + "--remove", + dest="removevm", + action="store_true", + help="Use this flag to remove the media from the selection.", + default=False, + ) + customparser.add_argument( + "--bootnextreset", + dest="bootnextreset", + action="store_true", + help="Use this flag if you wish to boot from the image on " + "next server reboot. NOTE: The image will be ejected " + "automatically on the second server reboot so that the server " + "does not boot to this image twice.", + default=False, + ) + customparser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/AppAccountCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/AppAccountCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..75001ba30dec664656d4232b1183c834ec43746f GIT binary patch literal 15268 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 RAmDdZ%k*7Ebgysse*)DM$+iFh literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/CertificateCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/CertificateCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2ddb67a27a09427219003eddf6da71697981e3a3 GIT binary patch literal 32617 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ChannelInterfaceCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ChannelInterfaceCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fd37f8097bafeebbec0637600398d5fb6aac0e95 GIT binary patch literal 3586 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

    6Xk77e_ZZDl_|X?aQ66;Amg zr+liTDz6J$RI?xSlik=az-T{g(M*LplB9F|cmo@fFw%n(P(OP$@i52=niru+TbH?% zO}o=D6!DEl#9Kq_fTD~7Xis44jP+@HPps7@xuHbavF2?pF)`JKuB|2}Tu8FW#6*?G zYt%PEX<+sW)g~|pVc$by_81mFj>nE0Q2et8PFy&M*)!lxbtTXC~-xU6AMIadPWaXNcD^&)@4osd~bAil6nW$KW?E=AxJ8?dNQ5{GL%GVw)v1tJ_8sTfBo2BQ^PCQkZP0_=-B3!Ib1 zZAC$?(Gp<)?lv?22%MAQe&xAHKnMh(CiEO2yeV*{&`o1w%JpIdcdWtfx5U?F zf=2s$xdnPif1QANveJjC>M%h%7K{BTvz_AQC6@9{M>{2ka3Tujpl+(~MK>bcy2o@09m}OH|Ihr%M#yf4{sBT%z*kJ%o$${>S9K zI7dnSJ>oJ2b13wopRHm(3UE0oz-1~$Q!$ytL7jq;54E{WW!C<{%vb>)&3(;;ahd8x zDIDk^`x53`!Y>4~8P&DXQA%xlJ@SV2xjSK=hT|dLuwERdDVo|2{%`<2??-B3pXSRtWxa10VDBK^B>ruJhi>o+~;d&n& zyzYNfhl%LywUkm12yghC=+OhMV`z?G4s+_k<`Da<9>VX#_{C9P;I4D(qc_Q${;@g+ zbH_*EdiLm>QRMiTS!s{S*pKT~rXKgl`~Z5ERu60*bM>$E7}P%bcE`}0$=2RrMz^aI zQtL_N#5l291Zt=$zxGL~eX>jKzpS2UZbz?=s@*uqWyj6XRjktbIrZe`RC^U|pW4*+ zQ^9&vPx~#Nk`_;OY4Hty;Z3zX({%)={ra|C6L8Lx@6gJy06{=BXcd-bBO5qF=&9cskg3%Em#xO?#}v665Ql>5eR z7`BRQA>hZDz>mn<_ZaxGLw5hC{C%(8zKd#BoDEO<>5$+tIE%N}tFXE7FcsX|KJE9a zL`QK@Mn!eW?_ZEMC$%b*hq$a9;IhUYi+dp3Styay^&ASfa2ynYj(C>S6diope{&`D zh-wR`9odYLq{Yu4c_M*D~8h`{oRZifcTPWU%{C675qN7 z@cq1eo|iXyc?vCQMxNr84ktnT4x~AZ73z8Y*?XAlPA2z&G?s7|#^=u#%g}v%FE(%t zE$Qs^r^gJ2=Ag9m!BT@iWWtQVvx1d^f5^cnmSN_@^U_kZJ_W~1 z)}DufA*`D-pA-W|ghMxL9>s4`tI5Q{Pn`bv4V<_*2Ns?5L{T!qQq&%24+G=cFYxgn z@FIFPx~+Mm-ZB%N4H0Y9c$ezt`QdrioWx1PH}M0eE&0c6g8_os2n@sRA7tiq5Kzg@ zaQZKS_rDBd1i}0=R2y;f9Rjapy zd{!rEBA^wW5xV=Bh2Iv}N!;jU={ou8GqBQ{nK^m-?99m%MF~vr>|;R9`mD~WXT%wq(xNkb5wmT~$8q*}n~vK^XEOFp z#-@LD1%bc)+MR(31ikefdv$&+v)yRe+4eY3GW6=F+*60r0xRo8#_yeXBJ}LddO3J@ zD7;2>qqr>yC+%CQASI8J=LH^_2^kJXAs(dKpAmHyW##iTuPz}XAQjmjg;=DyXZjrr^$i1F%oE6fB+2XU1&St!LpH%e(A*{ADZbVM}XSuRglH zhQ8VQ^If+>-<0kZ*H;KS(_f{)lV)nLxxOWTR`fme`#lIl6O73-fYVaw4m%JVz*7Nj z+&=zO>xXL-X;SQz!k>tq{tIsCIk*Hh`T}G6GQ@v`A_&Is#XU}C#yx~XP{ih8fE`yc zFiEgGgYYK-^*L?UK!m?EAh{DpxlOh0Q}8l`8XlxMf<;5@g7}Q`gs{Ax~)$-$hSo+=1cy_7 zSfQ`D6U!l8wu46Yi)>*8OuYeBwNONe6FEQ>!7y{<7qQvPEf&niRf=W&W`vBL7P8nD zO%>q+ju!C=P0=a@8Wjm=`_6v^gxyG?QBepKH=@KX8)=STYjroK7{6k?c)Ij*WqB3n zfRfe+qSyKB6$dO)y?FGx@$N&!aIHP9x2 zbu*{VUcLXgNv@>A5PC-B@13PpSv)UnC?G@JGVmew~k><3(T~wQ}|weEbaWnz(q% z5Oxtk*-YqFoR&z$qc10UM})Bhh9~tScuFSeD3OJB0>RhKFCwbaLKMIxdMk>!sKy)q zUF%gGTzI$}9z~kgGB6f*dxV9yok*)t?!-C#)xU(xH~V|BWgjvIo3{_KC$Y2A66TTn z5N-u;TF-{C|LC=fQw(MQVV5G;6!xdZ{b}|e7;|~j`!9tkZ!odI6$Te(|M8?;?!RYo z=5AJ(ll_+QHkts`i<53>sq0uDH|76bw6x)bf6MJ#63)(-= z7ym0S|Ad!+%F8d{0u7@qdLeNBH>P%M4`WakY>$qe(PdNE|BUtg5-;uBz}+bp-tCKZ zmZ6K}Yn|iKaf2W@glv<}?LoYld=H!B%g#qW-M_aH=7X$Am*Xf}|ll zVlN`Bt{`G6?vbw_F4wyL0l$9f59Ioi!$^YLT0tKW;GNY_OZ^Lnt=p*$(Xjbdl@*)nSZ1-z?ndfrCD^0zKlO z--r78?4MMl2<`^EGwK;2wMJ`jInStJNN@Y`yB)tFgwtm!xXwE?P49#D0NzcQ%P3`a z)dwN#>tDMCN#7v!OLs$?lu^&{51}m7Y{uEoS{}giS{vB+| z8T2oL6?6!s+6Yh!0@dMe6#W{-n&`ti*anGv*!~yIQGKn3n#*_(Bzj_ew9+G!E)x+l9N6fojcsC*M?ol5#?~a*wh2~E5{XXbycA9bR-xalbbGl_p!}UcQn(fY{W4 zKCS(IQ^N^U!^w^srnag9JHc85K3U&|ov;V1dl!(jo~UdJW#mF~}$?U>iuk3}3)}%CvN%Xv!a({3 zL-bAZpMw;jfY+TRf&6~1a0VeiN3{1Ekcs_6y!#PcrtBHsUf@N9h|ltll0;`{0&(}c z1QU3kIWF?@NnRvi^ru;11k%ZNQz;_}vP*oud!qYWl+u3iJK8dULJ9;pOKT$W#F^;N zoH-&wyxrhaxH*DhGQr&ZFZ zSt&oX!X~lg&C?>N#46QNNU^jt4oGdC#oBI^u9S=A`FWUo`ZMGQ4KM<2syZM+5*`4) zfuIko=mP9N*Wk@rFBcCT5-uu;-l%;+P&)+0HFAD)$l&z`-+bH|#|*SPhul`uI^#U3 z!>T}ptOs?lXoS34wIEKx=wrDk$17orR;p#3CqQW^<+b4HT3$GZbgHUoS!8EH3GPA3 zpN@jz+}F{#h=n(gTEv>3wVepdMRsme7SAPj{&qrmX8_mohA)DXH=64>4#j77#M20W3DZxw> zA~Nc6V?YvurF+B99f34lyR`@=F;fl9L1VM`$>K~JK-1ov!>ty`+9Sxo6Aupho0;Hl zbfP7+V@p>6X9mpf;MzsNjJeB{dOLeetK9%8R~}d9UB1$Wf*pvF!TKJOb=qE6-=t9* zBA2(J?!8_81flE|fEQzn0MJw+W8qHTT$BC7+*^Ya#S2y6X5H(`*e-hxZ|zIGFv^BR zKGBl*pW&l$qKbE-JrNT;@}xLT2PXb2_OHtQ{8A0#^)j<9AwkRGuiz2!Bk?WumZd=} zj_-pk-ax^ZAS8m(9|NJ&`^wK}X4DTP0vWc>>W+d!z!|+>6{UG>H={1Y>65_GZ2Se@ z;Y61ZB9!P4N!dQ@7riXZYrXok{y|g^Nt7Jht%Xk_J_9#l%y*}F=j%_kKwosGGIKI% zUt|^$yw`Xago|6@<4d@>If+@~g)6a1pNO}#o6^&QFXC>ar<6Yr3^qa?m>?)PdFju1U2F`QpbefzZo8CeNlez|BxIg(~C#y5HgSv)7m zf?u>BegrWbVZDn(Qf{RYQIb};5Sm-j2yA-sUlz~syM~xri|UhK8;a8oIBQubL-hg6 zj8Mq_s`XVXNzr%qRzU;{L3%t%`(FBF7h;geMJNb|fB`Z(+5l5V$6nAnGaDX2TYVyu zr?8x5@=O!K+sk%XH+!Y;^g#?G=p%agHRr*} z+u0MF1+`g?)E0`83yUjk5`XopxM)ena(F!g4uR4PYdONhhsbMyzr)$BbO8r{7n{Xt zjJPHma_~58F%v%&X7KtSqTD0(I$XiY3*$(JIF8XnY!p~?rXbTu+_d0y&3g#+^gRS| zxe|i=g(fB753qo@1wa%^>>nMgOGj?N&PG(Ag|!x{UB|`n;xTGe?>+hAXl)tdC3g+s zMsG{NWuh`}u|24$#fR_}uF|HC~>cWoa{YveR}WVlxk0k7?(Y0En)XyuW6Yfj({KI3%nj}$@v`R2L;L&ss|w# zh%L%FNw{WV{SV~E|DF$3cR}`*Tl-e<`vvg(eW)!jwe=zhCG4F&-d-&0to6bx1z6U} zuSl|>N>hC!p(`Q#d(fvsQ;tY`>0n3ydZosGIjCj8^m0&JoU0Td%TVdZF}2SDF?%LV zB!4#X3xcdku#_8{0L$MrB4hw-NDO&T{vQ8Z21ptx8hUMZxl*OWBNT+1BO>o$(l{R^ zT)g?|=-{Rr;QSqA@xk7Vy$Z$KyvOFW@M;G^x-Nmoz)MqCOK}}0w=L3tt8j$d;+y=UO{Zl^&4i=xj>Mv% zp2VQwRu+-K5&y=bHGm^V~qz<3!>BuOEUQqcQDhpA#$ zVn_pshI2yVCP*Uy)~B@n0M0i-SU3L(mISm!sE%~x{#0x3x_LrA0DRU;*LuXp0Z4@1 z0^%H_%_Q1Ks`G0% z0jgmP;$$Un9$*>)1t@%Gsb&@~I+^wCD_Ie@_Bi)Efm1!W#jcu=p<--sPKPG-n7?w7 zG0DbZ;D(70{Sp4;pPPh;3#Ot7*t8cfv=o#mQd2%uq`!lZ3nBXkE^c^y+Wu1{IVZhR zzJUW-RdEd?MBCIhjaId&qs5oCP9?c##RkLCvJFTG_|!QP!@ic`4OYNG@k>jxL1Cgr zEjk6lnrQ;J>oZQmd?Kjh$`T^G2>Yo`zy1+AZ;ofJ)2q~tFKG_-UvS9(fCCj+Abb2b z_$c-U=IGZf*d~U1l@OFVfR(@5?O$UJoHfnK73M4UGR(uuUZ30;FhK){hnufN%E--m z5Av?-CMLhU&P{wjxRv;dhBFyXZH?J!1sfWk%!;%Dq;dBRn6x<3 zb|Ec+v|UW&X>eny(p?xGYz4hfKVLk1YWffZ2I5#`9g&SV1|lP$d)-VH1o1sJrtxOp z+YbSn(*gck^NUO($e@w+a%mCb2QwkMPD$FL!p`is#mgAqmLn^ge-nl+X+y{FU=4)+ z=#lil`QepEHa<3E|KEK4;;wJ`laGHf`Pe&T9{=b+eVosK_OU6Uv0*7I6gt-=1PiTW z>ZHLb2l+v+u{^3NZO;M7+W8gSD7d_W$i(Ts zU{JxTVtwobtdD}s+y^DGoc;%LJHDQz%Ol+vp~hrfw4`xjN->`NJXaiCS5W!{O2<(8 z1RWL$E4!A?bSX`88%`n3I7-i$2*K)z#%o<-nRm)2&|a)kQBClc+&hONp`TO%DP^Q1l5ycX3{zA`f%tpDgr#y1a#7{EGuGeC`(_ zkJ<0xYuI5xD%m5>ovjEZi1@J}LJk-iT`s|Bd-B4{f(=(@lC#wEEJ3ybySvt+cmv+y zHo5{QufLl2@g2rNX!-o0VZ9*U_m1EH5CdRbt}I-JFu{HoUA|5BqvH?WA7r-)g>Ret z=)FPivB-?Z>Qrz7{rmWBET!QC1&f5L98B!3?K=TGY@}f5UU^s3m_OFGXTNZ z3zYaAtaZ{VEXJ%k+~M40a^)avv(>owj!)q9lSb>`zn*0+&m%?@qz_rodIX+f+3REm-Pmaf%1wRs18&chp^=`|gzHB1zVRa;vHvRT&3>0G2PIBj`d0|$80b@O#ykEfLi7Mh(*@m!!f59^1CLkoC(18Ay(bS-^ zKJ5_V2XcNgWp0$@wvdAMU$e@u@nWG@0nMlNAzc_ZH|LYK9Mx}g<2;NWQoL)F*=df*2RFUmz7zaqJf$VeA(&Tt^^f=6=Br!hRv!MFVl(+Ruiuu7Pa99wpbnL9eHTJz}mN>?1IH-nwq4z#bLWQ?I0C zHTRY%l=wgkIxzC~_!q{q4$zuLt0YbtZEth@>ma8fz#tUM-5(bM-5$2v268&aLQ@tTHX)q3J?$&V8^kzJNLWIBgZuQN#U;Y z-S`&Hv9882MJ@25)EEJ&h3dz+HbEd~uxn|X%hTDn87yq70QM5C@^1|oI>14&;R7Df z#4hgG^%UknLbD(WMq!!UB%eBVf0s>eQ)#fltxfaUEQB#S$fAh7zm^tv6GpnxM?=LS zmGK$6+iRS>?JOgoZQ+XBgfZFHz5QF9ywlC-4cXxc4V>n&vLvk+!O(%|21b;9Ee;=x zWaBLRY3ysu>}!zabPYjy#QBi@oxpwCq)BLD!I2@AZA(k>$f(x@gAIpHP=20JABGqf^3r_H@apo zy0y)a<5M#m_iTa1HphxRd{m^IZ-?y{@fEeL*UzF7`{!_RqjX(x(`fFzIM&rAV=mM+_;&Sr$yRDZnuCcI9DFB-N71RY{ z?g#KBvC=yUuA6vq517I_+u0j(p1dsv(8LsjRC{wHmQmx!mTE9Ksy~VwXr)MCJt`aC zxii>kQg(CHacr}EayP?!gAyB6{tkl)Fr8?C~z!4KZ1_80Ah*6TbkX`yiH&M5aPS9}DLUT0o_L8O^nz()<4=6WO-& zsB3D&s?JA0B4q{a7KJ8{jZ4!1BXil@Mj8g|ROP#xlxD+~H(1_esIqWLz zzP4SJUr)c1mR%)xM(7yqDzSj-wyQpYflkdh#VvN#39wj{YiJEKT#8p{TA@=FJq zxGDQ4LkM%GNj zD(66e2FZrPu9vD5s$6QTFy%OCIsl_V+oulfe@CeEd%V2H%TZjMom+ib>8|}t%t-Ec z#yL3YTc{aRK}|OcawFBun)J9~6{%(@p2bN35QWi(dQ@gzNNzVbw^UnIo*@i$sm8riccB|lv@c_aJwfn|e}kQRzl+^GZFPKEUFIRE^A9uG!<^m}Zat%PsR8gD(<}NyRmZuab~H$e}25hd73?^kKh(G&#jf z(sV>Xz7;$X^1!RFwgM9LSJNLy|45N zy*5xs52QCilyHh+ycZn}1i5^31P5(EkFUZhBxNlpt(@hj((?&4M&bha%twbU zE>fb9f_DYu7C6<|~+NSZOxqE)&^0XCL_n|8vCQ zY4XhU)Tt*foI5^q>dbWU+{uq$IE5fi#nZ>9FC2eHmY2kIa-P{dj?17NE|oF<(#pyb zf?wl9Bb3u-pB*|Bak~8|+2hV5#=8R;8sVONzokwuD!58i7s?VMqSc8Cj)}gXndsyK zC9~{nNVdkEy8;T#TLuVI+~L9jwLo4|9>n!p119vw!+boBg=9mx6taH;cW&O7fs`p& z&^BLyw1yI)Wk_2de8#cQ>^p^$0(PRy!%&3yF!xZvv`X3Q5_ex zMj-ge!eBlf9)blfgINsGG#MO{og!Q}0z4G^G$sP-Tg|D&&U8nQd?S(2H+Vaj-^?@iRLi>EQsV(|2D4&?3GT8a& zAWq6Xyz)Ds|}R>Ss38?aqb5eQ2n6hA@$i9=jqIL{PB)Q}X2R+G3O_`D_?kV7mK_%6zK)tKa#FtUiBgX2UI^#*OcxQ#Yr_NQSt7QHEvFmR9X z%^;q_HiBrv&{qhXm!{~b@844hn*xH*l9jE%;z6$MPq{ZOyve^A0l}2CzXfNlB`aY> zx+x%RDcq-3FWmK0_ID#a)t26e;0B2sN%RJ0!HcP8ewGdb`PsCL0D%S2_CPb`jSMEr zAmdQ)pc;Zh0fHqgX4No`Z}}&UoEqU1@{i&-&k_>wob$FVm@$wrJq-j~24nq)hCnN* z?FjQ}2r~pPu>3H}ITJ=1;h9OMp=@pqAJvd`JGz$w@niCXiQZY_9temZ;tUT_3xDMS zB(cw+>{e8sxOvbsI~xBxMhUeDLnn$}1R*_cIftrvz#HaaFuELRfVnkIw5bN4;F#W0 z1o!14cAkjfvYjG0%CkGgaBpk*wHvA1S34opP1N*%0z!Qm&@faCIgfro2!U>QlUi@t zW&0j9pc|)T&_3ut2GEjy`3>~N9>+^(gwxm}fzfVj3e0xjg%zlMh{l;kj4&l~i*vTi zsi}rB-7GjCr$hA|XgpRVE0VQ&$W4nE?E-q@<}TFBcxObVQ=)r#+j8S4o}8rqLH|C8 z6X}m~Q1|j8Qiy*4u8(&ExHu!;_VBuYh^yj$j4F9h)(0Z~)3+VpOxSg*J#bGa_jmp! zF3zrQh#0*a*G}v@%H)nsLuv74XVfy!`L12GVc@^%8u~PBA9saKf zxG6FQ!SvLZxCNez2HnAfvtGEVV@TE-z;;g;8f$_ivlZV{_~1qx3`K-hut_#S+Q2*0 zBalrHjoaVM;@^pjn^EOD9c{I)!jnp1wc==Tqs#zSlf5Y^qSWwH(!p+YQ@o#p+ica% z%dJd;od1?sDXqcBQlT~EF+7}BplnGB>_tC+k)*(d3EZ4c!m4BJOpNeiOC`-5-e zwt!d>bdJ&>F(14iHP86!SxttC(dPPc#u%&6x9qoU_SKm;-87kp7F zVg3R=VvA-ih+wrUYu!uQ4E0T3i38=8qXF?I>o-5+?Zuyjyq;iFgp$|b<>f=#u6CfJ zfTK4W%O2P9(PpM#_wtKeY$xzJ-So5c7MDFDi`Q6!(gjOLS!1qFi2E?o1|W758&C@| z2a|A{w-oUTnbG(wv1GhdP2Kaz@FJ7eyOPwUE}+mX=oq)eGto;wYnh>rs7@ z(jy9P1cRbS!+eAWFK8jI`Z;2XZ%845((>P8A$tl43bH8f8I%%(P#+kPPkR{&$uh7G zu@BS;@+%ZmX6?7z$`5^*^4K`TC9XOe(X^s14X@f!lSX^wuOStHwJVW`Pfd+&-cXw~ z5C4BtRCvUb8MqEuV{pD8Zv(Xhib_Dp*g;Q&K#|R=oKa2TxiN3qyvKDr9ZH8OLG&G3 zhZ&8}4|5L(NS%fU&ID1v^a_d-a{%Z^MH^6=YwPTC3CHGvS-%8#iz>}p$8Dhngft*Q zu!&$I1g5RRmj`eW8ZYkAc&&7uP)%DAQKtZ2grFOEKfNk#SXz*zhX_9uY1e60QP5Tu z4W1NgEG$}j4xO;j2%{iTX3w8I_w31YvnM|>`OJm$keJLqbL#xembBs1gql=X#6wUK z+!_fx;{h>5y-@3>X(!|~aWw7Ry9Mb(J)cLBwUq=BbcZH_Zj+@=-$Jqt-ZRy;7OIHC zjIK0|=v&M=WdTj|S!Tb^%W*Egz%rwc2hVDg4FB9&ou=s+vlQ)N6my4Y#?hrfkltSC z5w`UxFC?ejK`8JbF9Uf;TFP4)T{SzT1^4pfa8*Xr)Ze7Td5Abb%YZ@=8xQQbe;tnD%B6K1a zg8cS6&qyu3rk4MwyK@hY>%Q(gaj{q|7H<$Qg0B_dkOYvFM2dnXOO!;)j4enOsmhLH zqYy7Bf&v%R-GwMzFBDE>XVS6Nx`{iTX_MB>^pU?jZu4mC=_GcXCT`lqo@UzVY~9pJ zU5}kOu@bvhO-o`w-}Ae#T`VXnPTH#E;O>3=e&_yP_x#TL43Xu>LHRP7PXvVwNtCy2 zP5cfsLLE(eupFmYSjv~ zbo*)f=IU^Dc2~6Y27UQaw!0hcq&PDn`@rZ7wjF;)uBt~y2o<9G7LR$ylWnBS3zc;QC0m~nluZ&i=r9?z*7F+u^+CC>^6W*nbSI0uS*akfT9J<7RA%x? z%)8J+t|!BpNOp5Zaf@SrWwY!kC4=GYOG;Bt?HIY|i{OujCY*fOG>t~giAdL*742*N zNHvlB_0C5ZCgwc7P}Rb$)H@$?Ry^crYNul+#SD)&v_2+|(d0J0#U%Wi9#|kMhd-9m z=FJ_NE|r04lSQd#lFRphwXTTZpXz&D`wCzQNW$qaWuKlG`Y| z?|otS?SOZN0{2ahXV^G1oBJr(IrvE(?$#G>tlbARW+uZnq5VC2V39{&)dMkkE@0os zRn3g^O&~s_axFyN_1vZ9N|oF^62n?tI%k;tF;%~+gDJWvsa~HDher@zXI_y}brZ7o zZ>Xs8kw3**eRIs|XEt1?#9q8a94k;{5|5x>(3P;DlAIY@tmoYcnX%%{#)RQR=_TXm zTyy%;dj?~`8mZUDlJj1>lT;XvObHZ~&~TQ4?oaMU^7euFMqJT6Ve12e%!?Kj2PUeS z&=hl$_yiAXsLhVCpp_@JeZ9-(+sgO4)3|lS)M6zhqtTM--3!DY71Nt%Y;*YX=h`N` zoc<%ak2B>I$x0((zOvcK`IbM}VnXzB^xB>1UJ~E|SY~%MN=6)H!TjN4_=a~q|N20; zwEL>doh!;w<6So>$$8$`X`W+QK;EAYr2@Bi!BVSqp5}Ni@E+=eJ~>|Kjr{e%mK&S? z`e;sPg!aSsAm6DsDqNpR2$l@gb5~R%M?1aOiygTuqaNwLuMD*5=v|i$LwK`l2j;86 zl3<*5-ou}%9exxM7_2XL1CC)wqu&{h!%kp3AR7W0UjloX$+{Pi?$Tt}u;WOGJDiIK zB>x^r{`P8)^xW+hioR$vUAZyltA(uV1rC*BzmXD~Ot(``7|3+(*NhdBbStRXC)z&v zL89mo4+eI+hj*ESCG2!>Sh2SCMr~7QF=Oz8FT#vVt_~wk`9xNZyE3wAGm!tH-wTVc zr586FT!kpY2vU`?znR}LCd0oBDEz2~*kxBeuZHOT9!zO+IRobA0*4_SQ zF(>6tJBR6qDeYbBFy{QLFz2Vz5ru{Pr!Ye!jOp*11L+6}&qrQryFg-wNV-0XLBHL5 zsqOhqm2Z>0xu6op{{0-II~x9c_&2M4pXw)x0&l7gd}@%98f7GhYNK;QejCTlwNd6g z9@nwjm>XAE&mXUi-FReG=KucK(u#}8=$c@l?71<;994-6UZ{VcDKrLZJU_?90<$l z=hknBB9gG=Z%r}3-T2UG=Sq3d^<03GB#G!xSx#d~8)~M{T9|hxI~!bLM4jGV+IUZn zo;iEvx$2N-ph6r?scN-dCQ?Gns+FmUPjZM<9)C^OEma;`Few=x8C}NYJxa=i8eYhd+u@dkgpchxVtOUqw~n+< z8=nvnBw-zTf@D_Jg@+d_5#dNI?QERp`KO&F!k@9W!yU={q8TY2kUj`U9z}ecoE*)# zM;O7@M1!R+6J^Gz-nBqP7^N6m2!2E(bA)$br@%Y~zo;=xDLpaYL9>N}k+)7iJl;&v zi7s>%xIpi`;ApskD!8pQ}= z2j&u@bM%~O3_w;;W0eqJZvIVobr?bFhl9! zau-n(`*7V5HQ^lX9HpaR!=0!Z$TlX6${ONYblo`Xk#dQ8@otQ{2BAUOQ97#mY9|!Y zd)d7^*}Vs?Y>~Y=<7Q_&NS8U+Q480R*txE2^fnTDB9Tf<@!$SbOhC2uLX22sFx$fGE>^p)BURRGW?K{? z0!0&Vp5pcX!Y%s4&GxSP_)6Bgk6}Td_r|3&w5gllR@cI-P zoj;*H`LkvG+HPLcnHl8Go`NZhp837#1~JHvjBz@M*VKrh zdJI8FT>ZNZ^#*RH9tdi1{(&Y0 zg&1Oe9v=cWN*?t##7%OuayG89iG=H5tZaI#ILY8eXe=RJukGJJ6xk#wZjM8caoPP< zeS^QI!$)-Zf)1bKFiRNryu&b(jgfQZ3GRl68u3bF-`pk~Wmk^Gxw0#06t*VOaGd=| zi+Kmn>~6FGX<3Lc0!^4kW-d;6XfnbL(M@wqj{1PTAl5k%0x88k^{&ecPrK9|O0Rl3 zLc8^X&NVRg9-YMjjd0VA{BjLsE2LH5YB8`H$^q4B1pa}L*&PhEAu}`Rz*(1HBwD0{ zAaTR%`TPcm?d}`eGG@0A*WLJ?4OSe&YYA?9MRWe4S}qs_dm$nsj4^5Ct8LDTLrk>n zPh(pRp6#?}9TG4^&s5KO;S%Mba=6w}Ic#MtetcA>BREp)Ae){7W*P>>VdUWy7s{PP z*iLcjDvw)j^WII~j+rGQqP%=`O*mq1ChjRDSi$^t3lLwueh>JGW@nm?{<1O}zioE(!VZb70U0362!7f|f9h^WKwUvJCK`KGoJw%H$>XAnT>OCB=>`&Z_%y3f&;6}6gFx*z;cnJouaasi`{1}0X0@bL@Q7#YT347;bz#X9k$VuSo3sm zdks#6=v(eQ`CZ< z;FGmpq7_KIA7gSH1`&C7VYl{a+zJ)A_|q7jE9T*+tz5yZa=KEh95A$;3>{yDuH(ctkO+Z->&&A@c7GzS3f32DtwXyWiI^VuQ7T;1vwk`~7~L2M2@i zA)+UzF$RGAcu&%>Wk31%$&&wKYoM8B4y2jdQoZoKt z73UVHwww6b^^y53B3hO`)3EJB6Nu`EqkU+Ep7z#8v}c-g-|&mWwhwKc$6{>beMrjb z$i46FLmxZqB8M4b)cnKjKC>wz4L-_;TJKI1fK?pHy7O_v&{Ae6NWh2xwG9J_Z8+fy z#Ddba5RPHLB@A6kyx*+h2^c3pVS5PA+`tX4MVi z_?!-QnTFsodfucIsWnU{v0u_Tw?#DATx@sakQ8aMJlNt$^7yf2-PUSzLI1e6Go!|h z2Df;#Co~^jvV5?b8Lhr)>rHuY8;mLC(_Ln?Y{Is7se65%HvJhL*}H+G4N=RYDA8kEXgX>gKnO6gh1MZaXi zRavX1@y}urYkRQU9I{GXgTlshqOLku){3sdq&e1nTp4VU2evg6&}Nl95w6k zCe+#ewQlUUiI~m)Bl~SPIvqJWqjwu*IC!A#yqlfbEPG3O zQYIcEeYnMPXnl+wsJBYG6|+WujD2W;edxmmPg$}vaf1xPZb1m|Z!vd+wZTLwyuCJP zGlM;Qi;+##?-o0pebe7#%INLZqrJ7wtciV5?rr+1)*@xvZ&|u#B8BWAyXFB$r9>2p zMpD_*k2Uo8fc3c7`ZK9>ja&xaQ0BbDy+eC!c3y&y+uVH6jhTPz+OU7y+6Xf^S{tnm z^G=Wb77Kc}Q*&>G@g5CV-(-xw8jaCgT)p)07i^r&F5G5PE4b62GCTHPwr6Gu{uHC} z+*zI+v?sq|V{k}88=PSPBl%-IJ#1tD-;Ari!@m=ci7_jAS6b4p&A!{g#5P=C!%@w6 z2HK&9wM2Y>{kM{LYvkW=?V-#d7Tgo8G{PXF_7J3FthDhasp9^%@fXL{17?LYn-w?S zZI$yk99u7V_AfZLUhpLC>F}em^)<4RJ7mY@o^)KmNHeuDjex^PtdRXCJB`1n_EkJ} z*S65lk6J(9K|k?Eh{r5^e}o|>3`0y9hM1V^O25_G1PZ9uIMQR?{T>v34h-{FzB4cQ zch<*yo4>R2K=P$+d2x$>pYTKUbtKp2foT2`uaCwOd^tUz@G7r1-pyPwKFlZZOiDcX ziT2e!(FiHd1Efa_y)rI*lzf-g^LGig8o`J<6!W| zG?Wk#`Ute*8$SbcpEuL?Z(1H`F#z}+$iz7K5a(xHEKX;N5PvQ4lw+0b+8#aDd?QVZ zEQ?)!ia!NX(#Iw+u6(#B8Zj5)w6a2OwiU$?u%@~ya8(j3WBfeHPklJ8ajFalLh_nQ z#f1*tul_~viLIJbW9ZTWXE`-fy4E&1`^|oUDP(1%vH`oQvqruX+{?nIIp>DR<_gyB zti-%zXZtG1<(ty$xl!PDY$2Y$(He}!Wg2WW3gqf+wU-t{ddhpqbjgXbM*f)qS_ISx zV9DhJ!;bp2nSH@LdBLAkD)_bzf1vWcPnMr8FJF%GrH8|M-$PERkkkskL3_iQlWvyi zN6T+08vCfXuItf^%HbpFBDOA|mds2=H7+eLX`MwwXZ9%cDt6D^usr&keNBUuET?me zWjgQRQ*NwfIUZye(z@ow3ke&M8?F#ow3hb%>C(}19%vqkaOb*A@%F}O9W!T}Gn%JV zy={g~CS7e|l@!eJ31&pA8!4yEY<+TTGY`DVd^@GoErPR4hus|N-Lfds9qU%$+@x+JSVXIZi-Ta?0((tI(s&X z@k%ZTa(8N}*Ly8RrrF&nsb^l7M5y^s0^Q}z?wCR2ck6u!xEIfnJ2`4mlRE!P)Oixg zYh{{~T(1Jw5Ana?ZNqNJv9{Z=6_Wh7*p7WSQeoL4$)ZSUmmD+ftdR)!0*k9!vYW=f zsa;9fWv`U6bjp*i9T{>ivf5UnbZ75GfbiF_L;8B(EBQmfN9K&wnbyEY14~d8Lf74q zhsF_&Z-2HjY2?+3X8w%gaSyfVqP612O(y2alg-j_hIy2^P-Jd*E?_9%(Fv#ly( zm8DX<%#K`Pd&REjUh9+f*7bZlvhVBIg3~8U*8WELjvLCq-6w-Qq9I;yOfofCH^8^2 z((j)ZMw%pvspq%7CQ!r@JoiOcW-`u~3Z z%;1S^&@nX(_1xi1qgLMqO-TK4bDRK=M5D-0DM=tZ>XFf190k7I9SXMQcdX@J%!xxF zz2XQfFAJ7Nf{J5)${SLBM4npHY5i^juV1Y0c=9N zI3g=9*-G`byi&ciQk~O_XG-qET2Y?A*bJtjXlp_(4j-OwJ8w0LP9Gy+qavZm9jak0P6q9#y1$@yM1w+_nuLhrY;PLS7Q#)D73T8a#KQf)Svb zu7*`De2Y-c82~CuP|XW&QQQp7|5;;UZ*9{B^x8FaJcLrjC~yr2g=+4CTdVD>rHIev zjyM!WT?)IK>f}_XJOS?{qd#x;q^pBzy-f1&BmM!u!GnV8U{ukyXl27s+lIN5A%1iK@Tx|(H5A+GV)B6neQK_<`_=R-bC=WW+4&pEuSkb zEtH>OXSnl@>3WfYiogY52iO^aih!G~7cP;WQ|84d!{w9I%??F8PXtb8i(%HMrfjkd z`#aoIUBJB&%XPgr`xH2&-Nb1!4I^B_ow+o1-d2ppemcB0(}fb$6zK?-Efs;4F-9{Q z>FMy3(X6n~$>bnzQPe5i9+D2m*&58~tf4!&fD<_ler4In@|CA!=q2^s))2od6?k(d zTisG-DYvCk=XM2HQV*=JDn7XCS8hId#@qsJlNjP@@Esk* zw$+QLS1SzLi5H+InPdABf?u(HLyyO7-9a-hEu5{+*{Il@2Vc_D?kIKjA~_y{0p00^ z86rh2q^1%(21?FeAI*M|84$AL2xJd#D=GlTZ3_ByY5FM8uG{MZ(9fn|NCy!f!M_m9 zPTqqMr% z51e~KW7D*>A)a z9%1VGIKMRo%ZjGfv4?BO~2C>j|t052y;?t9G$g;4-(xK_%EO}`k z5M-^};16~9?>c-^2;ushbhftNds-Vto0VaR&N z+5p}V7A773<^&$QH}J5`AU4vNKkj$?TMV9Sm&J(kC$Jk--K}H|>-4vcZSuFXz6w#> zEsV9lL$RkQvlBgBmtRWYV?hIaA{qI+{XI#GapbW3d;NX>e*ZvK0kS85uHC=2+DYqg zd)b~_*y(O`d*~VbDSz5ONbA(XL+&~E4@=|V-_-zD<&XGB{k#2R+436g$$P?&x1=^2 zmii5ejkD}QN+t|O4sL?zXe{okrDVfw@GC4k0(RyQv{b|0XH1+XxtVB$R%@;p{4;9I z%S*o4b>fA21p=5UcAa%GIF~O~oOD;&!zGzBP|Lxa6quSaJA~5tYW330!Gm@&J^%FC zX~51LJ9O-jcBh+!p~OfxRa}A=M|r?jl@8x==UqpR-hJ$z6DJ=z{zKRQ%jwXKS{T1U z-Nn#5r|l@1;VZBAN9^)KKqTJzN+s+kA40aTj`EsJ@0n&o^qkQt2={;xPaaJ7NwC6Pq-gk)@7%^aBdz-Gwh67RzsHniy1&HbkBC5rZ8f8iF zFPV!XD1(G5>9&T7xEIQDw~X~=6_rc2PxZV;ncCK^19U4T>0C6@R-G#b|6HSR+naVJ z1%{kJvtuhDyz{}8rDx+2a>OrRsYre@mYJf>x_{UNY@g$IM zD5sv4?AK!F=p;(((GuKSYhN6nYuc8BJ_5&j{1t+RDRE+`sF(KYmhanLdaV5P@_gW@ zt03|@bE_|zC`0#;J=zk;4>2Bp+3?n^QHqxQy zyQ{LrYZ*SR57o_xzSs0~3@5VS8ovR6SB;SgZ{6V2Gltg5Q4d@WkmXlO!9V2tu6H{$ z#j6OFlfml27xlEm?mJvHxGsqfuMLbb3J;%(6FuFoh-%B1O`2fgUt$%MbxgurLoStu zcl{e7D!tIXsSvN`uzhOzoH1eH*kdMewC8N_i+~A_KTaGs@Gz*^ zeS29p!GshC%F9SA>`TzFyX`F=LLM>8HJo;JD(mWZ0Ned-XwH&&MeCEP68q++I4T{hy42(UohLrdyFI z+{51JB6`-JZXWLWVCF_tW-yDDU8&6tw_;dL&2Qpu>irN2FwODcR6Zs?=ReTFTpqV` zF|jCs%(}77%jaLsb?ZF-pTCwX#OK7n{XtKsR5`k1A%A|5>r9_=?^;hGeV%{4r$efr zq{MZvH~&g*b8_wAd_Pxocf^qEfByT0?l>G#TsEJS+W1cK`yp}9HV#MMG!DVvV+R@6Jtlc*Szoo-3 z>F}%$zpKN74vRXR)1g<8zpJyYIxFdLUYEb4!ya8Kg1_az2=?kM4G3m-$MPEqWHlQ| ze;7!S5PV*j;);W>=#a9@c6LG?Ji_54{8cm<1p-_byj?pACkpo#-(Bo3JXjp-*<0-0 z^y7ssg;9>}g}VwfqvwkwoPW45>D^Am{^CgCeLdaw?#apEzp8DfHnxZse}|UW3oLZ^W$bz;bs0Aa(D^0=9>O(j;E-gNN=QL8OrD>Dj26A;l zj3!x~5CO_sNgo1n{U$tf0x?PIOuiNj>dZuVru+U^T-G-uxB`b)r!!#c{gG&HI#{ge zFBn$QA?ewsPf5moCZhQQ>3o9!r9(kowZ(QygQH1mHGB2Ky%(4Lm8FGuQhrnA*E!?{ zqz#q^SN}1SM*JaNt=E32t*84CQmmd{uFw?|%`4}<#;323@_V^n?>o6Z@6U4s-YZ1M z{?pvB_bqRX&-5F)3GeH%JH0>1mAtR!c6q;_+v9yDx7YhGxqbP%H_2!IMy}m^ w-Qabg^UZtL61d&o|IGDx-)(?D=zZJXvDy0*y(c%~{c&zI|3|qk#KUO+-&|UWi~s-t literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/DirectoryCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/DirectoryCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2e5fb95c6947c1c0dc09d8356c43979c23a0d373 GIT binary patch literal 23180 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 E2dZ3yoB#j- literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/DisableIloFunctionalityCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/DisableIloFunctionalityCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..13c39c701b5222feff2d5513dba915d7dd577df1 GIT binary patch literal 5384 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ESKMCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ESKMCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..057bdc18123b80e688f31ae6df84023be1f710da GIT binary patch literal 3052 zcmZ`*-HzMF6`mQ5NQ%<_c-M}zcF+=SlT>I|vQwaF7e$j`V+TR)b{76&>X!K?oWl^_FBtP3hwL}NB!abwVk`GCjGL6ed%NOFS{Y0ciH z1fNRIeqHV{N$6AZDG?39Ul75cvwY=xv#&M7c?>JSS67ldQ98J31 z-25y#4Wdvi<{yNKyr)#E%`|Uf%wV z%%>{ZPleP&JZrTypz{&D`U9vW8BhR$2|8#9CK@lufQyc33hM}|G)ZKw+-r++kX)HB-d}ZH5Jhh=ve&f?Pl8yQ=2QnGY1)Xq3NwVj*m?^7 zS2JUSvjZ))X$RA1!#XH*w`rQ80B;(57>gsAHyne+a1jo3wFW44so`2i$Nwa18@gXV z>5tP`_9yy-yFc$|DxH8ix*taAE`%8zullDlIqgT`Q9qmI<23n6@9v$x4s*Gi1;Z1N zsH7Db+n3KEk~Dg%A3k{G?>~C@@Z*C|4*M%U?qxIM_`WA37KpwWW2ih;jCM3hXqC7F;jdJajJvq|HS6m1ycXU&q7^ql>k z%^PzL>3EBi+{*1^HtS!cWJynneorv`svqHMi#&#C$t}@%PX7#vnL8zaP6a<AXJkF)1w-l-6W( za&59Tw-cUk3#ZzZqwLxBb0S(NOl88IJIO}59Bsqsm!bos95h+0*5E!j=B?u0vL)7c z$S33v-AG@$Po8vCHX9q%N4!lM7`HoMwu@{o$Yy8N5Ra)A@4W}MoZb1 zO^(tuTJBP?-Em>7!ymBC~AbV1! zs)ZXBi6vgd0umtu3lQirksbu5RvY@KZap>?WR4qu0DG7DrZ zXn_L-AiSF1@XrFS zH&)DF^^pfrI!=YR^qP14ri5Hzws#R}Rla$P(JNVWDT^_)Or(P@s~vR{92F*h?SFrH zI?SW$>StKtMYKd%{SdlScr{wOWfiwpFM?OidJPzi+6tJrp;1!J5sn2w6gheU&)>dK z5VTTVqEP)%CGzQ|(J>O(8!;MAb)Lp`c3lA~OtNWy1*TWU>t)}9)=nUVUn6$Og8m4C zJX_#pI;%Tf0nThd;z0sjE}bKY7F68g5NO5iRUog(9(3vbu7h_o{(JboaeY5d#Wccp z$M>I1gJ>~h`@TqrzOQb;*6Ks7&}9m7Us0*@DyED=6@CD(#{1eK90J|la6arf)yzS+ zr9OoT)2>(ulNZt)eP3}<#Sb-UwLgoqROR)L={EeM;9o~?brqiUZ7LY&7qv0JL~7RS SQ1NSwy+b?JJCuF1)%rg{=}I#I literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/EthernetCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/EthernetCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ec7e3f68929a98c4d643e5b33510791aa59b9dad GIT binary patch literal 30752 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/FactoryDefaultsCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/FactoryDefaultsCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a47c0724e55a4115e02054eb11f4968b5a363d87 GIT binary patch literal 3282 zcmZ`*TW{RP6&?<`B$vCoShD5F2@v+?W|3;wPSFApio%9$B?fG%u++LD zxBeKkZy@w9Rk>Vjs62p|{{aL+eUvW~jo?s=a34o{UyqEw5jFY^4ZT3|Edx<=@*@qY zryOT}cic-9Yp>B~i0H(4i-_?C_ifTRKpivx-mX6o37fc&=+MtX!QGuCiu{Fy;vNi1kA_->NLWH({^DP_J0 zlDJZDJ*OgL@lHZ0AE>o17ab}O;N_oyps23_Aed-HRWi?m>aOLC*$;B0@j`T0lBDW}5al$}uKio_k(K#&Ru=n*1_M|_~c(zBxeEqHg} zY+a2iNx2Z@FLMtu!}z?#OMT&b6-SK;|@D?5Ux`&Ssj-5_?w zF?9zSV}PL>CZiE0son=9AEhDPo^9Y_=EHJknBwZGyY7pJ&-b3}eYWjpFquny z;k&PcFm#Wo%V?CGz(UXiZQ|G+_?dE9w_{2p_9H4A8TUt2wv^Xckg85;@eE>zO{4{Z z;&aMn%g;^+RY37hLpA~eyO7o(B1h0K4HaP0Ai+SeB|x*INrTgH_z%R^q54hHJ5D0n z8}m=@f7(k~GNuE;dqJ3NL5RZgtan1=lU^7c_0owrPU4?-@89e3K+vt!AAA8L%F&E+ z(W9pjg&fR;rle5p=d484y+nn{yuutWk5|U4Q!6&a z4bm)UR&8s<*{o)6kJraH$G1S+&bJDiv^LQr^!vNhCTSNQq`qa}$vjXtfH5tdbk=@U*1?oxRGyDyK%FP1c}q{hdB-frZsR-Ycx4 zMQ)N?U+U#n)*4OVcgls|M|>^Oj^iDcbLTk70!<1)@3{OnIE|!P~Nu71p``e zlcDRgQ5Gp?b5o!5GA-vSVv^FiMt9y(&2>z})FS~;w_PPef8wepcNqGk`PfU793@FO zpC!jz$GN$+rF109KVIBJopY}6zo6WWlew+ke81!c#ckJ6!v*zqot>I@AeU9@T=0XS zEDB;@P||gB`&pHYT}WRW(if66VN6kFzCP;$8w4CFZ~}CtzE2}*JuE@ya-%foFj>f= zZ?qqL^(_=>3c#5HY19nf!P2aBWwTNRq;snWllDGOJ39Li7MA8=sl{BV9D-ez;>%z_ zJMT*qJODN6q~J*5DF|6Z=~xH9-r0G4aKKhoZB22LSB~{yt}p<{t3;O0!GsGMJw6Qt z!>VC(0sZorEKfLzvp^cJeHKgIPg7}D=m76go=S_+R~b-~G*Vw2GXv&ga3es{R(@A) zK#g?BWh0@{F^muRh{pHt$p!>WAY?mDIM@$|bx0XoQJTweKqQ&)7zl{gPMfW%We1_2D$gc&=Q z_rsXJzJMYsx%4{j9AsQ1QI&ZM@C9+2i3RZfe|V*K1%{hGAzpaNvdNpA@tv2*WhARh-|w2Hpj=y^glqvDI}!-Hbd>I-VCLBn#Dl+w)#! zepvTdo=1{_=doL`3VWc0@+o_y#N65CpUNzztob3lT-_UNWI)C^%l5;zUH0sCn(TAv zkgbxeRDJ^!sNg86s-l#V+geYeG-0B;a<9V;3X)xPFKellt};Q|zo<6zOU3AX8H8~I P;}5j9`GJPNU2Faife5E_ literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/FirmwareIntegrityCheckCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/FirmwareIntegrityCheckCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f8ffaa00b54ff47a45eb0200992b2544c178a4e3 GIT binary patch literal 4369 zcma)A-ESMm5x+YgkH;hRXMcE6gjyjqqC%?>nJqIawu+I} zvZ7L}6xl6X*B)x|imB1^$t_*OpQ3jzrhlZx`my#ijhLkPOe4joMyo=MrdG2ucPn7g zvCpXcWlDTO-HjxQ{Ft~033C~V+AlylZKr0*x$Q8y8?oO+4(#6FYs$(4Dtav5NC@S!x)(%rw(5qp=82+%V~MC~^QHo!!c`qDPwnZ!}{+qO#cIeuv5mxJ#P_sQ~wrCEf!MW+$=) z{^xUWq>A5r0-lO)&1*$j34`W@;t%V$e$?QBplhk$ehd_f z8dM+}^of821Y$zh-Cb{E_ujobJ3nnUUg?VU^hDa87sP?^yfyTz%TO4Gp~KI_(*BoK zvGl5*z4vNHBPLsIJU*jm9x7#cmCOFp(6qk6oW9o8PW9&yU4+psG_|Y(J?3e#ul4ok z##hFmFfbtwT{AUdiPC{_(ip{}zJ8?f_lSXC_CC(Gv`66F!XkyI`tKkT^-cC;VG|Qu zeeJZ|FFevSvKYIlZhiCKtKYFzcs5sQ?*)(6GR>KBQdp^rQtjJh1~|^bJGY|2 zUcNosL#i+`5A(~h3A|T3HEMR3PM7-*?v`8{RLJE) zwO=9jV-skWp>}0S<9{2`k)sb7L^8 z`e#5VqaC~fBR7VlbN#vgtXgv{6M3_Lp8Bm7ZAnv-UL9298IaEXL>p9q^L64X$&}>$ zFa7E_I$s@1{RVj($HWb^wX*4(r*DDJ6i^$vC)M7`{(8?3;z=;;<vcNlM6;XkI_jgyJ6*+&-= z1H2?L1U&!94?-VM6~j8j3HRfAHv2`2AUj0hIs_>jf)s?JgfYY%IX4{IqCQ|KggtBP zVYBVW*~fc_h+9KkhiVL{Hd*305Qh-Qp&wTYbA+!u*@r*KSIqN*CZHe;Z9Wn8rtq0~ zd7P1jT^h*(Oq8WN%7`EakawuaZjPn^Vh-_kh+V#-RAL<@y_nRq#+_q75NPHptU0&< z`|9=j3rqsGUKCLedOa)OP9T@@>jBxT82|{m?9$>vh>^dtkz+XK7un+KqqWs&ZI$e; zezCrKZ+*4dk_#hI$C-hw-u1aab*f1V4p!X<3JBNTRqn{y5kcPh0&SArbnYi1xNXN3 zuoiKXo^bamU^#U;G616hVhT#?PR*4TxF*OdofJG=c<5Wq!Y!4WUv6w{Hk)h_TZ@QS zo}%?YwP64!LhamXo^U~<%_o6iCQ^=1*jVE#Sy1^Gq-_9}1wT!tjcyKk+#!GLpi-Xynv{=;bc*{WG?Y&FJ(*u zJtb@z?Wn3MS;&heT%o{v@lT+_e+z|aJGuoxy`;~>&(Uqe_^)Z%x?{}hwmuI~URC4R znlKg69l z*u}woXr%RVU_vvx!`^cdcub4FJ_*7*H6!AFJ&sZDGv2&XTN{Q z;9O2Yp}LL5^mweSNa5#2K-unbfj2XZCg&6!#A#2QQ}0>weA<+jv+_89S7#^N-c<+8 z4*{y+_7nC9%>e|#(-n!!50m59irib$0ZAG41nbe7iSdWSiBzasf>`9kJwsYKKGX`i zu~&RTyxid91ivKCLZ{Cd#`G%ky@2~g;bwGAu9?lP^A!1(b-j8R{)`4 zLqUuRv$C=sr3uR~-0~6xc?fu-K0P1Tosva~rlOtwS-!Q;5%)OWD9i;2a>l!Q)qWSk H(qiTRD}4Z? literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/FirmwareUpdateCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/FirmwareUpdateCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..320f8692ceb618ede2cf2bf4cef7994b3c386541 GIT binary patch literal 7782 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 CVY0;l literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/IPProfilesCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/IPProfilesCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a43d4ea4a710906525fd80bf7c1fbcea11883c25 GIT binary patch literal 17667 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 pc0%WxUcBr0L>(xyP7G9^(D{?b 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/IloFederationCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/IloFederationCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ca2987e12c35a6008f9d58610225412a4c4c8b5b GIT binary patch literal 14434 zcmds8>u(&_b)VPH?hcpBB}Gv$%O1;?t+mCa6f-afeI*!wrPyUaIF5$ zy|X(*hO*rt{n91&?wxz@oclWWoZmU;vNJkrDfk@Af7v~IMNxi857|!v4=>{De-8;$ zmK3Hkt);fLC9SP5=_)ic{H~Qx*CX?~H%+J8vkSdRG7sBcf<7qKOVX41U>GZ?J&oWkG|?V+-tO*OAX(@ z-r?-BbFD|CmqRvUy}?*)wmZyS-i(XQ)rPm?tUH^r$()uGI89oj>_<-?{D+ZolqD71 zp}nIltHdF17nXFUGvjS#$#_RGl%*W@As1Kb=_XuiaNlVf8In2V>3IZS-$oKBff^}W z+L{)rkrwI8x~oLSchqmF;1p$1c~@Pi>T%BRVIBB5UWg0zy6d??y^hWd-)Sw!<&N0G zx*u@YTk&H9ixI>*ufg$Pu3x9$ch$I9uQyv*nR@+Q<^6DGwbOQH*8C?=eR`(LJ8Moe z@MqjsXBu47SaJBwhU0C_wA`yR-OXUN<2_Y7^~8+t2F`T1(OgFh(VC;D8RrJJjP@Qy z7cSP%UVP=1GYjVyXU?}e=~^V5Q0s2;NlfD@e0>dxt%iqoFIjCc#U`!S;FCv&*6l35 zzNX@=Vi#x!SdN)=Lg-Ymk#Af5oLE(TOWjhpHCDQSgj?VF()=#jal_D!70!-f(V zo6pHJ85SdTJI6*Nb4t05l}A0!H~j@BD{rZ9sq#dIj|cfkTPp;`EzLiNREe~DAu_ft zHg;R(SEz1#B+5nRA%#_3m1ucmqJA9p%^mduFOiC_wt~>mUhjZpTfu#O&#}5|HpUu2JK}9c}zqptw z+fQYSL5G8nGQ|fMH~qkAUv`?E4To>0HC5{l_FK6_40DH0Wx)@bz-k(tBE?{H4Di!Il8JwIr8O(!m3kGq%v4txv3Ft$+61OK`k ztj1=e+jTq^7e4Q7O6iy9`-ym0@4>hxdoTX0TJEYYYiug6xs4k_MiQNC2KUjui_8X;Tw9F27}5qC|82ArA6 zVbpS(j*zEMBI6Se6_k=%(M8#wir__R$dC*a0aKv>Ab>~#uqhHkZ>vi=sj8Pul#r5E zm-1|cmC&ZZMp+rZMF+xyRo+&%)TI&R$JvC)m)JfwiTY8t9|!wDJh_+n3?Csi->^OB zx(#7%FQ*DW=-9!kV`Fo1cA9it1|Q1P0TF`pBr*`33XOb)Acpa6Gg9hMHb_y9R10(n zHl=Qm0;=W~;!$*!_SAR>1YdKV>nCjt=A=ymWy1lJGy4^xT5ZUWEEH)po1I?Z`S#U@ z?=TzSL=3cdbs7LdfRrA}Yu1&Hy#ca9Xi+P_>onbEw`u!nQ{U!2ZRN+2b7KFaykU z1+&7yB*)ZnzzjM>ajxe>EXN~25d(A>=lvdbif_hwpgIfz$g9!2k!+t2B$9J!m~p<@ zX0*$(L6{Rr#BB!rm%(yXRmh*rF%&0|pukmpeadK>kR&Fhg&&(`6A~mmy4Nun0)+V{ zX@kLsBpAtm!RUVn6%lFtC^S15o-}bd8Yyc)1d$S{x3yo<`g&h~T?zCxV^QdOXnW*M z-(f?`Xkl%+SwjV@gRz{DOXCOC5xoE6k@=9oTfK|}ypQEv8BpN-fcv^7qEfp(R z1X4P<`5$ui-cYW67wc2v?}@elZdCfF$}M`EdST=18lH>6AvQrhPeI_mrFsW4^*ZVw z96ndp#dC0&?MvGaYbCV}?8Xt=jecd<4xk6Ly^l?PTk9K91(fH3`;M~xQGx^U=KVyM zT16wbVOK^LT74-pL`pnktvwJ~kpa=Hv8h`|e>@sTT`wA6%h4}85ZIIls>S>^6e`2) z1fO{SIvnXiG4Jn$IqIoDk-@Tu*&$j3b~pm|#3-r%ZPEXBGMfiQ|2jKz3*+;?9~@)% z(HleBM+NO4;`t%G8_OBGibS%(!|ZebWw~(CUnEUbD%Jw6-QMw^Y zgGbqef^xc^70i79>4eL-#Yk=g=6hcm_I^zC{+<~3kL8HBPehhL*{z^Te99g|8;$2g z?PJ@Ivxi0Po5Sbh;w0tQPNLO}IOY3-Y4HCe>`_?MCvIur^pXA;xOV>`CE6#s_q6g& z?b?xqMlISWXg($0t7hJNtUt!g{-k^t98v+T@&5j3GTP4`JD_0qDiNq|sRtDH_yOfv zr9TO}XNF@tDSL}1mo;gJp!QkR&TKycX_BYakkYC;9e(eX24pu>Q%2M;_dH?TTXyo9 z1=?%0?H0`MSzDTic4rxiWTn@Jxc2QX>_MRg(pQ4bu9Ln|ODiNTvMB1z^}Dk+rLD%M z)Yr?c#!A{YL*#0w(@Lp?+VtxD6}S`fiRKN>>1m?L$s&ALgQfw1aS4|CK<1=UUU38> zk4>40bC}M$zYym!bD^+|1*omC_+p1Of=10{v9ZdXW&Ron@=+w=@%a=c(Hp@2HtF>i zv^d)&9S8tY3m<>g69^ree%S?@5hz7s5Uf#VonbmuHU6t09qRztv6b2pD1U?c{Q^}^ z!aNqy4&+Dn5-CU@ z-yac{|0<5xo5eoiJW^$FI=lwecTHm|Tn!q36ipU{j>b-CwI}#F6ztO3aq;wu1GA;e zU-&1~`ec`AHw|S%HSUIw@2RZ;*=na-9RPX%h1&3K(OdXyR{&b~f+d;t7Pi@H10a(c zOCu4mQ(B4ebdlwnLMlRP1oUY8KCW$zS7?TWki%mOojs8&os(s9N7bzG#4c!ip5ds# za1@{~<$_sj$2Jgo+KNSde?;pQ0g)Uc?~b-0*hnt98msHO7rSt})o5R3jTe4G?-G%M z50Kkm<3 z$NlOl{sPs*yQ;(!g#7Bl%&bGu(DHC{+r;_BSI?fETU_L?(o?x!2Wl71I9yVRc`Nq| z&b=T$umj@@r=jp{!i(4K#)Wpr>%d%IC6l-gki6{rt8szk4qTF}hBu@-FV(=?2tg9At|MklsNYDgg&=T{p(T%j<^Tjb;5Z;A;dc$a?$Pn>)VoXo1Y z0IFmy!`X)Z$apq;UC1IQ9t9s}MqcW|?J?*-*3nlyig7hp2W6blEB_@TsyDpNn8pjR zEr}bT>~r#Y#AONh2d~9CBxS7iTw%VGgCjQ9d^mYczr$gs#8aT)1$9_qbt7lPq!~Nnr-+R^3vx7cZ6^} z<_DW%h^5D)4@1k3^RV3OSSNTrJaz+(n@u=9s34cj6D_;32}6sPGLKP_6(KznSh783 zk`58m!({ybLSp1CSP+w{shb~KstK#YfajqAUxa}_?Wcw@r5ZOYY6YH%f~I|7nI)|Z zzl5QYf1;q#lL^O$fffbwRosPT@}Z`a@4^r*K;@=|9NNH-fv3BMPN}I^)G~f;y{uL= z3;D8UBArl6+7$AWpr_reU_=-fjR}2CA*FuG_=5V~DPaW}cdZ;otX0JO+RZZBlrcUN z1(di*MT(1HK5%BHe@>d z(%QBr5gR`kz>*PoODO-o_B*qB} z>lkH;Mk!_^$C$@>^zHE|N0{weH`3wK7!7X-1y3#uE&>QbSrGdr-ax1jxHMBdBe74y z;IsC?Z$U>SakctsV*!4KZAk#8_=lj+#LyWi7#=NsZeuUPwNIc6hpt7T4@t+RZc;IL z;bLeuJaRvh8btg@Mm#bI1_*;xeK>lx)w$}!59`d%%+$i?E)7coW!4^gi@?3hx6-NqfROMX`d~4wXbaIshvEK|BbclJCPl zCjLx73N$94KqZjTOZedqB|=Z7%4!8=$DnY1nE${fQ%d;6o+o1%IDaIPL$i5`Ot!yDI!*9-PGFdj7wGH`NLLH5xAII{tM^NPh?o!=I+yGe}~Cb~!E# zwpZwJzCktR1eqanaaKq(q0$d67ra2|MG}k8IXbcS`py<4f-XoO+ryfPk2dktQd?& zx$Ux$&D0JhC^t}Q$kM(^v8jF@&ttb0Na_-NHwAc&ikwGAL^ShJ;k0sXIm-79Ph;pe zQh5}ai-r(ZnZLqc$A;bcGbG{sz_3b2h#(JM@nO;mlp`jDEPT<; zb+Y^*9$l~5>M>X$sjszGwfJ$6;}28v2qpJZ@&F|yI)%XI$0+v@B@ZHr^@~oMH;`MX zR?p1Pz zZhD~Mc}2*~$9O5e!{4Pgu%Qv!0SeZU;lEEsbQ0y8e?X7Lb;s$7g%#&7)`3!YOHvXX zPthTqN5;yPR15e;yNkn?vw%c2U3hD84AVdJJ*#w3pr#TIX9ai$hw~a@E>|s1dpbT0Zdb_Ox!Mjud_CiL|yJhKs4FwUEpDy z7GYb$HGrqVy^cg_WDc7cN!mUg#vL0=7C!hYgu5-=9?p#>bh?kI+G)W`wULUequF?9?1SfLg$vxM_%|^RY!aHyZhzw&N z!qr17L};Fne4xo&61Q-xL7aztxP1;nXNX=Kt&CGp#IaINm%?0H>a)TFBlB553l?4+ z-@&~D843$JDHXw`10rV<2jnFYjGnnD?yty);TxeP!tYW@36ofTtZ@p{l&t|e$a5zp zcd!bcB@d+SF58=(9{e%>DveJ<)J^;Ps*5;0(MkZmXw(4s5~q@y5|k!N(Gn*ZF1PL9s>3x%)N~F3GJ7&nsP^|Eu}q(f>IziErqgjp_Ve^T;`qjPUA!h z1!yiBaN{b4Udcwc1KcF2*>hi*wbONb{?y4QPd>fyuE`G&^AWJd)c|<`%%B~CtCW1N zQzDcHEJ&bS=Cgb(?|J;fS$TADgCyl< z{zn*d1NV=9!Tc;|0C)9(asI#XbY^Q3w&s6KT>0me{3Rv#4HI%(#>WQilzDR(i++8` zqWK|v5}e6dKMtS$NEW>}%^iA+!Vd*}h2HuWdW%%wAZ?ZCFA;_SSIY)aI98j33?A@=uyc*_Aon) z9*$GAF0%?E0?1Av;w>pwL2(2zJ&L)>*_Wb{p!j%(qFh1T4ovXF$?)s1bGkRhhj2mM zo+S}IfCp^~y4?#pHetupjaa&1waZ83dfi^eog|du&gSy96ud3)uYzyj=^)7+{+nf8 zx_th%^B3kmJGVG%6>)jx0-+77i0dMk#f?7l1JRW}tN7HcEij*S3|YmeaSaBFZSeTa ztexE7v&EG@tN5w3L|o|;Mv}PHXIVvh757%e9hg)xVGPgC+H{T2#&y3T?dOuRm)wp& zEc|p*m|XZ9mY;fJ_8tKmp^(Dv<(}t}a;4}B+`t&tX7(-+%3H0WMTu;xNNou~To2cu zaR(17!5(Pby<$z+Fev#NR$JJR+VmQQCCOFJzlr6it99^^)dSvh!rT8F{2}ic3ss#& zOW{+)RKN|Sc0RXwae;UYL!`@yxJHTCCnij)UDQ!TlLEKBCayU<0PgDv49U(6=B*2+ z1wFw;wRs?Pq3{0$V;3`$>-jHGkN3VIlt7@5Sf1>?B)PsRKVWE^JA8s-)2w4D7CBb4 z&m;7l-6XP&0I$2IuNnI%b;& zJ?P_4sgHcy3E(Q>d<#!uEkm1z_i?1l8Pb@3_^IRuA8kTrb8&odu}p-oi9L6Zw8l?R z=ij&J3LmX<`YPna&P_;s(X(IF4b<7j=xY08x(H7Z zF3ij?yFnxg2fT*8ku#|ccH?ib1e~@cyl__hXMy14WD|b=Yk9m%B%ie`C%MwNb2+7e zpsVf5=Wv1Mvl9Yl=YZoSLzPUNR~*ls28nQAoESKUtF>@@*ZNS;X+51r zkZiQT^4LAFzgPrm5~E<(Kn5cbl7TET))B&BVAkyx7AF(i4x)aST!3#H5(849_P+WV zah0T+lLv9QEyDVdg7D>Y$!$r==2G&A!3n`L*yE4CGsz#L&3QE4oLv`FWtf)uiTEfy z{?VHuTa)Wi_!AD{B*9xqK81lz=1a>eE>l$+K94PWmI#9X1@WOziB1U_aQv?*`D-NA zQR%xWWx+>04pIriNvOo-;mNC$g-8+S#91ltj~A#%VLSc+WaANe7-ZYgc=n+xGjbYvP}q{rfg7@K!dvxaR5W0dGkXfmqGQq z`QIf=)SBkNWtjwawV!H+`4gi!Xl;Iwnye;;hsl8nhbBcFKmnm(^L?X`wzg!v0U_X| zjk=RULQO<4K;tK+B87|hZd)*Xyj)#C3{E zD*9bY-lF7dl#nxylgBA8k%QT7LUpWmSjrvzAE-sT;vy%mfP4-Wb$op)Dkz9OYt}yH zD}_nx@xn}DOrwbV1cEM;oLVka_w#?mZ(P7W$$cdMmSD(uEV&m@<1WIGuJm%pQ#(p= zfrNMqewQ4P84*`Xk`j|B@4q&zD|MvG1!0wh}$Xi=a*QFtErz36LSTcCeHLLe_mQFQwkG?PWPzjH4|$+D*f zDuI`m=brn)d(Ziu4+b+cmV)1Fg&%v}RYmy?Jxu;gJiL!9Y@=Yxff84k%CwH!)ef|7 z?jYCI5A<&SAg?Nq6#tU0xW?d?s?Z;NxlV!FGCuTCl^-g;`jlGrj@d096jkK|h2@#? z6NMSiv;&J3>Ppp&uiatH-u0TUAG-Ed(Cs#SX14-vbJlHsj@2ktJ-NE$H-m1k5qXb0 zuD84QeV2z`;BRvtaB4hmbUc=J-t~M}H0(XtuO~|n8qv{5e&e{|bsFd_yObWfQJ?!; z0dvEu&hwas=cv%B&}dRMv3R%X9J!sI%bTE_`4RK`xWsL7o+u35vmr%)-6EO00~#$!1su_ad8RbGTbBVvB4E_cFW0mT{k9m)R@0 zSJ(>n>uNH;(+Se;N?$m(X$u>^jg7H8=}tz09UZxL=<;JMU!7Py)eE?`X!&oUz!535 z>_g>HVfx=2L&bpzpadPI7UiDNU1tgwkgp|{*9p>T;&0a7XnN|v7gIO;oV$KxcY?!1 zm)V}5E@sUt#+z7iINk4wJFwGbr+qtv^S!G^qWg`mo8@nICoun+$nb(YX1$%*G*F(3{`b^+SIEjXzrN@u2NCqi`J?u!<2eJzqa|{p0nH_jtWGh>imPowbeI>!BC9 ztG!0^2{;5dcf)Ai{Um~rW0@fB?m1g~_wV1S-L0>mJJ7Y>ATb@s^S#J%s&q`W7EROC z(cgSwn1)(b<16Pok2>CKl8}ym1}a5d;?#eN%24ChP-!ct>T@V@q_uN(B`$%YpXP_k zP<^ibNIS`$=ur17x)K>tp`{JhM=C#5kCpHZrqP|hNxcmyd>wo&_e}i@DE?46HHW$9 zs!FxuFgMhnYbO}FZJlBkv;ZQ8c}SEV|Kt4zq+={q_PxH}r1P{aJN<3;8obekbo=h6 z9Y);q5AC33H~3+{ivtbqULy>Jl#RPYgPuF?u{LgyW07V%%nN&)HkF;mz$TL2>NF0= zyc2^w4uZ~jlvrCmijCD(>JzU#;K4CO%jWLKeUD=yqm@<5iGlf`hl$n0vLk^g0&$W; z{iCg|?RuTh<2;fD5=BSwI_TZ;@S1djiB%tjk=xz=#EX)p24ku23Csf`LhN4|@7>dY zKXG|0-9SD^15}`bK|gXh3T$B2;EP1oX*ZK%whu`m5Ly%_I_5{&1Uw2gki{kHl;eH> z4^RoOq0miBH6WDB>Ky)-YHHdSmQmI!ny$r{&Wk4co)Jp2I)uGKD1QN9B7tnHZHQA_ zKgkW%cAhUneDXt83QT0QVKqQE`As2Kf_|b8b$&y(p|k`?iT~NeXl339|BM_5Vwi8k zzO4ZEaOGB%6M!COo;{so`p~$n2(dL-{)xuFm$u9^Bc&EV{ZU3WQ)&^^!;EUB)DoyX zqn3%9zJr`^p3O|q)b;}Z8P>T#>l|v&b0>wNeBVX>x1cYk>lf5$X{bF@Sp_rvGj?Qw z&Gr>h%V)I`n@eenX>D>3l+#PJ599gM5$7@Dud@;VolZfF_#ddr5&si4IpTkvUoD%h zE7MnXA^v5iQ;>_1m6FnGkHmG&-ihpHqtk(H=mBk^FpbC^H)lhnaFELDrkx_Z&~`he zj+uoHXS}3XV>M1kB7vV8hDcLmNG=IK;~|p8t-x=2yepLPArJs)pX9dpYDvBx;RWJ? zxNX`=u_-xS7GK&;EwvY7`J%tetfT}L89l`-6Fh!^tr@jgiPiVhO~g=jVdZU%G^T>Z z1w{14qT=gg7C`N|!R|uGt@y2bZUYVx{Dpq67w`xG7WlBfvD@-b5uoBdn=8@Zc;-u@AUe^i+fjO2hmdvJ= z5f8i_Sjydh>^)-j{8msk1$Ocqn1R1W)9B*WakUI8xTr1}3?2ma~p{HZb2n08r-3dD68xGQn?W1Z>bSjN>% z+a8di422h&Za&<{R*<#F#`^(lM2#2fW};fPstLai77`|lBv2eb{|*)^WRri3YMUsM z98?$XzOa4;d01hRBN51xs!SU@F~(n_V@R&yoNi*j%j#D&?a%e!#W&CI=6P{BW9?`k z$>NE9{BKl*T}Z7RFJpJGD<_(-%Y8c0;_Z|p4@!>dpJK0vxwf=RuSW&MQE;^cg>2G0 zg4;YTGGUV1&w9jPiWT)y`yR=hj`y+woZ~-gr*?}h=z-%UI zy{z_}bpOCLKlt$!kF+pWdqMI%RjPCGt?VrCx*a!i&m4Bv_CniOf1#~!?0=>vM(9B& zBkykjJMk;KWAG$kOx4$A-d|Jmn>&8kZ?(LpM*#?==@@+vU5YL;RUbu4-d~9x`$sO| z4+!c9qZT_08qajJKK~b-U3}xC5oiD`M^YO0n@u+iTm4RFV8z!(uxal#5zc_==@C|8 zXWim&Q@nQXk&OV2q5>c;Bpxe}F`LZ-H^k~wM3zkfq+0-bt-2_M8^OH7*Qi*hf?Ttt z!o;3BN5Je3z|J5%>W4D8C2dIZE=A7L3tf7+Q+Mv~)ayI751gI5&i>wq+clvtoWPlr z>L;^fX%{cWzd=oe63JI~Y6xW>+}Ypx?(Vijc>VqDhxMJkn#AkRq`pbS{A231Lj^@N zW4DsOi^spi72ZZs(S<7s^ut}XG(td2;Gisx-&b-K!aL9`Rr`JX`gnC|OuUwz^9a(L zq<*6xy;G)&zrX_=8pOeUm0uS%atrBcnbdAXSynvtME462ekko}j^%~xq!XMm0}6CI z9Yx`{ML#41RutJQUJ|_o2&R!xzFlCXw%?7+c99ejil){Ts1Ou)@PkZ=Xs&Xq(q?-m zQ#7kx89bTdDvA}E?b%G#toV&gouCzD*0_(WaoAzeh9@_N3ekLPSwgw)sP% zi~LO{to$RQ)u|vUP0BlLKX~HGY!N2|mPSAmGAT{@1=Ohxkgd67(CkX(*)c7cRb*oB{?BG7eY7v6(V0LwS%o&Jyt@-)W|M(SHk$kiQcpTauo z{cpHJ3eGDKrm}iXgRiI2KYsPR;7Erz6`wPrLpVm45S@QOMLH4WW}W0b1%WYejn7dz z)LHIbCEgG?gaDi05H)0bfN;ppw6tXz_7b`or*P6ToH9iq{H=^%h!oI@LQ~?VF@y+# zR;-JpFlBuvTYe~7AWUzMg-QDS|F<+H>PCEP{f@{8h3kLPqXh7-1dFvTIY|1Lm^)$E zccJd_SI_VvJro^@nR<;uCup!u`&RfCE{i|FuEjUW6sLp0;*O2@IOJNh_T!^Twlq`` z=Gbl_y-bq*p$C&Yu*HelUQ4*J)JX_AxSCPG2O{XQ5n54(Ha%A2Xt3jk-^4K1y=sv{ z8@vnnMRrI>{2C?&_zI5$I0$6LrHvL2zyUoH6rMx2B-iJNgRod6AEWRn=pd(aA;!If z?!Uqneho!gr|<&C6&K+gA)7(@9aaC*&{0DR)#4i$h^su4%<$$g-snd-mtoyqJU~o@ zIi-xxMLuxaevt=k50SED1~94+zm|#B2kzO(A#32fn2z5^vCnH%rIW8!3oli38B?Ay zG>@p?lsXd*{1%r85~S-wjthdWFXIcWz(kySCdwjTD%%-?6?*eiRia-u}4yk0%0C9*e$?d{-7r0}eVpc)J*BAQo!b+d& zDWyzbUcjfa*^FxrUtfxBfh}fSOZfg$WXls2e1~Bx=yip7#CcqefBuLg^WpOB1VqZj zcb{e{sV?QVM+vTT=hN(m5q;RA1o2e<$@6>tD3jhzk;FR7F1w8rQMI_Zx|-Tj;Y1|{ zEzW20TkyWduHT`Dj}{1Ykg@6z4E4C%_4<@ummZi-`5UCL48Rqomvu@JCk5nm8c1)% zrPbBUyN<6<#&2Ugo(`2*cs=eq5l3)MK7KXFJ>2*a6^AI|!s@C(OJP*wtGmd~Nv9(0 zxlOO-jiW1ASL!h_0DY{CXVU?YXAxO6{!OBOeM|Z(1hHuYMiPk`VF%KbKYWh}YZBv% zHPPy58%Kk^P0vePa_BSOj@axJq8;LT^&&1I4+6>gXdbZvv~&>21xQw)0*+KJWEkZK z4d)Qq`d(6|rV%k!w4^*K22*g9%;K1k*B|u>XGr_VH0TE9iu8%ENXGBYDnpmPsz_i;KX2YW7-Hy;q&3uUYiX&T$gUagcKCcc@-=oR9mBPTEp%92PVkhc9EX z{3aEYC6kF9k{uZr2;Ylrm2|)eV0b{q7mX34y6 zE}Qe_HM3kc1z)XN;vv|QlK2oqG7n2hxHa)A@@ITvseWH literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/IloResetCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/IloResetCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cdf3cfb01fd2beacc4c54a5af1d4e61872930553 GIT binary patch literal 3298 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 LJOQ%^_c!;yPcET> literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/RebootCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/RebootCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..95b6ed7b73f53b5af9fbb470f8849d6455ed531b GIT binary patch literal 7614 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 bzenYBMDayGW1=R}w99JKxU6bloUQ*4_Av|w literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/SendTestCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/SendTestCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5db79dae2d577038ed2c3c6c58d66cc6219f9aee GIT binary patch literal 3605 zcmaJ^&2QVt6`!FflA`4AB#yJ&Es=KH6&g#M-D1%i#bN`m(*}s`V3i_>(1M^fW0^9) zGDA5rmjc=*K!KtKik=sReeAKv{R4U~dYwZrJq75kKo8pj?R%soD{`_lIO5E_@Au~S z#__^}P2jm{e(wMJ3L*c%$?Rjm{K2Rzkh2ht+PCl1C(3 zrUd^A3ga@xWAbCdDolStnEqVrnylI(O(War@Q6L+GIh4&F!Unk9LB;CEbP4mrKG8= z^?T8Y7x-+vf8USzju5d>Z@pn-|G~qKa`xiwI7)ex%DeF}Vs~S)pK#%&ejJtT_0M=Z z6w!9fxa^^>*{1@NPvDgwz`#kDg8Ley-3rrKr2he&>5yNl=UGvVXqGfZk9D2-GD*T6S&cnHMGj z-vZN0DPsq0yH-f^0xnV~^!(rzm%c{gR8YZ+oD*4{z1;_;lv3(AJYOS=U$!m^lY%>I z&ejtu^`pLX;t4+<%0df_vE$$0Z#502M_$NPbtt_)S9L51;U`!s%9KMWOL3}9s6kJ1 zsp{VFS+A^B*{rIn&meZn?1k(A_LYvct90h~Qn3K}YEq?39vuFOh&7mgHEbWnA#V@l z2e*INPDDK5y;QdSAl`)P2lb+T!lRRR;2*S;)AT5gK5X57zb*ZgZzf*v7$^#A0U2%c zXHei0%!H-;`|kGs?(UtvPdjZ)4W6lS2wKUhvRv1X{M2>7i-iQIooJdy;jfCL^>3qL z&<4$}&$CY0?)LCVOr8dO)Zi_u@_|N3t_eFQ19C>s0RvKPQ0b7Y4lDXuH77Ye*M6pr zDkB|m;)YIABQ+1T)Aj^0a(Y7KcbJC1;(N$#kjGHJslh7G>96Qhl3Ka`oHG4blUr$x zRdJOWBRGO1170&HXLepWrW+k`S((mY~mKk{str^w8Z@u*PG0AJ< zk9lpdI#?TA85xn0US-Rn8Uv$vs2DmW`^ zr@4`Rx$6NWLOrH4rR*FIqaGei+jhp!R^kaSbOPuL08^>Ja~>Z$p6CxlgnuXTq%83D zf+amo0Cy)Gt&5FP))5a9m-#Z;a&Qd1QwNuv!@%ob(9Q@sh~wZwN~UcdWyaKu6|93lmgXT!egZnZgMfn{(9nE|JtE~{OPP0yT*IOO-+0oJvSZ}M9ps~0}O(msO$u?nz|TIQAHB7^V99^olZwA<7^cn*DYvWU=4hz z0z@ligWq7t&NClW20RjgR6st7LUFAqZUm|t#7{v{#Y+-pVPX?6JpvTxhXDAP32e=N zkE@L_N=H0>8jIucGIBuFi)cXy;4)FB;7^8-FQua>p@U|zg6d6Q_IY&seN~0Z0>i2? z504VnNMZ>t!VL%#ES8XR5pD+YFm(kCP^-;`SjA->3s=>qMXJoW=v7kb;6027F*_9> zA*t;Z34rDiiVq9rVB0WArLvF+o0QUvUF=OogA&*qR7DJr9V zpH7{J+gdc;y@bHMp-f}Ae&Law3z#1z!*niOuacK+uZh}*$Cz724ywC^bhi&j0`a0a z4~+c1Aroi@BA&$SltpwnSoVtbS;H!J_L`R1 zg$-3N;0=#E00Y)R0d6It6lk~xw@17Wwq^-Y`0KPP>qn*iA7h&-RO>66_BJ()8+6tB EKj3%!NB{r; literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerCloneCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerCloneCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..863e963d7ab6942f137b611c1924b5f2fcb1c0f5 GIT binary patch literal 68013 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerConfigurationLockCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerConfigurationLockCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e9a9bd810ccf00767daef917ceb626675e46d014 GIT binary patch literal 8197 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 CK3)U> literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerInfoCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerInfoCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..58727ffb9669be349edda7c7839ad83f29f23ff5 GIT binary patch literal 24074 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerStateCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerStateCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16b3d1567ef24d03af821f9a06bf2ed10f47c917 GIT binary patch literal 2774 zcma)8TW=Fb6rP=3@7il8gg_DkRNbP|VwJ>&UL>LlQH7*Jf&|qdgjIF5@l5PBd+W?> zh!^Lj@Yw!?J|t3K`j_UlPnG%$P$hb1)=mNm5@YT0+|JB7-#OpeO{b<@1nr9RBK&g- zp}*DOc&ozT4m|v45CnBlF-;7DBO}Hg9Ge|8wmMc^=~N8#1SNA8qW18rfz(g$b58Di ziW1{F`T-G>Sg#PVUgA!bRNAO%7az4L+o8;Bi$G9sHI3sSA>MY%JVxT~KVSlCT5{oD zvJ*rh8L!_D6S~G&%H*Z@ENnh})Rx{xx|$|}CW5c0c|z7xwwX~Dh%ik`_4}{mST6h(oF{W0M+j;ol*3aBfP@ zmd6)xSj$SXtSS_3}n-L~;8A?Q`AQ+HMeM z5nb_)>tFjo{pF@Dtt5!4tmHiCQCU|pU}2`BBORVYCa|G&AnXCBT-Jkpw_BzMZ&qX_ zBmkUrx-r>;b!n+|kroNNfsf1uCOfSt+-hY*(NB}FmT!F7;-R2RS3Yw$U((OQ&d0G}pT-7bi`{x(1Jq z_rK5?Vdjp|0PPzGKth2BW*ZfCn6dUNBQ!D&@K1Qp+_QkL7cC@g;cVk!YeLzPv4i+$ z1gn4ch0?asQ^*Wq6Z564P9lj^~`WohMzDHm>W9+e#L&Aoe0C6p)^Rg-Oo?dIhYP$EqH9S-`ob z(vgZ7X7os7`Ea4YOZ~!LTI$m%lc?AnmmDw2<1MIMaIC(J3d;EPx9l3{t4C7Gy(AT$ z2%b?dNQTEWmLD~-w0RimbOuL)Zl6kXlg6_4Fy%rQkK)QBs1_y7-Yy9W2~|8+JZZSa z$B&a>E25rAJx0N6x^t+dcQxmw4aUMj(#-%A;VY+D1(HZQ?Z>ODYwb3hQKMPKCtvUN z0ktRu5LFUNw>{*7#%sHwU|3Dem1gPlb&=NfRhmJT$*RIM3q&87Nw>LlxmMOQ^&W-m zq1s23v9s!=N=oB?CUG80M_UIA7A&wcYIPc_Uz!V_fq<|!9X6|`Efr%~Q-1g)$aNv0_K>xf#Fklxbkz>F0P#d$*Jja0wk4N8l(%*85!JC(2T({R9P59_1hB$i3PNqa9)2a zB=q?q1hJ|PlhqRyp__A&#w7>dfh|n3T)YF?+uKXEQ?OeM2=Pn&4oi&RgG|lF=*hyn{}2)tDZp$kUIU|nJA_u?#NqWtta2k&0>HeEihrEWUS1X=yAbmq4D*x}P4tg{$j NHX8P21HYNA{SVpL5)1$U literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerlogsCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/ServerlogsCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..886cf3a57d7c62090a96659ce600ff3d4bd1d2c1 GIT binary patch literal 37447 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 Q6}41&Mb#dbij~a&0Zo5y-~a#s literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/SigRecomputeCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/SigRecomputeCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..37a09a4cdfaeb02ee63053cf0963dcd6306c6736 GIT binary patch literal 2853 zcmaJ@OOG2x5bkb|$M)E}+3b>pM-U?d1Osc6Ac9ySlxPVMDcMDFAc}<;&AQv(appz$ zc(We77ZPrqIOni?BB`^Q8=(t5DTXJe3kvN*V6=^(*e+6XmxN~wBFy2Nl;AI0S9*Hg zJrdFf*xOMMxFNT@k+dZbI)8x*q;BX} zZiKkRO}sr{csF;y5mI?kcwNd!>T@^31K0QXc=Js!6!`?~S~{`&)t#2E-WJI~hT9Pr zs)N_emjZOILRFVR2-2p21LL$^;EWd@k+#8WyvWT*v|Z#SUWO5qSGWcLC0+%)R`kZa zU1QDCD`2VXcLu%-wkG?+R$ec3K@DL?-F!gE1F+5RL}AzK4J23`g&hi7ObWJ3P`9C~ z_do#X1l8)19zgrp91#cH1`@_WvZU}3{|!z+vEq)d!KHG7c>2q8R0=bd5P0y-qEZd3 zA`aak_Qe*OF+I_;DmziKFbMYKj`frsMv3hnxSsEVFYPF_Zwub_)V{5TDiMKdq}RuI z*-2!>xz9&zqTa;?&>D498=)HrT^uO4Cv+7ZExi~K)g?6mh2&6|fH|%bN>|;%;aE#m zFY2PlMVRPPC*XT9uMMQ5Hn`VGBt#9VQ*9{WcYh^v1G@hVoBL59ntgTo(#OqMMt#vq zRMYdLO&~N}FPjGc02cBMYdWBl{Cd+B0}Uh4Bgyy zws&vcy0-IKtGR?yjd-Zbj^l-1;y4$P5-)&Yj8XU%P?rBTt0t|{^!&2zldYe3kn)p) z{Hj3BIQBa0z;@u^X9WS%feLL*t@<@}`n>Em_KuYlvZ*7ZvI+b!1%pWv+B z9fTd^g=N{}vK7114QwBh3Gh3SUf9DJb!Bf505OyuyGjXed*N(LGK|G+M`JdTpS3Ui z*x{avw``QYJG61g?)q+Tws!82y(sc$r=)CiKQ%WuagQcx9o#t$x@mkR?tOtFHdC}= z>Gf8YRp$MlmYTaFXnq;jnKrLwwrleaSSOOS@x;k)Hu-ea$~bMLFyZyUIMTH^QlJeyD87)A!NKwrp1$fwy=ag)5(N0S zUXtrLY@oAsW$Gqfin3&(v;o?J%-Sm98?2uEWSGGg*3W-Xr6j*MO5csOqF(8$rrq5%mPVLmcK&hfgkKb(a3L z956c&kZZU-gYel@9~-+hoqk>~h2gSA$^P%CFMJN1hE5GHgr z%N7`oli)?KW(gxtF4Y@B9LXgA*4u!m7K6SqzYA|#rh+bik{k0Weod)W5XNc7&eNKC Kp0fYeEB^zd5HxfE literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/SingleSignOnCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/SingleSignOnCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..002102ed4659348b0fca0c38e514bb7dc8ebd41a GIT binary patch literal 4687 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/VirtualMediaCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/VirtualMediaCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..88771a54313434d4702a920467c9bfe7264368e1 GIT binary patch literal 11279 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c5bcb002356b946c8baeb86f3156c99792887cc5 GIT binary patch literal 203 zcmd1j<>g`k0wwn9Oc4DTL?8o3AjbiSi&=m~3PUi1CZpdpP7@do12)In4VgsUzVCzrk|6Uq+d{3l98WhtY>JTUz}Nzs#}nl zoDEa~R$Y`@T%w;^QIeWhoSB~o6!P(pclP)7b@X!y){l?R%*!l^kJl@xyv1RYo1ape PlWGTYM==wSU||3N71%Te literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__init__.py new file mode 100644 index 0000000..a546cc3 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__init__.py @@ -0,0 +1,16 @@ +### +# Copyright 2021-2025 Hewlett Packard Enterprise, Inc. All rights reserved. +### +"""Helper modules for ComputeOpsManagement command""" + +from .config_resolver import ConfigResolver +from .network_configurator import NetworkConfigurator +from .ilo_connector import IloConnector +from .progress_tracker import ProgressTracker + +__all__ = [ + "ConfigResolver", + "NetworkConfigurator", + "IloConnector", + "ProgressTracker", +] diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ac512896db61359632f23786964871b1173a264f GIT binary patch literal 544 zcmYjO%T59@6zx2CNI*>V1Bg2oP|=l%F&bQGB4EVTY?^VVz(609wxHnOxO3wN&DNE_ z;L6*M3p<&Udry1sxjmJwRs+F0uDxZS9ztI>`M-QfuHe@eQWT-oOMT{XKk_{r2Q1)W z6uLNM6<&?1F0QZ|uSazc%~4u?_oBVDHbvd~4&PFiQ`O-zT{EgXGpRa5$@8_LlU$Et z5zi^7!gLbJc`VXz7z%a0Vt**bESo=4E!l=DU=GLByhybwH`XdP($dX4CV>((Df9M& zl5<71eo}F=g33_YJE_1zXrTfy?ly`VA*oCVDcXtCB2eYTTtRUpN>1}KElxTw0^G9VZN$e$#WG{|hpJp1S}5 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/config_resolver.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/config_resolver.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e47883c8fe4071bc38b123a1976631efa1feb61d GIT binary patch literal 3966 zcmahMU2hyov3tH}_QM}>>^K)-I3i&0E?y@b9A~1CVCNv<*cL_tR)S$}d+bayJ2UB- zb>h8V3D`)DZ(0W|khrheIBgahCc#DzfA#;{HL#{mpEU56fsbFK&lvco+?$ zwEP^5lAR8fUYrLZW3Zs;=+fAV`=!)xq{q_Oj*GI7Vy8bYyj+K0@hbokf!&gx#%NEE z45mdU(<3V~)z3cAR*Cu<%wXmtV?uilNLi5!Qr?LSNEys#j*@6F7yR*LyYlDfwI8GR ze-frFi3-2}lAi~068U+^i#R>>LBhYaSNT4~W03Qeba1!G(jX7ZJJRA&Ipk@d!uF@1 zw*bMr!W${x(+DYvfRmqSe`<|sNuO$hKBHspmxO5sF~|h&C3P;7;_L%T34VVKznF}5 zp*_`^9+PL<*eDHQz?<=mmgYp`>(v|bQW}#_Y0Wol{&mGSXM9rgt(w25_|}v^HiZe= z?L)L>Dcn)Gt#B9RKGhzR$Mmswpfis(9yw!2?XQVESlg(d7R)B&jKufMyE|c70Z~_`hc~ zN7z7HE^V<0wpQSI2A=0iN34i*Y-NQ^G}zJdc(rt4AFC4z-1Fey`Iv~aV)+&S&Vzqn z-v7JMAy&_Yix5n8psE-gMEo#%HBccB!zA(J?cKsZ;Mt(&`xwEV=hvSNh~;p~I|f{UN&5uQixVJd*|VCMb}fS^wyb1|~Vw!$@qI|^5s z34BA*TtS2lZ;*kx{{+_orYMkec}GzI6Ao}}pj>%EDojxvp!`5l022oPAw(J#nlSm6 z!gOH>6Eef)+rmxh6HVBBU)aq3thrB~(CXRoM(_M+7$@wF=c{UW=woSvB6n+#H^4#O zM1Vf?c>vNG77CXKuwGuaB^ZjaO%|13K0G^G~jd;u3OBETc#O9|>X$_q#4in03*_CSC_U;X@yFf#xV)34-&wo7-Yw!Xx|E0gd(b46G<3zX z8$B$ew16}L()Mn!xqJKejh(IiE|?7NL`fd;0&wiU0m!SiyOtlz=Er!muwCSI;dqOS z0Ge8pE>TTiq}A7>9@W&>qZYNk(3;j4qYpOKqG|J6tJMbRZl!PSYLfNCq`0KNHmO5Ibl&2ar;;AXMtwF)lT*9G zW>+|knQ5sArinkjZ;YKO4$;FqsCV(ivjD>+MkiFfRE~ZHg!oqxd=15|Y7erdb~szn zIC(vW_{1{^;#^vA4DeK0Cf!N~cTuAl!fq`LUfW6<5KIO*29Dzd{}zI8AowE;FgZa5rR4sSlCGu|Ti77I2h#|BstboXs|2Piw|;Zgn+Ma6H^CXn zozQcHc`G=PG+5)F!9&y==-e+)bv+(C|b<>fK26z!~5?FoU0c`|GfFI~ZgKGLm zY1P&tElxD@s!8LT8IfbQ@9=j4^7jy6ndoTh0U0r^=a-PRh5!p0Uk4EX2gYUS1S_{v zl!#K^<(p$wsX_@lS+5ZC8U8s2ZR^RRf@rU?>GA8(^TLKnEPxz)Xh>ZexzCXPYjmEZ4MUXb{#5wP zIz5j6i@1Sc8^L!Gmi+}2uV8He literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/ilo_connector.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/__pycache__/ilo_connector.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f75af959ca5d5c08f5e356313f68786be45a72bb GIT binary patch literal 6519 zcmc&(+mGAUndeOsMNt~f)pqQ}bk<3&)*i*VH0>a0lR9zYCb8Xk8Y5G*0hYFq7P9pWkX>q(|mP9#as8azP_QW z)MxlczqC>6mp97&%0@-@X}-B(Vyxs>`__iluWi&++RjRqksWHq&k?Ei<{~ zy?4XuhC#r)aVVUA$c8?5dZ=Cr`-5T3Zw#XM-N4=CeICR|U`4s!QnUIy>+3ha;YMEf zjbXgi(zCfMISnri-V!1dS!Lbp^Kckv%@6p;LmtI%-R<&0jPaJ1mDYy?pJ(O`+2Q(K zqC5SYN8@!o(SM@g3WQcRG^TFo+^A}7nd!X53_K+~WjqyLW+tz2lUI4^l+x4i*sRK| zPfGXI4T~EyYie@7*|V6<>T*sEbEc^hHJg_uC6hJS+$RPo)iJBdZ8l%5FS7- z2?|}w>}!5l=pq!!%kQ`W^LgY?9i34LJurhouc^)||EhT^{T-NT`7?!?SXpJ& z1B+<~wbV*WJF56iT8n;@yqg+_C1w$Ih7o3;pj!Pw>7lABX=S^dR#U0RPxS*kwYMv* zxvPkqtPDD|a-QY|&!cX#1sW$V?l7`#UaU-&J}%g&_Xl$K6Kg~*#!Q1?o+MM>$5u=)_gCu59eXu`E>rU$#hS7sNroC z?-IQa7SaXu{R=yf`l75qC+kb;B70s^aU?fi$Yo;}ZYdaP?GjI~NiBXcU4#X`lrBM! z2F-#8En)O4=~7R-tw6Gi`5WslNs8Z=>sI9oY2RYSx5g{l#R}5H3zGijk#>XECieV^ zy8lC1bQu;Uotf-KSaf+}(L(#nKUfaVLHl^`saU;$b)Owu_tNLCBdf`Eu$r_*^gnW^ zm(vEMekJFMeHrKeRrdo`QQivNJBXfiu#1pNXC41=`Yp>Terp3)xP8YPtjVZw?WW^0 zCU_Lh&KMp3eBP)vJ8Kje@>!$S?5s)9SaWV(x%Q@m2=8`dZ&!vKXNT|4uJFUnO)l1) z{Ox!_6uUu}&rX|)Kx+;fUVqqkC?xGWZXEOeAfA#dk5JK?6I1+m!k%*>8g{#o{i4%z zJs+{mjgTS6n>;eN;&>3PwcA%S{RZ!6`a1)j*;o8<$ciYtj(oB>-H}^?W%W14^1aLV zADw6;ZuY!rtG#==CWa*1IDTfJ@-Fa) z&tty2y4q63X{-=uP-F|!w!S4bl_{BZ75e)?dQVm@c;GD8Pj?JWoQd*V+Bz7{niGDB z0%w_hJ&Y#=PLSMF1ag_6IO`(hCTB%`enLdLF{oIeQaB=pK_dv`!mk)s%*}Kqv-{*O zfSLA1XD`;@usrIxRui$l^1DXJ=$0&t(p zjGq}qGb=?t=L12&M;KI)gJ*gai>xI5Fw-~TKu=L`b%G>U1c4h-qk?=&)M-LF4_Tr? z4fBp0@y<~AStZID%_;+T-w$1u>C{~#&)f%B!yv|-JRFgH(EwNs$P1bXI$$C*Db|rO zvO1L=FTjb}1q>@wlU%1Sk+SG8H+Hjnm!cF1OK_c)bMdnpxlj@4vZ^!~QU94Du7Tf2 zKWuM>ecs-VUcCI(_CSQ&0OnEK^TSI8@%AnccH6#pr#;w@x5D71)yprmBkX@^;C6Qa z)a7ijAGi74mPecR8TXd7CA9MPg4R&&Kb!ZoKiYpV zPGhA`t1S(Gn4w{&jrSRpHuYi$OI-ma3$#yyu5oWgb5!$QQ>9XSZ2tek(}tRyp2pd$ z$9c}?3PHGo`lj;Tdk0qXN^ESGBr2>t(Bg8Au9-=fVBJN~tpO(!7GI9-0`W?uCh^eAnt#k;^{;R zJkEfJpTrU5sHYX;?c?WWWNNTea_^_4&Q2GSop~TX|!EGEMnFr{elm~zA z+<`v>J^5b1i^v48=J7unN&SPkXvPBpd2)OJAmtQZIYv2a2tl~H0T-g8Ut;1r2uf}X?)qC(I~oJ6sneBs*x zzdJybLk^Om-r3tiA|7SE3Cr4=b3Hi^aOC+ua_^lmBpFwoE0ps{T6fcha`7)&9_ zCR-=<_1p$IR8G!0%wsY!BhDRDwS-|r$QoTus3M4Yu+bD54LAYLSCR#9Xn z;RZm>U!;yNQ$a~lyg2n><~QK74iZmCq5@SaFSodL%U}q zgEX*?<{L)x+_A|1d7N}fpQ9fE027Z4>AylHxjhc*daP`#sgCfaAsiPUJMvE)2*(KK z+d3;F9Mi?rz=av1`%q;SX5vy@PRoZS^i>eXEB94a-6>&Sg;}SR!^%T^=%976i5~lu zOcbcqF;-=bhblft%tYQw8R%(YQIaxM^rE>cBlxc zmFU~l|ztSbWioG zy1Kf$>gx_iMsgZ{FWA5E`AeGi4=N1)3>3~IMKj2_Hm`BU^%|?|^LpKwH|plR$*9h# zW$M4U0hP&e^;nOsgAJg<7?I=xJh7ZzGfUf?6DrSQF$Q9h0>AwWB-(wN0cG9kpTo9j%43`RY|K;58As7iZ^=yR)}%9d}XT-jd-5>s$0o ziuJGGj8bR8i$rBr*3vu=qDmy>nvhXyNfEEgV76*P6W!k!2(pU{NYO>6Y0Y29+6GIs zgl+0AGch?^W%78ebDbL>Yl(hQd&nNLRt7busxdn?R+34qyShA{7#jx9B$>~&FZ4~u zv^%hxIc-U6*+>p?cz=H@n`GtnB)eg5YOP$7lh-k8Cdq9wc_nc+ETWip@72T}pxI{{ zx4zI@d2VyZXPrDdRLUhbT5<`s=RY@*7d|&yg+yDilYD|L;-jA!t&wD8#o=RXntZ6F zEhhS~v~ia2qCQmnkbT5VEzYiQGOabrv}PV-a(q0_C!-G`Q+t&kVU?}X4@d8_``FCp zSKVC{v~zA}4_q7rY*8-fc78JrPkMDUM-l9K#+7XgkKDO-jTkF-ZD%|x;E8;|rjxyJ}UdQ@I+mC3Rzwg!CJZIFO(bW@p2gac>2`Ia^%P2M8m7zg)dRP zCEP?=d=QI(^opwMH!Bxz-njAB?8UiqHLO>bMXiBDQ4ZR!s?v8=p`324r@6DFEc9%g zJ4lP8mAYEbwRLybi_yJ1R#c$v>9e)4>eZriAi5lO)R`pj)L#7vQFI#n%8=t!oIrMn zh)HD4V}sV@)uixv-wz1xdXdXTHzlNp7 zVb9^ILpAMQy?y(Z+niEiqSxjJOJv|PZmA$`l4fd2#Fgr*ln64kLw$!Bg)$aAHT?j- zbCmiPD}Ge*8*67O9_KJ3culX-5CKm!4KJ=Pr+J)*cr}8(aFJ$vktodw6{`%Gc4;iN zI|o`iU@Ei3*=nDtG(R8-{BwJ+NUU^xprz6g&4DbhsaB%SC@R-qLz*SJS`%K7jw({c z4(0pphPPe|J)SyPM+1jIq)covu5@I`c1Z=%b!2+Bpga0F8)uGQWEL|G6BH6NS&kK0 zPS+pg49l>Xu3KoQzxlQPo%Ky|B**r!qCTomGMzaO^lzKbZxh#s&rF&R;zn;<#=KfB zykEhYuRwAUS2K{P`y;EOL!;u=UvVnobu&m7lKm-b{&XOEIf=t{M6c6`RR%W)qE{9* z2*apxI?*eaWRo1C*XhJW^sGe44a5^O$#aKiKhY6g3M&~- zqyL^1Hmpr;!{qrT4e=9k=A!oguUexCOGZ(P__L``X|1uQuQ-f#I24m&hr{EfNE}+b zl3nOO>VpfuW1EZ@!T+(U-PNfb=MPuf&roUVa~&;v5iuuK#2iZ|A>lqm%-zXuNVp#n^ReQ2V2J0QJKDXUAx1iJHqI>? z>wjaIiD~GW=Lfqz-=oWPfs?!}DNr5Im2rY3O}f@p!o-btbT(W$TXCwwXDsv`b;VW1q71 z6(ER13PG3~yZ9^dcyee6LFlbRA0AQ&qU2pepzVekLCEj_2OycT=1F7u*#ZKft^WxKsPqIlHlTax_CJDvX6czhfP4-!JYw<%n&=3! z)V?9=3xG+@?D>#;u{Z7W6rpTR#lSQ}Uy<6E0&f8US^)qBBOqP}MkqYc+()=UnQ&KF z?ni3OZ8?Q`N_rnWNQHG=65&N;&BH?=p*zm)a%`T%E_AMou8P5~r$7b40KbcG+!Joy zTkolALAYH;&DWo0d;|snqgB`}@%4iB``-G~=XTKSMQDZYtWO9kr$y3|U+wE;dq9Ks zE}+>F7Y%GXaMAG{rhiM_oue+`n|_CmT$)v%+v@;zV^<_FA5a&nVo$~;L+$pHKatY$ zG@vz014lLRV;>9R>V`oQRD1VRKBd{1{{fenPz*1G-Lpv$>UUfp0Z<< z5#E*tWpuwt?fae#p!(D#P@Nhz5y&4=>j`Q#8zFGlG?mN9N{8i1q80c$N7S2?okEt5 z40#Ix4{T}2Tcjg=x!S07Eu)XrAax(9QK5&_)Oy+=(iZWu!d(R-;O5$p%dWRiP-?Xa z2+%c3)jQ`C{#O0d4owFw&5N7^hmy2jd+|{|2;4WA$%y8K=z$K(v5V)GdQr zP*T112bS(w`U6KRe*LVF6Dz5bfpvdmD3lba{4I#)c?AO)V1SPBk7o~h{s7c75@UsN z6Hx3N9szU!H9V1Q;Q33zFFa4sw}rPZ5KIb zADMC%{04jk9s82gKjx`Tw;$Md+uluehU`$_qK|9-X&QWnvSI6%M^X1jq=>GqI_wG- zt2=D6{m1pD0E^YXYaaVARxo5)7WnooYXODk(I2#|Bg2-ZtS6&hCjlo1tihZ&cC-k&LL>T0+-dj!Lf!5n`{BJOZ`FAn+jj3|4QxtQ zf2$=Y=H%97K$&vzeUa3g$qh7oi4^TY*5B6xyvDQd>40RZ-FXfe(hP-nawE!Z&@OYl zo37#Ll=SA_3(KN>1Bm|(V) zm8tf03+!v3{1^1nerI-hm3n#U3UfHSGqXCE?|kQMw6aoV zxZW@S$^Uzev47Cb>{Z6iR~YdZ5Q6QnZ-uV~gddthtgtc%q^`CF9shl-GUkhkH&x62m|`y+}C^qyAu+$j5{Dkr#S< zvMZvy<$5{;)=M6->SGJ8aQ!HpSUh=;KZ_6he5Zq z)v-a_WRFzoz2ADF2xROG#+L4S$`O7%2)rY0<$^&O%j_gdydblLjJugN4E>~Q&DcnD z1LGk^{7Z-tA2FAW3`jmQAz?41Dd>qcVyE^S#t{~1Xr+Js7Vq=Dz)$5=C+&Tys#T}B z+5=B{eMc+OcD6|$Cmi;7rE;R4<0rBoFYYC6+s+oG@&^A4D5{4K~$!A;TA~z~5~Rj*|T-{ABa~y;cm< zHwFkT;HY;4yh%&GOk@}n99#Z(kKKolA3b`|*?QXQMtyf*1^{bJ|3V|(EquK>ID)Rw z*-u=TG>VaItW+-X{I6!F>raX^1(-I++uw4spNCl~x4cW98DBJ~@em{4gcvc49RMVs z0W|~@RR=tb*X(B_MBZx9uv23OB7gpVAiQJ-9=k_QSOk3%ngStV+v&{X!hzL;KqgWw z?#-2LJC8LyfT;WdA|J=_=VW_oIvY+AbyHD7s|txFh%-|WJ*ia^Yb3~bxgZB-rJ+{- z7UppYqF!q78c(k;`ZC|vC2Wl^noknzDsGCzVy9ethd*U!M*5)e4&l8(`h~p7bD<*- zo!MRENf_FzLNTlNNS&2_@r;<}@@a$b$(x zAyR-%O(T8pVGzZ$0S8AN`pLc%%EQ19Wv9tAd!YO1jD1i)sue}KgC`#V90^*#1aLzZ*`5#i_2PZW*@AuC6hfOo*bqY;p0+>xZ2j*RR zFb&P1n`A3JKM1670~zkY#U=%JAzXKG>QjuEh~`e|ecr%ddUveggn$=8(m69UQE7pB z9mn;&$(4h7vqmHzdVT4-S=Dv(?gsOk>;4FL7As}f6;ao9m4<=|SEvB2;~a5&s%uu30jKiB`uF zYv|u>^lv3JM-{Q8o1-f34BaYGb3{!NHAkz!%a!b%?H@&d!ENbB&y+Vn71SL;f(>)P za1Qrn=y)$YKk#+~IR|~B2pSXG$|<>^tv}B6GMcXRyZsP#CG5%z=%iH?+Q3>~pGJN@7? z9sXNYoxqcFKi6a2EugYqy;xbP{A;~*PT#mhFIxCvtXJJg-@QyPT~9lTYHqWtsL@j` z68A_@>B%XC7)5R%qLrNK$nVoGd=9fjC&WNH zEL)hQSLxF*V10IsB2C{W$X`&)Pv)_e@R4=GpRuQCPZQ(lE=N1USyJpdF-z?CSUaR| zmcRYR>n4%H_tG%z>Q9R#a=J=VSpu=B2(8In!#ejp^S^$}6#MetZEL2xqrz1z{^w7Y zODbETi8H1hO)k2&5xFE_h;b#;4Ip{2X{pcfqg|dYf7>5KD*0NeNNEm7otuw9zF7lm z8dBW~-^g7w?P>~TcJcO@&}vj_ylzy{AFpxapXzfw>Zp$(@v)^5L?tB;{S-#DYbKE< X;K?dq Dict[str, Dict[str, Any]]: + """Resolve and merge configuration for all iLOs from config file + + :param config_json_path: Path to JSON configuration file + :type config_json_path: str + :returns: Dictionary mapping IP addresses to their merged configurations + :rtype: dict + """ + with open(config_json_path, "r") as f: + config_json = json.load(f) + + resolved = {} + common_settings = config_json.get("commonSettings", {}) + + # Extract common settings with type checking + common_ilo_auth = ( + common_settings.get("iloAuthentication", {}) + if isinstance(common_settings.get("iloAuthentication"), dict) + else {} + ) + common_com = ( + common_settings.get("computeOpsManagement", {}) + if isinstance(common_settings.get("computeOpsManagement"), dict) + else {} + ) + common_network = common_settings.get("network", {}) if isinstance(common_settings.get("network"), dict) else {} + + common_dns = common_network.get("dns", []) + common_ntp = common_network.get("ntp", []) + common_proxy = common_network.get("proxy", {}) + + def build_config(ip_str, entry_settings, dns, ntp, skip_dns, skip_ntp, skip_proxy): + """Build merged configuration for a single IP""" + entry_ilo_auth = entry_settings.get("iloAuthentication", {}) + entry_com = entry_settings.get("computeOpsManagement", {}) + entry_proxy = entry_settings.get("network", {}).get("proxy", {}) + + return { + "ip": ip_str, + "username": entry_ilo_auth.get("username") or common_ilo_auth.get("username"), + "password": entry_ilo_auth.get("password") or common_ilo_auth.get("password"), + "pcid": entry_com.get("pcid") or common_com.get("pcid"), + "activationKey": entry_com.get("activationKey") or common_com.get("activationKey"), + "dns": [] if skip_dns else dns, + "ntp": [] if skip_ntp else ntp, + "skipDns": skip_dns, + "skipNtp": skip_ntp, + "skipProxy": skip_proxy, + "proxy": entry_proxy if entry_proxy else common_proxy, + "auth": entry_ilo_auth if entry_ilo_auth else common_ilo_auth, + } + + # Process individual entries + individual_entries = config_json.get("targets", {}).get("ilos", {}).get("individual", []) + for entry in individual_entries: + ip = entry["ip"] + skip_dns = entry.get("skipDns", False) + skip_ntp = entry.get("skipNtp", False) + skip_proxy = entry.get("skipProxy", False) + config = build_config(ip, entry, common_dns, common_ntp, skip_dns, skip_ntp, skip_proxy) + resolved[ip] = config + + # Process range entries with optimized conversion + range_entries = config_json.get("targets", {}).get("ilos", {}).get("ranges", []) + for range_entry in range_entries: + start_ip = ip_address(range_entry["start"]) + end_ip = ip_address(range_entry["end"]) + skip_dns = range_entry.get("skipDns", False) + skip_ntp = range_entry.get("skipNtp", False) + skip_proxy = range_entry.get("skipProxy", False) + network = range_entry.get("network", {}) + range_dns = [] if skip_dns else network.get("dns", common_dns) + range_ntp = [] if skip_ntp else network.get("ntp", common_ntp) + + # Optimize: Convert to int once, iterate directly + start_int = int(start_ip) + end_int = int(end_ip) + for ip_int in range(start_int, end_int + 1): + ip_str = str(ip_address(ip_int)) + config = build_config(ip_str, {}, range_dns, range_ntp, skip_dns, skip_ntp, skip_proxy) + resolved[ip_str] = config + + return resolved + + @staticmethod + def extract_target_ips(targets: dict) -> List[Dict[str, Any]]: + """Extract all target IPs from configuration with validation + + :param targets: targets section from config + :type targets: dict + :returns: list of IP information dictionaries + :rtype: list + """ + import ipaddress + + target_ips = [] + ilos = targets.get("ilos", {}) + + # Process individual IPs + individual_ilos = ilos.get("individual", []) + for ilo in individual_ilos: + ip_info = {"ip": ilo["ip"], "settings": ilo} + target_ips.append(ip_info) + + # Process IP ranges with size validation + ranges = ilos.get("ranges", []) + for range_config in ranges: + start_ip = ipaddress.IPv4Address(range_config["start"]) + end_ip = ipaddress.IPv4Address(range_config["end"]) + + # Validate range size to prevent memory issues + range_size = int(end_ip) - int(start_ip) + 1 + if range_size > 1000: + from ilorest.rdmc_helper import InvalidCommandLineError + + raise InvalidCommandLineError( + f"IP range {range_config['start']} to {range_config['end']} " + f"contains {range_size} IPs. Maximum allowed is 1000 IPs." + ) + + current_ip = start_ip + while current_ip <= end_ip: + ip_info = {"ip": str(current_ip), "settings": range_config} + target_ips.append(ip_info) + current_ip += 1 + + return target_ips diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/ilo_connector.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/ilo_connector.py new file mode 100644 index 0000000..1bbca36 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/ilo_connector.py @@ -0,0 +1,210 @@ +### +# Copyright 2021-2025 Hewlett Packard Enterprise, Inc. All rights reserved. +### +# -*- coding: utf-8 -*- +"""iLO connector module for ComputeOpsManagement""" + +import requests +from requests.auth import HTTPBasicAuth +from requests.exceptions import ConnectionError, Timeout, RequestException +import time +from typing import Tuple, Optional + + +class IloConnector: + """Handles iLO connection and COM onboarding operations""" + + @staticmethod + def connect_to_com( + ip: str, username: str, password: str, credential: str, logger, max_retries: int = 3 + ) -> Tuple[bool, Optional[str]]: + """Enable COM connection on iLO + + :param ip: iLO IP address + :param username: iLO username + :param password: iLO password + :param credential: PCID or activation key + :param logger: logger instance + :param max_retries: maximum retry attempts + :returns: tuple of (success, fail_reason) + """ + base_url = f"https://{ip}" + session = requests.Session() + session.auth = HTTPBasicAuth(username, password) + session.verify = False + + # Prepare COM enable payload + payload = {"Oem": {"Hpe": {"CloudConnect": {"CloudConnectEnabled": True, "ActivationKey": credential}}}} + + url = f"{base_url}/redfish/v1/Managers/1/" + retry_count = 0 + success = False + + while retry_count <= max_retries and not success: + try: + logger.info(f"Sending COM enable request to {ip} (attempt {retry_count + 1})") + response = session.patch(url, json=payload, timeout=30) + + if response.status_code in [200, 202]: + success = True + logger.info("COM enable request successful") + else: + logger.warning(f"COM enable failed with status {response.status_code}") + if retry_count < max_retries: + retry_count += 1 + logger.info(f"Retrying COM enable ({retry_count}/{max_retries})") + time.sleep(5) + else: + return False, "COM enable request failed" + + except (ConnectionError, Timeout, RequestException) as conn_err: + logger.warning(f"Connection issue during COM enable: {str(conn_err)}") + if retry_count < max_retries: + retry_count += 1 + logger.info(f"Retrying after connection error ({retry_count}/{max_retries})") + time.sleep(15) + else: + logger.error(f"COM enable failed after {max_retries} retries") + return False, "Connection failed after retries" + + if not success: + return False, "COM enable request failed" + + # Wait for connection to complete + max_wait = 180 + wait_interval = 12 + waited = 0 + + logger.info("Waiting for COM connection to complete...") + + while waited < max_wait: + time.sleep(wait_interval) + waited += wait_interval + + try: + response = session.get(f"{base_url}/redfish/v1/Managers/1/", timeout=30) + if response.status_code == 200: + manager_data = response.json() + cloud_connect = manager_data.get("Oem", {}).get("Hpe", {}).get("CloudConnect", {}) + status = cloud_connect.get("CloudConnectStatus", "") + fail_reason = cloud_connect.get("FailReason", "") + + if status == "Connected": + logger.info("COM connection successful") + return True, None + elif status in ["ConnectionFailed", "NotConnected"]: + logger.warning(f"COM connection failed: {status}, reason: {fail_reason}") + return False, fail_reason if fail_reason else "Connection failed" + elif status == "NotEnabled": + logger.warning(f"COM not enabled: {fail_reason}") + return False, fail_reason if fail_reason else "COM not enabled" + else: + logger.info(f"COM connection status: {status}, waiting...") + + except (ConnectionError, Timeout, RequestException) as check_err: + logger.warning(f"Connection issue during status check: {str(check_err)}") + except Exception as check_err: + logger.warning(f"Error during status check: {str(check_err)}") + + logger.warning(f"COM connection timed out after {max_wait} seconds") + return False, "Connection timeout" + + @staticmethod + def wait_for_ilo_after_reset(ip: str, username: str, password: str, logger, timeout_minutes: int = 3) -> bool: + """Wait for iLO to come back online after reset + + :param ip: iLO IP address + :param username: iLO username + :param password: iLO password + :param logger: logger instance + :param timeout_minutes: timeout in minutes + :returns: True if iLO came back online, False otherwise + """ + base_url = f"https://{ip}" + timeout_seconds = timeout_minutes * 60 + check_interval = 10 + max_attempts = int(timeout_seconds / check_interval) + start_time = time.time() + + logger.info(f"Waiting up to {timeout_minutes} minutes for iLO {ip} to come back online...") + + for attempt in range(max_attempts): + try: + response = requests.get( + f"{base_url}/redfish/v1/", auth=HTTPBasicAuth(username, password), verify=False, timeout=30 + ) + + if response.status_code == 200: + elapsed_time = time.time() - start_time + logger.info( + f"iLO {ip} is back online after {elapsed_time:.1f} seconds " + f"(attempt {attempt + 1}/{max_attempts})" + ) + return True + + except (ConnectionError, Timeout): + pass # Expected during reset + except Exception as e: + logger.warning(f"Unexpected error while waiting for iLO {ip}: {str(e)}") + + if attempt < max_attempts - 1: + logger.info( + f"iLO {ip} still rebooting. Checking again in {check_interval} " + f"seconds... (attempt {attempt + 1}/{max_attempts})" + ) + time.sleep(check_interval) + + elapsed_time = time.time() - start_time + logger.error( + f"Timeout: iLO {ip} did not come back online within {timeout_minutes} " + f"minutes ({elapsed_time:.1f} seconds elapsed)" + ) + return False + + @staticmethod + def get_ilo_version(ip: str, username: str, password: str) -> Tuple[float, int]: + """Get iLO version information + + :param ip: iLO IP address + :param username: iLO username + :param password: iLO password + :returns: tuple of (ilo_version, major_version) + """ + try: + base_url = f"https://{ip}" + response = requests.get( + f"{base_url}/redfish/v1/Managers/1/", auth=HTTPBasicAuth(username, password), verify=False, timeout=30 + ) + + if response.status_code == 200: + data = response.json() + fw_version = data.get("FirmwareVersion", "") + + # Parse version string like "iLO 5 v2.47" + parts = fw_version.split() + if len(parts) >= 3 and parts[0].lower() == "ilo": + major = int(parts[1]) + version_str = parts[2].lstrip("v").replace(".", "") + version = float(f"{major}.{version_str}") + return version, major + + # Return default compatible version + return 5.247, 5 + + except Exception: + return 5.247, 5 + + @staticmethod + def is_pin_onboarding_supported(ilo_version: float, major_version: int) -> bool: + """Check if PIN-based onboarding is supported + + :param ilo_version: iLO version as float + :param major_version: iLO major version + :returns: True if PIN onboarding supported + """ + # PIN onboarding supported on iLO 6 and iLO 5 >= 2.70 + if major_version >= 6: + return True + elif major_version == 5 and ilo_version >= 5.270: + return True + return False diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/network_configurator.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/network_configurator.py new file mode 100644 index 0000000..c07fbb9 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/network_configurator.py @@ -0,0 +1,218 @@ +### +# Copyright 2021-2025 Hewlett Packard Enterprise, Inc. All rights reserved. +### +# -*- coding: utf-8 -*- +"""Network configuration module for ComputeOpsManagement""" + +from requests.exceptions import ConnectionError, Timeout, RequestException +from typing import Optional, Tuple + + +class NetworkConfigurator: + """Handles DNS, NTP, and Proxy configuration for iLOs""" + + @staticmethod + def configure_dns(session, base_url: str, dns_servers: list, logger) -> None: + """Configure DNS servers on iLO + + :param session: requests Session object + :param base_url: base URL for iLO + :param dns_servers: list of DNS servers + :param logger: logger instance + """ + try: + # Check if already configured + current_dns = NetworkConfigurator.get_current_dns_servers(session, base_url) + + if current_dns is not None: + desired_dns = sorted([srv.strip() for srv in dns_servers if srv and srv.strip()]) + current_dns_sorted = sorted([srv.strip() for srv in current_dns if srv and srv.strip()]) + + if desired_dns == current_dns_sorted: + logger.info(f"DNS servers already configured as desired: {desired_dns}") + return + + # Separate IPv4 and IPv6 DNS servers + ipv4_dns = [] + ipv6_dns = [] + + for dns_server in dns_servers: + if dns_server: + dns_clean = dns_server.strip() + if dns_clean: + if NetworkConfigurator._is_ipv6_address(dns_clean): + ipv6_dns.append(dns_clean) + else: + ipv4_dns.append(dns_clean) + + # Configure via EthernetInterfaces endpoint + dns_config_url = f"{base_url}/redfish/v1/Managers/1/EthernetInterfaces/1" + + payload = { + "DHCPv4": {"UseDNSServers": False}, + "DHCPv6": {"UseDNSServers": False}, + "Oem": { + "Hpe": { + "DHCPv4": {"UseDNSServers": False}, + "DHCPv6": {"UseDNSServers": False}, + "IPv4": {"DNSServers": ipv4_dns}, + "IPv6": {"DNSServers": ipv6_dns}, + } + }, + } + + response = session.patch(dns_config_url, json=payload, timeout=30) + if response.status_code in [200, 204]: + logger.info(f"Successfully configured DNS servers: {dns_servers}") + else: + raise Exception(f"Failed to configure DNS. HTTP {response.status_code}") + + except Exception as e: + logger.error(f"Error configuring DNS: {str(e)}") + raise + + @staticmethod + def configure_ntp(session, base_url: str, ntp_servers: list, allow_ilo_reset: bool, logger) -> Tuple[bool, bool]: + """Configure NTP servers on iLO + + :param session: requests Session object + :param base_url: base URL for iLO + :param ntp_servers: list of NTP servers + :param allow_ilo_reset: allow iLO reset if needed + :param logger: logger instance + :returns: tuple of (ilo_was_reset, needs_reset) + """ + ilo_was_reset = False + needs_reset = False + dhcp_disabled = False + + try: + # Check if already configured + current_ntp = NetworkConfigurator.get_current_ntp_servers(session, base_url) + + if current_ntp is not None: + desired_ntp = sorted([srv.strip() for srv in ntp_servers if srv and srv.strip()]) + current_ntp_sorted = sorted([srv.strip() for srv in current_ntp if srv and srv.strip()]) + + if desired_ntp == current_ntp_sorted: + logger.info(f"NTP servers already configured as desired: {desired_ntp}") + return ilo_was_reset, needs_reset + + # Try to disable DHCP NTP if needed + eth_url = f"{base_url}/redfish/v1/Managers/1/EthernetInterfaces" + + try: + eth_response = session.get(eth_url, timeout=30) + if eth_response.status_code == 200: + members = eth_response.json().get("Members", []) + + for member in members: + interface_url = base_url + member.get("@odata.id", "") + try: + iface_resp = session.get(interface_url, timeout=30) + if iface_resp.status_code == 200: + iface_data = iface_resp.json() + if iface_data.get("Status", {}).get("State") == "Enabled": + # Check if DHCP NTP already disabled + dhcpv4_ntp = iface_data.get("DHCPv4", {}).get("UseNTPServers", False) + dhcpv6_ntp = iface_data.get("DHCPv6", {}).get("UseNTPServers", False) + + if not dhcpv4_ntp and not dhcpv6_ntp: + logger.info("DHCP NTP already disabled") + dhcp_disabled = True + break + + # Disable DHCP NTP + dhcp_payload = { + "DHCPv4": {"UseNTPServers": False}, + "DHCPv6": {"UseNTPServers": False}, + "Oem": { + "Hpe": { + "DHCPv4": {"UseNTPServers": False}, + "DHCPv6": {"UseNTPServers": False}, + } + }, + } + + dhcp_resp = session.patch(interface_url, json=dhcp_payload, timeout=30) + if dhcp_resp.status_code in [200, 204]: + logger.info("Successfully disabled DHCP NTP") + dhcp_disabled = True + break + except (ConnectionError, Timeout, RequestException): + logger.warning("Connection error accessing interface - may already be disabled") + dhcp_disabled = True # Assume already disabled + break + except (ConnectionError, Timeout, RequestException): + logger.warning("Connection error accessing interfaces - proceeding anyway") + dhcp_disabled = True # Assume already disabled + + # Configure static NTP servers + ntp_url = f"{base_url}/redfish/v1/Managers/1/DateTime" + ntp_list = list(ntp_servers) + if len(ntp_list) == 1: + ntp_list.append("") + + payload = {"StaticNTPServers": ntp_list} + response = session.patch(ntp_url, json=payload, timeout=30) + + if response.status_code not in [200, 204]: + raise Exception(f"Failed to configure NTP. HTTP {response.status_code}") + + logger.info(f"Successfully configured NTP servers: {ntp_servers}") + + # Reset if allowed + if allow_ilo_reset: + reset_url = f"{base_url}/redfish/v1/Managers/1/Actions/Manager.Reset" + reset_payload = {"ResetType": "GracefulRestart"} + reset_resp = session.post(reset_url, json=reset_payload, timeout=30) + if reset_resp.status_code in [200, 202, 204]: + logger.info("iLO reset initiated for NTP configuration") + ilo_was_reset = True + else: + needs_reset = True + + except Exception as e: + logger.error(f"Error configuring NTP: {str(e)}") + raise + + return ilo_was_reset, needs_reset + + @staticmethod + def get_current_dns_servers(session, base_url: str) -> Optional[list]: + """Get current DNS configuration from iLO""" + try: + dns_url = f"{base_url}/redfish/v1/Managers/1/EthernetInterfaces/1" + response = session.get(dns_url, timeout=30) + + if response.status_code == 200: + data = response.json() + oem_hpe = data.get("Oem", {}).get("Hpe", {}) + ipv4_dns = oem_hpe.get("IPv4", {}).get("DNSServers", []) + ipv6_dns = oem_hpe.get("IPv6", {}).get("DNSServers", []) + + # Use list comprehension for efficiency + return [srv for srv in ipv4_dns + ipv6_dns if srv] + return None + except Exception: + return None + + @staticmethod + def get_current_ntp_servers(session, base_url: str) -> Optional[list]: + """Get current NTP configuration from iLO""" + try: + ntp_url = f"{base_url}/redfish/v1/Managers/1/DateTime" + response = session.get(ntp_url, timeout=30) + + if response.status_code == 200: + data = response.json() + ntp_servers = data.get("StaticNTPServers", []) + return [srv for srv in ntp_servers if srv] + return None + except Exception: + return None + + @staticmethod + def _is_ipv6_address(address: str) -> bool: + """Check if address is IPv6""" + return ":" in address diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/progress_tracker.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/progress_tracker.py new file mode 100644 index 0000000..9555d9d --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/com_helpers/progress_tracker.py @@ -0,0 +1,112 @@ +### +# Copyright 2021-2025 Hewlett Packard Enterprise, Inc. All rights reserved. +### +# -*- coding: utf-8 -*- +"""Progress tracking module for ComputeOpsManagement bulk operations""" + + +class ProgressTracker: + """Handles progress bar display for bulk operations""" + + def __init__(self, total: int, desc: str = "", unit: str = ""): + """Initialize progress tracker + + :param total: Total number of items + :param desc: Description for progress bar + :param unit: Unit of measurement + """ + self.total = total + self.desc = desc + self.unit = unit + self.current = 0 + self.status_info = "" + + # Display initial progress + self._display() + + def update(self, n: int = 1, status: str = ""): + """Update progress by n items + + :param n: Number of items completed + :param status: Optional status message + """ + self.current += n + self.status_info = f" - {status}" if status else "" + self._display() + + def set_description(self, desc: str): + """Update description + + :param desc: New description + """ + self.desc = desc + self._display() + + def close(self): + """Close progress bar with newline""" + print() # Move to next line + + def _display(self): + """Display progress bar""" + progress_bar = self._get_progress_bar() + print(f"\r{self.desc}: {self.current}/{self.total} " f"{progress_bar}{self.status_info}", end="", flush=True) + + def _get_progress_bar(self, width: int = 40) -> str: + """Generate visual progress bar + + :param width: Width of progress bar + :returns: Progress bar string + """ + progress_pct = (self.current / self.total * 100) if self.total > 0 else 0 + filled_length = int(width * self.current // self.total) if self.total > 0 else 0 + bar = "#" * filled_length + "-" * (width - filled_length) + return f"[{bar}] {progress_pct:.1f}%" + + +class TqdmProgressTracker: + """Wrapper for tqdm progress bar when available""" + + def __init__(self, tqdm_instance): + """Initialize with tqdm instance + + :param tqdm_instance: tqdm progress bar object + """ + self.pbar = tqdm_instance + + def update(self, n: int = 1, status: str = ""): + """Update progress + + :param n: Number of items completed + :param status: Optional status message + """ + if status: + self.pbar.set_postfix_str(status) + self.pbar.update(n) + + def set_description(self, desc: str): + """Update description + + :param desc: New description + """ + self.pbar.set_description(desc) + + def close(self): + """Close progress bar""" + self.pbar.close() + + +def create_progress_tracker(total: int, desc: str = "", unit: str = ""): + """Factory function to create appropriate progress tracker + + :param total: Total number of items + :param desc: Description + :param unit: Unit of measurement + :returns: Progress tracker instance + """ + try: + from tqdm import tqdm + + pbar = tqdm(total=total, desc=desc, unit=unit) + return TqdmProgressTracker(pbar) + except ImportError: + return ProgressTracker(total, desc, unit) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/data/InputTemplate.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/data/InputTemplate.py new file mode 100644 index 0000000..d8ed91e --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/data/InputTemplate.py @@ -0,0 +1,31 @@ +template = { + "commonSettings": { + "computeOpsManagement": {"activationKey": "ACTIVATION-KEY-XXXX-YYYY-ZZZZ", "workspace_id": "WORKSPACE-ID-PLACEHOLDER-12345"}, + "iloAuthentication": {"iloUser": "GENERIC_ADMIN_USER", "iloPassword": "GENERIC_SECURE_PASSWORD"}, + "network": {"dns": ["203.0.113.10", "203.0.113.11"], "ntp": ["198.51.100.50", "198.51.100.51"]}, + "proxy": { + "server": "proxy.example.net", + "port": 8080, + "credentials": {"username": "PROXY_USER", "password": "PROXY_PASSWORD"}, + }, + }, + "targets": { + "ilos": { + "individual": [ + {"ip": "192.0.2.10"}, + {"ip": "192.0.2.11", "network": {"dns": ["203.0.113.20", "203.0.113.21"]}}, + {"ip": "192.0.2.12", "network": {"ntp": ["198.51.100.60", "198.51.100.61"]}, "skipDns": True}, + {"ip": "192.0.2.13", "network": {"dns": ["203.0.113.200"]}, "skipNtp": True}, + {"ip": "192.0.2.14", "skipDns": True, "skipNtp": True}, + {"ip": "192.0.2.15", "skipProxy": True}, + {"ip": "192.0.2.16", "skipDns": True, "skipProxy": True}, + ], + "ranges": [ + {"start": "192.0.2.100", "end": "192.0.2.110"}, + {"start": "192.0.2.120", "end": "192.0.2.125", "skipNtp": True}, + {"start": "192.0.2.130", "end": "192.0.2.132", "network": {"ntp": ["198.51.100.99"]}}, + {"start": "192.0.2.140", "end": "192.0.2.142", "skipProxy": True}, + ], + } + }, +} diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/data/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/data/__init__.py new file mode 100644 index 0000000..e87aa37 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/data/__init__.py @@ -0,0 +1,2 @@ +"""Data module for iLO Commands""" + diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/data/__pycache__/InputTemplate.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_COMMANDS/data/__pycache__/InputTemplate.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..064d37e5d9528ee9b789b81630b02e8e856a0db2 GIT binary patch literal 1378 zcmZWoYi`>{5GE;FVkpb8orjaOao%l|gilFs1QbODNk|0Sk|5b_oIe7iS;&kflHjfs zTfIaNpbPXWJ;MI&8Csx4igw66NFoDpIgf8uCIl zAN?H{5I_WJB|#2kSi^rF3KIzwxP+^Ub`jR01RHP}_03fdwpKE1!xgydif|3C!w%e- zNT}b$_$~MfzJ}Yey$g2`eHRh;CL+dn;Xc|A@V^TWQG0~{Z!qWE*zdyTT({kb>TANCu~w$^EB{R329_6}O@fo9p2YOO5sk~3!R!eOrO?UM_>{>~52 zXyA;=$OXRrqTOu|I?Yj|b=c{Sj)(05-}&SlwwuR;_Nd<&4sn+j)+)GD|Co}H7g6au zlwvVhuG?lsH+9RZ=$4tWtYyinKi6v(228zXW=#t#=D?#o=dob96@>ozg-*_$SuiEK zN0|HT9YNq~f6#k%@`2jM2R+3|nIj#~nGvo8ANiDXJde%=(v$-~WV|>I2@sFD&XksA zes%26f;l6-fF3%YGa)mK@hv=2W6n+^+&JzQFCd4gTYN31#$|+1F1f){wdyvW*pAMd z=vG+3=}R}j&a}hE1BcfT5^hJhB+(9)$dT^VUba_z)=@c^zT~Bvq@$(omsUr(1O~o_E!Y|8W z&P`*3ll3S&^${Ich+ii5G" + "download the file by name\n\texample: downloadcomp " + "filename.exe --outdir ", + "summary": "Downloads components/binaries from the iLO Repository.", + "aliases": [], + "auxcommands": [], + } + + def run(self, line, help_disp=False): + """Wrapper function for download command main function + + :param line: command line input + :type line: string. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.downloadcomponentvalidation(options) + + if self.rdmc.app.typepath.defs.isgen9: + raise IncompatibleiLOVersionError("iLO Repository commands are " "only available on iLO 5.") + + start_time = time.time() + ret = ReturnCodes.FAILED_TO_DOWNLOAD_COMPONENT + + self.rdmc.ui.printer("Downloading component, this may take a while...\n") + + if "blobstore" in self.rdmc.app.current_client.base_url: + ret = self.downloadlocally(options) + else: + ret = self.downloadfunction(options) + + self.rdmc.ui.printer("%s\n" % human_readable_time(time.time() - start_time)) + + self.cmdbase.logout_routine(self, options) + # Return code + return ret + + def downloadfunction(self, options): + """Main download command worker function + + :param options: command options (argparse) + :type options: options. + """ + filename = options.component.rsplit("/", 1)[-1] + + if not options.outdir: + destination = os.path.join(os.getcwd(), filename) + else: + destination = os.path.join(options.outdir, filename) + + if not os.path.exists(os.path.join(os.path.split(destination)[0])): + raise InvalidFileInputError("Invalid output file location.") + if not os.access(os.path.join(os.path.split(destination)[0]), os.W_OK): + raise InvalidFileInputError("File location is not writable.") + if os.access(destination, os.F_OK) and not os.access(destination, os.W_OK): + raise InvalidFileInputError("Existing File cannot be overwritten.") + + if options.component[0] != "/": + options.component = "/" + options.component + + if "fwrepo" not in options.component: + options.component = "/fwrepo/" + options.component + + results = self.rdmc.app.get_handler(options.component, uncache=True) + + if results.status == 404: + raise DownloadError( + "Downloading of component %s failed, please check the component name and check if the " + "component exists in the repository\n" % options.component + ) + + with open(destination, "wb") as local_file: + local_file.write(results.ori) + + self.rdmc.ui.printer("Download complete\n") + + return ReturnCodes.SUCCESS + + def downloadlocally(self, options=None): + """Used to download a component from the iLO Repo locally + + :param options: command options (argparse) + :type options: options. + """ + try: + dll = self.rdmc.app.current_client.connection._conn.channel.dll + dll.downloadComponent.argtypes = [c_char_p, c_char_p] + dll.downloadComponent.restype = c_int + + filename = options.component.rsplit("/", 1)[-1] + if not options.outdir: + destination = os.path.join(os.getcwd(), filename) + else: + destination = os.path.join(options.outdir, filename) + + if not os.path.exists(os.path.join(os.path.split(destination)[0])): + raise InvalidFileInputError("Invalid output file location.") + if not os.access(os.path.join(os.path.split(destination)[0]), os.W_OK): + raise InvalidFileInputError("File location is not writable.") + if os.access(destination, os.F_OK) and not os.access(destination, os.W_OK): + raise InvalidFileInputError("Existing File cannot be overwritten.") + + ret = dll.downloadComponent( + ctypes.create_string_buffer(filename.encode("utf-8")), + ctypes.create_string_buffer(destination.encode("utf-8")), + ) + + if ret != 0: + self.rdmc.ui.error( + "Component " + filename + " download failed, please check the " + "component name and check if the component exists in the respository.\n" + ) + return ReturnCodes.FAILED_TO_DOWNLOAD_COMPONENT + else: + self.rdmc.ui.printer("Component " + filename + " downloaded successfully.\n") + self.rdmc.ui.printer("[200] The operation completed successfully.\n") + + except Exception as excep: + raise DownloadError(str(excep)) + + return ReturnCodes.SUCCESS + + def downloadcomponentvalidation(self, options): + """Download command method validation function + + :param options: command options + :type options: options. + """ + self.rdmc.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for download command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "component", + help="""Component name (starting with path '/fwrepo/') of the target""" """ component.""", + metavar="[COMPONENT URI]", + ) + customparser.add_argument( + "--outdir", + dest="outdir", + help="""Output directory for saving the file.""", + default="", + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/FwpkgCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/FwpkgCommand.py new file mode 100644 index 0000000..f99f82e --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/FwpkgCommand.py @@ -0,0 +1,766 @@ +# ## +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ## + +# -*- coding: utf-8 -*- +"""Fwpkg Command for rdmc""" + +import os +import json +from random import randint +import shutil +import zipfile +import tempfile +from io import open + +import ctypes +from ctypes import c_char_p, c_int, c_bool + +from redfish.hpilo.risblobstore2 import BlobStore2 + +try: + from rdmc_helper import ( + LOGGER, + IncompatibleiLOVersionError, + ReturnCodes, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + UploadError, + TaskQueueError, + FirmwareUpdateError, + FlashUnsupportedByIloError, + ) +except ImportError: + from ilorest.rdmc_helper import ( + LOGGER, + IncompatibleiLOVersionError, + ReturnCodes, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + UploadError, + TaskQueueError, + FirmwareUpdateError, + FlashUnsupportedByIloError, + ) + + +class FwpkgCommand: + """Fwpkg command class""" + + def __init__(self): + self.ident = { + "name": "flashfwpkg", + "usage": None, + "description": "Run to upload and flash " + "components from fwpkg files.\n\n\tUpload component and flashes it or sets a task" + "queue to flash.\n\texample: flashfwpkg component.fwpkg.\n\n\t" + "Skip extra checks before adding taskqueue. (Useful when adding " + "many flashfwpkg taskqueue items in sequence.)\n\texample: flashfwpkg " + "component.fwpkg --ignorechecks" + "\n\n\t Uploading component " + "flashfwpkg create taskqueue using target and flashes.\n\texample: flashfwpkg " + "component.fwpkg --targets ", + "summary": "Flashes fwpkg components using the iLO repository.", + "aliases": ["fwpkg"], + "auxcommands": [ + "UploadComponentCommand", + "UpdateTaskQueueCommand", + "FirmwareUpdateCommand", + "FwpkgCommand", + ], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main fwpkg worker function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + if "-" in line[0] and "thirdparty" in line[0]: + line.insert(0, "dummy_arg") + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.fwpkgvalidation(options) + + if self.rdmc.app.typepath.defs.isgen9: + LOGGER.error("iLO Repository commands are only available on iLO 5.") + raise IncompatibleiLOVersionError("iLO Repository commands are only available on iLO 5.") + + if self.rdmc.app.getiloversion() <= 5.120 and options.fwpkg.lower().startswith("iegen10"): + raise IncompatibleiLOVersionError( + "Please upgrade to iLO 5 1.20 or greater to ensure correct flash of this firmware." + ) + + updateservice_url = "/redfish/v1/UpdateService/" + # Get handler to check Accept3rdPartyFirmware enabled or disabled + get_content = self.rdmc.app.get_handler(updateservice_url, silent=True, service=True).dict + + accept3rdpartyfw = "" + if ( + get_content + and "Oem" in get_content + and "Hpe" in get_content["Oem"] + and "Accept3rdPartyFirmware" in get_content["Oem"]["Hpe"] + ): + accept3rdpartyfw = get_content["Oem"]["Hpe"]["Accept3rdPartyFirmware"] + + line_l = line[0].lower() + if ( + line + and ".fwpkg" not in line_l + and (".pup" in line_l or ".hpb" in line_l or ".fup" in line_l or ".bin" in line_l) + ): + if not accept3rdpartyfw and not options.enable_thirdparty_fw: + raise InvalidCommandLineErrorOPTS( + "Please use the option --enable_thirdparty_fw to flash Third " + "Party Firmware Packages.\nBy default only .fwpkg files are allowed.\n" + ) + + if options.enable_thirdparty_fw: + self.rdmc.ui.printer("Enabling Third party Firmware flashing.\n") + self.rdmc.app.patch_handler( + updateservice_url, + {"Oem": {"Hpe": {"Accept3rdPartyFirmware": True}}}, + silent=True, + service=True, + ) + if "dummy" in line[0]: + return ReturnCodes.SUCCESS + elif options.disable_thirdparty_fw: + self.rdmc.ui.printer("Disabling Third party Firmware flashing.\n") + self.rdmc.app.patch_handler( + updateservice_url, + {"Oem": {"Hpe": {"Accept3rdPartyFirmware": False}}}, + silent=True, + service=True, + ) + if "dummy" in line[0]: + return ReturnCodes.SUCCESS + + tempdir = "" + fwpkg_l = options.fwpkg.lower() + if ( + not fwpkg_l.endswith(".fwpkg") + and not fwpkg_l.endswith(".fup") + and not fwpkg_l.endswith(".hpb") + and not fwpkg_l.endswith(".bin") + and not fwpkg_l.endswith(".pup") + ): + LOGGER.error("Invalid file type. Please make sure the file provided is a valid .fwpkg file type.") + raise InvalidFileInputError( + "Invalid file type. Please make sure the file provided is a valid .fwpkg file type." + ) + + try: + components, tempdir, comptype, _ = self.preparefwpkg(self, options.fwpkg, command_name="flashfwpkg") + if comptype == "D": + LOGGER.error("Component Type D, Unable to flash this fwpkg file.") + raise InvalidFileInputError("Unable to flash this fwpkg file.") + + elif options.targets: + for component in components: + component_l = component.lower() + if ( + component_l.endswith(".fwpkg") + or component_l.endswith(".hpb") + or component_l.endswith(".HPb") + or component_l.endswith(".bin") + or component_l.endswith(".fup") + or component_l.endswith(".pup") + or component_l.endswith(".zip") + ): + uploadcommand = "--component %s" % component + else: + uploadcommand = "--component %s" % os.path.join(tempdir, component) + if options.forceupload: + uploadcommand += " --forceupload" + self.rdmc.ui.printer("Uploading firmware: %s\n" % os.path.basename(component)) + self.auxcommands["uploadcomp"].run(uploadcommand) + targets = [] + target_list = options.targets.split(",") + for target in target_list: + target_url = "/redfish/v1/UpdateService/FirmwareInventory/" + str(target) + "/" + targets.append(target_url) + verified = self.verify_targets(options.targets) + if not verified: + self.rdmc.ui.error("Provided target was not available, Please provide valid target id\n") + return ReturnCodes.INVALID_TARGET_ERROR + path = "/redfish/v1/UpdateService/UpdateTaskQueue/" + try: + self.taskqueuecheck() + except TaskQueueError as excp: + if options.ignore: + self.rdmc.ui.warn(str(excp) + "\n") + else: + raise excp + + comp = "%s" % os.path.basename(component) + try: + newtask = { + "Name": "Update-%s" % (str(randint(0, 1000000)),), + "Command": "ApplyUpdate", + "Filename": os.path.basename(comp), + "UpdatableBy": ["Bmc"], + "TPMOverride": options.tover, + "Targets": targets, + } + self.rdmc.ui.printer('payload: "%s"\n' % newtask) + except ValueError: + pass + self.rdmc.ui.printer('Creating task: "%s"\n' % newtask["Name"]) + self.rdmc.app.post_handler(path, newtask) + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + elif comptype in ["C", "BC"]: + try: + self.taskqueuecheck() + except TaskQueueError as excp: + if options.ignore: + self.rdmc.ui.warn(str(excp) + "\n") + else: + raise excp + self.applyfwpkg(options, tempdir, components, comptype) + + if comptype == "A": + message = "Firmware has successfully been flashed.\n" + if "ilo" in options.fwpkg.lower(): + message += "iLO will reboot to complete flashing. Session will be" " terminated.\n" + elif comptype in ["B", "BC"]: + message = ( + "Firmware has successfully been flashed and a reboot is required for " + "this firmware to take effect.\n" + ) + elif comptype in ["C", "BC"]: + message = "This firmware is set to flash on reboot.\n" + if ".bin" not in components[0]: + if "blobstore" not in self.rdmc.app.redfishinst.base_url: + if not self.auxcommands["uploadcomp"].wait_for_state_change(): + # Failed to upload the component. + raise FirmwareUpdateError("Error while processing the component.") + + self.rdmc.ui.printer(message) + + except (FirmwareUpdateError, UploadError) as excp: + raise excp + + finally: + if tempdir: + shutil.rmtree(tempdir) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def taskqueuecheck(self): + """Check taskqueue for potential issues before starting""" + + select = "ComputerSystem." + results = self.rdmc.app.select(selector=select, path_refresh=True) + + try: + results = results[0] + except: + pass + + powerstate = results.resp.dict["PowerState"] + tasks = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/UpdateTaskQueue/") + + for task in tasks: + if task["State"] == "Exception": + raise TaskQueueError( + "Exception found in taskqueue which will " + "prevent firmware from flashing. Please run " + "iLOrest command: taskqueue --cleanqueue to clear" + " any errors before continuing." + ) + if task["UpdatableBy"] == "Uefi" and not powerstate == "Off" or task["Command"] == "Wait": + raise TaskQueueError( + "Taskqueue item found that will " + "prevent firmware from flashing immediately. Please " + "run iLOrest command: taskqueue --resetqueue to " + "reset the queue if you wish to flash immediately " + "or include --ignorechecks to add this firmware " + "into the task queue anyway." + ) + if tasks: + self.rdmc.ui.warn( + "Items are in the taskqueue that may delay the flash until they " + "are finished processing. Use the taskqueue command to monitor updates.\n" + ) + + def get_comp_type(self, payload, command_name="flashfwpkg"): + """Gets the component type and returns it + + :param payload: json payload of .fwpkg file + :type payload: dict. + :returns: returns the type of component. Either A,B,C, or D. + :rtype: string + """ + ilo_ver_int = self.rdmc.app.getiloversion() + ctype = "" + if "Uefi" in payload["UpdatableBy"] and "RuntimeAgent" in payload["UpdatableBy"]: + ctype = "D" + elif "Uefi" in payload["UpdatableBy"] and "Bmc" in payload["UpdatableBy"]: + fw_url = "/redfish/v1/UpdateService/FirmwareInventory/" + "?$expand=." + data = self.rdmc.app.get_handler(fw_url, silent=True).dict["Members"] + da_flag = False + cc_flag = False + if data is not None: + type_set = None + for fw in data: + for device in payload["Devices"]["Device"]: + if ( + fw["Oem"]["Hpe"].get("Targets") is not None + and device["Target"] in fw["Oem"]["Hpe"]["Targets"] + ): + if fw["Oem"]["Hpe"].get("DeviceContext") is None: + LOGGER.error("DeviceContext is not found, please wait for a while & try again.") + raise UploadError("DeviceContext is not found, please wait for a while & try again.") + else: + # print device context in debugger + LOGGER.info("DeviceContext {}".format(fw["Oem"]["Hpe"]["DeviceContext"])) + if ( + "Slot=" in fw["Oem"]["Hpe"]["DeviceContext"] + and ":" in fw["Oem"]["Hpe"]["DeviceContext"] + ): + if ( + (ilo_ver_int >= 6.169 and ilo_ver_int < 7.000) or ilo_ver_int >= 7.113 + ) and command_name != "uploadcomp": + if fw["Updateable"]: + cc_flag = True + else: + raise FlashUnsupportedByIloError( + "The flashing of this component " "is not supported by iLO.\n" + ) + else: + cc_flag = True + else: + if fw["Updateable"]: + cc_flag = True + else: + da_flag = True + if cc_flag and da_flag: + ctype = "BC" + type_set = True + elif cc_flag and not da_flag: + ctype = "B" + type_set = True + elif not cc_flag and da_flag: + ctype = "C" + type_set = True + if type_set is None: + LOGGER.error("Component type is not identified, Please check if the particular H/W is present") + # ilo_ver_int = self.rdmc.app.getiloversion() + ilo_ver = str(ilo_ver_int) + error_msg = ( + "Cannot flash the component on this server, check whether the component is fwpkg-v2 " + "or check whether the server is iLO" + ) + if ilo_ver_int >= 6: + error_msg = ( + error_msg + ilo_ver[0] + ", FW is above 1.50 or the particular drive HW is present\n" + ) + else: + error_msg = ( + error_msg + ilo_ver[0] + ", FW is above 2.30 or the particular drive HW is present\n" + ) + raise IncompatibleiLOVersionError(error_msg) + else: + for device in payload["Devices"]["Device"]: + for image in device["FirmwareImages"]: + flash_key = next((key for key in image.keys() if key.lower() == "directflashok"), None) + + if flash_key is None: + raise InvalidFileInputError("Cannot flash this firmware.") + if flash_key and image[flash_key]: + ctype = "A" + if image["ResetRequired"]: + ctype = "B" + break + elif image.get("UefiFlashable", image.get("UEFIFlashable", False)): + ctype = "C" + break + else: + ctype = "D" + LOGGER.info("Component Type identified is {}".format(ctype)) + return ctype + + @staticmethod + def check_decoupled(self, pkgfile): + """check for decoupled json + + :param pkgfile: Location of the .fwpkg file + :type pkgfile: string. + :returns: returns the flag for flashing and decoupling + :rtype: bool, bool, string + """ + if os.path.dirname(pkgfile): # This means it's not just a file name + base_dir = os.path.dirname(pkgfile) + package_file = os.path.basename(pkgfile) + else: + base_dir = os.getcwd() + package_file = pkgfile + + package_name, _ = os.path.splitext(package_file) + + # Construct the expected path for the JSON file + json_file_name = f"{package_name}.json" + json_file_path = os.path.join(base_dir, json_file_name) + + # List all files in the base directory and check for a case-insensitive match + decoupled_flag = False + payload_file = None + + # List all files in the base directory + files_in_dir = os.listdir(base_dir) + + # Check if any file in the directory matches the JSON file name case-insensitively + for file in files_in_dir: + if file.lower() == json_file_name.lower(): + # File found, set flag and read the file + decoupled_flag = True + json_file_path = os.path.join(base_dir, file) # Update json_file_path to match the case of the file + with open(json_file_path, "r", encoding="utf-8") as json_file: + payload_file = json.load(json_file) + break # Exit once the file is found + + # If the file was not found , decoupled_flag remains False + return decoupled_flag, payload_file + + @staticmethod + def preparefwpkg(self, pkgfile, command_name="flashfwpkg"): + """Prepare fwpkg file for flashing + + :param pkgfile: Location of the .fwpkg file + :type pkgfile: string. + :returns: returns the files needed to flash, directory they are located + in, and type of file. + :rtype: string, string, string + """ + files = [] + imagefiles = [] + payloaddata = None + tempdir = tempfile.mkdtemp() + pldmflag = False + pkgfile_l = pkgfile.lower() + if ( + not pkgfile_l.endswith(".fup") + and not pkgfile_l.endswith(".hpb") + and not pkgfile_l.endswith(".bin") + and not pkgfile_l.endswith(".pup") + ): + decoupled_flag, payload_file = self.auxcommands["flashfwpkg"].check_decoupled(self, pkgfile) + if not decoupled_flag: + try: + zfile = zipfile.ZipFile(pkgfile) + zfile.extractall(tempdir) + zfile.close() + except Exception as excp: + raise InvalidFileInputError("Unable to unpack file. " + str(excp)) + + files = os.listdir(tempdir) + + if "payload.json" in files: + with open(os.path.join(tempdir, "payload.json"), encoding="utf-8") as pfile: + data = pfile.read() + payloaddata = json.loads(data) + else: + raise InvalidFileInputError( + "Invalid FWPKG component due to missing component metadata. \nPlease download the json file " + "along with FWPKG component or provide FWPKG component having payload.json file" + ) + else: + payloaddata = payload_file + if ( + not pkgfile_l.endswith(".fup") + and not pkgfile_l.endswith(".hpb") + and not pkgfile_l.endswith(".bin") + and not pkgfile_l.endswith(".pup") + ): + comptype = self.auxcommands["flashfwpkg"].get_comp_type(payloaddata, command_name) + else: + comptype = "A" + + results = self.rdmc.app.getprops(selector="UpdateService.", props=["Oem/Hpe/Capabilities"]) + if comptype in ["C", "BC"]: + imagefiles = [self.auxcommands["flashfwpkg"].type_c_change(tempdir, pkgfile)] + else: + if ( + not pkgfile_l.endswith("fup") + and not pkgfile_l.endswith(".hpb") + and not pkgfile_l.endswith(".bin") + and not pkgfile_l.endswith(".pup") + ): + for device in payloaddata["Devices"]["Device"]: + for firmwareimage in device["FirmwareImages"]: + if "PLDMImage" in firmwareimage and firmwareimage["PLDMImage"]: + pldmflag = True + if firmwareimage["FileName"] not in imagefiles: + imagefiles.append(firmwareimage["FileName"]) + + if ( + "blobstore" in self.rdmc.app.redfishinst.base_url + and comptype in ["A", "B", "BC"] + and results + and "UpdateFWPKG" in results[0]["Oem"]["Hpe"]["Capabilities"] + ): + dll = BlobStore2.gethprestchifhandle() + dll.isFwpkg20.argtypes = [c_char_p, c_int] + dll.isFwpkg20.restype = c_bool + + with open(pkgfile, "rb") as fwpkgfile: + fwpkgdata = fwpkgfile.read() + + fwpkg_buffer = ctypes.create_string_buffer(fwpkgdata) + if dll.isFwpkg20(fwpkg_buffer, 2048): + imagefiles = [pkgfile] + tempdir = "" + if ( + pkgfile_l.endswith(".hpb") + or pkgfile_l.endswith(".fup") + or pkgfile_l.endswith(".pup") + or pkgfile_l.endswith(".bin") + ): + imagefiles = [pkgfile] + + elif self.rdmc.app.getiloversion() > 5.230 and payloaddata.get("PackageFormat") == "FWPKG-v2": + imagefiles = [pkgfile] + return imagefiles, tempdir, comptype, pldmflag + + def type_c_change(self, tdir, pkgloc): + """Special changes for type C + + :param tempdir: path to temp directory + :type tempdir: string. + :param components: components to upload + :type components: list. + + :returns: The location of the type C file to upload + :rtype: string. + """ + + shutil.copy(pkgloc, tdir) + + fwpkgfile = os.path.split(pkgloc)[1] + zfile = fwpkgfile[:-6] + ".zip" + zipfileloc = os.path.join(tdir, zfile) + + os.rename(os.path.join(tdir, fwpkgfile), zipfileloc) + + return zipfileloc + + def applyfwpkg(self, options, tempdir, components, comptype): + """Apply the component to iLO + + :param options: command line options + :type options: list. + :param tempdir: path to temp directory + :type tempdir: string. + :param components: components to upload + :type components: list. + :param comptype: type of component. Either A,B,C, or D. + :type comptype: str. + """ + + for component in components: + component_l = component.lower() + if ( + component_l.endswith(".fwpkg") + or component_l.endswith(".hpb") + or component_l.endswith(".bin") + or component_l.endswith(".fup") + or component_l.endswith(".pup") + or component_l.endswith(".zip") + ): + uploadcommand = "--component %s" % component + else: + uploadcommand = "--component %s" % os.path.join(tempdir, component) + + if options.forceupload: + uploadcommand += " --forceupload" + if comptype in ["A", "B"]: + LOGGER.info("Setting --update_target --update_repository options as it is A or B") + uploadcommand += " --update_target --update_repository" + elif comptype in ["BC"]: + LOGGER.info("Setting --update_target --update_repository options and " "calling uploadcomp once.") + uploadcommand1 = uploadcommand + " --update_repository --update_target" + if options.tover: + LOGGER.info("Setting --tpmover if tpm enabled.") + uploadcommand1 += " --tpmover" + ret = self.auxcommands["uploadcomp"].run(uploadcommand1) + if ret != ReturnCodes.SUCCESS: + raise UploadError("Error uploading component.") + LOGGER.info( + "Continuing the flow with --component such that uploadcomp" + " is called again to upload component to the repository." + ) + if options.update_srs: + LOGGER.info("Setting --update_srs to store as recovery set.") + uploadcommand += " --update_srs" + if options.response: + LOGGER.info("Setting --response for extended UpdateService Status") + uploadcommand += " --response" + if options.tover: + LOGGER.info("Setting --tpmover if tpm enabled.") + uploadcommand += " --tpmover" + if "update_repository" not in uploadcommand: + self.rdmc.ui.printer("Uploading firmware: %s\n" % os.path.basename(component)) + if "update_target" in uploadcommand: + self.rdmc.ui.printer("Flashing firmware: %s\n" % os.path.basename(component)) + try: + ret = self.auxcommands["uploadcomp"].run(uploadcommand) + if ret != ReturnCodes.SUCCESS: + raise UploadError + except UploadError: + if comptype in ["A", "B", "BC"]: + select = self.rdmc.app.typepath.defs.hpilofirmwareupdatetype + results = self.rdmc.app.select(selector=select) + + try: + results = results[0] + except: + pass + + if results: + update_path = results.resp.request.path + error = self.rdmc.app.get_handler(update_path, silent=True) + self.auxcommands["firmwareupdate"].printerrmsg(error) + else: + raise FirmwareUpdateError("Error occurred while updating the firmware.") + else: + raise UploadError("Error uploading component.") + + if comptype in ["C", "BC"]: + self.rdmc.ui.warn("Setting a taskqueue item to flash UEFI flashable firmware.\n") + path = "/redfish/v1/updateservice/updatetaskqueue" + newtask = { + "Name": "Update-%s" % (str(randint(0, 1000000)),), + "Command": "ApplyUpdate", + "Filename": os.path.basename(component), + "UpdatableBy": ["Uefi"], + "TPMOverride": options.tover, + } + res = self.rdmc.app.post_handler(path, newtask) + + if res.status != 201: + raise TaskQueueError("Not able create UEFI task.\n") + else: + self.rdmc.ui.printer( + "Created UEFI Task for Component " + os.path.basename(component) + " successfully.\n" + ) + + def verify_targets(self, target): + target_list = target.split(",") + for target in target_list: + try: + target_url = "/redfish/v1/UpdateService/FirmwareInventory/" + target + dd = self.rdmc.app.get_handler(target_url, service=True, silent=True) + if dd.status == 404: + return False + except: + return False + return True + + def fwpkgvalidation(self, options): + """fwpkg validation function + + :param options: command line options + :type options: list. + """ + self.rdmc.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument("fwpkg", help="""fwpkg file path""", metavar="[FWPKG]", default=None) + customparser.add_argument( + "--forceupload", + dest="forceupload", + action="store_true", + help="Add this flag to force upload firmware with the same name already on the repository.", + default=False, + ) + customparser.add_argument( + "--ignorechecks", + dest="ignore", + action="store_true", + help="Add this flag to ignore all checks to the taskqueue before attempting to process the .fwpkg file.", + default=False, + ) + customparser.add_argument( + "--enable_thirdparty_fw", + dest="enable_thirdparty_fw", + action="store_true", + help="Add this flag to enable flashing third party firmware to server.", + default=False, + ) + customparser.add_argument( + "--disable_thirdparty_fw", + dest="disable_thirdparty_fw", + action="store_true", + help="Add this flag to disable flashing third party firmware to server.", + default=False, + ) + customparser.add_argument( + "--tpmover", + dest="tover", + action="store_true", + help="If set then the TPMOverrideFlag is passed in on the associated flash operations", + default=False, + ) + customparser.add_argument( + "--update_srs", + dest="update_srs", + action="store_true", + help="Add this flag to update the System Recovery Set with the uploaded firmware. " + "NOTE: This requires an account login with the system recovery set privilege.", + default=False, + ) + customparser.add_argument( + "--response", + dest="response", + action="store_true", + help="Use this flag to return the iLO response body.", + default=False, + ) + customparser.add_argument( + "--targets", + help="If targets value specify a comma separated\t" "firmwareinventory id only", + metavar="targets_indices", + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/InstallSetCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/InstallSetCommand.py new file mode 100644 index 0000000..be7140f --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/InstallSetCommand.py @@ -0,0 +1,576 @@ +# ## +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ## + +# -*- coding: utf-8 -*- +"""Install Set Command for rdmc""" + +import json +import re +from argparse import RawDescriptionHelpFormatter +from datetime import datetime + +try: + from rdmc_helper import ( + LOGGER, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + NoContentsFoundForOperationError, + ReturnCodes, + InstallsetError, + ) +except ImportError: + from ilorest.rdmc_helper import ( + LOGGER, + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileInputError, + NoContentsFoundForOperationError, + ReturnCodes, + InstallsetError, + ) + + +class InstallSetCommand: + """Main download command class""" + + def __init__(self): + self.ident = { + "name": "installset", + "usage": None, + "description": "Run to perform operations on install sets.\nTo view help on specific " + "sub-commands run: installset -h\n\n\tExample: installset " + "add -h\nNote: iLO 5 required.", + "summary": "Manages install sets for iLO.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main listcomp worker function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + _subcommands = ["add", "delete", "invoke"] + found = False + for i, arg in enumerate(line): + if arg in _subcommands: + found = True + try: + if line[i + 1] not in list(self.parser._option_string_actions.keys()): + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + else: + raise IndexError + except (KeyError, IndexError): + (options, args) = self.rdmc.rdmc_parse_arglist(self, line, default=True) + else: + continue + if not found: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line, default=True) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.installsetvalidation(options) + + if self.rdmc.app.typepath.defs.isgen9: + raise IncompatibleiLOVersionError("iLO Repository commands are " "only available on iLO 5.") + + if hasattr(options, "name"): + if options.name: + if options.name.startswith('"') and options.name.endswith('"'): + options.name = options.name[1:-1] + if hasattr(options, "removeall"): + if options.removeall: + self.removeinstallsets(options) + if options.command.lower() == "add": + if not options.json: + raise InvalidCommandLineError("add command requires an install set file.") + else: + self.addinstallset(options.json, options) + elif options.command.lower() == "delete" and (hasattr(options, "removeall") and not options.removeall): + self.deleteinstallset(options) + # elif options.command.lower() == "delete" and not hasattr(options, "removeall"): + # self.deleteinstallset(options.name) + elif options.command.lower() == "invoke": + self.invokeinstallset(options) + else: + self.printinstallsets(options) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def addinstallset(self, setfile, options): + """Adds an install set + :param setfile: filename of install set + :type setfile: str. + :param name: string of the install set name to add + :type name: str. + """ + path = "/redfish/v1/UpdateService/InstallSets/" + comps = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/ComponentRepository/") + + sets = self.rdmc.app.getcollectionmembers(path) + + if not options.name: + options.name = str(datetime.now()) + options.name = options.name.replace(":", "") + options.name = options.name.replace(" ", "T") + try: + inputfile = open(setfile, "r") + sequences = json.loads(inputfile.read()) + except Exception as excp: + raise InvalidFileInputError("%s" % excp) + + listtype = self.validatefile(sequences) + + if listtype: + body = {"Name": options.name, "Sequence": sequences} + else: + body = sequences + if "Sequence" in body: + sequences = body["Sequence"] + else: + raise InvalidFileInputError("Invalid install set file.") + sequences = body["Sequence"] + + filenamelist = [x["Filename"] for x in comps] + + for sequence in sequences: + if sequence["Command"] == "ApplyUpdate": + if "Filename" in list(sequence.keys()): + if not sequence["Filename"] in filenamelist: + raise NoContentsFoundForOperationError( + "Component" + " referenced in install set is not present on" + " iLO Drive: %s" % sequence["Filename"] + ) + elif sequence["Command"] == "WaitTimeSeconds": + sequence["WaitTimeSeconds"] = int(sequence["WaitTimeSeconds"]) + for setvar in sets: + if setvar["Name"] == body["Name"]: + raise InvalidCommandLineError("Install set name is already in use.") + + # self.rdmc.app.post_handler(path, body) + if "IsRecovery" in body and body["IsRecovery"]: + self.rdmc.ui.printer("This is a system recovery install set: %s\n" % body["Name"]) + self.rdmc.ui.warn("Adding system recovery set: %s\n" % body["Name"]) + if not (options.user and options.password): + raise InstallsetError( + "Adding system recovery set needs to be passed with " "--user and --password options, add failed\n" + ) + if "blobstore" in self.rdmc.app.current_client.base_url: + LOGGER.info("Logging out of the session without user and password") + self.rdmc.app.current_client.logout() + LOGGER.info("Logging in with user and password for deleting system recovery set") + self.rdmc.app.current_client._user_pass = (options.user, options.password) + self.rdmc.app.current_client.login(self.rdmc.app.current_client.auth_type) + self.rdmc.app.post_handler(path, body) + else: + self.rdmc.app.post_handler(path, body) + else: + self.rdmc.app.post_handler(path, body) + + def invokeinstallset(self, options): + """Invokes the named set + :param name: string of the install set name to invoke + :type name: str. + """ + path = None + name = options.name + sets = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/InstallSets/") + + for setvar in sets: + if setvar["Name"] == name: + path = setvar["Actions"]["#HpeComponentInstallSet.Invoke"]["target"] + + if not path: + raise NoContentsFoundForOperationError("No install set with the" " provided name could be found.") + + self.rdmc.ui.printer("Invoking install set:%s\n" % name) + + payload = self.checkpayloadoptions(options) + self.rdmc.app.post_handler(path, payload) + + def deleteinstallset(self, options): + """Deletes the named set + + :param name: string of the install set name to delete + :type name: str. + """ + self.rdmc.ui.printer("Deleting install set: %s...\n" % options.name) + sets = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/InstallSets/") + found = False + + for setvar in sets: + if setvar["Name"] == options.name: + found = True + path = setvar["@odata.id"] + if "IsRecovery" in setvar and setvar["IsRecovery"]: + self.rdmc.ui.printer("This is a system recovery install set: %s\n" % setvar["Name"]) + self.rdmc.ui.warn("Deleting system recovery set: %s\n" % setvar["Name"]) + if not (options.user and options.password): + raise InstallsetError( + "Deleting system recovery set needs to be passed with " + "--user and --password options, delete failed\n" + ) + if "blobstore" in self.rdmc.app.current_client.base_url: + LOGGER.info("Logging out of the session without user and password") + self.rdmc.app.current_client.logout() + LOGGER.info("Logging in with user and password for deleting system recovery set") + self.rdmc.app.current_client._user_pass = (options.user, options.password) + self.rdmc.app.current_client.login(self.rdmc.app.current_client.auth_type) + self.rdmc.app.delete_handler(path) + else: + self.rdmc.app.delete_handler(path) + else: + self.rdmc.app.delete_handler(path) + if not found: + raise NoContentsFoundForOperationError("Unable to find the specified install set.") + + def removeinstallsets(self, options): + """Removes all install sets""" + sets = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/InstallSets/") + + if not sets: + self.rdmc.ui.printer("No install sets found.\n") + + self.rdmc.ui.printer("Deleting all install sets...\n") + + for setvar in sets: + if setvar["IsRecovery"]: + self.rdmc.ui.warn("Attempting to delete recovery set: %s\n" % setvar["Name"]) + if not (options.user and options.password): + raise InstallsetError( + "Deleting system recovery set needs to be passed with " + "--user and --password options, delete failed\n" + ) + self.rdmc.ui.warn("Deleting system recovery set: %s\n" % setvar["Name"]) + LOGGER.debug( + "This is to inform that ,Recovery install set %s will also be " + "deleted as RemoveAll option is being used\n" % setvar["Name"] + ) + + if "blobstore" in self.rdmc.app.current_client.base_url: + LOGGER.info("Logging out of the session without user and password") + self.rdmc.app.current_client.logout() + LOGGER.info("Logging in with user and password for deleting system recovery set") + self.rdmc.app.current_client._user_pass = (options.user, options.password) + self.rdmc.app.current_client.login(self.rdmc.app.current_client.auth_type) + self.rdmc.app.delete_handler(setvar["@odata.id"]) + else: + self.rdmc.app.delete_handler(setvar["@odata.id"]) + else: + self.rdmc.ui.printer("Deleting install set: %s\n" % setvar["Name"]) + self.rdmc.app.delete_handler(setvar["@odata.id"]) + + def build_json_out(self, options): + sets = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/InstallSets/") + list_content = dict() + for setvar in sets: + content = dict() + content[setvar["Name"]] = dict() + content[setvar["Name"]].update({"IsRecovery": setvar["IsRecovery"]}) + list_content.update(content) + + if "Sequence" not in list(setvar.keys()): + content.update({"No Sequences in set."}) + continue + + for item in setvar["Sequence"]: + if "Filename" in list(item.keys()): + name = item["Name"] + filename_cmd = "%s %s" % (item["Command"], item["Filename"]) + content[setvar["Name"]].update({name: {filename_cmd}}) + elif "WaitTimeSeconds" in list(item.keys()): + wait_name = item["Name"] + wait_command = "%s %s seconds" % ( + item["Command"], + str(item["WaitTimeSeconds"]), + ) + content[setvar["Name"]].update({wait_name: {wait_command}}) + else: + content[setvar["Name"]].update({item["Name"]: {item["Command"]}}) + return list_content + + def printinstallsets(self, options): + """Prints install sets""" + sets = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/InstallSets/") + if not options.json: + self.rdmc.ui.printer("Install Sets:\n") + + if not sets: + self.rdmc.ui.printer("No install sets found.\n") + elif not options.json: + for setvar in sets: + if setvar["IsRecovery"]: + recovery = "[Recovery Set]" + else: + recovery = "" + self.rdmc.ui.printer("\n%s: %s\n" % (setvar["Name"], recovery)) + + if "Sequence" not in list(setvar.keys()): + self.rdmc.ui.warn("\tNo Sequences in set.\n") + continue + + for item in setvar["Sequence"]: + if "Filename" in list(item.keys()): + self.rdmc.ui.printer("\t%s: %s %s\n" % (item["Name"], item["Command"], item["Filename"])) + elif "WaitTimeSeconds" in list(item.keys()): + self.rdmc.ui.printer( + "\t%s: %s %s seconds\n" + % ( + item["Name"], + item["Command"], + str(item["WaitTimeSeconds"]), + ) + ) + else: + self.rdmc.ui.printer("\t%s: %s\n" % (item["Name"], item["Command"])) + elif options.json: + json_content = self.build_json_out(options) + self.rdmc.ui.print_out_json(json_content) + + def validatefile(self, installsetfile): + """validates json file + + :param file: json file to validate + :type file: string. + """ + listtype = True + keylist = ["Name", "UpdatableBy", "Command", "WaitTimeSeconds", "Filename"] + + if isinstance(installsetfile, list): + for item in installsetfile: + for key in item: + if key not in keylist: + raise InvalidFileInputError("Property %s is invalid " "for an install set." % key) + else: + listtype = False + + return listtype + + def checkpayloadoptions(self, options): + """checks for payload options and adds needed ones to payload + + :param options: command line options + :type options: list. + """ + + payload = {} + if options.exafter: + self.checktime(options.exafter) + payload["Expire"] = options.exafter + if options.safter: + self.checktime(options.safter) + payload["StartAfter"] = options.safter + if options.tover: + payload["TPMOverride"] = True + if options.uset: + payload["UpdateRecoverySet"] = True + if options.ctakeq: + payload["ClearTaskQueue"] = True + + return payload + + def checktime(self, timestr): + """check the time string for valid format + + :param timestr: time string to check + :type timestr: string. + """ + rfdtregex = "\\d\\d\\d\\d-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\dZ?" + if not re.match(rfdtregex, timestr): + raise InvalidCommandLineError( + "Invalid redfish date-time format. " "Accepted formats: YYYY-MM-DDThh:mm:ss, YYYY-MM-DDThh:mm:ssZ" + ) + + def installsetvalidation(self, options): + """installset validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + subcommand_parser = customparser.add_subparsers(dest="command") + # default sub-parser + default_parser = subcommand_parser.add_parser( + "default", + help="Running without any sub-command will return a list of all available install " + "sets on the currently logged in server.", + ) + default_parser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + default_parser.add_argument( + "--removeall", + dest="removeall", + help="Optionally include this flag to remove all install sets on the currently logged " "in server.", + action="store_true", + default=False, + ) + self.cmdbase.add_login_arguments_group(default_parser) + + # add sub-parser + add_help = "Adds an install set on the currently logged in server." + add_parser = subcommand_parser.add_parser( + "add", + help=add_help, + description=add_help + "\n\texample: installset add installsetfile.json " + "--name=newinstallsetname.\n\n\tNote: iLO will provide a default " + "install set name if the flag '--name' is not provided.", + formatter_class=RawDescriptionHelpFormatter, + ) + add_parser.add_argument( + "json", + help="Json file containing the install set tasks and sequencing" + '\n\n\texample install set JSON file:\n\t[\n\t\t{\n\t\t\t"Name": ' + '"Wait",\n\t\t\t"UpdatableBy": ["RuntimeAgent"],\n\t\t\t' + '"Command": "Wait",\n\t\t\t"WaitTimeSeconds": 60\n\t\t},\n\t\t{' + '\n\t\t\t"Name": "uniqueName",\n\t\t\t"UpdatableBy": ' + '["RuntimeAgent"],\n\t\t\t"Command": "ApplyUpdate",\n\t\t\t"' + 'Filename": "filename.exe"\n\t\t},\n\t\t{\n\t\t\t"Name": ' + '"Reboot",\n\t\t\t"UpdatableBy": ["RuntimeAgent"],\n\t\t\t' + '"Command": "ResetServer"\n\t\t}\n\t]', + metavar="JSONFILE", + ) + add_parser.add_argument("-n", "--name", dest="name", help="Install set name.", default=None) + + self.cmdbase.add_login_arguments_group(add_parser) + + # invoke sub-parser + invoke_help = "Invoke execution of an install script on the currently logged in server." + invoke_parser = subcommand_parser.add_parser( + "invoke", + help=invoke_help, + description=invoke_help + "\n\nExamples:\n\tTo simply invoke an install set\n\t" + "installset invoke --name=installsetname", + formatter_class=RawDescriptionHelpFormatter, + ) + invoke_parser.add_argument( + "-n", + "--name", + help="Install set name.", + metavar="NAME", + nargs="?", + default="", + required=True, + ) + invoke_parser.add_argument( + "--cleartaskqueue", + dest="ctakeq", + action="store_true", + help="This option allows previous items in the task queue to" + " be cleared before the Install Set is invoked", + default=False, + ) + invoke_parser.add_argument( + "--expire", + dest="exafter", + help="Optionally include this flag if you wish to set the" + " time for installset to expire. ISO 8601 Redfish-style time " + "string to be written after which iLO will automatically change " + "state to Expired", + default=None, + ) + invoke_parser.add_argument( + "--startafter", + dest="safter", + help="Optionally include this flag if you wish to set the" + " earliest execution time for installset. ISO 8601 Redfish-style " + "time string to be used.", + default=None, + ) + invoke_parser.add_argument( + "--tpmover", + dest="tover", + action="store_true", + help="If set then the TPMOverrideFlag is passed in on the " "associated flash operations", + default=False, + ) + invoke_parser.add_argument( + "--updaterecoveryset", + dest="uset", + action="store_true", + help="If set then the components in the flash operations are used" + " to replace matching contents in the Recovery Set.", + default=False, + ) + self.cmdbase.add_login_arguments_group(invoke_parser) + + # delete sub-parser + delete_help = "Delete one or more install sets from the currently logged in server." + delete_parser = subcommand_parser.add_parser( + "delete", + help=delete_help, + description=delete_help + "\n\nExamples:\n\nTo delete a single install set:\n\t" + "installset delete --name=installsetname.\n\nTo delete all install sets\n\t" + "installset delete --removeall", + formatter_class=RawDescriptionHelpFormatter, + ) + delete_parser.add_argument( + "-n", + "--name", + help="Install set name", + metavar="NAME", + nargs="?", + default="", + ) + delete_parser.add_argument( + "--removeall", + dest="removeall", + help="Optionally include this flag to remove all install sets on the currently logged " "in server.", + action="store_true", + default=False, + ) + self.cmdbase.add_login_arguments_group(delete_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/ListComponentCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/ListComponentCommand.py new file mode 100644 index 0000000..a5b1a27 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/ListComponentCommand.py @@ -0,0 +1,140 @@ +# ## +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ## + +# -*- coding: utf-8 -*- +"""List Component Command for rdmc""" + +try: + from rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class ListComponentCommand: + """Main download command class""" + + def __init__(self): + self.ident = { + "name": "listcomp", + "usage": None, + "description": "Run to list the components of " "the currently logged in system.\n\texample: listcomp", + "summary": "Lists components/binaries from the iLO Repository.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main listcomp worker function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.listcomponentvalidation(options) + + if self.rdmc.app.typepath.defs.isgen9: + raise IncompatibleiLOVersionError("iLO Repository commands are " "only available on iLO 5.") + + comps = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/ComponentRepository/") + + if comps: + self.printcomponents(comps, options) + else: + self.rdmc.ui.printer("No components found.\n") + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def printcomponents(self, comps, options): + """Print components function + + :param comps: list of components + :type comps: list. + """ + if options.json: + jsonout = dict() + for comp in comps: + jsonout[comp["Id"]] = comp + self.rdmc.ui.print_out_json(jsonout) + else: + for comp in comps: + self.rdmc.ui.printer( + "Id: %s\nName: %s\nVersion: %s\nLocked:%s\nComponent " + "Uri:%s\nFile Path: %s\nSizeBytes: %s\n\n" + % ( + comp["Id"], + comp["Name"], + comp["Version"], + "Yes" if comp["Locked"] else "No", + comp["ComponentUri"], + comp["Filepath"], + str(comp["SizeBytes"]), + ) + ) + + def listcomponentvalidation(self, options): + """listcomp validation function + + :param options: command line options + :type options: list. + """ + self.rdmc.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/MaintenanceWindowCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/MaintenanceWindowCommand.py new file mode 100644 index 0000000..9e6f16c --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/MaintenanceWindowCommand.py @@ -0,0 +1,326 @@ +# ## +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ## + +# -*- coding: utf-8 -*- +"""Update Task Queue Command for rdmc""" + +import re +from argparse import RawDescriptionHelpFormatter +from random import randint + +from redfish.ris.rmc_helper import ValidationError + +try: + from rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + ) + +__subparsers__ = ["add", "delete"] + + +class MaintenanceWindowCommand: + """Main maintenancewindow command class""" + + def __init__(self): + self.ident = { + "name": "maintenancewindow", + "usage": None, + "description": "Add or delete maintenance windows from the iLO repository.\nTo " + " view help on specific sub-commands run: maintenancewindow -h\n\n" + "NOTE: iLO 5 required.", + "summary": "Manages the maintenance windows for iLO.", + "aliases": [], + "auxcommands": [], + } + + def run(self, line, help_disp=False): + """Main update maintenance window worker function + + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + ident_subparser = False + for cmnd in __subparsers__: + if cmnd in line: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + ident_subparser = True + break + if not ident_subparser: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line, default=True) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.maintenancewindowvalidation(options) + + if self.rdmc.app.typepath.defs.isgen9: + raise IncompatibleiLOVersionError("iLO Repository commands are only available on iLO 5.") + + windows = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/MaintenanceWindows/") + + if options.command.lower() == "add": + self.addmaintenancewindow(options, windows, options.time_window) + elif options.command.lower() == "delete": + self.deletemaintenancewindow(windows, options.identifier) + else: + self.listmainenancewindows(options, windows) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def addmaintenancewindow(self, options, windows, startafter): + """Add a maintenance window + + :param options: command line options + :type options: list. + :param windows: list of maintenance windows on the system + :type windows: list. + :param startafter: redfish date-time string to start the maintenance window + :type startafter: str. + """ + adddata = {"StartAfter": startafter} + + if options.name: + adddata["Name"] = options.name + else: + adddata["Name"] = "MW-%s" % str(randint(0, 1000000)) + + if options.description: + if options.description.startswith('"') and options.description.endswith('"'): + options.description = options.description[1:-1] + adddata["Description"] = options.description + + if options.expire: + adddata["Expire"] = options.expire + + errors = self.validatewindow(adddata, windows) + + if not errors: + path = "/redfish/v1/UpdateService/MaintenanceWindows/" + self.rdmc.app.post_handler(path, adddata) + else: + self.rdmc.ui.error("Invalid Maintenance Window:\n") + for error in errors: + self.rdmc.ui.error("\t" + error + "\n") + raise ValidationError("") + + def deletemaintenancewindow(self, windows, nameid): + """Delete a maintenance window by Id or Name + + :param windows: list of maintenance windows on the system + :type windows: list. + :param nameid: id or name string to remove + :type nameid: str. + """ + + deleted = False + for window in windows: + if window["Name"] == nameid or window["Id"] == nameid: + path = window["@odata.id"] + self.rdmc.ui.printer("Deleting %s\n" % nameid) + self.rdmc.app.delete_handler(path) + deleted = True + break + + if not deleted: + raise NoContentsFoundForOperationError("No maintenance window found with that Name/Id.") + + def listmainenancewindows(self, options, windows): + """Lists the maintenance windows + + :param options: command line options + :type options: list. + :param windows: list of maintenance windows on the system + :type windows: list. + """ + + outstring = "" + jsonwindows = [] + + if windows: + for window in windows: + if options.json: + jsonwindows.append(dict((key, val) for key, val in window.items() if "@odata." not in key)) + else: + outstring += "%s:" % window["Name"] + outstring += "%s:" % window["Id"] + if "Description" in list(window.keys()) and window["Description"]: + outstring += "\n\tDescription: %s" % window["Description"] + else: + outstring += "\n\tDescription: %s" % "No description." + outstring += "\n\tStart After: %s" % window["StartAfter"] + if "Expire" in list(window.keys()): + outstring += "\n\tExpires at: %s" % window["Expire"] + else: + outstring += "\n\tExpires at: %s" % "No expire time set." + outstring += "\n" + if jsonwindows: + self.rdmc.ui.print_out_json(jsonwindows) + else: + self.rdmc.ui.printer(outstring) + else: + self.rdmc.ui.warn("No maintenance windows found on system.\n") + + def validatewindow(self, cmw, windows): + """Validate the maintenance window before adding + + :param cmw: a maintenance window candidate + :type cmw: dict. + :param windows: list of maintenance windows on the system + :type windows: list. + :returns: returns a list of errors or a empty list if no errors + """ + errorlist = [] + rfdtregex = "\\d\\d\\d\\d-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\dZ?" + + for window in windows: + if cmw["Name"] == window["Name"]: + errorlist.append("Maintenance window with Name: %s already exists." % cmw["Name"]) + + if "Name" in list(cmw.keys()): + if len(cmw["Name"]) > 64: + errorlist.append("Name must be 64 characters or less.") + if "Description" in list(cmw.keys()): + if len(cmw["Description"]) > 64: + errorlist.append("Description must be 64 characters or less.") + if "Expire" in list(cmw.keys()): + if not re.match(rfdtregex, cmw["Expire"]): + errorlist.append( + "Invalid redfish date-time format in Expire. " + "Accepted formats: YYYY-MM-DDThh:mm:ss, YYYY-MM-DDThh:mm:ssZ" + ) + if not re.match(rfdtregex, cmw["StartAfter"]): + errorlist.append( + "Invalid redfish date-time format in StartAfter. " + "Accepted formats YYYY-MM-DDThh:mm:ss, YYYY-MM-DDThh:mm:ssZ" + ) + + return errorlist + + def maintenancewindowvalidation(self, options): + """maintenencewindow validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + subcommand_parser = customparser.add_subparsers(dest="command") + + # default sub-parser + default_parser = subcommand_parser.add_parser( + "default", + help="Running without any sub-command will return all maintenace windows on the " + "currently logged in server.", + ) + default_parser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + self.cmdbase.add_login_arguments_group(default_parser) + + # add sub-parser + add_help = "Adds a maintenance window to iLO" + add_parser = subcommand_parser.add_parser( + "add", + help=add_help, + description=add_help + "\nexample: maintenancewindow add 1998-11-21T00:00:00 " + "--expire=1998-11-22T00:00:00 --name=MyMaintenanceWindow --description " + '"My maintenance window description.,"', + formatter_class=RawDescriptionHelpFormatter, + ) + add_parser.add_argument( + "time_window", + help="Specify the time window start period in DateTime format.\ni.e. YEAR-MONTH-DAY" + "THOUR:MINUTE:SECOND.\nexample: 1998-11-21T10:59:58", + metavar="TIMEWINDOW", + ) + add_parser.add_argument( + "--description", + dest="description", + help="Optionally include this flag if you would like to add a " + "description to the maintenance window you create", + default=None, + ) + add_parser.add_argument( + "--name", + dest="name", + help="Optionally include this flag if you would like to add a " + "name to the maintenance window you create. If you do not specify one" + " a unique name will be added.", + default=None, + ) + add_parser.add_argument( + "--expire", + dest="expire", + help="Optionally include this flag if you would like to add a " "time the maintenance window expires.", + default=None, + ) + self.cmdbase.add_login_arguments_group(add_parser) + + # delete sub-parser + delete_help = "Deletes the specified maintenance window on the currently logged in server." + delete_parser = subcommand_parser.add_parser( + "delete", + help=delete_help, + description=delete_help + "\nexample: maintenancewindow delete mymaintenancewindowname\n" + "Note: The maintenance window identifier can be referenced by Name or ID#." + "maintenancewindow delete name", + formatter_class=RawDescriptionHelpFormatter, + ) + delete_parser.add_argument( + "identifier", + help="The unique identifier provided by iLO or the identifier provided by '--name' " + "when the maintenance window was created.", + ) + self.cmdbase.add_login_arguments_group(delete_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/MakeInstallSetCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/MakeInstallSetCommand.py new file mode 100644 index 0000000..b934282 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/MakeInstallSetCommand.py @@ -0,0 +1,340 @@ +# ## +# Copyright 2016-2021 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ## + +# -*- coding: utf-8 -*- +"""Install Set Command for rdmc""" + +import json +import os + +from six.moves import input + +try: + from rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + ReturnCodes, + ) + + +class MakeInstallSetCommand: + """Command class to create installset payload""" + + def __init__(self): + self.ident = { + "name": "makeinstallset", + "usage": None, + "description": "Run to enter a guided shell for making " + "install sets. If not currently\n\tlogged into a server will perform " + "basic guidance on making an installset,\n\tif logged into a server " + "will provide guidance based on the current\n\tcomponents on the system. " + "If you wish to use this command on a logged in\n\tserver upload the " + "components before running for best results.", + "summary": "Creates install sets for iLO.", + "aliases": ["minstallset"], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + self.defaultprops = { + "UpdatableBy": ["Bmc"], + "Command": "ApplyUpdate", + "WaitTimeSeconds": 0, + "Filename": "", + } + self.helptext = { + "Command": "Possible Commands: ApplyUpdate, ResetServer, " "ResetBmc, Wait", + "UpdatableBy": "Possible Update parameter(s)" + ":\nBmc: Updatable by iLO\nUefi: Updatable by Uefi\n" + "RuntimeAgent: Updatable by runtime agent such as SUM/SUT", + "WaitTimeSeconds": "Number of seconds to pause in Wait " "command.", + "Filename": "Unique filename of component on " "iLO repository", + } + self.loggedin = None + self.comps = None + + def run(self, line, help_disp=False): + """Main installset worker function + + :param line: string of arguments passed in + :type line: str. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.loggedin = None + self.comps = None + self.loggedin = self.minstallsetvalidation() + + if self.loggedin and self.rdmc.app.typepath.defs.isgen9: + raise IncompatibleiLOVersionError("iLO Repository commands are " "only available on iLO 5.") + + self.rdmc.ui.warn("This command will run in interactive mode.\n") + if args: + raise InvalidCommandLineError("makeinstallset command takes no arguments.") + + self.minstallsetworker(options) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def minstallsetworker(self, options): + """Main installset creation worker + + :param options: command line options + :type options: list. + """ + comps = {} + totcomps = [] + count = -1 + totcount = 0 + self.rdmc.ui.warn("Entering new shell, type quit to leave!\n") + if self.loggedin: + self.rdmc.ui.printer("Running in logged in mode.") + self.comps = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/ComponentRepository/") + else: + self.rdmc.ui.printer("Running in basic guidance mode.") + while True: + comps = {} + count = -1 + reqdprops = ["Command"] + while True: + if len(reqdprops) <= count: + break + if count == -1: + line = input("\nEnter a name for this command: ") + else: + self.rdmc.ui.printer("\n" + self.helptext[reqdprops[count]] + "\n") + if self.loggedin and reqdprops[count].lower() == "filename": + filenm, updateby, target = self.checkfiles(options) + comps["Filename"] = filenm + comps["UpdatableBy"] = updateby + if options.targets: + comps["Targets"] = target + break + else: + line = input("Enter " + reqdprops[count] + " for " + comps["Name"] + ": ") + if line.endswith(os.linesep): + line.rstrip(os.linesep) + if line == "quit": + break + elif line == "" and not count == -1: + line = self.defaultprops[reqdprops[count]] + if count == -1: + comps["Name"] = line + else: + while True: + validated = self.validatepropvalue(reqdprops[count], line, reqdprops) + if not validated: + if line == "quit": + break + line = input( + "Input %s is not a valid property " "for %s. Try again: " % (line, reqdprops[count]) + ) + else: + comps[reqdprops[count]] = validated + break + count = count + 1 + if line == "quit": + break + else: + totcomps.append(comps) + totcount = totcount + 1 + + if not totcount: + self.rdmc.ui.warn("No sequences created. Exiting without creating an installset.\n") + else: + while True: + isrecovery = input("Is this a recovery installset? ") + isrecovery = True if str(isrecovery).lower() in ["true", "t", "yes", "y"] else isrecovery + isrecovery = False if str(isrecovery).lower() in ["false", "f", "no", "n"] else isrecovery + if not isinstance(isrecovery, bool): + self.rdmc.ui.warn("'Isrecovery' should be either true or false.\n") + continue + else: + break + + if isrecovery: + installsetname = "System Recovery Set" + else: + while True: + installsetname = input("Enter installset name: ") + if not installsetname: + self.rdmc.ui.warn("Install set must have a name.\n") + else: + break + + description = input("Enter description for the installset: ") + + body = { + "Name": installsetname, + "Description": description, + "IsRecovery": isrecovery, + "Sequence": totcomps, + } + + self.rdmc.ui.print_out_json(body) + with open(options.filename, "w") as outfile: + json.dump(body, outfile, indent=2, sort_keys=True) + + self.rdmc.ui.printer("installset saved to %s\n" % options.filename) + + def validatepropvalue(self, propvalue, givenvalue, reqdprops): + """Validates a string returning the correct type + + :param propvalue: property to validate + :type propvalue: string. + :param givenvalue: value to validate + :type givenvalue: string. + :param reqdprops: the required property list + :type reqdprops: list. + """ + validated_property = None + if propvalue == "WaitTimeSeconds": + validated_property = int(givenvalue) + elif propvalue == "UpdatableBy": + if isinstance(givenvalue, list): + validated_property = givenvalue + value = [x.strip() for x in givenvalue.split(",")] + for ind, item in enumerate(value): + if item.lower() == "runtimeagent": + value[ind] = "RuntimeAgent" + elif item.lower() == "uefi": + value[ind] = "Uefi" + elif item.lower() == "bmc": + value[ind] = "Bmc" + validated_property = value + elif propvalue == "Command": + if givenvalue.lower() == "applyupdate": + if self.loggedin and not self.comps: + self.rdmc.ui.printer("All components on the system are already " "added to the installset.\n") + else: + reqdprops.append("Filename") + reqdprops.append("UpdatableBy") + validated_property = "ApplyUpdate" + elif givenvalue.lower() == "resetserver": + validated_property = "ResetServer" + elif givenvalue.lower() == "resetbmc": + validated_property = "ResetBmc" + elif givenvalue.lower() == "wait": + reqdprops.append("WaitTimeSeconds") + validated_property = "Wait" + elif propvalue == "Filename": + if givenvalue: + validated_property = givenvalue + + return validated_property + + def get_target(self, target): + target_list = target.split(",") + for target in target_list: + try: + target_url = "/redfish/v1/UpdateService/FirmwareInventory/" + target + dd = self.rdmc.app.get_handler(target_url, service=True, silent=True) + if dd.status == 404: + return False + except: + return False + return True + + def checkfiles(self, options): + count = 0 + self.rdmc.ui.printer("Components currently in the repository that have not " "been added to the installset:\n") + for comp in self.comps: + count += 1 + self.rdmc.ui.printer("[%d] %s %s\n" % (count, comp["Name"], comp["Version"])) + while True: + userinput = input("Select the number of the component you want to add to " "the install set: ") + try: + userinput = int(userinput) + if userinput > count or userinput == 0: + raise + break + except: + self.rdmc.ui.warn("Input is not a valid number.\n") + filename = self.comps[userinput - 1]["Filename"] + updatableby = self.comps[userinput - 1]["UpdatableBy"] + if options.targets: + targets = [] + target_list = options.targets.split(",") + for target in target_list: + target_url = "/redfish/v1/UpdateService/FirmwareInventory/" + str(target) + "/" + targets.append(target_url) + verified = self.get_target(options.targets) + if not verified: + self.rdmc.ui.error("Provided target was not available, Please provide valid target id\n") + return ReturnCodes.INVALID_TARGET_ERROR + target = targets + return filename, updatableby, target + else: + target = None + del self.comps[userinput - 1] + return filename, updatableby, target + + def minstallsetvalidation(self): + """makeinstallset validation function""" + + try: + _ = self.rdmc.app.current_client + loggedin = True + except: + loggedin = False + + return loggedin + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-f", + "--filename", + dest="filename", + help="Use this flag if you wish to use a different" + " filename than the default one. The default filename is" + " myinstallset.json", + default="myinstallset.json", + ) + customparser.add_argument( + "--targets", + help="If targets value specify a comma separated" "firmwareinventory id only", + metavar="targets_indices", + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/UpdateTaskQueueCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/UpdateTaskQueueCommand.py new file mode 100644 index 0000000..5256a7f --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/UpdateTaskQueueCommand.py @@ -0,0 +1,412 @@ +# ## +# Copyright 2016-2023 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ## + +# -*- coding: utf-8 -*- +"""Update Task Queue Command for rdmc""" + +from argparse import RawDescriptionHelpFormatter +from random import randint + +from redfish.ris.rmc_helper import IdTokenError + +try: + from rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + TaskQueueError, + LOGGER, + ) +except ImportError: + from ilorest.rdmc_helper import ( + IncompatibleiLOVersionError, + InvalidCommandLineErrorOPTS, + NoContentsFoundForOperationError, + ReturnCodes, + TaskQueueError, + LOGGER, + ) + +__subparsers__ = ["create"] + + +class UpdateTaskQueueCommand: + """Main download command class""" + + def __init__(self): + self.ident = { + "name": "taskqueue", + "usage": None, + "description": "Run to add or remove tasks from the task queue. Added tasks are " + "appended to the end of the queue. Note: iLO 5 required.\n" + "Example:\n\ttaskqueue create 30\n\t" + "taskqueue create \n\t" + "taskqueue --cleanqueue\n\t" + "taskqueue --resetqueue\n\t" + "taskqueue\n", + "summary": "Manages the update task queue for iLO.", + "aliases": [], + "auxcommands": [], + } + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + + def run(self, line, help_disp=False): + """Main update task queue worker function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + line.append("-h") + try: + (_, _) = self.rdmc.rdmc_parse_arglist(self, line) + except: + return ReturnCodes.SUCCESS + return ReturnCodes.SUCCESS + try: + ident_subparser = False + for cmnd in __subparsers__: + if cmnd in line: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line) + ident_subparser = True + break + if not ident_subparser: + (options, args) = self.rdmc.rdmc_parse_arglist(self, line, default=True) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.updatetaskqueuevalidation(options) + + if self.rdmc.app.typepath.defs.isgen9: + raise IncompatibleiLOVersionError("iLO Repository commands are only available on iLO 5.") + + if options.command.lower() == "create": + self.createtask(options.keywords, options) + else: + if options.resetqueue: + self.resetqueue(options) + elif options.cleanqueue: + self.cleanqueue() + self.printqueue(options) + + self.cmdbase.logout_routine(self, options) + # Return code + return ReturnCodes.SUCCESS + + def resetqueue(self, options): + """Deletes everything in the update task queue""" + tasks = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/UpdateTaskQueue/") + if not tasks: + self.rdmc.ui.printer("No tasks found.\n") + + self.rdmc.ui.printer("Deleting all update tasks...\n") + + for task in tasks: + self.rdmc.ui.printer("Deleting: %s\n" % task["Name"]) + if "RecoveryPrivilege" in task and task["RecoveryPrivilege"]: + self.rdmc.ui.printer("This task is associated with updating recovery set\n") + if not (options.user and options.password): + raise TaskQueueError("Deleting this task needs " "--user and --password options, delete failed\n") + if "blobstore" in self.rdmc.app.current_client.base_url: + LOGGER.info("Logging out of the session without user and password") + self.rdmc.app.current_client.logout() + LOGGER.info("Logging in with user and password for deleting system recovery set") + self.rdmc.app.current_client._user_pass = (options.user, options.password) + self.rdmc.app.current_client.login(self.rdmc.app.current_client.auth_type) + self.rdmc.app.delete_handler(task["@odata.id"]) + else: + self.rdmc.app.delete_handler(task["@odata.id"]) + else: + self.rdmc.app.delete_handler(task["@odata.id"]) + + def cleanqueue(self): + """Deletes all finished or errored tasks in the update task queue""" + tasks = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/UpdateTaskQueue/") + if not tasks: + self.rdmc.ui.printer("No tasks found.\n") + + self.rdmc.ui.printer("Cleaning update task queue...\n") + + for task in tasks: + if task["State"] == "Complete" or task["State"] == "Exception": + self.rdmc.ui.printer("Deleting %s...\n" % task["Name"]) + self.rdmc.app.delete_handler(task["@odata.id"]) + + def createtask(self, tasks, options): + """Creates a task in the update task queue + + :param tasks: arguments for creating tasks + :type tasks: list. + :param options: command line options + :type options: list. + """ + + tpmflag = None + + path = "/redfish/v1/UpdateService/UpdateTaskQueue/" + comps = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/" "ComponentRepository/") + curr_tasks = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/UpdateTaskQueue/") + for task in tasks: + usedcomp = None + newtask = None + if options.targets: + targets = [] + target_list = options.targets.split(",") + for target in target_list: + target_url = "/redfish/v1/UpdateService/FirmwareInventory/" + str(target) + "/" + targets.append(target_url) + verified = self.verify_targets(options.targets) + if not verified: + self.rdmc.ui.error("Provided target was not available, Please provide valid target id\n") + return ReturnCodes.INVALID_TARGET_ERROR + try: + usedcomp = int(task) + newtask = { + "Name": "Wait-%s %s seconds" % (str(randint(0, 1000000)), str(usedcomp)), + "Command": "Wait", + "WaitTimeSeconds": usedcomp, + "UpdatableBy": ["Bmc"], + } + if options.targets: + newtask["Targets"] = targets + except ValueError: + pass + + if task.lower() == "reboot": + newtask = { + "Name": "Reboot-%s" % str(randint(0, 1000000)), + "Command": "ResetServer", + "UpdatableBy": ["RuntimeAgent"], + } + elif not newtask: + if tpmflag is None: + if options.tover: + tpmflag = True + else: + tpmflag = False + # TODO: Update to monolith check + results = self.rdmc.app.get_handler(self.rdmc.app.typepath.defs.biospath, silent=True) + if results.status == 200: + contents = results.dict if self.rdmc.app.typepath.defs.isgen9 else results.dict["Attributes"] + tpmstate = contents["TpmState"] + if "Enabled" in tpmstate and not tpmflag: + raise IdTokenError("") + + for curr_task in curr_tasks: + if ( + "Filename" in curr_task + and curr_task["Filename"] == task + and curr_task["State"].lower() != "exception" + ): + raise TaskQueueError( + "This file already has a task queue for flashing " + "associated with it. Reset the taskqueue and " + "retry if you need to add this task again." + ) + for comp in comps: + if comp["Filename"] == task: + usedcomp = comp + break + + if not usedcomp: + raise NoContentsFoundForOperationError( + "Component " "referenced is not present on iLO Drive: %s" % task + ) + newtask = { + "Name": "Update-%s %s" + % ( + str(randint(0, 1000000)), + usedcomp["Name"].encode("ascii", "ignore"), + ), + "Command": "ApplyUpdate", + "Filename": usedcomp["Filename"], + "UpdatableBy": usedcomp["UpdatableBy"], + "TPMOverride": tpmflag, + } + if options.targets: + newtask["Targets"] = targets + + self.rdmc.ui.printer('Creating task: "%s"\n' % newtask["Name"]) + self.rdmc.ui.printer('payload: "%s"\n' % newtask) + self.rdmc.app.post_handler(path, newtask) + + def verify_targets(self, target): + target_list = target.split(",") + for target in target_list: + try: + target_url = "/redfish/v1/UpdateService/FirmwareInventory/" + target + dd = self.rdmc.app.get_handler(target_url, service=True, silent=True) + if dd.status == 404: + return False + except: + return False + return True + + def printqueue(self, options): + """Prints the update task queue + + :param options: command line options + :type options: list. + """ + tasks = self.rdmc.app.getcollectionmembers("/redfish/v1/UpdateService/UpdateTaskQueue/") + if not tasks: + self.rdmc.ui.printer("No tasks found.\n") + return + + if not options.json: + self.rdmc.ui.printer("\nCurrent Update Task Queue:\n\n") + + if not options.json: + for task in tasks: + self.rdmc.ui.printer("Task %s:\n" % task["Name"]) + if "Filename" in list(task.keys()): + self.rdmc.ui.printer( + "\tCommand: %s\n\tFilename: %s\n\t" + "State:%s\n" % (task["Command"], task["Filename"], task["State"]) + ) + elif "WaitTimeSeconds" in list(task.keys()): + self.rdmc.ui.printer( + "\tCommand: %s %s seconds\n\tState:%s\n" + % (task["Command"], str(task["WaitTimeSeconds"]), task["State"]) + ) + else: + self.rdmc.ui.printer("\tCommand:%s\n\tState: %s\n" % (task["Command"], task["State"])) + elif options.json: + outjson = dict() + for task in tasks: + outjson[task["Name"]] = dict() + outjson[task["Name"]]["Command"] = task["Command"] + if "Filename" in task: + outjson[task["Name"]]["Filename"] = task["Filename"] + if "WaitTimeSeconds" in task: + outjson[task["Name"]]["WaitTimeSeconds"] = task["WaitTimeSeconds"] + outjson[task["Name"]]["State"] = task["State"] + self.rdmc.ui.print_out_json(outjson) + + def updatetaskqueuevalidation(self, options): + """taskqueue validation function + + :param options: command line options + :type options: list. + """ + self.cmdbase.login_select_validation(self, options) + + @staticmethod + def options_argument_group(parser): + """Define optional arguments group + + :param parser: The parser to add the --addprivs option group to + :type parser: ArgumentParser/OptionParser + """ + group = parser.add_argument_group( + "GLOBAL OPTIONS", + "Options are available for all " "arguments within the scope of this command.", + ) + + group.add_argument( + "--tpmover", + dest="tover", + action="store_true", + help="If set then the TPMOverrideFlag is passed in on the " "associated flash operations", + default=False, + ) + + def definearguments(self, customparser): + """Wrapper function for new command main function + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + subcommand_parser = customparser.add_subparsers(dest="command") + + default_parser = subcommand_parser.add_parser( + "default", + help="Running without any sub-command will return the current task \n" + "queue information on the currently logged in server.", + ) + default_parser.add_argument( + "-r", + "--resetqueue", + action="store_true", + dest="resetqueue", + help="Remove all update tasks in the queue.\n\texample: taskqueue --resetqueue or taskqueue -r", + default=False, + ) + default_parser.add_argument( + "-c", + "--cleanqueue", + action="store_true", + dest="cleanqueue", + help="Clean up all finished or errored tasks left pending.\n\texample: taskqueue " + "--cleanqueue or taskqueue -c", + default=False, + ) + default_parser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + self.cmdbase.add_login_arguments_group(default_parser) + self.options_argument_group(default_parser) + + # create + create_help = "Create a new task queue task." + create_parser = subcommand_parser.add_parser( + "create", + help=create_help, + description=create_help + "\n\n\tCreate a new task for 30 secs:\n\t\ttaskqueue " + "create 30\n\n\tCreate a new reboot task.\n\t\ttaskqueue create reboot" + "\n\n\tCreate a new component task.\n\t\ttaskqueue create compname" + "\n\n\tCreate multiple tasks at once.\n\t\ttaskqueue create 30 " + '"compname compname2 reboot"' + "\n\n\tCreate a new task using targets: \n\t\t taskqueue create compname --targets \n\n\t", + formatter_class=RawDescriptionHelpFormatter, + ) + create_parser.add_argument( + "keywords", + help="Keyword for a task queue item. *Note*: Multiple tasks can be created by " + "using quotations wrapping all tasks, delimited by whitespace.", + metavar="KEYWORD", + type=str, + nargs="+", + default="", + ) + create_parser.add_argument( + "--targets", + help="If targets value specify a comma separated\t" "firmwareinventory id only", + metavar="targets_indices", + ) + + self.cmdbase.add_login_arguments_group(create_parser) + self.options_argument_group(create_parser) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/UploadComponentCommand.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/UploadComponentCommand.py new file mode 100644 index 0000000..3417ee0 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/UploadComponentCommand.py @@ -0,0 +1,857 @@ +# ## +# Copyright 2016 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ## + +# -*- coding: utf-8 -*- +"""Upload Component Command for rdmc""" + +import os +import json +import sys +import time +import shutil +from random import choice +from string import ascii_lowercase +import ctypes +from six.moves import input +from ctypes import ( + c_char_p, + c_void_p, + byref, + c_ubyte, + c_int, + c_uint32, + POINTER, + create_string_buffer, +) +from redfish.hpilo.rishpilo import ( + HpIloInitialError, + HpIloChifAccessDeniedError, + HpIloNoChifDriverError, +) +from redfish.hpilo.rishpilo import BlobReturnCodes +from redfish.hpilo.risblobstore2 import BlobStore2 + +try: + from rdmc_helper import ( + UI, + LOGGER, + ReturnCodes, + InvalidCommandLineErrorOPTS, + UploadError, + IncompatibleiLOVersionError, + TimeOutError, + InvalidFileInputError, + ) +except ImportError: + from ilorest.rdmc_helper import ( + UI, + LOGGER, + ReturnCodes, + InvalidCommandLineErrorOPTS, + UploadError, + IncompatibleiLOVersionError, + TimeOutError, + InvalidFileInputError, + ) + + +def human_readable_time(seconds): + """Returns human readable time + + :param seconds: Amount of seconds to parse. + :type seconds: string. + """ + seconds = int(seconds) + hours = seconds / 3600 + seconds = seconds % 3600 + minutes = seconds / 60 + seconds = seconds % 60 + + return "{:02.0f} hour(s) {:02.0f} minute(s) {:02.0f} second(s) ".format(hours, minutes, seconds) + + +class UploadComponentCommand: + """Constructor""" + + def __init__(self): + self.ident = { + "name": "uploadcomp", + "usage": None, + "description": "Run to upload the component on " + "to iLO Repository\n\n\tUpload component to the iLO " + "repository.\n\texample: uploadcomp --component " + "--compsig \n\n\tFlash the component " + "instead of add to the iLO repository.\n\texample: " + "uploadcomp --component --update_target " + "--update_repository", + "summary": "Upload components/binary to the iLO Repository.", + "aliases": [], + "auxcommands": ["FwpkgCommand"], + } + + self.cmdbase = None + self.rdmc = None + self.auxcommands = dict() + self.status_content = {} + + def run(self, line, help_disp=False): + """Wrapper function for upload command main function + + :param line: string of arguments passed in + :type line: str. + :param help_disp: display help flag + :type line: bool. + """ + if help_disp: + self.parser.print_help() + return ReturnCodes.SUCCESS + try: + (options, _) = self.rdmc.rdmc_parse_arglist(self, line) + except (InvalidCommandLineErrorOPTS, SystemExit): + if ("-h" in line) or ("--help" in line): + return ReturnCodes.SUCCESS + else: + raise InvalidCommandLineErrorOPTS("") + + self.uploadcommandvalidation(options) + fwpkg = False + if ( + options.component.endswith(".fwpkg") + or options.component.endswith(".fup") + or options.component.endswith(".hpb") + or options.component.endswith(".HPb") + or options.component.endswith(".pup") + ): + fwpkg = True + command_name = self.cmdbase.name + comp, loc, ctype, pldmfw = self.auxcommands["flashfwpkg"].preparefwpkg( + self, options.component, command_name + ) + # if pldm firmware + if pldmfw: + path = self.rdmc.app.typepath.defs.systempath + results = self.rdmc.app.get_handler(path, service=True, silent=True).dict + device_discovery_status = results["Oem"]["Hpe"]["DeviceDiscoveryComplete"]["DeviceDiscovery"] + LOGGER.info("Device Discovery Status is {}".format(device_discovery_status)) + # check for device discovery + # if ("DeviceDiscoveryComplete" not in device_discovery_status): + # raise DeviceDiscoveryInProgress( + # "Device Discovery in progress...Please retry flashing firmware after 10 minutes" + # ) + if ctype in ["C", "BC"]: + options.component = comp[0] + # else: + # options.component = os.path.join(loc, comp[0]) + + if self.rdmc.app.typepath.defs.isgen9: + raise IncompatibleiLOVersionError("iLO Repository commands are only available on iLO 5.") + + filestoupload = self._check_and_split_files(options) + validation = self.componentvalidation(options, filestoupload) + if validation: + start_time = time.time() + ret = ReturnCodes.FAILED_TO_UPLOAD_COMPONENT + + # ret = self.uploadfunction(filestoupload, options) + if "blobstore" in self.rdmc.app.current_client.base_url: + ret = self.uploadlocally(filestoupload, options) + else: + ret = self.uploadfunction(filestoupload, options) + + if ret == ReturnCodes.SUCCESS and not options.update_target: + + self.rdmc.ui.printer("Uploading took %s\n" % human_readable_time(time.time() - start_time)) + + if len(filestoupload) > 1: + path, _ = os.path.split((filestoupload[0])[1]) + shutil.rmtree(path) + elif fwpkg: + if os.path.exists(loc): + shutil.rmtree(loc) + elif not validation and options.forceupload: + self.rdmc.ui.printer( + "Component " + filestoupload[0][0] + " is already present in repository ,Hence skipping the re upload\n" + ) + ret = ReturnCodes.SUCCESS + else: + ret = ReturnCodes.FAILED_TO_UPLOAD_COMPONENT + + self.cmdbase.logout_routine(self, options) + # Return code + return ret + + def componentvalidation(self, options, filelist): + """Check for duplicate component in repository + + :param options: command line options + :type options: list. + :param filelist: list of files to be uploaded (multiple files will be + generated for items over 32K in size) + :type filelist: list of strings + """ + validation = True + prevfile = None + + path = "/redfish/v1/UpdateService/ComponentRepository/?$expand=." + results = self.rdmc.app.get_handler(path, service=True, silent=True) + + results = results.dict + + if "Members" in results and results["Members"]: + for comp in results["Members"]: + for filehndl in filelist: + if ( + comp["Filename"].upper() == str(filehndl[0]).upper() + and not options.forceupload + and prevfile != filehndl[0].upper() + ): + ans = input( + "A component with the same name (%s) has " + "been found. Would you like to upload and " + "overwrite this file? (y/n)" % comp["Filename"] + ) + + while ans.lower() != "n" and ans.lower() != "y": + ans = input("Please enter valid option (y/n)") + + if ans.lower() == "n": + self.rdmc.ui.printer( + "Error: Upload stopped by user due to filename conflict." + " If you would like to bypass this check include the" + ' "--forceupload" flag.\n' + ) + validation = False + break + elif ( + comp["Filename"].upper() == str(filehndl[0]).upper() + and options.forceupload + and prevfile != filehndl[0].upper() + ): + if comp["Locked"]: + options.update_repository = False + else: + options.update_repository = True + if not options.update_target and comp["Locked"]: + validation = False + break + if options.update_repository: + if ( + comp["Filename"].upper() == str(filehndl[0]).upper() + and prevfile != filehndl[0].upper() + and comp["Locked"] + ): + self.rdmc.ui.printer( + "Error: Component is currently locked by a taskqueue task or " + "installset. Remove any installsets or taskqueue tasks " + "containing the file and try again OR use taskqueue command " + "to put the component to installation queue\n" + ) + validation = False + break + elif ( + comp["Filename"].upper() == str(filehndl[0]).upper() + and prevfile != filehndl[0].upper() + and comp["Locked"] + and options.forceupload + ): + validation = False + break + prevfile = str(comp["Filename"].upper()) + return validation + + def _check_and_split_files(self, options): + """Check and split the file to upload on to iLO Repository + + :param options: command line options + :type options: list. + """ + + def check_file_rw(filename, rw): + try: + fd = open(filename, rw) + fd.close() + except IOError: + raise InvalidFileInputError("The file '%s' could not be opened for upload" % filename) + + maxcompsize = 32 * 1024 * 1024 + filelist = [] + + # Lets get the component filename + _, filename = os.path.split(options.component) + check_file_rw(os.path.normpath(options.component), "r") + self.rdmc.ui.printer("Successfully checked '%s'.\n" % filename) + size = os.path.getsize(options.component) + + # This is to upload the binary directly to flash scenario + if not options.componentsig: + if not self.findcompsig(filename): + return [(filename, options.component, options.componentsig, 0)] + + if size > maxcompsize: + self.rdmc.ui.printer("Component is more than 32MB in size.\n") + self.rdmc.ui.printer("Component size = %s\n" % str(size)) + section = 1 + + sigpath, _ = os.path.split(options.componentsig) + check_file_rw(os.path.normpath(options.componentsig), "r") + filebasename = filename[: filename.rfind(".")] + tempfoldername = "bmn" + "".join(choice(ascii_lowercase) for i in range(12)) + + if self.rdmc.app.cache: + tempdir = os.path.join(self.rdmc.app.cachedir, tempfoldername) + else: + tempdir = os.path.join(sys.executable, tempfoldername) + + self.rdmc.ui.printer("Spliting component. Temporary " "cache directory at %s\n" % tempdir) + + if not os.path.exists(tempdir): + os.makedirs(tempdir) + + with open(options.component, "rb") as component: + while True: + data = component.read(maxcompsize) + if len(data) != 0: + sectionfilename = filebasename + "_part" + str(section) + sectionfilepath = os.path.join(tempdir, sectionfilename) + + sectioncompsigpath = os.path.join(sigpath, sectionfilename + ".compsig") + sigfullpath = os.path.join(tempdir, sigpath) + if not os.path.exists(sigfullpath): + os.makedirs(sigfullpath) + writefile = open(sectionfilepath, "wb") + writefile.write(data) + writefile.close() + + item = ( + filename, + sectionfilepath, + sectioncompsigpath, + section - 1, + ) + + filelist.append(item) + section += 1 + + if len(data) != maxcompsize: + break + + return filelist + else: + return [(filename, options.component, options.componentsig, 0)] + + def uploadfunction(self, filelist, options=None): + """Main upload command worker function + + :param filelist: List of files to upload. + :type filelist: list. + :param options: command line options + :type options: list. + """ + + # returns a tuple with the state and the result dict + state, result = self.get_update_service_state() + + if state != "COMPLETED" and state != "COMPLETE" and state != "ERROR" and state != "IDLE": + self.rdmc.ui.error("iLO UpdateService is busy. Please try again.") + + return ReturnCodes.UPDATE_SERVICE_BUSY + + sessionkey = self.rdmc.app.current_client.session_key + + etag = "" + hpe = result["Oem"]["Hpe"] + urltosend = "/cgi-bin/uploadFile" + + if "PushUpdateUri" in hpe: + urltosend = hpe["PushUpdateUri"] + elif "HttpPushUri" in result: + urltosend = result["HttpPushUri"] + else: + return ReturnCodes.FAILED_TO_UPLOAD_COMPONENT + + for item in filelist: + ilo_upload_filename = item[0] + + ilo_upload_compsig_filename = ilo_upload_filename[: ilo_upload_filename.rfind(".")] + ".compsig" + + componentpath = item[1] + compsigpath = item[2] + + _, filename = os.path.split(componentpath) + + if not etag: + etag = "sum" + filename.replace(".", "") + etag = etag.replace("-", "") + etag = etag.replace("_", "") + + section_num = item[3] + if isinstance(sessionkey, bytes): + sessionkey = sessionkey.decode("utf-8") + + parameters = { + "UpdateRepository": options.update_repository, + "UpdateTarget": options.update_target, + "ETag": etag, + "Section": section_num, + "UpdateRecoverySet": options.update_srs, + "TPMOverride": options.tover, + } + + data = [("sessionKey", sessionkey), ("parameters", json.dumps(parameters))] + + if not compsigpath: + compsigpath = self.findcompsig(componentpath) + if compsigpath: + with open(compsigpath, "rb") as fle: + output = fle.read() + data.append( + ( + "compsig", + ( + ilo_upload_compsig_filename, + output, + "application/octet-stream", + ), + ) + ) + output = None + + with open(componentpath, "rb") as fle: + output = fle.read() + data.append(("file", (ilo_upload_filename, output, "application/octet-stream"))) + + if options.update_repository: + self.rdmc.ui.printer("Uploading component " + filename + ".\n") + if options.update_target: + self.rdmc.ui.printer("Flashing component " + filename + ".\n") + res = self.rdmc.app.post_handler( + str(urltosend), + data, + headers={"Cookie": "sessionKey=" + sessionkey}, + silent=False, + service=False, + ) + + if res.status == 400 and res.dict is None: + self.rdmc.ui.error( + "Component " + filename + " was not uploaded , iLO returned 400 error code. " + "Check if the user has all privileges to perform the operation.\n" + ) + return ReturnCodes.FAILED_TO_UPLOAD_COMPONENT + + if res.status != 200: + return ReturnCodes.FAILED_TO_UPLOAD_COMPONENT + else: + if options.update_repository: + self.rdmc.ui.printer("Component " + filename + " uploading successfully.\n") + if options.update_target: + self.rdmc.ui.printer("Component " + filename + " flashing successfully.\n") + + if not self.wait_for_state_change(): + if options.response: + self.rdmc.ui.printer("UpdateService Status:") + UI().print_out_json(self.status_content) + LOGGER.info("\nUpdate Service Status: {}".format(self.status_content)) + # Failed to upload the component. + raise UploadError("Error while processing the component.") + + if options.response: + self.rdmc.ui.printer("UpdateService Status:") + UI().print_out_json(self.status_content) + LOGGER.info("\nUpdate Service Status: {}".format(self.status_content)) + + return ReturnCodes.SUCCESS + + def get_update_service_status(self, result): + if "Result" in result["Oem"]["Hpe"]: + res = "MessageId:" + result["Oem"]["Hpe"]["Result"]["MessageId"] + complete_res = "{" + res + "}" + self.status_content["Result"] = complete_res + self.status_content["State"] = (result["Oem"]["Hpe"]["State"]).upper() + + def wait_for_state_change(self, wait_time=4800): + """Wait for the iLO UpdateService to a move to terminal state. + :param options: command line options + :type options: list. + :param wait_time: time to wait on upload + :type wait_time: int. + """ + total_time = 0 + result = dict() + spinner = ["|", "/", "-", "\\"] + state = "" + self.rdmc.ui.printer("Waiting for iLO UpdateService to finish processing the component\n") + + while total_time < wait_time: + state, result = self.get_update_service_state() + + if state == "ERROR": + self.get_update_service_status(result) + return False + elif state != "COMPLETED" and state != "IDLE" and state != "COMPLETE": + # Lets try again after 8 seconds + count = 0 + + # fancy spinner + while count <= 32: + self.rdmc.ui.printer("Updating: %s\r" % spinner[count % 4]) + time.sleep(0.25) + count += 1 + + total_time += 8 + else: + self.get_update_service_status(result) + break + + if total_time > wait_time: + raise TimeOutError("UpdateService in " + state + " state for " + str(wait_time) + "s") + + return True + + def get_update_service_state(self): + """Get the current UpdateService state + + :param options: command line options + :type options: list. + """ + path = "/redfish/v1/UpdateService" + results = self.rdmc.app.get_handler(path, service=True, silent=True) + + if results and results.status == 200 and results.dict: + output = results.dict + + if self.rdmc.opts.verbose: + self.rdmc.ui.printer("UpdateService state = " + (output["Oem"]["Hpe"]["State"]).upper() + "\n") + + return (output["Oem"]["Hpe"]["State"]).upper(), results.dict + else: + return "UNKNOWN", {} + + def findcompsig(self, comppath): + """Try to find compsig if not included + :param comppath: Path of file to find compsig for. + :type comppath: str. + """ + compsig = "" + + cutpath = comppath.split(os.sep) + _file = cutpath[-1] + _file_rev = _file[::-1] + filename = _file[: ((_file_rev.find(".")) * -1) - 1] + + try: + location = os.sep.join(cutpath[:-1]) + except: + location = os.curdir + + if not location: + location = os.curdir + + files = [f for f in os.listdir(location) if os.path.isfile(os.path.join(location, f))] + + for filehndl in files: + if filehndl.startswith(filename) and filehndl.endswith(".compsig"): + self.rdmc.ui.printer("Compsig found for file.\n") + + if location != ".": + compsig = location + os.sep + filehndl + else: + compsig = filehndl + + break + + return compsig + + def uploadlocally(self, filelist, options=None): + """Upload component locally + + :param filelist: List of files to upload. + :type filelist: list. + :param options: command line options + :type options: list. + """ + new_chif_needed = False + upload_failed = False + if not options.update_target: + options.upload_srs = False + + if options.update_srs: + if options.user and options.password: + new_chif_needed = True + else: + self.rdmc.ui.error( + "ERROR: --update_srs option needs to be passed with " + "--username and --password options, upload failed\n" + ) + return ReturnCodes.FAILED_TO_UPLOAD_COMPONENT + try: + dll = self.rdmc.app.current_client.connection._conn.channel.dll + multiupload = False + + if new_chif_needed: + # Backup old chif channel + dll_bk = dll + dll = None + user = options.user + passwrd = options.password + dll, fhandle = self.create_new_chif_for_upload(user, passwrd) + self.rdmc.app.current_client.connection._conn.channel.dll = dll + + dll.uploadComponent.argtypes = [c_char_p, c_char_p, c_char_p, c_uint32] + dll.uploadComponent.restype = c_int + + for item in filelist: + ilo_upload_filename = item[0] + componentpath = item[1] + compsigpath = item[2] + + if not compsigpath: + compsigpath = self.findcompsig(componentpath) + + _, filename = os.path.split(componentpath) + + # 0x00000001 // FUM_WRITE_NAND + # 0x00000002 // FUM_USE_NAND + # 0x00000004 // FUM_NO_FLASH + # 0x00000008 // FUM_FORCE + # 0x00000010 // FUM_SIDECAR + # 0x00000020 // FUM_APPEND + # 0x40 // FUM_UPDATE_RECOVERY + # 0x00000080 //FUM_RECOVERY + # 0x00000100 // FUM_TASK + # 0x00000200 //FUM_RECO_PRIV + + if not compsigpath and options.update_target: + if not options.update_repository: + # Just update the firmware + if options.update_srs: + dispatchflag = ctypes.c_uint32(0x00000000 | 0x40) + else: + dispatchflag = ctypes.c_uint32(0x00000000) + else: + # Update the firmware and Upload to Repository + if options.update_srs: + dispatchflag = ctypes.c_uint32(0x00000000 | 0x00000001 | 0x40) + else: + dispatchflag = ctypes.c_uint32(0x00000000 | 0x00000001) + elif not compsigpath and not options.update_target and options.update_repository: + # uploading a secuare flash binary image onto the NAND + if options.update_srs: + dispatchflag = ctypes.c_uint32(0x00000001 | 0x00000004 | 0x40) + else: + dispatchflag = ctypes.c_uint32(0x00000001 | 0x00000004) + else: + # Uploading a component with a side car file. + if options.update_srs: + dispatchflag = ctypes.c_uint32(0x00000001 | 0x00000004 | 0x00000010 | 0x40) + else: + dispatchflag = ctypes.c_uint32(0x00000001 | 0x00000004 | 0x00000010) + + if multiupload: + # For second upload to append if the component is > 32MB in size + if options.update_srs: + dispatchflag = ctypes.c_uint32(0x00000001 | 0x00000004 | 0x00000010 | 0x00000020 | 0x40) + else: + dispatchflag = ctypes.c_uint32(0x00000001 | 0x00000004 | 0x00000010 | 0x00000020) + + if options.update_repository: + self.rdmc.ui.printer("Uploading component " + filename + "\n") + if options.update_target: + self.rdmc.ui.printer("Flashing component " + filename + "\n") + + ret = dll.uploadComponent( + ctypes.create_string_buffer(compsigpath.encode("utf-8")), + ctypes.create_string_buffer(componentpath.encode("utf-8")), + ctypes.create_string_buffer(ilo_upload_filename.encode("utf-8")), + dispatchflag, + ) + + upload_failed = False + if ret != 0: + LOGGER.error("Component {} upload failed".format(filename)) + self.rdmc.ui.error("Component " + filename + " upload failed.\n") + upload_failed = True + else: + LOGGER.info("Component {} uploaded successfully".format(filename)) + if options.update_repository: + self.rdmc.ui.printer("Component " + filename + " uploaded successfully.\n") + if options.update_target: + self.rdmc.ui.printer("Component " + filename + " flashed successfully.\n") + self.rdmc.ui.printer("[200] The operation completed successfully.\n") + if not options.update_target: + if not self.wait_for_state_change(): + if options.response: + self.rdmc.ui.printer("UpdateService Status:") + UI().print_out_json(self.status_content) + LOGGER.info("\nUpdate Service Status: {}".format(self.status_content)) + # Failed to upload the component. + raise UploadError("Error while processing the component.") + + multiupload = True + + if new_chif_needed: + dll.ChifTerminate() + dll.ChifClose(fhandle) + fhandle = None + BlobStore2.unloadchifhandle(dll) + # Restore old chif channel + dll = dll_bk + self.rdmc.app.current_client.connection._conn.channel.dll = dll_bk + LOGGER.info("Restored the old chif channel\n") + + except Exception as excep: + LOGGER.error("Exception occured, {}".format(excep)) + raise excep + + if options.response: + path = "/redfish/v1/UpdateService" + results = self.rdmc.app.get_handler(path, service=True, silent=True) + res = results.dict + self.get_update_service_status(res) + self.rdmc.ui.printer("UpdateService Status:") + UI().print_out_json(self.status_content) + LOGGER.info("\nUpdate Service Status: {}".format(self.status_content)) + + if upload_failed: + return ReturnCodes.FAILED_TO_UPLOAD_COMPONENT + else: + return ReturnCodes.SUCCESS + + def create_new_chif_for_upload(self, user, passwrd): + dll = BlobStore2.gethprestchifhandle() + dll.ChifInitialize(None) + # Enable Security Flag in Chif + dll.ChifEnableSecurity() + fhandle = c_void_p() + dll.ChifCreate.argtypes = [c_void_p] + dll.ChifCreate.restype = c_uint32 + status = dll.ChifCreate(byref(fhandle)) + if status != BlobReturnCodes.SUCCESS: + if status == BlobReturnCodes.CHIFERR_NoDriver: + raise HpIloNoChifDriverError( + "Error %s - No Chif Driver occurred while trying to create a channel." % status + ) + else: + raise HpIloInitialError("Error %s occurred while trying to create a channel." % status) + dll.initiate_credentials.argtypes = [c_char_p, c_char_p] + dll.initiate_credentials.restype = POINTER(c_ubyte) + usernew = create_string_buffer(user.encode("utf-8")) + passnew = create_string_buffer(passwrd.encode("utf-8")) + dll.initiate_credentials(usernew, passnew) + status = dll.ChifPing(fhandle) + if status != BlobReturnCodes.SUCCESS: + raise HpIloInitialError("Error %s occurred while trying to create a channel." % status) + dll.ChifSetRecvTimeout(fhandle, 60000) + credreturn = dll.ChifVerifyCredentials() + if not credreturn == BlobReturnCodes.SUCCESS: + if credreturn == BlobReturnCodes.CHIFERR_AccessDenied: + raise HpIloChifAccessDeniedError( + "Error %s - Chif Access Denied occurred while trying " + "to open a channel to iLO. Verify iLO Credetials passed." % credreturn + ) + else: + raise HpIloInitialError("Error %s occurred while trying " "to open a channel to iLO" % credreturn) + return dll, fhandle + + def uploadcommandvalidation(self, options): + """upload command method validation function + + :param options: command line options + :type options: list. + """ + self.rdmc.login_select_validation(self, options) + + def definearguments(self, customparser): + """Define command line argument for the upload command + + :param customparser: command line input + :type customparser: parser. + """ + if not customparser: + return + + self.cmdbase.add_login_arguments_group(customparser) + + customparser.add_argument( + "-j", + "--json", + dest="json", + action="store_true", + help="Optionally include this flag if you wish to change the" + " displayed output to JSON format. Preserving the JSON data" + " structure makes the information easier to parse.", + default=False, + ) + customparser.add_argument( + "--response", + dest="response", + action="store_true", + help="Use this flag to return the iLO response body.", + default=False, + ) + customparser.add_argument( + "--component", + dest="component", + help="""Component or binary file path to upload to the update service.""", + default="", + required=True, + ) + customparser.add_argument( + "--compsig", + dest="componentsig", + help="Component signature file path needed by iLO to authenticate the " + "component file. If not provided will try to find the " + "signature file from component file path.", + default="", + ) + customparser.add_argument( + "--forceupload", + dest="forceupload", + action="store_true", + help="Add this flag to force upload components with the same name already on the repository.", + default=False, + ) + customparser.add_argument( + "--update_repository", + dest="update_repository", + action="store_false", + help="Add this flag to skip uploading component/binary to the iLO Repository. If this " + "flag is included with --update_srs, it will be ignored. Adding component to the " + "repository is required to update the system reovery set.", + default=True, + ) + customparser.add_argument( + "--update_target", + dest="update_target", + action="store_true", + help="Add this flag if you wish to flash the component/binary.", + default=False, + ) + customparser.add_argument( + "--update_srs", + dest="update_srs", + action="store_true", + help="Add this flag to update the System Recovery Set with the uploaded component. " + "NOTE: This requires an account login with the system recovery set privilege.", + default=False, + ) + customparser.add_argument( + "--tpmover", + dest="tover", + action="store_true", + help="If set then the TPMOverrideFlag is passed in on the associated flash operations", + default=False, + ) diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__init__.py b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/DeleteComponentCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/DeleteComponentCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b96c41e3c55fee0e3dea8a0020e54de18023d633 GIT binary patch literal 4324 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/DownloadComponentCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/DownloadComponentCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..824fbff9715c2a9c61fa3f476085ccedaa5ea191 GIT binary patch literal 6176 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/FwpkgCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/FwpkgCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eb1392fa15351271bd07adf86fe709fdbc5d0574 GIT binary patch literal 18889 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�VR|mHK|4!M4EA=*Wz?Y$$P~wwa zUA4E}Hdg1YlSWiQylIWvog_($q-xtoOo^J`T)e&zGsB{NgF>bVSd-@k{Y4wON{QLG zE6A~R>;@#4^zBL~i^%e^ow8TORRW$kS!hB!|1k~`8A>8d!GD4md91nFS?Msq@8K;0ZiF{m#>K;yB~C(av5^^zv-^wWkg$t(+qwKXfjvpp_PT8-!pZ!$EZl-DhkbY zc9zWDPXMudtyEJ)3T!XWRXC&KNDPoEPC6TKSPFQrj`GK`b zEFyK>%D!V|vtPtFJH3DvPtV)a6mOqCEvotyZM3{I4H_fac^>It{`76x=YsSJ42>KL z+N1U5GXS|mV+N;dH>+5#nEXRc+Lv_@ulh1}M#oP}qMN1XqI1`o-g^Nz9V8ll$Q|DV z1^SDE8wluD_I6~_@m{`i^%CSLU2K$TI6im`5Rot>?aN=|5t z`)@n^2eiD3@C!>VhggWag;Z1SY*yVij5+wJ$fOfQMFVXyk{B66paLAY<%$Cuk}UK} z90Xm&@k(P5dt`w*JL?D=f_G@ne|lezHpHOmrii8!JvAXLQSaiG$Tlh3R~E0^ue^Nb zEd0|#xt;a=Z6uhAQBqxwSG~onaG*DBVR+bE>($D-NTrwl?ly!bcs7!5a7D3fz=imL zVnKcu(CH+}oZ;W2E&cI_*%EF8NfVHZJyhFcm%qc_$OB&tva_>(i=6bF{}rw6 z`ju6I?>I$ylYOS!Wg!y#vWpYE1}k(cRcsu#0QllMRNnZXO1xk{Qfs6aG|uS3UGVSI zRE^=Opm@lHtu7i3LlbGiv~W7%IGF`v6gC7g-PpU+9i5n%A@2gaZl;Pl8{bWl2#SsTqAl$JIU{W7k&~c9%la70mDWq5*sG(rc-cY*I zKNwA@iBO%09$G_}%K6{pyoJgD?}^C6oq}JWBrOckzswphtsyJ76&0unskc(EL&`F} z%asI$oHGY%N z=qU={hyYH?c%+-6HEaB8VkEEiwQ0t0^h|H081X-Pwp*ih$Euoc^jdl_m$mEkoG+C&+U0uO zk|~v#TPc^_na`V?`p%5=f5DH)R^va!Q)J?L<@FN= z%KWyR$k-=*0w*J1j7W$Vo&}L!FMNkGqlPS8nU9vc0*1rm|Bc%p{|`~I9}+EKuU$mu gIeB=m0l^e+5`{iS0l+*t61CH6-Z~A3;`qq_0~$fy+yDRo literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/ListComponentCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/ListComponentCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cb2e24f088df0813a6947a631cd87f44b3deb33b GIT binary patch literal 3597 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 PO)Z+&RPCEwZdU&v<|$?0 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/MakeInstallSetCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/MakeInstallSetCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c0fc2d723f71b8ac207b7ca5dc357df53b8ba9d8 GIT binary patch literal 8823 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/UpdateTaskQueueCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/UpdateTaskQueueCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e250b48579012e434786f8b905c67ceeaaf3408e GIT binary patch literal 10707 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 NqWLUES=M;we*xG(+S>pC literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/UploadComponentCommand.cpython-310.pyc b/venv/lib/python3.10/site-packages/ilorest/extensions/iLO_REPOSITORY_COMMANDS/__pycache__/UploadComponentCommand.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..26dfbbe2904939aec6b2f5081255fe760eebff55 GIT binary patch literal 19657 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�&uANF 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 a*DI*J#bJ}1pHiBWY6o&sF%ytrVE_PuiZ_q| literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/ilorest/logging_config_path.py b/venv/lib/python3.10/site-packages/ilorest/logging_config_path.py new file mode 100644 index 0000000..b419edb --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/logging_config_path.py @@ -0,0 +1,27 @@ +"""Helper to determine logging_config.json path for different platforms. + +""" + +import os + + +def get_logging_config_path(): + r"""Return path for logging_config.json. + + Iterates through a list of different platform paths and returns the first one where + the directory exists and logging_config.json is present. + Platform paths: C:\Program Files\Hewlett Packard Enterprise\RESTful Interface Tool, + /opt/ilorest, /etc/ilorest, C:\Python313\Lib\site-packages\ilorest. + Falls back to the current working directory if none are found. + """ + platform_paths = [ + r"C:\Program Files\Hewlett Packard Enterprise\RESTful Interface Tool", + "/opt/ilorest", + "/etc/ilorest", + r"C:\Python313\Lib\site-packages\ilorest", + ] + for path in platform_paths: + if os.path.isdir(path) and os.path.isfile(os.path.join(path, "logging_config.json")): + return os.path.join(path, "logging_config.json") + # Fallback to current working directory + return os.path.join(os.getcwd(), "logging_config.json") diff --git a/venv/lib/python3.10/site-packages/ilorest/rdmc.py b/venv/lib/python3.10/site-packages/ilorest/rdmc.py new file mode 100644 index 0000000..cc09f20 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/rdmc.py @@ -0,0 +1,1295 @@ +### +# Copyright 2016-2025 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +""" +This is the main module for Redfish Utility which handles all of the CLI and UI interfaces +""" + +# ---------Imports--------- +# -*- coding: utf-8 -*- + +import collections +import copy +import errno +import glob +import os +import shlex +import sys +import traceback +import warnings +import importlib +import ctypes +from argparse import ArgumentParser, RawTextHelpFormatter +from builtins import open, str, super + +import six +from prompt_toolkit import PromptSession +from prompt_toolkit.auto_suggest import AutoSuggestFromHistory +from prompt_toolkit.formatted_text import HTML +from prompt_toolkit.shortcuts import CompleteStyle +from six.moves import input + +import redfish.hpilo +import redfish.rest.v1 +import redfish.ris + + +try: + import cliutils + import versioning + import extensions + from config.rdmc_config import RdmcConfig + from rdmc_helper import HARDCODEDLIST + from rdmc_base_classes import RdmcCommandBase, RdmcOptionParser + from security_masking import SecurityMasker +except ModuleNotFoundError: + from ilorest import cliutils + from ilorest import versioning + from ilorest import extensions + from ilorest.config.rdmc_config import RdmcConfig + from ilorest.rdmc_helper import HARDCODEDLIST + from ilorest.rdmc_base_classes import RdmcCommandBase, RdmcOptionParser + from ilorest.security_masking import SecurityMasker + +try: + from rdmc_helper import ( + LOGGER, + UI, + setup_logging_from_json, + AlreadyCloudConnectedError, + BirthcertParseError, + BootOrderMissingEntriesError, + CloudConnectFailedError, + CloudConnectTimeoutError, + CommandNotEnabledError, + ConfigurationFileError, + DeviceDiscoveryInProgress, + DownloadError, + Encryption, + FailureDuringCommitError, + FirmwareUpdateError, + IloLicenseError, + IncompatableServerTypeError, + IncompatibleiLOVersionError, + InfoMissingEntriesError, + InvalidCListFileError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + InvalidFileFormattingError, + InvalidFileInputError, + InvalidKeyError, + InvalidMSCfileInputError, + InvalidOrNothingChangedSettingsError, + InvalidPasswordLengthError, + MultipleServerConfigError, + NicMissingOrConfigurationError, + NoChangesFoundOrMadeError, + NoContentsFoundForOperationError, + NoCurrentSessionEstablished, + NoDifferencesFoundError, + PartitionMoutingError, + PathUnavailableError, + ProxyConfigFailedError, + RdmcError, + ResourceExists, + ReturnCodes, + StandardBlobErrorHandler, + TabAndHistoryCompletionClass, + TaskQueueError, + TfaEnablePreRequisiteError, + TimeOutError, + UnableToDecodeError, + UnabletoFindDriveError, + UploadError, + UsernamePasswordRequiredError, + iLORisCorruptionError, + ResourceNotReadyError, + InstallsetError, + InvalidSmartArrayConfigurationError, + VnicExistsError, + GenerateAndSaveAccountError, + NoAppAccountError, + RemoveAccountError, + AppAccountExistsError, + ReactivateAppAccountTokenError, + InactiveAppAccountTokenError, + VnicLoginError, + SavinginTPMError, + SavinginiLOError, + GenBeforeLoginError, + AppIdListError, + FlashUnsupportedByIloError, + ) +except ModuleNotFoundError: + from ilorest.rdmc_helper import ( + ReturnCodes, + RdmcError, + setup_logging_from_json, + ConfigurationFileError, + CommandNotEnabledError, + InvalidCommandLineError, + InvalidCommandLineErrorOPTS, + UI, + LOGGER, + InvalidFileFormattingError, + NoChangesFoundOrMadeError, + InvalidFileInputError, + NoContentsFoundForOperationError, + InfoMissingEntriesError, + MultipleServerConfigError, + InvalidOrNothingChangedSettingsError, + NoDifferencesFoundError, + InvalidMSCfileInputError, + InvalidPasswordLengthError, + FirmwareUpdateError, + DeviceDiscoveryInProgress, + BootOrderMissingEntriesError, + NicMissingOrConfigurationError, + StandardBlobErrorHandler, + NoCurrentSessionEstablished, + InvalidCListFileError, + FailureDuringCommitError, + IncompatibleiLOVersionError, + PartitionMoutingError, + TimeOutError, + DownloadError, + UploadError, + BirthcertParseError, + ResourceExists, + IncompatableServerTypeError, + IloLicenseError, + InvalidKeyError, + UnableToDecodeError, + UnabletoFindDriveError, + Encryption, + PathUnavailableError, + TaskQueueError, + UsernamePasswordRequiredError, + TabAndHistoryCompletionClass, + iLORisCorruptionError, + TfaEnablePreRequisiteError, + CloudConnectTimeoutError, + CloudConnectFailedError, + ProxyConfigFailedError, + AlreadyCloudConnectedError, + ResourceNotReadyError, + InstallsetError, + InvalidSmartArrayConfigurationError, + VnicExistsError, + GenerateAndSaveAccountError, + NoAppAccountError, + RemoveAccountError, + AppAccountExistsError, + ReactivateAppAccountTokenError, + InactiveAppAccountTokenError, + VnicLoginError, + SavinginTPMError, + SavinginiLOError, + GenBeforeLoginError, + AppIdListError, + FlashUnsupportedByIloError, + ) + +warnings.filterwarnings("ignore", category=DeprecationWarning) + +if os.name != "nt": + try: + import setproctitle + except ImportError: + setproctitle = None + +# always flush stdout and stderr + +try: + CLI = cliutils.CLI() +except cliutils.ResourceAllocationError: + RdmcError("Unable to allocate more resources.") + RdmcError("ILOREST return code: %s\n" % ReturnCodes.RESOURCE_ALLOCATION_ISSUES_ERROR) + sys.exit(ReturnCodes.RESOURCE_ALLOCATION_ISSUES_ERROR) + +try: + # enable fips mode if our special functions are available in _ssl and OS is + # in FIPS mode + FIPSSTR = "" + if Encryption.check_fips_mode_os(): + LOGGER.info("FIPS mode is enabled in OS!") + # if Encryption.check_fips_mode_os() and not Encryption.check_fips_mode_ssl(): + # ssl.FIPS_mode_set(int(1)) + # if ssl.FIPS_mode(): + # FIPSSTR = "FIPS mode enabled using openssl version %s.\n" % ssl.OPENSSL_VERSION + # LOGGER.info("FIPS mode enabled!") + # else: + # LOGGER.info("FIPS mode can not be enabled!") +except AttributeError: + pass + + +class RdmcCommand(RdmcCommandBase): + """Constructor""" + + def __init__(self, name, usage, summary, aliases, argparser, Args=None): + super().__init__(name, usage, summary, aliases, argparser) + self._commands = collections.OrderedDict() + self.ui = UI(1) + self.commands_dict = dict() + self.interactive = False + self._progname = "%s : %s" % (versioning.__shortname__, versioning.__longname__) + self.opts = None + self.encoding = None + self.config = RdmcConfig() + self.app = redfish.ris.RmcApp(showwarnings=True) + self.retcode = 0 + self.candidates = dict() + self.comm_map = dict() # point command id names or alias to handle + self.commlist = list() + self._redobj = None + self.log_dir = None + self.loaded_commands = [] + + # import all extensions dynamically + for name in extensions.classNames: + pkgName, cName = name.rsplit(".", 1) + pkgName = "extensions" + pkgName + try: + if "__pycache__" not in pkgName and "Command" in cName: + try: + self.commands_dict[cName] = getattr(importlib.import_module(pkgName, __package__), cName)() + except: + self.commands_dict[cName] = getattr( + importlib.import_module("ilorest." + pkgName, __package__), + cName, + )() + sName = pkgName.split(".")[1] + self.add_command(cName, section=sName) + except cliutils.ResourceAllocationError as excp: + self.ui.error(excp) + retcode = ReturnCodes.RESOURCE_ALLOCATION_ISSUES_ERROR + self.ui.error("Unable to allocate more resources.") + self.ui.printer(("ILOREST return code: %s\n" % retcode)) + sys.exit(retcode) + except Exception: + self.ui.error(("loading command: %s" % cName), None) + + # command mapping + commands_to_remove = [] + for command in self.commands_dict: + try: + self.comm_map[self.commands_dict[command].ident.get("name")] = command + for alias in self.commands_dict[command].ident.get("aliases"): + self.comm_map[alias] = command + except Exception as excp: + self.ui.command_not_enabled( + ("Command '%s' unable to be " "initialized...Removing" % command), + excp, + ) + commands_to_remove.append(command) + + # removing commands marked for deletion + for cmd in commands_to_remove: + del self.commands_dict[cmd] + del commands_to_remove + + # ---------End of imports--------- + + def add_command(self, command_name, section=None): + """Handles to addition of new commands + + :param command_name: command name + :type command_name: str. + :param section: section for the new command + :type section: str. + """ + if section not in self._commands: + self._commands[section] = list() + + self._commands[section].append(command_name) + + def get_commands(self): + """Retrieves dictionary of commands""" + return self._commands + + def search_commands(self, cmdname): + """Function to see if command exist in added commands + + :param cmdname: command to be searched + :type cmdname: str. + """ + + try: + tmp = self.comm_map.get(cmdname) + if not tmp: + tmp = cmdname + return self.commands_dict[tmp] + except KeyError: + raise cliutils.CommandNotFoundException(cmdname) + + def load_command(self, cmd): + """Fully Loads command and returns the class instance + + :param cmd: command identifier + :type opts: class + :returns: defined class instance + + """ + try: + cmd.cmdbase = RdmcCommandBase( + cmd.ident["name"], + cmd.ident["usage"], + cmd.ident["summary"], + cmd.ident["aliases"], + ) + cmd.parser = ArgumentParser( + prog=cmd.ident["name"], + usage=cmd.ident["usage"], + description=cmd.ident["description"], + formatter_class=RawTextHelpFormatter, + ) + cmd.rdmc = self + cmd.definearguments(cmd.parser) + for auxcmd in cmd.ident["auxcommands"]: + auxcmd = self.search_commands(auxcmd) + if auxcmd not in self.loaded_commands: + self.loaded_commands.append(auxcmd) + cmd.auxcommands[auxcmd.ident["name"]] = self.load_command(auxcmd) + else: + cmd.auxcommands[auxcmd.ident["name"]] = self.commands_dict[self.comm_map[auxcmd.ident["name"]]] + return cmd + except Exception as excp: + raise RdmcError("Unable to load command {}: {}".format(cmd.ident["name"], excp)) + + def mask_passwords(self, args): + """Replaces password values in a command argument list with '****'.""" + return SecurityMasker.mask_command_arguments(args) + + def _run_command(self, opts, args, help_disp): + """Calls the command's run function. + + :param opts: Command options. + :type opts: argparse.Namespace + :param args: List of entered arguments. + :type args: list + :param help_disp: Help display flag. + :type help_disp: bool + :returns: Command execution result. + """ + if not args: + LOGGER.error("No command provided. Exiting execution.") + raise ValueError("No command provided.") + + masked_args = self.mask_passwords(args) + + LOGGER.info(f"Executing command: {args[0]} with arguments: {masked_args}") + + cmd = self.search_commands(args[0]) + if cmd is None: + LOGGER.error(f"Command '{args[0]}' not found.") + raise ValueError(f"Command '{args[0]}' not found.") + + self.load_command(cmd) + LOGGER.debug(f"Command '{args[0]}' loaded successfully.") + + # Handle JSON output flag + if any(a in ("-j", "--json") for a in args): + opts.nologo = True + LOGGER.debug("JSON output mode enabled.") + + # Show version information if needed + if not opts.nologo and not self.interactive: + LOGGER.info("Displaying version information.") + CLI.version(self._progname, versioning.__version__, versioning.__extracontent__) + + # Execute the command with remaining arguments + LOGGER.info(f"Running command: {args[0]} with arguments: {masked_args if len(args) > 1 else 'None'}") + return cmd.run(args[1:], help_disp=help_disp) if len(args) > 1 else cmd.run([], help_disp=help_disp) + + def run(self, line, help_disp=False): + """Main rdmc command worker function + + :param line: entered command line + :type line: list. + """ + if os.name == "nt": + if not ctypes.windll.shell32.IsUserAnAdmin() != 0: + self.app.typepath.adminpriv = False + elif not os.getuid() == 0: + self.app.typepath.adminpriv = False + + if "--version" in line or "-V" in line: + CLI.printer("%s %s\n" % (versioning.__longname__, versioning.__version__)) + sys.exit(self.retcode) + + help_disp = False + all_opts = True + help_indx = None + help_list = ["-h", "--help"] + for indx, elem in enumerate(line): + if elem in help_list: + help_indx = indx + if "-" in elem: + continue + else: + all_opts = False + if all_opts and (("-h" in line) or ("--help" in line)): + line = ["-h"] + elif help_indx: + # for comm in self.commands_dict: + # if self.commands_dict[comm].ident['name'] == line[0]: + # self.ui.printer(self.commands_dict[comm].ident['usage']) + # return ReturnCodes.SUCCESS + del line[help_indx] + help_disp = True + + if line and line[0] in ["-h", "--help"]: + cmddict = self.get_commands() + sorted_keys = sorted(list(cmddict.keys())) + + for key in sorted_keys: + if key[0] == "_": + continue + else: + self.parser.epilog = self.parser.epilog + "\n\n" + key + "\n" + for cmd in cmddict[key]: + c_help = "%-25s - %s\n" % ( + self.commands_dict[cmd].ident["name"], + self.commands_dict[cmd].ident["summary"], + ) + self.parser.epilog = self.parser.epilog + c_help + + (self.opts, nargv) = self.parser.parse_known_args(line) + + if self.opts.redirect: + try: + sys.stdout = open("console.log", "w") + except: + print("Unable to re-direct output for STDOUT.\n") + else: + print("Start of stdout file.\n\n") + try: + sys.stderr = open("console_err.log", "w") + except IOError: + print("Unable to re-direct output for STDERR.\n") + else: + print("Start of stderr file.\n\n") + + self.app.verbose = self.ui.verbosity = self.opts.verbose + + try: + # Test encoding functions are there + Encryption.encode_credentials("test") + self.app.set_encode_funct(Encryption.encode_credentials) + self.app.set_decode_funct(Encryption.decode_credentials) + self.encoding = True + except redfish.hpilo.risblobstore2.ChifDllMissingError: + self.encoding = False + + if self.opts.config is not None and len(self.opts.config) > 0: + if not os.path.isfile(self.opts.config): + self.retcode = ReturnCodes.CONFIGURATION_FILE_ERROR + sys.exit(self.retcode) + + self.config.configfile = self.opts.config + else: + # Default locations: Windows: executed directory Linux: /etc/ilorest/redfish.conf + self.config.configfile = ( + os.path.join(os.path.dirname(sys.executable), "redfish.conf") + if os.name == "nt" + else "/etc/ilorest/redfish.conf" + ) + + if not os.path.isfile(self.config.configfile): + LOGGER.warning("Config file '%s' not found\n\n", self.config.configfile) + + self.config.load() + + cachedir = None + if not self.opts.nocache: + self.config.cachedir = os.path.join(self.opts.config_dir, "cache") + cachedir = self.config.cachedir + + if cachedir: + self.app.cachedir = cachedir + try: + os.makedirs(cachedir) + except OSError as ex: + if ex.errno == errno.EEXIST: + pass + else: + raise + if self.opts.logdir and (self.opts.debug or not self.opts.noinfolog): + logdir = self.opts.logdir + else: + logdir = os.getcwd() + self.log_dir = logdir + try: + setup_logging_from_json(opts=self.opts) + except Exception: + # setup_logging_from_json contains its own fallback logging + # mechanisms. If something unexpected happens still ensure + # the package logger exists. + try: + LOGGER.warning("Failed to initialize JSON logging configuration; using fallback.") + except Exception: + pass + + self.app.LOGGER = LOGGER + + if ("login" in line or any(x.startswith("--url") for x in line) or not line) and not ( + any(x.startswith(("-h", "--h")) for x in nargv) or "help" in line + ): + if not any(x.startswith("--sessionid") for x in line): + self.app.logout() + else: + creds, enc = self._pull_creds(nargv) + self.app.restore(creds=creds, enc=enc) + self.opts.is_redfish = self.app.typepath.updatedefinesflag(redfishflag=self.opts.is_redfish) + + if nargv: + try: + self.retcode = self._run_command(self.opts, nargv, help_disp) + if "multiconnect" not in line: + if self.app.cache: + if ("logout" not in line) and ("--logout" not in line): + self.app.save() + self.app.redfishinst = None + else: + self.app.logout() + except AttributeError: + self.retcode = 0 + pass + except Exception as excp: + self.handle_exceptions(excp) + + return self.retcode + else: + self.cmdloop(self.opts) + + if self.app.cache: + self.app.save() + else: + self.app.logout() + + def cmdloop(self, opts): + """Interactive mode worker function. + + :param opts: Command options. + :type opts: argparse.Namespace + """ + LOGGER.info("Starting interactive mode.") + self.interactive = True + + if not opts.nologo: + sys.stdout.write(FIPSSTR) + CLI.version(self._progname, versioning.__version__, versioning.__extracontent__) + LOGGER.info("Displayed version information.") + + if not self.app.typepath.adminpriv: + self.ui.user_not_admin() + LOGGER.warning("User does not have admin privileges.") + + LOGGER.info("Loading available commands.") + for command, values in self.commands_dict.items(): + self.commlist.append(values.ident["name"]) + + for item in self.commlist: + self.candidates[item] = self.commlist if item == "help" else [] + + self._redobj = TabAndHistoryCompletionClass(dict(self.candidates)) + + def bottom_toolbar(): + return HTML("Restful Interface Tool") + + try: + session = PromptSession( + completer=self._redobj, + auto_suggest=AutoSuggestFromHistory(), + complete_style=CompleteStyle.READLINE_LIKE, + complete_while_typing=True, + ) + session.output.disable_bracketed_paste() + LOGGER.info("Tab completion enabled.") + except Exception as e: + LOGGER.exception("Console error: Tab complete is unavailable.") + session = None + + if self.opts.notab: + LOGGER.info("Tab completion is disabled as per user settings.") + session = None + + while True: + try: + prompt_string = str(versioning.__shortname__) + " > " + if session: + if self.opts.toolbar: + line = session.prompt(prompt_string, bottom_toolbar=bottom_toolbar) + else: + line = session.prompt(prompt_string) + else: + line = input(prompt_string) + + LOGGER.debug(f"User input: {SecurityMasker.mask_user_input(line)}") + + except (EOFError, KeyboardInterrupt): + LOGGER.info("User exited interactive mode.") + line = "quit\n" + + if not line.strip(): + continue + elif line.endswith(os.linesep): + line = line.rstrip(os.linesep) + + shlex.escape = "" + nargv = shlex.shlex(line, posix=True) + nargv.escape = "" + nargv.whitespace_split = True + nargv = list(nargv) + + LOGGER.debug(f"Parsed command arguments: {SecurityMasker.mask_command_arguments(nargv)}") + + try: + if not ( + any(x.startswith("-h") for x in nargv) or any(x.startswith("--h") for x in nargv) or "help" in line + ): + if "login " in line or line == "login" or any(x.startswith("--url") for x in nargv): + self.app.logout() + LOGGER.info("User triggered logout.") + + self.retcode = self._run_command(opts, nargv, help_disp=False) + LOGGER.info(f"Command executed with return code: {self.retcode}") + self.check_for_tab_lists(nargv) + + except Exception as excp: + LOGGER.exception("Exception occurred while executing command.") + self.handle_exceptions(excp) + + if self.opts.verbose: + sys.stdout.write(f"iLOrest return code: {self.retcode}\n") + + LOGGER.info("Exiting interactive mode.") + return self.retcode + + def handle_exceptions(self, excp): + """Main exception handler for both shell and interactive modes + + :param excp: captured exception to be handled + :type excp: exception. + """ + # pylint: disable=redefined-argument-from-local + try: + if not getattr(excp, "_already_logged", False): + LOGGER.info(f"Exception: {type(excp).__name__}: {excp}") + setattr(excp, "_already_logged", True) + raise + # ****** RDMC ERRORS ****** + except ConfigurationFileError as excp: + self.retcode = ReturnCodes.CONFIGURATION_FILE_ERROR + self.ui.error(excp) + sys.exit(excp.errcode) + except InstallsetError as excp: + self.retcode = ReturnCodes.INSTALLSET_ERROR + self.ui.error(excp) + except InvalidCommandLineError as excp: + self.retcode = ReturnCodes.INVALID_COMMAND_LINE_ERROR + self.ui.invalid_commmand_line(excp) + except NoCurrentSessionEstablished as excp: + self.retcode = ReturnCodes.NO_CURRENT_SESSION_ESTABLISHED + self.ui.error(excp) + except TfaEnablePreRequisiteError as excp: + self.retcode = ReturnCodes.TFA_ENABLED_ERROR + self.ui.error(excp) + except iLORisCorruptionError as excp: + self.retcode = ReturnCodes.ILO_RIS_CORRUPTION_ERROR + self.ui.error(excp) + except ResourceNotReadyError as excp: + self.retcode = ReturnCodes.RESOURCE_NOT_READY_ERROR + self.ui.error(excp) + except CloudConnectTimeoutError as excp: + self.retcode = ReturnCodes.CLOUD_CONNECT_TIMEOUT + self.ui.error(excp) + except CloudConnectFailedError as excp: + self.retcode = ReturnCodes.CLOUD_CONNECT_FAILED + self.ui.error(excp) + except AlreadyCloudConnectedError as excp: + self.retcode = ReturnCodes.CLOUD_ALREADY_CONNECTED + self.ui.error(excp) + except ProxyConfigFailedError as excp: + self.retcode = ReturnCodes.PROXY_CONFIG_FAILED + self.ui.error(excp) + except UsernamePasswordRequiredError as excp: + self.retcode = ReturnCodes.USERNAME_PASSWORD_REQUIRED_ERROR + self.ui.error(excp) + except InvalidPasswordLengthError as excp: + self.retcode = ReturnCodes.INVALID_PASSWORD_LENGTH_ERROR + self.ui.error(excp) + except NoChangesFoundOrMadeError as excp: + self.retcode = ReturnCodes.NO_CHANGES_MADE_OR_FOUND + self.ui.invalid_commmand_line(excp) + except StandardBlobErrorHandler as excp: + self.retcode = ReturnCodes.GENERAL_ERROR + self.ui.standard_blob_error(excp) + except InvalidFileInputError as excp: + self.retcode = ReturnCodes.INVALID_FILE_INPUT_ERROR + self.ui.invalid_commmand_line(excp) + except InvalidCommandLineErrorOPTS as excp: + self.retcode = ReturnCodes.INVALID_COMMAND_LINE_ERROR + self.ui.invalid_commmand_line(excp) + except InvalidFileFormattingError as excp: + self.retcode = ReturnCodes.INVALID_FILE_FORMATTING_ERROR + self.ui.invalid_file_formatting(excp) + except NoContentsFoundForOperationError as excp: + self.retcode = ReturnCodes.NO_CONTENTS_FOUND_FOR_OPERATION + self.ui.no_contents_found_for_operation(excp) + except InfoMissingEntriesError as excp: + self.retcode = ReturnCodes.NO_VALID_INFO_ERROR + self.ui.error(excp) + except ( + InvalidOrNothingChangedSettingsError, + redfish.ris.rmc_helper.IncorrectPropValue, + ) as excp: + self.retcode = ReturnCodes.SAME_SETTINGS_ERROR + self.ui.error(excp) + except NoDifferencesFoundError as excp: + self.retcode = ReturnCodes.NO_CHANGES_MADE_OR_FOUND + self.ui.no_differences_found(excp) + except MultipleServerConfigError as excp: + self.retcode = ReturnCodes.MULTIPLE_SERVER_CONFIG_FAIL + self.ui.multiple_server_config_fail(excp) + except InvalidMSCfileInputError as excp: + self.retcode = ReturnCodes.MULTIPLE_SERVER_INPUT_FILE_ERROR + self.ui.multiple_server_config_input_file(excp) + except FirmwareUpdateError as excp: + self.retcode = ReturnCodes.FIRMWARE_UPDATE_ERROR + self.ui.error(excp) + except FailureDuringCommitError as excp: + self.retcode = ReturnCodes.FAILURE_DURING_COMMIT_OPERATION + self.ui.error(excp) + except BootOrderMissingEntriesError as excp: + self.retcode = ReturnCodes.BOOT_ORDER_ENTRY_ERROR + self.ui.error(excp) + except NicMissingOrConfigurationError as excp: + self.retcode = ReturnCodes.NIC_MISSING_OR_INVALID_ERROR + self.ui.error(excp) + except ( + IncompatibleiLOVersionError, + redfish.ris.rmc_helper.IncompatibleiLOVersionError, + ) as excp: + self.retcode = ReturnCodes.INCOMPATIBLE_ILO_VERSION_ERROR + self.ui.printer(excp) + except IncompatableServerTypeError as excp: + self.retcode = ReturnCodes.INCOMPATIBLE_SERVER_TYPE + self.ui.printer(excp) + except IloLicenseError as excp: + self.ui.printer(excp) + self.retcode = ReturnCodes.ILO_LICENSE_ERROR + except InvalidCListFileError as excp: + self.retcode = ReturnCodes.INVALID_CLIST_FILE_ERROR + self.ui.error(excp) + except PartitionMoutingError as excp: + self.retcode = ReturnCodes.UNABLE_TO_MOUNT_BB_ERROR + self.ui.error(excp) + except TimeOutError as excp: + self.retcode = ReturnCodes.UPDATE_SERVICE_BUSY + self.ui.error(excp) + except DownloadError as excp: + self.retcode = ReturnCodes.FAILED_TO_DOWNLOAD_COMPONENT + self.ui.error(excp) + except UploadError as excp: + self.retcode = ReturnCodes.FAILED_TO_UPLOAD_COMPONENT + self.ui.error(excp) + except FlashUnsupportedByIloError as excp: + self.retcode = ReturnCodes.ILO_UNSUPPORTED_FLASH + self.ui.error(excp) + except BirthcertParseError as excp: + self.retcode = ReturnCodes.BIRTHCERT_PARSE_ERROR + self.ui.error(excp) + except ResourceExists as excp: + self.retcode = ReturnCodes.RESOURCE_EXISTS_ERROR + self.ui.error(excp) + except InvalidKeyError as excp: + self.retcode = ReturnCodes.ENCRYPTION_ERROR + self.ui.error("Invalid key has been entered for encryption/decryption.\n") + except UnableToDecodeError as excp: + self.retcode = ReturnCodes.ENCRYPTION_ERROR + self.ui.error(excp) + except UnabletoFindDriveError as excp: + self.retcode = ReturnCodes.DRIVE_MISSING_ERROR + self.ui.error(excp) + self.ui.printer("Error occurred while reading device labels.\n") + except PathUnavailableError as excp: + self.retcode = ReturnCodes.PATH_UNAVAILABLE_ERROR + if excp: + self.ui.error(excp) + else: + self.ui.printer("Requested path is unavailable.") + except TaskQueueError as excp: + self.retcode = ReturnCodes.TASKQUEUE_ERROR + self.ui.error(excp) + except DeviceDiscoveryInProgress as excp: + self.retcode = ReturnCodes.DEVICE_DISCOVERY_IN_PROGRESS + self.ui.error(excp) + except InvalidSmartArrayConfigurationError as excp: + self.retcode = ReturnCodes.INVALID_SMART_ARRAY_PAYLOAD + except GenBeforeLoginError as excp: + self.retcode = ReturnCodes.GEN_BEFORE_LOGIN_ERROR + if not getattr(excp, "_already_logged", False): + self.ui.error(f"{type(excp).__name__}: {excp}") + setattr(excp, "_already_logged", True) + # ****** CLI ERRORS ****** + except (CommandNotEnabledError, cliutils.CommandNotFoundException) as excp: + self.retcode = ReturnCodes.UI_CLI_COMMAND_NOT_FOUND_EXCEPTION + self.ui.command_not_found(excp) + # try: + # self.commands_dict['HelpCommand'].run('-h') + # except KeyError: + # pass + + # ****** RMC/RIS ERRORS ****** + except redfish.ris.UndefinedClientError: + self.retcode = ReturnCodes.RIS_UNDEFINED_CLIENT_ERROR + self.ui.error("Please login before making a selection.") + except ( + redfish.ris.InstanceNotFoundError, + redfish.ris.RisInstanceNotFoundError, + ) as excp: + self.retcode = ReturnCodes.RIS_INSTANCE_NOT_FOUND_ERROR + self.ui.printer(excp) + except redfish.ris.CurrentlyLoggedInError as excp: + self.retcode = ReturnCodes.RIS_CURRENTLY_LOGGED_IN_ERROR + self.ui.error(excp) + except redfish.ris.NothingSelectedError as excp: + self.retcode = ReturnCodes.RIS_NOTHING_SELECTED_ERROR + self.ui.nothing_selected() + except redfish.ris.NothingSelectedFilterError as excp: + self.retcode = ReturnCodes.RIS_NOTHING_SELECTED_FILTER_ERROR + self.ui.nothing_selected_filter() + except redfish.ris.NothingSelectedSetError as excp: + self.retcode = ReturnCodes.RIS_NOTHING_SELECTED_SET_ERROR + self.ui.nothing_selected_set() + except redfish.ris.InvalidSelectionError as excp: + self.retcode = ReturnCodes.RIS_INVALID_SELECTION_ERROR + self.ui.error(excp) + except redfish.ris.rmc_helper.UnableToObtainIloVersionError as excp: + self.retcode = ReturnCodes.INCOMPATIBLE_ILO_VERSION_ERROR + self.ui.error(excp) + except redfish.ris.IdTokenError as excp: + if hasattr(excp, "message"): + self.ui.printer(excp.message) + else: + self.ui.printer( + "Logged-in account does not have the privilege" + " required to fulfill the request or a required" + " token is missing." + "\nEX: biospassword flag if bios password present " + "or tpmenabled flag if TPM module present.\n" + ) + self.retcode = ReturnCodes.RIS_MISSING_ID_TOKEN + except redfish.ris.SessionExpired as excp: + self.retcode = ReturnCodes.RIS_SESSION_EXPIRED + self.app.logout() + self.ui.printer( + "Current session has expired or is invalid, " + "please login again with proper credentials to continue.\n" + ) + except redfish.ris.ValidationError as excp: + self.retcode = ReturnCodes.RIS_VALIDATION_ERROR + except redfish.ris.ValueChangedError as excp: + self.retcode = ReturnCodes.RIS_VALUE_CHANGED_ERROR + except redfish.ris.ris.SchemaValidationError as excp: + self.ui.printer("Error found in schema, try running with the " "--latestschema flag.\n") + self.retcode = ReturnCodes.RIS_SCHEMA_PARSE_ERROR + # ****** RMC/RIS ERRORS ****** + except redfish.rest.connections.RetriesExhaustedError as excp: + self.retcode = ReturnCodes.V1_RETRIES_EXHAUSTED_ERROR + self.ui.retries_exhausted_attemps() + except redfish.rest.connections.VnicNotEnabledError as excp: + self.retcode = ReturnCodes.VNIC_NOT_ENABLED_ERROR + self.ui.retries_exhausted_vnic_not_enabled() + except redfish.rest.v1.InvalidCredentialsError as excp: + self.retcode = ReturnCodes.V1_INVALID_CREDENTIALS_ERROR + self.ui.invalid_credentials(excp) + except redfish.rest.v1.JsonDecodingError as excp: + self.retcode = ReturnCodes.JSON_DECODE_ERROR + self.ui.error(excp) + except redfish.rest.v1.ServerDownOrUnreachableError as excp: + self.retcode = ReturnCodes.V1_SERVER_DOWN_OR_UNREACHABLE_ERROR + self.ui.error(excp) + except redfish.rest.connections.ChifDriverMissingOrNotFound as excp: + self.retcode = ReturnCodes.V1_CHIF_DRIVER_MISSING_ERROR + self.ui.printer( + "Chif driver not found, please check that the iLO channel interface" " driver (Chif) is installed.\n" + ) + except redfish.rest.connections.SecurityStateError as excp: + self.retcode = ReturnCodes.V1_SECURITY_STATE_ERROR + self.ui.printer( + "High security mode [%s] or Host Authentication has been enabled. " + "Please provide valid credentials.\n" % str(excp) + ) + except redfish.rest.connections.OneTimePasscodeError: + self.retcode = ReturnCodes.TFA_OTP_EMAILED + self.ui.printer( + "One Time Passcode Sent to registered email.\n" + "Retry the login command by including -o/--otp tag along with the OTP received.\n" + ) + except redfish.rest.connections.UnauthorizedLoginAttemptError as excp: + self.retcode = ReturnCodes.TFA_WRONG_OTP + self.ui.error(excp) + except redfish.rest.connections.TokenExpiredError as excp: + self.retcode = ReturnCodes.TFA_OTP_TIMEDOUT + self.ui.error(excp) + except redfish.hpilo.risblobstore2.ChifDllMissingError as excp: + self.retcode = ReturnCodes.REST_ILOREST_CHIF_DLL_MISSING_ERROR + self.ui.printer( + "iLOrest Chif library not found, please check that the chif " "ilorest_chif.dll/.so is present.\n" + ) + except redfish.hpilo.risblobstore2.UnexpectedResponseError as excp: + self.retcode = ReturnCodes.REST_ILOREST_UNEXPECTED_RESPONSE_ERROR + self.ui.printer("Unexpected data received from iLO.\n") + except redfish.hpilo.risblobstore2.HpIloError as excp: + self.retcode = ReturnCodes.REST_ILOREST_ILO_ERROR + self.ui.printer("iLO returned a failed error code.\n") + except redfish.hpilo.risblobstore2.Blob2CreateError as excp: + self.retcode = ReturnCodes.REST_ILOREST_CREATE_BLOB_ERROR + self.ui.printer("Blob create operation failed.\n") + except redfish.hpilo.risblobstore2.Blob2ReadError as excp: + self.retcode = ReturnCodes.REST_ILOREST_READ_BLOB_ERROR + self.ui.printer("Blob read operation failed.\n") + except redfish.hpilo.risblobstore2.Blob2WriteError as excp: + self.retcode = ReturnCodes.REST_ILOREST_WRITE_BLOB_ERROR + self.ui.printer("Blob write operation failed.\n") + except redfish.hpilo.risblobstore2.Blob2DeleteError as excp: + self.retcode = ReturnCodes.REST_ILOREST_BLOB_DELETE_ERROR + self.ui.printer("Blob delete operation failed.\n") + except redfish.hpilo.risblobstore2.Blob2OverrideError as excp: + self.retcode = ReturnCodes.REST_ILOREST_BLOB_OVERRIDE_ERROR + self.ui.error(excp) + self.ui.printer( + "\nAnother user access in progress. Pease ensure only one user is accessing at a time locally.\n" + ) + except redfish.hpilo.risblobstore2.BlobRetriesExhaustedError as excp: + self.retcode = ReturnCodes.REST_BLOB_RETRIES_EXHAUSETED_ERROR + self.ui.printer("\nBlob operation still fails after max retries.\n") + except redfish.hpilo.risblobstore2.Blob2FinalizeError as excp: + self.retcode = ReturnCodes.REST_ILOREST_BLOB_FINALIZE_ERROR + self.ui.printer("Blob finalize operation failed.") + except redfish.hpilo.risblobstore2.BlobNotFoundError as excp: + self.retcode = ReturnCodes.REST_ILOREST_BLOB_NOT_FOUND_ERROR + self.ui.printer("Blob not found with key and namespace provided.\n") + except redfish.ris.rmc_helper.InvalidPathError as excp: + self.retcode = ReturnCodes.RIS_REF_PATH_NOT_FOUND_ERROR + self.ui.printer("Reference path not found.") + except redfish.ris.rmc_helper.IloResponseError as excp: + self.retcode = ReturnCodes.RIS_ILO_RESPONSE_ERROR + except redfish.ris.rmc_helper.UserNotAdminError as excp: + self.ui.user_not_admin() + self.retcode = ReturnCodes.USER_NOT_ADMIN + except redfish.hpilo.rishpilo.HpIloInitialError as excp: + self.ui.error(excp) + self.retcode = ReturnCodes.RIS_ILO_INIT_ERROR + except redfish.hpilo.rishpilo.HpIloChifAccessDeniedError as excp: + self.ui.error(excp) + self.retcode = ReturnCodes.RIS_ILO_CHIF_ACCESS_DENIED_ERROR + except redfish.hpilo.rishpilo.HpIloPrepareAndCreateChannelError as excp: + self.ui.error(excp) + self.retcode = ReturnCodes.RIS_CREATE_AND_PREPARE_CHANNEL_ERROR + except redfish.hpilo.rishpilo.HpIloChifPacketExchangeError as excp: + self.ui.error(excp) + self.retcode = ReturnCodes.RIS_ILO_CHIF_PACKET_EXCHANGE_ERROR + except redfish.hpilo.rishpilo.HpIloNoDriverError as excp: + self.ui.error(excp) + self.retcode = ReturnCodes.RIS_ILO_CHIF_NO_DRIVER_ERROR + except redfish.hpilo.rishpilo.HpIloWriteError as excp: + self.ui.error(excp) + self.retcode = ReturnCodes.RESOURCE_ALLOCATION_ISSUES_ERROR + except redfish.hpilo.rishpilo.HpIloReadError as excp: + self.ui.error(excp) + self.retcode = ReturnCodes.RESOURCE_ALLOCATION_ISSUES_ERROR + # ****** RIS OBJECTS ERRORS ****** + except redfish.ris.ris.BiosUnregisteredError as excp: + self.retcode = ReturnCodes.RIS_RIS_BIOS_UNREGISTERED_ERROR + self.ui.bios_unregistered_error() + # ****** FILE/IO ERRORS ****** + except IOError: + self.retcode = ReturnCodes.INVALID_FILE_INPUT_ERROR + self.ui.printer( + "Error accessing the file path. Verify the file path is correct and " "you have proper permissions.\n" + ) + # ****** VNIC ERRORS ****** # + except VnicExistsError as excp: + self.retcode = ReturnCodes.VNIC_DOES_NOT_EXIST_ERROR + self.ui.error(excp) + except GenerateAndSaveAccountError as excp: + self.retcode = ReturnCodes.GENERAL_ACCOUNT_GENERATE_SAVE_ERROR + self.ui.error(excp) + except NoAppAccountError as excp: + self.retcode = ReturnCodes.ACCOUNT_DOES_NOT_EXIST_ERROR + self.ui.error(excp) + except RemoveAccountError as excp: + self.retcode = ReturnCodes.ACCOUNT_REMOVE_ERROR + self.ui.error(excp) + except AppAccountExistsError as excp: + self.retcode = ReturnCodes.ACCOUNT_EXISTS_CHECK_ERROR + self.ui.error(excp) + except ReactivateAppAccountTokenError as excp: + self.retcode = ReturnCodes.REACTIVATE_APP_ACCOUNT_TOKEN_ERROR + self.ui.error(excp) + except InactiveAppAccountTokenError as excp: + self.retcode = ReturnCodes.INACTIVE_APP_ACCOUNT_TOKEN + self.ui.error(excp) + except VnicLoginError as excp: + self.retcode = ReturnCodes.VNIC_LOGIN_ERROR + self.ui.error(excp) + except SavinginTPMError as excp: + self.retcode = ReturnCodes.ACCOUNT_SAVE_ERROR_TPM + self.ui.error(excp) + except SavinginiLOError as excp: + self.retcode = ReturnCodes.ACCOUNT_SAVE_ERROR_ILO + self.ui.error(excp) + except AppIdListError as excp: + self.retcode = ReturnCodes.APPID_LIST_ERROR + self.ui.error(excp) + # ****** GENERAL ERRORS ****** + except SystemExit: + self.retcode = ReturnCodes.GENERAL_ERROR + raise + except Exception as excp: + self.retcode = ReturnCodes.GENERAL_ERROR + sys.stderr.write("ERROR: %s\n" % excp) + + if self.opts.debug: + traceback.print_exc(file=sys.stderr) + + def check_for_tab_lists(self, command=None): + """Function to generate available options for tab tab + :param command: command for auto tab completion + :type command: string. + """ + # TODO: don't always update, only when we have a different selector. + # Try to use args to get specific nested posibilities? + changes = dict() + + # select options + typeslist = list() + + try: + typeslist = sorted(set(self.app.types())) + changes["select"] = typeslist + except: + pass + + # get/set/info options + getlist = list() + + try: + if self.app.typepath.defs: + typestr = self.app.typepath.defs.typestring + templist = self.app.getprops() + dictcopy = copy.copy(templist[0]) + + for content in templist: + for k in list(content.keys()): + if k.lower() in HARDCODEDLIST or "@odata" in k.lower(): + del content[k] + if "Bios." in dictcopy[typestr]: + if hasattr( + templist[0], + "Attributes", + ): + templist = templist[0]["Attributes"] + else: + templist = templist[0] + else: + templist = templist[0] + for key, _ in templist.items(): + getlist.append(key) + + getlist.sort() + + # if select command, get possible values + infovals = dict() + + if "select" in command: + if typestr in dictcopy: + (_, attributeregistry) = self.app.get_selection(setenable=True) + schema, reg = self.app.get_model(dictcopy, attributeregistry) + + if reg: + if "Attributes" in reg: + reg = reg["Attributes"] + for item in getlist: + for attribute in reg: + if item == attribute: + infovals.update({item: reg[attribute]}) + break + + changes["nestedinfo"] = infovals + + elif schema: + changes["nestedinfo"] = schema + + changes["get"] = getlist + changes["nestedprop"] = dictcopy["Attributes"] if "Attributes" in dictcopy else dictcopy + changes["set"] = getlist + changes["info"] = getlist + changes["val"] = [] + + readonly_list = [] + + for info in schema: + for checkread in schema[info]: + if "readonly" in checkread and schema[info]["readonly"] is True: + readonly_list.append(info) + + set_list = [x for x in getlist if x not in readonly_list] + + changes["set"] = set_list + + except: + pass + + if changes: + self._redobj.updates_tab_completion_lists(changes) + + def _pull_creds(self, args): + """Pull creds from the arguments for blobstore""" + cred_args = {} + enc = False + arg_iter = iter(args) + try: + for arg in arg_iter: + if arg in ("--enc", "-e"): + enc = True + if arg in ("-u", "--user"): + cred_args["username"] = next(arg_iter) + elif arg in ("-p", "--password"): + cred_args["password"] = next(arg_iter) + except StopIteration: + return {}, False + return cred_args, enc + + def rdmc_parse_arglist(self, cmdinstance, line=None, default=False): + """ + Parses command-line arguments with special consideration for quoting and optional arguments. + + :param cmdinstance: Command instance to be referenced. + :type cmdinstance: class object + :param line: String of arguments passed in. + :type line: str or list + :param default: Flag to determine if the parsed command requires the default workaround for + argparse in Python 2. Argparse incorrectly assumes a sub-command is always + required, so we have to include a default sub-command for no arguments. + :type default: bool + :returns: Parsed argument list + """ + + def checkargs(argopts): + """Check for invalid optional args.""" + (_, args) = argopts + for arg in args: + if arg.startswith("-") or arg.startswith("--"): + try: + cmdinstance.parser.error( + "The option %s is not available for %s" % (arg, cmdinstance.ident["name"]) + ) + except SystemExit: + raise InvalidCommandLineErrorOPTS("") + return argopts + + # Ensure `None` does not cause errors + if line is None: + return checkargs(cmdinstance.parser.parse_known_args([])) + + # Parse argument list correctly + if isinstance(line, six.string_types): + arglist = shlex.split(line, posix=False) + arglist = [val.strip("\"'") for val in arglist] # Strip surrounding quotes + elif isinstance(line, list): + arglist = line + else: + raise ValueError("Invalid type for 'line'. Expected str or list.") + + # Handle Windows-specific globbing + exarglist = [] + if os.name == "nt": + for arg in arglist: + try: + matches = glob.glob(arg) + exarglist.extend(matches if matches else [arg]) + except Exception as e: + if arg: + exarglist.append(arg) + else: + exarglist = [arg for arg in arglist if arg] + + # Insert 'default' if needed + if default and not any(_opt in ["-h", "--h", "-help", "--help"] for _opt in exarglist): + exarglist.insert(0, "default") + + return checkargs(cmdinstance.parser.parse_known_args(exarglist)) + + +def ilorestcommand(): + # Parse command line arguments early to extract logging flags + ARGUMENTS = sys.argv[1:] + # Create a temporary parser to extract logging flags early + temp_parser = ArgumentParser(add_help=False) + temp_parser.add_argument("--nostdoutlog", action="store_true", default=False) + temp_parser.add_argument("--noinfolog", action="store_true", default=False) + temp_parser.add_argument("--debug", action="store_true", default=False) + temp_parser.add_argument("--logdir", dest="logdir", help="Use the provided directory for logs", default=None) + # Parse known args to extract logging flags + temp_opts, _ = temp_parser.parse_known_args(ARGUMENTS) + + # Initialize logging from JSON configuration with parsed flags + setup_logging_from_json(temp_opts) + + RDMC = RdmcCommand( + Args=ARGUMENTS, + name=versioning.__shortname__, + usage=versioning.__shortname__ + " [command]", + summary="HPE RESTful Interface Tool", + aliases=[versioning.__shortname__], + argparser=RdmcOptionParser(), + ) + + # Main execution function call wrapper + if "setproctitle" in sys.modules: + FOUND = False + VARIABLE = setproctitle.getproctitle() + + for items in VARIABLE.split(" "): + if FOUND: + VARIABLE = VARIABLE.replace(items, "xxxxxxxx") + break + + if items == "--password" or items == "-p": + FOUND = True + + setproctitle.setproctitle(VARIABLE) + + RDMC.retcode = RDMC.run(ARGUMENTS) + + if RDMC.opts: + if RDMC.opts.verbose: + RDMC.ui.printer(("iLORest return code: %s\n" % RDMC.retcode)) + else: + RDMC.ui.printer(("iLORest return code: %s\n" % RDMC.retcode)) + + # Return code + sys.exit(RDMC.retcode) + + +if __name__ == "__main__": + ilorestcommand() diff --git a/venv/lib/python3.10/site-packages/ilorest/rdmc_base_classes.py b/venv/lib/python3.10/site-packages/ilorest/rdmc_base_classes.py new file mode 100644 index 0000000..b2119eb --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/rdmc_base_classes.py @@ -0,0 +1,537 @@ +### +# Copyright 2017-2025 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""This is the helper module for RDMC""" + +# ---------Imports--------- +import os +import sys +from argparse import ( + SUPPRESS, + Action, + ArgumentParser, + RawDescriptionHelpFormatter, + _ArgumentGroup, +) +from redfish.ris import NothingSelectedError + +try: + from ilorest import cliutils, versioning, rdmc_helper + from ilorest.rdmc_helper import InvalidCommandLineErrorOPTS +except ImportError: + import cliutils + import versioning + import rdmc_helper + from rdmc_helper import InvalidCommandLineErrorOPTS + +# ---------End of imports--------- + + +class _Verbosity(Action): + def __init__(self, option_strings, dest, nargs, **kwargs): + super(_Verbosity, self).__init__(option_strings, dest, nargs, **kwargs) + + def __call__(self, parser, namespace, values, option_strings): + try: + if values: + tmp = next(iter(values)) + if tmp.isdigit(): + namespace.verbose = int(tmp) + else: + namespace.verbose = len(tmp) + 1 + return + namespace.verbose = 1 + except: + raise InvalidCommandLineErrorOPTS("Invalid verbosity selection ('-v').") + + +class CommandBase(object): + """Abstract base class for all Command objects. + + This class is used to build complex command line programs + """ + + def __init__(self, name, usage, summary, aliases=None, argparser=None): + self.name = name + self.summary = summary + self.aliases = aliases + self.config_required = True # does the command access config data + + if argparser is None: + self.parser = ArgumentParser() + else: + self.parser = argparser + + self.parser.usage = usage + + def run(self, line, help_disp=False): + """Called to actually perform the work. + + Override this method in your derived class. This is where your program + actually does work. + """ + pass + + +class RdmcCommandBase(CommandBase): + """Base class for rdmc commands which includes some common helper + methods. + """ + + def __init__(self, name, usage, summary, aliases, argparser=None, **kwargs): + """Constructor""" + CommandBase.__init__( + self, name=name, usage=usage, summary=summary, aliases=aliases, argparser=argparser, **kwargs + ) + self.json = False + self.cache = False + self.nologo = False + self.toolbar = False + + def login_validation(self, cmdinstance, options, skipbuild=False): + """Combined validation function to login and select with other commands. Not for use with + login or select commands themselves. Make sure your command imports options from + add_login_arguments_group or there will be errors. + + :param cmdinstance: the command object instance + :type cmdinstance: list. + :param options: command line options + :type options: list. + :param skipbuild: flag to only login and skip monolith build + :type skipbuild: bool. + """ + + logobj = cmdinstance.rdmc.load_command(cmdinstance.rdmc.search_commands("LoginCommand")) + inputline = list() + client = None + loggedin = False + + if hasattr(options, "json") and cmdinstance.rdmc.config.format.lower() == "json": + options.json = True + + try: + client = cmdinstance.rdmc.app.current_client + except: + if options.user or options.password or options.url or options.force_vnic: + if options.url: + inputline.extend([options.url]) + if options.user: + if options.encode: + options.user = rdmc_helper.Encryption.decode_credentials(options.user) + if isinstance(options.user, bytes): + options.user = options.user.decode("utf-8") + inputline.extend(["-u", options.user]) + if options.password: + if options.encode: + options.password = rdmc_helper.Encryption.decode_credentials(options.password) + if isinstance(options.password, bytes): + options.password = options.password.decode("utf-8") + inputline.extend(["-p", options.password]) + if options.force_vnic: + inputline.extend(["--force_vnic"]) + if getattr(options, "https_cert", False): + inputline.extend(["--https", options.https_cert]) + if getattr(options, "user_certificate", False): + inputline.extend(["--usercert", options.user_certificate]) + if getattr(options, "user_root_ca_key", False): + inputline.extend(["--userkey", options.user_root_ca_key]) + if getattr(options, "user_root_ca_password", False): + inputline.extend(["--userpassphrase", options.user_root_ca_password]) + else: + if cmdinstance.rdmc.config.url: + inputline.extend([cmdinstance.rdmc.config.url]) + if cmdinstance.rdmc.config.username: + inputline.extend(["-u", cmdinstance.rdmc.config.username]) + if cmdinstance.rdmc.config.password: + inputline.extend(["-p", cmdinstance.rdmc.config.password]) + if cmdinstance.rdmc.config.ssl_cert: + inputline.extend(["--https", cmdinstance.rdmc.config.ssl_cert]) + if getattr(options, "user_certificate", False): + inputline.extend(["--usercert", options.user_certificate]) + if getattr(options, "user_root_ca_key", False): + inputline.extend(["--userkey", options.user_root_ca_key]) + if getattr(options, "user_root_ca_password", False): + inputline.extend(["--userpassphrase", options.user_root_ca_password]) + if options.includelogs: + inputline.extend(["--includelogs"]) + if options.path: + inputline.extend(["--path", options.path]) + + if getattr(options, "biospassword", False): + inputline.extend(["--biospassword", options.biospassword]) + if getattr(options, "sessionid", False): + inputline.extend(["--sessionid", options.sessionid]) + + logobj.loginfunction(inputline, skipbuild=skipbuild) + loggedin = True + + if not (loggedin or client or options.url or cmdinstance.rdmc.app.typepath.url): + message = "Local login initiated...\n" + if cmdinstance.rdmc.opts.verbose: + sys.stdout.write(message) + else: + rdmc_helper.LOGGER.info(message) + + if not (loggedin or client): + logobj.loginfunction(inputline, skipbuild=skipbuild) + + def login_select_validation(self, cmdinstance, options, skipbuild=False): + """Combined validation function to login and select with other commands. Not for use with + login or select commands themselves. Make sure your command imports options from + add_login_arguments_group or there will be errors. + + :param cmdinstance: the command object instance + :type cmdinstance: list. + :param options: command line options + :type options: list. + :param skipbuild: flag to only login and skip monolith build + :type skipbuild: bool. + """ + inputline = list() + + if cmdinstance.ident["name"] == "detectilo" or cmdinstance.ident["name"] == "appaccount": + try: + client = cmdinstance.rdmc.app.current_client + return client + except Exception: + return None + + self.login_validation(cmdinstance, options, skipbuild=skipbuild) + logobj = cmdinstance.rdmc.load_command(cmdinstance.rdmc.search_commands("LoginCommand")) + selobj = cmdinstance.rdmc.load_command(cmdinstance.rdmc.search_commands("SelectCommand")) + if hasattr(options, "selector") and options.selector: + if inputline: + inputline.extend(["--selector", options.selector]) + logobj.loginfunction(inputline) + else: + if getattr(options, "ref", False): + inputline.extend(["--refresh"]) + + inputline.extend([options.selector]) + selobj.selectfunction(inputline) + elif hasattr(options, "selector"): + try: + inputline = list() + selector = cmdinstance.rdmc.app.selector + + if hasattr(options, "ref") and options.ref: + inputline.extend(["--refresh"]) + + if selector: + inputline.extend([selector]) + selobj.selectfunction(inputline) + except NothingSelectedError: + raise NothingSelectedError + + def logout_routine(self, cmdinstance, options): + """Routine to logout of a server automatically at the completion of a command. + + :param commandinstance: the command object instance + :type commandinstance: list. + :param options: command line options + :type options: list. + """ + + logoutobj = cmdinstance.rdmc.load_command(cmdinstance.rdmc.search_commands("LogoutCommand")) + + if getattr(options, "logout", False): + logoutobj.run("") + + def add_login_arguments_group(self, parser): + """Adds login arguments to the passed parser + + :param parser: The parser to add the login option group to + :type parser: ArgumentParser + """ + group = parser.add_argument_group("LOGIN OPTIONS", "Options for logging in to a system.") + group.add_argument("--url", dest="url", help="Use the provided iLO URL to login.", default=None) + group.add_argument( + "--sessionid", + dest="sessionid", + help="Use the provided sessionid to login.", + default=None, + ) + group.add_argument( + "-u", + "--user", + dest="user", + help="""If you are not logged in yet, including this flag along with the +password and URL flags can be used to login to a server in the same command.""", + default=None, + ) + group.add_argument( + "-p", + "--password", + dest="password", + help="""Use the provided iLO password to log in.""", + default=None, + ) + group.add_argument( + "-o", + "--otp", + dest="login_otp", + help="""Use the provided iLO OTP to log in.""", + default=None, + ) + group.add_argument( + "--biospassword", + dest="biospassword", + help="""Select this flag to input a BIOS password. Include this +flag if second-level BIOS authentication is needed for the command to execute. +This option is only used on Gen 9 systems.""", + default=None, + ) + group.add_argument( + "--https", + dest="https_cert", + help="""Use the provided CA bundle or SSL certificate with your login to +connect securely to the system in remote mode. This flag has no effect in local mode.""", + default=None, + ) + group.add_argument( + "--usercert", + dest="user_certificate", + type=str, + help="""Specify a user certificate file path for certificate based authentication +with iLO.\n**NOTE**: Inclusion of this argument will force certficate based +authentication. A root user certificate authority key or bundle will be required.""", + default=None, + ) + group.add_argument( + "--userkey", + dest="user_root_ca_key", + type=str, + help="""Specify a user root ca key file path for certificate based certificate +authentication with iLO. **NOTE 1**: Inclusion of this argument will force certficate based +authentication. A root user certificate authority key or bundle will be required. +**NOTE 2**: Inclusion of this argument will force certificate based authentication. +A user certificate will be required. +**NOTE 3**: A user will be prompted for a password if the root certificate authority key +is encrypted and \'-certpass/--userrootcapassword\' is omitted.""", + default=None, + ) + group.add_argument( + "--userpassphrase", + dest="user_root_ca_password", + type=str, + help="""Optionally specify a user root ca key file password for encrypted +user root certificate authority keys. **NOTE 1**: Inclusion of this argument will force +certficate based authentication. A root user certificate authority key or +bundle will be required. **NOTE 2**: The user will be prompted for a password +if the user root certificate authority key requires a password""", + default=None, + ) + # group.add_argument( + # '--certbundle', + # dest='ca_cert_bundle', + # type=str, + # help="""Specify a file path for the certificate authority bundle location + # (local repository for certificate collection) **NOTE**: Providing a custom certificate + # or root CA key will override the use of certificate bundles""", + # default=None) + group.add_argument( + "-e", + "--enc", + dest="encode", + action="store_true", + help=SUPPRESS, + default=False, + ) + group.add_argument( + "--includelogs", + dest="includelogs", + action="store_true", + help="Optionally include logs in the data retrieval process.", + default=False, + ) + group.add_argument( + "--path", + dest="path", + help="""Optionally set a starting point for data collection during login. +If you do not specify a starting point, the default path will be /redfish/v1/. +Note: The path flag can only be specified at the time of login. +Warning: Only for advanced users, and generally not needed for normal operations.""", + default=None, + ) + group.add_argument( + "--force_vnic", + dest="force_vnic", + action="store_true", + help="Force login through iLO Virtual NIC. **NOTE** " "iLO 5 required", + default=False, + ) + group.add_argument( + "--logout", + dest="logout", + action="store_true", + help="Logout after the completion of the command.", + default=None, + ) + + +class RdmcOptionParser(ArgumentParser): + """Constructor""" + + def __init__(self): + super().__init__( + usage="%s [GLOBAL OPTIONS] [COMMAND] [COMMAND ARGUMENTS] " "[COMMAND OPTIONS]" % versioning.__shortname__, + description="iLOrest is a command-line or interactive interface that allows users " + "to manage Hewlett Packard Enterprise products that take advantage" + " of RESTful APIs.\n\nIn order to view or manage a system you must" + " first login. You can login using the login command or during " + "execution of any other command.\nFrom here you can run any other " + "commands. To learn more about specific commands, run iLOrest " + "COMMAND -h.", + epilog="Examples:\n\nThe following is the standard flow of command" + "s to view system data.\n\tThe first example is each command " + "run individually: \n\n\tilorest login\n\tilorest select Bios.\n\t" + "ilorest get\n\n\tThe second is the list of all of the commands " + "run at once. First locally, then remotely.\n\tilorest get " + "--select Bios.\n\tilorest get --select Bios. --url -u" + " -p ", + formatter_class=RawDescriptionHelpFormatter, + ) + globalgroup = _ArgumentGroup(self, "GLOBAL OPTIONS") + + self.add_argument( + "--config", + dest="config", + help="Use the provided configuration file instead of the default one.", + metavar="FILE", + ) + + config_dir_default = os.path.join(cliutils.get_user_config_dir(), ".%s" % versioning.__shortname__) + self.add_argument( + "--cache-dir", + dest="config_dir", + default=config_dir_default, + help="Use the provided directory as the location to cache data" + " (default location: %s)" % config_dir_default, + metavar="PATH", + ) + self.add_argument( + "-v", + "--verbose", + dest="verbose", + action="count", + help="Display verbose information (with increasing level). '-v': Level 1, " + "Logging, Stdout, Stderr. '-vv': Level 2, Extends Level 1 with slightly " + "elaborated iLO and HTTP response message. '-vvv': Level3, Extends Level 2 " + "with message id, validation class, message text with embedded args, and " + "possible resolution/mitigation for iLO responses. Includes HTTP responses. " + "**NOTE 1**: Some responses may only contain limited information from the source." + "**NOTE 2**: Default level is 0.", + default=0, + ) + self.add_argument( + "-d", + "--debug", + dest="debug", + action="store_true", + help="""[DEPRECATED] This flag is deprecated and will be removed in future versions. + Use '--logconfig' for enabling debug logs. + Enable debug mode for detailed logging output.""", + default=False, + ) + self.add_argument( + "--logdir", + dest="logdir", + default=None, + help="""Use the provided directory as the location for log file.""", + metavar="PATH", + ) + self.add_argument( + "--nostdoutlog", + dest="nostdoutlog", + action="store_true", + help="""[DEPRECATED] This flag is deprecated and will be removed in future versions. + Use '--logconfig' for enabling debug logs. + Enable debug mode for detailed logging output.""", + default=False, + ) + self.add_argument( + "--noinfolog", + "--nodefaultlog", + "--no_default_log", + dest="noinfolog", + action="store_true", + help="""Disable default INFO logs.""", + default=False, + ) + self.add_argument( + "--nocache", + dest="nocache", + action="store_true", + help="During execution the application will temporarily store data only in memory.", + default=False, + ) + self.add_argument( + "--nologo", + dest="nologo", + action="store_true", + help="""Include to block copyright and logo.""", + default=False, + ) + self.add_argument( + "--toolbar", + dest="toolbar", + action="store_true", + help="""Show toolbar at the bottom.""", + default=False, + ) + self.add_argument( + "--notab", + dest="notab", + action="store_true", + help="""Disable tab complete.""", + default=False, + ) + self.add_argument( + "--redfish", + dest="is_redfish", + action="store_true", + help="Use this flag if you wish to to enable " + "Redfish only compliance. It is enabled by default " + "in systems with iLO5 and above.", + default=False, + ) + self.add_argument( + "--latestschema", + dest="latestschema", + action="store_true", + help="Optionally use the latest schema instead of the one " + "requested by the file. Note: May cause errors in some data " + "retrieval due to difference in schema versions.", + default=False, + ) + self.add_argument( + "--useproxy", + dest="proxy", + default=None, + help="""Use the provided proxy for communication.""", + metavar="URL", + ) + self.add_argument( + "--redirectconsole", + dest="redirect", + help="Optionally include this flag to redirect stdout/stderr console.", + nargs="?", + default=None, + const=True, + metavar="REDIRECT CONSOLE", + ) + self.add_argument_group(globalgroup) diff --git a/venv/lib/python3.10/site-packages/ilorest/rdmc_helper.py b/venv/lib/python3.10/site-packages/ilorest/rdmc_helper.py new file mode 100644 index 0000000..8094a7c --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/rdmc_helper.py @@ -0,0 +1,1429 @@ +### +# Copyright 2017-2025 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""This is the helper module for RDMC""" + +# ---------Imports--------- +from __future__ import unicode_literals + +import json +import logging +import os +import sys +import time +from ctypes import byref, c_char_p, create_string_buffer + +try: + from logging_config_path import get_logging_config_path +except ModuleNotFoundError: + from ilorest.logging_config_path import get_logging_config_path + + +import pyaes +import six +from prompt_toolkit.completion import Completer, Completion + +import redfish.hpilo.risblobstore2 as risblobstore2 +import redfish.ris +import logging.config + +try: + import versioning +except ImportError: + from ilorest import versioning + +if os.name == "nt": + from six.moves import winreg + + if six.PY2: + from win32con import HKEY_LOCAL_MACHINE + elif six.PY3: + from win32.lib.win32con import HKEY_LOCAL_MACHINE + +# ---------End of imports--------- + + +# Using hard coded list until better solution is found +HARDCODEDLIST = [ + "modified", + "attributeregistry", + "links", + "settingsresult", + "actions", + "availableactions", + "extref", +] + +# ---------Debug logger--------- +# Centralized logging behaviour: +# - The JSON config in ilorest/logging_config.json defines handlers/formatters. +# - `setup_logging_from_json()` loads that config and uses `prepare_log_directory()` to +# resolve and create a writable `logdir` (trying the configured path first and then +# platform-specific fallbacks). This centralizes all directory-selection logic. +# - `setup_fallback_logging()` is to support fallback logging if the JSON config +# cannot be loaded or applied for some reason. It uses command line flags to retain old functionality. + + +class InfoFilter(logging.Filter): + """Filter to allow only INFO and WARNING messages, blocking ERROR and above""" + + def filter(self, record): + # Allow only records below ERROR (i.e., INFO and WARNING) + return record.levelno < logging.ERROR + + +# Logger instance - configuration will be handled by JSON config file +LOGGER = logging.getLogger(__name__) + + +def clear_existing_handlers(): + """Clear any existing log handlers to avoid conflicts.""" + root_logger = logging.getLogger() + for handler in root_logger.handlers[:]: + root_logger.removeHandler(handler) + + +def setup_fallback_logging(reason="Unknown error", opts=None): + """ + Fallback logging setup when all else fails. + + Args: + reason: The reason for falling back to fallback logging + opts: Optional command line options that may contain logging flags + """ + try: + clear_existing_handlers() + + # Extract command line flags from opts or sys.argv + debug_flag = False + noinfo_flag = False + nostdout_flag = False + log_dir = os.path.join(os.getcwd(), "ilorest_logs") + + if opts: + debug_flag = getattr(opts, "debug", False) + noinfo_flag = getattr(opts, "noinfolog", False) + nostdout_flag = getattr(opts, "nostdoutlog", False) + custom_logdir = getattr(opts, "logdir", None) + if custom_logdir: + log_dir = os.path.normpath(custom_logdir) + else: + # Check sys.argv as fallback + debug_flag = any(arg in ["-d", "--debug"] for arg in sys.argv) + noinfo_flag = any(arg in ["--noinfolog"] for arg in sys.argv) + nostdout_flag = any(arg in ["--nostdoutlog"] for arg in sys.argv) + + # Create log directory + os.makedirs(log_dir, exist_ok=True) + log_file_path = os.path.join(log_dir, "iLORest.log") + + # Determine logging level (debug takes precedence over noinfo) + if noinfo_flag and not debug_flag: + file_level = logging.ERROR + elif debug_flag: + file_level = logging.DEBUG + else: + file_level = logging.INFO + + # Configure file handler + file_handler = logging.FileHandler(log_file_path) + file_handler.setLevel(file_level) + file_formatter = logging.Formatter("%(levelname)s\t: %(message)s") + file_handler.setFormatter(file_formatter) + + handlers = [file_handler] + + # Configure stdout handler so that INFO (and below) do NOT go to stdout. + # The console should show CRITICAL by default, but if the + # global file level is higher (e.g. ERROR due to --noinfolog), keep + # stdout at that higher level to respect the flag. + if not nostdout_flag: + stdout_handler = logging.StreamHandler(sys.stdout) + # If user requested debug output on the command line, allow stdout to + # receive DEBUG messages. Otherwise keep stdout quieter (CRITICAL) + if debug_flag: + stdout_level = logging.DEBUG + else: + # set to default CRITICAL + stdout_level = logging.CRITICAL + stdout_handler.setLevel(stdout_level) + stdout_handler.setFormatter(file_formatter) + handlers.append(stdout_handler) + + # Apply configuration to the root logger + root_logger = logging.getLogger() + root_logger.setLevel(file_level) + + # Clear any existing handlers (already done above) then add ours + for h in handlers: + root_logger.addHandler(h) + + logger = logging.getLogger(__name__) + logger.debug("Fallback to basic configurations for logging: %s (logdir=%s)", reason, log_dir) + return True + + except Exception as fallback_error: + # If even fallback setup failed, write to stderr directly + sys.stderr.write(f"Critical: All fallback logging attempts failed: {reason} - {fallback_error}\n") + return False + + +def load_config_file(config_path): + """Load and validate the JSON configuration file.""" + if not os.path.isfile(config_path): + raise FileNotFoundError(f"JSON config file not found: {config_path}") + + with open(config_path, "r", encoding="utf-8") as f: + config = json.load(f) + + # Validate basic structure + if not isinstance(config, dict): + raise ValueError("Config file must contain a JSON object") + + if "handlers" not in config: + raise ValueError("Config file must contain 'handlers' section") + + return config + + +def prepare_log_directory(config): + """Determine and prepare a writable log directory based on config and platform. + + Behavior (matching historical implementation): + - Try the JSON-configured path first (absolute). + - If that fails, fall back to a single directory: + - On Windows: use APPDATA if set + - Otherwise: use ~/.local/share + - Return the directory that is writable; raise PermissionError if neither works. + """ + primary = config.get("logdir", "./ilorest_logs") + if not os.path.isabs(primary): + primary = os.path.abspath(primary) + + def _writable_dir(path): + try: + os.makedirs(path, exist_ok=True) + testfile = os.path.join(path, ".write_test") + with open(testfile, "w") as fh: + fh.write("ok") + try: + os.remove(testfile) + except Exception: + pass + return True + except Exception: + return False + + # Try primary configured path first + if _writable_dir(primary): + LOGGER.debug("Selected logdir (configured): %s", os.path.normpath(primary)) + return os.path.normpath(primary) + + # Single fallback to APPDATA or ~/.local/share (matching legacy behavior) + appdata = os.getenv("APPDATA") + if appdata: + fallback_dir = appdata + else: + fallback_dir = os.path.join(os.path.expanduser("~"), ".local", "share") + + fallback_dir = os.path.join(fallback_dir, "ilorest_logs") + + if _writable_dir(fallback_dir): + LOGGER.debug("Selected logdir (fallback): %s", os.path.normpath(fallback_dir)) + return os.path.normpath(fallback_dir) + + # Nothing worked + raise PermissionError(f"Unable to create or write to configured logdir '{primary}' or fallback '{fallback_dir}'") + + +def configure_file_handler(config, logdir): + """Configure the file handler with proper path joining and validation.""" + file_handler = config.get("handlers", {}).get("file", {}) + if not file_handler: + return + + original_filename = file_handler.get("filename", "iLORest.log") + if "%(logdir)s" in original_filename: + filename = original_filename.replace("%(logdir)s", logdir) + else: + filename = os.path.join(logdir, "iLORest.log") + + file_handler["filename"] = os.path.normpath(filename) + + # Test if we can write to the log file + try: + with open(file_handler["filename"], "a") as test_file: + pass # Just test if we can open for writing + except (IOError, OSError, PermissionError) as e: + raise ValueError(f"Cannot write to log file {file_handler['filename']}: {e}") + + +def set_logging_config_with_flags(config, nostdout=False, noinfo=False, debug=False): + """Modify logging configuration based on command-line flags. + + :param config: The logging configuration dictionary to modify + :type config: dict + :param nostdout: Flag to suppress stdout logging + :type nostdout: bool + :param noinfo: Flag to suppress info level logging + :type noinfo: bool + :param debug: Flag to enable debug level logging + :type debug: bool + :returns: Modified configuration dictionary + :rtype: dict + """ + # Handle priority: debug takes precedence over noinfo when both are set + if noinfo and debug: + noinfo = False + + # Modify config based on early command-specific flags + if nostdout and "handlers" in config and "stdout" in config["handlers"]: + # Remove stdout handler from the configuration + del config["handlers"]["stdout"] + # Remove stdout from all logger handlers lists + for logger_name, logger_config in config.get("loggers", {}).items(): + if "handlers" in logger_config and "stdout" in logger_config["handlers"]: + logger_config["handlers"] = [h for h in logger_config["handlers"] if h != "stdout"] + + # Modify logging levels based on flags + if noinfo: + level = "ERROR" + elif debug: + level = "DEBUG" + else: + level = None + + if level: + # Apply level to all loggers + for logger_name, logger_config in config.get("loggers", {}).items(): + logger_config["level"] = level + # Also apply to handlers if needed + for handler_name, handler_config in config.get("handlers", {}).items(): + if handler_name != "stderr": # Keep stderr at ERROR level + handler_config["level"] = level + + return config + + +def setup_logging_from_json(opts=None): + """Setup logging from JSON config file using dictConfig with comprehensive fallback. + + This function attempts to load logging configuration from a JSON file and falls back + to existing configuration if the JSON config fails for any reason. + If `opts` is provided, it extracts logging flags from the options object. + + """ + config_path = get_logging_config_path() + + try: + # Load and validate configuration file + config = load_config_file(config_path) + + # Extract logging flags from opts if provided and apply_flags is True + if opts: + nostdout = getattr(opts, "nostdoutlog", False) + noinfo = getattr(opts, "noinfolog", False) + debug = getattr(opts, "debug", False) + logdir = getattr(opts, "logdir", None) + + # If caller passed an explicit logdir, use it to override the config value + if logdir: + # normalize and set + config["logdir"] = os.path.normpath(logdir) + + # Modify config based on flags using the dedicated function + config = set_logging_config_with_flags(config, nostdout, noinfo, debug) + + # Prepare log directory (this will create it if missing) + final_logdir = prepare_log_directory(config) + + # Configure file handler paths (will replace %(logdir)s etc.) + configure_file_handler(config, final_logdir) + + # Clear any existing handlers to avoid conflicts + clear_existing_handlers() + + # Apply the logging configuration + logging.config.dictConfig(config) + + # Test that logging is working (only if not suppressing info logs and flags applied) + if opts and not getattr(opts, "noinfolog", False): + logger = logging.getLogger(__name__) + logger.debug("Logging configuration loaded successfully from JSON (logdir=%s)", final_logdir) + except FileNotFoundError as e: + setup_fallback_logging(str(e), opts) + return None + except (PermissionError, IOError) as e: + setup_fallback_logging(f"File access error: {e}", opts) + return None + except json.JSONDecodeError as e: + setup_fallback_logging(f"Invalid JSON format: {e}", opts) + return None + except (KeyError, ValueError, TypeError) as e: + setup_fallback_logging(f"Invalid configuration structure: {e}", opts) + return None + except Exception as e: + setup_fallback_logging(f"Unexpected error loading config: {e}", opts) + return None + + +# ---------End of debug logger--------- + + +class ReturnCodes(object): + """Return code class to be used by all functions""" + + SUCCESS = 0 + + # ****** RDMC ERRORS ****** + CONFIGURATION_FILE_ERROR = 1 + COMMAND_NOT_ENABLED_ERROR = 2 + INVALID_COMMAND_LINE_ERROR = 3 + INVALID_FILE_FORMATTING_ERROR = 4 + USER_NOT_ADMIN = 5 + NO_CONTENTS_FOUND_FOR_OPERATION = 6 + INVALID_FILE_INPUT_ERROR = 7 + NO_CHANGES_MADE_OR_FOUND = 8 + NO_VALID_INFO_ERROR = 9 + + # ****** CLI ERRORS ****** + UI_CLI_ERROR_EXCEPTION = 10 + UI_CLI_WARN_EXCEPTION = 11 + UI_CLI_USAGE_EXCEPTION = 12 + UI_CLI_COMMAND_NOT_FOUND_EXCEPTION = 13 + INVALID_PASSWORD_LENGTH_ERROR = 14 + + # ****** RMC/RIS ERRORS ****** + RIS_UNDEFINED_CLIENT_ERROR = 21 + RIS_CURRENTLY_LOGGED_IN_ERROR = 22 + RIS_INSTANCE_NOT_FOUND_ERROR = 23 + RIS_NOTHING_SELECTED_ERROR = 24 + RIS_NOTHING_SELECTED_FILTER_ERROR = 25 + RIS_NOTHING_SELECTED_SET_ERROR = 26 + RIS_INVALID_SELECTION_ERROR = 27 + RIS_VALIDATION_ERROR = 28 + RIS_MISSING_ID_TOKEN = 29 + RIS_SESSION_EXPIRED = 30 + + # ****** REST V1 ERRORS ****** + V1_RETRIES_EXHAUSTED_ERROR = 31 + V1_INVALID_CREDENTIALS_ERROR = 32 + V1_SERVER_DOWN_OR_UNREACHABLE_ERROR = 33 + V1_CHIF_DRIVER_MISSING_ERROR = 34 + REST_ILOREST_CHIF_DLL_MISSING_ERROR = 35 + REST_ILOREST_UNEXPECTED_RESPONSE_ERROR = 36 + REST_ILOREST_ILO_ERROR = 37 + REST_ILOREST_CREATE_BLOB_ERROR = 38 + REST_ILOREST_READ_BLOB_ERROR = 39 + + # ****** RDMC ERRORS ****** + SAME_SETTINGS_ERROR = 40 + FIRMWARE_UPDATE_ERROR = 41 + BOOT_ORDER_ENTRY_ERROR = 42 + NIC_MISSING_OR_INVALID_ERROR = 43 + NO_CURRENT_SESSION_ESTABLISHED = 44 + FAILURE_DURING_COMMIT_OPERATION = 45 + USERNAME_PASSWORD_REQUIRED_ERROR = 46 + VNIC_NOT_ENABLED_ERROR = 47 + MULTIPLE_SERVER_CONFIG_FAIL = 51 + MULTIPLE_SERVER_INPUT_FILE_ERROR = 52 + LOAD_SKIP_SETTING_ERROR = 53 + INCOMPATIBLE_ILO_VERSION_ERROR = 54 + INVALID_CLIST_FILE_ERROR = 55 + UNABLE_TO_MOUNT_BB_ERROR = 56 + BIRTHCERT_PARSE_ERROR = 57 + INCOMPATIBLE_SERVER_TYPE = 58 + ILO_LICENSE_ERROR = 59 + RESOURCE_EXISTS_ERROR = 60 + + # ****** RMC/RIS ERRORS ****** + RIS_VALUE_CHANGED_ERROR = 61 + RIS_REF_PATH_NOT_FOUND_ERROR = 62 + RIS_ILO_RESPONSE_ERROR = 63 + RIS_ILO_INIT_ERROR = 64 + RIS_SCHEMA_PARSE_ERROR = 65 + RIS_ILO_CHIF_ACCESS_DENIED_ERROR = 66 + RIS_CREATE_AND_PREPARE_CHANNEL_ERROR = 67 + RIS_ILO_CHIF_PACKET_EXCHANGE_ERROR = 71 + RIS_ILO_CHIF_NO_DRIVER_ERROR = 69 + + # ****** REST V1 ERRORS ****** + REST_ILOREST_WRITE_BLOB_ERROR = 70 + REST_ILOREST_BLOB_DELETE_ERROR = 68 + REST_ILOREST_BLOB_FINALIZE_ERROR = 72 + REST_ILOREST_BLOB_NOT_FOUND_ERROR = 73 + JSON_DECODE_ERROR = 74 + V1_SECURITY_STATE_ERROR = 75 + REST_ILOREST_BLOB_OVERRIDE_ERROR = 76 + REST_BLOB_RETRIES_EXHAUSETED_ERROR = 77 + + # ****** RDMC ERRORS ****** + RESOURCE_ALLOCATION_ISSUES_ERROR = 80 + ENCRYPTION_ERROR = 81 + DRIVE_MISSING_ERROR = 82 + PATH_UNAVAILABLE_ERROR = 83 + ILO_RIS_CORRUPTION_ERROR = 84 + RESOURCE_NOT_READY_ERROR = 85 + INVALID_SMART_ARRAY_PAYLOAD = 86 + + # ****** RIS ERRORS ****** + RIS_RIS_BIOS_UNREGISTERED_ERROR = 100 + + # ***** Upload/Download ERRORS ****** + FAILED_TO_DOWNLOAD_COMPONENT = 101 + UPDATE_SERVICE_BUSY = 102 + FAILED_TO_UPLOAD_COMPONENT = 103 + TASKQUEUE_ERROR = 104 + DEVICE_DISCOVERY_IN_PROGRESS = 105 + INSTALLSET_ERROR = 106 + INVALID_TARGET_ERROR = 107 + ILO_UNSUPPORTED_FLASH = 108 + + # **** ComputeOpsManagement Errors**** + CLOUD_CONNECT_TIMEOUT = 111 + CLOUD_CONNECT_FAILED = 112 + CLOUD_ALREADY_CONNECTED = 113 + PROXY_CONFIG_FAILED = 114 + + # **** scep error **** + SCEP_ENABLED_ERROR = 121 + + # *** authentication error **** + TFA_WRONG_OTP = 131 + TFA_OTP_TIMEDOUT = 132 + TFA_ENABLED_ERROR = 133 + TFA_OTP_EMAILED = 134 + + # ****** GENERAL ERRORS ****** + GENERAL_ERROR = 255 + + # ****** VNIC ERRORS ****** + GENERAL_ACCOUNT_GENERATE_SAVE_ERROR = 141 + VNIC_DOES_NOT_EXIST_ERROR = 142 + ACCOUNT_DOES_NOT_EXIST_ERROR = 143 + ACCOUNT_REMOVE_ERROR = 144 + ACCOUNT_EXISTS_CHECK_ERROR = 145 + VNIC_LOGIN_ERROR = 146 + ACCOUNT_SAVE_ERROR_TPM = 147 + ACCOUNT_SAVE_ERROR_ILO = 148 + GEN_BEFORE_LOGIN_ERROR = 149 + APPID_LIST_ERROR = 150 + INACTIVE_APP_ACCOUNT_TOKEN = 151 + REACTIVATE_APP_ACCOUNT_TOKEN_ERROR = 152 + + +class RdmcError(Exception): + """Baseclass for all rdmc exceptions""" + + errcode = 1 + + def __init__(self, message=None): + Exception.__init__(self, message) + + +class ConfigurationFileError(RdmcError): + """Raised when something is wrong in the config file""" + + errcode = 3 + + +class ProxyConfigFailedError(RdmcError): + """Raised when ComputeOpsManagement connection fails""" + + pass + + +class CloudConnectTimeoutError(RdmcError): + """Raised when ComputeOpsManagement connection times out""" + + pass + + +class CloudConnectFailedError(RdmcError): + """Raised when ComputeOpsManagement connection fails""" + + pass + + +class TfaEnablePreRequisiteError(RdmcError): + """Raised when pre-requisites not met while enabling TFA""" + + pass + + +class AlreadyCloudConnectedError(RdmcError): + """Raised when ComputeOpsManagement is already connected""" + + pass + + +class CommandNotEnabledError(RdmcError): + """Raised when user tries to invoke a command that isn't enabled""" + + pass + + +class iLORisCorruptionError(RdmcError): + """Raised when user tries to invoke a command that isn't enabled""" + + pass + + +class ResourceNotReadyError(RdmcError): + """Raised when user tries to invoke a command that isn't enabled""" + + pass + + +class UsernamePasswordRequiredError(RdmcError): + """Raised when username and password are required for local chif login""" + + pass + + +class PathUnavailableError(Exception): + """Raised when the requested path is unavailable""" + + pass + + +class InvalidCommandLineError(RdmcError): + """Raised when user enter incorrect command line arguments""" + + pass + + +class NoCurrentSessionEstablished(RdmcError): + """Raised when user enter incorrect command line arguments""" + + pass + + +class NoChangesFoundOrMadeError(RdmcError): + """Raised when no changes were found or made on the commit function""" + + pass + + +class StandardBlobErrorHandler(RdmcError): + """Raised when error occured for blob operations""" + + pass + + +class InvalidCommandLineErrorOPTS(RdmcError): + """Raised when user enter incorrect command line arguments""" + + pass + + +class InvalidFileInputError(RdmcError): + """Raised when user enter an invalid file input""" + + pass + + +class InvalidFileFormattingError(RdmcError): + """Raised when user enter incorrect load file formatting""" + + pass + + +class WindowsUserNotAdmin(RdmcError): + """Raised when user is not running as admin""" + + pass + + +class NoContentsFoundForOperationError(RdmcError): + """Raised when no contents were found for the current operation""" + + pass + + +class InfoMissingEntriesError(RdmcError): + """Raised when no valid entries for info were found in the current + instance""" + + pass + + +class InvalidOrNothingChangedSettingsError(RdmcError): + """Raised when something is wrong with the settings""" + + pass + + +class InvalidPasswordLengthError(RdmcError): + """Raised when password length is invalid""" + + pass + + +class InvalidSmartArrayConfigurationError(RdmcError): + """Raised when no changes were found or made on the commit function""" + + pass + + +class NoDifferencesFoundError(RdmcError): + """Raised when no differences are found in the current configuration""" + + pass + + +class NothingSelectedError(RdmcError): + """Raised when type selection is reference but none have been provided""" + + pass + + +class InvalidPropertyError(RdmcError): + """Raised when one or more properties or attributes are in conflict with current or + specified configuration""" + + pass + + +class MultipleServerConfigError(RdmcError): + """Raised when one or more servers failed to load given configuration""" + + pass + + +class InvalidMSCfileInputError(RdmcError): + """Raised when servers input file for load has incorrect parameters""" + + pass + + +class FirmwareUpdateError(RdmcError): + """Raised when there is an error while updating firmware""" + + pass + + +class FailureDuringCommitError(RdmcError): + """Raised when there is an error during commit""" + + pass + + +class BootOrderMissingEntriesError(RdmcError): + """Raised when no entries were found for bios tools""" + + pass + + +class NicMissingOrConfigurationError(RdmcError): + """ Raised when no entries are found for given NIC or all NICs are \ + configured or when wrong inputs are presented for NIC entries""" + + pass + + +class IncompatibleiLOVersionError(RdmcError): + """Raised when the iLO version is above or below the required \ + version""" + + pass + + +class IncompatableServerTypeError(RdmcError): + """Raised when the server type is incompatable with the requested\ + command""" + + pass + + +class IloLicenseError(RdmcError): + """Raised when the proper iLO license is not available for a command""" + + pass + + +class ScepenabledError(RdmcError): + """Raised when the generation csr or deletion of https cert is issues when scep is enabled""" + + pass + + +class ResourceExists(RdmcError): + """Raised when the account to be added already exists""" + + pass + + +class InvalidCListFileError(RdmcError): + """Raised when an error occurs while reading the cfilelist \ + within AHS logs""" + + pass + + +class PartitionMoutingError(RdmcError): + """Raised when there is error or iLO fails to respond to \ + partition mounting request""" + + pass + + +class DownloadError(RdmcError): + """Raised when the component fails to download""" + + pass + + +class UploadError(RdmcError): + """Raised when the component fails to download""" + + pass + + +class FlashUnsupportedByIloError(RdmcError): + """Raised when the flashing of the component is not supported by iLO""" + + pass + + +class TimeOutError(RdmcError): + """Raised when the update service times out""" + + pass + + +class LibHPsrvMissingError(RdmcError): + """Raised when unable to obtain the libhpsrv handle""" + + pass + + +class BirthcertParseError(RdmcError): + """Raised when unable to parse the birthcert""" + + pass + + +class InvalidKeyError(RdmcError): + """Raised when an invalid encryption key is used""" + + pass + + +class UnableToDecodeError(RdmcError): + """Raised when the file is unable to be decoded using the given key""" + + pass + + +class UnabletoFindDriveError(RdmcError): + """Raised when there is an issue finding required label""" + + pass + + +class TaskQueueError(RdmcError): + """Raised when there is an issue with the current order of taskqueue""" + + pass + + +class DeviceDiscoveryInProgress(RdmcError): + """Raised when device discovery in progress""" + + pass + + +class FallbackChifUse(RdmcError): + """Fallback Chif Use""" + + pass + + +class InstallsetError(RdmcError): + """Error while deleting Recovery installset""" + + pass + + +class GenerateAndSaveAccountError(RdmcError): + """Raised when errors occurred while generating and saving app account""" + + pass + + +class NoAppAccountError(RdmcError): + """Raised when the app account to be deleted does not exist.""" + + pass + + +class RemoveAccountError(RdmcError): + """Raised when errors occurred while removing app account""" + + pass + + +class AppAccountExistsError(RdmcError): + """Raised when errors occurred while removing app account""" + + pass + + +class ReactivateAppAccountTokenError(RdmcError): + """Raised when errors occurred while reactivating app account""" + + pass + + +class InactiveAppAccountTokenError(RdmcError): + """Raised when inactive app account token""" + + pass + + +class VnicLoginError(RdmcError): + """Raised when error occurs while VNIC login""" + + pass + + +class VnicExistsError(RdmcError): + """Raised when VNIC is not enabled""" + + pass + + +class SavinginTPMError(RdmcError): + """Raised when error occurs while saving app account in TPM""" + + pass + + +class SavinginiLOError(RdmcError): + """Raised when error occurs while saving app account in iLO""" + + pass + + +class GenBeforeLoginError(RdmcError): + """Raised when error occurs while getting iLO Gen before login""" + + pass + + +class AppIdListError(RdmcError): + """Raised when error occurs while retrieving list of apptokens and appaccounts""" + + pass + + +class UI(object): + """UI class handles all of our printing etc so we have + consistency across the project""" + + def __init__(self, verbosity=1): + self.verbosity = verbosity + + def printer(self, data, flush=True, excp=None, verbose_override=False): + """Print wrapper for stdout vs fileout""" + if self.verbosity >= 0 or verbose_override: + if excp: + sys.stderr.write(str(data)) + else: + try: + sys.stdout.write(str(data)) + if flush: + sys.stdout.flush() + except IOError: + pass + + def command_not_found(self, cmd): + """Called when command was not found""" + self.printer( + ("\nCommand '%s' not found. Use the help command to " "see a list of available commands\n" % cmd), + excp=True, + ) + return ReturnCodes.UI_CLI_COMMAND_NOT_FOUND_EXCEPTION + + def command_not_enabled(self, cmd, excp): + """Called when command has not been enabled""" + self.printer(("\nCommand '%s' has not been enabled: %s\n" % (cmd, excp)), excp=excp) + + def invalid_commmand_line(self, excp): + """Called when user entered invalid command line entries""" + self.printer(("Error: %s\n" % excp), excp=excp) + + def ilo_ris_corruption(self, excp): + """Called when user entered invalid command line entries""" + self.printer(("\nError: %s\n" % excp), excp=excp) + + def standard_blob_error(self, excp): + """Called when user error encountered with blob""" + self.printer(("\nError: Blob operation failed with error code %s\n" % excp), excp=excp) + + def invalid_file_formatting(self, excp): + """Called when file formatting is unrecognizable""" + self.printer(("\nError: %s\n" % excp), excp=excp) + + def user_not_admin(self): + """Called when file formatting in unrecognizable""" + self.printer( + ( + "\nBoth remote and local mode is accessible when %s " + "is run as administrator. Only remote mode is available for non-" + "admin user groups.\n" % versioning.__longname__ + ), + excp=True, + ) + + def no_contents_found_for_operation(self, excp): + """Called when no contents were found for the current operation""" + self.printer(("\nError: %s\n" % excp), excp=True) + + def nothing_selected(self): + """Called when nothing has been select yet""" + self.printer( + "\nNo type currently selected. Please use the" + " 'types' command to\nget a list of types, or input" + " your type by using the '--selector' flag.\n", + excp=True, + ) + + def nothing_selected_filter(self): + """Called when nothing has been select after a filter set""" + self.printer("\nNothing was found to match your provided filter.\n", excp=True) + + def nothing_selected_set(self): + """Called when nothing has been select yet""" + self.printer("\nNothing is selected or selection is read-only.\n", excp=True) + + def no_differences_found(self, excp): + """Called when no difference is found in the current configuration""" + self.printer(("Error: %s\n" % excp), excp=True) + + def multiple_server_config_fail(self, excp): + """Called when one or more servers failed to load given configuration""" + self.printer(("Error: %s\n" % excp), excp=True) + + def multiple_server_config_input_file(self, excp): + """Called when servers input file has incorrect information""" + self.printer(("Error: %s\n" % excp), excp=True) + + def invalid_credentials(self, timeout): + """Called user has entered invalid credentials + :param timeout: timeout given for failed login attempt + :type timeout: int. + """ + self.printer("Authenticating to iLO", excp=True) + + timeout = 0 + for _ in range(0, (int(str(timeout)) + 3)): + time.sleep(2) + self.printer(".", excp=True) + + self.printer( + "\nInvalid credentials. Unable to authenticate to iLO. \n" + "Please ensure to specify correct username and password.\n", + excp=True, + ) + + def bios_unregistered_error(self): + """Called when ilo/bios unregistered error occurs""" + self.printer( + "\nERROR 100: Bios provider is unregistered. Please" + " refer to the documentation for details on this issue.\n", + excp=True, + ) + + def error(self, msg, inner_except=None): + """Used for general error handling + :param inner_except: raised exception to be logged + :type inner_except: exception. + :param msg: warning message + :type msg: string. + """ + if inner_except is not None: + LOGGER.error(msg, exc_info=True) + else: + LOGGER.error(msg) + + def warn(self, msg, inner_except=None): + """Used for general warning handling + :param inner_except: raised exception to be logged + :type inner_except: exception. + :param msg: warning message + :type msg: string. + """ + if inner_except is not None: + LOGGER.warning(msg, exc_info=True) + else: + LOGGER.warning(msg) + + def retries_exhausted_attemps(self): + """Called when url retries have been exhausted""" + LOGGER.error("Could not reach URL. Retries have been exhausted.") + + def retries_exhausted_vnic_not_enabled(self): + """Called when there is no VNIC is Enabled""" + self.printer("\nError: Could not reach URL, VNIC is not enabled. \n", excp=True) + + def print_out_json(self, content): + """Print out json content to std.out with sorted keys + :param content: content to be printed out + :type content: str. + """ + # stringify + content = json.dumps(content, indent=2, cls=redfish.ris.JSONEncoder, sort_keys=True) + self.printer(content, verbose_override=True) + self.printer("\n") + + def print_out_json_ordered(self, content): + """Print out sorted json content to std.out + :param content: content to be printed out + :type content: str. + """ + content = json.dumps(content, indent=2, cls=redfish.ris.JSONEncoder) + self.printer(content, verbose_override=True) + self.printer("\n") + + def print_out_human_readable(self, content): + """Print out human readable content to std.out + :param content: content to be printed out + :type content: str. + """ + self.pretty_human_readable(content, enterloop=True) + self.printer("\n") + + def pretty_human_readable(self, content, indent=0, start=0, enterloop=False): + """Convert content to human readable and print out to std.out + :param content: content to be printed out + :type content: str. + :param indent: indent string to be used as seperator + :type indent: str. + :param start: used to determine the indent level + :type start: int. + """ + space = "\n" + "\t" * indent + " " * start + if isinstance(content, list): + for item in content: + if item is None: + continue + + self.pretty_human_readable(item, indent, start) + + if content.index(item) != (len(content) - 1): + self.printer(space) + elif isinstance(content, dict): + for key, value in content.items(): + if space and not enterloop: + self.printer(space) + + enterloop = False + self.printer((str(key) + "=")) + self.pretty_human_readable(value, indent, (start + len(key) + 2)) + else: + content = content if isinstance(content, six.string_types) else str(content) + + content = '""' if not content else content + # Changed to support py3, verify if there is a unicode prit issue. + + self.printer(content) + + +class Encryption(object): + """Encryption/Decryption object""" + + @staticmethod + def check_fips_mode_os(): + """Function to check for the OS fips mode + :param key: string to encrypt with + :type key: str. + :returns: returns True if FIPS mode is active, False otherwise + """ + fips = False + if os.name == "nt": + reg = winreg.ConnectRegistry(None, HKEY_LOCAL_MACHINE) + try: + reg = winreg.OpenKey( + reg, + "System\\CurrentControlSet\\Control\\" "Lsa\\FipsAlgorithmPolicy", + ) + winreg.QueryInfoKey(reg) + value, _ = winreg.QueryValueEx(reg, "Enabled") + if value: + fips = True + except: + fips = False + else: + try: + fipsfile = open("/proc/sys/crypto/fips_enabled") + result = fipsfile.readline() + if int(result) > 0: + fipsfile = True + fipsfile.close() + except: + fips = False + return fips + + @staticmethod + def check_fips_mode_ssl(): + """Function to check for the SSL fips mode + Uses custom cpython ssl module API, if available. Otheriwse + probes using ctypes.cdll APIs. + :returns: returns True if FIPS mode is active, False otherwise + """ + import ssl + + if hasattr(ssl, "FIPS_mode"): + return ssl.FIPS_mode() + + from ctypes import cdll + + libcrypto = cdll.LoadLibrary(ssl._ssl.__file__) + return libcrypto.FIPS_mode() + + def encrypt_file(self, filetxt, key): + """encrypt a file given a key + :param filetxt: content to be encrypted + :type content: str. + :param key: string to encrypt with + :type key: str. + """ + try: + filetxt = filetxt.encode() + except (UnicodeDecodeError, AttributeError): + pass # must be encoded already + try: + key = key.encode() + except (UnicodeDecodeError, AttributeError): + pass # must be encoded already + if Encryption.check_fips_mode_os(): + raise CommandNotEnabledError("Encrypting of files is not available" " in FIPS mode.") + if len(key) not in [16, 24, 32]: + raise InvalidKeyError("") + else: + encryptedfile = pyaes.AESModeOfOperationCTR(key).encrypt(filetxt) + + return encryptedfile + + def decrypt_file(self, filetxt, key): + """decrypt a file given a key + :param filetxt: content to be decrypted + :type content: str. + :param key: string to decrypt with + :type key: str. + :returns: returns the decrypted file + """ + try: + filetxt = filetxt.encode() + except (UnicodeDecodeError, AttributeError): + pass # must be encoded already + try: + key = key.encode() + except (UnicodeDecodeError, AttributeError): + pass # must be encoded already + if len(key) not in [16, 24, 32]: + raise InvalidKeyError("") + else: + decryptedfile = pyaes.AESModeOfOperationCTR(key).decrypt(filetxt) + try: + json.loads(decryptedfile) + except: + raise UnableToDecodeError( + "Unable to decrypt the file, make " "sure the key is the same as used in encryption." + ) + + return decryptedfile + + @staticmethod + def decode_credentials(credential): + """decode an encoded credential + :param credential: credential to be decoded + :type credential: str. + :returns: returns the decoded credential + """ + + lib = risblobstore2.BlobStore2.gethprestchifhandle() + credbuff = create_string_buffer(credential.encode("utf-8")) + retbuff = create_string_buffer(128) + + lib.decode_credentials.argtypes = [c_char_p] + + lib.decode_credentials(credbuff, byref(retbuff)) + + risblobstore2.BlobStore2.unloadchifhandle(lib) + # try: + # if isinstance(retbuff.value, bytes): + # retbuff.value = retbuff.value.decode('utf-8', 'ignore') + # if not retbuff.value: + # raise UnableToDecodeError("") + # except: + # raise UnableToDecodeError("Unable to decode credential %s." % credential) + + return retbuff.value + + @staticmethod + def encode_credentials(credential): + """encode a credential + :param credential: credential to be encoded + :type credential: str. + :returns: returns the encoded credential + """ + + lib = risblobstore2.BlobStore2.gethprestchifhandle() + if isinstance(credential, bytes): + credential = credential.decode("utf-8") + credbuff = create_string_buffer(credential.encode("utf-8")) + + retbuff = create_string_buffer(128) + + lib.encode_credentials.argtypes = [c_char_p] + + lib.encode_credentials(credbuff, byref(retbuff)) + + risblobstore2.BlobStore2.unloadchifhandle(lib) + try: + if six.PY2: + enc_val = retbuff.value.encode("utf-8") + elif six.PY3: + enc_val = retbuff.value.decode("utf-8") # .encode('utf-8') + if not retbuff.value: + raise UnableToDecodeError("") + except Exception: + raise UnableToDecodeError("Unable to decode credential %s." % credential) + + return enc_val + + +class TabAndHistoryCompletionClass(Completer): + """Tab and History Class used by interactive mode""" + + def __init__(self, options): + self.options = options + self.toolbar_text = None + self.last_complete = None + + def get_completions(self, document, complete_event): + """Function to return the options for autocomplete""" + word = "" + self.toolbar_text = "" + lstoption = self.options + if document.text: + tokens = document.text.split() + # We aren't completing options yet + tokens = [token for token in tokens if not token.startswith("-")] + + self.last_complete = tokens[-1] + nestedtokens = self.last_complete.split("/") + + if not document.text.endswith(" "): + tokens.pop() + word = document.get_word_under_cursor() + else: + nestedtokens = [] + if word == "/": + word = "" + + if len(tokens) >= 1: + if tokens[0] == "select": + # only first type + if len(tokens) >= 2: + lstoption = [] + else: + lstoption = self.options.get(tokens[0], {}) + elif tokens[0] in ["get", "list", "info", "set"]: + # Match properties + nested_data = self.options.get("nestedprop", {}) + nested_info = self.options.get("nestedinfo", {}) + for token in nestedtokens: + try: + nested_data = nested_data[token] + if tokens[0] == "get" and isinstance(nested_data, dict): + for k in list(nested_data.keys()): + if ( + k.lower() in HARDCODEDLIST + or "@odata" in k.lower() + or "@redfish.allowablevalues" in k.lower() + ): + del nested_data[k] + if nested_info: + if "properties" in nested_info: + nested_info = nested_info["properties"] + if "AttributeName" not in nested_info[token]: + nested_info = ( + nested_info["properties"][token] + if "properties" in nested_info + else nested_info[token] + ) + else: + nested_info = nested_info[token] + except Exception: + break + nested_data = list(nested_data.keys()) if isinstance(nested_data, dict) else [] + lstoption = nested_data + + # Try to get info for help bar + help_text = nested_info.get("HelpText", "") + enum_tab = [] + if "Type" in nested_info and nested_info["Type"].lower() == "enumeration": + help_text += "\nPossible Values:\n" + for value in nested_info["Value"]: + enum_tab.append(value["ValueName"]) + help_text += six.u(str(value["ValueName"])) + " " + + if not help_text: + try: + nested_info = nested_info["properties"] + except KeyError: + pass + help_text = nested_info.get("description", "") + if "enum" in nested_info: + help_text += "\nPossible Values:\n" + for value in nested_info["enum"]: + enum_tab.append(value) + help_text += six.u(str(value)) + " " + if isinstance(help_text, str): + help_text = help_text.replace(". ", ".\n") + self.toolbar_text = help_text + if tokens[0] in ["set"]: + lstoption = self.options.get("set") + else: + lstoption = {} + else: + for token in tokens: + # just match commands + lstoption = self.options.get(token, {}) + + for opt in lstoption: + if opt == word: + self.last_complete = opt + if opt.startswith(word): + yield Completion(opt + "", start_position=-len(word)) + + def bottom_toolbar(self): + return self.toolbar_text if self.toolbar_text else None + + def updates_tab_completion_lists(self, options): + """Function to update tab completion lists + :param options: options list + :type options: list. + """ + # Loop through options passed and add them to them + # to the current tab options list + for key, value in options.items(): + self.options[key] = value diff --git a/venv/lib/python3.10/site-packages/ilorest/security_masking.py b/venv/lib/python3.10/site-packages/ilorest/security_masking.py new file mode 100644 index 0000000..c88e731 --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/security_masking.py @@ -0,0 +1,678 @@ +### +# Copyright 2025 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Centralized security masking framework for iLORest""" + +import json +import re +import copy +from typing import Dict, List, Any, Union, Optional + + +class SecurityMasker: + """Centralized framework for masking sensitive information in logs and outputs.""" + + # Default mask character + MASK_VALUE = "******" + + # Number of characters to show for partial masking + PARTIAL_MASK_SHOW_CHARS = 4 + + # Sensitive command-line argument patterns + SENSITIVE_CLI_KEYWORDS = { + "--password", + "--pass", + "-p", + "--pwd", + "--token", + "--auth-token", + "--session-token", + "--key", + "--api-key", + "--secret", + "--credential", + "--cert-key", + "--private-key", + "--passphrase", + "--sessionkey", + "--auth", + "--authorization", + "--filepass", + "--backup-password", + "--biospassword", + } + + # Fields requiring COMPLETE masking (no characters visible) + COMPLETE_MASK_FIELDS = { + "password", + "oldpassword", + "newpassword", + "currentpassword", + "passwd", + "pwd", + "pass", + "passphrase", + "secret", + "client_secret", + "private_key", + "privatekey", + "cert_key", + "certkey", + "pin", + "otp", + "totp", + "mfa_token", + "csrf_token", + "csrftoken", + } + + # Fields allowing PARTIAL masking (last 4-6 chars visible for debugging) + PARTIAL_MASK_FIELDS = { + "token", + "auth_token", + "authtoken", + "session_token", + "sessiontoken", + "access_token", + "accesstoken", + "refresh_token", + "refreshtoken", + "bearer_token", + "api_key", + "apikey", + "sessionkey", + "session_key", + "credential", + "credentials", + "appid", + "app_id", + "applicationid", + "application_id", + } + + # Headers requiring COMPLETE masking + COMPLETE_MASK_HEADERS = { + "authorization", # Often contains Basic auth with password + "www-authenticate", + "proxy-authorization", + "cookie", + "set-cookie", # May contain sensitive session data + } + + # Headers allowing PARTIAL masking (for debugging/correlation) + PARTIAL_MASK_HEADERS = { + "x-auth-token", + "x-session-token", + "x-api-key", + "api-key", + "bearer", # When separate from Authorization header + "x-session-id", + "session-id", + } + + # All sensitive headers (union of complete and partial) + SENSITIVE_HEADERS = ( + COMPLETE_MASK_HEADERS + | PARTIAL_MASK_HEADERS + | {"authentication", "basic", "digest", "oauth", "jwt", "x-csrf-token", "x-request-id"} + ) + + # All sensitive body fields (union of complete and partial) + SENSITIVE_BODY_FIELDS = COMPLETE_MASK_FIELDS | PARTIAL_MASK_FIELDS | {"auth", "authorization"} + + # URL parameter patterns that might contain sensitive data + SENSITIVE_URL_PARAMS = {"password", "token", "key", "secret", "auth", "session", "credential", "pass", "pwd"} + + @classmethod + def mask_command_arguments(cls, args: List[str]) -> List[str]: + """ + Mask sensitive information in command-line arguments. + + Args: + args: List of command-line arguments + + Returns: + List of arguments with sensitive values masked + + Example: + >>> SecurityMasker.mask_command_arguments(['--user', 'admin', '--password', 'MyP@ss']) + ['--user', 'admin', '--password', '******'] + """ + if not args: + return args + + masked_args = [] + i = 0 + + while i < len(args): + arg = args[i] + + # Check for inline sensitive arguments (--password=value) + if cls._has_inline_sensitive_value(arg): + masked_args.append(cls._mask_inline_argument(arg)) + i += 1 + continue + + # Check if current arg is a sensitive flag + if cls._is_sensitive_cli_flag(arg): + masked_args.append(arg) # Keep the flag + # Mask the next argument if it exists and isn't another flag + if i + 1 < len(args) and not args[i + 1].startswith("-"): + i += 1 # Move to the next argument + masked_args.append(cls.MASK_VALUE) # Mask the value + i += 1 + continue + + # Keep non-sensitive arguments as-is + masked_args.append(arg) + i += 1 + + return masked_args + + @classmethod + def mask_http_headers( + cls, headers: Union[Dict[str, str], List[tuple], Any] + ) -> Union[Dict[str, str], List[tuple], str]: + """ + Mask sensitive information in HTTP headers. + + Args: + headers: HTTP headers in various formats (dict, list of tuples, or other) + + Returns: + Headers with sensitive values masked + + Examples: + # dict format + >>> SecurityMasker.mask_http_headers({'Authorization': 'Basic abc123', 'Accept': 'application/json'}) + {'Authorization': '******', 'Accept': 'application/json'} + + # list-of-tuples format + >>> SecurityMasker.mask_http_headers([('Authorization', 'Bearer abcd'), ('Host', 'example')]) + [('Authorization', '******'), ('Host', 'example')] + """ + if not headers: + return headers + + try: + # Handle dictionary format + if isinstance(headers, dict): + return cls._mask_headers_dict(headers) + + # Handle list of tuples format + elif isinstance(headers, (list, tuple)): + return cls._mask_headers_list(headers) + + # Handle string representation of headers + elif isinstance(headers, str): + return cls._mask_headers_string(headers) + + # Handle other object types (e.g., HTTPMessage) + else: + return cls._mask_headers_object(headers) + + except Exception: + # If masking fails, return a safe placeholder + return "[HEADERS MASKED DUE TO PROCESSING ERROR]" + + @classmethod + def mask_simple_body(cls, body: Union[str, bytes, Dict[str, Any]]) -> Union[str, bytes, Dict[str, Any]]: + """ + Mask sensitive information in simple HTTP request/response bodies. + + This method handles basic body masking for simple payloads. + For complex bodies with advanced JSON parsing and error handling, + use mask_complex_body() instead. + + Args: + body: Request/response body in various formats + + Returns: + Body with sensitive values masked + + Examples: + # JSON string + >>> SecurityMasker.mask_simple_body('{"password":"secret"}') + '{"password":"******"}' + + # dict + >>> SecurityMasker.mask_simple_body({"token": "abcd"}) + {"token": "******"} + """ + if not body: + return body + + try: + # Handle string body (likely JSON) + if isinstance(body, str): + return cls._mask_string_body(body) + + # Handle bytes body + elif isinstance(body, bytes): + return cls._mask_bytes_body(body) + + # Handle dictionary body + elif isinstance(body, dict): + return cls._mask_dict_body(body) + + # Handle other types + else: + return body + + except Exception: + # If masking fails, return original or safe placeholder + if isinstance(body, (str, bytes)): + return "[BODY MASKED DUE TO PROCESSING ERROR]" + return body + + @classmethod + def mask_url_parameters(cls, url: str) -> str: + """ + Mask sensitive information in URL parameters. + + Args: + url: URL string that may contain parameters + + Returns: + URL with sensitive parameter values masked + + Example: + >>> SecurityMasker.mask_url_parameters('https://api.example.com/login?user=admin&password=1234') + 'https://api.example.com/login?user=admin&password=******' + """ + if not url or "?" not in url: + return url + + try: + base_url, params = url.split("?", 1) + param_pairs = params.split("&") + masked_pairs = [] + + for pair in param_pairs: + if "=" in pair: + key, value = pair.split("=", 1) + if any(sensitive in key.lower() for sensitive in cls.SENSITIVE_URL_PARAMS): + masked_pairs.append(f"{key}={cls.MASK_VALUE}") + else: + masked_pairs.append(pair) + else: + masked_pairs.append(pair) + + return f"{base_url}?{'&'.join(masked_pairs)}" + + except Exception: + return url + + @classmethod + def mask_complex_body(cls, body: Union[str, bytes, Dict[str, Any]]) -> Union[str, bytes]: + """ + Mask sensitive information in complex HTTP request/response bodies for logging. + + This is a specialized method for complex body masking that handles: + - Advanced JSON parsing with error recovery + - Automatic encoding/decoding (str ↔ bytes) + - Type preservation (returns same type as input) + - Graceful error handling to ensure logging never fails + + Use this method for complex request/response bodies. For simple bodies, + mask_simple_body() may be sufficient. + + Args: + body: The request/response body in various formats (str, bytes, dict) + + Returns: + Masked body as string or bytes (matching input type) + + Example: + >>> SecurityMasker.mask_complex_body(b'{"users":[{"name":"u","password":"p"}]}') + b'{"users": [{"name": "u", "password": "******"}]}' + """ + if not body: + return body + + original_type = type(body) + + try: + # Convert to string if bytes + if isinstance(body, bytes): + try: + body = body.decode("utf-8") + except UnicodeDecodeError: + # If decode fails, return original bytes + return body + + # If already a dict, mask and return as JSON string + if isinstance(body, dict): + masked_dict = cls._mask_dict_body(body) + return json.dumps(masked_dict) + + # If string, check if it's JSON + if isinstance(body, str): + body = body.strip() + if body.startswith(("{", "[")): + try: + # Parse JSON and mask + body_json = json.loads(body) + masked_json = cls._mask_dict_body(body_json) + masked_string = json.dumps(masked_json) + + # Return in original type + if original_type == bytes: + return masked_string.encode("utf-8") + return masked_string + except json.JSONDecodeError: + # Not valid JSON, return as-is + pass + + # Return body as-is if not JSON or other type + if original_type == bytes and isinstance(body, str): + return body.encode("utf-8") + return body + + except Exception: + # If anything fails, return original to ensure logging continues + # Converting to string if needed for logging + if isinstance(body, bytes): + try: + return body.decode("utf-8", errors="replace") + except: + return "[BODY - BINARY DATA]" + return body if body else "" + + @classmethod + def mask_user_input(cls, user_input: str, command_context: Optional[str] = None) -> str: + """ + Mask sensitive information in user input based on context. + + Args: + user_input: Raw user input string + command_context: Optional context about what command is being executed + + Returns: + User input with sensitive parts masked + + Example: + >>> SecurityMasker.mask_user_input('--login admin --password MyP@ss') + '--login admin --password ******' + """ + if not user_input: + return user_input + + # Split input into tokens for analysis + tokens = user_input.split() + + # Apply command argument masking + masked_tokens = cls.mask_command_arguments(tokens) + + return " ".join(masked_tokens) + + # Private helper methods + @classmethod + def _is_sensitive_cli_flag(cls, arg: str) -> bool: + """Check if an argument is a sensitive command-line flag.""" + return arg.lower() in {flag.lower() for flag in cls.SENSITIVE_CLI_KEYWORDS} + + @classmethod + def _has_inline_sensitive_value(cls, arg: str) -> bool: + """Check if an argument contains inline sensitive value (flag=value).""" + if "=" not in arg: + return False + flag = arg.split("=")[0] + return cls._is_sensitive_cli_flag(flag) + + @classmethod + def _mask_inline_argument(cls, arg: str) -> str: + """Mask the value part of an inline argument.""" + return re.sub(r"=(.*)", f"={cls.MASK_VALUE}", arg) + + @classmethod + def _mask_headers_dict(cls, headers: Dict[str, str]) -> Dict[str, str]: + """Mask sensitive headers in dictionary format.""" + masked = {} + for key, value in headers.items(): + if cls._is_sensitive_header(key): + # Determine if complete or partial masking + masked[key] = cls._mask_value(value, key, is_header=True) + else: + masked[key] = value + return masked + + @classmethod + def _mask_headers_list(cls, headers: List[tuple]) -> List[tuple]: + """Mask sensitive headers in list of tuples format.""" + masked = [] + for item in headers: + if isinstance(item, (list, tuple)) and len(item) >= 2: + key, value = item[0], item[1] + if cls._is_sensitive_header(key): + masked_value = cls._mask_value(value, key, is_header=True) + masked.append((key, masked_value)) + else: + masked.append(item) + else: + masked.append(item) + return masked + + @classmethod + def _mask_headers_string(cls, headers: str) -> str: + """Mask sensitive headers in string format.""" + lines = headers.split("\n") + masked_lines = [] + + for line in lines: + if ":" in line: + key, value = line.split(":", 1) + if cls._is_sensitive_header(key.strip()): + # Preserve leading whitespace (indentation) from original key + leading_space = key[: len(key) - len(key.lstrip())] + masked_value = cls._mask_value(value.strip(), key.strip(), is_header=True) + masked_lines.append(f"{leading_space}{key.strip()}: {masked_value}") + else: + masked_lines.append(line) + else: + masked_lines.append(line) + + return "\n".join(masked_lines) + + @classmethod + def _mask_headers_object(cls, headers: Any) -> str: + """Mask sensitive headers in object format (e.g., HTTPMessage).""" + try: + # Try to convert to dictionary first + if hasattr(headers, "items"): + header_dict = dict(headers.items()) + masked_dict = cls._mask_headers_dict(header_dict) + return str(masked_dict) + elif hasattr(headers, "__dict__"): + return cls._mask_headers_dict(headers.__dict__) + else: + return "[HEADERS MASKED - UNKNOWN FORMAT]" + except Exception: + return "[HEADERS MASKED DUE TO PROCESSING ERROR]" + + @classmethod + def _is_sensitive_header(cls, header_name: str) -> bool: + """Check if a header name is considered sensitive.""" + header_lower = header_name.lower().strip() + return any(sensitive in header_lower for sensitive in cls.SENSITIVE_HEADERS) + + @classmethod + def _mask_string_body(cls, body: str) -> str: + """Mask sensitive information in string body.""" + try: + # Try to parse as JSON + if body.strip().startswith(("{", "[")): + json_body = json.loads(body) + masked_body = cls._mask_dict_body(json_body) + return json.dumps(masked_body) + else: + # Handle form data or other string formats + return cls._mask_form_data(body) + except json.JSONDecodeError: + # Not JSON, treat as form data or plain text + return cls._mask_form_data(body) + + @classmethod + def _mask_bytes_body(cls, body: bytes) -> bytes: + """Mask sensitive information in bytes body.""" + try: + # Convert to string, mask, then back to bytes + string_body = body.decode("utf-8") + masked_string = cls._mask_string_body(string_body) + return masked_string.encode("utf-8") + except UnicodeDecodeError: + # If can't decode, return as-is (likely binary data) + return body + + @classmethod + def _mask_dict_body(cls, body: Dict[str, Any]) -> Dict[str, Any]: + """Mask sensitive information in dictionary body.""" + masked = copy.deepcopy(body) + + def mask_recursive(obj): + if isinstance(obj, dict): + for key, value in obj.items(): + if cls._is_sensitive_body_field(key): + # Apply appropriate masking based on field type + obj[key] = cls._mask_value(str(value) if value else "", key, is_header=False) + else: + mask_recursive(value) + elif isinstance(obj, list): + for item in obj: + mask_recursive(item) + + mask_recursive(masked) + return masked + + @classmethod + def _mask_form_data(cls, data: str) -> str: + """Mask sensitive information in form data.""" + # Handle URL-encoded form data + if "&" in data and "=" in data: + pairs = data.split("&") + masked_pairs = [] + for pair in pairs: + if "=" in pair: + key, value = pair.split("=", 1) + if cls._is_sensitive_body_field(key): + masked_pairs.append(f"{key}={cls.MASK_VALUE}") + else: + masked_pairs.append(pair) + else: + masked_pairs.append(pair) + return "&".join(masked_pairs) + + # For other string formats, return as-is + return data + + @classmethod + def _is_sensitive_body_field(cls, field_name: str) -> bool: + """Check if a body field name is considered sensitive.""" + field_lower = field_name.lower().strip() + return field_lower in cls.SENSITIVE_BODY_FIELDS + + @classmethod + def _mask_value(cls, value: str, field_name: str, is_header: bool = False) -> str: + """ + Mask a sensitive value with either complete or partial masking. + + Args: + value: The value to mask + field_name: The field/header name (for determining mask type) + is_header: Whether this is a header (vs body field) + + Returns: + Masked value (either completely or partially) + """ + if not value: + return cls.MASK_VALUE + + field_lower = field_name.lower().strip() + + # Determine if we should use complete or partial masking + use_complete_mask = False + + if is_header: + # Check if header requires complete masking + use_complete_mask = field_lower in {h.lower() for h in cls.COMPLETE_MASK_HEADERS} + # Special case: Authorization header with "Basic" is password-based + if field_lower == "authorization" and value.strip().lower().startswith("basic"): + use_complete_mask = True + else: + # Check if body field requires complete masking + use_complete_mask = field_lower in {f.lower() for f in cls.COMPLETE_MASK_FIELDS} + + # Apply appropriate masking + if use_complete_mask: + return cls.MASK_VALUE + else: + # Partial masking: show last N characters + return cls._partial_mask(value) + + @classmethod + def _partial_mask(cls, value: str, show_chars: int = None) -> str: + """ + Apply partial masking to a value, showing only the last N characters. + + Args: + value: The value to mask + show_chars: Number of characters to show (default: PARTIAL_MASK_SHOW_CHARS) + + Returns: + Partially masked value like "******a0fb" + """ + if show_chars is None: + show_chars = cls.PARTIAL_MASK_SHOW_CHARS + + if not value or len(value) <= show_chars: + # If value is too short, completely mask it + return cls.MASK_VALUE + + # Show last N characters + visible_part = value[-show_chars:] + return f"{cls.MASK_VALUE}{visible_part}" + + +# Convenience functions for backward compatibility and easy usage +def mask_passwords(args: List[str]) -> List[str]: + """Backward compatible function for masking passwords in command arguments.""" + return SecurityMasker.mask_command_arguments(args) + + +def mask_http_request_data(method: str, path: str, headers: Any, body: Any) -> tuple: + """ + Mask all sensitive data in an HTTP request for logging. + + Args: + method: HTTP method + path: Request path/URL + headers: Request headers + body: Request body + + Returns: + Tuple of (method, masked_path, masked_headers, masked_body) + """ + masked_path = SecurityMasker.mask_url_parameters(path) + masked_headers = SecurityMasker.mask_http_headers(headers) + masked_body = SecurityMasker.mask_simple_body(body) + + return method, masked_path, masked_headers, masked_body + + +def mask_user_input(user_input: str, command_context: Optional[str] = None) -> str: + """Convenience function for masking user input.""" + return SecurityMasker.mask_user_input(user_input, command_context) diff --git a/venv/lib/python3.10/site-packages/ilorest/versioning.py b/venv/lib/python3.10/site-packages/ilorest/versioning.py new file mode 100644 index 0000000..448680f --- /dev/null +++ b/venv/lib/python3.10/site-packages/ilorest/versioning.py @@ -0,0 +1,23 @@ +### +# Copyright 2017 Hewlett Packard Enterprise, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### + +# -*- coding: utf-8 -*- +"""Version strings for the utility""" + +__version__ = "7.0.0.0" +__shortname__ = "iLORest" +__longname__ = "RESTful Interface Tool" +__extracontent__ = "Copyright (c) 2014-2025 Hewlett Packard Enterprise Development LP\n" diff --git a/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/LICENSE.txt b/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/LICENSE.txt new file mode 100644 index 0000000..7b190ca --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/LICENSE.txt @@ -0,0 +1,28 @@ +Copyright 2011 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/METADATA b/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/METADATA new file mode 100644 index 0000000..ddf5464 --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/METADATA @@ -0,0 +1,60 @@ +Metadata-Version: 2.1 +Name: itsdangerous +Version: 2.2.0 +Summary: Safely pass data to untrusted environments and back. +Maintainer-email: Pallets +Requires-Python: >=3.8 +Description-Content-Type: text/markdown +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Typing :: Typed +Project-URL: Changes, https://itsdangerous.palletsprojects.com/changes/ +Project-URL: Chat, https://discord.gg/pallets +Project-URL: Documentation, https://itsdangerous.palletsprojects.com/ +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Source, https://github.com/pallets/itsdangerous/ + +# ItsDangerous + +... so better sign this + +Various helpers to pass data to untrusted environments and to get it +back safe and sound. Data is cryptographically signed to ensure that a +token has not been tampered with. + +It's possible to customize how data is serialized. Data is compressed as +needed. A timestamp can be added and verified automatically while +loading a token. + + +## A Simple Example + +Here's how you could generate a token for transmitting a user's id and +name between web requests. + +```python +from itsdangerous import URLSafeSerializer +auth_s = URLSafeSerializer("secret key", "auth") +token = auth_s.dumps({"id": 5, "name": "itsdangerous"}) + +print(token) +# eyJpZCI6NSwibmFtZSI6Iml0c2Rhbmdlcm91cyJ9.6YP6T0BaO67XP--9UzTrmurXSmg + +data = auth_s.loads(token) +print(data["name"]) +# itsdangerous +``` + + +## Donate + +The Pallets organization develops and supports ItsDangerous and other +popular packages. In order to grow the community of contributors and +users, and allow the maintainers to devote more time to the projects, +[please donate today][]. + +[please donate today]: https://palletsprojects.com/donate + diff --git a/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/RECORD b/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/RECORD new file mode 100644 index 0000000..255db20 --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/RECORD @@ -0,0 +1,22 @@ +itsdangerous-2.2.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +itsdangerous-2.2.0.dist-info/LICENSE.txt,sha256=Y68JiRtr6K0aQlLtQ68PTvun_JSOIoNnvtfzxa4LCdc,1475 +itsdangerous-2.2.0.dist-info/METADATA,sha256=0rk0-1ZwihuU5DnwJVwPWoEI4yWOyCexih3JyZHblhE,1924 +itsdangerous-2.2.0.dist-info/RECORD,, +itsdangerous-2.2.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81 +itsdangerous/__init__.py,sha256=4SK75sCe29xbRgQE1ZQtMHnKUuZYAf3bSpZOrff1IAY,1427 +itsdangerous/__pycache__/__init__.cpython-310.pyc,, +itsdangerous/__pycache__/_json.cpython-310.pyc,, +itsdangerous/__pycache__/encoding.cpython-310.pyc,, +itsdangerous/__pycache__/exc.cpython-310.pyc,, +itsdangerous/__pycache__/serializer.cpython-310.pyc,, +itsdangerous/__pycache__/signer.cpython-310.pyc,, +itsdangerous/__pycache__/timed.cpython-310.pyc,, +itsdangerous/__pycache__/url_safe.cpython-310.pyc,, +itsdangerous/_json.py,sha256=wPQGmge2yZ9328EHKF6gadGeyGYCJQKxtU-iLKE6UnA,473 +itsdangerous/encoding.py,sha256=wwTz5q_3zLcaAdunk6_vSoStwGqYWe307Zl_U87aRFM,1409 +itsdangerous/exc.py,sha256=Rr3exo0MRFEcPZltwecyK16VV1bE2K9_F1-d-ljcUn4,3201 +itsdangerous/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +itsdangerous/serializer.py,sha256=PmdwADLqkSyQLZ0jOKAgDsAW4k_H0TlA71Ei3z0C5aI,15601 +itsdangerous/signer.py,sha256=YO0CV7NBvHA6j549REHJFUjUojw2pHqwcUpQnU7yNYQ,9647 +itsdangerous/timed.py,sha256=6RvDMqNumGMxf0-HlpaZdN9PUQQmRvrQGplKhxuivUs,8083 +itsdangerous/url_safe.py,sha256=az4e5fXi_vs-YbWj8YZwn4wiVKfeD--GEKRT5Ueu4P4,2505 diff --git a/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/WHEEL b/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/WHEEL new file mode 100644 index 0000000..3b5e64b --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous-2.2.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.9.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.10/site-packages/itsdangerous/__init__.py b/venv/lib/python3.10/site-packages/itsdangerous/__init__.py new file mode 100644 index 0000000..ea55256 --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous/__init__.py @@ -0,0 +1,38 @@ +from __future__ import annotations + +import typing as t + +from .encoding import base64_decode as base64_decode +from .encoding import base64_encode as base64_encode +from .encoding import want_bytes as want_bytes +from .exc import BadData as BadData +from .exc import BadHeader as BadHeader +from .exc import BadPayload as BadPayload +from .exc import BadSignature as BadSignature +from .exc import BadTimeSignature as BadTimeSignature +from .exc import SignatureExpired as SignatureExpired +from .serializer import Serializer as Serializer +from .signer import HMACAlgorithm as HMACAlgorithm +from .signer import NoneAlgorithm as NoneAlgorithm +from .signer import Signer as Signer +from .timed import TimedSerializer as TimedSerializer +from .timed import TimestampSigner as TimestampSigner +from .url_safe import URLSafeSerializer as URLSafeSerializer +from .url_safe import URLSafeTimedSerializer as URLSafeTimedSerializer + + +def __getattr__(name: str) -> t.Any: + if name == "__version__": + import importlib.metadata + import warnings + + warnings.warn( + "The '__version__' attribute is deprecated and will be removed in" + " ItsDangerous 2.3. Use feature detection or" + " 'importlib.metadata.version(\"itsdangerous\")' instead.", + DeprecationWarning, + stacklevel=2, + ) + return importlib.metadata.version("itsdangerous") + + raise AttributeError(name) diff --git a/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..198ac21bb7f226a4c7aec87346e526e541f3d49a GIT binary patch literal 1466 zcmaKsL2uhO6o5s^mSkIY94Aehv>1c}o$CR$*LEl{pcs}l1v+30hPg!n_8`zE<1nQt zgQT6hO)uN7JM9mw$NeQ;cgkfypu6mmwF74ZCIL_1dwhK4dwf*UY}P$^K8xP+->RPX zr&ZRU0FC_jzpZ-aLsWH zT*r0CHQ)wrIIaUHIC0znZsMln1h|D;j+Y)5U7NQ^& zv;?#vpGab6$_8zN{*34BitSQ)@_Nb@v-9dhrZ^G&jf>fQ`u)M<12HKSHzzp^H;)R* z)(xSJ;e0o2czR{JGigKe>801^^B=z(l4EwoZ)a)zSA?=6NzTeZ8&!siK_>D;)$|YK zVr*--dTeV!%XyD&dp!a;hxU5qt9|NIPk8T;`=WRLxqs@@z(AwX>aPLv&e3V*_bLtF zqoHTQbMI&L6Y51rWh2YxOldf!EK_!+H}9XFu(Z2o?xw^T#YZ#4Qm#|VrizV;VKgO@ zre|D;bi`7{@?s7)F4J#~J|uF&R58=({r-b~`dqX0n7Q+T`G$>cTcm|byF8y3$_PH{ z=gbfaXWd`!=guu|G+o8H)$2lNZJ-1C7e4IMo*$HZ{7SGn6J@gQ+>6T2e*>5C8BvnU zi7qRa%Ff|371+#+k3(g=+C~{I_ffVER_Q-cs!+W^U4!+@+T{xB6VU(g)NS~DcsV#J zayB^C_wRi1kByw?&R zWEq#-WLbZ@u%|VFGQobb>^iKbw?V|nz7^j`e&D00IOXq?3~`s zvYutfGkaO!%xx{p&@84=@;KqOx5Cw_wd|7`{T0CmWdHUIzs literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/_json.cpython-310.pyc b/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/_json.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..591b36838bdf30c448c32fba3762f220cba57a4c GIT binary patch literal 984 zcmZuv&2H2%5VoD4UAkGQDjp!$RPBbA69}QAN+5x>9C`rd61i))n{5&Y+iA6BZ|#|9 zXeBN@625Zc752nTg3yAn6z3byc)oAOqsHSc0&92hx%f^A`GLmf^1wJEgqjHeK?E&H zMKekfvyx?A_xH2l4H2I3Z;9}4SQZL)LXzMoW=g0V@w!%)+d|c5I>W=w<%4mA6ng+9 z$*3S16EyRrFCL0e3~v1!ngw7z5+f0HRw%|mu7}eM)3P{Co28wr`sw80NoqjuKFGa*2#B^u@ET%OYtoKu(k%4@ zNRJeTAz;@#o1K|-TAZg&7cRWG;`-b;59gA$knkL-5lgcq3GzW literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/encoding.cpython-310.pyc b/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/encoding.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..acc25a905d1d7ab252a5ce8ddc2e8553896810a3 GIT binary patch literal 1935 zcma)6-ESN<5VyU1dzZbBe5VPm==Mu+rI#ZR0!Xw%Ej%EhAZYo}MPapfb}k$Cc2Bl9 zX^sQ|=_`Lhg>-p?f61>r<(ap>lo@X#E+8a!C3`#`d*=6>@nrS7PvE;-{yzSxM93ew znEYH=d`JjYzk$FBrwJL*4y7owgmsvmosMH?x8vHm)bY5(-K0FIbSjigc|71Zc!N(r zD|M#$O+L%#p1B<#qoINJZJ7>z&qn##36xJ#DCZQ3WwL3c80{C{qz>FXM6AHx8(cC#1}zGM*GVm#HaPtDb|d z&Oelqu}8?*D>nK9plF;PL+<*o{*RbaDqNX(~)IZ z$|)SGF#JyB3`{S!+Pm36wD;6oYwx#*GTRe9t=e&twFXfd^@VKji*&!8#NGDrQ152x z+pBADwpFY}YZ&#u0}HU$ibpBfX1Qu#U|by@8vh_lb!cIsPvybjJ2mPuIR|1vRNC($ zj~5@x2-`wl1_2?T&|`oNfXOKxJDi?U0L(_;K8%#uSPu$}K@=eIX+Owz3dVy>23kDT ztHG095lEr(MB~1VD2Sx+1Nc<5BLbZTxe`H~248;hsamxge_|~6o9=nAUF*!u<}$$} zVRvJ_a10ql$HOL-^KilvTMV0F43+o?Xbf)C^?3gH7aS3dnfdW{>*s! znEpTy=mBX~MxUM2#|4%M&3)>NJSb>s6|}&Eh8MKiEEi-uiAd!lm|vp12-HkHIUI_Q@$ne{t0>6}S>o;B z6H{QQ_^&J!cU%J_g%6Xs6bdLJ8@*{gGZ-8>-w8Hyx1ts?2^U-y^`Y1}0sGEqb zEsJ;iUZC?KEaOyfZyP7g2gU*UQYtT1asw_aDtSyV>UYx?7{qMqAsh~MR=gGCB^UK{ z6OR28No~@04Ga_(O@qqUU@~PJpqBp%1-fxjRhSA41q0#GKTarjR7K8y|Anv&ehm4-rp9c_@ni9)YUn!W>jHn0UM@7cQ~Mj){VG%H0nvfgY9Z U+}cZj%C9UpeCE*x^__i_@% literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/exc.cpython-310.pyc b/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/exc.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..27531ac809f4f1f25a516f3774a6598f88461a2f GIT binary patch literal 3400 zcmaJ@NpIUm6y{LWzF5uDI_bu4KoulXlBS0mL6N2jx*Uw633?C;P-D&5VoH(f4CTbC zFGT|62lNj#M_>AbcNrzxltnEbDI) zikAc7j%6|Z3=?4q7Fbg@WQ^u^U=K_9F9puj89L1R#uAPwKeI$xmYt z$W_QSQHNZYRme5S4bg<$lr_k8$Su)^+&23S$Q`i(dBeQl6!rtF*Zqgi*JDYOhhY@+ z*pEWJ4Y?+GEMtEv$Mit)A|r4yeHEj$hD=yPTQD5H{@mJS=FqL7gTqus?U^$yKerrf zSi#4dN%bxl_jt?~fBeXOErsjvx;tFB_!xJiU6+Rku8vgfKIYn$;W(Oyu~bs@-G>uj zyZFTui8r)txVUyBtBEDEzE{%4HeBvu3&O#J%V|vifNCf_Ao_U zSM7YD4<%L4gYP`=90W~XtFXn!>YHY-XB!QQ6l1=DzjR(DpM`uXJuhi^-ZT>PfaWdF z`*qHPyCRa>MU=Ty9*-ye?Ufsn z>Wm)*5f{g;xc?P`;LzQULOCYRW!I8_#6$M-6bJ2$gDFTQMRukx+Qh6^O5q~g6fG#@ z8sjPBA9Cg;+!i;G2*a=xVMoz>A(ZS?9;?hZ9<*@hc?d@J=9qP)cevkCO zO~X2n-@yh2lctnGAlp@&ZT_cd{S?rYcfAY{E3I8IU1#P#XyEN#?72x&6Y>^X| zq{ct0>{L?yoGwdi6b1*z4--C{$xxfxs-^M~1q&3+w6IS2zJ!~W8cnU;qonrOk0(@` zjfNb7*Oc6ww_Xz`l~jMyiIl(Rhdl74Qjt3D-p}fM7Bfqq!C{s~bBdc1afkT0E@loL zL=M`lte824Joy3MQ6FOHl~0CGzO^ofzQ-#jeRZl8r{OHl<#4RRr?idusjZD4qnq-l z`L_CqW@ko{i`~1pHQLKGk{UKcEd8r!=S)s1O0np_8aUbyX{F(}5NJiVEGtlfCrfIe z3k$#^!wYKIs0CX-oJ9_mE-+0C)!96vZ2U8+rY6jk-I}7cUW+=f-8r=}=%j2cC6)MK1_vfAR%BID&%@C4Po`X( tRBrN`A)?V$CkOlr5&w(d)?&(hQ?w5*!lV%<`Aquc3jb}JVy{|_TL;=}*| literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/serializer.cpython-310.pyc b/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/serializer.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..099c687353cdebf806fc31ded1469b218cd06391 GIT binary patch literal 11732 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/signer.cpython-310.pyc b/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/signer.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d1090c4403724326c4abf5b955604cb07fa33bd9 GIT binary patch literal 9011 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 R87|mMOZD1P)jhpj`#(a@`lA2< literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/timed.cpython-310.pyc b/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/timed.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..45c72bef35af652d68e92436b25d7b7109a7e67b GIT binary patch literal 6571 zcmdT|&2!tv6~_V~34$M@Wl5Iv;UIConAnu){T?*nZWy&DI zEI`>}Ah%^(z%y!}Chvz>{-nr2GpnmN^$ zZx--2Jga9lE!Ag&E;fsxb3E_ay;8HJ=mO|+v#e+fbfsBQbP;s5Syi+RdZsy}=#p3K z9cdm>bQ$z)b5_w6&_|m`6eDh*}EE_6^nO_ z=5f@I@;TJ!#DbVVuA%J-uCHqK`OirXbrzT0e%}w>unR{-C@mQ+PcVJ z>uqme(7}xOHb^7&@*O_!!alB@fhSIx5@2<9Ad&fDF3* zO~>tXr|tHg4dDy}!JW`|gp#8}Bb4BShO>4pnY`Q+;kD)UVV^qJ9jf`seCc)r;Vg@r z?Q|z`%sO$15Sj8qS1f?xCgy<~fT8q5M6McEuZy_U5mdeAsDGSX@mG?ofe5uN7O_y@GB~?O zen58}i1%&3zbzz$2DKYAcRJGVIjKe*Vus`HLyr!K&%NPFXou3&^~{4bGJ?iCm)G8I z*kgG&8V)!HIFa@>k^)~|cFr}gkDU?cwq0*1_Dex1oybv+G|s8l zp_8XgjZgk9R6;Fcci1iqar%*V-yrKjT}QjNWr8vy78%F1NI$0SLPr#>-OojAj~&yL zoh_5%C04cx>Gd7#A#*XxAGu-Zwyy~cfvV!nJHG6x$kM3iB}HOcprS~{B8u1u#2``m zu`_~@l@L!*e{n1W`7BME5~@kFPNO5B#Vx(YY*uEoY&175OB%RxAuiKf@RpKcT7_8|n;Uu0WaMTB2kV8{DsjjrU-=()B*PfX@_H+a%cRA(|W%nb;Rp;SkmXwxag> zApMvZ&@Nx3;$x`mgj|YqyB`HvXlN z6?itt_t*Xi2PiCMEGr;LH@Tu)- zk-ezxR-#IzUpM7n!z0{^Du32^G15`mpXRVux}S8#3NKyP%sY6bGN&`Y&h?B;Gw7OaUIblKs%{FXw00fl10daASgi_H@Y6J zd^m*QJ1B0A=VwSOv!Vk5%-^6G|NkDxR=$8$YNI1#x9aq|K>#0)09P2eJD%@yNicbI z^k=R|?wjIaCRN0@*U%T2NItE^m5!>baH)xm;Yyv6;k@aLEGGao?ejpAYaErGH=HwB zQ++nh1;c@m%FW0U2B>9|0P!qU3F83{1_Q4fN{d?Z)KWZuvn>XM;v@m1*nXcv;dv>2 z85b_DCPd{Ta7D-SZzNR%nx|rotYAvLngo}_{+N(wF!aK>h;M3PV_1)gB;u$rWQ9SJ zvc!2%2o`Y;Zyv@5;Baif1D-~f4^dpgsuAlY37S_s+BT;>b8v8vtB>gGsX?0Y*- zX5xpUzlx>QH53i!Qi{RHhS}|m?TW0M)Fn|9akCqQ0B}f5V909aMxCkfxOM?LM$t#9 zMctS_t*O9iW!t)sDJnD2jVjAShf|ZeHIO` zmt(8d>bpJBYQ=V|)${q#Bf8vbeKd5vw5QN&!8=1`363eNlFx&RSr}VB3`sczbs+Ch zb0yXBw(z`6&()cnr|Aki905g5!E-1q&17~SKie$nCN%m>vyi-X8~Xd@+y|1zxA8yp zX!isnueg%zBn?;p@+X#Ork_?t+7{gvbT z6NoH_0mRAy1_9{pu^(wymv{4{rvV*x<lgte-;eiOUmcR&slC@X`xfHMu#VRCD4dQ*T9=7IcwaY z7sw|~TM{6I+lTEgN0{!04uPDp(-r*ymud==P1c0N#ciMCdpt{pkq;-AC4_C#s0~h& zn-QqSV^;BpA)x?%D*LF_%)d{rgo5#2)c5m-^8dQemSRJW!0m`uw>R+MEL3Jbk&AK)${&oK zLL%NEo%c`rQu0W1`O#C4{f=~C64Oj2WO)e_l2ELCl(BMQrEW{b_Hj{{+{g69D`-Qs zUcvD{Zl2osgw3yMbV(9WlkZaT6Dod6#Stogjv}6EwGLdBBl;CdXBsk+ug8c#6Us)^b7Eo%Leo*a4e>Fq< I&Eow30P@a@Hvj+t literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/url_safe.cpython-310.pyc b/venv/lib/python3.10/site-packages/itsdangerous/__pycache__/url_safe.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c1b46058943d6a161619fbf7399b94aa1c2bf3a GIT binary patch literal 2865 zcmbVOOK%)S5bmD0*SqUSoIt`uEgk{`*(JPRLOeov2%Lz3kOrY~d%A6pJv*~>_hNQg zBZPxE!7tzt5JJkGAHanJ62D-soH*we@v7=sXP00&Fr%rduBxu-uKKEL%2umE;JPpT zDEn!SkY8{xdj&9fju5K92SyMmT%+>y~TKul9!2?7tKpVG-X>Zog@ctybQ9I zXoIXRmnTv$J_gbSu?W&dkSQL2pR*+?poHU2hQ zcq{8kF%_k_oY~8-2UMR0Mv|Bc5<720sAE@pu`e7M2=^HxJmG&u#j(%HCKYY5aH$=K zV#SV@#PX$P9DPna63@Ywk5?z&e)IK{*QNDR$C%Y2opq&47;%HHQeH3(JIIG@L$ZF((|X;U!PYv~&FJ`z!G9N) z^j@_r`(XOcifQ3MYb(E^sqcfbg`?~mzaD3GtIS{PF(2lAP7lI&CA?fav^&@nxr z`@uV;IOY-K4DY36Kcr+78YrA`D1tAXarmhtK>BgGNB79sSLZfUzgP}(!JtOiBtdl%*aS`D z1-VH1KucC`GDwj8FqM5QCmLiRC6yKeo}=v_Rx3Lm^!a~J?KkSHL*aGsV7g%d{ebyj?J%HMD7@p zQ`XOpE{lrFE3}$Rk~HU9C&?9Z?cMHn*^}KJ{m_{wyM0ye$kga=mY1h{yx?0>bw7~B z2VGc1w?8!7W$|$5%!6H>8F?B`m0hp^Yoi4(z_uLd?m*=U;=0oxs$1d9H^HNy0OExW zr%65P0Buvp-rgUM>--*l;{53a4oLqgKNXDbJi699vjM2wa%1N@YT;`H4|dEuJXEg% zW5@xy49En0Ie=i-IG5cqAb8(1-q<^!K%E0BoSVrmQMZgeuyVo5M=9XlRd)+-?B7Iy z_W@o0+PNB6>Nq%G4b(00s+wZZ>mO!CokUS|2#dTc-)?gKiq4ga|?nH7okjLTCD?l)?4Z7lZ@QxhMiKyrNYv5+rxZ0>O1I0~h%q$^? zM}%5NVj*N@_#K7Zs#mXkD#h8WjVel#g7;*SRE;F*m12-1-%OJC2Rxr>!Xy!8nk33Y zcTFJGLXyn1E>IzE?Eb3O1gojcb5PjbTf)%9#$g^f{JutC4dT(J?*z-gonQ(zDLj9> z@I-hHFmV+N28p+RTb;AsHI40f79A4+;Mc~7bodNfP7xq`k8^4iF{;dy_X zZ%D(qW_u75e6O$Hliahu{s1zkfw6vo?*LynlC>+Ix*xWy9zb#$Ne9U^oR+iUdBQL)fv#Py4M@>4L<{;ACHRN4MzVJK)Y*5iS3pDKY-Q^M*4pSP(2LW zJThL7g5o?XA3=g6_&ovmZw{c50{oQ&qAD=MKIFTiralz>1kYnz165@I6F_S_fIT28 z7dnq^0Cgo|3s&&^N-E#r-}zZXO%lNo(S(zD Mdat-Ao;(%)1;WttVE_OC literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/itsdangerous/_json.py b/venv/lib/python3.10/site-packages/itsdangerous/_json.py new file mode 100644 index 0000000..fc23fea --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous/_json.py @@ -0,0 +1,18 @@ +from __future__ import annotations + +import json as _json +import typing as t + + +class _CompactJSON: + """Wrapper around json module that strips whitespace.""" + + @staticmethod + def loads(payload: str | bytes) -> t.Any: + return _json.loads(payload) + + @staticmethod + def dumps(obj: t.Any, **kwargs: t.Any) -> str: + kwargs.setdefault("ensure_ascii", False) + kwargs.setdefault("separators", (",", ":")) + return _json.dumps(obj, **kwargs) diff --git a/venv/lib/python3.10/site-packages/itsdangerous/encoding.py b/venv/lib/python3.10/site-packages/itsdangerous/encoding.py new file mode 100644 index 0000000..f5ca80f --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous/encoding.py @@ -0,0 +1,54 @@ +from __future__ import annotations + +import base64 +import string +import struct +import typing as t + +from .exc import BadData + + +def want_bytes( + s: str | bytes, encoding: str = "utf-8", errors: str = "strict" +) -> bytes: + if isinstance(s, str): + s = s.encode(encoding, errors) + + return s + + +def base64_encode(string: str | bytes) -> bytes: + """Base64 encode a string of bytes or text. The resulting bytes are + safe to use in URLs. + """ + string = want_bytes(string) + return base64.urlsafe_b64encode(string).rstrip(b"=") + + +def base64_decode(string: str | bytes) -> bytes: + """Base64 decode a URL-safe string of bytes or text. The result is + bytes. + """ + string = want_bytes(string, encoding="ascii", errors="ignore") + string += b"=" * (-len(string) % 4) + + try: + return base64.urlsafe_b64decode(string) + except (TypeError, ValueError) as e: + raise BadData("Invalid base64-encoded data") from e + + +# The alphabet used by base64.urlsafe_* +_base64_alphabet = f"{string.ascii_letters}{string.digits}-_=".encode("ascii") + +_int64_struct = struct.Struct(">Q") +_int_to_bytes = _int64_struct.pack +_bytes_to_int = t.cast("t.Callable[[bytes], tuple[int]]", _int64_struct.unpack) + + +def int_to_bytes(num: int) -> bytes: + return _int_to_bytes(num).lstrip(b"\x00") + + +def bytes_to_int(bytestr: bytes) -> int: + return _bytes_to_int(bytestr.rjust(8, b"\x00"))[0] diff --git a/venv/lib/python3.10/site-packages/itsdangerous/exc.py b/venv/lib/python3.10/site-packages/itsdangerous/exc.py new file mode 100644 index 0000000..a75adcd --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous/exc.py @@ -0,0 +1,106 @@ +from __future__ import annotations + +import typing as t +from datetime import datetime + + +class BadData(Exception): + """Raised if bad data of any sort was encountered. This is the base + for all exceptions that ItsDangerous defines. + + .. versionadded:: 0.15 + """ + + def __init__(self, message: str): + super().__init__(message) + self.message = message + + def __str__(self) -> str: + return self.message + + +class BadSignature(BadData): + """Raised if a signature does not match.""" + + def __init__(self, message: str, payload: t.Any | None = None): + super().__init__(message) + + #: The payload that failed the signature test. In some + #: situations you might still want to inspect this, even if + #: you know it was tampered with. + #: + #: .. versionadded:: 0.14 + self.payload: t.Any | None = payload + + +class BadTimeSignature(BadSignature): + """Raised if a time-based signature is invalid. This is a subclass + of :class:`BadSignature`. + """ + + def __init__( + self, + message: str, + payload: t.Any | None = None, + date_signed: datetime | None = None, + ): + super().__init__(message, payload) + + #: If the signature expired this exposes the date of when the + #: signature was created. This can be helpful in order to + #: tell the user how long a link has been gone stale. + #: + #: .. versionchanged:: 2.0 + #: The datetime value is timezone-aware rather than naive. + #: + #: .. versionadded:: 0.14 + self.date_signed = date_signed + + +class SignatureExpired(BadTimeSignature): + """Raised if a signature timestamp is older than ``max_age``. This + is a subclass of :exc:`BadTimeSignature`. + """ + + +class BadHeader(BadSignature): + """Raised if a signed header is invalid in some form. This only + happens for serializers that have a header that goes with the + signature. + + .. versionadded:: 0.24 + """ + + def __init__( + self, + message: str, + payload: t.Any | None = None, + header: t.Any | None = None, + original_error: Exception | None = None, + ): + super().__init__(message, payload) + + #: If the header is actually available but just malformed it + #: might be stored here. + self.header: t.Any | None = header + + #: If available, the error that indicates why the payload was + #: not valid. This might be ``None``. + self.original_error: Exception | None = original_error + + +class BadPayload(BadData): + """Raised if a payload is invalid. This could happen if the payload + is loaded despite an invalid signature, or if there is a mismatch + between the serializer and deserializer. The original exception + that occurred during loading is stored on as :attr:`original_error`. + + .. versionadded:: 0.15 + """ + + def __init__(self, message: str, original_error: Exception | None = None): + super().__init__(message) + + #: If available, the error that indicates why the payload was + #: not valid. This might be ``None``. + self.original_error: Exception | None = original_error diff --git a/venv/lib/python3.10/site-packages/itsdangerous/py.typed b/venv/lib/python3.10/site-packages/itsdangerous/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.10/site-packages/itsdangerous/serializer.py b/venv/lib/python3.10/site-packages/itsdangerous/serializer.py new file mode 100644 index 0000000..5ddf387 --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous/serializer.py @@ -0,0 +1,406 @@ +from __future__ import annotations + +import collections.abc as cabc +import json +import typing as t + +from .encoding import want_bytes +from .exc import BadPayload +from .exc import BadSignature +from .signer import _make_keys_list +from .signer import Signer + +if t.TYPE_CHECKING: + import typing_extensions as te + + # This should be either be str or bytes. To avoid having to specify the + # bound type, it falls back to a union if structural matching fails. + _TSerialized = te.TypeVar( + "_TSerialized", bound=t.Union[str, bytes], default=t.Union[str, bytes] + ) +else: + # Still available at runtime on Python < 3.13, but without the default. + _TSerialized = t.TypeVar("_TSerialized", bound=t.Union[str, bytes]) + + +class _PDataSerializer(t.Protocol[_TSerialized]): + def loads(self, payload: _TSerialized, /) -> t.Any: ... + # A signature with additional arguments is not handled correctly by type + # checkers right now, so an overload is used below for serializers that + # don't match this strict protocol. + def dumps(self, obj: t.Any, /) -> _TSerialized: ... + + +# Use TypeIs once it's available in typing_extensions or 3.13. +def is_text_serializer( + serializer: _PDataSerializer[t.Any], +) -> te.TypeGuard[_PDataSerializer[str]]: + """Checks whether a serializer generates text or binary.""" + return isinstance(serializer.dumps({}), str) + + +class Serializer(t.Generic[_TSerialized]): + """A serializer wraps a :class:`~itsdangerous.signer.Signer` to + enable serializing and securely signing data other than bytes. It + can unsign to verify that the data hasn't been changed. + + The serializer provides :meth:`dumps` and :meth:`loads`, similar to + :mod:`json`, and by default uses :mod:`json` internally to serialize + the data to bytes. + + The secret key should be a random string of ``bytes`` and should not + be saved to code or version control. Different salts should be used + to distinguish signing in different contexts. See :doc:`/concepts` + for information about the security of the secret key and salt. + + :param secret_key: The secret key to sign and verify with. Can be a + list of keys, oldest to newest, to support key rotation. + :param salt: Extra key to combine with ``secret_key`` to distinguish + signatures in different contexts. + :param serializer: An object that provides ``dumps`` and ``loads`` + methods for serializing data to a string. Defaults to + :attr:`default_serializer`, which defaults to :mod:`json`. + :param serializer_kwargs: Keyword arguments to pass when calling + ``serializer.dumps``. + :param signer: A ``Signer`` class to instantiate when signing data. + Defaults to :attr:`default_signer`, which defaults to + :class:`~itsdangerous.signer.Signer`. + :param signer_kwargs: Keyword arguments to pass when instantiating + the ``Signer`` class. + :param fallback_signers: List of signer parameters to try when + unsigning with the default signer fails. Each item can be a dict + of ``signer_kwargs``, a ``Signer`` class, or a tuple of + ``(signer, signer_kwargs)``. Defaults to + :attr:`default_fallback_signers`. + + .. versionchanged:: 2.0 + Added support for key rotation by passing a list to + ``secret_key``. + + .. versionchanged:: 2.0 + Removed the default SHA-512 fallback signer from + ``default_fallback_signers``. + + .. versionchanged:: 1.1 + Added support for ``fallback_signers`` and configured a default + SHA-512 fallback. This fallback is for users who used the yanked + 1.0.0 release which defaulted to SHA-512. + + .. versionchanged:: 0.14 + The ``signer`` and ``signer_kwargs`` parameters were added to + the constructor. + """ + + #: The default serialization module to use to serialize data to a + #: string internally. The default is :mod:`json`, but can be changed + #: to any object that provides ``dumps`` and ``loads`` methods. + default_serializer: _PDataSerializer[t.Any] = json + + #: The default ``Signer`` class to instantiate when signing data. + #: The default is :class:`itsdangerous.signer.Signer`. + default_signer: type[Signer] = Signer + + #: The default fallback signers to try when unsigning fails. + default_fallback_signers: list[ + dict[str, t.Any] | tuple[type[Signer], dict[str, t.Any]] | type[Signer] + ] = [] + + # Serializer[str] if no data serializer is provided, or if it returns str. + @t.overload + def __init__( + self: Serializer[str], + secret_key: str | bytes | cabc.Iterable[str] | cabc.Iterable[bytes], + salt: str | bytes | None = b"itsdangerous", + serializer: None | _PDataSerializer[str] = None, + serializer_kwargs: dict[str, t.Any] | None = None, + signer: type[Signer] | None = None, + signer_kwargs: dict[str, t.Any] | None = None, + fallback_signers: list[ + dict[str, t.Any] | tuple[type[Signer], dict[str, t.Any]] | type[Signer] + ] + | None = None, + ): ... + + # Serializer[bytes] with a bytes data serializer positional argument. + @t.overload + def __init__( + self: Serializer[bytes], + secret_key: str | bytes | cabc.Iterable[str] | cabc.Iterable[bytes], + salt: str | bytes | None, + serializer: _PDataSerializer[bytes], + serializer_kwargs: dict[str, t.Any] | None = None, + signer: type[Signer] | None = None, + signer_kwargs: dict[str, t.Any] | None = None, + fallback_signers: list[ + dict[str, t.Any] | tuple[type[Signer], dict[str, t.Any]] | type[Signer] + ] + | None = None, + ): ... + + # Serializer[bytes] with a bytes data serializer keyword argument. + @t.overload + def __init__( + self: Serializer[bytes], + secret_key: str | bytes | cabc.Iterable[str] | cabc.Iterable[bytes], + salt: str | bytes | None = b"itsdangerous", + *, + serializer: _PDataSerializer[bytes], + serializer_kwargs: dict[str, t.Any] | None = None, + signer: type[Signer] | None = None, + signer_kwargs: dict[str, t.Any] | None = None, + fallback_signers: list[ + dict[str, t.Any] | tuple[type[Signer], dict[str, t.Any]] | type[Signer] + ] + | None = None, + ): ... + + # Fall back with a positional argument. If the strict signature of + # _PDataSerializer doesn't match, fall back to a union, requiring the user + # to specify the type. + @t.overload + def __init__( + self, + secret_key: str | bytes | cabc.Iterable[str] | cabc.Iterable[bytes], + salt: str | bytes | None, + serializer: t.Any, + serializer_kwargs: dict[str, t.Any] | None = None, + signer: type[Signer] | None = None, + signer_kwargs: dict[str, t.Any] | None = None, + fallback_signers: list[ + dict[str, t.Any] | tuple[type[Signer], dict[str, t.Any]] | type[Signer] + ] + | None = None, + ): ... + + # Fall back with a keyword argument. + @t.overload + def __init__( + self, + secret_key: str | bytes | cabc.Iterable[str] | cabc.Iterable[bytes], + salt: str | bytes | None = b"itsdangerous", + *, + serializer: t.Any, + serializer_kwargs: dict[str, t.Any] | None = None, + signer: type[Signer] | None = None, + signer_kwargs: dict[str, t.Any] | None = None, + fallback_signers: list[ + dict[str, t.Any] | tuple[type[Signer], dict[str, t.Any]] | type[Signer] + ] + | None = None, + ): ... + + def __init__( + self, + secret_key: str | bytes | cabc.Iterable[str] | cabc.Iterable[bytes], + salt: str | bytes | None = b"itsdangerous", + serializer: t.Any | None = None, + serializer_kwargs: dict[str, t.Any] | None = None, + signer: type[Signer] | None = None, + signer_kwargs: dict[str, t.Any] | None = None, + fallback_signers: list[ + dict[str, t.Any] | tuple[type[Signer], dict[str, t.Any]] | type[Signer] + ] + | None = None, + ): + #: The list of secret keys to try for verifying signatures, from + #: oldest to newest. The newest (last) key is used for signing. + #: + #: This allows a key rotation system to keep a list of allowed + #: keys and remove expired ones. + self.secret_keys: list[bytes] = _make_keys_list(secret_key) + + if salt is not None: + salt = want_bytes(salt) + # if salt is None then the signer's default is used + + self.salt = salt + + if serializer is None: + serializer = self.default_serializer + + self.serializer: _PDataSerializer[_TSerialized] = serializer + self.is_text_serializer: bool = is_text_serializer(serializer) + + if signer is None: + signer = self.default_signer + + self.signer: type[Signer] = signer + self.signer_kwargs: dict[str, t.Any] = signer_kwargs or {} + + if fallback_signers is None: + fallback_signers = list(self.default_fallback_signers) + + self.fallback_signers: list[ + dict[str, t.Any] | tuple[type[Signer], dict[str, t.Any]] | type[Signer] + ] = fallback_signers + self.serializer_kwargs: dict[str, t.Any] = serializer_kwargs or {} + + @property + def secret_key(self) -> bytes: + """The newest (last) entry in the :attr:`secret_keys` list. This + is for compatibility from before key rotation support was added. + """ + return self.secret_keys[-1] + + def load_payload( + self, payload: bytes, serializer: _PDataSerializer[t.Any] | None = None + ) -> t.Any: + """Loads the encoded object. This function raises + :class:`.BadPayload` if the payload is not valid. The + ``serializer`` parameter can be used to override the serializer + stored on the class. The encoded ``payload`` should always be + bytes. + """ + if serializer is None: + use_serializer = self.serializer + is_text = self.is_text_serializer + else: + use_serializer = serializer + is_text = is_text_serializer(serializer) + + try: + if is_text: + return use_serializer.loads(payload.decode("utf-8")) # type: ignore[arg-type] + + return use_serializer.loads(payload) # type: ignore[arg-type] + except Exception as e: + raise BadPayload( + "Could not load the payload because an exception" + " occurred on unserializing the data.", + original_error=e, + ) from e + + def dump_payload(self, obj: t.Any) -> bytes: + """Dumps the encoded object. The return value is always bytes. + If the internal serializer returns text, the value will be + encoded as UTF-8. + """ + return want_bytes(self.serializer.dumps(obj, **self.serializer_kwargs)) + + def make_signer(self, salt: str | bytes | None = None) -> Signer: + """Creates a new instance of the signer to be used. The default + implementation uses the :class:`.Signer` base class. + """ + if salt is None: + salt = self.salt + + return self.signer(self.secret_keys, salt=salt, **self.signer_kwargs) + + def iter_unsigners(self, salt: str | bytes | None = None) -> cabc.Iterator[Signer]: + """Iterates over all signers to be tried for unsigning. Starts + with the configured signer, then constructs each signer + specified in ``fallback_signers``. + """ + if salt is None: + salt = self.salt + + yield self.make_signer(salt) + + for fallback in self.fallback_signers: + if isinstance(fallback, dict): + kwargs = fallback + fallback = self.signer + elif isinstance(fallback, tuple): + fallback, kwargs = fallback + else: + kwargs = self.signer_kwargs + + for secret_key in self.secret_keys: + yield fallback(secret_key, salt=salt, **kwargs) + + def dumps(self, obj: t.Any, salt: str | bytes | None = None) -> _TSerialized: + """Returns a signed string serialized with the internal + serializer. The return value can be either a byte or unicode + string depending on the format of the internal serializer. + """ + payload = want_bytes(self.dump_payload(obj)) + rv = self.make_signer(salt).sign(payload) + + if self.is_text_serializer: + return rv.decode("utf-8") # type: ignore[return-value] + + return rv # type: ignore[return-value] + + def dump(self, obj: t.Any, f: t.IO[t.Any], salt: str | bytes | None = None) -> None: + """Like :meth:`dumps` but dumps into a file. The file handle has + to be compatible with what the internal serializer expects. + """ + f.write(self.dumps(obj, salt)) + + def loads( + self, s: str | bytes, salt: str | bytes | None = None, **kwargs: t.Any + ) -> t.Any: + """Reverse of :meth:`dumps`. Raises :exc:`.BadSignature` if the + signature validation fails. + """ + s = want_bytes(s) + last_exception = None + + for signer in self.iter_unsigners(salt): + try: + return self.load_payload(signer.unsign(s)) + except BadSignature as err: + last_exception = err + + raise t.cast(BadSignature, last_exception) + + def load(self, f: t.IO[t.Any], salt: str | bytes | None = None) -> t.Any: + """Like :meth:`loads` but loads from a file.""" + return self.loads(f.read(), salt) + + def loads_unsafe( + self, s: str | bytes, salt: str | bytes | None = None + ) -> tuple[bool, t.Any]: + """Like :meth:`loads` but without verifying the signature. This + is potentially very dangerous to use depending on how your + serializer works. The return value is ``(signature_valid, + payload)`` instead of just the payload. The first item will be a + boolean that indicates if the signature is valid. This function + never fails. + + Use it for debugging only and if you know that your serializer + module is not exploitable (for example, do not use it with a + pickle serializer). + + .. versionadded:: 0.15 + """ + return self._loads_unsafe_impl(s, salt) + + def _loads_unsafe_impl( + self, + s: str | bytes, + salt: str | bytes | None, + load_kwargs: dict[str, t.Any] | None = None, + load_payload_kwargs: dict[str, t.Any] | None = None, + ) -> tuple[bool, t.Any]: + """Low level helper function to implement :meth:`loads_unsafe` + in serializer subclasses. + """ + if load_kwargs is None: + load_kwargs = {} + + try: + return True, self.loads(s, salt=salt, **load_kwargs) + except BadSignature as e: + if e.payload is None: + return False, None + + if load_payload_kwargs is None: + load_payload_kwargs = {} + + try: + return ( + False, + self.load_payload(e.payload, **load_payload_kwargs), + ) + except BadPayload: + return False, None + + def load_unsafe( + self, f: t.IO[t.Any], salt: str | bytes | None = None + ) -> tuple[bool, t.Any]: + """Like :meth:`loads_unsafe` but loads from a file. + + .. versionadded:: 0.15 + """ + return self.loads_unsafe(f.read(), salt=salt) diff --git a/venv/lib/python3.10/site-packages/itsdangerous/signer.py b/venv/lib/python3.10/site-packages/itsdangerous/signer.py new file mode 100644 index 0000000..e324dc0 --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous/signer.py @@ -0,0 +1,266 @@ +from __future__ import annotations + +import collections.abc as cabc +import hashlib +import hmac +import typing as t + +from .encoding import _base64_alphabet +from .encoding import base64_decode +from .encoding import base64_encode +from .encoding import want_bytes +from .exc import BadSignature + + +class SigningAlgorithm: + """Subclasses must implement :meth:`get_signature` to provide + signature generation functionality. + """ + + def get_signature(self, key: bytes, value: bytes) -> bytes: + """Returns the signature for the given key and value.""" + raise NotImplementedError() + + def verify_signature(self, key: bytes, value: bytes, sig: bytes) -> bool: + """Verifies the given signature matches the expected + signature. + """ + return hmac.compare_digest(sig, self.get_signature(key, value)) + + +class NoneAlgorithm(SigningAlgorithm): + """Provides an algorithm that does not perform any signing and + returns an empty signature. + """ + + def get_signature(self, key: bytes, value: bytes) -> bytes: + return b"" + + +def _lazy_sha1(string: bytes = b"") -> t.Any: + """Don't access ``hashlib.sha1`` until runtime. FIPS builds may not include + SHA-1, in which case the import and use as a default would fail before the + developer can configure something else. + """ + return hashlib.sha1(string) + + +class HMACAlgorithm(SigningAlgorithm): + """Provides signature generation using HMACs.""" + + #: The digest method to use with the MAC algorithm. This defaults to + #: SHA1, but can be changed to any other function in the hashlib + #: module. + default_digest_method: t.Any = staticmethod(_lazy_sha1) + + def __init__(self, digest_method: t.Any = None): + if digest_method is None: + digest_method = self.default_digest_method + + self.digest_method: t.Any = digest_method + + def get_signature(self, key: bytes, value: bytes) -> bytes: + mac = hmac.new(key, msg=value, digestmod=self.digest_method) + return mac.digest() + + +def _make_keys_list( + secret_key: str | bytes | cabc.Iterable[str] | cabc.Iterable[bytes], +) -> list[bytes]: + if isinstance(secret_key, (str, bytes)): + return [want_bytes(secret_key)] + + return [want_bytes(s) for s in secret_key] # pyright: ignore + + +class Signer: + """A signer securely signs bytes, then unsigns them to verify that + the value hasn't been changed. + + The secret key should be a random string of ``bytes`` and should not + be saved to code or version control. Different salts should be used + to distinguish signing in different contexts. See :doc:`/concepts` + for information about the security of the secret key and salt. + + :param secret_key: The secret key to sign and verify with. Can be a + list of keys, oldest to newest, to support key rotation. + :param salt: Extra key to combine with ``secret_key`` to distinguish + signatures in different contexts. + :param sep: Separator between the signature and value. + :param key_derivation: How to derive the signing key from the secret + key and salt. Possible values are ``concat``, ``django-concat``, + or ``hmac``. Defaults to :attr:`default_key_derivation`, which + defaults to ``django-concat``. + :param digest_method: Hash function to use when generating the HMAC + signature. Defaults to :attr:`default_digest_method`, which + defaults to :func:`hashlib.sha1`. Note that the security of the + hash alone doesn't apply when used intermediately in HMAC. + :param algorithm: A :class:`SigningAlgorithm` instance to use + instead of building a default :class:`HMACAlgorithm` with the + ``digest_method``. + + .. versionchanged:: 2.0 + Added support for key rotation by passing a list to + ``secret_key``. + + .. versionchanged:: 0.18 + ``algorithm`` was added as an argument to the class constructor. + + .. versionchanged:: 0.14 + ``key_derivation`` and ``digest_method`` were added as arguments + to the class constructor. + """ + + #: The default digest method to use for the signer. The default is + #: :func:`hashlib.sha1`, but can be changed to any :mod:`hashlib` or + #: compatible object. Note that the security of the hash alone + #: doesn't apply when used intermediately in HMAC. + #: + #: .. versionadded:: 0.14 + default_digest_method: t.Any = staticmethod(_lazy_sha1) + + #: The default scheme to use to derive the signing key from the + #: secret key and salt. The default is ``django-concat``. Possible + #: values are ``concat``, ``django-concat``, and ``hmac``. + #: + #: .. versionadded:: 0.14 + default_key_derivation: str = "django-concat" + + def __init__( + self, + secret_key: str | bytes | cabc.Iterable[str] | cabc.Iterable[bytes], + salt: str | bytes | None = b"itsdangerous.Signer", + sep: str | bytes = b".", + key_derivation: str | None = None, + digest_method: t.Any | None = None, + algorithm: SigningAlgorithm | None = None, + ): + #: The list of secret keys to try for verifying signatures, from + #: oldest to newest. The newest (last) key is used for signing. + #: + #: This allows a key rotation system to keep a list of allowed + #: keys and remove expired ones. + self.secret_keys: list[bytes] = _make_keys_list(secret_key) + self.sep: bytes = want_bytes(sep) + + if self.sep in _base64_alphabet: + raise ValueError( + "The given separator cannot be used because it may be" + " contained in the signature itself. ASCII letters," + " digits, and '-_=' must not be used." + ) + + if salt is not None: + salt = want_bytes(salt) + else: + salt = b"itsdangerous.Signer" + + self.salt = salt + + if key_derivation is None: + key_derivation = self.default_key_derivation + + self.key_derivation: str = key_derivation + + if digest_method is None: + digest_method = self.default_digest_method + + self.digest_method: t.Any = digest_method + + if algorithm is None: + algorithm = HMACAlgorithm(self.digest_method) + + self.algorithm: SigningAlgorithm = algorithm + + @property + def secret_key(self) -> bytes: + """The newest (last) entry in the :attr:`secret_keys` list. This + is for compatibility from before key rotation support was added. + """ + return self.secret_keys[-1] + + def derive_key(self, secret_key: str | bytes | None = None) -> bytes: + """This method is called to derive the key. The default key + derivation choices can be overridden here. Key derivation is not + intended to be used as a security method to make a complex key + out of a short password. Instead you should use large random + secret keys. + + :param secret_key: A specific secret key to derive from. + Defaults to the last item in :attr:`secret_keys`. + + .. versionchanged:: 2.0 + Added the ``secret_key`` parameter. + """ + if secret_key is None: + secret_key = self.secret_keys[-1] + else: + secret_key = want_bytes(secret_key) + + if self.key_derivation == "concat": + return t.cast(bytes, self.digest_method(self.salt + secret_key).digest()) + elif self.key_derivation == "django-concat": + return t.cast( + bytes, self.digest_method(self.salt + b"signer" + secret_key).digest() + ) + elif self.key_derivation == "hmac": + mac = hmac.new(secret_key, digestmod=self.digest_method) + mac.update(self.salt) + return mac.digest() + elif self.key_derivation == "none": + return secret_key + else: + raise TypeError("Unknown key derivation method") + + def get_signature(self, value: str | bytes) -> bytes: + """Returns the signature for the given value.""" + value = want_bytes(value) + key = self.derive_key() + sig = self.algorithm.get_signature(key, value) + return base64_encode(sig) + + def sign(self, value: str | bytes) -> bytes: + """Signs the given string.""" + value = want_bytes(value) + return value + self.sep + self.get_signature(value) + + def verify_signature(self, value: str | bytes, sig: str | bytes) -> bool: + """Verifies the signature for the given value.""" + try: + sig = base64_decode(sig) + except Exception: + return False + + value = want_bytes(value) + + for secret_key in reversed(self.secret_keys): + key = self.derive_key(secret_key) + + if self.algorithm.verify_signature(key, value, sig): + return True + + return False + + def unsign(self, signed_value: str | bytes) -> bytes: + """Unsigns the given string.""" + signed_value = want_bytes(signed_value) + + if self.sep not in signed_value: + raise BadSignature(f"No {self.sep!r} found in value") + + value, sig = signed_value.rsplit(self.sep, 1) + + if self.verify_signature(value, sig): + return value + + raise BadSignature(f"Signature {sig!r} does not match", payload=value) + + def validate(self, signed_value: str | bytes) -> bool: + """Only validates the given signed value. Returns ``True`` if + the signature exists and is valid. + """ + try: + self.unsign(signed_value) + return True + except BadSignature: + return False diff --git a/venv/lib/python3.10/site-packages/itsdangerous/timed.py b/venv/lib/python3.10/site-packages/itsdangerous/timed.py new file mode 100644 index 0000000..7384375 --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous/timed.py @@ -0,0 +1,228 @@ +from __future__ import annotations + +import collections.abc as cabc +import time +import typing as t +from datetime import datetime +from datetime import timezone + +from .encoding import base64_decode +from .encoding import base64_encode +from .encoding import bytes_to_int +from .encoding import int_to_bytes +from .encoding import want_bytes +from .exc import BadSignature +from .exc import BadTimeSignature +from .exc import SignatureExpired +from .serializer import _TSerialized +from .serializer import Serializer +from .signer import Signer + + +class TimestampSigner(Signer): + """Works like the regular :class:`.Signer` but also records the time + of the signing and can be used to expire signatures. The + :meth:`unsign` method can raise :exc:`.SignatureExpired` if the + unsigning failed because the signature is expired. + """ + + def get_timestamp(self) -> int: + """Returns the current timestamp. The function must return an + integer. + """ + return int(time.time()) + + def timestamp_to_datetime(self, ts: int) -> datetime: + """Convert the timestamp from :meth:`get_timestamp` into an + aware :class`datetime.datetime` in UTC. + + .. versionchanged:: 2.0 + The timestamp is returned as a timezone-aware ``datetime`` + in UTC rather than a naive ``datetime`` assumed to be UTC. + """ + return datetime.fromtimestamp(ts, tz=timezone.utc) + + def sign(self, value: str | bytes) -> bytes: + """Signs the given string and also attaches time information.""" + value = want_bytes(value) + timestamp = base64_encode(int_to_bytes(self.get_timestamp())) + sep = want_bytes(self.sep) + value = value + sep + timestamp + return value + sep + self.get_signature(value) + + # Ignore overlapping signatures check, return_timestamp is the only + # parameter that affects the return type. + + @t.overload + def unsign( # type: ignore[overload-overlap] + self, + signed_value: str | bytes, + max_age: int | None = None, + return_timestamp: t.Literal[False] = False, + ) -> bytes: ... + + @t.overload + def unsign( + self, + signed_value: str | bytes, + max_age: int | None = None, + return_timestamp: t.Literal[True] = True, + ) -> tuple[bytes, datetime]: ... + + def unsign( + self, + signed_value: str | bytes, + max_age: int | None = None, + return_timestamp: bool = False, + ) -> tuple[bytes, datetime] | bytes: + """Works like the regular :meth:`.Signer.unsign` but can also + validate the time. See the base docstring of the class for + the general behavior. If ``return_timestamp`` is ``True`` the + timestamp of the signature will be returned as an aware + :class:`datetime.datetime` object in UTC. + + .. versionchanged:: 2.0 + The timestamp is returned as a timezone-aware ``datetime`` + in UTC rather than a naive ``datetime`` assumed to be UTC. + """ + try: + result = super().unsign(signed_value) + sig_error = None + except BadSignature as e: + sig_error = e + result = e.payload or b"" + + sep = want_bytes(self.sep) + + # If there is no timestamp in the result there is something + # seriously wrong. In case there was a signature error, we raise + # that one directly, otherwise we have a weird situation in + # which we shouldn't have come except someone uses a time-based + # serializer on non-timestamp data, so catch that. + if sep not in result: + if sig_error: + raise sig_error + + raise BadTimeSignature("timestamp missing", payload=result) + + value, ts_bytes = result.rsplit(sep, 1) + ts_int: int | None = None + ts_dt: datetime | None = None + + try: + ts_int = bytes_to_int(base64_decode(ts_bytes)) + except Exception: + pass + + # Signature is *not* okay. Raise a proper error now that we have + # split the value and the timestamp. + if sig_error is not None: + if ts_int is not None: + try: + ts_dt = self.timestamp_to_datetime(ts_int) + except (ValueError, OSError, OverflowError) as exc: + # Windows raises OSError + # 32-bit raises OverflowError + raise BadTimeSignature( + "Malformed timestamp", payload=value + ) from exc + + raise BadTimeSignature(str(sig_error), payload=value, date_signed=ts_dt) + + # Signature was okay but the timestamp is actually not there or + # malformed. Should not happen, but we handle it anyway. + if ts_int is None: + raise BadTimeSignature("Malformed timestamp", payload=value) + + # Check timestamp is not older than max_age + if max_age is not None: + age = self.get_timestamp() - ts_int + + if age > max_age: + raise SignatureExpired( + f"Signature age {age} > {max_age} seconds", + payload=value, + date_signed=self.timestamp_to_datetime(ts_int), + ) + + if age < 0: + raise SignatureExpired( + f"Signature age {age} < 0 seconds", + payload=value, + date_signed=self.timestamp_to_datetime(ts_int), + ) + + if return_timestamp: + return value, self.timestamp_to_datetime(ts_int) + + return value + + def validate(self, signed_value: str | bytes, max_age: int | None = None) -> bool: + """Only validates the given signed value. Returns ``True`` if + the signature exists and is valid.""" + try: + self.unsign(signed_value, max_age=max_age) + return True + except BadSignature: + return False + + +class TimedSerializer(Serializer[_TSerialized]): + """Uses :class:`TimestampSigner` instead of the default + :class:`.Signer`. + """ + + default_signer: type[TimestampSigner] = TimestampSigner + + def iter_unsigners( + self, salt: str | bytes | None = None + ) -> cabc.Iterator[TimestampSigner]: + return t.cast("cabc.Iterator[TimestampSigner]", super().iter_unsigners(salt)) + + # TODO: Signature is incompatible because parameters were added + # before salt. + + def loads( # type: ignore[override] + self, + s: str | bytes, + max_age: int | None = None, + return_timestamp: bool = False, + salt: str | bytes | None = None, + ) -> t.Any: + """Reverse of :meth:`dumps`, raises :exc:`.BadSignature` if the + signature validation fails. If a ``max_age`` is provided it will + ensure the signature is not older than that time in seconds. In + case the signature is outdated, :exc:`.SignatureExpired` is + raised. All arguments are forwarded to the signer's + :meth:`~TimestampSigner.unsign` method. + """ + s = want_bytes(s) + last_exception = None + + for signer in self.iter_unsigners(salt): + try: + base64d, timestamp = signer.unsign( + s, max_age=max_age, return_timestamp=True + ) + payload = self.load_payload(base64d) + + if return_timestamp: + return payload, timestamp + + return payload + except SignatureExpired: + # The signature was unsigned successfully but was + # expired. Do not try the next signer. + raise + except BadSignature as err: + last_exception = err + + raise t.cast(BadSignature, last_exception) + + def loads_unsafe( # type: ignore[override] + self, + s: str | bytes, + max_age: int | None = None, + salt: str | bytes | None = None, + ) -> tuple[bool, t.Any]: + return self._loads_unsafe_impl(s, salt, load_kwargs={"max_age": max_age}) diff --git a/venv/lib/python3.10/site-packages/itsdangerous/url_safe.py b/venv/lib/python3.10/site-packages/itsdangerous/url_safe.py new file mode 100644 index 0000000..56a0793 --- /dev/null +++ b/venv/lib/python3.10/site-packages/itsdangerous/url_safe.py @@ -0,0 +1,83 @@ +from __future__ import annotations + +import typing as t +import zlib + +from ._json import _CompactJSON +from .encoding import base64_decode +from .encoding import base64_encode +from .exc import BadPayload +from .serializer import _PDataSerializer +from .serializer import Serializer +from .timed import TimedSerializer + + +class URLSafeSerializerMixin(Serializer[str]): + """Mixed in with a regular serializer it will attempt to zlib + compress the string to make it shorter if necessary. It will also + base64 encode the string so that it can safely be placed in a URL. + """ + + default_serializer: _PDataSerializer[str] = _CompactJSON + + def load_payload( + self, + payload: bytes, + *args: t.Any, + serializer: t.Any | None = None, + **kwargs: t.Any, + ) -> t.Any: + decompress = False + + if payload.startswith(b"."): + payload = payload[1:] + decompress = True + + try: + json = base64_decode(payload) + except Exception as e: + raise BadPayload( + "Could not base64 decode the payload because of an exception", + original_error=e, + ) from e + + if decompress: + try: + json = zlib.decompress(json) + except Exception as e: + raise BadPayload( + "Could not zlib decompress the payload before decoding the payload", + original_error=e, + ) from e + + return super().load_payload(json, *args, **kwargs) + + def dump_payload(self, obj: t.Any) -> bytes: + json = super().dump_payload(obj) + is_compressed = False + compressed = zlib.compress(json) + + if len(compressed) < (len(json) - 1): + json = compressed + is_compressed = True + + base64d = base64_encode(json) + + if is_compressed: + base64d = b"." + base64d + + return base64d + + +class URLSafeSerializer(URLSafeSerializerMixin, Serializer[str]): + """Works like :class:`.Serializer` but dumps and loads into a URL + safe string consisting of the upper and lowercase character of the + alphabet as well as ``'_'``, ``'-'`` and ``'.'``. + """ + + +class URLSafeTimedSerializer(URLSafeSerializerMixin, TimedSerializer[str]): + """Works like :class:`.TimedSerializer` but dumps and loads into a + URL safe string consisting of the upper and lowercase character of + the alphabet as well as ``'_'``, ``'-'`` and ``'.'``. + """ diff --git a/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/INSTALLER b/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/METADATA b/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/METADATA new file mode 100644 index 0000000..ffef2ff --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/METADATA @@ -0,0 +1,84 @@ +Metadata-Version: 2.4 +Name: Jinja2 +Version: 3.1.6 +Summary: A very fast and expressive template engine. +Maintainer-email: Pallets +Requires-Python: >=3.7 +Description-Content-Type: text/markdown +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Classifier: Topic :: Text Processing :: Markup :: HTML +Classifier: Typing :: Typed +License-File: LICENSE.txt +Requires-Dist: MarkupSafe>=2.0 +Requires-Dist: Babel>=2.7 ; extra == "i18n" +Project-URL: Changes, https://jinja.palletsprojects.com/changes/ +Project-URL: Chat, https://discord.gg/pallets +Project-URL: Documentation, https://jinja.palletsprojects.com/ +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Source, https://github.com/pallets/jinja/ +Provides-Extra: i18n + +# Jinja + +Jinja is a fast, expressive, extensible templating engine. Special +placeholders in the template allow writing code similar to Python +syntax. Then the template is passed data to render the final document. + +It includes: + +- Template inheritance and inclusion. +- Define and import macros within templates. +- HTML templates can use autoescaping to prevent XSS from untrusted + user input. +- A sandboxed environment can safely render untrusted templates. +- AsyncIO support for generating templates and calling async + functions. +- I18N support with Babel. +- Templates are compiled to optimized Python code just-in-time and + cached, or can be compiled ahead-of-time. +- Exceptions point to the correct line in templates to make debugging + easier. +- Extensible filters, tests, functions, and even syntax. + +Jinja's philosophy is that while application logic belongs in Python if +possible, it shouldn't make the template designer's job difficult by +restricting functionality too much. + + +## In A Nutshell + +```jinja +{% extends "base.html" %} +{% block title %}Members{% endblock %} +{% block content %} + +{% endblock %} +``` + +## Donate + +The Pallets organization develops and supports Jinja and other popular +packages. In order to grow the community of contributors and users, and +allow the maintainers to devote more time to the projects, [please +donate today][]. + +[please donate today]: https://palletsprojects.com/donate + +## Contributing + +See our [detailed contributing documentation][contrib] for many ways to +contribute, including reporting issues, requesting features, asking or answering +questions, and making PRs. + +[contrib]: https://palletsprojects.com/contributing/ + diff --git a/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/RECORD b/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/RECORD new file mode 100644 index 0000000..20d4fee --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/RECORD @@ -0,0 +1,57 @@ +jinja2-3.1.6.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +jinja2-3.1.6.dist-info/METADATA,sha256=aMVUj7Z8QTKhOJjZsx7FDGvqKr3ZFdkh8hQ1XDpkmcg,2871 +jinja2-3.1.6.dist-info/RECORD,, +jinja2-3.1.6.dist-info/WHEEL,sha256=_2ozNFCLWc93bK4WKHCO-eDUENDlo-dgc9cU3qokYO4,82 +jinja2-3.1.6.dist-info/entry_points.txt,sha256=OL85gYU1eD8cuPlikifFngXpeBjaxl6rIJ8KkC_3r-I,58 +jinja2-3.1.6.dist-info/licenses/LICENSE.txt,sha256=O0nc7kEF6ze6wQ-vG-JgQI_oXSUrjp3y4JefweCUQ3s,1475 +jinja2/__init__.py,sha256=xxepO9i7DHsqkQrgBEduLtfoz2QCuT6_gbL4XSN1hbU,1928 +jinja2/__pycache__/__init__.cpython-310.pyc,, +jinja2/__pycache__/_identifier.cpython-310.pyc,, +jinja2/__pycache__/async_utils.cpython-310.pyc,, +jinja2/__pycache__/bccache.cpython-310.pyc,, +jinja2/__pycache__/compiler.cpython-310.pyc,, +jinja2/__pycache__/constants.cpython-310.pyc,, +jinja2/__pycache__/debug.cpython-310.pyc,, +jinja2/__pycache__/defaults.cpython-310.pyc,, +jinja2/__pycache__/environment.cpython-310.pyc,, +jinja2/__pycache__/exceptions.cpython-310.pyc,, +jinja2/__pycache__/ext.cpython-310.pyc,, +jinja2/__pycache__/filters.cpython-310.pyc,, +jinja2/__pycache__/idtracking.cpython-310.pyc,, +jinja2/__pycache__/lexer.cpython-310.pyc,, +jinja2/__pycache__/loaders.cpython-310.pyc,, +jinja2/__pycache__/meta.cpython-310.pyc,, +jinja2/__pycache__/nativetypes.cpython-310.pyc,, +jinja2/__pycache__/nodes.cpython-310.pyc,, +jinja2/__pycache__/optimizer.cpython-310.pyc,, +jinja2/__pycache__/parser.cpython-310.pyc,, +jinja2/__pycache__/runtime.cpython-310.pyc,, +jinja2/__pycache__/sandbox.cpython-310.pyc,, +jinja2/__pycache__/tests.cpython-310.pyc,, +jinja2/__pycache__/utils.cpython-310.pyc,, +jinja2/__pycache__/visitor.cpython-310.pyc,, +jinja2/_identifier.py,sha256=_zYctNKzRqlk_murTNlzrju1FFJL7Va_Ijqqd7ii2lU,1958 +jinja2/async_utils.py,sha256=vK-PdsuorOMnWSnEkT3iUJRIkTnYgO2T6MnGxDgHI5o,2834 +jinja2/bccache.py,sha256=gh0qs9rulnXo0PhX5jTJy2UHzI8wFnQ63o_vw7nhzRg,14061 +jinja2/compiler.py,sha256=9RpCQl5X88BHllJiPsHPh295Hh0uApvwFJNQuutULeM,74131 +jinja2/constants.py,sha256=GMoFydBF_kdpaRKPoM5cl5MviquVRLVyZtfp5-16jg0,1433 +jinja2/debug.py,sha256=CnHqCDHd-BVGvti_8ZsTolnXNhA3ECsY-6n_2pwU8Hw,6297 +jinja2/defaults.py,sha256=boBcSw78h-lp20YbaXSJsqkAI2uN_mD_TtCydpeq5wU,1267 +jinja2/environment.py,sha256=9nhrP7Ch-NbGX00wvyr4yy-uhNHq2OCc60ggGrni_fk,61513 +jinja2/exceptions.py,sha256=ioHeHrWwCWNaXX1inHmHVblvc4haO7AXsjCp3GfWvx0,5071 +jinja2/ext.py,sha256=5PF5eHfh8mXAIxXHHRB2xXbXohi8pE3nHSOxa66uS7E,31875 +jinja2/filters.py,sha256=PQ_Egd9n9jSgtnGQYyF4K5j2nYwhUIulhPnyimkdr-k,55212 +jinja2/idtracking.py,sha256=-ll5lIp73pML3ErUYiIJj7tdmWxcH_IlDv3yA_hiZYo,10555 +jinja2/lexer.py,sha256=LYiYio6br-Tep9nPcupWXsPEtjluw3p1mU-lNBVRUfk,29786 +jinja2/loaders.py,sha256=wIrnxjvcbqh5VwW28NSkfotiDq8qNCxIOSFbGUiSLB4,24055 +jinja2/meta.py,sha256=OTDPkaFvU2Hgvx-6akz7154F8BIWaRmvJcBFvwopHww,4397 +jinja2/nativetypes.py,sha256=7GIGALVJgdyL80oZJdQUaUfwSt5q2lSSZbXt0dNf_M4,4210 +jinja2/nodes.py,sha256=m1Duzcr6qhZI8JQ6VyJgUNinjAf5bQzijSmDnMsvUx8,34579 +jinja2/optimizer.py,sha256=rJnCRlQ7pZsEEmMhsQDgC_pKyDHxP5TPS6zVPGsgcu8,1651 +jinja2/parser.py,sha256=lLOFy3sEmHc5IaEHRiH1sQVnId2moUQzhyeJZTtdY30,40383 +jinja2/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +jinja2/runtime.py,sha256=gDk-GvdriJXqgsGbHgrcKTP0Yp6zPXzhzrIpCFH3jAU,34249 +jinja2/sandbox.py,sha256=Mw2aitlY2I8la7FYhcX2YG9BtUYcLnD0Gh3d29cDWrY,15009 +jinja2/tests.py,sha256=VLsBhVFnWg-PxSBz1MhRnNWgP1ovXk3neO1FLQMeC9Q,5926 +jinja2/utils.py,sha256=rRp3o9e7ZKS4fyrWRbELyLcpuGVTFcnooaOa1qx_FIk,24129 +jinja2/visitor.py,sha256=EcnL1PIwf_4RVCOMxsRNuR8AXHbS1qfAdMOE2ngKJz4,3557 diff --git a/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/WHEEL b/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/WHEEL new file mode 100644 index 0000000..23d2d7e --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.11.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/entry_points.txt b/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/entry_points.txt new file mode 100644 index 0000000..abc3eae --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[babel.extractors] +jinja2=jinja2.ext:babel_extract[i18n] + diff --git a/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/licenses/LICENSE.txt b/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/licenses/LICENSE.txt new file mode 100644 index 0000000..c37cae4 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2-3.1.6.dist-info/licenses/LICENSE.txt @@ -0,0 +1,28 @@ +Copyright 2007 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.10/site-packages/jinja2/__init__.py b/venv/lib/python3.10/site-packages/jinja2/__init__.py new file mode 100644 index 0000000..1a423a3 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/__init__.py @@ -0,0 +1,38 @@ +"""Jinja is a template engine written in pure Python. It provides a +non-XML syntax that supports inline expressions and an optional +sandboxed environment. +""" + +from .bccache import BytecodeCache as BytecodeCache +from .bccache import FileSystemBytecodeCache as FileSystemBytecodeCache +from .bccache import MemcachedBytecodeCache as MemcachedBytecodeCache +from .environment import Environment as Environment +from .environment import Template as Template +from .exceptions import TemplateAssertionError as TemplateAssertionError +from .exceptions import TemplateError as TemplateError +from .exceptions import TemplateNotFound as TemplateNotFound +from .exceptions import TemplateRuntimeError as TemplateRuntimeError +from .exceptions import TemplatesNotFound as TemplatesNotFound +from .exceptions import TemplateSyntaxError as TemplateSyntaxError +from .exceptions import UndefinedError as UndefinedError +from .loaders import BaseLoader as BaseLoader +from .loaders import ChoiceLoader as ChoiceLoader +from .loaders import DictLoader as DictLoader +from .loaders import FileSystemLoader as FileSystemLoader +from .loaders import FunctionLoader as FunctionLoader +from .loaders import ModuleLoader as ModuleLoader +from .loaders import PackageLoader as PackageLoader +from .loaders import PrefixLoader as PrefixLoader +from .runtime import ChainableUndefined as ChainableUndefined +from .runtime import DebugUndefined as DebugUndefined +from .runtime import make_logging_undefined as make_logging_undefined +from .runtime import StrictUndefined as StrictUndefined +from .runtime import Undefined as Undefined +from .utils import clear_caches as clear_caches +from .utils import is_undefined as is_undefined +from .utils import pass_context as pass_context +from .utils import pass_environment as pass_environment +from .utils import pass_eval_context as pass_eval_context +from .utils import select_autoescape as select_autoescape + +__version__ = "3.1.6" diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/__init__.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7c2ba99779f20a4d565f24c4adc1e0eb46b9929a GIT binary patch literal 1606 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 NrEhtWD4$P!`yY5H8~gwO literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/bccache.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/bccache.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7703db725299999ea9ecc2e877dad0d0fb4e39d3 GIT binary patch literal 13972 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 L+&jjPkInrrTAebG literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/compiler.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/compiler.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b3a3a4f70c6160f457446b3da1ef6dc0bb055762 GIT binary patch literal 55252 zcmbS!3t(JFdG7Anv%5#Dl`P4!EI(pz9NW?QA?HONCJuHSI~Wor#7@#Egte?$*(*!C z^6bivPu37{fItbPEqwu@Hl>u%(o#xGAM_1<)AmB2hd!W`Uf}kf_TF9r@%_Gk=A1pd zT7}*^+0mStIdkUm&p-eCuc`I*RSZgY!d^LlV!=t)3sA9F}{{f*Syc0+@-dbcdBjWoinc5uC9H`o!qU)%Hv334aM@%>>jn_WJ)=#2W57uT_|&1 zN15x}%IsF-D04%P)3c}NIyIrLM=dw18`O>JCe(UUc^oZzSrofjV$ST#ka|n`W_2rm z{JNBz8Bn*Wy-%elZ&5Et+79I0j8@#P_TdY+symQ&8*1N+cV8iK*3GwH&acd5)P8jU zC2zkwq3%=%pGv5M7oEv{c)CmNz|#&q-GQe=>M))TmtS!)HMt+pcdJ+8`IY4@cs_vV zBkEOnew94miRV|Vd+>Zu`5^M|!t=eVi07i@A5zZIMDafVx`Va(h00vHUZ~a-!Wmtg zFEmb-3ky@aUe<+5wNWeFf4*_5RxM1U#Q4_;-4n%R&_7+PHp-7T=BKJtC(D{CiwkP1 zQ7)a+Qws}{;vH@1O7-NC`;eQSJ~dUTBGOZ-pDv$2SJMg)nR0!4YN5>7y;J)1;=?q22>^G^kOjRS#)ha98QTJx2~4 zMaoc=a{qw`4%~a_*r5lIIuNBkaOmiL_dIl{t>l9fcO5!>Wa7|WNbNmzc53dR=^`F` z?ptV7<}1GGR_Xq!di{VtiHr<}VS1{;HzqJX4^`@whP1BtQ1xs@*Q)d7Y9mM<9!H7v ziP~aS`Odz5zH{}yrQ{vHa|iz1?mM^d3!F;T&s1v-40+KDobs8#sg?uhWFv4-HuyA$ z*c@Vd14fAB)2LK~YH5 za3=TG#7t6os^_Wvg=E8RCZA4RByi*=0=HhCn+f_3qGNZLt7Scft_3bfdsd@Z4 zEPpbm&rRu*b-fjzn&wBte`!Qq{MhFDs}M93v%rIkNxh-z%qC}@`Ua+4N;Q*wzU*9Z zn`px66!MwsHl538%+q*}C1z5UL^Jil&%WC}U??yntm`&-Y3QG=t z$+4v*!eTKS^u}HYdg@bEb)xooSp`GDu4O%4UTBn+siPjG&uIXY-h=*QxtC`eL0VT% zo@zXw>HuND>}@Dyrd?({E3jVEcW?kX*O`=aC7&E}`jffjKr)BFL&^SRzvFK#%}<>! zn@_gj&AwiA1r`j{FBS--LC*t>JfL-C z3uU20f?<+HrIX?ISel*#ZD6MNe)KT#PL>ONVec|8RhCj2=X~E>0%FYujEpmlS5oT!aCCOy|xuc;vgFNx8R`(^u3s<=P~{X z`xno;pQG7unu&|aMyla9(v3_b+wdAar?No5SH*I3jowDS(Ra#4`gM(dl~V3gsP!(q zc@b#e*0Bn89zbr|w@Ij&T;O!odXS=cL&F*PU^*ZawOrSX|dN^3ok0();hKHH_!A^g>(}9LM;mnsX>Y^Nwr)$}aB(o`pQtsCfL1P(d!o)@^PGL4F`S?Htie^6#lypo+?kDE>va=tnqs|!CwZ@m+x>%$1VjFa?|dC-6v zH~*rO%p{!`^*Llr zr!Wo0OyJ!+HLYt8lxIxixCSQLW|*_h-$DH98xa8OCrZFe2$K@xQ;4Uyh@W>R4x`(o zAA?nPvg##LUu7LjFz1k9AS!WoO7mm_(xr6*=olxjB%4;L^nNykFqgrQWI#0egJB=W z!!pI50OdK6rBaY9mF8<|agOnPsdQ#>YR=^7o7v9vgH_-y3*k~z&~p$iz7rJwY5jT> ziLL8s-t^=IY;i=VR8e!IY)UfI+=a5SVO21l#++O4ks6piB%RQ5QveB*)O3>f_%G#W& zM;j>4#$_B_vCqy6u9h8lu|7VbdGH7_;3n`GoSrM6Ezg-#B0($s$2fli2^<##37`Q0 z2~8kz>>}&2qkuwq#y|vfTm^(*!m$HkraFv#U;rt@TwsS;m!6?3x^ zdJ^_Xn3J$qi2T$9FdDJ{;bLBTpx=xKoktL4>xSzP3~Q|HiY}LGi;acFMroS(CCHpu zoB->5VT-}JNR^M;XH93 zclPN;&G|3Xs^xKV`kWGkUadBfoEMwS7`f0Qwa9N#Q#DSwb zH*Nj>DD(yVWclVnCW9(U`Z?2KzI!8WYG@`k_hpbD}m6c!nmDP%7Mq;O`JiG2?fIxtaM zD*9XG2pR5To6INuUegQ7TQ*e@0wo26V@=|6;sTLp5-8L`h#w{EwzKjcsMYWv6Thjt33J|iZaAFZ$ug10HK{fz6(Lymz!~mZ!;FDl7j_0B} zj-A3bjQ?xZx$}iZ?&4rnRzm6r+x%{{6|@P!4%>BA0UoQWLOOD4E~ug{J(1Dl?Qd*9|JR-y*qkx9>if#q*qsnPLQR&2B8b}1)9py%fq{}6+Z zFj%oQIaBp93~m-}(LavT{+5?+2MaH21*cXDZ&8NsMPz9bz;Jjn!h z8=hX%AR#1sIXZ+FH{oCN(ruFR*hROZ^aMzoc2s0mo?siEE`p31ef?v6aM>UIQAX2J zjs8i*W7F0`JRd~HH}R{JULxYjIm7O-JL+oYOyk$~k3+E^zdAV~ZR^!3yR+$X1~e;} z3!q9Nw~&>ZEqk*)HjQ!%cQU7#hP5f>3`Lt)F2*;n8>rU5+_@@AtYHJe2~JLBa;OWB zfZVx2)L|3Egve&mb|f?#4>m{8d8BG0nVH$>WNOH8lCAMvWzOt3+}nuq3d9L>wfZ6s zo$`X+ddy)?W@Z`KMA%>ieKF_Ym%<08s z)bGJJu=oMiryYG2VnRTXYeafcnDilAVt(lcUvlU?ec65(Y67~5wO8QCxdY|l=2JRdu>)2 zUt2aE;VRZYfv;l)ukBdD-+lqh;<+02=#QZa|LT`&f~>Y;U)RNYGrR8{!M-we0tew) zJQ{LA7O>0K>z`xdCm5`_V!1@1OJF2ZT(P5RtXEH#&a(B&-tT91mk|_GLEegxHMtc2 zryiK9kQ%dmmQV-=naMQR9%v{DN)Q2!MRQO*cM3_QA!irshC)=}2a-8U5e3*R;5dGN_#q+soGA$HUTUXQ#s zp+CTmwf4;xQu{?@Y~zIeFiY@h*}$wq;(q+E#IjeH`^{V7dzsjpV9@5J_s<#YAiyX_{i%FonfpS_6mU~fd2>Ju7)i97? z9;MPKwMLELsZXsf_e(vl8dd9%vI=a0f0ESo_6r$mTi^==>Yu4|fii>YUsOTrO#R;upYowj4XNS>FwlAZ$s%^+$6Z?|U&KT)Q;+-+Hk!|RF&r?O{HKZrks-38D zv}|e&Tboh4)NZt7of^mc{En;ksOyljzUO-NZ;~3X@dn#kkD42(bpy(D%g?Bnshg3% zQQF25SK-T>@Y{@EVJ3xMu?@G_*|@r#Mr;e&TeiQRx>enV8m?(;w`t*C^>VauYiuNp z_Qy6m;&((N{tC4pb!=BJsDtR=UF;)fEhE|;>B(zJhDwSn`W^1%nDmBiE#hZ1Wn`?- zx}D|z@-ESN$%ys`^F{sA&lc;VR^RTwXPZ{ zbGN*EDE986I*asIO8Vhg`Z@JD(vL{`t77Trm5=mSOZq*r^e0pk>Gw){F_wNoy&mZk zlD;FB{s#3V((jY>`(x>ERBuB1Yb5=FSo%fv6w;4M`mtF0o7G#8{vb4m-m0F4=Frm^ zgNL9?^lg4yH>an;+^cRoeD^oUAMP9n`MKfEqcepJ2Vc3_I~!@x<;sCS~S z*Q$3Rca(2&rUdq$Ro{i2$K>m;ldpew`C-ZP)c2@&Bd^q%2b|!k?^WN2yyIQ-zF++S z@}?y3M65?YsNRG0X-QYH^!KXwA-yc=GqLpN)ccWsQqoVw(tk)@LV88gXJhG?)d!G% zTGHoY=|8MKi1c|$ug21UM12V9HA&wYOaD>zVWcle`k7ez^Xel=*OFe3rT>`vaillO zi|V78g|qnk6Zm@$e}58xAIIO1;qQ6;{VDwQ@%Q8S`vm^}H2ya6_Y?Sg0e^o6e_vmI zgVggR{<5Ao;_uJm@0-dO<;zdSzWhn`b29U9ws~)f<^8<+1<8A>y!CV}=NHwd(B8M% zcitY$`6czs^3HeKym!R%entJNHn^%bC{kHlY$$PiW``%dI@2cOEyzeVtlzo;M zca!A*zQz5X`mFkcr_vb7@0T9@K5RDXmX{Gg=2Czk#{)aQ`?UP*snEdBH9kCFbI zq`yCw{wL~Bk^V!HekqpzXX?+9ep%8#5KI3H6(IeGCH;f3^e?EtMEZ|N`iElaf2IB! z=|3vzAC9H}jrtI8jA$Nd0B1>)zwACn&pteE+tX7KGIm#gK%n6~8kq@ih{TNXfMlj;i!Y z*0)aN8JUU0nq<51rjJqVE2^8t^_quoGc3aVh(;t>V;Qt1p{&7YlsAl`!Y;lvgdpe# z$F-&#rK!2f6bNoeKZJD=^g}Te+%d?@Yo(bf9Sl--e!5yaS1s9`pjY%J<|@^4wPtuQ z!WM!S$%)025XjBcfl=NjZ; zYvhwjXEh0ez7hn#;6s+cBZiP>pal8U)I7d3W4arRh8>2gfSmHD%cg8GYglUnN$o?{ zQsRgmAfl7@Zj68ZR*ad~W2B3%(1q#-q%^KbYElUK#2^1-D*nqu-f$555qF1rCef*U zW!53jfH+o*x~0{EC?>T`-j8wyTgMz}~Tt!Bk-{&S`s(he|dF z+Vp*okAvCSi)va+7YW;#@L2|bz@WWHfjfiBo9L3T$A%n#sJ%X& z`f#^eC7<8#c%SJ-&mXhWIF7LCCq-1inh+IOv8fFFxW5^^6pMeyLlx)osl^8PBpi;t z{u*s0kw$}_dZ^GyA6s&Y#iew4u8tD@wuH?RHN^?wvfZ4OaR#495M&IJG;^2*3zR4` z$hE!|E;*UaKjC{FOK!w`sAPI%uqb-;cFyu9ly_YZdKF%B7{BnZE6-p$fw$j2|J^HF zdC3yZbS_z0s{Ka<`xhXdq6}L0LCW}lhh6BhGWDM$!P1TrxIEyC*Bj-9 zWs8qMDT}YwqGs||gG3D1f8ahdx@;1w0Jr}y@lwdJ{VT*f##a9Y(moKiX-)f3*~u~j z8-70g$9RMbI9r5S>i+3IKrMyDqBu=TiObCORgIxT#0UakZP0TqQ#+ui7yB`&3Hii_2r?NI$~gncQO94`-rrcs zl}BIXQ>ME~4OK^WSJ=zwtdNE&|N29a4YMQsD6wA1V3ZGlS&8{M9{bpFOw=7{RoJgP z*^NK$(w83e-t^?7t)BFQ<=nZkM&*KJeVQ{B{$o6vxvh9W2Y}t6@n#g=F;_cX zE*~>J{dm~Zyqg1y-Cy4^XR)H971f5w*;NleSvR*M;;&|hE&5JE<;76S?r4IKYEW1nX58wi4oK}v%5LrnYk%x%X*^6qCizC0^tFsehepTMR?qJ0Rz zfuz5>eUt@fNmGI}jyQU1<)v&0%Wg|qaFPQhs@gnEN{oPnYNO?IB&9@kK)!?3>I7Mv zEUgW}M|vac^lM%EMUeYE`^8z$yI7$eM84F{Z?&z=6iP>MLWE~Dp#U4sTG)zVCV`3s z5-9c~k(`17*Jcxk0-mHnjT0*~{9%3WIiRqipj*IB^EC*8Y=5vm%fMLFFk;%{4TG)h zrd>?q{4w>onQbBZe-jOoIS#j%6}$g+lnmH?F0vtqG)O+_z36vrrM4YGUgoi6R7%^X zlRJMFzk~SIKZY8OG1ODAWq=6Ud5U|iLrwT*YGIXfFG?H+Q5=dC5Lw>^fd3^3v@QN7 zpTMBBwN1Bvzj+&_ps(0g%9Mz~%@pfb;KPwJeLQavnHHLc9a8`7i4)|xgoGqXJ~!Rj?92)qG1 zjoF;7Eo$?bhHd8uyR{RoL=9}EO51k6J8H$Jq!syCTfJEAeN3nQfRyTwp29x-sid!3 z{x;tcyMuwLotQSkHPq&&nVl#x5nEH-NZ2!|COQU%N{lp9XyNk%g}L&SBBp|;`}A#tTIC(v1x57H1P3_9HOgO`*xp z+vauKHQ2m=Me|-Du5_Lpw(Wm8o+g%(`~1|d!VW)&U?-aOhMY*-xVmzji+ z7NJTw7yvU=IH5u~T?C|NfQ}zK_1e@0_d@zY1{Tj?$s^@;G&5_uXOsFmBDBk3^ft4% z6UAgyXg3OjGhrcQn72-BMw=NTFhORS=Q0-Mcwsq}wJFh?Dn!5;)f3f{i&zV-a=pzA z6#(80AqKwCFJD;oT)1U~Uy#3Nww~Fb@;K=ZO#MBEgbImbnbN6pNaKXMQPc$WOB_dj z5|yG!Tf}ex$DaA{1yF{D01brs+l2z(Z#-0Us&*kxgSl0jzMwN*2BR^q23I$eRuY$9sp`l_d8PLorD1}6CkB=A5mNhkn;l==}$ZGH2!j0qC zMfspZZQG2taRZH$cAyc|K5qLuieNP4>)a?>iqWj4qYXT`*zqo~Z7qx}YLvn`UveAz z{9b<*7;&-T9A8R4x|Dp(A28Z4g;$r)i^bwzzi+=7r9usN8hhCiWbHErKR32xu}Vei z;$DBV=+6{FPV56_Smf=oEfclE#MiFi-%?iQRu%jnY?44B<6DZrHXp?5H0bF^82b={ zAXCRtw5$w=P!2w1un0#3W|4xQeAoMsv%Qp#WzDVasdTVf^CAn}X=9P9CrdjLjpJ=Q4BYve$D z(xleW$M}{?Ug`xIMdokXGJk16iy!RTmr{VAmKC!yy74Rr6Ppw9(MSiLAj(ozlu z=PQt)R8K;`@@aGxmOUs`*W8eFKLaX58K&X@3}7Kff$_!JviLL5eaz$0Reu#huzI4+ zZqb<4y0hRi!;)HHV~oWzfUxomWK7@@p-LR)q%}cWgg2cV6>RQ-X^bt+D+vtb1(C<- zVUj)ArF$~z*p2`g>&cesU@*nr4+e>@Lc*mEo%{ClQ5seACo_K-5wM^)WA;G?arR|r zazO$+O_#d?W-_I(#(dy(4Yf$jALqJ#K4eZ(6B=HCAhkmPClDNH4Oc*B*bM)m&tyfT zq*pV)p8*y6mW>LCRn7t}Rlb9x!dY+u`dA_eF%I8w-OiDSy|a{=0^K=X2ogcB#7bfo z8RVF1;>%8sXoeXXehd3B8S_x|1o4jZpwYy3L3EJNjLw9{Y{9BY!w*u#nVmr4 z&S7{K+N0mB33Ov4}9Sm9eTnE$!HuJ0VNlJBOq)} z1Ew+!iW4$Iu@vl~&zprg8`l1|W)??GKBZ`s-ArHd_#_la23Uc0=S+&g;rd1|>Vls1 zMdt#I;Ck?uhIl)PqvedBM_wPWO27HuDAeGRiH8%_b>O$HI$uuWNob(~5pWEWBlk$6 znmdSG^nh%#LA(KY>{HQVdY7=_uwzfy(d-%tf{s5jVc^jF_o~`xU>!q1Q_po4u@~H5&7#abp{tSGB$}z8>84&CKemz zhwLcFM(;w7Ujj{*L(Quq+D+=U+MDLNOEL;xi+1+82d^^#>HCuQL+j!(b~63)%=jpUef zN){v|Pb65!FvT{97rhBF|J1{v?Fy(3ZX!U^No_dS#;Y^By>;N&3hacon3}glN7uqU z6oq+it<96sDl&=i6pQwu>Z!%K#`rO5iG1{Mke2V5y^Y5)h{pCVr7AOpr98<$yO-_t zN3pTVE&~pj8rvcpOBvfp!CzOP(Hd2UAs;vkVXfM-OQ@fHa%K}e4Maha7{p3M!o_XI zQcJeSJe*|Bo%hS)ZAi>{jo}W21UUM`uTok6AG~Uan~yLiJ7Wsk2V$5_+kFK$LbiAH zAO+_eL5@ixr`2xpth8UY;G0Fq6{4!U(E6$aH49HIW2WCC}xZtk`>z{TKv(-4g z2fb+9G)Q8QbdpU&BLeaPgo8>6ztM6WVWpem#$gta%6ut{tNPcC~4 zi4zipARB>tKrjNuOL*BnVLJrbayOxD{7Ag#2MiFytBo(dINq`I;mJtR-8Wi*ZpO(ZaN7oaOT{q~|&$H_s z$WZ_pe2iHTbm8+0KPU5|w@d;V4M-b_#984_z-?>% z`CfSBA_W65asBZJtaWtZ)Z#o2Df9*7zCr+(U^x7UBT<-KjDa7F^a%uB=!$QL1RU{9pK39A{H^xn49X;&#_%j%(iT-B%RZz`b(Bdx!dp!uNePS6Waen~BQk$@w+A~5z{3xcSb4m7z91(EGp{{>E z1Xl8h@m~sZ#|`ap&{n=}dE#AJPO?17qvr`y)Knl*zASQSBQ>3R4WQ+IP%Rv22yr6% zqhR<2G2f;l@vv%bB437%02fNc&4aRpwI(ZI7C~o%CWS=zG)Y!a!RMj(2fiq%PNPPO zv5LM1W@O<=i+hQ5r~oX&pO66-xJ(mHDtVb!qtZG|q2tx#Eu%wYD-VJvYE(3pFlUS0 z76=w?eVoWsusOy6bS*b8xLOeOYt>kz>RPg-#j5xvjrSoc1s9w8_c+6(M-8jTtaJHh z$qsEd1sJ^x^YKMaJ*RLa>yNch`N{<5G8DiHWd8dRG4szej+K`0ydO^W=%Vq6 z5ht=vDL0qy1SycHT@}B^(dw^-t%j?_Ydc!KB4tZdy$o_wVauue#+Fm*it1PE1cr&K zViNHuslZ1x(dt0RakmasS{c~sLxP-BZOHEy-VpZ~v^_46XqM5jXh^kAIEDos!)zL- zLl}meG18wzo3S+sh2Cu=+Ks~h$e|+VGvf}EiFQr zJ4dW*`IXy68X$xy!?NNO0yoQWb!*WovSVW{S_<0&cUM=n&t6B#wpQRRk)6uAEW}zt z>8Ws|#8UMyV)aDF_13l2xDbZxU%6b6_!Fu5_!ECeCk%;zTQCR$4)M{|TJY(I!eOOky zsh|{Y;(2t)X!drf*LN%2HcJFSj>JLy>feW6h1(Hndw8=Zvos~4s|O$k7~=fdGdjf1 zWaoml$g?X&!pfm^ODo^Mch=Qy(kAa9;N55L~A+qk0 z&o|B4KK5qy4ypIJyk|6g*j`6hBt=+>qVod>8brVJ@M&5H5yl3bU@~AYXY?CTx=$J1 z9B>GtHX~Kq(kE>-VyT9d6%8GJss0(Zp#EDBfcy@|A!WzmWAgn~;7kla*bP>wVX4a4 z?iu1LV;7Le+<8e%g ziHHKSs4^}Er$!!~5WsGuwd1z?@Ch-_QNl?90j;tggM)P-N3@bceIUt{2Go3)bB5>< z!X8QwgQWH5)P=PX7nf$~c?@jfpm;U|@e!_fob2WBN}~U2#wgK9IfmT}aUHWbh6KtWF_fVK7w1=P zWNG9RnnTPs##{z>vN+GeR5M)AFGDPpP|NYxykYu``vz4=)xvXtdt;!zVGO&84@Wl z9eH`l1q>PDF5>A6Y06f>Xw2yCKx#l+&<#yq$W&cEF@|O9(T5KZ24pg!>+RW`zD;GT zxPbr*8}jK!eirI|ydnVVj7cp1{45mtfPmIt=xO$dcIg15NROemK`<_n0)zqm8N`M} zD$;{i3^4un#F-NDj80U$Uv! zG9F2i#sC|mysSmuC`wDcXOsFA>wPv^r;q-y{hr!j>#!+=50s%{mZvr{uL|vP#KUiS zYE%0g$lJUurC?Lc*Ath*zn;1}%n@Tf^fQ99flE6?3*#bYa{#c!5#uauX%4Uq#x9zP zCZwU4Q_{b%C-IpWRHMzo(oW1q4`$;UtcW4Cra5#rfl>Ie=HSY+qPE&npSGp8w$0tP z<^W)MJHmvz*6Nb6wn9@j>*fHyx=TiD%=U6y6EGz0+|IVx__d59$H@A|nrLtPd_9{y zGtYG>j#vo!1D3rBiwmd$?`*C{3wAxnbuJP^wHsx}c^M7zciXa9N0^&E&EXKPMQ7o< z34cwsX1HjgW^FJ?A-YG37smY!Vq|FU&lrysp~S?vVD=5%V3hFJ z?TYib_Qm*JzA->9`2FVS56(>ETxGf(Bw?p0mHQsOL}I5YzFa8DIW7jKqrHOEk!DK`wFxg z(bu51CEECP=7YCLfg=m;^=~qECenwFg5zv2&b%P{q3{A#gXp9Fb-0kEigx{%-_S3z zE2BosgQPcn*MjP%LLF+_>-U;wNUFaPEC|f*`Mrgyb5k_6L6Pw(IyWni6|F6J3ETvZ zQIM`Lf|sUGZ~_O>q;N-<A->q1=#WBudYjg8=FW5VClzKa^}TsX%unhO0UPwo!i*yq&Q zV&SVVCAYUV9JRL^z9npUOE>^stWMzo#_t6bwCz5QXa`jx?fyio-GzkT*Rq&LQ;Orp zw`gRuj?=f%=+m#oZ0N@r&^MZ)fP||n(ty|CV=$tIHmUJpojqi%`g!>S*u|K7<5%og z*r=8OI)6kKSXoVALE#n!dE(;Izs!Q4W33rohj6!{H}bQh3wS4EMHV>60GEUrexu&W z*j5HY%00u}Ut{n#29#E7amx4=K2oYILTICkCS>4uGUGQ86xVc!n~nWzGzfHCV2My6 z;cz=umDl|QdEQD8dM?ncFR*B%1ljZaLXZ{*2tmep0}oQQ6SE?PHl(4nf|BW=PhgzV z6OxBP-prGE>X_D`za8B6afUyRN(R6`&w~Q=Am8(xVW;06a0eiQrns4ZX`w_N>rKfK z$9Zxn<)%iU)#%Y3bc!@0e|Zs0lN-+%MbU5_jnHUAlCm^0lfrN)iJI^Y=ujrzZ+U5y zhEr(@v{@s=jrdXHJFF8_DQM9VSWR_uLE1akMu?`-!7P3U@vGmD$%OI~6}J-_7x+MN z48AgG^+BcX(=O94r6T2QS4a_Ea>MJCd z>QwwzlxsKZloD$el!?BKc)xI``k%x3&}`#T?kcq^B*iY-)Pp;JytB-zOQioUVrCH=@ma<+^Itb#(eD#quY1h! z>ijik!|Ny_+uG7#+lI#d47PgQ-}Bz-Y^j$|c3&$F7(65>=vM)z<^)L` z1~q5uhARDPVj=Pj1J62%x2|q!!fo8G2)=zgAE{iZzl>NY^uLy=JZy@;aN(DB;0E#J z_(>uJ9vrE+lELES(&HlL@z8TJSbSua;+lt~`=aL#fp-T3#w+W^T(p%=%@>w~!2C-8 zGTl$JRPW@Bw5?NoyTwucG#r{(Nikg5`P@};G*69wcSeG}wLE|Kp)Mo4vCml*` zXI&l~FTx)v%6U<)T}4Ra`fAyj^@1msn9XBFWg`VV=(E^W)vDc)&S8yMvHB6LLEa01 zofz%w6=T+vm{0Vr>j3qg9n>1O@ED0ZPOf~oIL8cCdZp>8p=wrpupx@Rdbr+Ax%AbH& zbJ?3C8bJRlT4Z)~I4jfY<2(0zikGAD&JU zunAm*$@LcID3Ex+FYpR;dfA>S&bK)5y($ccOPF7wLJEjyHSp z%S+BJ%#rUHJAi0YLRueM;Xa+tw{i$ZEPS1*DFbhq!O@4inJAf zlhlcoyjB@u@`h#9=vxzSO9hUIF9xa(5A74Phs*Y@bZ3vbf%dVw8YECGl)~x23g<=>n z9HtS>Uj29Yy8bf;TMd&&o!zjj6I^WVQ4NPnRl=yYVp*-O%O*?u5p>ooJ32bJNy=CVJhUFxzQ3 zCd-eSQ4Xx8LjhPs0dS;&PsgAncT6t=F$tqqpW}{qo`KKc2?YM#ZF}>W*@UCYalcxF zI;ccR;gvgbMja~_$4l%e>1k;6?DcPs5ehH${#g5q`lm32#SwTkI|+Ye4Utj)7*PC%dFE3<|ONwxjgG0FzbyalyH>=!x8@ld9f$4NY}^}g$j@p z8YzQiqyVnp!ognn&H5>}K_>emV{!awXL5+M{yKaqBXm4&_ymp5a{-iCpCr#1rv~w6 z5K{c+?|_p@qXdbE7jdT?XncA+FvI~*5X=+nC=eICb*?*BwQXp_ss#CntS8lj?VLZs zslX}`XVlyu5D~aWvycL=@NQ0$^|#P_1l|?RerO|7l@-^*q8^Hdgy2WqGe+g)N--b2 z;^-ani-}W&W7P|~s383Pdl46WtgUovNItVb$f-9u;?LZu@(IbufP zPlu$ScV(m7c`|E%v26;uA*S&=h+n;dKnC4uUHO0^het7cUcucIno(D~OG(yLfYAz)g>4kw1+-nM1oMy9hxe>-M`)6)c<}VQ=<)< zVZ{+)c09@v??}HW=9RXw?!~KQmvYSOpTg&5tYy0uAP!>~ zTeD-(*bKkWzr^VaX__^|yFM-mZl=NThM{v6=7b`I$vmBy&4T%D3}ZqgLyW&Lk~0c~ zMl2tit~RH~(&W$+zYIYQ%t^AB9sI==47j%$e#=E7+e@Rx=Unkc(f*}8d_6c2ozSSU z-?Fz8m-4dvB|w+I2_|y=Y!%v(xrB2rAmU9;H%vRT7EImcGdhg#ECZVeA*0qddjPqkwwJE{OMC%FlZs#X z9VxL6CQzEe%Ub0TDRP z8@6s9R79JAkEZ3(b1 z+bm+Z0OfRG4n(b$`Emet8&j0rTz>mwR3g#?f3$?qtUuW zJkp$o29yv+5mFQ`>9bsy9=<@eX~;~k_}6!%hYsU#XI5p4B#Km~^#knKQ3l_Qz%Pbp zr-*k*3GsM%JqZ04E+`oIj2S8QL~&Su9W5~Uo~Xs#)*;k|kPx3|ZqzA5^}QVBs51py zeOyK>XDGo>UuD_vVI`Ds8y)V4856m6ZwI?G=t0wr%sNt0(*cp9OGd0@-1r?*Jg7_?~EQusVVhWo)eRnf$Q*%*jpZ;~A z5U~A#I9;3DYjYEqDBp#hpq#++++-mm$5{}mgBB?d8QWr{uQQDWP5jz%+ z{%hOf0ge|CG33_~%QI}lI>WxixUOraOR(tFUzNA$=4jNOG|gw9MrtHVJaOqNpy{63P3*&&e?ouqNT)25V^1``$|CV_^kU-~wJhE{$g}A)?b3+a zC>x+D4_Pc)x5@bH5T&Yc+%bZ9;|Sjn=SQ2v9?Y_ZN2Ml_Z&zU>KD&9gfYjqnO3jZ; z-qo=YhD_hgg)P^Rat$fBMar44U1&?;cit)~*RV{Ly&mD4`kiVkG%-41V91U?#zt+k zU*Cd}yT-zl8N-jG7BhC+BgXSu1D%+4nxx^owO{3k=MxbGaP+^%Hvwm~a~+Dvjd1p{ zvB$od$CH8l(J0+~h4nj{^6{-vd+qnB*AUH}f%@H4q)fpA&dqPTCGPfN+Y zhGh9`H0f(3ZbkU*ZyVDv_CPjA2%~s8MfCWB9D&bxt_X6{6;Uq<`a(v!3~=Ca2*rMQ zKw`!PlJPsj_6Dmtc4Biwm+)}UiH~-y9neWUW0nrr^m8ORTl)A1*8RO}SAvw_Gy%_#9|AG$#9t(vnUJ9ux*B!w7qac$&3_(!i zJW1K=fN*FsAb)Z&L8cWazrwdEYZYz{$fIH8fmi}Bhi^oD8kh24mSsu$vfNV4QE>2w%fT?; zhK(9IJ&YfT%KUxhOd-wQx`bx?RA|QL;X2jmYUoy-=-MU>>cv$2p_{T;cCL^ z2N3vJCXiza{}zz=KJ?Zs6yeIq;*mumOQr?l!q$^lOZs_Kvz&qFRb~wI>YwJf+Oc)u znUOy-Glqc{(FP~YOd+S&2-P{2Oe2-d80hP7b{e^c6|Fpj^Z|e|0tHLz0n7myiF3?k zmK>;q7dek`Jc%P$eKT^pGI3xCYuGd`1_2b?g>is%*bL++L!2 zFN^Ktu+#jA>xg;{!}t%!jbx`Y95cM~&dMYFzzQQAnXUr5BUprbL%4$AT^IaK=vRVW z_Do7>bm3-NPNfUe6qqT((FXR8W7MU?=0-34)7^T2m74(YHV>UgJZ%z#@(8%prXDUO*re*uTI zyx;)-h*N~NGTxG8TzE!gVX7e5%1l{4ltLtIDY+@6qhTseuS6s~Eb>07!}po9CDq2O8Z z%ST|sJ|3jO>Z&(_R9#P#YyJj&M?cBnjSOyP@Iwd!k0^q6&f?KESXC;C{)7-+_3pQo z<4T_Rw`MtAgz8*k6lg{N9+BB3p4-kwNNm|4lD$JKg^Mr&!o@P5ItKQql^EjcZPSg& znxB?)pojRlE#@-js0Dz4d0!Lz4{Z6fVhV*%IM+H;e9Q&7fn~8jR$iVXvwjEC)rsOefk{ zRyOFtMM-8b+J=(A!|^7J*MAei)6nM;M_?XfNBNv|6Bm+iL+S+wPjIFRO&YiYG4Z!0 z8@Q}lr4T}bfDredR3O)BxR<=Au|~in2eS=4U4+n>dxgq0dT_ORmf?(RRS$TXGi;=) z>!}25eA0+Zk(5e<8~@1iciswjt}xM%x1NS9!jLpiJ0)p903km`@!6e=I4Q}5hn;Uh zf-&S5?+@U8N0TA;U@_O6R$~^9PN(3wQx)npD9dpoac+;C-N3^FuFJukV&20kmh)N6 zlc@2FLM!j%$H`h%;?(8%aRX)q${E}kUpq%%0~7*OPAuZ&v$y4n^!RaUx~F2I-UVi1HFw>X723pK&@zw8;Jk@1_rPEGc=_xXi^)1*8gA&>VzTT-RWp z5JW|D@A&ciaX%nm&MSuvv>#}BInA{Oj zj3(&;DBQ+D|1*wf2UZ^{ndQYP1Dk^$u09;WV!G39&ho+n9@B)j@E_im^>Gk?>w6JE zU;(<2_p9T$hrc-J^+OE}vQFb8%&M`C!dwq&P?|`Aly)!6b~<$sZ9b;q@dkKc0e*-< z6JT)6n9(m_71%5sQW-?vn**=JX6&NjvC}|3W7H&l#U$;DHfZ(j@YInRdrKVUbMQb5 zB13Ln5lu^F+&U9A(GZ^E%kUFK=TR%fFUAS%{xQ52;VQXKT%4oCt__zrrsjb3Pn4r- zy1g#gzdTjPor9o0aFgLlj6e(=dIAqOAxf)^@j-x@(OCvZ8RQTI`D0e6>@FZ}LkavA z#(&v~O(tD4s}r0?A_x&4A=t6<$)6-hasA|TaBK&!$R4;yovtyuzuE>{gtHWW0$cYZ zLhWB_=Yt}4%z2>-Ep?=&M6`kfEvaM?gWzZ@6f?+DpS?VOneG-}Kl1&3;J*+wCUO`}DCSOui~hgTf$sTpug3;*5W76uP}%E&lz zi1c4}f!G!T6o|#*Zu~Kagk*g#LmnrFqQiSw$57yvw(}Y_Xtab`W7y1M#7Vp)3hX!Jox=Rp%kDPv5$Uf#%@ zlzBS?YIwGv2GRQUja8zXLf7GE*m~wbXa)x>ti4K&mN3ma_>Ow!qA&Mf$l|+M`Q~Nh z3^d_*7XoKfKTV#weltza7|ot}QtI5ov;8goqoz89wcPo$368F6C0{yXJCKxuUPIh+3ymg9U1_aQf-&l0}SE~|g? zH-G{7bTM)Qs9{k0q;F=n@E*zCFRnG#WWUC&&odDI?w_&{LC7Fk!O#KH;CVILe)JcZ z&~xbVX$Y#|*ULcrbB6cOVM!BhV;Dz7IAWO zk}<+$ke)dD0Q>_BZ~P-jh$#)VKv;x#0(k;-EvcTcqaH|f-s|RWL z`^7hma|?bWI*Y`c@R6gp86ZCq+99N}`O`aLyGtGW@o#Fk>oegBj8p z0AvF*KZ{5RGvIGRTtSWk)OScdKwJ^cEa1k@B^ks9C()JGG-y?uzwqP_G5JL23L{) z6~e<@2;4Yd99!aj-H=mSZ&ZT@7~YHFFi1<}ycF>oW7xMd<0}k^JYo#U*4+ORGsx7| z1OVfTc^TdEF6MXAEoOO}sS+Ocy`1<0ii&U)ew0HoBjr?dN-|7TLMCem9kZ;awwdRw zbN?1>@nJ+T3!quB?{POw!o!jy-j>LPT8|ywH6eFYT%!TefXqTDj=~c$3~J!cc`x40 zLL`OxA)b+$emVZS*o||@r{5(J7N8{OTk3=MC!h(l4xuAL?>X7+IJ+zpo9mtl{Xq_@ z>_0z)mTNpE{DCq0(*m;qUd6b~_xb4};Q+SqII38UPD66awp8phGWK_{hIcZM`S@MN zWU6L@>7E>W@%ab?CPIG@iOOg2O`ke!|6TzWl|LG zZnu(<1p$ghaHg=z)>s3h@!IkFF0Rvs1PdSBzr5w!7O7hW51WJ&@c0y z_Bjk}-wu+E@D}#X!~0y7FyLNxiLP0LQnsysDZIn?q<^nO#HaHc;kgKXiIrn|fD2f$ z0zmO%KR$mAXk#gt2;F|Dn{_kNyvns5e1ji#bWH~fZ{|(Xtmwe8y z3i?B)v+<+#GaR3Oyz3-40=lWnk%MAK=P_gXi*18NRK=eR)@u>rP?;l_*a!-Q%Y7Y# zR@R=T&k`_Fd@$Mp>yz`tD?e#C<5d&BV|E}-!c@pxf{RU&V!JTQmRjMl)A zdq$q={}8A$Jm5%j+?c%e>OSsTSnp?N$ot?@FkM+m z^2g#U_vH9WJ=qjZ@3NjiupiPGZPQL+zf8R8V+-LyC50;e#=Q66@kQgNJJW4;W4HCa z#2DO#I|o0+F(8wnH3rXnA(8{(?x?vmmc*EgncF=9!{3=R!*T1EKj48ot65-)#(*{w%~VpqOhP zmJL-zT74K_giJp<3rDfDB&nbg&x2lwHu02+hL7o@(IzBFrUlP99>7jRhO2dxCxq05 z_b&ArHiP+2ygqZJFm*j3UyhCd0%l%}M%8HtL{sOeL-TY#=CQ$et?V(3|8H<`xjKUM zQFxXt8y=AizRZOP`DhyaZKi?W_%f$q6YA=R!KYDj2`7Y4&>ei~Nnsr;Pl`gt7-~>- z;7F2SA%X#pw`Xg|P6$wql(@>4fSQ|>0Ax%0bx04(nmS@@He9zKK!%EMV32Z`Px`er`N=wMuu=jc^xda)h;DN;E*WSu4y`~unY&yA=A{^8|A>eQJ5Mec3 z!a(^cTpX%Xgy7dP_!LG^{{dqH+OpNQaM7wxT=XL>E@$4)^PLaz@mU6cDD^N{%|NRC z9E6%xE>378s`^qD;LhH`cGKCV+UJpVE`7Ikjff!Y6tUQ zrwARY+EA``p}akm9L2ufkJIrcc;ac7etRBN!(CoUV^`hP?Iwp^zOZcVMQ1V6A{cS3 zKPZVNFQ?uGn>@_3xJ%WfI;nzf=c;-WAO##%bG0b!upQxAVI5lTl^{B}-(;z*xmFZV z6z0m|q`C!l!r;xOX3ZYUQ=g0fE@C!0>;J#c*C*=g93Y1OJ%XP_pU3=F_Gn1Ecrv{F z@uDzE@c7bFI$K^as^4$8Y+)t(Yn)i2Wjx)_nHNBiZNEc`_jUq@kau0MiZIM}aq_pL z7ia+nLkjS^X4( zrvaUp6VMX#sM96-S)gB_)s=#N7O)jD1!B(A*dMI76Q&C++Vs%T4b#o0n-VuNe2%u< zBKT}u@jW8qwtwsbF+u%S1o#S|3%ISHU+0tgCLxYrQ_#n`1gATqu5Ni10*&BPTo0h? zyc1_^3za`ARk^IHGP9dnr?8XdbyhT-zB#5+0R4s;XbeD20`8*V5!IYJz|?19UM6U{ zfxI-?g>epQx}mkhi4m?~Bj^MP&XUR7hCUe_bt7Uyuemoz-aX9uGiN)pGT=v=2MSy~ z*WJeXpuG;erN|VkOHel~l*pgV#F&!CNlMySMF?3!xH65uUM!229}EV$;smV@FedG` z8n0m+?qt)sMSF0Rkn1%x3#}Y*2I{H<8@{N24oiEwbAL{wri1v^{}_SYo!cmF?!X$Z zZZZEtakuFuv=f*qy-k5LTuEZ5rGEurM?DTF)@i0x=z9RWF&vU)RK})2Ql$?;S_N(C z8I)*dKA3zbV7>|oaQ#R#qhHhLiRZ`}7g7jFOkL}87`r!DiETODDx;m^*Nl)U&Eb!8WS$IQ2y_rI^v~m+M+gmE+M($Z&x^cok!%|r zD1>2Q>|Y>$?8icNiiI}Mu}9dcrOfTYI{?S9s7e1;R4>NvP} zZL(d7eDUbiO!+L^OblvH4c%8?Sa`)|>vde||IGR4J?vdSyxyFa!@7>l9DvcN(Xx3W zY6OliKmi>WN3HzgiVYGLiy24KM@E~$PO?v>(2A~AdA-Q^^HxtqD9vtjY}4zAJ#~WA&a9X<# z&4~E~Hb@f8P!A}>n0mVW-Qn=`r#jXBy1%fjU1@w#hKSrs86qCqfqvSCDOB@%^-5EB zmHFIV=6A@~cO5D_EuGz3$+7`L92aVZfBC3jNV9Steht&Mbi5&hv!*Ha6AAPE;u_2e?Uub62V*J-l9u7;LltAz z1)~cCPnH;zDElE&2G92VZo?!10~~p!9;i>I&VixDC)NmMNU$Kzq-0&gI(Crj8h9@< zATe&?jum@@EY;SrF`8lTAm&=acXD7wk}SHtK^C5HMX#V!fEr{^8!AtKnN!v=-s=pO zI|MB~i{kFB!QTP)-%oPbi9&O!VGOzh(vW7{xKupl{%7Z9lPlKJHufYKBJ9i~c(fE8 zTG3)r(7M~|Rzw!r;Fd=WS*p2uqD+U&!c3|tohC0qN!0>2968IfvTpps5nm6$UN-1; zc*`Fv`lHJ-G`wx=P>;zo%YZBx@N@BsnVRbfzk*!kY?(3dELT#?*WmnOy79O$?}8py zAkX?sT_$9+8A^eC)n!^f&1vCoL8lCKkk55MrwRVSVaR+Bn$2YEF;7wTz`q#UuN+048FqPP6nT6@O1`nLJ+t-O6iaD`KS4e zBgVo4lXeVnnI7`u(Z%Nguva3_OZ48|E? z%_p=VLSi{_qb^rK8n5c2*Cg7IqPljBl`gW}Cm8!l1~Yto1A-uHeUa+# zpc0)3F|rEs5MkgZ;Q4anR81MXtev69&#%JE zp#ziyN`=v*izmY9y^C{U^sdU;@ScjpIOJFiq;yMjJzNNL<*L$ronHJwIXHh$kTmBIICTGvQkBz37;s=(jK04mO(EA z{4i%n#1#ytTzI6S5J^@j445r;{3lQ-1stTN>#&88Q!POtmTVSLZQ_lEI3C!PDo`rC%aM+Zi|p_BuzzWD+~HZP7G z9nKGBbJ?N3T+a}`guBb}-%w^KmCFpd&NvhxQCiF#QF_!Ly?%6uvp1}PZ5&-S+B}x&szo>5km=q7|_X`Sutd3jH&3wpB zn^iDZIbjyFILL0)YIAj+VgaX8(>x17l8aStGDs%r>j;}9n)E+1`~QtA7rgwZ7&!U` z*@wpgk^9@!$$da@#35CQ707x9A#P%{E@;gSxBB?KgH zv6cc?9u-4oC_$~iB6koW3XLo@KDYzCZPMlbEKf= z`YrYl;EZKhVo}jakQ2exusFytW{|f)MI~gzpa+NrD$9#}Km@3yEdp1T^Fb^NkYaG7 zA`--n0TJMafE7^U7IScF3FH!YO=Pr@VQ zm2%}RIPr7O3eoDeUDYnvzy7wXJbgOtcs~F1PyOqY-R^H2{QtRO@Eu>fMa;Y3ck|8N z?%5OnHO}7oz#B$tK0812>Y^=ZJ~=O0Y%=Qo@ad|hJD*JCF3vAqGIkBa`9Ap(da2Hj z(-3#igXDQ6cZfdE+FgjgH5W=sWiDtY6RYvSwiT!*p-Uf9r)|KttSfmO)SF&?j7p5^ z5llv#wg990gZ5E3i%6rk(cJ78J&ZQZ3i?@t?R8bHW1OQs(#hkyR#jcG&~xu309cSV60L>c77m|7eJ{G!-DJV zG%ZqR1)^r&AWJs~vU!ra>1s*SrHwRQM(f2zpl6sy12g(kh2@b{*-&sG)z#E#fD%$l zMU_LTolPND(iEu;+>@68C^JskZxWZ}qqN~URH8;qc3YYJsHUh0q`Fja>nan59VZoF zo2mzX;*;T=;DH4dqnCTi%2Jx;YFVJHhckjyAfn49PkbY#2kh2?o`2 z>xj$fr0wTtHy=Oy>CM|8UcdkGm%Deb-~aaJ?e}*dcJ&Fj>?Z#Cb$>2N_LuhR zb%DIL*I1q>pFIt?2f@0hfA-5mCre+xc=^R1Zsqyn!ykCG{YCS|zuMb9u1sDY z_OoEn+;1AX0lKx{vMs^-3vvgXLDn8D?k{5XI&WgOBbIJhyd{=$Ug_U;WhGU*l_7Ul&X0ul1Ob!1~u;k0EWHUjyd`w;x+u8<)6` z^=Ql1!NY=!z0;upy|^diM0Dfih$b#=uwZs=PYi}xtidr@0a`kFzL& z1WYsrX<4TE0g(?2EWT9QFN={(g!ZLSBbg^8a`rVrcxVsNN*^oAn%EcCC(hU&v$3Pt z#8Ga=F4&kE+N&JUj`Ay}8s|*ju2?@PZ*#k1QBYavn-!b1IJ>ZIOD$B4GjOzrx447f z#dCM;6=p?o6lUp>(Rym6B=JBPndTsK8TGSn zw+zqTVOoZRQK`Z%&KhT=ZK^%a!{^WIV?Tc$cC#Wmnr^x`jAc9sYeDzI9~2UtZ}GI} z&u<#lg-j1pc-wSGnD&fry6I6~oaEbPc(3-ed*L3;HsA8vZgeaoP8#zn0aMOwS4-G? zbk@8-%8kqidNqprY2J^c+0CP9Yg0SrX{iH9jnceVXj^GFiA$vyzaN)kclJoqfn)1d zikK)>oF_t(x9b)Z<|V}wmlOiJLx+my$IzW#d?c=ngC5>5$2(|0OLLJIx}myJPT>`R z=)sIw>X|TBqyN$hi)rI2N)L ze5+ZX&yIAH?s^<&BcYkf3#GZUbN3 z2@rPzAhs z#N-{`8aMJz6-*j@;lh@?yp5GbZvO^||3~&`Hg2e(-{hSmPyV9v`>m?MmwpGdf|oB~ z46N!eqIJ-g(3a6w&{omb(ALqeRSopl(KgUF(QceCjs3HxdZ+R$VB5K4TThV*A6u@a z-aY-TZPA|!CZD^o`0@>_|9RhfW<9n}tgV&!CbO)MWWh%SRADYoUWZ#)bjcYIjZ@?) zYv@T8Fysp8n7E#K+C2IZQX=MI(KFFJ2RXvFZ4>;npt%XDxiCWV(V#2jO&}%*)FrV& zQVJ}fRhEUr0vU~vl^}Pfu;!*2+L0MK$FWS~ZYIilA3*OaNY8cxXH5=#6Yu7M^nW1= z2Y^H=Zpk=B6w-kbDF7EnH{l&=d&87d?5hz~bw49|jw~b!NMQDx+k~%g0-Ma`n*>3~ zW`O?<;WMk&D&|+6O~1ig<4Vm*bXeOzL{hqH;pvmsTOaAQ8REiHb+QBGIy#6VdZ{QP ziqu7s+(HOyyCo?!&u$oVg>TudUGY*R^2@~S%A!zb8>$%I$^diO{GCl!)V|43(OLZ) zUJ{yau}cE-%YbNTfFiBi(iL2o+L&afELMw5x<4J^v{ ziK7MBlBy*9mu;G86Y?Uz*LkHeP4SXc=>;f`~ucWqJ!1?bsMyS z#44xx#RsK1JiV@NVha9QD&#TR2h)~D13cpOVD_xKLlRP1s%fsE?O9%^xNA1` zq!8FxOGreP(Lmm!dlF2_Md~OkAf>zoTani&ws5>z)^g1u1Dd8Fg(*jQLX=4=b@w$A zx{mH=XyqQdV5#kNY?m>I0p$IEGk?`~U%7t3T6TbB(6Uzn@g18n*Z$u>_ImE0Y<(5U zVbx}@j0U}c0L-SZ`9=*({~u5`FqzJ>3 zb1p2@fpQ{D*K^Tp=b5@vn+Z{mWXD)z^Xv8x(Y1KA~bYUNGf zZ*cmc#@}bwi_H_%n-i;YxqpFda>E)ot7a7(S;z%J<@Kmub?<`@T($0Nq#Mnr8rNt& zKponI1XSI&_2LQeo|!#QDu&85ILoNQ0qoWxEa8eN;In?dn{#lPA|JvW(0)>kG7d;H z@Dd-#X-3!?V#O@isQVdAsKJ2T)j;SY&9X>_Ft7X;x-I+i6+Vf?Yi+gUyZC|YAPiA@ zq7o}mB6uhu2Bo}9TNOa+PA%g@;&Br7QoB4>v0gG)iVDP| zOgUo1rKr%Jse#N%bdv*~4iRQjdxk_%jbvoV&${WiA^!JhN!w-JvLNuVT1oe^0mU%aQ93t{X;lH7_A6gQoJSR0Kvi5sHC#ebP2UR2HcFCvY2`P{~DUuRyzSGfXcnd$kDzt6rJ9x`gaTPy&mqVX}$33zQ_KQm` z-szFtX{@v!-@)mX!JP`WrHbrHuWy;7F~E#vjx7oF?sDQ03aBw90ig~jwii<3+wPn# ze5rU9y08E!KX81)=FWsf+Rc8X?cc(96KS_{+>5lmThZ+I2Btl>I+l564lH{(GEaKH zh}1t10=DQ^#hLD*_pbHaT4c6G&a#Bjl~KjOsHM z25r3X=ghu@CGLhnR9z#l--16DRlrZ%J^ChSbL#p&!J=|(o^&qykh$}IuiG=nt$m^M z<=hRXLggZR>3WbYMpN=6n~8XJu_D6>Wh|Pjc!OmHObqcb7qc*ovul@B%eN(^_J=c z%fA$QDCN?8xG=6lpBOXt?C4u#PQw|QaAvq(_|$g-XG*B?h6Ha6&;7%gFZop%eBC}e zG#J$UQ+P?&pkT(#4Q9?W1CvW<;c?cUFGcRTAL4~azLRg4y#iBEN?J)xny%&4bSkYT at)|vuTmq|QG&O1Z2d$W3P1S+leg7}89e(Nn literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/environment.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/environment.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..484f62ff3d7c2aeb035070417dbd6bbb07c3d68d GIT binary patch literal 53450 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/ext.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/ext.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7543de2ca1b95fea0472e15d8ec1cb3669d83a71 GIT binary patch literal 25880 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/filters.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/filters.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..63b8c701c8d88a48bf5d4d1273bf96d443a4ab21 GIT binary patch literal 52124 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

    V zRIS7ousGhF4`mN=6qsC@oeMhfczDCsyF76SSc;t3q<#CATL7`rzbd*2G}jC(Ip0EM zp71P2i;BCeBp(htXB%j}lXJE0R z#gy9A6V+a!R3_^WOB%6S=1ZUw7;Zo2P8U1}f}&PCmlWHr$Ed1O%uB^3J&g^F!=lI% z8p{#Xi7w!ayi9$v64O8 z<^p>0nCn9iCOUK<)+h{|l(ck`RJ7zT!#;6D5udXM1YX9mw_lF}(v-8eUpjc(&i=RU z!+u|Ohay+sC04Y;F^If73!)c-5itfN3oIqJgaD6Zny}CCx88q(tqJfJjBKtVaKTKz zVpK(Bb+MswyP5*51;T7ZNnv)aOpD|NTAI5pT#yF|Edqq^608N-!|DXjfoR$q5-f+>o*;)2+-Q7Nc6nKh!};U$#2B28+-dNC-L7N>QXeG zlB5_eU>hV@O#n;4CN?eKEqKM_&1{5zO^YgsileyCNfxBy)uT{2)S>v$)4XwpiHLP6 z)Fv`r)9@C_mSjjZFsHy=3PWlR_8NUjBiREbr46Buib_k2Al?h8wMZs3_=_{70U!9( zfx>L52JEeqCBTf#wTM2^ya5#sFI9-Kvuu`hP(CH~do{TP>2D>aKRZvwbP1IGG!U`U(0zkAjkjC@*k_(kUTurAK%$)s*I53D_kG%Fg>61VeHdPQI(ql|A zh%m*3({NJZF6@*r)yRvdGsp!Vri%Y)Qf{oY<+gF@%P{7`mot${WBfGfWzdk)MZ$oF zWf+FxO!TthYDK%?m9#Oamu@duFLx-;!C!fc!@xLMe>Gw6umkV3;deVw*+{|52+$6^ z{ZJ*}64T3h5j0T*}L+ib4S(gm&Wn4E?@XkIi~Jfc zTXdopvXbl^z{lT$gvuV02p>eGB6Rze)Bi83Q8o=l zB?kP!2%*NAk2s+gzItgSFP5mFsMz=}xqgFHv?E%a6>gEIg(7JqhQ_iHTl(rijsjo9 zZH^v5ZUHhJWS!uqVy$(_R(d{Si^+lgU}>d?#oj3$lRcG21?7b#?GxmM%tXRQOZA~h z*;cc1yn)Q)DKd-gInLcxy|8vrGLl#6!6fW1R0}|~gUX~vx~#MK(ZcgdOvh0Kvl3?l9R(DJUh!$a!;3z-@!Uz}gR!;itAncvi*a%7);% zkYcbS>YbrFB^9_zB}Bb6v^?CY$v2CbNDVfsrQH|;jWhwo^h*RVj2BgxDpChKfQhPL zqNb*xcEWZO>pYi3HY2RpI|4l|NQ*$NAa5|Nc5lDT!%#SVTxNmJmQ4YR7HACia`vEa zZrhhu2409#1q$t6tvDxps0^BbCpJIsv&!B^g&O9HH+-rCsZjzuC*2FX05GN73#x4O zkqJFUqMYBsi3)+{9gck|fo*4Q2i#A>NhkE>^I@-{Ux>s%ZYBcHtz!jhg7^X3!%D*9 zm>xF=+x3!wzI1Qy2x?iWC#Rue5nG=^wo$0U#U<<&5LvLkkKs$UBJX>6!&0stvI_|9 zm#u)_Tg?nGUG||imKYv{)d?cO3&H+m?Cb$U+>`P?g>v;^1AvN`R6ovWax){Y=PE!IrD_WumPl;3^BYu*s1P8uPy5F7cfG^uScLN=3_L!Q&Tx>8pd) z>OHu3tfAU#Nb@n}D{&U~o@FXHrg$-~Y)gMhpM*1p_nVy!Wj5}a4X@)jAg zkXL|(BMrtV=!j}WMHT2dH0mw0`;3Y0x^1J;8;o*7fTHtQ%A(ARwYP3rlI}^=OKPFm*4!l&5RTci{*F2#5LiPTq|;7y(;Lxf9W0 z+N~&VOPHd~%qxlTGd<$e4oFrV`8mQexj5r_V=bZCN>MeCf$i6VpQQP^_kDPH`If-D zrIy>z3SyiN4484orxoyt1O)sq;PcuwNM4{v8pLk0iH8$T;(o|nFxQ%a-06zXRNHl|+u0sl>@_WI0GEwO<;n+IAAqh(qP&08MMVCw~@f76r({Sa{ z44z#}gTaI10SsP8!>BSoX~=lK zGA88&K0xBQ#6un8pX)VEcofu{tB%&Hv$8-m0O2S=FtiAmJg!R%9Q^=p2wN^5tW5(> zS82g5@BiVGHX!PnfbD1k?hZ4BGhgPk)8#PJVHn-;ukj5+|3y5Z+$(h<}XRvZEwi6)qjPficdIz&|g_|fy*bZ2ZhwWX* z8t8qy=?D~RhayFPt0dtNY)I^UyTdnoBs4*(m%wDSQ3Oa(oXchkIla%~s(no?AOfCU z#@va8xA!XVA0gYalkZ)^Q%v^i*2ylz@cx~h>%y5O=6cuvmvfCCUEy38&MZIIg)=>n zgS{W)TKoi)myk49>0<^sHv}DNvtzPaExS1Tkix^@kJtPV2ShuoXd)b2I$<{JY9xH| zWL0N33VCFOiHK06dJW(RaT++G^o~kxFS)eSweE;2qzocr{yklS)DqREtpR}{WEtZ{ zyV&>~O|(IohHh$*2ASX{8D(0)v>hDk4DbZ9QHs1FdgAI_4FqJ;B zXrR=h>xHEWWAS8A`TR;9pp^^r80g9rn*dh|%5dsvh%!qAEootiK2LMBP=b9B1&!1o zw((k3D#6AqLs(=RL5VzdNBJwB)PaF$F1bWX@Qvs`I4`A)3g&WYhIxlFUV|w)T!Uhu zQa#NxKaosVtxT1s=fGjHjS(?JjpRQdYrHcTJMjgl$H23I3{G3d0~8IpqlTMjo|8mL zQYy~tX$@TSs3t!tGlt3_NmW2+u*Ze6DMiST>gn01)>9iqV?Zx>puhlCY4%WrHt8_H z$|g5N2@dkf2z)f6;f0-5rccFhfx3nU8wd-+TK!{Sr}vXgHiwC@P_(b;q4k3Thzo4r zwI-BR-cKQC3&o|~A=LMfR6rR_yZWjcnV`f8ZhFx5oQ1a`ex>|tz%Ibjej$zL^l>w2 zkpQb;!0pBGkHF$C`ZXs71#^biloVjgPcK+xD45H;-7(=NKZNqIwNsA-*Z84^=^dzn zyntmfpv;z57L0~*0n&!Fkqz6;2JH@|3!5>(&=?XxH@LyFlP@fMCo#R3o z^@@=%;t%LFIXKWzGz$}=@Wi??BrZY{UOX18OfE^t`XD=?Q(Lc})unSQNt`q|ZNxs@uEE zDOR~&MmL0a>@mEbN6sc>&Qpu}Ntx&XK4O5ZcL*T^Av&9U67r5oNeI#9mXd^qjQSQ$ zOGqS?=q^0HbU)bh|6nEl0mt%#Og_ithmc${l*st6cw=*z2-RK{K#A1+ z5e!w#i$=Of%Pih6qQH`){Q@5NJS6c#vaU@W7hqUb@@qJ1#LioK)T7?NMp^W@8(+=N ziHQQ`G@Kglqofwe(-hZa7~U@+V|)K;8I`VoFT2jFAhMflgUlGuLid*jr$7X16X+TPZ z{a!)>3=RnC15Mn!ml~`G=oSe|*iZ^Hd~rZpaaF$&Fc^+-X%I|DAlS@k%ZC#IB3bvt_GY{xaz^xu(KLhy|~)pT!pK?=?qRV z7|t5F2aGstaqta%+{uJ@AJrJ*5qb4zq0j+p!BY|(+9t)JLEoEp)~$!>lnS6m2THiq z0k2IoI<8GP>pyKe8yeQ96Q4~PK)|DkQ-_y+3MI+L`Zo`X2U|>d65~_B9ymUSPzYP0 z!F0%+4}g@yl;hKLXRt(Xl^wh6llLfr@V49z`=NV=?H${9+V{-Yc-97IOowo?>=C#X zXnqUd#S(NdbSaxEoq?H%%31Id@LG5XiYisrp%Sj-gz6BCQ%YW4BoTqR6KM&8(HI3I z>AhN1;qaDhVX`!AA1Y0jh7_+}!X}d_eI>>H>A})HP2=P}&D2A@cnBAVcyS09W4su{ z#Us3U1Q+-5;yzrA^I{wqPx0cZd&DKCZtajMs9S0#UM0P(r*b={ygIIM3>-eU)k4jC z9KVElfdWl7)nCI61a9E;HBGvzHZ#FEyd!*Osh>>~I@ek|UB61`I`msuAmxaOqhfJr7Yr(19zmx2BN+ z>4O*r&1?q34s@*>6SLQ-JiP0e;?kTs3&J^jvy+DT1qbGFOlcePT5xQD7$v{&!tV~0 zz0=9iff;DsyUy=cf&)Q#nhYdQS~{93VPsL><{z(hFJiwA*{8 zwyKdu|FVrN)}yPi9bE7Mz1QL7qLQ01d`Py~_lnpOPZE={PgPC^C(5Zk?ZgAyVb%Z}C{?jc^n^Tnq9S2wKBOJD39&psYgdtAbvry{mvDt%=4@*@Cv`dVT z{4Q7N46H~Bh*bsrrtkVg(gxIV;*!u(1p*3*J09)gQEoj=;q;<|XNu)HDNYtPRz=Rf zkA0^Jl9qoENinsP*vgB6%D0+ELQm-@y=DD0u)h&GE7a7uJ&&IG>4JC zw^-cE^K9{Z`8jsV6}05qrM_6C5Tjp9gyH4emq37YdlHM*z5`21OL& z<<*_HFNt>I#qjg(%d}9P5&N+av(!w{eIj!4* zN+(@t4oe7JW#6lGj(`)TMP$Kz9vvBk;!VTx?eh^6@b*`mP{l|zbr$q;&Yh@i! z@`de7{-9Tpd1MKX=yoH2OG}unP>BK-9U#l2v{zW)A;so%xg*@y^1J27$m7yo1_jOeHD)`TY_YaYP>%;lElPy{#GA8__ z@bRfd0^p1C`GGtW9+N@8Y zHh2_zN6sZ0X`INy*)K33R)Ge?P!x=xj}ElGJTD}Xc0ih;YlTz?0TpMM=k43n0VQnF zfLZ}yrL~ca+|Ffoi1b=!;C>gcK+~_*ElU(wBlhUr%p`V8=oZug4LMQ-LLu%KFoRTe zP3TC=b|GD$=AkkGQhl;CtMidq5Y3}5wiJ`DE>ldM-;`loA%)84WfY*Gp@Wp__zLCW zbrq50dk9xoJaZ%nk3k0ymQPVKHOVqmZh658aZFl1ukWhS3&Ch6v*IaS1So`m6dnk} zbfgu9>I;C?V_kCAAPX1*L@{EEj)DMbRkWpob5O$_LMiHbD-5#Osk%e;mY^iD(VIXr zfd<0Z2fd7az{3S9cjV_AhDr#ISW?>|r(@JvgRGn_kmaFM@hnuyE^~;olW6MwHIilr zj_fm&&<2E^BUGyXyv{r!iBQeo#jf#QwvT?k41@r;7`a-Dl%WxLo~HXPllo=DOJeR` zeGB<7r{G`GOkpE$T8bZPcAi9p7M_Pdzy$ci^1gezFkiHgJ@_NZ2n|J_!w+>d)9a*c z;~0=bfV@yIK%sCl?O*!Ic$y9;bJ1|p=n069$~V+m_$uZpBp!|hgm$H55b_fh zLj%}FsbWw%27S0qtj^-(iGozKf%y!$R{LSpCWd6GD=@5s;Vt51q;yUcf?P3LZ(>v862^0~|PR>56o!CT1k;4Ey#}2B_G3hnZ;m>ODUw~S!s0jQF zXbFa@oe0$#lqm#>!0Lt7gR8<3C(?R&hK6$yQNFkFH0+0Kp$*?ceCmhJ1 zQgI)cpK~Z9B_)JOZlyYg?J+q>ve-pYmwE@4?bxwgk6K1>gK>#!evTDdbgrXs$B#e zd%6ryPiPL*hA~=S9V|yqHC11uA`}36H012tYuBw|dz#WMx0L!du^gm)Hgas&8K_(n z1sv?|ncmH6$XC0vH-^ZPBuUHp#B*7u$AkKP`5k#cmGqaFMCUAVlZ}#bc zJrmHQKyA<98Qv-q6?#L$NHxh4CVT093zwJD(bHyzd%ipp1{1Gj(~>5+ML9S7i=;S| zW^rz|%lrlc&c^l~5L@WetSoYu!FdwphOS9O44iZW%h7Cbhx^fC1A6UNv zGlDd^eG=>p=fJVIpOJ$PY{sWY_MLKf#~sjxlZEB+wSe6qXCvLg_*5)#N6H2!NrZQW zmH?_rRExkLTNR*by|mgOz(a^{pGb{jysH5syags-LegCIFs2c4&47FelsDf zowuN)HJ0)B2#U0f8J$@esTl*)fJjJdKK$Rm?ctS)i9f+(`D?LQ6Mj4K5$Gh*sKeVY z28VFT037zkA&dtJV7U9S1KR zu+wLt>B`{9KCoBBU*K`Wn1wBW9k71LD6GLE?4O<0!SNJd6&W)Mc3!NSQ-G)WvYVgK zwy{wAL{qyAGN0EFcaw%W9`=+c*k0dG(76ews+;^9`-5OKIQD_C=auPUo2r}^)?Y&E z4Xa>zH>w5>BTNjXR8sVQ0&NS>9`Gl-KO!cEwOgEwkW zD?Y-&FC!dTPT2%wV`>TR#hp-fh8s8Ku3$*^P4?gl!(rCv7KZKT7H;g}bz#(Y%$gW`ZbAp_d=cueOSlqL=J|DK8&?s9Kff;2m!}hm=`j-oWUYK61Ytr7KOh6HGV04OT_bQ zs1bxa(>mzm9Oe4}Vh68;9Q+Wow%~#Xfy!t1p_7k9wyB=#(L-%<#`q^ zMxBi;b$<&I@dVE4_ehyEzPn&_P`(pgqUc?(!rc}Qf_xt3Sg|-DJvy)<;Z8Fv(J54N zw0_LwEO-W#1&cwCGx1D_hdT^>0gDpf%x0jJXBQU-rL+-2OW;E|OaKVD2SP@%TArJ! ztQ3W7aXdmc0p*^*w_lYeR}Qa&SQIXhx0|*K>!EUxHIn`}WX%V6Ejo7{i}0n2Yz5WB zOEzY6)G(icr(sL=Q3I@&)$4}ZjVS-He0hmvh!VGqb&6fBH{jva-X8KkBC7`zH$ z#ysk8>6{3RSbA1RM$|elfQk5mVOt^C+d2}Pth3%yX$Plbkq(yV zHozYUqqsAX_H;}l)B71Br-%q?=p4Z)e*iazx)t9rK#GL-L~Hj!s)L%VWep~1y#wp$)eDBh?EYKKToqDpF}YVd>E%(f*FjwJLKmQtIE|2A^q z-68A55CEt0Zt=j%h$j{u%wZ<@D{nix)q>9{lp;QV0UtSP%QLXRWUwUq1T0vSvxpBQ z1{9EA*5Iv1?qCOr2Hw_3a!t~`QFf1w7|*Y>yd9jGPU>JpXlm&VZ4CSr@$t(@UQmG{ zp?|`Wa~dQ;VH%8r)Yp&@*Ag}|1;?gDU7L01bH~n71AG> zy1`x08Q)x)^k?4#m*y6dv8U!mHAGYA>&<%a4<$FqMsw!-{UH%x_3mRjR$kc!1u#!1 zJSOiWAarZ+qyj-3Ucy1B(^O*7mDPy=G%&Bx4-MWj!Km%QfB^*Hibet6y2v4=wYx40 z2p&Y6eu#Tck9WW=Yhm#3G)8!1O{)z_AQ43{z?fs8+4Q`Vub7Fh(RIJayrUa>3II z$2U~~6`om@7b6t#5WpP*^C_6==Z!5*Y~$GDVWry9W88iJ{7|nU*P+mwZtv z-ZbF^bUgMdk}n|>RE44}xSbT>4ki+!U^5=YHfe5vQdxs!fSfb*nPQ&L8g|m#gK|aO zZ299@?#9Qz7fJBe!p9RXUXSG>9P%DsS^Tvzf#1d+SlZnV#Py>)jX9ptzxeVjbG*~Z zU{~vGc1;{YH)bW=n10bDG;_ku*l1;ugv34^z~?n;I^@^}+1*<^iftPgl)p(?p-%ieoAr~N1j3Vb)Nn;jDrca~}F0CM~| z8uRYKMSV?cQ&MbnDC-Ten-u!ITbYRD#bGvA^UxD4!pa#LZ9K~7qLJe;JXRkY-)24) zb^2aB_#E05l~5ML>`nHVeJPLk>uaG}su_%XkroECnpAhe=4l&({cNHBX00x=DDF~MW2zCK1 zgAUpOwn81@^eL%Q@frlH(pLH)fSZsz{U#Z5$u)!y@N@dDrO^D2fi6d7X{rV1(HegY zJipYUk5;R12yhK!@X-xVPk9woY^Fh#uz}Fem6)1|kFYkX z9*^DEE)TZKl8bZ7l*eF1MQB2R0qDORp;;0=9Pe3>aq=Vq*HvDWARf!{HA4@%USV87 zPPf#7gZ_L~E4h!tBn%Xc6{hRM`eQ|rQz~j%sSqx(mqHJb&$Hz)zn(44{9`|svhQwT zr7!PnNu`KFWh~yp!U&b6>L$CXj%$kLma?nVV zS@^>7Ad)!$QYC~5k&>XDn2#tN^Im#b#VsM)z8QJE2k+M)#~gPIXsrkH7fLj6T3cZ~ zSkDS;GK^!!P%v--m99XqI1mDJ>_kT=z`>%$65hwXlD~djGKlv+!osNAp*3jH9PG@6 zffm~Kb{~=FFj$y$;X)O#O#(_S8@tk=jb6ebR5DDos};c)g@0sw$o?F~N8S@HZWCS6 ztIZ&uLR>v-w7hmvcq`#uFR3?}sfgQ_0>BuTCJfsBsQa5_(5P3p5|+_T?}p96VS52z zcxZ<&){VU;^dd?igxRv)UW4bakwcYkuL`;i-(!Q3&S}vLx{hi%aD0(5)ctNIC%i-a zi5H)%NJCHv&U%sfAkG@ph6xMZ-x6=nqmoQwMPBMqK?Ot{xr=wjfcY}6nkFm6ThQjT z2iho_Q=Y`D+h*XWI7jpeG4|8Mlf}pSwq^Ai)|+O!2Zm$#5RajBOSIsCe?5zGegz3t zhr)@PI&LJCZSZ#?2MdkEOTxiQ+?YVMn0CyFmsRRU;b?CUIofo{(ORfMpBK;^ZO5p0 zANzz)_!j`xZ{m(PNWYMj_2~)Lho>C~R;o2wp_p=$>m$ld?;x)>qn5S>S%aBZ7U1Uz zPkn?Z27rD$Q1b3yuB!wj?=YKtfXRbQjxdqsk}ia>d@Wk{82BE3L-(@WZYCixsIEWC z!cs0;a7G2vT}*QXn@|oB8ZzO(#(L^%gZ3W9DcSOBmuyP-uM8%eWHQZ zx^^q=F@c||CA>Ko-wY!p`qke-HIHf4CuzJ7|2*s-g%){4X_TN{Ezc?akYXB;FQi*S z*9SyLK41?D^A_yf;!3!khr}gFv$PTjJLI?Z+pYo)tkfhGX?_CAS!7!j1&2MQ4vBB9 zTO15$8Lep>FER!Z6KDRkbp+vr=VoGj!vHM6#ifJaL_1TADvx3Q^7)XljPFL#c{plv z;J^eODjGuoKD;Cdg8;FYabsHw%VYDl_cQhnXN-;musYz7XVul>>#1SRw?Hx96{=IfarKBW^&3D@fk#jka#w^Gg0r}m0)boCwW!??`>uv zDp&)|Q`g*q69$0O^r-g)>h^3TEz||wfxSR&S+5ZT7z9t$6f!Chcqu2iCy5{~RYUg^ zaR+fxUrVdV+)T9Rkk`Z92|6?Ii3DPSGHR*0d!Ell)wGn_nZ7@$`aPV*KIDYbxr0jQ zzSPX*q z+&kx?YF;psEDv^wEarU~sycz!;r(68%euh`)nNY(HVkg|{ z^SEv%-8QV3`8|dC6&@vPf^flj4Yx&}Zv$uAgHPspI5EBs&UW$y!U{vZQ{>bKf4nBY zPb~ExK*BI!40Ul9Q-^@a>rE`mJlyv9PuLSY@i*ZR1S0W}jd{gTKC@5Z4B=@kA>KHM z`xg}p(+T)toLo$0xOWN<6KFE15W=CK2A>Z0Lm&?laeKehdeHi^DO~8 z5(^_4Q$8WGC+y|Z@HH)h)W|W(YV~QU8|Uq%Lg-SsbWxY6KcTaj%Yzu2x1q6j1j@yc zJWW3m34`wuF4EBmMn~V?198svx6)NLet)0R6o})V<03i(G{4d+wDZIO&p`r~lr!J# z*&k?-Rd}WM;id{4Ho{yfwXuc8+LmA9*mD$T2?7KcV^t3VEoCW$yk)%Eo%W_sP0NBK zCss0%po^tiRx2G4e5i2v_E&lJ zgad0I!BX}y?$M%O4eBFQ(=9KLJM_a{8qJWXAy1aIr2G zp`ylHB*>d%efTn59wKY$Ck&D^1)TpwXnr&+YD2|$2&h7QQ0k|6zn1I_M?#Edb`qE6 zoVD7x`^Tw5XQyP#o<(Pc)t5%wRD`immr*QCQLai?|1VRaLS9*F5dFdYKyjy4OMCnG z!_9quraI^M549>lm7-}sL6Ff{=|dl$48_amxb>7O&sGtfH-uE!qqG`NNSl}ouq+^R zGD{ks#hsLtPah)(s8690IAS{@(%_&UUJ0ztEI7KL-*65XD$f&&3R0Pzl#LyASPEIL zOvqaX4CJ+OzQDnNyhd+8PY{FsMN5AaL8lPpT*Nj+3D&^~X}X3rUP2)Oz;yhhs6Q=k z&&uUEa(o_~%LOYXO1e36qOzdTn`;IU*h==RIVfR++*HWM)^qv7s=sPMY5~Q&+m#c+=cqHlw^sDE&1h@_k|U4+9$S&BO`)+w39UiN!Ta z1z!!STeM|R5a6rE{e!r8fpG?JjBgpxekmciHxz=&j6w|NSt6ws6KC30cR)ynV_YEN zV&gu^&d`m)BbV!ym+9L#Vzb!Mom`7Ut=3!S8!bKM#wI<*_iO8rNFTvvQDf*BFTt(h zEUngN;Ri96gR*sT6I;%19bz-iywmNjs>~W{FH**05(=UBD(EJ0pBz)LT?L+Zssf-G zPn;uDpca~fs#`t778Lj|;U&ysK2en@@eJZ_5S86gQOb0beO=RiDufnLkXuBEA8&IU zLo3A^s`G>WRmW*F$33TAv7lFysG?Vv2hOx`ID@D;$v0BMPdH|f1>tXR7AWmQaHt^f zZ9CgDD^)<$KGbdn#7`p~nVDA)RiB0A{%w#tggF2k10e_T+x6KiGR6Rj2~5~vWhh4S zR>&KhltH|sauN#SdDRB;o{`lLkbHhDGl zkME<21^!iUjNSTRIZbFl=XdZ!40OF?0Xh^p*XRI3niz1LU{ z5Q%i&oB-kq$W>>PE0P@<$S7L$o=3J(XTAj_Z;M06Fn#X^ zhqz~l+pny4r1OAu5ZjKGtIZW``BIDU4OhPHvm0T~?HFUcQLz z-|Y0D6qa%P?QY3}8)X8tY&=_9_hL@{Vl*FH9?km}mwz-w^=rKkEQc>whU#z6VaRZv z4Tr<%4r=dPZY0a1JKu936|IIS|H0*k@Gz;B-Zqc?9ihCUM=S2A0{DMt*#7pXtqItE zLv{ShFgu?2{|?ONUi>bwJKVy*gBX5=yWb}Wzq0#<7#>aQyTkCP{CtSv8@=b3Lys%N z@GBh7XTsqS!=s)oHIfxEJSzIB5W`=<5So?>KiHxWL5|21OhCjt$LTtUuU^ON z!-EKcP6}4~4UO~#3%&$6bG2&%2sx>yC`^O$SLgz?gd56tKHC=<)RJi`6qK)3S2 zWK26TyHKaCI~cJP+Gq@AmXIo^I>#96r{-Xvao!UiYC^B+<`_J|fN0mF{|2KrK!btk zfV1#*lseR~wHBf^0yl>kO)qGXo^=e5^Q%k%x`+aS5pfF4=hZI^EcDG0r7gTfP!^uQ zb2GC(ZCvP%bb`ieXz6fla;ro<2&lC1Pr7eQiP?8a>H3-zaDL25t@0LRnyuq(kc;h>)q!P40?G!g>TD|AerZB2Tt)NUNlZ8oJ_6bM8@f4I%Njo-ryvYb-G^aR<#awk4EOM`liS6LLdgd z!J4+mn6SmIEjlG#zaE-bV8p4p63jcmQ;lkYa$cR5v@sKl)B@B7(iP69HV`8P2|0&T zh=`eGNYpIG12&-K6|FApadeMqb`@b)!i$G!R)F^nonoK?5xs|){bU`*>?ezPGoFk4 z%x`c7@kv;)Cc}eoV@z=zQA_d6>Ga-YDOw_M#)Ym`%?FLgt)470ZbF~kLlJs&Kt_){<871`7#1oIbBZoOFYB2YE)pXzU85k z_;tsq4XHQBU4mT?r%_?Alk@sl;K6kzs<}=?DyjIKyY0OXwl`ps|OJ&tElr>FuG z1SF`ROA_(ui^6|_|CBV!KEN0tQ2br&&qtU<{h`k8uY>;dChE7meSZR#Cf-?do|Or* zk(E%s0^4~Nq88p_gQI8gG-*RH>C1Ps_)+ACbI8<`^a?p6f*`#Xsvy~gG)Vt%W|!bzk9`{)Wfrcc^SKQtuk_epP-b7P^^@ zSZVJhv);uXo8%o4k4Nk@&1@u4Bkl*|)*u5qjtt^k>D|NuJjsG-F(Wrk+@C?HM;*`_ zZ!@TraGukvu<1^`MF8((uY&KTM}M<3j8BNSL}mDc@nf1DXJ*Qzn|QC0Fg4g*M-|yg zjt!*_%CU-rxHyO)2>i$^9S-Vm?!*5Kl?Oo{ujSC>wP_#cmCfV=lEu$I%||wq3rH3} z|F?W(Gr52y*hcxfIaU9^=atRm0+OL5B4~~t937?i@i%be;6ZSEaPvwW^ioJi@v9r( zW20l}IW7|Fs5f4zh9AK#o)*XOF*vo&ppf_rMPvB{+tPQV5ybCCd3iPT2_9I6Ac4cg z??LSfC=7&@v=I9XJg<;5urFbNCf_6ZZg#-yi@cU{rRt<#ogB3FNSy^Ln_0>^bF%~? zfoc^qs*|O=lmTR}1_v##izOm!?P_MohC+w04!d^%glY&4=3T|dX;qSh!CS+G`;&Jy zll4qCG7+F!HTKja_e~tQ|Gonc9v(f^yh@FVA#Hf(46bBN16?PBeuT+CV)7GAeu@b> zvgWGD)W(7SEFb(llV4==OH6*5$rqV?iOH9le1*whGWj}_B>U3EWF3?BOg1uMq(_NS zC^6e4B$~trQ-ORKj7MUSNHl_Gc9dsjB~XAmXf?*?JPRVe_~Je;-q+$AEl$MZrrXTW ze-sfC9dX|j7d`Q)5N8E3DvD)ItQuk;5T&O_wV^0SJgOH&fNGlef^aKe18$_U9|@uN zKEa=dG1_Lw!NW(!?tAQLY`+LM4VY8G7tfX5eaN2hXF>VRguFgQJV?2F%Re}G;Gar^ zd$Df|`%Lh(&$tHh9lw?q+|yxv%gA(p(|AO!pUi*Q9#(dHP>Xdr zs3TY#^iAq8I=a7QY+F7b+cMA=^JRDUrR?;kb=P;Rtc|CLq;B-?HeNDJ!n}F3<4{YbnoywWi3-`uNGR zz8$K*0D6|IPoBr>vo!4RzKJoiToxFE`3qq#Xoq-gU9a!Q@^emte&K1@FUi009p=C8 zo#gL*)4F!4{JrdtrbZ@|4T=i&zG-Y?|44cG=`(tQI~Yw*%6y~GG(j(n*ZZuV%SJ!* za_xICFFknDmo_yF_k7FfUHK{Gj<=xdc+)~z3v+6rRuk|KN$Xo?#`q@Y{jY(?->|xj zuUp;5UqKo2n$=_cZ)>&jmpGvMzpSgwuUUP@Us!95KeyHzU$w3_{>)rw{He9xc-7iq ze8t*m{E2mq@nwwve_ET2Kenzj{s?RHht>_oAAs6@$-2?_A7;Px->uEYf3vn2|JAz5 z_nM6)JfnhQxiN=q_Gl`P2Jee9X&}sL%ZFRfV zEuDL1$2~2WiBlv)k)aA$03lU&6$`w9DwZrLiUkY)gu7q^3#O=I;{u8>HRkvGPQPwT zGTn7gpZEQ~?|kpmovEpuh0hD=A2q(UWLf{h#`q_V#+!J;zeS-eWw)$#TRF;YIh*df zYg?#$EpIcmp0cgLZu-t=S-T-(5e9_7OFQ z_MEh5mAz&y&Ho(mTdO~}Q7+kWs@+jRh)RAHl@A(WBkJflwN=&C%{Z-tu+zE|#Hnhl zQ4QnlPFn@_Mmtd2#qzj_X+b-xg!eXYc3NSaUh7wU9Yj02U32)Z{wIZB56>k$;R`4t zt7j|wb9>i`?4EPq-gSG{W$QQ7yI#+I;PkwQwry?ad(N8m$XNx1zIoe{t9ep!=_)`B z%o~Sr-ys4^DFIJsIn4!daa#I;m`8LUS^6-BzWV<8jm~Cpz8PM4<(ucXbf+2AqVRm9 z)p=>N+OFOT^!YnM`_B1RYqv2YJl|}zo7D^F8!FQ1 zYP4@HZ{3RvpphC-qXhcjBu?7p*W0w zh?K0zqi0qfLC>^$9-=po+Kd?kq@G$(i|BzM4QC%y$I)|mY|aUF5 zDywJEKPPY<1^jtJUU$@Kbq4+O(!UT0M(V737JZ8%hD&mIt9lAljZ>}QPSDbM)N5pb z!H0EirCji^#N zjom`BU^iY?{=)tl1cEp{vR9X!IDfs8&n(NzGzMmQpS^NIz1OX zuAE8iv?{S(fdI>aP%QN#iUAHJtUiMxPBj#i?gSQbzG75!1&8=6m?kQx1ewm*lSD`6PusL^R((Ym8Sc_A@zj2(Svg3Pgtcf3!yX&lHLj(q(m-V@L3 z<_E;atgq5hu)GGTuTfhJKI7aGejB}!Ma$H5fITp7x(__GT(MMEGxflK2+CAa=u7wO zY1A|QdZq`iF&vYP{mxBV;5c2Ww1c~qN}R1!YOQJ*q6+<@8a3#b*x%Vw)hN(B-`J~l zw(c2LJC62%zg|Xt0&)Fo==%YlkhZg67om{&g=7>4NOQA;4_aXzKqtC5Y8YZc`;M(& zCc+{N&$0#rj99_e?1P4m{GJ1|V1Moyjn(f>D;kSoujn#5J0j^z8BMHWx2lxjYxFOV zU7zDX@q?A?m3Q7-xm;O!=i16zTpG5&w|e=?)oZI)E+_aQ+t~r-s39h(6Q@McSFx!m z?}DB4a$W)KQ38eLT<<@-Qv)i=%mkUp6GM5RvIcS^GEvRh5eQ@u#d&`dQ=ry}n|_Uj zATt8~{gvx0?_Rla<+^@}qe)4PXH)>L&_P9f)Bp&Dm?g@)0C2kt13>r8I~Zsxq=68N zWi0^(oO1-wC(p-#?~3#p$ft*7zkX%yy>~vivLD=XqIU@?ovk9wjQ3>3den|_@use} zYa0W{F#&D{i-t7*do&{JJ`KJNk2wPaL;ujF6vAgtp+$ouEtzo?KDE{KFvn|pL)m02 z)o*dV*Iz%^bFk}6yO7!keh)Kt{hm(-58wC>jGO2)$g{Bg2iO;qEwj?SeqWU7rRy|s zsh)q)+I~68_EO_*aYLNd?o7DR*=ebAyAzc+s#{w@dnu=n0Xh8*7Q*~9s!{K2#mboI z8=)6bppw_$VzGh(LL&;0y2PpZ zXby*E(Vj*thmw{mgSLaZ_ut(k0|rd&kC|fjYh+Q_7n$BsCpXij?)CCaSl`B zKG;w+i#QLs3=hGWbR4#)FvsoN96KD-r5+r&j*bwfiHr@YH1H)vKT4b+CHSPPy%_MOcCdg+l*F}5OsCs}=n=PDY)wd0slJ;Hx@$jI-|51m~X zj|a~4BKJ1TbG9x1h%Omw%L*8@D0n*;ec-x1)HIM19hWX$Q*ETg(XI43j?GY z?J&~%SmC9yE?X*}gR4Us$)mDGRj^fOFTQu&~R_r$5^-;Z=;M-%s9=j{;d*Z>u zVUG~F-`Lq|1)`QTJu0K6=-r9|)bz0Qn=H(}`7xI1z`<$Ve$M!o&;XKE7!-F>**vW8_G7MjeyUIaLadj?KtO>LrDUk82mk zMtn)aFzz$(9~JmVSY*_^TEO1Nlm{R2xF%iWbZ9auLTO=})r2{q$>nniPgq33RKa}+ zRt0YPz@>6DN8&v8s`L{e0~eT{(Ade!p^~-!8c)cLi->~8!l`7)rWs2m;29{iVY~*x zwM3|CoJ@#d#2CqfK75bdcpBoWE47VAOGz>!)a%$;Vz)<=v0I#yc@t2_Q37$6? z{te-$)}e<71G|vGVSMI+;6J9$WJuk&tmDADATP^&igO6&h z9Tn&w64d?RJ!Bxbg!uyPKVYKJbJ{?AY%jFKxd+0k=~s#h)He@$aml>+y*q(!Rqw6A z6%YQAa|0CJlY8GfK2cMX#5rcPjLA)e=cF~+Q&{s4Q9+Dm!?w(TEkQ5P5K)?P>6kNq z+4b7zFvG))1++c1PobSc`_+9{AgO{l_yWfm8W@j?w2yq{i?8JAD?Ja~l%q!_v&8G# zzQ|c}O6gU>;RepAD2BIE4UK;rdqFEi)*%YQs9XA8KNrk!C7-KS3CNjFefad$haj~Kl3fY3PRH0 z8+ZRlr}8Q`1?BdYIG%|}B0X4U8pMCyK18}1v+Bj^zKtFu z1z7@lV6ppxtDq?as$ggm%bdaT`;BPhpD}FmwLqsYq;q=_;?&qXFmd%BccEI1;4ve= z4dvW)zHq)op8I1PEQMj$zHbj4UKZj;j+GS(K4uiIJ1)6h@BA$ce;=NyVR(kyD8glZ-FR$TNu%lafCz zBWDsL~G&siCHHZk(NTEfV4Dh2cUqPSSylPhImPKYl>_(QpxT1I@ag@o3J%acNt z(1a99K9}%_-eF>?B6h*(H`^@#4UCVmqj2I$^!+>6af6)QJ+}8wZ0NaNHEHnM+(!I2 z7q!8M29j-2$Mg<*PMD@j7E?LhSG`chOc&5ml`#iK@uZ9)=QT0L@a;tz!Vb87>?jj&wbY1bG4Eo+(#6TqB7ZFR|y-CFdK zA_`2yt*CS{RTJ90uRvGVt_Su1!K%kRab&wr9t<3(CZOXLHi?+W z6Vh&c<}jb%lA} zc!0IS3^RR%{I0{jkx<1o&;ai3>}NLTjPe4m33LsD$Ar z!ih_H33kL$Gb}+v8fUJ-7*=m0k{42mg{^S_eqEzp(QVWvWQY4V;o|&^(+Uht2AISJ zS=9G2*n(>~h%W`f-{*FsP<|V=U*Hir0A}`SCzquYgj=!wl*_<4C-{so^Pw`)pRy>U zKqgv_;&pb2sD8$p05Bx8W~!|S^6KA1Iga0zB(Ft zkjB=Jz!N`lAMoNrAK}d{d>fmaZ9t{5BLA@I1@XrY3yO3bU-#H@55)JW9 zs7ld3az4qUiKh+jS9NC-&MELeLi`JO2UH~zp(VTMc)#eLIgk#cl?hsqRfY%0T%|cU zqm~A@y!}2A`9Ystq&wYnAMj5f32V~8g&A(kYH;mffXf|?n0I*<97sK2?BM@*#KxCA zIXL23XZ~qNY-S&b)??o3?uS+%g>69r{~jqL`r8W2xcs9ZagzyyaJgK5yK@)+5YU2@ zbe6+@;x1S2e_$%*d~mynYeS?ifp%RMNS?bKGNfJ}PRD(@5JQ4Kt@q(|@rTb4f0~+k zuY3I9gPjQO#!vKM)Q93{AklT6&3=GvU|oIVhcp}T+JN$5Z4Tgu$APXNCz zp~t>&?qS}Gc(eWzmG0RC-#Zq)B;HK69yG>aC-xE8>;$14 z&R)3`u1(6N1S{uxPA02_JI$y0ER1gwFpeLV{xiV1;t8023aZ1d&82{Ke#zp@z2XZ5uq5p&(zF`;rr)cQ=EEu-ypRm|K5$DHb zQB!{PCoDo1KW0JBj8k&XntTzbgyNd#qd#Ur@{IW-WTg)z|7JbxM_ZHoguEdK*{~W>JZ|-eDzJx@vxz;iNP$Ij>Q#XF_{*}t5 zx366K?zPpo;u$l!f{aJd4iOQBu>&vh4NR4bPjdx&ksOr)5&V*a&|h) z=~T6AxqG@>*KBjKN1o(fd#87xMY`IzymNXdO1eeI4Sl*FH3skuip;#ROS5;0&Xbz0 zZ|oM?Tl(}KPIV!*ms8!gzPRs}F?|=m_2BJpJh>+|?UdMoQSL?Dhxh>E zorv#4+>iKv!~=*AA|6D12=Ok&dBnRBA4a?f@e#y(5g$do5AiX?cOf1^d^h6bh;xV^ zKztA42NCZ_{1D=M5kHLh0OI!{z7O#ui0?=Ie#8e6KZ^Je;>Qr@5q|*jVZzyKa6nHehA^y_WKb&W1mDgW)C5}U_XYi zU>`>~ZhrvbMf(`S5800*oUrop}(s0Nh*jJHa;w- z#fxb5f;}Z>#HH6X@zQ4uYJE%pq9(>~nmC!$_KWtY{fzyzeabG_jjauG-gaIh32aZ0BZY$LM8t zHdn5e94B3Ia;uIla&A2*>N%&rZ0A;_y&~&n+i@zjg`wQ2o13pxU0XW2`l_3&)UKAQ z6_Km2*s|o-kz1`S*=ZMj&sALKa%J9aDZ6H)+uA`lSE^R)*U&iU+L(07wH@x+u~$my z#&*(CJ|-^gT&X5M}p@WBBeCgoK%%#JJPM?^W846$W zhw}&h{V3YsTEs6X+MoA+E1kpd5Qmg{VD3=y^otK1d+<{JNbX+jZLK8NxYTdfsjE7V zsyg+uTdHoYa-FKoh|;lnRq3*QeM^-WA3XMfOQb66l-f>IP&0VXwmvKsmRIM3tq?kX9kSkUeaB`03R_ge? zbJew6F&CW+p{jGp`!h3isL?imnp)Ra=!}=Dxp`SChe;eNx6#Ia@yN`vOQ)Ods1;6A zy@s!wYgBD+YwH+PSK>%jB!J{jBdFB}W=V)34v4BO)Ph*KUafPqyj%)QQMrns?goZ^ zB}mR!>vc(4#)2DI3oi2F)j7=F4w4)%*)DQ0FS`~PRn!6ST?x$Px=Bf&?Wg zuM>!gz$(n|h+e5I5xxXFs+F3Ja|5K%tlHC_NewtF>OoDei)uw#RHvgQBLG2gOSIgI zTPalo)2`2N>PI&9W1ISM&p3WO&<}6w_j$%)L?7MMU){|egqZG*DfVy zjCFn8@C{#o!?*&J{uND5pfGO+#?S+Sz7*(JIfH}EiQ|`nosTa%4?XyS<3P}hcG-1~ zSE}`6%cWWgAMf~8yLR<>wK8{HVa|t#9(>@qgHL@7pLz*3oa2i`BOW@g=)uZbkUl9Y zWf!}(^7vxn+TlM}MOvSJH4j{LTTQGHri8IQ9Y!7H?|GA)fY-Na0ORFB zO9pzoB}b&fsn9Fv*kE((;@r@hH6Xv?fbo zvn3n5wXQB;1rpx@nPeJ4D*eh>l8Tqti#*TSVV81+SZrbgn*6)SMu}%i=`0yvs*0 zsyEoE)&Q9tgQ(XZR^OW6Y_S4BXB4eKteQP|S2bM-T_L z#I>)xURPK-D$Hkt9%)|%Z($c3#|;E}{F#wL@yz&z3nPW8;*%riM+-qud*(>tY|z=3 z71bCUEsTUsqpT;##?L$x_S2;rsVwTHPh~teJTW@_Xn@J7;i-|9 z*$v#Oh}xu8!P()d;UJ~bBje`+bHR4=x+J*SdMx{j0stZ_b9S+L{=STg&VB?*J*iu! zrQhk#_(8JMcw0KC23${PH;7G9wC&V3fQDe!*A{V7mkgOi3MbDsDd&ccGpKv_PVl)W z22)LosVyBr;`n%wp}ZAX3?$)V3&R&if*AO*ReV?sfQ3Rd-nP(e`#OIURh&42v=P_S zhFn83um}ybP2WUz1D8IA7oqzEbp5`zLE^J<%LwtR&Wq~xX-UAbv>;ytY6{bN(|ceH ztZQzzeIB#9Ik36&b*Wa@#&^mB29z-bK+-X11b@!F2| zfr_-Y-$oTDiy&!q>q*1Xla}>v(vUtirB2!wPYAEEcxvV1%WW9I7`!}uFXv2s6#z{i zr?$F0XG{82HTxQaXZbRi?J~3S#EGMhBJ@K!$Oe!EDh@ME5D4a1!B1fe0JL_Ed2UoM zMUnsx0~*?;WyQ_qOIM zj%o@^#9q_ftZ$GCM+vk5tfV)522{6FwEvOzmIL8x zKF2kO3SR1^7jrZ2%+*VWy#YuYFZtlUPt8o`^Dn+MGf7g(rNeFeMmtQ0m*}oDh+qLL zA#&~O0=6l<8%yPi%lm*68fSP%F=d>%hD+8fR4eM z?hr8?(as=ou2iY6O50mJL%ITm0c5G-(4o!EPHh*XXLA+sDmc)#P^jTq(k;xb@qrFC z52R{vRv=`~ujQ6%^=pvqNdkvZPXb<$ScZ@fW;HO&RYwY}s!%o&Mn6i^VLOAz=|(^h zSJc2oYeg(R;`|KxI?8}YsP7`{I)Jh*$F9zEiToUjw|=u^u}G3Zv1kI(I)rHBW?J{U z!+jWviXooiSk>wf=5W?YWb!&(d#F%X#B$qw3Feyf1)T!^0L=NuE%Q}fajJ$SUYDna zqxA-*KTp9IDA+ zQ7npjxmc8Rk^&PD7wC{Vr@-{eU*aqvpCCCNO4;%+woizsM$}D`0P!v!7I2c9r5iEp zwxJuhaoBGgM*7`coa>ZPr|n1k`~)87!w8}y{4CVjwk32ZsAGtYFg8!(7~8RVL&QWJ zM-_(|N8GX#P{}1l3OPxE10Ck5HYqfnuQn7(6gE0uZzu7hM2hHG z>CBcupx`gG<-1@jv3b%rrnk90?nO7qCQt#mbkE@a}0Yu~@3Dfw)Fg zHj>ZOVle_VqiP4Q?X2T}K6ouMWqrEp02Scitbf{vEq zLvlu&9sMXx&lx;?lodH^5;9%>I*Ot%N$Hk7WyDKZdMNscAXj@^MvNBRAYE-I6^)>u z2?r-Ex?VJ$y+=d`E}YXq9@REaV)=vmwa+71bva} z(KnNSg94^Xf0t5s0u}Cp=0sSIh-%tOo4qD?y$x0xyx;QJIYO@WxE0Y8e6cHj+m;t-lT?QHm-5uLA*m90x;ZIEBl1=8CsdH`|Vs6p`8 zD|Xgd3dl3H=FYZbdHoZJa!3Qx>3 zw9L*B&;uzjfJ1%m0PHWT_Xc>ygW&e%0>0J@7N^U0PE6;Clnnv-H2%18ssNb?5erQ9@WP~lhr zOpvz<=U5I5w0uWk(JlrthJHzCIY<;&Rvlox=4^sE!=K<&9qH#r3!_t`!();Jb@>|z z05MFK{vKsCR?>3*8)$8Wjy_X~cv6q^Ul!t#*VlsL8mNtdt_|6sbpyG|TQnN6m{3U& zSjjtJHwMW`G?TxI8rz21j?P*~2zd#hEA06S_HofzgxYttfwp4uuhY2yfCAo(tCS+V zb*H%yrX^xpEIx-(6ouZla#dm5qG?)u2uPpiYZ>~Ox|bW4b`BO<=y6E*6X{}=8VI!N z^m}7{7)qQMqG`lUudDR~po|rKg>9TI9TT1h3u=Vd*(!kJg-yvDUhX0eP%h$I=U}EF z;GxMW_#Gl#%KP<6+NHlkK@&~VF@YrvUAz=ct=sUrTc<{aZM#D=YRqasUKD>16$nuw zaM#eL8LZ-Aup#9kc5Yy-USEp#jeuN1^$=KAI?(EC{uWZ9>=vZzRiV_kWI1raIc}Rb z%z#UCG;c=jr1Ql22C-?IKUGp7sMp$dw{0E7WGYZUt6hq(8!qNfKzs!P6z}tn^T1xv z_z|lDjL5i%%rP-ps=;!^Kp9G%-$Y-5UfecaXQ{HXNYkYwl_A=AyM3xu;m-0+W4}q| zMATfJ0?8^iVzt9rUb$#XC>@phi|5Kx1-ifiQG62kGuvI z1y>DQvHU@_V735^9HLXIUBLHZNF)YaeabIWYRef*Fr}}|*Bk4%poKTQR@QPTtkd?D zh}&tbp70ncsYwJNd8L77sY)#X6Q7c+_ACo!=b%u-8sPjO{{_wU zjuWPjfu62MaFN|I*|59~G-$FU@t(oskim>Tl>!WzCGglVZXpl47EGPW6n2wGy_6fn zdz>ka_B@wcnwwZVqJxPeZRtjm*tr+Dvw}n7%{nUUWsxp*rNT^UK@t2)j zg-^;cXt7Vsuhz;DwyRFMO`l3DV@ih3I#i6L5?KI?6=FW6*dQ%Lh!-j@b7aIMmdo}E+^CrJKxNiAZzZ{~N|smV$`q5Q zjOatkh|U`^M6z@XTJi2%#iykSfSrrTY^W_gN(LoWA}?TTU=xkr6=L(^N5MY2xqL?p zYGQLxlU*QAU#YU1?9&?MF*UjqMu@9X-k=YeL(L2@SO&UgMRZ_Ie8))iF#)1%CUi>PrsBdQ({|-P0duF`^A334dqs@L`@tf({-Y;uuI9M+cS;BcnjX zd~6ZZQ6(m@V?G1Z6j}Cx_sQJ@xL=b;U=qSX2Aa(H`bmxQnI0UPV0$YLE}yR)e09o~ ziF9Fm<{-nYLA}ltuK?r8$1t0qyWx!!nM*!S**h9m5gfp%amkbi(`Wjt*^`d;*N4j^ckf~PH3 z^qInXEjbb>A9M#BaqG3WM zJrP?+Nv(RhbX8#wwRJgInyQsZE5ys*cDhJp>!KMGhu~^A2vvfdkQYd39DuEP6~FNvS$uQ1 zzk`C`ix!{8ejm_#bxFC~7Eho32|Ui9Acz*v>dpR!dXtt+HV;drL>dZ@cq&GJVnB4D zBx5INQ=ri4Y^1V{lx3&p)1pgsL-~^CR)eAkr5$)Ob|Cw5{kJ^XogF?uMGF1W?QSZVcYR#=e0FCyhFcJZOy@Tyyf z3{W90jPi~xLk&x0H#9o7)K(tPN8#@b>lYB|T75NiP9~To!4n?P1jiw}S*S;FOnDKE~2+LXP@Huly#iQMzR1zL%DwT#?gGy!K zwxCj3w<}C_yFHXzh_732FR75$W8|i|i2EJuaZcfe$9jTOxZ|;&R1V@y3&Qn2BHqmrmsnCO}j1bzpW!Xxxm2 zt}do$@xV``jhBkX%=3akXQ?asO$321w=7b=itIF&$jjWXdHdgMnN9bXz>@X4>m?5j z9X_4MdgOWZv6;MgZf!x;HH_P9pss1|({w)Q+N5Q|R;P)x`4+sKl5sV&lEpml2=P9^M!2$)JrC^bQ zB?_t(EF%a)AJd89=RQ-}bWY5UxBl3CTr2N)tcN)LHTK z#LYueWPToMuh|J3j?rbC{r(~cNOe7i_>6MBHeXqQ*OkB}7$s$qq@fPG^3Npw75h@O zx>&cUwoJK>8OZx6pu-$0uI}iFxuaNv#uYcZJUf!!oae9z`7#mPuy5B_W!Y}p zZy=+Pn_Zds`RGS%H$A)?_amY7pWqfu-@0Y3$4FBRjXQA{<}ET#!3+hyUH49$VY?bL z>|}V#9Z}kA%#+uCO_o;Ru*yT(P?Lnxj;YIm|4!!ejH3uq9%Q4 z&XD&AdWzMSP$Px6^W1M@BYjJA&awZh#ajzqTI~hY$)L`<*Q@#=Mv*)}Z|NJIWC*@x zY{1k@y+5zjo`iy;YYnQ+b!?Nj!|nFLI&JibBvjaNDctD2rLE)of}irk5&Yz~`cVMhfyM2CqV<(xCZy9uj5i{S3vVN5PvOCZ$Bc`&JM9CmZHr!o4jKnx3 zyU}~hPuwv1I*BP#I3k_ir$e9R(BZHNLVy)mvq)p7^n6Mhn2o;JZ1Vs$)O=*;g%6W* z<*4OKTdc#}0+5MXp^}hI3Qd>`61XsO4fnddyGO$dk_~5T0^f>&4zV&{fjc6>$6L4Y z3t}awT&X~T1G|?4nf)>@UJ_>Tva2=R+Y1=wlGoJq(I5l#eRHG1n zl{8G=Sp@1(lgPKJ6?+81qnD>H|CF)_3Cf>P#Z*L#9aaRwpXd!LV{ki6sV`9Qc?w(v zL5la4)Kv;w5w*juH)mlBaLP0mvOsW2Vz=>fHpM6%1SJmS9%t1i6r7xfsfOKZ5rf1e zp^EPY*#TPrc{bLs!|VQKQVaH>ZZDA|z1y(f^wJ8^6W(aUXm?>a+AId{{Xhz@D0Z1` zI^;t3F^JQUmVoh{0RSi7goVS*=~K{3YygY_TqGUAdtyByk_#k1!BPju^Am`ZOD4yu ztD5sLZb?HXcvbh48y3nsNERZ43bc(d*^}T7@PlhR04KemL4JxuQp&7%rZhiwR(oB) z^i?38?0VOFx1Zfez_$qCz24*Zunw|#rQmnSir+~y_}c5VaPZAUO_;)1F~YL$U;Wzg-v>%hTr5a^-XGkAiz{N)o6#OTE^e!$9dczg>CLu zZTx-fK%ljLKklcOVy_z#CmNTFaw12NwM)YnzlY>|7^fP0a%C*Pzl8tnp)s{03sRkQ zMT)af1}C~2#}p>A_7We+RlwnZ7&WL=!~bU}r|h6mM}F_p7gF#_NJjEV5Mx2a>x};C z0CSi@T-_a>YSUs+za}1sp1labb!nGU>TU~AD;V(RWmHzHGf4q&Jc-JIzKz0MLiT?q z3PYTq@$&A5c(1k^%Ij{K6R|`&&&t68 zDSxjLQiz>kVO#!`QlF%NWL|Y0D8~LBEL1BQn;09Y2=JdNFbEl-Vr-uY;=FH;lGT5M zD#a!9D0CMeH_ceG4^muG%(nUS26pEGW z^1t#*$>77?2l}!+02ss_PT-*+&D&Pw|6`EkH1!m#7BRWNtcdICF6SINQ7qaAsk@HI zh>dH!aLKAW4{c@G=&s650w>yNtNYTaC7fwEaRPQB4cFC-ROz+3sxUA3>k92Ajv<*tlzuI zB=t(;8sAIal{TqH^C2l8Rz)y~Y1qZPc~oc!-sw)FAEVDezR7(X)HnGCTkjg=2Xxzb zH;tat&^yqZ6@!;99>c_agxlIH#vgiJikWO64md!*Li?AZKp=o0QlS8cEIhqiEmB{k zN~Bd${5Ny(tZUn#ysuNxfxVUgno|Fb0_Mn-1s)!y$^uXPvZQa&@?Dx1D-u_~g+gZv z33fA1^j=e{66- zt9t>X!Z^3Kf>SDKZMeOFqemz`z(0tgI2iY+1x=^5k?C_8OO zB8#JdFt!SZeMgcl5<0~fE{+t>JT-FW8B!MZs8MkjH@fH=7y$WKs5AaN8ETZhu(iRVTpo*bVXk>96cGWA7w z!H3VDjkK4;lapu?DMQbUkBzsyT)5D0rBZa7ku|^ML)I)fU{lfU!M)KLQsBU2- z8tvlf#gVAO#qsB(t|!_C=C_uCC)B{90(Ela!l>GaaLmbPpNuwWYIN-Ei2P&PP?kC0 zrW8rGEXFDf%(5_x!G!4*8EFc{^OUzh!DR|+6f~8x@6c<70#^P0BT8MNV1R(=2n9C1 z7Aaub^=V4|7y-zLtb6dZv|Wk+%cjX=6tI$s^;6_^kSA+zthcW>+1t54k?jqq4=%lU%Z~n{SV$`{|dM{k0bcL zk;}Qc<(zA{X3JPM<=0xaT`Th*=6 z2nci0~T)phn+pg2x>a@HquN~IIrr!>nHD5U`zwS2M>rUw5Wj*xp zRQX$u+gw}o6p}h_J*-y(zpENvFkg9}lfN`)L{@#Zfgd~As6UC{QIzegu(sv9-Ij+3 zm6zq}`gX^AAEc4Pqw(u;9ZPOChZRDl)t)}wZY$a|>NtURT zG%zYCFYKyzgQX^a7A|ZY7jXouIIZV)jDBtxq;%hSG57k+ju{%8=BCv*Z{>nVuh2#CHO3olOs9ygQ!45N{ztP;WQGZKtu}HEzs1&gC@+`CKpb8evdz@HaC*KZ6pS zaKnpB3!U4|R?AWKX5gWOm1HE6!CP@WrF=Cn**`EAB4d886y*apDKh;ave~N03cOBK zsJBA-?bMaqRH}#(!oyC-!z5U0L~c7x4^tfF<@dduI)h1cvrxtE`?OO}2=ITOcJKXTwPtQO3#6r*vy~jKC#tozh7B-vh&H7Ud zq%=gM%64B=7XwHHA-gHs2JwAZ9|>F%Lb02zbfv| z;|RWwlb2gIz=Xhjz<5kB9m}=dyq9+iUSYH7<#8@~`QthHEo_$8b6$l@7>n4#Q6N*n zLLQOyRi<1s-LhN3vr%uXJmOABiFgARz_JRPhosbTU5Z<9$JR>jA$R=E{9R*t!W{vf zOh%P2)dTN}bie*1E0^PKqg4;|3an$6ld*A}Yu#1-D%@ylD)Mh(qMNSgtgL%sO|Qfi zC-i0F(@}SOE+23TV7)WWEX6K;I4zLFi*+Kaxjy(P$VjlQl#W$HddT14>Re4 z7VDwYK=T42OWnqqz**tdAeHZ+T}&ZGElTSbQ*vE#{8bXod_`VgaL}7=XSE(Q8;*CU zPL3pes2-1juC?X+Hv*^I$*?6~FOIclOIH+Z2WYX=@VhM+dHowst9ipi_GYlSs4L^b z5^km`ko*rk${EbYS!eI6l18Tad{C<_ZJlw`Z??~()y*Ib&a&5AVROqH)TJlxiAAmgbt%_QSaUv&?=#sce?!S$l_eHX*RNeI?5{I?ty=stezj z>~<4u)(6wl@0~gp(EcG~3-l^MiEH!9tGl!NtJFdyPN;|ftkbG*t-AF^CvMMy4Z0qU zWJXw(!FGg!DsrL*R(JZxYaSPI1gCN8=QeY}XlR5c#mlDk4#d;DCIwAs_vLratp6dh zd|5B3boSC_lKR{AEeHgNbLDX%IvZXKf+k)>$rx*~z@fMtV##*EY&@>$VK%^0k{nK2 z?gqvcqAVUE%^_G)*yUo4g_H=km6cgN(r2BdWoNN!Lmx_mH@AYduMz>4PG-s(_6RZu zkk|jS)U0T_3ngTJAj(!#AWOm zKZu_Y;|&fPPiQ>5n%A!+leprnb=wW9i&|}|cVofB3N-;zdqf?e%heW|+9bWzTes`m zfd~)Ihp#mswouw0>w#(SDX7*x7ga3zPF<~cV;xFS84}73e94(K#*xW|xI+q*m=@$i z76edlNgrF@ZH~4xOEotUHRvn^Wy=q`%9~3yF-OWqjERj1y7DkZCkMQG}q%SRJfTCoJL=_FD0>)ke`$V*h_B0Ge>9F=M{Qd+Gh zirRY?v}}k0brLK@vl^;NqMs>hO;Kea1HOv;fF@gE$~49d`$5U-9T^Cs`9aDd{h7M7 zi9=Xb2^S$)6B*N-+57%wXy_Qyz@a9Bscoe^BhVwrJ_?m9$MunpBN22vB5bKdqyvTZ z9WSUvtzGo)G@vY?*D?Sr&h3q61G=;(L&&#!x5ZVwQNPtplwFcu?{U$O;#%X;2RXB$ z2ecEWL^-YGJwuTj>j9LZlu;aOL9VAdY2YDAz%eP=z2lh?98R?q*_^7VxZd(tK|G3M z-=Hay{K;hCMuzq`aN!y|b{}?eH>XO?+>S*vr4Li%zWJK9liw-qz`WQrc1nHN#$7|5 z>6dm*zV8?M`TO=xxnJJ2Py#G!lt8n@?&taTKA-A5FEEX~f1z*p%QXvSrwSS?g9D9>%qL#J3GZmsVcDd!99xy3m$paF zMHP}vVv$8Ht_(;J+%DC3K{hdIfO-Z+CAzQ7cHESNr>elY?W-Fs8f>oNw_4CM#jpj7 z78aY9qv<4YW`i!M3k4)<>Q&{fHSe(Ro)U4DytugGHyg3izA{iB#3mzsvr}L_g8^FY zhQk^<3@x;$wLRbyOLHZ41{4sDt!~5ggT-5uk<$x!wcEJig^|tYQL*7~bs$-yN&uxl zel?bidrdUWs7&RyCYEzWleDmi8C0QWdHQRttf1LXR7!+eR7$veWUV$DQ9&2KcRkn~ zv>PZPaB#9mONMPs+6B90j2i``1S@SaUw~~^F!AO=?@)G)Am@9=(%htC)~Hg8ae-Pb zs@7^ZyY-glZ&9&UbNvPw-NQ_0K?Fxe80D{1fJddTbvT{%R#du((WZEb>{Z`y=|Qxw zV7;oxkWrCiMPn~_L#BBdb}eWkvM#i@)!*Rj0lQ3ByLt#OzJMb*i&H6Q8}=#FG+}h| zc+{+XGw)P>gVQZ~CAZ|3VL(>gkvH?e#H#M7JBBwUolQ|75z>{u)?Ls)L27ap>dh^cLlc!7yz5+pz6z z(ROGz>{e2H6WmBvI=UBlbp`GQ#ilLn#8+SyXQ5^ILS_zZWOih&sZjP-J#1`{Atjan ze|O{6(+ddzu#glQoIdNEUWkQb=IQHkM;D|V)96v5wKBo?mJs<`Ra{&F%1Q;ODNYQ* zr6C=F`T&-k)&ZWwMF=@e@bRvxM&#PU)mYzHH+Bpn;&0;pi?9*gt`5dW)GU(jDVX>@ZI@f!A?<$*5P>lKKXtK3}bGS%y&K09dGXU{~^>)Kk zEF&t3G6^oN7ICXy;_1sg{Q^#Nww7YUPxrPB+ObAX{s>t_*PSjEjBy}_6{C0jV_T@z z=hR#uvec=gQHF4ig8zvV<^=XQb+b*v$A@?9kl?YsZuG4m8eh---Q3%`5L|q>a4&Zs z$fS{LKYFtm7McDoW)L9qqpsP8Ph%(V+Pjtu2oiHDrQOAp>=eQh=GA=1bc_8waDY<3 z@J{aC{9O}RK=~e1R^0OU%wMlU8!YaQ+|TWlUdg$@xb56s3$>M=%mvqPL!aaSH*rX7 zs%*{MhFb|o*UYzaZyA6uN8IY0RcMVRNioJ0{qmXxIvQP4bl<26oB;cR9)g~E*4al~ zGAbMyO3&}4#MMVnzk!->nxsngb9f0g+g4sjsVlhIJ8$LZ*1fiOr=!mO84Kf@Fux6= zn%_5N0}U}lR!QdG5wS1U=s+M3&@0sGnTyVxp=n8w7!*JB$N4>sBbddhR}L{3yCz5D z9%kzm^uW%A*7o6KL|s7qx1k#^T>@2d&FEn&p>2W=Ma8dO6O$!bS5G2Ml$Uq9=UhnY zDV+Wr4xv-im;|CtWcz@XbWo=gJ#FrgfZwuQqH@O%ns+!|kxlR})4D=4AS;b5phOzv zw+WZYsBmWLu6l*7dI6`X)P`?@#mr@uM=COkTtrt^=(M^D8dzD#qb3U4T2!J~pqoSb zr@Q-2=8-<1!POt*2p+|$WL3;bt7_Wl^|Uo@K)u2!*dLAOE5^wORcp$eEcPDy1QHk` zM=oDFFD|n9AL10|?uw^JmgyyUdBn$q`NkW|^2`IoDze*T&Mm05i+dIry$`+%nWxV2F+M zOX43oesl6>A*^zNV43CNE)({qM$zE+$p(Ao{KDKQeKVnEfx?vS+x6BBosvsZy~fio z;{>k`u&Iuk6 zQtn9}zl|f9$BD|l`G{%QAK2zGD)=9ndGkXk_aB(W%3qp?5~UyA`{>wd#k_Oo`xbuQ z=Y&N@Z-@l>g7Sjt0xs_!xju;S70B$nnvWRU@HOw4My{6+;f#VDH@^!mxnsUz-ZpOM z-ZPham&Ca4H9Lt{B1KLBbx@6>zI?L_b=;*1UZ)$D>Xc}214V4kf^|jK!D$Vmu?rz6 z1*WKmQxsPq9DKL%6O{+a3~w)Uo|Zz;9PK0VlrHf9vXkTnCT6@)82gaR7efepsPt{~ zf$HPc$B)hvc-w<3H5nb@vBoxh@*h7o>NYZ=R|VYwwT;`MZset>>RWt1n0sM7Y>fpd zBW9Pw?_M0ceeWzKo)u zD$EI;rG`-qX6&hfyk*gOF*P0Or-{wSn4DZ_*y0VA%F^<)m42#q@ltGONb?f_N{Auu z_jQ_KVk*!AOAy}ya24kX63by_r9=Pp%F3X7(y~nRkwp8v=etd$8y@G+Y@1%qPVVgK zL6NlMqz#FQ`n7gzJE?{3gz5}b%Ozr!7-+OjXQ@)V@Z~!lFpvZtor85J9l$bP@YdJG zCxgUb41nVOtu4PjCx&>8%@T0un8lt2Mu`9_ml6=mp!}diJPkuByay8+cOMNSv`t>L z1;|zK{RHkEz;1ElCDbGa5w#Tw&j6?ZMZ~sy%;sSKN!4f(umZl0OHYa>jKA3NI*TiR z{i!Eb#9aj=ra>@52O3Ckq>TM^%L3s^fMY?L>vNn}#hFErQsg1alH8<9VWI$>on;KL z5SgqHc`Wul{1k(1GO7t~IT&5tA&|*FtMuvlC!{J`yl{E6e7HXpT|MwYtUxQE;^((W znwWW@G9Du}AQ7?tB;Ti%c_kjZt1n%3Fj|?G#)FmM^V;Z+%E^cYBB`TloJ^R<;EoGj z8*XB=k#`Oox)hAGDMUE-z>2k+&A6Fei`Sbrj2{?2a?MzqDZt@odkRrDIoG6yrQhhZ zM{`Iq%LtrU+d@v7!GN!GwW65BrLasr3kFbSb7U7f7s@9%p6eRH#jikXlQD+H>dBSd>Cvr7>)vjhenv` zOR;?ku|_4PQ*QufKgKI+f$c-MI?fu^_wf9LkZ@>sFysO(; zf_{2@tLc1mD^%2Je5 zYnY7Q;}_rs)cl`o+M!pH7`C>dxUQ&f#8W=sn*mTJfcU2+w8=es7n7W6@&Vrh)2QRI z29=zvSw85%egjxTMi$KX9vOb8qdKIGO_+Igr#G20z!aM7m6Mw1=N=hYL8^{EBT6iz zGZz3ef`6*-;*I(aPeQ+tvQUfk$RL6#vb$jurp_9wtZ|^Cf*uFJ)bT~BMmPw7q54J1 zn<`AvNP6i(;f_NpcHI$H zLEW9~DXM&<-s)<#F3L9pJdVav6}zT7aC#y@c}+T~TlIve3D)&WxkUa+iEj zp1Bb)#-F`96_xJ=Eac!SE~X1rt6-d@5evA5PJpU71LzPaAZV)uJK=<3n*}%rD&`cf zOxOuuJU6z!kdsu!50mS0sf(a}4fY;n5(gI^qkQRF%((?2W(n3a1 zWhrliWo3{S1e*bA$+u7TN~m*e_Yl+UptSY`u!ZsMRp`A1u?eK^enD)4!W#wJ1h5YB zeS3ETIVXup^z(wz+*^w zi27Zg1_s0L@Ky|lGq`HAYqTT_g=vs#B~LQ0!qg=?F>S)-1EQ`NG$k4AF`oZ{h|xcl1_=h*A{B6LaZe18P#uG`@Rl_UBdgZ`@jJuC^mmEHvKe4Aov1K z0w0bOo7V6fpt8JkMLfYGmnhm8tVQv5^@8GnlJi!3zZV z>(&cka|VD->U%ZC_geYTd?5jAP7$nmOfg>r$IxHui*4a?)}(h$?RoVI^q&I4v#|q! z$h?jH2nhXk%kZ^YNCT5zJhrJRABP9iFU#;?rm4ohR`_V~Y}92W#aL8%vDpZ(i1t*^ zqeHx;2A>FA?Ep&+cNeMQG}NBNG>w=eu&_kcPoHWxeiD|U6%v{?uo~97Et+mnshS}I zb!fE35vS+QolBIt=V75IZJYhp43r%2&iqEW)tXs!X5s)j+Fmm|u^aJAUZak}9magc zQBO2|P^E%97Y0;Zvlw%D>NW!%0*086*f|-S7sa@Xv1^QiB>CetkBc~d!j&qzJ=kO- zwhZ-;@f4JJ8b5NKp&%iBQs0j-)<0o6@Btkj^z$=m6c)14fyQ4!^zOkgu$jA+Q%CrF z547?&B(j^MN98SZ&C>jr@;Nl_i55Yh9C8o+QM){hBOsHw2T{BUf80GV&4EZZr9Y7c zu_m2*&(gho0y#3sEPEN1p3~8(=l+E2gk2ra^=2|%JxCBIc`$q&Mezx!&+$su-XHQx z#_$ZTe$0X?xGGk~m+r8tx`=1+eBB1%m?0Rgdy<9N$@8uuAT##<;qYP)^3cF#Pfx_^Qakqq3pMTyN;;J!HqZ2V< z98rzEKJzolOZgq*(!;YfJ5+tlnQ3>YA-e3|ir`y=IZI{}E_sQ`T@xk_rj5QZX&kI8 zmG7UEmFueOp~&HAUFL&mLD(DjW%xt|5$A*84CQPg4p+*;mZo|W`$fcu!7UxwmH}`% zj{M6+hz*!k67nfzfqn%TN+~NIty?sE6PQW{gB|`9NuquqOHuP5L;Vr16ZygGy&Q=0 zryk{D}LHEl#smS(p=4`i7^OEO9CTO;|50It-akigVg_<-5@Miu}UywpasGPM^MDj!p{T&&y6aF zmF!XK$W%4+6!lK@ImKtfRYj@eplMg!fS(VT`ai?lKV@6a;zIPf30v%c+n5zCl$t28 zfJ){6n4<}gebgNLNHJ#v$Iu^pbRI|WXEtF@@1DQBVyRN6o8+B zJrghY5P=&%;yPVrbcC!TEL7}I6uUvQ?D&SMTra`cWtY?t$Au18cLMAZ*l@7BBwpMS zjeRzj2yysa9BRctUzjZ7FJM6{N#O{qO(Oaem6oyj^bo;GgK+!oZY|v@g!5$wWcFK9 zJvk`$U2EdCx793$ShN!OrzG7fbXs?;uj{!h~ zQ3a@95A#P{QdP12nUdot&ZZIFAAok%5r_ z1ca~xi}8DX04;HNlDYjzIszD_y(6Fnh^77&yK;u7Y*$m+p?fL)9bjT#`#6RY z#-IR?5&yD)fBp1;9%{u*j~)Z7_V0gS8`5e25^gfxL{JW}Qd_!-2*>+Y+EFLPN_9tv zu+pK9N`$v`G>ZUA_oP7rd{-noQM_3P&98)se=hBG(UgdnxYH9u)5<9wGJt3~aw>(a zX>cS+->z{#2W;&~OxV`0Dfd;lr{E0Z8r-yxg2;~|1`SbkhxE2`-M746+<7<-wgL^C z&>J8`4M6NPuDK7MXptsg_A+BJ4yKdl)f4O)Whespf!!kr>jAWahlcw#9I<0)7V~q+ zGjpMcn}Um`%+!tiL{{O^Uw2&4b3o{K@a`~Ui>9>2^K86 z#3377!?j&Tbn7H`APjT}pj{*T&u>w%`b`0P@x_GouN9UGiY6d8^~>F1H_rCi1Z&tTBbiFB_tcjtvwsaS;wS@(h@X4(*&Vu2W5My+oYc?k$kp3<{ld>T6;7I3AIk_FOa4G*_j18o)_t1ia700{$~()H@imS<@<$sCgMaG&x4KVEt_ST{tiC4Gbz# zj7R4?s9d;BV)C8UZnFiYCmkle9aHov?xt9azoL=2`Vv4)4_WZDm@z*BeI{lMuQQ7! zg~2XirE4JNNOph+Qdy)xnYl$iTewR8Xu|M~FtTTGK^FoT*wl{IE61`3{^(brQ5ZVR z&15JS|G$~LY2D6YTeE;+344}CoJR-jRJ~Ol4E=$(=FZ~~wQpENfE8QO zq1yF0woHHYruQuOh&TukLWFg_1$cxX#R03}H(da2Wh0tyd-WRthJ;OE&+rmVeFs(T zwa5okGFU7B7U?$FORn5fu4E`a+1Gk5^z%3*UV6Co{6Y#oZUoaA?v6aajiRpy;!8|v zn?eibYT3i41f)sH%tYideY4KhMfFt_(2XG?Y&mZ3n=k-Y$vYuH;oLbY6vxb-BwJTT(j)~Ai42h$$y{@LyKI2VRxk4#!(A^8KDaU;7nkCQ!HSjymtT zKo(edT)@HKppBCY$0@%Z;hOK*@0!?y0=I&Ak--4qm$iv1fejlWc9N(Q@qQx4CBUsB z`-#k2AuR4H8`n1irjkxtDtmK4%0Ejd1r#ttufz#ii(YO@BNk*}<8PZ!I$J z3@O5(#B?8$x{Mpm|GvVjE9vcke7}ZgZy}Sqii_S{b{ZcZiEwDwdc`SMCxl#U|ZT0V%=HD|-LAOwv zl(1zwlp_l-bQ}Kz6Q}b24jVd!N8^Q(J&l;0akxtH!K4R;A}#X+n=ayV-yo*aWg4Yv zGTQ~2-G>yR;c^rbA5N|)AL5HWHSG|#6zLLSOAO5QqVk4!$892@HpHNcBpfg;HaHrm z$WG{|cEj8L&19IT&ECU9ZQYx4UvpXWMI7;*!-9n1a}8-GqU$YuWeU2|kC8(C7oG?l z?vcmQVb-EYT!PIB;{PCN(wNzE_BClw;(=kWw_DT9ZIBw1KT59D_T>kv65AIxAe?0U z{!8D+zAx+&<2PZj!weyccP(yI5zP3Dy$S?5o-sIb-MDM-6yj*2{PxqZkP!+9Fht^= z`b7alifL;N^v7nEdXG%2qPC^}Ax;2GP#F-h`V*El&m7~jKRq5a;+9+l{H@jEkcT~L zQ)GcEq&D@ZEaf14f?Cu&oFxYrm7;7-L73T88l^LqXJA9TD}7>U4kD^USo z6ambrd-b3A_}BP&B=flhy)&~22h0YdAZ1Z2QZW`gzRM9PvWBRF4|RC5A3qRvKEf7R zczX2K`_b#)y!uk@;xD{(@vE1YzMNSWBz`@N=XrI4CsF&jcB5(>7mfX#h+g2hMK=Av zh<}l9hUw@T#(0S1ReS?t#EY7yS?!Pc_JDzgzg!dEIf{sYDy5B2d6eMRPX76MIr#_2 mEa0db$E>l5@pk2x9rM)4_(<+o#%IQljXysA!uS(Y_WuLKjpkYa literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/meta.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/meta.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..194e232206dc8cb1e5473437743abdebb8cc46bb GIT binary patch literal 3822 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 G{p8=C+w;Hx literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/nodes.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/nodes.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..63b0905beed2ab1310fd26c14e4d684423727106 GIT binary patch literal 40308 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/parser.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/parser.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..57fcb3df7cbcb3dc5cf9ce3304e912f487e4cd5d GIT binary patch literal 28115 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 AE&u=k literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/sandbox.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/sandbox.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..19963a60fe0ee5f115f08df9f54627a849e0a9b1 GIT binary patch literal 12242 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 YByF%Cr;oEArBCQT)W>x#{P+Cezi(|$;Q#;t literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/__pycache__/utils.cpython-310.pyc b/venv/lib/python3.10/site-packages/jinja2/__pycache__/utils.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e006e494b1929ee0973e5e2de2fc38176b7bc841 GIT binary patch literal 24829 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.10/site-packages/jinja2/_identifier.py b/venv/lib/python3.10/site-packages/jinja2/_identifier.py new file mode 100644 index 0000000..928c150 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/_identifier.py @@ -0,0 +1,6 @@ +import re + +# generated by scripts/generate_identifier_pattern.py +pattern = re.compile( + r"[\w·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣ৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఄా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-᪽ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰℘℮⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣠-꣱ꣿꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯︳︴﹍-﹏_𐇽𐋠𐍶-𐍺𐨁-𐨃𐨅𐨆𐨌-𐨏𐨸-𐨿𐨺𐫦𐫥𐴤-𐽆𐴧-𐽐𑀀-𑀂𑀸-𑁆𑁿-𑂂𑂰-𑂺𑄀-𑄂𑄧-𑄴𑅅𑅆𑅳𑆀-𑆂𑆳-𑇀𑇉-𑇌𑈬-𑈷𑈾𑋟-𑋪𑌀-𑌃𑌻𑌼𑌾-𑍄𑍇𑍈𑍋-𑍍𑍗𑍢𑍣𑍦-𑍬𑍰-𑍴𑐵-𑑆𑑞𑒰-𑓃𑖯-𑖵𑖸-𑗀𑗜𑗝𑘰-𑙀𑚫-𑚷𑜝-𑜫𑠬-𑠺𑨁-𑨊𑨳-𑨹𑨻-𑨾𑩇𑩑-𑩛𑪊-𑪙𑰯-𑰶𑰸-𑰿𑲒-𑲧𑲩-𑲶𑴱-𑴶𑴺𑴼𑴽𑴿-𑵅𑵇𑶊-𑶎𑶐𑶑𑶓-𑶗𑻳-𑻶𖫰-𖫴𖬰-𖬶𖽑-𖽾𖾏-𖾒𛲝𛲞𝅥-𝅩𝅭-𝅲𝅻-𝆂𝆅-𝆋𝆪-𝆭𝉂-𝉄𝨀-𝨶𝨻-𝩬𝩵𝪄𝪛-𝪟𝪡-𝪯𞀀-𞀆𞀈-𞀘𞀛-𞀡𞀣𞀤𞀦-𞣐𞀪-𞣖𞥄-𞥊󠄀-󠇯]+" # noqa: B950 +) diff --git a/venv/lib/python3.10/site-packages/jinja2/async_utils.py b/venv/lib/python3.10/site-packages/jinja2/async_utils.py new file mode 100644 index 0000000..f0c1402 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/async_utils.py @@ -0,0 +1,99 @@ +import inspect +import typing as t +from functools import WRAPPER_ASSIGNMENTS +from functools import wraps + +from .utils import _PassArg +from .utils import pass_eval_context + +if t.TYPE_CHECKING: + import typing_extensions as te + +V = t.TypeVar("V") + + +def async_variant(normal_func): # type: ignore + def decorator(async_func): # type: ignore + pass_arg = _PassArg.from_obj(normal_func) + need_eval_context = pass_arg is None + + if pass_arg is _PassArg.environment: + + def is_async(args: t.Any) -> bool: + return t.cast(bool, args[0].is_async) + + else: + + def is_async(args: t.Any) -> bool: + return t.cast(bool, args[0].environment.is_async) + + # Take the doc and annotations from the sync function, but the + # name from the async function. Pallets-Sphinx-Themes + # build_function_directive expects __wrapped__ to point to the + # sync function. + async_func_attrs = ("__module__", "__name__", "__qualname__") + normal_func_attrs = tuple(set(WRAPPER_ASSIGNMENTS).difference(async_func_attrs)) + + @wraps(normal_func, assigned=normal_func_attrs) + @wraps(async_func, assigned=async_func_attrs, updated=()) + def wrapper(*args, **kwargs): # type: ignore + b = is_async(args) + + if need_eval_context: + args = args[1:] + + if b: + return async_func(*args, **kwargs) + + return normal_func(*args, **kwargs) + + if need_eval_context: + wrapper = pass_eval_context(wrapper) + + wrapper.jinja_async_variant = True # type: ignore[attr-defined] + return wrapper + + return decorator + + +_common_primitives = {int, float, bool, str, list, dict, tuple, type(None)} + + +async def auto_await(value: t.Union[t.Awaitable["V"], "V"]) -> "V": + # Avoid a costly call to isawaitable + if type(value) in _common_primitives: + return t.cast("V", value) + + if inspect.isawaitable(value): + return await t.cast("t.Awaitable[V]", value) + + return value + + +class _IteratorToAsyncIterator(t.Generic[V]): + def __init__(self, iterator: "t.Iterator[V]"): + self._iterator = iterator + + def __aiter__(self) -> "te.Self": + return self + + async def __anext__(self) -> V: + try: + return next(self._iterator) + except StopIteration as e: + raise StopAsyncIteration(e.value) from e + + +def auto_aiter( + iterable: "t.Union[t.AsyncIterable[V], t.Iterable[V]]", +) -> "t.AsyncIterator[V]": + if hasattr(iterable, "__aiter__"): + return iterable.__aiter__() + else: + return _IteratorToAsyncIterator(iter(iterable)) + + +async def auto_to_list( + value: "t.Union[t.AsyncIterable[V], t.Iterable[V]]", +) -> t.List["V"]: + return [x async for x in auto_aiter(value)] diff --git a/venv/lib/python3.10/site-packages/jinja2/bccache.py b/venv/lib/python3.10/site-packages/jinja2/bccache.py new file mode 100644 index 0000000..ada8b09 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/bccache.py @@ -0,0 +1,408 @@ +"""The optional bytecode cache system. This is useful if you have very +complex template situations and the compilation of all those templates +slows down your application too much. + +Situations where this is useful are often forking web applications that +are initialized on the first request. +""" + +import errno +import fnmatch +import marshal +import os +import pickle +import stat +import sys +import tempfile +import typing as t +from hashlib import sha1 +from io import BytesIO +from types import CodeType + +if t.TYPE_CHECKING: + import typing_extensions as te + + from .environment import Environment + + class _MemcachedClient(te.Protocol): + def get(self, key: str) -> bytes: ... + + def set( + self, key: str, value: bytes, timeout: t.Optional[int] = None + ) -> None: ... + + +bc_version = 5 +# Magic bytes to identify Jinja bytecode cache files. Contains the +# Python major and minor version to avoid loading incompatible bytecode +# if a project upgrades its Python version. +bc_magic = ( + b"j2" + + pickle.dumps(bc_version, 2) + + pickle.dumps((sys.version_info[0] << 24) | sys.version_info[1], 2) +) + + +class Bucket: + """Buckets are used to store the bytecode for one template. It's created + and initialized by the bytecode cache and passed to the loading functions. + + The buckets get an internal checksum from the cache assigned and use this + to automatically reject outdated cache material. Individual bytecode + cache subclasses don't have to care about cache invalidation. + """ + + def __init__(self, environment: "Environment", key: str, checksum: str) -> None: + self.environment = environment + self.key = key + self.checksum = checksum + self.reset() + + def reset(self) -> None: + """Resets the bucket (unloads the bytecode).""" + self.code: t.Optional[CodeType] = None + + def load_bytecode(self, f: t.BinaryIO) -> None: + """Loads bytecode from a file or file like object.""" + # make sure the magic header is correct + magic = f.read(len(bc_magic)) + if magic != bc_magic: + self.reset() + return + # the source code of the file changed, we need to reload + checksum = pickle.load(f) + if self.checksum != checksum: + self.reset() + return + # if marshal_load fails then we need to reload + try: + self.code = marshal.load(f) + except (EOFError, ValueError, TypeError): + self.reset() + return + + def write_bytecode(self, f: t.IO[bytes]) -> None: + """Dump the bytecode into the file or file like object passed.""" + if self.code is None: + raise TypeError("can't write empty bucket") + f.write(bc_magic) + pickle.dump(self.checksum, f, 2) + marshal.dump(self.code, f) + + def bytecode_from_string(self, string: bytes) -> None: + """Load bytecode from bytes.""" + self.load_bytecode(BytesIO(string)) + + def bytecode_to_string(self) -> bytes: + """Return the bytecode as bytes.""" + out = BytesIO() + self.write_bytecode(out) + return out.getvalue() + + +class BytecodeCache: + """To implement your own bytecode cache you have to subclass this class + and override :meth:`load_bytecode` and :meth:`dump_bytecode`. Both of + these methods are passed a :class:`~jinja2.bccache.Bucket`. + + A very basic bytecode cache that saves the bytecode on the file system:: + + from os import path + + class MyCache(BytecodeCache): + + def __init__(self, directory): + self.directory = directory + + def load_bytecode(self, bucket): + filename = path.join(self.directory, bucket.key) + if path.exists(filename): + with open(filename, 'rb') as f: + bucket.load_bytecode(f) + + def dump_bytecode(self, bucket): + filename = path.join(self.directory, bucket.key) + with open(filename, 'wb') as f: + bucket.write_bytecode(f) + + A more advanced version of a filesystem based bytecode cache is part of + Jinja. + """ + + def load_bytecode(self, bucket: Bucket) -> None: + """Subclasses have to override this method to load bytecode into a + bucket. If they are not able to find code in the cache for the + bucket, it must not do anything. + """ + raise NotImplementedError() + + def dump_bytecode(self, bucket: Bucket) -> None: + """Subclasses have to override this method to write the bytecode + from a bucket back to the cache. If it unable to do so it must not + fail silently but raise an exception. + """ + raise NotImplementedError() + + def clear(self) -> None: + """Clears the cache. This method is not used by Jinja but should be + implemented to allow applications to clear the bytecode cache used + by a particular environment. + """ + + def get_cache_key( + self, name: str, filename: t.Optional[t.Union[str]] = None + ) -> str: + """Returns the unique hash key for this template name.""" + hash = sha1(name.encode("utf-8")) + + if filename is not None: + hash.update(f"|{filename}".encode()) + + return hash.hexdigest() + + def get_source_checksum(self, source: str) -> str: + """Returns a checksum for the source.""" + return sha1(source.encode("utf-8")).hexdigest() + + def get_bucket( + self, + environment: "Environment", + name: str, + filename: t.Optional[str], + source: str, + ) -> Bucket: + """Return a cache bucket for the given template. All arguments are + mandatory but filename may be `None`. + """ + key = self.get_cache_key(name, filename) + checksum = self.get_source_checksum(source) + bucket = Bucket(environment, key, checksum) + self.load_bytecode(bucket) + return bucket + + def set_bucket(self, bucket: Bucket) -> None: + """Put the bucket into the cache.""" + self.dump_bytecode(bucket) + + +class FileSystemBytecodeCache(BytecodeCache): + """A bytecode cache that stores bytecode on the filesystem. It accepts + two arguments: The directory where the cache items are stored and a + pattern string that is used to build the filename. + + If no directory is specified a default cache directory is selected. On + Windows the user's temp directory is used, on UNIX systems a directory + is created for the user in the system temp directory. + + The pattern can be used to have multiple separate caches operate on the + same directory. The default pattern is ``'__jinja2_%s.cache'``. ``%s`` + is replaced with the cache key. + + >>> bcc = FileSystemBytecodeCache('/tmp/jinja_cache', '%s.cache') + + This bytecode cache supports clearing of the cache using the clear method. + """ + + def __init__( + self, directory: t.Optional[str] = None, pattern: str = "__jinja2_%s.cache" + ) -> None: + if directory is None: + directory = self._get_default_cache_dir() + self.directory = directory + self.pattern = pattern + + def _get_default_cache_dir(self) -> str: + def _unsafe_dir() -> "te.NoReturn": + raise RuntimeError( + "Cannot determine safe temp directory. You " + "need to explicitly provide one." + ) + + tmpdir = tempfile.gettempdir() + + # On windows the temporary directory is used specific unless + # explicitly forced otherwise. We can just use that. + if os.name == "nt": + return tmpdir + if not hasattr(os, "getuid"): + _unsafe_dir() + + dirname = f"_jinja2-cache-{os.getuid()}" + actual_dir = os.path.join(tmpdir, dirname) + + try: + os.mkdir(actual_dir, stat.S_IRWXU) + except OSError as e: + if e.errno != errno.EEXIST: + raise + try: + os.chmod(actual_dir, stat.S_IRWXU) + actual_dir_stat = os.lstat(actual_dir) + if ( + actual_dir_stat.st_uid != os.getuid() + or not stat.S_ISDIR(actual_dir_stat.st_mode) + or stat.S_IMODE(actual_dir_stat.st_mode) != stat.S_IRWXU + ): + _unsafe_dir() + except OSError as e: + if e.errno != errno.EEXIST: + raise + + actual_dir_stat = os.lstat(actual_dir) + if ( + actual_dir_stat.st_uid != os.getuid() + or not stat.S_ISDIR(actual_dir_stat.st_mode) + or stat.S_IMODE(actual_dir_stat.st_mode) != stat.S_IRWXU + ): + _unsafe_dir() + + return actual_dir + + def _get_cache_filename(self, bucket: Bucket) -> str: + return os.path.join(self.directory, self.pattern % (bucket.key,)) + + def load_bytecode(self, bucket: Bucket) -> None: + filename = self._get_cache_filename(bucket) + + # Don't test for existence before opening the file, since the + # file could disappear after the test before the open. + try: + f = open(filename, "rb") + except (FileNotFoundError, IsADirectoryError, PermissionError): + # PermissionError can occur on Windows when an operation is + # in progress, such as calling clear(). + return + + with f: + bucket.load_bytecode(f) + + def dump_bytecode(self, bucket: Bucket) -> None: + # Write to a temporary file, then rename to the real name after + # writing. This avoids another process reading the file before + # it is fully written. + name = self._get_cache_filename(bucket) + f = tempfile.NamedTemporaryFile( + mode="wb", + dir=os.path.dirname(name), + prefix=os.path.basename(name), + suffix=".tmp", + delete=False, + ) + + def remove_silent() -> None: + try: + os.remove(f.name) + except OSError: + # Another process may have called clear(). On Windows, + # another program may be holding the file open. + pass + + try: + with f: + bucket.write_bytecode(f) + except BaseException: + remove_silent() + raise + + try: + os.replace(f.name, name) + except OSError: + # Another process may have called clear(). On Windows, + # another program may be holding the file open. + remove_silent() + except BaseException: + remove_silent() + raise + + def clear(self) -> None: + # imported lazily here because google app-engine doesn't support + # write access on the file system and the function does not exist + # normally. + from os import remove + + files = fnmatch.filter(os.listdir(self.directory), self.pattern % ("*",)) + for filename in files: + try: + remove(os.path.join(self.directory, filename)) + except OSError: + pass + + +class MemcachedBytecodeCache(BytecodeCache): + """This class implements a bytecode cache that uses a memcache cache for + storing the information. It does not enforce a specific memcache library + (tummy's memcache or cmemcache) but will accept any class that provides + the minimal interface required. + + Libraries compatible with this class: + + - `cachelib `_ + - `python-memcached `_ + + (Unfortunately the django cache interface is not compatible because it + does not support storing binary data, only text. You can however pass + the underlying cache client to the bytecode cache which is available + as `django.core.cache.cache._client`.) + + The minimal interface for the client passed to the constructor is this: + + .. class:: MinimalClientInterface + + .. method:: set(key, value[, timeout]) + + Stores the bytecode in the cache. `value` is a string and + `timeout` the timeout of the key. If timeout is not provided + a default timeout or no timeout should be assumed, if it's + provided it's an integer with the number of seconds the cache + item should exist. + + .. method:: get(key) + + Returns the value for the cache key. If the item does not + exist in the cache the return value must be `None`. + + The other arguments to the constructor are the prefix for all keys that + is added before the actual cache key and the timeout for the bytecode in + the cache system. We recommend a high (or no) timeout. + + This bytecode cache does not support clearing of used items in the cache. + The clear method is a no-operation function. + + .. versionadded:: 2.7 + Added support for ignoring memcache errors through the + `ignore_memcache_errors` parameter. + """ + + def __init__( + self, + client: "_MemcachedClient", + prefix: str = "jinja2/bytecode/", + timeout: t.Optional[int] = None, + ignore_memcache_errors: bool = True, + ): + self.client = client + self.prefix = prefix + self.timeout = timeout + self.ignore_memcache_errors = ignore_memcache_errors + + def load_bytecode(self, bucket: Bucket) -> None: + try: + code = self.client.get(self.prefix + bucket.key) + except Exception: + if not self.ignore_memcache_errors: + raise + else: + bucket.bytecode_from_string(code) + + def dump_bytecode(self, bucket: Bucket) -> None: + key = self.prefix + bucket.key + value = bucket.bytecode_to_string() + + try: + if self.timeout is not None: + self.client.set(key, value, self.timeout) + else: + self.client.set(key, value) + except Exception: + if not self.ignore_memcache_errors: + raise diff --git a/venv/lib/python3.10/site-packages/jinja2/compiler.py b/venv/lib/python3.10/site-packages/jinja2/compiler.py new file mode 100644 index 0000000..a4ff6a1 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/compiler.py @@ -0,0 +1,1998 @@ +"""Compiles nodes from the parser into Python code.""" + +import typing as t +from contextlib import contextmanager +from functools import update_wrapper +from io import StringIO +from itertools import chain +from keyword import iskeyword as is_python_keyword + +from markupsafe import escape +from markupsafe import Markup + +from . import nodes +from .exceptions import TemplateAssertionError +from .idtracking import Symbols +from .idtracking import VAR_LOAD_ALIAS +from .idtracking import VAR_LOAD_PARAMETER +from .idtracking import VAR_LOAD_RESOLVE +from .idtracking import VAR_LOAD_UNDEFINED +from .nodes import EvalContext +from .optimizer import Optimizer +from .utils import _PassArg +from .utils import concat +from .visitor import NodeVisitor + +if t.TYPE_CHECKING: + import typing_extensions as te + + from .environment import Environment + +F = t.TypeVar("F", bound=t.Callable[..., t.Any]) + +operators = { + "eq": "==", + "ne": "!=", + "gt": ">", + "gteq": ">=", + "lt": "<", + "lteq": "<=", + "in": "in", + "notin": "not in", +} + + +def optimizeconst(f: F) -> F: + def new_func( + self: "CodeGenerator", node: nodes.Expr, frame: "Frame", **kwargs: t.Any + ) -> t.Any: + # Only optimize if the frame is not volatile + if self.optimizer is not None and not frame.eval_ctx.volatile: + new_node = self.optimizer.visit(node, frame.eval_ctx) + + if new_node != node: + return self.visit(new_node, frame) + + return f(self, node, frame, **kwargs) + + return update_wrapper(new_func, f) # type: ignore[return-value] + + +def _make_binop(op: str) -> t.Callable[["CodeGenerator", nodes.BinExpr, "Frame"], None]: + @optimizeconst + def visitor(self: "CodeGenerator", node: nodes.BinExpr, frame: Frame) -> None: + if ( + self.environment.sandboxed and op in self.environment.intercepted_binops # type: ignore + ): + self.write(f"environment.call_binop(context, {op!r}, ") + self.visit(node.left, frame) + self.write(", ") + self.visit(node.right, frame) + else: + self.write("(") + self.visit(node.left, frame) + self.write(f" {op} ") + self.visit(node.right, frame) + + self.write(")") + + return visitor + + +def _make_unop( + op: str, +) -> t.Callable[["CodeGenerator", nodes.UnaryExpr, "Frame"], None]: + @optimizeconst + def visitor(self: "CodeGenerator", node: nodes.UnaryExpr, frame: Frame) -> None: + if ( + self.environment.sandboxed and op in self.environment.intercepted_unops # type: ignore + ): + self.write(f"environment.call_unop(context, {op!r}, ") + self.visit(node.node, frame) + else: + self.write("(" + op) + self.visit(node.node, frame) + + self.write(")") + + return visitor + + +def generate( + node: nodes.Template, + environment: "Environment", + name: t.Optional[str], + filename: t.Optional[str], + stream: t.Optional[t.TextIO] = None, + defer_init: bool = False, + optimized: bool = True, +) -> t.Optional[str]: + """Generate the python source for a node tree.""" + if not isinstance(node, nodes.Template): + raise TypeError("Can't compile non template nodes") + + generator = environment.code_generator_class( + environment, name, filename, stream, defer_init, optimized + ) + generator.visit(node) + + if stream is None: + return generator.stream.getvalue() # type: ignore + + return None + + +def has_safe_repr(value: t.Any) -> bool: + """Does the node have a safe representation?""" + if value is None or value is NotImplemented or value is Ellipsis: + return True + + if type(value) in {bool, int, float, complex, range, str, Markup}: + return True + + if type(value) in {tuple, list, set, frozenset}: + return all(has_safe_repr(v) for v in value) + + if type(value) is dict: # noqa E721 + return all(has_safe_repr(k) and has_safe_repr(v) for k, v in value.items()) + + return False + + +def find_undeclared( + nodes: t.Iterable[nodes.Node], names: t.Iterable[str] +) -> t.Set[str]: + """Check if the names passed are accessed undeclared. The return value + is a set of all the undeclared names from the sequence of names found. + """ + visitor = UndeclaredNameVisitor(names) + try: + for node in nodes: + visitor.visit(node) + except VisitorExit: + pass + return visitor.undeclared + + +class MacroRef: + def __init__(self, node: t.Union[nodes.Macro, nodes.CallBlock]) -> None: + self.node = node + self.accesses_caller = False + self.accesses_kwargs = False + self.accesses_varargs = False + + +class Frame: + """Holds compile time information for us.""" + + def __init__( + self, + eval_ctx: EvalContext, + parent: t.Optional["Frame"] = None, + level: t.Optional[int] = None, + ) -> None: + self.eval_ctx = eval_ctx + + # the parent of this frame + self.parent = parent + + if parent is None: + self.symbols = Symbols(level=level) + + # in some dynamic inheritance situations the compiler needs to add + # write tests around output statements. + self.require_output_check = False + + # inside some tags we are using a buffer rather than yield statements. + # this for example affects {% filter %} or {% macro %}. If a frame + # is buffered this variable points to the name of the list used as + # buffer. + self.buffer: t.Optional[str] = None + + # the name of the block we're in, otherwise None. + self.block: t.Optional[str] = None + + else: + self.symbols = Symbols(parent.symbols, level=level) + self.require_output_check = parent.require_output_check + self.buffer = parent.buffer + self.block = parent.block + + # a toplevel frame is the root + soft frames such as if conditions. + self.toplevel = False + + # the root frame is basically just the outermost frame, so no if + # conditions. This information is used to optimize inheritance + # situations. + self.rootlevel = False + + # variables set inside of loops and blocks should not affect outer frames, + # but they still needs to be kept track of as part of the active context. + self.loop_frame = False + self.block_frame = False + + # track whether the frame is being used in an if-statement or conditional + # expression as it determines which errors should be raised during runtime + # or compile time. + self.soft_frame = False + + def copy(self) -> "te.Self": + """Create a copy of the current one.""" + rv = object.__new__(self.__class__) + rv.__dict__.update(self.__dict__) + rv.symbols = self.symbols.copy() + return rv + + def inner(self, isolated: bool = False) -> "Frame": + """Return an inner frame.""" + if isolated: + return Frame(self.eval_ctx, level=self.symbols.level + 1) + return Frame(self.eval_ctx, self) + + def soft(self) -> "te.Self": + """Return a soft frame. A soft frame may not be modified as + standalone thing as it shares the resources with the frame it + was created of, but it's not a rootlevel frame any longer. + + This is only used to implement if-statements and conditional + expressions. + """ + rv = self.copy() + rv.rootlevel = False + rv.soft_frame = True + return rv + + __copy__ = copy + + +class VisitorExit(RuntimeError): + """Exception used by the `UndeclaredNameVisitor` to signal a stop.""" + + +class DependencyFinderVisitor(NodeVisitor): + """A visitor that collects filter and test calls.""" + + def __init__(self) -> None: + self.filters: t.Set[str] = set() + self.tests: t.Set[str] = set() + + def visit_Filter(self, node: nodes.Filter) -> None: + self.generic_visit(node) + self.filters.add(node.name) + + def visit_Test(self, node: nodes.Test) -> None: + self.generic_visit(node) + self.tests.add(node.name) + + def visit_Block(self, node: nodes.Block) -> None: + """Stop visiting at blocks.""" + + +class UndeclaredNameVisitor(NodeVisitor): + """A visitor that checks if a name is accessed without being + declared. This is different from the frame visitor as it will + not stop at closure frames. + """ + + def __init__(self, names: t.Iterable[str]) -> None: + self.names = set(names) + self.undeclared: t.Set[str] = set() + + def visit_Name(self, node: nodes.Name) -> None: + if node.ctx == "load" and node.name in self.names: + self.undeclared.add(node.name) + if self.undeclared == self.names: + raise VisitorExit() + else: + self.names.discard(node.name) + + def visit_Block(self, node: nodes.Block) -> None: + """Stop visiting a blocks.""" + + +class CompilerExit(Exception): + """Raised if the compiler encountered a situation where it just + doesn't make sense to further process the code. Any block that + raises such an exception is not further processed. + """ + + +class CodeGenerator(NodeVisitor): + def __init__( + self, + environment: "Environment", + name: t.Optional[str], + filename: t.Optional[str], + stream: t.Optional[t.TextIO] = None, + defer_init: bool = False, + optimized: bool = True, + ) -> None: + if stream is None: + stream = StringIO() + self.environment = environment + self.name = name + self.filename = filename + self.stream = stream + self.created_block_context = False + self.defer_init = defer_init + self.optimizer: t.Optional[Optimizer] = None + + if optimized: + self.optimizer = Optimizer(environment) + + # aliases for imports + self.import_aliases: t.Dict[str, str] = {} + + # a registry for all blocks. Because blocks are moved out + # into the global python scope they are registered here + self.blocks: t.Dict[str, nodes.Block] = {} + + # the number of extends statements so far + self.extends_so_far = 0 + + # some templates have a rootlevel extends. In this case we + # can safely assume that we're a child template and do some + # more optimizations. + self.has_known_extends = False + + # the current line number + self.code_lineno = 1 + + # registry of all filters and tests (global, not block local) + self.tests: t.Dict[str, str] = {} + self.filters: t.Dict[str, str] = {} + + # the debug information + self.debug_info: t.List[t.Tuple[int, int]] = [] + self._write_debug_info: t.Optional[int] = None + + # the number of new lines before the next write() + self._new_lines = 0 + + # the line number of the last written statement + self._last_line = 0 + + # true if nothing was written so far. + self._first_write = True + + # used by the `temporary_identifier` method to get new + # unique, temporary identifier + self._last_identifier = 0 + + # the current indentation + self._indentation = 0 + + # Tracks toplevel assignments + self._assign_stack: t.List[t.Set[str]] = [] + + # Tracks parameter definition blocks + self._param_def_block: t.List[t.Set[str]] = [] + + # Tracks the current context. + self._context_reference_stack = ["context"] + + @property + def optimized(self) -> bool: + return self.optimizer is not None + + # -- Various compilation helpers + + def fail(self, msg: str, lineno: int) -> "te.NoReturn": + """Fail with a :exc:`TemplateAssertionError`.""" + raise TemplateAssertionError(msg, lineno, self.name, self.filename) + + def temporary_identifier(self) -> str: + """Get a new unique identifier.""" + self._last_identifier += 1 + return f"t_{self._last_identifier}" + + def buffer(self, frame: Frame) -> None: + """Enable buffering for the frame from that point onwards.""" + frame.buffer = self.temporary_identifier() + self.writeline(f"{frame.buffer} = []") + + def return_buffer_contents( + self, frame: Frame, force_unescaped: bool = False + ) -> None: + """Return the buffer contents of the frame.""" + if not force_unescaped: + if frame.eval_ctx.volatile: + self.writeline("if context.eval_ctx.autoescape:") + self.indent() + self.writeline(f"return Markup(concat({frame.buffer}))") + self.outdent() + self.writeline("else:") + self.indent() + self.writeline(f"return concat({frame.buffer})") + self.outdent() + return + elif frame.eval_ctx.autoescape: + self.writeline(f"return Markup(concat({frame.buffer}))") + return + self.writeline(f"return concat({frame.buffer})") + + def indent(self) -> None: + """Indent by one.""" + self._indentation += 1 + + def outdent(self, step: int = 1) -> None: + """Outdent by step.""" + self._indentation -= step + + def start_write(self, frame: Frame, node: t.Optional[nodes.Node] = None) -> None: + """Yield or write into the frame buffer.""" + if frame.buffer is None: + self.writeline("yield ", node) + else: + self.writeline(f"{frame.buffer}.append(", node) + + def end_write(self, frame: Frame) -> None: + """End the writing process started by `start_write`.""" + if frame.buffer is not None: + self.write(")") + + def simple_write( + self, s: str, frame: Frame, node: t.Optional[nodes.Node] = None + ) -> None: + """Simple shortcut for start_write + write + end_write.""" + self.start_write(frame, node) + self.write(s) + self.end_write(frame) + + def blockvisit(self, nodes: t.Iterable[nodes.Node], frame: Frame) -> None: + """Visit a list of nodes as block in a frame. If the current frame + is no buffer a dummy ``if 0: yield None`` is written automatically. + """ + try: + self.writeline("pass") + for node in nodes: + self.visit(node, frame) + except CompilerExit: + pass + + def write(self, x: str) -> None: + """Write a string into the output stream.""" + if self._new_lines: + if not self._first_write: + self.stream.write("\n" * self._new_lines) + self.code_lineno += self._new_lines + if self._write_debug_info is not None: + self.debug_info.append((self._write_debug_info, self.code_lineno)) + self._write_debug_info = None + self._first_write = False + self.stream.write(" " * self._indentation) + self._new_lines = 0 + self.stream.write(x) + + def writeline( + self, x: str, node: t.Optional[nodes.Node] = None, extra: int = 0 + ) -> None: + """Combination of newline and write.""" + self.newline(node, extra) + self.write(x) + + def newline(self, node: t.Optional[nodes.Node] = None, extra: int = 0) -> None: + """Add one or more newlines before the next write.""" + self._new_lines = max(self._new_lines, 1 + extra) + if node is not None and node.lineno != self._last_line: + self._write_debug_info = node.lineno + self._last_line = node.lineno + + def signature( + self, + node: t.Union[nodes.Call, nodes.Filter, nodes.Test], + frame: Frame, + extra_kwargs: t.Optional[t.Mapping[str, t.Any]] = None, + ) -> None: + """Writes a function call to the stream for the current node. + A leading comma is added automatically. The extra keyword + arguments may not include python keywords otherwise a syntax + error could occur. The extra keyword arguments should be given + as python dict. + """ + # if any of the given keyword arguments is a python keyword + # we have to make sure that no invalid call is created. + kwarg_workaround = any( + is_python_keyword(t.cast(str, k)) + for k in chain((x.key for x in node.kwargs), extra_kwargs or ()) + ) + + for arg in node.args: + self.write(", ") + self.visit(arg, frame) + + if not kwarg_workaround: + for kwarg in node.kwargs: + self.write(", ") + self.visit(kwarg, frame) + if extra_kwargs is not None: + for key, value in extra_kwargs.items(): + self.write(f", {key}={value}") + if node.dyn_args: + self.write(", *") + self.visit(node.dyn_args, frame) + + if kwarg_workaround: + if node.dyn_kwargs is not None: + self.write(", **dict({") + else: + self.write(", **{") + for kwarg in node.kwargs: + self.write(f"{kwarg.key!r}: ") + self.visit(kwarg.value, frame) + self.write(", ") + if extra_kwargs is not None: + for key, value in extra_kwargs.items(): + self.write(f"{key!r}: {value}, ") + if node.dyn_kwargs is not None: + self.write("}, **") + self.visit(node.dyn_kwargs, frame) + self.write(")") + else: + self.write("}") + + elif node.dyn_kwargs is not None: + self.write(", **") + self.visit(node.dyn_kwargs, frame) + + def pull_dependencies(self, nodes: t.Iterable[nodes.Node]) -> None: + """Find all filter and test names used in the template and + assign them to variables in the compiled namespace. Checking + that the names are registered with the environment is done when + compiling the Filter and Test nodes. If the node is in an If or + CondExpr node, the check is done at runtime instead. + + .. versionchanged:: 3.0 + Filters and tests in If and CondExpr nodes are checked at + runtime instead of compile time. + """ + visitor = DependencyFinderVisitor() + + for node in nodes: + visitor.visit(node) + + for id_map, names, dependency in ( + (self.filters, visitor.filters, "filters"), + ( + self.tests, + visitor.tests, + "tests", + ), + ): + for name in sorted(names): + if name not in id_map: + id_map[name] = self.temporary_identifier() + + # add check during runtime that dependencies used inside of executed + # blocks are defined, as this step may be skipped during compile time + self.writeline("try:") + self.indent() + self.writeline(f"{id_map[name]} = environment.{dependency}[{name!r}]") + self.outdent() + self.writeline("except KeyError:") + self.indent() + self.writeline("@internalcode") + self.writeline(f"def {id_map[name]}(*unused):") + self.indent() + self.writeline( + f'raise TemplateRuntimeError("No {dependency[:-1]}' + f' named {name!r} found.")' + ) + self.outdent() + self.outdent() + + def enter_frame(self, frame: Frame) -> None: + undefs = [] + for target, (action, param) in frame.symbols.loads.items(): + if action == VAR_LOAD_PARAMETER: + pass + elif action == VAR_LOAD_RESOLVE: + self.writeline(f"{target} = {self.get_resolve_func()}({param!r})") + elif action == VAR_LOAD_ALIAS: + self.writeline(f"{target} = {param}") + elif action == VAR_LOAD_UNDEFINED: + undefs.append(target) + else: + raise NotImplementedError("unknown load instruction") + if undefs: + self.writeline(f"{' = '.join(undefs)} = missing") + + def leave_frame(self, frame: Frame, with_python_scope: bool = False) -> None: + if not with_python_scope: + undefs = [] + for target in frame.symbols.loads: + undefs.append(target) + if undefs: + self.writeline(f"{' = '.join(undefs)} = missing") + + def choose_async(self, async_value: str = "async ", sync_value: str = "") -> str: + return async_value if self.environment.is_async else sync_value + + def func(self, name: str) -> str: + return f"{self.choose_async()}def {name}" + + def macro_body( + self, node: t.Union[nodes.Macro, nodes.CallBlock], frame: Frame + ) -> t.Tuple[Frame, MacroRef]: + """Dump the function def of a macro or call block.""" + frame = frame.inner() + frame.symbols.analyze_node(node) + macro_ref = MacroRef(node) + + explicit_caller = None + skip_special_params = set() + args = [] + + for idx, arg in enumerate(node.args): + if arg.name == "caller": + explicit_caller = idx + if arg.name in ("kwargs", "varargs"): + skip_special_params.add(arg.name) + args.append(frame.symbols.ref(arg.name)) + + undeclared = find_undeclared(node.body, ("caller", "kwargs", "varargs")) + + if "caller" in undeclared: + # In older Jinja versions there was a bug that allowed caller + # to retain the special behavior even if it was mentioned in + # the argument list. However thankfully this was only really + # working if it was the last argument. So we are explicitly + # checking this now and error out if it is anywhere else in + # the argument list. + if explicit_caller is not None: + try: + node.defaults[explicit_caller - len(node.args)] + except IndexError: + self.fail( + "When defining macros or call blocks the " + 'special "caller" argument must be omitted ' + "or be given a default.", + node.lineno, + ) + else: + args.append(frame.symbols.declare_parameter("caller")) + macro_ref.accesses_caller = True + if "kwargs" in undeclared and "kwargs" not in skip_special_params: + args.append(frame.symbols.declare_parameter("kwargs")) + macro_ref.accesses_kwargs = True + if "varargs" in undeclared and "varargs" not in skip_special_params: + args.append(frame.symbols.declare_parameter("varargs")) + macro_ref.accesses_varargs = True + + # macros are delayed, they never require output checks + frame.require_output_check = False + frame.symbols.analyze_node(node) + self.writeline(f"{self.func('macro')}({', '.join(args)}):", node) + self.indent() + + self.buffer(frame) + self.enter_frame(frame) + + self.push_parameter_definitions(frame) + for idx, arg in enumerate(node.args): + ref = frame.symbols.ref(arg.name) + self.writeline(f"if {ref} is missing:") + self.indent() + try: + default = node.defaults[idx - len(node.args)] + except IndexError: + self.writeline( + f'{ref} = undefined("parameter {arg.name!r} was not provided",' + f" name={arg.name!r})" + ) + else: + self.writeline(f"{ref} = ") + self.visit(default, frame) + self.mark_parameter_stored(ref) + self.outdent() + self.pop_parameter_definitions() + + self.blockvisit(node.body, frame) + self.return_buffer_contents(frame, force_unescaped=True) + self.leave_frame(frame, with_python_scope=True) + self.outdent() + + return frame, macro_ref + + def macro_def(self, macro_ref: MacroRef, frame: Frame) -> None: + """Dump the macro definition for the def created by macro_body.""" + arg_tuple = ", ".join(repr(x.name) for x in macro_ref.node.args) + name = getattr(macro_ref.node, "name", None) + if len(macro_ref.node.args) == 1: + arg_tuple += "," + self.write( + f"Macro(environment, macro, {name!r}, ({arg_tuple})," + f" {macro_ref.accesses_kwargs!r}, {macro_ref.accesses_varargs!r}," + f" {macro_ref.accesses_caller!r}, context.eval_ctx.autoescape)" + ) + + def position(self, node: nodes.Node) -> str: + """Return a human readable position for the node.""" + rv = f"line {node.lineno}" + if self.name is not None: + rv = f"{rv} in {self.name!r}" + return rv + + def dump_local_context(self, frame: Frame) -> str: + items_kv = ", ".join( + f"{name!r}: {target}" + for name, target in frame.symbols.dump_stores().items() + ) + return f"{{{items_kv}}}" + + def write_commons(self) -> None: + """Writes a common preamble that is used by root and block functions. + Primarily this sets up common local helpers and enforces a generator + through a dead branch. + """ + self.writeline("resolve = context.resolve_or_missing") + self.writeline("undefined = environment.undefined") + self.writeline("concat = environment.concat") + # always use the standard Undefined class for the implicit else of + # conditional expressions + self.writeline("cond_expr_undefined = Undefined") + self.writeline("if 0: yield None") + + def push_parameter_definitions(self, frame: Frame) -> None: + """Pushes all parameter targets from the given frame into a local + stack that permits tracking of yet to be assigned parameters. In + particular this enables the optimization from `visit_Name` to skip + undefined expressions for parameters in macros as macros can reference + otherwise unbound parameters. + """ + self._param_def_block.append(frame.symbols.dump_param_targets()) + + def pop_parameter_definitions(self) -> None: + """Pops the current parameter definitions set.""" + self._param_def_block.pop() + + def mark_parameter_stored(self, target: str) -> None: + """Marks a parameter in the current parameter definitions as stored. + This will skip the enforced undefined checks. + """ + if self._param_def_block: + self._param_def_block[-1].discard(target) + + def push_context_reference(self, target: str) -> None: + self._context_reference_stack.append(target) + + def pop_context_reference(self) -> None: + self._context_reference_stack.pop() + + def get_context_ref(self) -> str: + return self._context_reference_stack[-1] + + def get_resolve_func(self) -> str: + target = self._context_reference_stack[-1] + if target == "context": + return "resolve" + return f"{target}.resolve" + + def derive_context(self, frame: Frame) -> str: + return f"{self.get_context_ref()}.derived({self.dump_local_context(frame)})" + + def parameter_is_undeclared(self, target: str) -> bool: + """Checks if a given target is an undeclared parameter.""" + if not self._param_def_block: + return False + return target in self._param_def_block[-1] + + def push_assign_tracking(self) -> None: + """Pushes a new layer for assignment tracking.""" + self._assign_stack.append(set()) + + def pop_assign_tracking(self, frame: Frame) -> None: + """Pops the topmost level for assignment tracking and updates the + context variables if necessary. + """ + vars = self._assign_stack.pop() + if ( + not frame.block_frame + and not frame.loop_frame + and not frame.toplevel + or not vars + ): + return + public_names = [x for x in vars if x[:1] != "_"] + if len(vars) == 1: + name = next(iter(vars)) + ref = frame.symbols.ref(name) + if frame.loop_frame: + self.writeline(f"_loop_vars[{name!r}] = {ref}") + return + if frame.block_frame: + self.writeline(f"_block_vars[{name!r}] = {ref}") + return + self.writeline(f"context.vars[{name!r}] = {ref}") + else: + if frame.loop_frame: + self.writeline("_loop_vars.update({") + elif frame.block_frame: + self.writeline("_block_vars.update({") + else: + self.writeline("context.vars.update({") + for idx, name in enumerate(sorted(vars)): + if idx: + self.write(", ") + ref = frame.symbols.ref(name) + self.write(f"{name!r}: {ref}") + self.write("})") + if not frame.block_frame and not frame.loop_frame and public_names: + if len(public_names) == 1: + self.writeline(f"context.exported_vars.add({public_names[0]!r})") + else: + names_str = ", ".join(map(repr, sorted(public_names))) + self.writeline(f"context.exported_vars.update(({names_str}))") + + # -- Statement Visitors + + def visit_Template( + self, node: nodes.Template, frame: t.Optional[Frame] = None + ) -> None: + assert frame is None, "no root frame allowed" + eval_ctx = EvalContext(self.environment, self.name) + + from .runtime import async_exported + from .runtime import exported + + if self.environment.is_async: + exported_names = sorted(exported + async_exported) + else: + exported_names = sorted(exported) + + self.writeline("from jinja2.runtime import " + ", ".join(exported_names)) + + # if we want a deferred initialization we cannot move the + # environment into a local name + envenv = "" if self.defer_init else ", environment=environment" + + # do we have an extends tag at all? If not, we can save some + # overhead by just not processing any inheritance code. + have_extends = node.find(nodes.Extends) is not None + + # find all blocks + for block in node.find_all(nodes.Block): + if block.name in self.blocks: + self.fail(f"block {block.name!r} defined twice", block.lineno) + self.blocks[block.name] = block + + # find all imports and import them + for import_ in node.find_all(nodes.ImportedName): + if import_.importname not in self.import_aliases: + imp = import_.importname + self.import_aliases[imp] = alias = self.temporary_identifier() + if "." in imp: + module, obj = imp.rsplit(".", 1) + self.writeline(f"from {module} import {obj} as {alias}") + else: + self.writeline(f"import {imp} as {alias}") + + # add the load name + self.writeline(f"name = {self.name!r}") + + # generate the root render function. + self.writeline( + f"{self.func('root')}(context, missing=missing{envenv}):", extra=1 + ) + self.indent() + self.write_commons() + + # process the root + frame = Frame(eval_ctx) + if "self" in find_undeclared(node.body, ("self",)): + ref = frame.symbols.declare_parameter("self") + self.writeline(f"{ref} = TemplateReference(context)") + frame.symbols.analyze_node(node) + frame.toplevel = frame.rootlevel = True + frame.require_output_check = have_extends and not self.has_known_extends + if have_extends: + self.writeline("parent_template = None") + self.enter_frame(frame) + self.pull_dependencies(node.body) + self.blockvisit(node.body, frame) + self.leave_frame(frame, with_python_scope=True) + self.outdent() + + # make sure that the parent root is called. + if have_extends: + if not self.has_known_extends: + self.indent() + self.writeline("if parent_template is not None:") + self.indent() + if not self.environment.is_async: + self.writeline("yield from parent_template.root_render_func(context)") + else: + self.writeline("agen = parent_template.root_render_func(context)") + self.writeline("try:") + self.indent() + self.writeline("async for event in agen:") + self.indent() + self.writeline("yield event") + self.outdent() + self.outdent() + self.writeline("finally: await agen.aclose()") + self.outdent(1 + (not self.has_known_extends)) + + # at this point we now have the blocks collected and can visit them too. + for name, block in self.blocks.items(): + self.writeline( + f"{self.func('block_' + name)}(context, missing=missing{envenv}):", + block, + 1, + ) + self.indent() + self.write_commons() + # It's important that we do not make this frame a child of the + # toplevel template. This would cause a variety of + # interesting issues with identifier tracking. + block_frame = Frame(eval_ctx) + block_frame.block_frame = True + undeclared = find_undeclared(block.body, ("self", "super")) + if "self" in undeclared: + ref = block_frame.symbols.declare_parameter("self") + self.writeline(f"{ref} = TemplateReference(context)") + if "super" in undeclared: + ref = block_frame.symbols.declare_parameter("super") + self.writeline(f"{ref} = context.super({name!r}, block_{name})") + block_frame.symbols.analyze_node(block) + block_frame.block = name + self.writeline("_block_vars = {}") + self.enter_frame(block_frame) + self.pull_dependencies(block.body) + self.blockvisit(block.body, block_frame) + self.leave_frame(block_frame, with_python_scope=True) + self.outdent() + + blocks_kv_str = ", ".join(f"{x!r}: block_{x}" for x in self.blocks) + self.writeline(f"blocks = {{{blocks_kv_str}}}", extra=1) + debug_kv_str = "&".join(f"{k}={v}" for k, v in self.debug_info) + self.writeline(f"debug_info = {debug_kv_str!r}") + + def visit_Block(self, node: nodes.Block, frame: Frame) -> None: + """Call a block and register it for the template.""" + level = 0 + if frame.toplevel: + # if we know that we are a child template, there is no need to + # check if we are one + if self.has_known_extends: + return + if self.extends_so_far > 0: + self.writeline("if parent_template is None:") + self.indent() + level += 1 + + if node.scoped: + context = self.derive_context(frame) + else: + context = self.get_context_ref() + + if node.required: + self.writeline(f"if len(context.blocks[{node.name!r}]) <= 1:", node) + self.indent() + self.writeline( + f'raise TemplateRuntimeError("Required block {node.name!r} not found")', + node, + ) + self.outdent() + + if not self.environment.is_async and frame.buffer is None: + self.writeline( + f"yield from context.blocks[{node.name!r}][0]({context})", node + ) + else: + self.writeline(f"gen = context.blocks[{node.name!r}][0]({context})") + self.writeline("try:") + self.indent() + self.writeline( + f"{self.choose_async()}for event in gen:", + node, + ) + self.indent() + self.simple_write("event", frame) + self.outdent() + self.outdent() + self.writeline( + f"finally: {self.choose_async('await gen.aclose()', 'gen.close()')}" + ) + + self.outdent(level) + + def visit_Extends(self, node: nodes.Extends, frame: Frame) -> None: + """Calls the extender.""" + if not frame.toplevel: + self.fail("cannot use extend from a non top-level scope", node.lineno) + + # if the number of extends statements in general is zero so + # far, we don't have to add a check if something extended + # the template before this one. + if self.extends_so_far > 0: + # if we have a known extends we just add a template runtime + # error into the generated code. We could catch that at compile + # time too, but i welcome it not to confuse users by throwing the + # same error at different times just "because we can". + if not self.has_known_extends: + self.writeline("if parent_template is not None:") + self.indent() + self.writeline('raise TemplateRuntimeError("extended multiple times")') + + # if we have a known extends already we don't need that code here + # as we know that the template execution will end here. + if self.has_known_extends: + raise CompilerExit() + else: + self.outdent() + + self.writeline("parent_template = environment.get_template(", node) + self.visit(node.template, frame) + self.write(f", {self.name!r})") + self.writeline("for name, parent_block in parent_template.blocks.items():") + self.indent() + self.writeline("context.blocks.setdefault(name, []).append(parent_block)") + self.outdent() + + # if this extends statement was in the root level we can take + # advantage of that information and simplify the generated code + # in the top level from this point onwards + if frame.rootlevel: + self.has_known_extends = True + + # and now we have one more + self.extends_so_far += 1 + + def visit_Include(self, node: nodes.Include, frame: Frame) -> None: + """Handles includes.""" + if node.ignore_missing: + self.writeline("try:") + self.indent() + + func_name = "get_or_select_template" + if isinstance(node.template, nodes.Const): + if isinstance(node.template.value, str): + func_name = "get_template" + elif isinstance(node.template.value, (tuple, list)): + func_name = "select_template" + elif isinstance(node.template, (nodes.Tuple, nodes.List)): + func_name = "select_template" + + self.writeline(f"template = environment.{func_name}(", node) + self.visit(node.template, frame) + self.write(f", {self.name!r})") + if node.ignore_missing: + self.outdent() + self.writeline("except TemplateNotFound:") + self.indent() + self.writeline("pass") + self.outdent() + self.writeline("else:") + self.indent() + + def loop_body() -> None: + self.indent() + self.simple_write("event", frame) + self.outdent() + + if node.with_context: + self.writeline( + f"gen = template.root_render_func(" + "template.new_context(context.get_all(), True," + f" {self.dump_local_context(frame)}))" + ) + self.writeline("try:") + self.indent() + self.writeline(f"{self.choose_async()}for event in gen:") + loop_body() + self.outdent() + self.writeline( + f"finally: {self.choose_async('await gen.aclose()', 'gen.close()')}" + ) + elif self.environment.is_async: + self.writeline( + "for event in (await template._get_default_module_async())" + "._body_stream:" + ) + loop_body() + else: + self.writeline("yield from template._get_default_module()._body_stream") + + if node.ignore_missing: + self.outdent() + + def _import_common( + self, node: t.Union[nodes.Import, nodes.FromImport], frame: Frame + ) -> None: + self.write(f"{self.choose_async('await ')}environment.get_template(") + self.visit(node.template, frame) + self.write(f", {self.name!r}).") + + if node.with_context: + f_name = f"make_module{self.choose_async('_async')}" + self.write( + f"{f_name}(context.get_all(), True, {self.dump_local_context(frame)})" + ) + else: + self.write(f"_get_default_module{self.choose_async('_async')}(context)") + + def visit_Import(self, node: nodes.Import, frame: Frame) -> None: + """Visit regular imports.""" + self.writeline(f"{frame.symbols.ref(node.target)} = ", node) + if frame.toplevel: + self.write(f"context.vars[{node.target!r}] = ") + + self._import_common(node, frame) + + if frame.toplevel and not node.target.startswith("_"): + self.writeline(f"context.exported_vars.discard({node.target!r})") + + def visit_FromImport(self, node: nodes.FromImport, frame: Frame) -> None: + """Visit named imports.""" + self.newline(node) + self.write("included_template = ") + self._import_common(node, frame) + var_names = [] + discarded_names = [] + for name in node.names: + if isinstance(name, tuple): + name, alias = name + else: + alias = name + self.writeline( + f"{frame.symbols.ref(alias)} =" + f" getattr(included_template, {name!r}, missing)" + ) + self.writeline(f"if {frame.symbols.ref(alias)} is missing:") + self.indent() + # The position will contain the template name, and will be formatted + # into a string that will be compiled into an f-string. Curly braces + # in the name must be replaced with escapes so that they will not be + # executed as part of the f-string. + position = self.position(node).replace("{", "{{").replace("}", "}}") + message = ( + "the template {included_template.__name__!r}" + f" (imported on {position})" + f" does not export the requested name {name!r}" + ) + self.writeline( + f"{frame.symbols.ref(alias)} = undefined(f{message!r}, name={name!r})" + ) + self.outdent() + if frame.toplevel: + var_names.append(alias) + if not alias.startswith("_"): + discarded_names.append(alias) + + if var_names: + if len(var_names) == 1: + name = var_names[0] + self.writeline(f"context.vars[{name!r}] = {frame.symbols.ref(name)}") + else: + names_kv = ", ".join( + f"{name!r}: {frame.symbols.ref(name)}" for name in var_names + ) + self.writeline(f"context.vars.update({{{names_kv}}})") + if discarded_names: + if len(discarded_names) == 1: + self.writeline(f"context.exported_vars.discard({discarded_names[0]!r})") + else: + names_str = ", ".join(map(repr, discarded_names)) + self.writeline( + f"context.exported_vars.difference_update(({names_str}))" + ) + + def visit_For(self, node: nodes.For, frame: Frame) -> None: + loop_frame = frame.inner() + loop_frame.loop_frame = True + test_frame = frame.inner() + else_frame = frame.inner() + + # try to figure out if we have an extended loop. An extended loop + # is necessary if the loop is in recursive mode if the special loop + # variable is accessed in the body if the body is a scoped block. + extended_loop = ( + node.recursive + or "loop" + in find_undeclared(node.iter_child_nodes(only=("body",)), ("loop",)) + or any(block.scoped for block in node.find_all(nodes.Block)) + ) + + loop_ref = None + if extended_loop: + loop_ref = loop_frame.symbols.declare_parameter("loop") + + loop_frame.symbols.analyze_node(node, for_branch="body") + if node.else_: + else_frame.symbols.analyze_node(node, for_branch="else") + + if node.test: + loop_filter_func = self.temporary_identifier() + test_frame.symbols.analyze_node(node, for_branch="test") + self.writeline(f"{self.func(loop_filter_func)}(fiter):", node.test) + self.indent() + self.enter_frame(test_frame) + self.writeline(self.choose_async("async for ", "for ")) + self.visit(node.target, loop_frame) + self.write(" in ") + self.write(self.choose_async("auto_aiter(fiter)", "fiter")) + self.write(":") + self.indent() + self.writeline("if ", node.test) + self.visit(node.test, test_frame) + self.write(":") + self.indent() + self.writeline("yield ") + self.visit(node.target, loop_frame) + self.outdent(3) + self.leave_frame(test_frame, with_python_scope=True) + + # if we don't have an recursive loop we have to find the shadowed + # variables at that point. Because loops can be nested but the loop + # variable is a special one we have to enforce aliasing for it. + if node.recursive: + self.writeline( + f"{self.func('loop')}(reciter, loop_render_func, depth=0):", node + ) + self.indent() + self.buffer(loop_frame) + + # Use the same buffer for the else frame + else_frame.buffer = loop_frame.buffer + + # make sure the loop variable is a special one and raise a template + # assertion error if a loop tries to write to loop + if extended_loop: + self.writeline(f"{loop_ref} = missing") + + for name in node.find_all(nodes.Name): + if name.ctx == "store" and name.name == "loop": + self.fail( + "Can't assign to special loop variable in for-loop target", + name.lineno, + ) + + if node.else_: + iteration_indicator = self.temporary_identifier() + self.writeline(f"{iteration_indicator} = 1") + + self.writeline(self.choose_async("async for ", "for "), node) + self.visit(node.target, loop_frame) + if extended_loop: + self.write(f", {loop_ref} in {self.choose_async('Async')}LoopContext(") + else: + self.write(" in ") + + if node.test: + self.write(f"{loop_filter_func}(") + if node.recursive: + self.write("reciter") + else: + if self.environment.is_async and not extended_loop: + self.write("auto_aiter(") + self.visit(node.iter, frame) + if self.environment.is_async and not extended_loop: + self.write(")") + if node.test: + self.write(")") + + if node.recursive: + self.write(", undefined, loop_render_func, depth):") + else: + self.write(", undefined):" if extended_loop else ":") + + self.indent() + self.enter_frame(loop_frame) + + self.writeline("_loop_vars = {}") + self.blockvisit(node.body, loop_frame) + if node.else_: + self.writeline(f"{iteration_indicator} = 0") + self.outdent() + self.leave_frame( + loop_frame, with_python_scope=node.recursive and not node.else_ + ) + + if node.else_: + self.writeline(f"if {iteration_indicator}:") + self.indent() + self.enter_frame(else_frame) + self.blockvisit(node.else_, else_frame) + self.leave_frame(else_frame) + self.outdent() + + # if the node was recursive we have to return the buffer contents + # and start the iteration code + if node.recursive: + self.return_buffer_contents(loop_frame) + self.outdent() + self.start_write(frame, node) + self.write(f"{self.choose_async('await ')}loop(") + if self.environment.is_async: + self.write("auto_aiter(") + self.visit(node.iter, frame) + if self.environment.is_async: + self.write(")") + self.write(", loop)") + self.end_write(frame) + + # at the end of the iteration, clear any assignments made in the + # loop from the top level + if self._assign_stack: + self._assign_stack[-1].difference_update(loop_frame.symbols.stores) + + def visit_If(self, node: nodes.If, frame: Frame) -> None: + if_frame = frame.soft() + self.writeline("if ", node) + self.visit(node.test, if_frame) + self.write(":") + self.indent() + self.blockvisit(node.body, if_frame) + self.outdent() + for elif_ in node.elif_: + self.writeline("elif ", elif_) + self.visit(elif_.test, if_frame) + self.write(":") + self.indent() + self.blockvisit(elif_.body, if_frame) + self.outdent() + if node.else_: + self.writeline("else:") + self.indent() + self.blockvisit(node.else_, if_frame) + self.outdent() + + def visit_Macro(self, node: nodes.Macro, frame: Frame) -> None: + macro_frame, macro_ref = self.macro_body(node, frame) + self.newline() + if frame.toplevel: + if not node.name.startswith("_"): + self.write(f"context.exported_vars.add({node.name!r})") + self.writeline(f"context.vars[{node.name!r}] = ") + self.write(f"{frame.symbols.ref(node.name)} = ") + self.macro_def(macro_ref, macro_frame) + + def visit_CallBlock(self, node: nodes.CallBlock, frame: Frame) -> None: + call_frame, macro_ref = self.macro_body(node, frame) + self.writeline("caller = ") + self.macro_def(macro_ref, call_frame) + self.start_write(frame, node) + self.visit_Call(node.call, frame, forward_caller=True) + self.end_write(frame) + + def visit_FilterBlock(self, node: nodes.FilterBlock, frame: Frame) -> None: + filter_frame = frame.inner() + filter_frame.symbols.analyze_node(node) + self.enter_frame(filter_frame) + self.buffer(filter_frame) + self.blockvisit(node.body, filter_frame) + self.start_write(frame, node) + self.visit_Filter(node.filter, filter_frame) + self.end_write(frame) + self.leave_frame(filter_frame) + + def visit_With(self, node: nodes.With, frame: Frame) -> None: + with_frame = frame.inner() + with_frame.symbols.analyze_node(node) + self.enter_frame(with_frame) + for target, expr in zip(node.targets, node.values): + self.newline() + self.visit(target, with_frame) + self.write(" = ") + self.visit(expr, frame) + self.blockvisit(node.body, with_frame) + self.leave_frame(with_frame) + + def visit_ExprStmt(self, node: nodes.ExprStmt, frame: Frame) -> None: + self.newline(node) + self.visit(node.node, frame) + + class _FinalizeInfo(t.NamedTuple): + const: t.Optional[t.Callable[..., str]] + src: t.Optional[str] + + @staticmethod + def _default_finalize(value: t.Any) -> t.Any: + """The default finalize function if the environment isn't + configured with one. Or, if the environment has one, this is + called on that function's output for constants. + """ + return str(value) + + _finalize: t.Optional[_FinalizeInfo] = None + + def _make_finalize(self) -> _FinalizeInfo: + """Build the finalize function to be used on constants and at + runtime. Cached so it's only created once for all output nodes. + + Returns a ``namedtuple`` with the following attributes: + + ``const`` + A function to finalize constant data at compile time. + + ``src`` + Source code to output around nodes to be evaluated at + runtime. + """ + if self._finalize is not None: + return self._finalize + + finalize: t.Optional[t.Callable[..., t.Any]] + finalize = default = self._default_finalize + src = None + + if self.environment.finalize: + src = "environment.finalize(" + env_finalize = self.environment.finalize + pass_arg = { + _PassArg.context: "context", + _PassArg.eval_context: "context.eval_ctx", + _PassArg.environment: "environment", + }.get( + _PassArg.from_obj(env_finalize) # type: ignore + ) + finalize = None + + if pass_arg is None: + + def finalize(value: t.Any) -> t.Any: # noqa: F811 + return default(env_finalize(value)) + + else: + src = f"{src}{pass_arg}, " + + if pass_arg == "environment": + + def finalize(value: t.Any) -> t.Any: # noqa: F811 + return default(env_finalize(self.environment, value)) + + self._finalize = self._FinalizeInfo(finalize, src) + return self._finalize + + def _output_const_repr(self, group: t.Iterable[t.Any]) -> str: + """Given a group of constant values converted from ``Output`` + child nodes, produce a string to write to the template module + source. + """ + return repr(concat(group)) + + def _output_child_to_const( + self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo + ) -> str: + """Try to optimize a child of an ``Output`` node by trying to + convert it to constant, finalized data at compile time. + + If :exc:`Impossible` is raised, the node is not constant and + will be evaluated at runtime. Any other exception will also be + evaluated at runtime for easier debugging. + """ + const = node.as_const(frame.eval_ctx) + + if frame.eval_ctx.autoescape: + const = escape(const) + + # Template data doesn't go through finalize. + if isinstance(node, nodes.TemplateData): + return str(const) + + return finalize.const(const) # type: ignore + + def _output_child_pre( + self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo + ) -> None: + """Output extra source code before visiting a child of an + ``Output`` node. + """ + if frame.eval_ctx.volatile: + self.write("(escape if context.eval_ctx.autoescape else str)(") + elif frame.eval_ctx.autoescape: + self.write("escape(") + else: + self.write("str(") + + if finalize.src is not None: + self.write(finalize.src) + + def _output_child_post( + self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo + ) -> None: + """Output extra source code after visiting a child of an + ``Output`` node. + """ + self.write(")") + + if finalize.src is not None: + self.write(")") + + def visit_Output(self, node: nodes.Output, frame: Frame) -> None: + # If an extends is active, don't render outside a block. + if frame.require_output_check: + # A top-level extends is known to exist at compile time. + if self.has_known_extends: + return + + self.writeline("if parent_template is None:") + self.indent() + + finalize = self._make_finalize() + body: t.List[t.Union[t.List[t.Any], nodes.Expr]] = [] + + # Evaluate constants at compile time if possible. Each item in + # body will be either a list of static data or a node to be + # evaluated at runtime. + for child in node.nodes: + try: + if not ( + # If the finalize function requires runtime context, + # constants can't be evaluated at compile time. + finalize.const + # Unless it's basic template data that won't be + # finalized anyway. + or isinstance(child, nodes.TemplateData) + ): + raise nodes.Impossible() + + const = self._output_child_to_const(child, frame, finalize) + except (nodes.Impossible, Exception): + # The node was not constant and needs to be evaluated at + # runtime. Or another error was raised, which is easier + # to debug at runtime. + body.append(child) + continue + + if body and isinstance(body[-1], list): + body[-1].append(const) + else: + body.append([const]) + + if frame.buffer is not None: + if len(body) == 1: + self.writeline(f"{frame.buffer}.append(") + else: + self.writeline(f"{frame.buffer}.extend((") + + self.indent() + + for item in body: + if isinstance(item, list): + # A group of constant data to join and output. + val = self._output_const_repr(item) + + if frame.buffer is None: + self.writeline("yield " + val) + else: + self.writeline(val + ",") + else: + if frame.buffer is None: + self.writeline("yield ", item) + else: + self.newline(item) + + # A node to be evaluated at runtime. + self._output_child_pre(item, frame, finalize) + self.visit(item, frame) + self._output_child_post(item, frame, finalize) + + if frame.buffer is not None: + self.write(",") + + if frame.buffer is not None: + self.outdent() + self.writeline(")" if len(body) == 1 else "))") + + if frame.require_output_check: + self.outdent() + + def visit_Assign(self, node: nodes.Assign, frame: Frame) -> None: + self.push_assign_tracking() + + # ``a.b`` is allowed for assignment, and is parsed as an NSRef. However, + # it is only valid if it references a Namespace object. Emit a check for + # that for each ref here, before assignment code is emitted. This can't + # be done in visit_NSRef as the ref could be in the middle of a tuple. + seen_refs: t.Set[str] = set() + + for nsref in node.find_all(nodes.NSRef): + if nsref.name in seen_refs: + # Only emit the check for each reference once, in case the same + # ref is used multiple times in a tuple, `ns.a, ns.b = c, d`. + continue + + seen_refs.add(nsref.name) + ref = frame.symbols.ref(nsref.name) + self.writeline(f"if not isinstance({ref}, Namespace):") + self.indent() + self.writeline( + "raise TemplateRuntimeError" + '("cannot assign attribute on non-namespace object")' + ) + self.outdent() + + self.newline(node) + self.visit(node.target, frame) + self.write(" = ") + self.visit(node.node, frame) + self.pop_assign_tracking(frame) + + def visit_AssignBlock(self, node: nodes.AssignBlock, frame: Frame) -> None: + self.push_assign_tracking() + block_frame = frame.inner() + # This is a special case. Since a set block always captures we + # will disable output checks. This way one can use set blocks + # toplevel even in extended templates. + block_frame.require_output_check = False + block_frame.symbols.analyze_node(node) + self.enter_frame(block_frame) + self.buffer(block_frame) + self.blockvisit(node.body, block_frame) + self.newline(node) + self.visit(node.target, frame) + self.write(" = (Markup if context.eval_ctx.autoescape else identity)(") + if node.filter is not None: + self.visit_Filter(node.filter, block_frame) + else: + self.write(f"concat({block_frame.buffer})") + self.write(")") + self.pop_assign_tracking(frame) + self.leave_frame(block_frame) + + # -- Expression Visitors + + def visit_Name(self, node: nodes.Name, frame: Frame) -> None: + if node.ctx == "store" and ( + frame.toplevel or frame.loop_frame or frame.block_frame + ): + if self._assign_stack: + self._assign_stack[-1].add(node.name) + ref = frame.symbols.ref(node.name) + + # If we are looking up a variable we might have to deal with the + # case where it's undefined. We can skip that case if the load + # instruction indicates a parameter which are always defined. + if node.ctx == "load": + load = frame.symbols.find_load(ref) + if not ( + load is not None + and load[0] == VAR_LOAD_PARAMETER + and not self.parameter_is_undeclared(ref) + ): + self.write( + f"(undefined(name={node.name!r}) if {ref} is missing else {ref})" + ) + return + + self.write(ref) + + def visit_NSRef(self, node: nodes.NSRef, frame: Frame) -> None: + # NSRef is a dotted assignment target a.b=c, but uses a[b]=c internally. + # visit_Assign emits code to validate that each ref is to a Namespace + # object only. That can't be emitted here as the ref could be in the + # middle of a tuple assignment. + ref = frame.symbols.ref(node.name) + self.writeline(f"{ref}[{node.attr!r}]") + + def visit_Const(self, node: nodes.Const, frame: Frame) -> None: + val = node.as_const(frame.eval_ctx) + if isinstance(val, float): + self.write(str(val)) + else: + self.write(repr(val)) + + def visit_TemplateData(self, node: nodes.TemplateData, frame: Frame) -> None: + try: + self.write(repr(node.as_const(frame.eval_ctx))) + except nodes.Impossible: + self.write( + f"(Markup if context.eval_ctx.autoescape else identity)({node.data!r})" + ) + + def visit_Tuple(self, node: nodes.Tuple, frame: Frame) -> None: + self.write("(") + idx = -1 + for idx, item in enumerate(node.items): + if idx: + self.write(", ") + self.visit(item, frame) + self.write(",)" if idx == 0 else ")") + + def visit_List(self, node: nodes.List, frame: Frame) -> None: + self.write("[") + for idx, item in enumerate(node.items): + if idx: + self.write(", ") + self.visit(item, frame) + self.write("]") + + def visit_Dict(self, node: nodes.Dict, frame: Frame) -> None: + self.write("{") + for idx, item in enumerate(node.items): + if idx: + self.write(", ") + self.visit(item.key, frame) + self.write(": ") + self.visit(item.value, frame) + self.write("}") + + visit_Add = _make_binop("+") + visit_Sub = _make_binop("-") + visit_Mul = _make_binop("*") + visit_Div = _make_binop("/") + visit_FloorDiv = _make_binop("//") + visit_Pow = _make_binop("**") + visit_Mod = _make_binop("%") + visit_And = _make_binop("and") + visit_Or = _make_binop("or") + visit_Pos = _make_unop("+") + visit_Neg = _make_unop("-") + visit_Not = _make_unop("not ") + + @optimizeconst + def visit_Concat(self, node: nodes.Concat, frame: Frame) -> None: + if frame.eval_ctx.volatile: + func_name = "(markup_join if context.eval_ctx.volatile else str_join)" + elif frame.eval_ctx.autoescape: + func_name = "markup_join" + else: + func_name = "str_join" + self.write(f"{func_name}((") + for arg in node.nodes: + self.visit(arg, frame) + self.write(", ") + self.write("))") + + @optimizeconst + def visit_Compare(self, node: nodes.Compare, frame: Frame) -> None: + self.write("(") + self.visit(node.expr, frame) + for op in node.ops: + self.visit(op, frame) + self.write(")") + + def visit_Operand(self, node: nodes.Operand, frame: Frame) -> None: + self.write(f" {operators[node.op]} ") + self.visit(node.expr, frame) + + @optimizeconst + def visit_Getattr(self, node: nodes.Getattr, frame: Frame) -> None: + if self.environment.is_async: + self.write("(await auto_await(") + + self.write("environment.getattr(") + self.visit(node.node, frame) + self.write(f", {node.attr!r})") + + if self.environment.is_async: + self.write("))") + + @optimizeconst + def visit_Getitem(self, node: nodes.Getitem, frame: Frame) -> None: + # slices bypass the environment getitem method. + if isinstance(node.arg, nodes.Slice): + self.visit(node.node, frame) + self.write("[") + self.visit(node.arg, frame) + self.write("]") + else: + if self.environment.is_async: + self.write("(await auto_await(") + + self.write("environment.getitem(") + self.visit(node.node, frame) + self.write(", ") + self.visit(node.arg, frame) + self.write(")") + + if self.environment.is_async: + self.write("))") + + def visit_Slice(self, node: nodes.Slice, frame: Frame) -> None: + if node.start is not None: + self.visit(node.start, frame) + self.write(":") + if node.stop is not None: + self.visit(node.stop, frame) + if node.step is not None: + self.write(":") + self.visit(node.step, frame) + + @contextmanager + def _filter_test_common( + self, node: t.Union[nodes.Filter, nodes.Test], frame: Frame, is_filter: bool + ) -> t.Iterator[None]: + if self.environment.is_async: + self.write("(await auto_await(") + + if is_filter: + self.write(f"{self.filters[node.name]}(") + func = self.environment.filters.get(node.name) + else: + self.write(f"{self.tests[node.name]}(") + func = self.environment.tests.get(node.name) + + # When inside an If or CondExpr frame, allow the filter to be + # undefined at compile time and only raise an error if it's + # actually called at runtime. See pull_dependencies. + if func is None and not frame.soft_frame: + type_name = "filter" if is_filter else "test" + self.fail(f"No {type_name} named {node.name!r}.", node.lineno) + + pass_arg = { + _PassArg.context: "context", + _PassArg.eval_context: "context.eval_ctx", + _PassArg.environment: "environment", + }.get( + _PassArg.from_obj(func) # type: ignore + ) + + if pass_arg is not None: + self.write(f"{pass_arg}, ") + + # Back to the visitor function to handle visiting the target of + # the filter or test. + yield + + self.signature(node, frame) + self.write(")") + + if self.environment.is_async: + self.write("))") + + @optimizeconst + def visit_Filter(self, node: nodes.Filter, frame: Frame) -> None: + with self._filter_test_common(node, frame, True): + # if the filter node is None we are inside a filter block + # and want to write to the current buffer + if node.node is not None: + self.visit(node.node, frame) + elif frame.eval_ctx.volatile: + self.write( + f"(Markup(concat({frame.buffer}))" + f" if context.eval_ctx.autoescape else concat({frame.buffer}))" + ) + elif frame.eval_ctx.autoescape: + self.write(f"Markup(concat({frame.buffer}))") + else: + self.write(f"concat({frame.buffer})") + + @optimizeconst + def visit_Test(self, node: nodes.Test, frame: Frame) -> None: + with self._filter_test_common(node, frame, False): + self.visit(node.node, frame) + + @optimizeconst + def visit_CondExpr(self, node: nodes.CondExpr, frame: Frame) -> None: + frame = frame.soft() + + def write_expr2() -> None: + if node.expr2 is not None: + self.visit(node.expr2, frame) + return + + self.write( + f'cond_expr_undefined("the inline if-expression on' + f" {self.position(node)} evaluated to false and no else" + f' section was defined.")' + ) + + self.write("(") + self.visit(node.expr1, frame) + self.write(" if ") + self.visit(node.test, frame) + self.write(" else ") + write_expr2() + self.write(")") + + @optimizeconst + def visit_Call( + self, node: nodes.Call, frame: Frame, forward_caller: bool = False + ) -> None: + if self.environment.is_async: + self.write("(await auto_await(") + if self.environment.sandboxed: + self.write("environment.call(context, ") + else: + self.write("context.call(") + self.visit(node.node, frame) + extra_kwargs = {"caller": "caller"} if forward_caller else None + loop_kwargs = {"_loop_vars": "_loop_vars"} if frame.loop_frame else {} + block_kwargs = {"_block_vars": "_block_vars"} if frame.block_frame else {} + if extra_kwargs: + extra_kwargs.update(loop_kwargs, **block_kwargs) + elif loop_kwargs or block_kwargs: + extra_kwargs = dict(loop_kwargs, **block_kwargs) + self.signature(node, frame, extra_kwargs) + self.write(")") + if self.environment.is_async: + self.write("))") + + def visit_Keyword(self, node: nodes.Keyword, frame: Frame) -> None: + self.write(node.key + "=") + self.visit(node.value, frame) + + # -- Unused nodes for extensions + + def visit_MarkSafe(self, node: nodes.MarkSafe, frame: Frame) -> None: + self.write("Markup(") + self.visit(node.expr, frame) + self.write(")") + + def visit_MarkSafeIfAutoescape( + self, node: nodes.MarkSafeIfAutoescape, frame: Frame + ) -> None: + self.write("(Markup if context.eval_ctx.autoescape else identity)(") + self.visit(node.expr, frame) + self.write(")") + + def visit_EnvironmentAttribute( + self, node: nodes.EnvironmentAttribute, frame: Frame + ) -> None: + self.write("environment." + node.name) + + def visit_ExtensionAttribute( + self, node: nodes.ExtensionAttribute, frame: Frame + ) -> None: + self.write(f"environment.extensions[{node.identifier!r}].{node.name}") + + def visit_ImportedName(self, node: nodes.ImportedName, frame: Frame) -> None: + self.write(self.import_aliases[node.importname]) + + def visit_InternalName(self, node: nodes.InternalName, frame: Frame) -> None: + self.write(node.name) + + def visit_ContextReference( + self, node: nodes.ContextReference, frame: Frame + ) -> None: + self.write("context") + + def visit_DerivedContextReference( + self, node: nodes.DerivedContextReference, frame: Frame + ) -> None: + self.write(self.derive_context(frame)) + + def visit_Continue(self, node: nodes.Continue, frame: Frame) -> None: + self.writeline("continue", node) + + def visit_Break(self, node: nodes.Break, frame: Frame) -> None: + self.writeline("break", node) + + def visit_Scope(self, node: nodes.Scope, frame: Frame) -> None: + scope_frame = frame.inner() + scope_frame.symbols.analyze_node(node) + self.enter_frame(scope_frame) + self.blockvisit(node.body, scope_frame) + self.leave_frame(scope_frame) + + def visit_OverlayScope(self, node: nodes.OverlayScope, frame: Frame) -> None: + ctx = self.temporary_identifier() + self.writeline(f"{ctx} = {self.derive_context(frame)}") + self.writeline(f"{ctx}.vars = ") + self.visit(node.context, frame) + self.push_context_reference(ctx) + + scope_frame = frame.inner(isolated=True) + scope_frame.symbols.analyze_node(node) + self.enter_frame(scope_frame) + self.blockvisit(node.body, scope_frame) + self.leave_frame(scope_frame) + self.pop_context_reference() + + def visit_EvalContextModifier( + self, node: nodes.EvalContextModifier, frame: Frame + ) -> None: + for keyword in node.options: + self.writeline(f"context.eval_ctx.{keyword.key} = ") + self.visit(keyword.value, frame) + try: + val = keyword.value.as_const(frame.eval_ctx) + except nodes.Impossible: + frame.eval_ctx.volatile = True + else: + setattr(frame.eval_ctx, keyword.key, val) + + def visit_ScopedEvalContextModifier( + self, node: nodes.ScopedEvalContextModifier, frame: Frame + ) -> None: + old_ctx_name = self.temporary_identifier() + saved_ctx = frame.eval_ctx.save() + self.writeline(f"{old_ctx_name} = context.eval_ctx.save()") + self.visit_EvalContextModifier(node, frame) + for child in node.body: + self.visit(child, frame) + frame.eval_ctx.revert(saved_ctx) + self.writeline(f"context.eval_ctx.revert({old_ctx_name})") diff --git a/venv/lib/python3.10/site-packages/jinja2/constants.py b/venv/lib/python3.10/site-packages/jinja2/constants.py new file mode 100644 index 0000000..41a1c23 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/constants.py @@ -0,0 +1,20 @@ +#: list of lorem ipsum words used by the lipsum() helper function +LOREM_IPSUM_WORDS = """\ +a ac accumsan ad adipiscing aenean aliquam aliquet amet ante aptent arcu at +auctor augue bibendum blandit class commodo condimentum congue consectetuer +consequat conubia convallis cras cubilia cum curabitur curae cursus dapibus +diam dictum dictumst dignissim dis dolor donec dui duis egestas eget eleifend +elementum elit enim erat eros est et etiam eu euismod facilisi facilisis fames +faucibus felis fermentum feugiat fringilla fusce gravida habitant habitasse hac +hendrerit hymenaeos iaculis id imperdiet in inceptos integer interdum ipsum +justo lacinia lacus laoreet lectus leo libero ligula litora lobortis lorem +luctus maecenas magna magnis malesuada massa mattis mauris metus mi molestie +mollis montes morbi mus nam nascetur natoque nec neque netus nibh nisi nisl non +nonummy nostra nulla nullam nunc odio orci ornare parturient pede pellentesque +penatibus per pharetra phasellus placerat platea porta porttitor posuere +potenti praesent pretium primis proin pulvinar purus quam quis quisque rhoncus +ridiculus risus rutrum sagittis sapien scelerisque sed sem semper senectus sit +sociis sociosqu sodales sollicitudin suscipit suspendisse taciti tellus tempor +tempus tincidunt torquent tortor tristique turpis ullamcorper ultrices +ultricies urna ut varius vehicula vel velit venenatis vestibulum vitae vivamus +viverra volutpat vulputate""" diff --git a/venv/lib/python3.10/site-packages/jinja2/debug.py b/venv/lib/python3.10/site-packages/jinja2/debug.py new file mode 100644 index 0000000..eeeeee7 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/debug.py @@ -0,0 +1,191 @@ +import sys +import typing as t +from types import CodeType +from types import TracebackType + +from .exceptions import TemplateSyntaxError +from .utils import internal_code +from .utils import missing + +if t.TYPE_CHECKING: + from .runtime import Context + + +def rewrite_traceback_stack(source: t.Optional[str] = None) -> BaseException: + """Rewrite the current exception to replace any tracebacks from + within compiled template code with tracebacks that look like they + came from the template source. + + This must be called within an ``except`` block. + + :param source: For ``TemplateSyntaxError``, the original source if + known. + :return: The original exception with the rewritten traceback. + """ + _, exc_value, tb = sys.exc_info() + exc_value = t.cast(BaseException, exc_value) + tb = t.cast(TracebackType, tb) + + if isinstance(exc_value, TemplateSyntaxError) and not exc_value.translated: + exc_value.translated = True + exc_value.source = source + # Remove the old traceback, otherwise the frames from the + # compiler still show up. + exc_value.with_traceback(None) + # Outside of runtime, so the frame isn't executing template + # code, but it still needs to point at the template. + tb = fake_traceback( + exc_value, None, exc_value.filename or "", exc_value.lineno + ) + else: + # Skip the frame for the render function. + tb = tb.tb_next + + stack = [] + + # Build the stack of traceback object, replacing any in template + # code with the source file and line information. + while tb is not None: + # Skip frames decorated with @internalcode. These are internal + # calls that aren't useful in template debugging output. + if tb.tb_frame.f_code in internal_code: + tb = tb.tb_next + continue + + template = tb.tb_frame.f_globals.get("__jinja_template__") + + if template is not None: + lineno = template.get_corresponding_lineno(tb.tb_lineno) + fake_tb = fake_traceback(exc_value, tb, template.filename, lineno) + stack.append(fake_tb) + else: + stack.append(tb) + + tb = tb.tb_next + + tb_next = None + + # Assign tb_next in reverse to avoid circular references. + for tb in reversed(stack): + tb.tb_next = tb_next + tb_next = tb + + return exc_value.with_traceback(tb_next) + + +def fake_traceback( # type: ignore + exc_value: BaseException, tb: t.Optional[TracebackType], filename: str, lineno: int +) -> TracebackType: + """Produce a new traceback object that looks like it came from the + template source instead of the compiled code. The filename, line + number, and location name will point to the template, and the local + variables will be the current template context. + + :param exc_value: The original exception to be re-raised to create + the new traceback. + :param tb: The original traceback to get the local variables and + code info from. + :param filename: The template filename. + :param lineno: The line number in the template source. + """ + if tb is not None: + # Replace the real locals with the context that would be + # available at that point in the template. + locals = get_template_locals(tb.tb_frame.f_locals) + locals.pop("__jinja_exception__", None) + else: + locals = {} + + globals = { + "__name__": filename, + "__file__": filename, + "__jinja_exception__": exc_value, + } + # Raise an exception at the correct line number. + code: CodeType = compile( + "\n" * (lineno - 1) + "raise __jinja_exception__", filename, "exec" + ) + + # Build a new code object that points to the template file and + # replaces the location with a block name. + location = "template" + + if tb is not None: + function = tb.tb_frame.f_code.co_name + + if function == "root": + location = "top-level template code" + elif function.startswith("block_"): + location = f"block {function[6:]!r}" + + if sys.version_info >= (3, 8): + code = code.replace(co_name=location) + else: + code = CodeType( + code.co_argcount, + code.co_kwonlyargcount, + code.co_nlocals, + code.co_stacksize, + code.co_flags, + code.co_code, + code.co_consts, + code.co_names, + code.co_varnames, + code.co_filename, + location, + code.co_firstlineno, + code.co_lnotab, + code.co_freevars, + code.co_cellvars, + ) + + # Execute the new code, which is guaranteed to raise, and return + # the new traceback without this frame. + try: + exec(code, globals, locals) + except BaseException: + return sys.exc_info()[2].tb_next # type: ignore + + +def get_template_locals(real_locals: t.Mapping[str, t.Any]) -> t.Dict[str, t.Any]: + """Based on the runtime locals, get the context that would be + available at that point in the template. + """ + # Start with the current template context. + ctx: t.Optional[Context] = real_locals.get("context") + + if ctx is not None: + data: t.Dict[str, t.Any] = ctx.get_all().copy() + else: + data = {} + + # Might be in a derived context that only sets local variables + # rather than pushing a context. Local variables follow the scheme + # l_depth_name. Find the highest-depth local that has a value for + # each name. + local_overrides: t.Dict[str, t.Tuple[int, t.Any]] = {} + + for name, value in real_locals.items(): + if not name.startswith("l_") or value is missing: + # Not a template variable, or no longer relevant. + continue + + try: + _, depth_str, name = name.split("_", 2) + depth = int(depth_str) + except ValueError: + continue + + cur_depth = local_overrides.get(name, (-1,))[0] + + if cur_depth < depth: + local_overrides[name] = (depth, value) + + # Modify the context with any derived context. + for name, (_, value) in local_overrides.items(): + if value is missing: + data.pop(name, None) + else: + data[name] = value + + return data diff --git a/venv/lib/python3.10/site-packages/jinja2/defaults.py b/venv/lib/python3.10/site-packages/jinja2/defaults.py new file mode 100644 index 0000000..638cad3 --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/defaults.py @@ -0,0 +1,48 @@ +import typing as t + +from .filters import FILTERS as DEFAULT_FILTERS # noqa: F401 +from .tests import TESTS as DEFAULT_TESTS # noqa: F401 +from .utils import Cycler +from .utils import generate_lorem_ipsum +from .utils import Joiner +from .utils import Namespace + +if t.TYPE_CHECKING: + import typing_extensions as te + +# defaults for the parser / lexer +BLOCK_START_STRING = "{%" +BLOCK_END_STRING = "%}" +VARIABLE_START_STRING = "{{" +VARIABLE_END_STRING = "}}" +COMMENT_START_STRING = "{#" +COMMENT_END_STRING = "#}" +LINE_STATEMENT_PREFIX: t.Optional[str] = None +LINE_COMMENT_PREFIX: t.Optional[str] = None +TRIM_BLOCKS = False +LSTRIP_BLOCKS = False +NEWLINE_SEQUENCE: "te.Literal['\\n', '\\r\\n', '\\r']" = "\n" +KEEP_TRAILING_NEWLINE = False + +# default filters, tests and namespace + +DEFAULT_NAMESPACE = { + "range": range, + "dict": dict, + "lipsum": generate_lorem_ipsum, + "cycler": Cycler, + "joiner": Joiner, + "namespace": Namespace, +} + +# default policies +DEFAULT_POLICIES: t.Dict[str, t.Any] = { + "compiler.ascii_str": True, + "urlize.rel": "noopener", + "urlize.target": None, + "urlize.extra_schemes": None, + "truncate.leeway": 5, + "json.dumps_function": None, + "json.dumps_kwargs": {"sort_keys": True}, + "ext.i18n.trimmed": False, +} diff --git a/venv/lib/python3.10/site-packages/jinja2/environment.py b/venv/lib/python3.10/site-packages/jinja2/environment.py new file mode 100644 index 0000000..0fc6e5b --- /dev/null +++ b/venv/lib/python3.10/site-packages/jinja2/environment.py @@ -0,0 +1,1672 @@ +"""Classes for managing templates and their runtime and compile time +options. +""" + +import os +import typing +import typing as t +import weakref +from collections import ChainMap +from functools import lru_cache +from functools import partial +from functools import reduce +from types import CodeType + +from markupsafe import Markup + +from . import nodes +from .compiler import CodeGenerator +from .compiler import generate +from .defaults import BLOCK_END_STRING +from .defaults import BLOCK_START_STRING +from .defaults import COMMENT_END_STRING +from .defaults import COMMENT_START_STRING +from .defaults import DEFAULT_FILTERS # type: ignore[attr-defined] +from .defaults import DEFAULT_NAMESPACE +from .defaults import DEFAULT_POLICIES +from .defaults import DEFAULT_TESTS # type: ignore[attr-defined] +from .defaults import KEEP_TRAILING_NEWLINE +from .defaults import LINE_COMMENT_PREFIX +from .defaults import LINE_STATEMENT_PREFIX +from .defaults import LSTRIP_BLOCKS +from .defaults import NEWLINE_SEQUENCE +from .defaults import TRIM_BLOCKS +from .defaults import VARIABLE_END_STRING +from .defaults import VARIABLE_START_STRING +from .exceptions import TemplateNotFound +from .exceptions import TemplateRuntimeError +from .exceptions import TemplatesNotFound +from .exceptions import TemplateSyntaxError +from .exceptions import UndefinedError +from .lexer import get_lexer +from .lexer import Lexer +from .lexer import TokenStream +from .nodes import EvalContext +from .parser import Parser +from .runtime import Context +from .runtime import new_context +from .runtime import Undefined +from .utils import _PassArg +from .utils import concat +from .utils import consume +from .utils import import_string +from .utils import internalcode +from .utils import LRUCache +from .utils import missing + +if t.TYPE_CHECKING: + import typing_extensions as te + + from .bccache import BytecodeCache + from .ext import Extension + from .loaders import BaseLoader + +_env_bound = t.TypeVar("_env_bound", bound="Environment") + + +# for direct template usage we have up to ten living environments +@lru_cache(maxsize=10) +def get_spontaneous_environment(cls: t.Type[_env_bound], *args: t.Any) -> _env_bound: + """Return a new spontaneous environment. A spontaneous environment + is used for templates created directly rather than through an + existing environment. + + :param cls: Environment class to create. + :param args: Positional arguments passed to environment. + """ + env = cls(*args) + env.shared = True + return env + + +def create_cache( + size: int, +) -> t.Optional[t.MutableMapping[t.Tuple["weakref.ref[t.Any]", str], "Template"]]: + """Return the cache class for the given size.""" + if size == 0: + return None + + if size < 0: + return {} + + return LRUCache(size) # type: ignore + + +def copy_cache( + cache: t.Optional[t.MutableMapping[t.Any, t.Any]], +) -> t.Optional[t.MutableMapping[t.Tuple["weakref.ref[t.Any]", str], "Template"]]: + """Create an empty copy of the given cache.""" + if cache is None: + return None + + if type(cache) is dict: # noqa E721 + return {} + + return LRUCache(cache.capacity) # type: ignore + + +def load_extensions( + environment: "Environment", + extensions: t.Sequence[t.Union[str, t.Type["Extension"]]], +) -> t.Dict[str, "Extension"]: + """Load the extensions from the list and bind it to the environment. + Returns a dict of instantiated extensions. + """ + result = {} + + for extension in extensions: + if isinstance(extension, str): + extension = t.cast(t.Type["Extension"], import_string(extension)) + + result[extension.identifier] = extension(environment) + + return result + + +def _environment_config_check(environment: _env_bound) -> _env_bound: + """Perform a sanity check on the environment.""" + assert issubclass( + environment.undefined, Undefined + ), "'undefined' must be a subclass of 'jinja2.Undefined'." + assert ( + environment.block_start_string + != environment.variable_start_string + != environment.comment_start_string + ), "block, variable and comment start strings must be different." + assert environment.newline_sequence in { + "\r", + "\r\n", + "\n", + }, "'newline_sequence' must be one of '\\n', '\\r\\n', or '\\r'." + return environment + + +class Environment: + r"""The core component of Jinja is the `Environment`. It contains + important shared variables like configuration, filters, tests, + globals and others. Instances of this class may be modified if + they are not shared and if no template was loaded so far. + Modifications on environments after the first template was loaded + will lead to surprising effects and undefined behavior. + + Here are the possible initialization parameters: + + `block_start_string` + The string marking the beginning of a block. Defaults to ``'{%'``. + + `block_end_string` + The string marking the end of a block. Defaults to ``'%}'``. + + `variable_start_string` + The string marking the beginning of a print statement. + Defaults to ``'{{'``. + + `variable_end_string` + The string marking the end of a print statement. Defaults to + ``'}}'``. + + `comment_start_string` + The string marking the beginning of a comment. Defaults to ``'{#'``. + + `comment_end_string` + The string marking the end of a comment. Defaults to ``'#}'``. + + `line_statement_prefix` + If given and a string, this will be used as prefix for line based + statements. See also :ref:`line-statements`. + + `line_comment_prefix` + If given and a string, this will be used as prefix for line based + comments. See also :ref:`line-statements`. + + .. versionadded:: 2.2 + + `trim_blocks` + If this is set to ``True`` the first newline after a block is + removed (block, not variable tag!). Defaults to `False`. + + `lstrip_blocks` + If this is set to ``True`` leading spaces and tabs are stripped + from the start of a line to a block. Defaults to `False`. + + `newline_sequence` + The sequence that starts a newline. Must be one of ``'\r'``, + ``'\n'`` or ``'\r\n'``. The default is ``'\n'`` which is a + useful default for Linux and OS X systems as well as web + applications. + + `keep_trailing_newline` + Preserve the trailing newline when rendering templates. + The default is ``False``, which causes a single newline, + if present, to be stripped from the end of the template. + + .. versionadded:: 2.7 + + `extensions` + List of Jinja extensions to use. This can either be import paths + as strings or extension classes. For more information have a + look at :ref:`the extensions documentation `. + + `optimized` + should the optimizer be enabled? Default is ``True``. + + `undefined` + :class:`Undefined` or a subclass of it that is used to represent + undefined values in the template. + + `finalize` + A callable that can be used to process the result of a variable + expression before it is output. For example one can convert + ``None`` implicitly into an empty string here. + + `autoescape` + If set to ``True`` the XML/HTML autoescaping feature is enabled by + default. For more details about autoescaping see + :class:`~markupsafe.Markup`. As of Jinja 2.4 this can also + be a callable that is passed the template name and has to + return ``True`` or ``False`` depending on autoescape should be + enabled by default. + + .. versionchanged:: 2.4 + `autoescape` can now be a function + + `loader` + The template loader for this environment. + + `cache_size` + The size of the cache. Per default this is ``400`` which means + that if more than 400 templates are loaded the loader will clean + out the least recently used template. If the cache size is set to + ``0`` templates are recompiled all the time, if the cache size is + ``-1`` the cache will not be cleaned. + + .. versionchanged:: 2.8 + The cache size was increased to 400 from a low 50. + + `auto_reload` + Some loaders load templates from locations where the template + sources may change (ie: file system or database). If + ``auto_reload`` is set to ``True`` (default) every time a template is + requested the loader checks if the source changed and if yes, it + will reload the template. For higher performance it's possible to + disable that. + + `bytecode_cache` + If set to a bytecode cache object, this object will provide a + cache for the internal Jinja bytecode so that templates don't + have to be parsed if they were not changed. + + See :ref:`bytecode-cache` for more information. + + `enable_async` + If set to true this enables async template execution which + allows using async functions and generators. + """ + + #: if this environment is sandboxed. Modifying this variable won't make + #: the environment sandboxed though. For a real sandboxed environment + #: have a look at jinja2.sandbox. This flag alone controls the code + #: generation by the compiler. + sandboxed = False + + #: True if the environment is just an overlay + overlayed = False + + #: the environment this environment is linked to if it is an overlay + linked_to: t.Optional["Environment"] = None + + #: shared environments have this set to `True`. A shared environment + #: must not be modified + shared = False + + #: the class that is used for code generation. See + #: :class:`~jinja2.compiler.CodeGenerator` for more information. + code_generator_class: t.Type["CodeGenerator"] = CodeGenerator + + concat = "".join + + #: the context class that is used for templates. See + #: :class:`~jinja2.runtime.Context` for more information. + context_class: t.Type[Context] = Context + + template_class: t.Type["Template"] + + def __init__( + self, + block_start_string: str = BLOCK_START_STRING, + block_end_string: str = BLOCK_END_STRING, + variable_start_string: str = VARIABLE_START_STRING, + variable_end_string: str = VARIABLE_END_STRING, + comment_start_string: str = COMMENT_START_STRING, + comment_end_string: str = COMMENT_END_STRING, + line_statement_prefix: t.Optional[str] = LINE_STATEMENT_PREFIX, + line_comment_prefix: t.Optional[str] = LINE_COMMENT_PREFIX, + trim_blocks: bool = TRIM_BLOCKS, + lstrip_blocks: bool = LSTRIP_BLOCKS, + newline_sequence: "te.Literal['\\n', '\\r\\n', '\\r']" = NEWLINE_SEQUENCE, + keep_trailing_newline: bool = KEEP_TRAILING_NEWLINE, + extensions: t.Sequence[t.Union[str, t.Type["Extension"]]] = (), + optimized: bool = True, + undefined: t.Type[Undefined] = Undefined, + finalize: t.Optional[t.Callable[..., t.Any]] = None, + autoescape: t.Union[bool, t.Callable[[t.Optional[str]], bool]] = False, + loader: t.Optional["BaseLoader"] = None, + cache_size: int = 400, + auto_reload: bool = True, + bytecode_cache: t.Optional["BytecodeCache"] = None, + enable_async: bool = False, + ): + # !!Important notice!! + # The constructor accepts quite a few arguments that should be + # passed by keyword rather than position. However it's important to + # not change the order of arguments because it's used at least + # internally in those cases: + # - spontaneous environments (i18n extension and Template) + # - unittests + # If parameter changes are required only add parameters at the end + # and don't change the arguments (or the defaults!) of the arguments + # existing already. + + # lexer / parser information + self.block_start_string = block_start_string + self.block_end_string = block_end_string + self.variable_start_string = variable_start_string + self.variable_end_string = variable_end_string + self.comment_start_string = comment_start_string + self.comment_end_string = comment_end_string + self.line_statement_prefix = line_statement_prefix + self.line_comment_prefix = line_comment_prefix + self.trim_blocks = trim_blocks + self.lstrip_blocks = lstrip_blocks + self.newline_sequence = newline_sequence + self.keep_trailing_newline = keep_trailing_newline + + # runtime information + self.undefined: t.Type[Undefined] = undefined + self.optimized = optimized + self.finalize = finalize + self.autoescape = autoescape + + # defaults + self.filters = DEFAULT_FILTERS.copy() + self.tests = DEFAULT_TESTS.copy() + self.globals = DEFAULT_NAMESPACE.copy() + + # set the loader provided + self.loader = loader + self.cache = create_cache(cache_size) + self.bytecode_cache = bytecode_cache + self.auto_reload = auto_reload + + # configurable policies + self.policies = DEFAULT_POLICIES.copy() + + # load extensions + self.extensions = load_extensions(self, extensions) + + self.is_async = enable_async + _environment_config_check(self) + + def add_extension(self, extension: t.Union[str, t.Type["Extension"]]) -> None: + """Adds an extension after the environment was created. + + .. versionadded:: 2.5 + """ + self.extensions.update(load_extensions(self, [extension])) + + def extend(self, **attributes: t.Any) -> None: + """Add the items to the instance of the environment if they do not exist + yet. This is used by :ref:`extensions ` to register + callbacks and configuration values without breaking inheritance. + """ + for key, value in attributes.items(): + if not hasattr(self, key): + setattr(self, key, value) + + def overlay( + self, + block_start_string: str = missing, + block_end_string: str = missing, + variable_start_string: str = missing, + variable_end_string: str = missing, + comment_start_string: str = missing, + comment_end_string: str = missing, + line_statement_prefix: t.Optional[str] = missing, + line_comment_prefix: t.Optional[str] = missing, + trim_blocks: bool = missing, + lstrip_blocks: bool = missing, + newline_sequence: "te.Literal['\\n', '\\r\\n', '\\r']" = missing, + keep_trailing_newline: bool = missing, + extensions: t.Sequence[t.Union[str, t.Type["Extension"]]] = missing, + optimized: bool = missing, + undefined: t.Type[Undefined] = missing, + finalize: t.Optional[t.Callable[..., t.Any]] = missing, + autoescape: t.Union[bool, t.Callable[[t.Optional[str]], bool]] = missing, + loader: t.Optional["BaseLoader"] = missing, + cache_size: int = missing, + auto_reload: bool = missing, + bytecode_cache: t.Optional["BytecodeCache"] = missing, + enable_async: bool = missing, + ) -> "te.Self": + """Create a new overlay environment that shares all the data with the + current environment except for cache and the overridden attributes. + Extensions cannot be removed for an overlayed environment. An overlayed + environment automatically gets all the extensions of the environment it + is linked to plus optional extra extensions. + + Creating overlays should happen after the initial environment was set + up completely. Not all attributes are truly linked, some are just + copied over so modifications on the original environment may not shine + through. + + .. versionchanged:: 3.1.5 + ``enable_async`` is applied correctly. + + .. versionchanged:: 3.1.2 + Added the ``newline_sequence``, ``keep_trailing_newline``, + and ``enable_async`` parameters to match ``__init__``. + """ + args = dict(locals()) + del args["self"], args["cache_size"], args["extensions"], args["enable_async"] + + rv = object.__new__(self.__class__) + rv.__dict__.update(self.__dict__) + rv.overlayed = True + rv.linked_to = self + + for key, value in args.items(): + if value is not missing: + setattr(rv, key, value) + + if cache_size is not missing: + rv.cache = create_cache(cache_size) + else: + rv.cache = copy_cache(self.cache) + + rv.extensions = {} + for key, value in self.extensions.items(): + rv.extensions[key] = value.bind(rv) + if extensions is not missing: + rv.extensions.update(load_extensions(rv, extensions)) + + if enable_async is not missing: + rv.is_async = enable_async + + return _environment_config_check(rv) + + @property + def lexer(self) -> Lexer: + """The lexer for this environment.""" + return get_lexer(self) + + def iter_extensions(self) -> t.Iterator["Extension"]: + """Iterates over the extensions by priority.""" + return iter(sorted(self.extensions.values(), key=lambda x: x.priority)) + + def getitem( + self, obj: t.Any, argument: t.Union[str, t.Any] + ) -> t.Union[t.Any, Undefined]: + """Get an item or attribute of an object but prefer the item.""" + try: + return obj[argument] + except (AttributeError, TypeError, LookupError): + if isinstance(argument, str): + try: + attr = str(argument) + except Exception: + pass + else: + try: + return getattr(obj, attr) + except AttributeError: + pass + return self.undefined(obj=obj, name=argument) + + def getattr(self, obj: t.Any, attribute: str) -> t.Any: + """Get an item or attribute of an object but prefer the attribute. + Unlike :meth:`getitem` the attribute *must* be a string. + """ + try: + return getattr(obj, attribute) + except AttributeError: + pass + try: + return obj[attribute] + except (TypeError, LookupError, AttributeError): + return self.undefined(obj=obj, name=attribute) + + def _filter_test_common( + self, + name: t.Union[str, Undefined], + value: t.Any, + args: t.Optional[t.Sequence[t.Any]], + kwargs: t.Optional[t.Mapping[str, t.Any]], + context: t.Optional[Context], + eval_ctx: t.Optional[EvalContext], + is_filter: bool, + ) -> t.Any: + if is_filter: + env_map = self.filters + type_name = "filter" + else: + env_map = self.tests + type_name = "test" + + func = env_map.get(name) # type: ignore + + if func is None: + msg = f"No {type_name} named {name!r}." + + if isinstance(name, Undefined): + try: + name._fail_with_undefined_error() + except Exception as e: + msg = f"{msg} ({e}; did you forget to quote the callable name?)" + + raise TemplateRuntimeError(msg) + + args = [value, *(args if args is not None else ())] + kwargs = kwargs if kwargs is not None else {} + pass_arg = _PassArg.from_obj(func) + + if pass_arg is _PassArg.context: + if context is None: + raise TemplateRuntimeError( + f"Attempted to invoke a context {type_name} without context." + ) + + args.insert(0, context) + elif pass_arg is _PassArg.eval_context: + if eval_ctx is None: + if context is not None: + eval_ctx = context.eval_ctx + else: + eval_ctx = EvalContext(self) + + args.insert(0, eval_ctx) + elif pass_arg is _PassArg.environment: + args.insert(0, self) + + return func(*args, **kwargs) + + def call_filter( + self, + name: str, + value: t.Any, + args: t.Optional[t.Sequence[t.Any]] = None, + kwargs: t.Optional[t.Mapping[str, t.Any]] = None, + context: t.Optional[Context] = None, + eval_ctx: t.Optional[EvalContext] = None, + ) -> t.Any: + """Invoke a filter on a value the same way the compiler does. + + This might return a coroutine if the filter is running from an + environment in async mode and the filter supports async + execution. It's your responsibility to await this if needed. + + .. versionadded:: 2.7 + """ + return self._filter_test_common( + name, value, args, kwargs, context, eval_ctx, True + ) + + def call_test( + self, + name: str, + value: t.Any, + args: t.Optional[t.Sequence[t.Any]] = None, + kwargs: t.Optional[t.Mapping[str, t.Any]] = None, + context: t.Optional[Context] = None, + eval_ctx: t.Optional[EvalContext] = None, + ) -> t.Any: + """Invoke a test on a value the same way the compiler does. + + This might return a coroutine if the test is running from an + environment in async mode and the test supports async execution. + It's your responsibility to await this if needed. + + .. versionchanged:: 3.0 + Tests support ``@pass_context``, etc. decorators. Added + the ``context`` and ``eval_ctx`` parameters. + + .. versionadded:: 2.7 + """ + return self._filter_test_common( + name, value, args, kwargs, context, eval_ctx, False + ) + + @internalcode + def parse( + self, + source: str, + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + ) -> nodes.Template: + """Parse the sourcecode and return the abstract syntax tree. This + tree of nodes is used by the compiler to convert the template into + executable source- or bytecode. This is useful for debugging or to + extract information from templates. + + If you are :ref:`developing Jinja extensions ` + this gives you a good overview of the node tree generated. + """ + try: + return self._parse(source, name, filename) + except TemplateSyntaxError: + self.handle_exception(source=source) + + def _parse( + self, source: str, name: t.Optional[str], filename: t.Optional[str] + ) -> nodes.Template: + """Internal parsing function used by `parse` and `compile`.""" + return Parser(self, source, name, filename).parse() + + def lex( + self, + source: str, + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + ) -> t.Iterator[t.Tuple[int, str, str]]: + """Lex the given sourcecode and return a generator that yields + tokens as tuples in the form ``(lineno, token_type, value)``. + This can be useful for :ref:`extension development ` + and debugging templates. + + This does not perform preprocessing. If you want the preprocessing + of the extensions to be applied you have to filter source through + the :meth:`preprocess` method. + """ + source = str(source) + try: + return self.lexer.tokeniter(source, name, filename) + except TemplateSyntaxError: + self.handle_exception(source=source) + + def preprocess( + self, + source: str, + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + ) -> str: + """Preprocesses the source with all extensions. This is automatically + called for all parsing and compiling methods but *not* for :meth:`lex` + because there you usually only want the actual source tokenized. + """ + return reduce( + lambda s, e: e.preprocess(s, name, filename), + self.iter_extensions(), + str(source), + ) + + def _tokenize( + self, + source: str, + name: t.Optional[str], + filename: t.Optional[str] = None, + state: t.Optional[str] = None, + ) -> TokenStream: + """Called by the parser to do the preprocessing and filtering + for all the extensions. Returns a :class:`~jinja2.lexer.TokenStream`. + """ + source = self.preprocess(source, name, filename) + stream = self.lexer.tokenize(source, name, filename, state) + + for ext in self.iter_extensions(): + stream = ext.filter_stream(stream) # type: ignore + + if not isinstance(stream, TokenStream): + stream = TokenStream(stream, name, filename) + + return stream + + def _generate( + self, + source: nodes.Template, + name: t.Optional[str], + filename: t.Optional[str], + defer_init: bool = False, + ) -> str: + """Internal hook that can be overridden to hook a different generate + method in. + + .. versionadded:: 2.5 + """ + return generate( # type: ignore + source, + self, + name, + filename, + defer_init=defer_init, + optimized=self.optimized, + ) + + def _compile(self, source: str, filename: str) -> CodeType: + """Internal hook that can be overridden to hook a different compile + method in. + + .. versionadded:: 2.5 + """ + return compile(source, filename, "exec") + + @typing.overload + def compile( + self, + source: t.Union[str, nodes.Template], + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + raw: "te.Literal[False]" = False, + defer_init: bool = False, + ) -> CodeType: ... + + @typing.overload + def compile( + self, + source: t.Union[str, nodes.Template], + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + raw: "te.Literal[True]" = ..., + defer_init: bool = False, + ) -> str: ... + + @internalcode + def compile( + self, + source: t.Union[str, nodes.Template], + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + raw: bool = False, + defer_init: bool = False, + ) -> t.Union[str, CodeType]: + """Compile a node or template source code. The `name` parameter is + the load name of the template after it was joined using + :meth:`join_path` if necessary, not the filename on the file system. + the `filename` parameter is the estimated filename of the template on + the file system. If the template came from a database or memory this + can be omitted. + + The return value of this method is a python code object. If the `raw` + parameter is `True` the return value will be a string with python + code equivalent to the bytecode returned otherwise. This method is + mainly used internally. + + `defer_init` is use internally to aid the module code generator. This + causes the generated code to be able to import without the global + environment variable to be set. + + .. versionadded:: 2.4 + `defer_init` parameter added. + """ + source_hint = None + try: + if isinstance(source, str): + source_hint = source + source = self._parse(source, name, filename) + source = self._generate(source, name, filename, defer_init=defer_init) + if raw: + return source + if filename is None: + filename = "

    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 z%0D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 z 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

  3. Q`tWaO!jN$zF@M)G7kfjy_dNFO!jZ) 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�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

    jCW1!dX_j$e&{ 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%0D6A9eK8F-QDGcV>)!v#F#cbw&+ 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%0DPeD_qm9+By|t9! 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%0DAuDkk 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

+ The Real First Universal Charset Detector
+
+ + + + Download Count Total + + + + +